• Welcome to Valhalla Legends Archive.
 

An Objective Comparison between FreeBSD and Windows

Started by nslay, August 10, 2005, 05:01 PM

Previous topic - Next topic

nslay

Note: This is not an OS flaming post, this is not meant to spawn argument

This includes features also in other BSD and Linux distributions.

Alright, as some of you know, I used to be very "gung-ho" about Windows.  I grew up with a Microsoft bigot father and so I grew up around Windows systems of all kinds my whole life (even Beta tested many of them).  So you could guess my views of Linux/Unix was very dim.  A few years back I had been attracted to trying FreeBSD (based on what friends have told me) and I started reading FreeBSD's handbook.  I took my dandy time learning how to install it, configure it, and maintain it...and even learned from friends.  It's been about a year now and I have become so acquainted to it that I am comfortable using either.  While using it I found all kinds of advantages and drawbacks compared to Windows (and vice versa).

FreeBSD Advantages
Ports and Package System
The FreeBSD ports and package system was the most notable advantage I saw over Windows.  If you chose to install the ports system (about 300MB), you instantly had access to some 12000+ programs and unlike Windows where you had to download setup files, FreeBSD would fetch the sources automatically and build and install the software for you with a make command.  If you were missing dependencies, it would build those beforehand.  All the installation information would be kept in a database.  Likewise, FreeBSD also has a package system (of precompiled binaries) that could be fetched from any media (including the internet) and instantly installed without any compilation.
For example, if you wanted to build gaim as a port, you would do:
# cd /usr/ports/net/gaim
# make && make install clean

or (the above is safer)

# make install clean

And as a package you would do:

# pkg_add -r gaim

Where the -r option tells it to fetch it from the internet (usually freebsd.org)

To keep your software updated, you would use portupgrade in conjunction with CVSup.  If you don't have CVSup or portupgrade, you can easily build them from the ports system or install them via the package system.  CVSup is used to update your system and ports sources and portupgrade is used to update all or specific software.  With a single command, you can update all installed software, a very powerful and convenient feature.

Configuration Files
In my opinion, despite seeing the various setup and wizard GUIs from the MMC (Microsoft Management Console), I think configuration files allow for more configuration flexability, especially when a GUI doesn't have what you want (which usually means its time to go digging through the registry).  I would also add that in most cases, it is easier for a developer to write configuration parsing schemes than it is to try to fit all options on a nice window.  Of course configuration files are not necessary for everything (such as enabling the wheel of your mouse!).

Command Line
The command line in Unix/Linux is a very powerful tool, in fact it is the primary interface of these systems.  Best of all it requires very little to use the command line, you could even configure one of these systems through serial (eww).  With a little Unix familiarity and the use of the man pages, you can setup the entire system as well as have complete control over it.  If you thought DOS-like, well you're slightly off as these systems have virtual terminals.  A FreeBSD installation usually has 8 virtual terminals enabled and you can navigate between them using Alt+F# and from each one, run an application and manipulate the system - it is a multi tasking system (obviously).  It is especially nice to have when your Window Manager fails...

Security
Unix/Linux are known to have much better security than Windows for a number of reasons: 1) There aren't nearly as many people wanting to break Unix/Linux 2) Open source allows the public to audit the code...more auditers means more awareness, projects such as OpenBSD proactively audit their code for security problems.  On a side note, OpenBSD is supposedly the most secure server OS on the market.
FreeBSD in particular has had very few CERT warnings in the past decade.

Misc
Most of the above advantages are generally true for many Unix and Linux distributions, but there are many base system advantages that I'm not terribly familiar with or are not worth mentioning due to their relevance to a normal desktop user.  For example, FreeBSD is said to have a superior network stack to even Linux distributions or that it recently includes pf, an OpenBSD firewall, in its base system...probably one of the best firewalls.

FreeBSD Disadvantages
Ports and Packages
One problem with FreeBSD ports is that some ports take significant time to compile...for example KDE or Gnome could take several hours.  I extrapolate that the packages are meant to alieviate this problem, but they are poorly kept up to date.  If you add KDE as a package, you can count on getting an older version.  One work around is using a smaller window manager such as fluxbox.

Configurations
FreeBSD doesn't automatically configure your system in many respects and in more recent versions, the install no longer includes X or Window Manager configuration utilities.  FreeBSD is not terribly difficult to configure, but you must know what to configure.  Although, FreeBSD will work out of the box...but to have a window manager, you must configure X, ttys and build your preferred window manager.  Worth mentioning, some trivial things (like your mouse wheel) have to be configured...which is sort of dumb.

Windows Advantages
Hardware Compatibility
Windows will run on just about any system (within reason).  It has many drivers to choose from and in some cases, if a driver is missing, it can use something generic.

Configuration
Usually little configuration is needed, it works out of the box.  For some general options, it includes wizards and spiffy dialogs.

Software
Some say that Windows is more compatible with software.  This may be true in terms of games (You can find many replacements on Unix/Linux for file formats and applications and what not).  That is not the point though.  As you read about the disadvantage of FreeBSD ports, they can take several hours to compile if they are quite large...Windows uses all precompiled binaries which is a plus for convenience.

Windows Disadvantages
Primary Interface
Window's primary interface is a GUI (Graphical User Interface)...this may be very convenient but if it breaks (and it has for me), it's not very easy to fix...especially when you have to go digging through the registry to fix it.  It doesn't have a backup interface such as the text prompt and to get a prompt you must use the Recovery Console from diskette or the Windows CD and even then, it is very limited.  In these cases, you are usually forced to Repair the system via Windows Setup.

Configurations
Even though it requires little configuration or includes spiffy dialogs, for more specific settings you are forced to dig through the registry or find a program that makes the changes for you.  Messing with the registry is also very dangerous (another plus to having configuration files).

Security
Windows has a bad track record in security and while 2003 Server or XP SP2 are very much improved, there are many problems that Microsoft sits on (such as the DSO exploit in IE).  Furthermore, because it is closed source, we have no way to audit their code and put a great deal of trust in them.  I imagine there are many more problems but as a business, they have no real reason to spend money fixing them if no one knows.  I also extrapolate from recent events, that Microsoft is gaining more control of their software and I'm starting to think they are out to use their userbase for marketing statistics and anti-piracy...clearly this is invasion of privacy.

(my)Conclusion
If FreeBSD had optional automation for system configuration, better maintained precompiled binaries, and utilities that provided easy configuration of system components then I'd imagine FreeBSD more userfriendly.
If Windows had a backup virtual terminal interface, configuration files, automated software updates (for not only their base system) then it would be at least less "fragile".

iago

Just one thing  you didn't say that summarizes the security:
FreeBSD: Designed to be secure out of the box, you have to choose to do dangerous things
Windows: Designed to be insecure out of the box, you have to harden it if you want it to be secure


Besides that, well written!
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


nslay

Quote from: iago on August 12, 2005, 08:34 AM
Just one thing  you didn't say that summarizes the security:
FreeBSD: Designed to be secure out of the box, you have to choose to do dangerous things
Windows: Designed to be insecure out of the box, you have to harden it if you want it to be secure


Besides that, well written!

Windows XP is pretty secure out of the box (based on what I've been told), especially if you install the version with SP2 preloaded (msdn offers an XP with preloaded SP2 ISO).
That's not the point though, there are many problems Microsoft sits on.
Usually if there are any significant problems in FreeBSD and I imagine any other Unix/Linux distribution, they are immediately fixed.

Another thing that bothers me...I ran Windows XP and 2000 setup to see if I could format my external drive in FAT32 (since freebsd's newfs_msdos is supposedly broken)...XP doesn't give you the option to use FAT32 and 2000 doesn't see USB external drives...so I ended up not using either.  When I rebooted, one of those setups wrote over the MBR and I couldn't get the boot manager (it just booted windows)...  That's evil!  Although, I did fix it shortly after.

A fallback of UFS2
This isn't discussed anywhere, it doesn't appear to bother anyone.  I used UFS2 on my external drive (for now) and I noticed that 9 GBs were used when it was newly made.  I thought that strange and I extrapolate from briefly skimming a few sites, that its for the extended attributes.  I ran a test on my /usr mount by summing all the file sizes...I took the figure given and subtracted by what the system gave me and found the same thing, except 1.3 GBs.

UFS3 is supposedly in the works for FreeBSD 6 and will supposedly use a journaling system to match ext3's performance...I wonder if it will eat up space for extrended attributes...
Here's an article on FreeBSD 6...it looks like its going to rock!
http://www.zzine.org/read.php?op=view&item=1308

iago

Yeah, Windows' setup overwrites your MBR without warning.  Rather rude, I agree.  Having a firewall enabled doesn't count as secure.  But Windows has things like NULL sessions, uPnP, and other things over several open ports that are frequently used for viruses.  Just because there's a firewall on by default doesn't fix the problem, just hides it. 

I'm seriously considering installed FreeBSD beside Linux, just to play with it.  Or maybe I'll install it in VMWare.  We'll see!  If I install it beside Linux, I'll have to get rid of Windows.  No big loss there, really. 



This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


MyndFyre

I thought that this overall was a well-written commentary.  I just wanted to briefly remark on your comments regarding the lack of default command prompt in Windows.

The only time it has broken for me that it couldn't be repaired through the GUI is when something has been overwritten like the partition table or the MBR, which caused the system drive to not be found.  I haven't had an issue in XP where I couldn't boot up to the GUI in either the standard GUI or safe mode.  And, FYI, you can install the Recovery Console to the system drive after your main installation is complete.

I've never broken it to a point where I've had to go do anything registry-related.  And I've broken Windows a lot of times.  :P
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

EpicOfTimeWasted

The 6- series won't be seeing a journaling filesystem, because 6.0 is slated to become the -STABLE tree for the 6 series.  The FreeBSD team has said that migrating from 5.x to 6.0 won't be as big of a change as 4.x to 5.0 was, so much so that it should be safe to do a source upgrade, rather than a fresh binary install.

Also, as nice as the FreeBSD network stack is, I remember reading that it's kinda become stale, and some Linux distros have passed it in performance.  The whole thing is in the process of being rewritten to be more streamlined and efficient though, so I'd expect it to jump back up to the top when the rewrite is complete.

Yoni

Quote from: iago on August 13, 2005, 10:20 AM
I'm seriously considering installed FreeBSD beside Linux, just to play with it. Or maybe I'll install it in VMWare.
I tried VMWare'd FreeBSD.
Just so you know, it's a pain to get X working, and you can forget about audio altogether.
If you don't care about either of those, gogo.

nslay

Quote from: Yoni on August 14, 2005, 07:59 AM
Quote from: iago on August 13, 2005, 10:20 AM
I'm seriously considering installed FreeBSD beside Linux, just to play with it. Or maybe I'll install it in VMWare.
I tried VMWare'd FreeBSD.
Just so you know, it's a pain to get X working, and you can forget about audio altogether.
If you don't care about either of those, gogo.

Ever try driver_load=YES in /boot/loader.conf for sound or compiling your kernel with your sound driver?

my loader.conf has

snd_ich_load=YES


Sound works just fine...xmms runs like a charm

No!

if you chose at least X-User in the package menu, Xorg is preloaded

Instructions to configure Xorg
1) Have Xorg generate a configurations file

# Xorg -configure

2) Test your Xorg configuration file

# Xorg -config xorg.conf.new

To exit X press Cntrl+Alt+Backspace

3) Add extra options

Add any other option mentioned in the man pages
# man xorg.conf

Some typically used configurations:
Configuring Your Wheel Mouse
For Section "InputDevice" with identifier Mouse0
add this line:

Option  "ZAxisMapping" "4 5"


Setting HorizSync and VertRefresh
in Section "Moniter"
be sure to add your appropriate rates
For example

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "IBM"
        ModelName    "IBM ThinkPad LCD"
        HorizSync       30-107
        VertRefresh     48-120
        Option  "DPMS"
EndSection


Note: Option "DPMS" enables the power saving mechanism.

Usually X can detect these settings automatically.

Setting specific modes (not necessary methinks)
For Section "Screen"
Set your valid modes in the valid Depth fields (ie. Depth 24 = 24 bit)
For example:

SubSection "Display"
Viewport   0 0
Depth     24
Modes "1024x768"
EndSubSection


X usually detects your capabilities without this though.

5) Use your new configuration file
copy xorg.conf.new to /etc/X11 (with new name xorg.conf)

# cp xorg.conf.new /etc/X11/xorg.conf

Now you're all set!
startx should start X and your Window Manager if you have .xsession defined
You can have your window manager load automatically by editing /etc/ttys
You'll see a line for xdm, it will be turned off...configure xdm or any other desktop manager and then set its path and turn it on.
Mine is:

ttyv8   "/usr/local/bin/kdm"            xterm   on secure


nslay

Quote from: MyndFyre on August 13, 2005, 02:01 PM
I thought that this overall was a well-written commentary.  I just wanted to briefly remark on your comments regarding the lack of default command prompt in Windows.

The only time it has broken for me that it couldn't be repaired through the GUI is when something has been overwritten like the partition table or the MBR, which caused the system drive to not be found.  I haven't had an issue in XP where I couldn't boot up to the GUI in either the standard GUI or safe mode.  And, FYI, you can install the Recovery Console to the system drive after your main installation is complete.

I've never broken it to a point where I've had to go do anything registry-related.  And I've broken Windows a lot of times.  :P

If various registry entries are removed, the Windows GUI will not load...what happened for me is that when I logged in (for any user) I would end up with just the desktop (no taskbar, no icons, nothing...not even right click menu).  The only thing I had access to was the Task Manager.  With Skywing's help, I was able to restore the missing registry entries and it worked once again...

nslay

Quote from: iago on August 13, 2005, 10:20 AM
Yeah, Windows' setup overwrites your MBR without warning.  Rather rude, I agree.  Having a firewall enabled doesn't count as secure.  But Windows has things like NULL sessions, uPnP, and other things over several open ports that are frequently used for viruses.  Just because there's a firewall on by default doesn't fix the problem, just hides it. 

I'm seriously considering installed FreeBSD beside Linux, just to play with it.  Or maybe I'll install it in VMWare.  We'll see!  If I install it beside Linux, I'll have to get rid of Windows.  No big loss there, really. 

The NULL sessions (the passwordless accounts I assume you mean) are enabled by default in Home edition only and they can't be used remotely anyways.
In XP SP2 most of the insecure services are disabled.
A Firewall helps, but you're right, there are a lot of holes...the biggest are in their browser I think.

Kp

Quote from: nslay on August 14, 2005, 10:36 AMthe biggest are in their browser I think.

But since the browser is the OS (or is it that the OS is the browser?), isn't that saying that the biggest holes are in the OS? ;)  Microsoft's been pushing that IE is an integral part of Windows for a long time... :)
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

iago

Quote from: nslay on August 14, 2005, 10:36 AM
Quote from: iago on August 13, 2005, 10:20 AM
Yeah, Windows' setup overwrites your MBR without warning.  Rather rude, I agree.  Having a firewall enabled doesn't count as secure.  But Windows has things like NULL sessions, uPnP, and other things over several open ports that are frequently used for viruses.  Just because there's a firewall on by default doesn't fix the problem, just hides it. 

I'm seriously considering installed FreeBSD beside Linux, just to play with it.  Or maybe I'll install it in VMWare.  We'll see!  If I install it beside Linux, I'll have to get rid of Windows.  No big loss there, really. 

The NULL sessions (the passwordless accounts I assume you mean) are enabled by default in Home edition only and they can't be used remotely anyways.
In XP SP2 most of the insecure services are disabled.
A Firewall helps, but you're right, there are a lot of holes...the biggest are in their browser I think.

The NULL sessions are in home and pro.  I'm reasonably sure I've used both. 

In XP SP2, as far as I know, the insecure services are firewalled.  Are you sure they're disabled?
This'll make an interesting test for broken AV:
QuoteX5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


nslay

Quote from: iago on August 14, 2005, 01:06 PM
Quote from: nslay on August 14, 2005, 10:36 AM
Quote from: iago on August 13, 2005, 10:20 AM
Yeah, Windows' setup overwrites your MBR without warning.  Rather rude, I agree.  Having a firewall enabled doesn't count as secure.  But Windows has things like NULL sessions, uPnP, and other things over several open ports that are frequently used for viruses.  Just because there's a firewall on by default doesn't fix the problem, just hides it. 

I'm seriously considering installed FreeBSD beside Linux, just to play with it.  Or maybe I'll install it in VMWare.  We'll see!  If I install it beside Linux, I'll have to get rid of Windows.  No big loss there, really. 

The NULL sessions (the passwordless accounts I assume you mean) are enabled by default in Home edition only and they can't be used remotely anyways.
In XP SP2 most of the insecure services are disabled.
A Firewall helps, but you're right, there are a lot of holes...the biggest are in their browser I think.

The NULL sessions are in home and pro.  I'm reasonably sure I've used both. 

In XP SP2, as far as I know, the insecure services are firewalled.  Are you sure they're disabled?

Yes but in Pro, NULL sessions are not enabled by default...I am pretty sure you have to enable them via Local Security Policy

Install SP2 and have a look at all the services it disables...I am pretty sure UPnP service is disabled among others (such as messenger).

Maddox

FreeBSD Disadvantage - lack of native ports for games. Don't mention WINE, because we all know it is NOT the same quality as gaming on Windows.
asdf.

Yoni

To clarify, I meant that X and audio are hard to configure in VMWare'd FreeBSD, not FreeBSD in general.

Especially audio... Which seems impossible, without writing some kernel-level code of your own. Like a driver that works.