Thursday, October 18, 2012

Windows vs. Linux vs. Mac OS vs. FreeBSD Bout

Here's a comprehensive breakdown of some of the pros and cons of different Operating systems:

The Operating systems in question are as follows:

Linux (Call it a kernel if you will, but I'm generalizing it across all distros)
FreeBSD
Mac OS X
Windows


1. Reliability


Windows:


I don't think there should be any trouble reaching a conclusion here. The majority of windows users are familiar with the "Blue Screen of Death". Poor reliability is a major drawback in windows. How many windows users turn their computers on and hold their breath in anticipation of a crash, or sigh when the computer jams after clicking a button. Some major (read 'publicized') issues were resolved in XP and more recently Windows 7 which uses the vista kernel anyway. But 'code bloat' has introduced more reliability problems. Many windows fans argue that it will be fixed with the next update, and each new update fixes some issues introducing new ones. Windows uses a lot of system resources and it is very difficult to keep the system up for more than a couple of months without it reverting to a crawl as memory gets corrupted and filesystems fragmented. Even frequent maintenance just prolongs the inevitable by a few hours at the most.
Grade: E

Linux:

Linux is well known for it's reliability. Servers will often stay up for years. However, in most distros, disk I/O is non-synchronous by default, which is less reliable for transaction based operations. This can produce a corrupted filesystem after a system crash or power failure, but the new ext4 filesystem changes a lot of things and makes things more stable. This is usually only a problem for people setting up servers, and if they're smart enough they'd change the disk I/O to synchronous anyway. Linux is very dependable for the average desktop user.
Grade: B

FreeBSD:

FreeBSD is extremely robust and has recorded uptime in years. "Soft Updates" optimize the I/O for maximum performance yet still ensures reliability for transaction-based operations such as database calls. I've tried throwing a lot of gunk into the cogs and it is incredibly difficult to crash. Windows and some improperly configured linux distros yeilded to a simple fork bomb e.g : () {:|:}; :
Grade: A

Mac OSX:


To be honest, Leopard did screw some things up in regard to stability but they were pretty much fixed in Snow Leopard. Although it'll take a little more time to sand out some minor kinks, it is extremely reliable for desktop users. On another note, The darwin kernel, which lies at the core of OSX was derived from the FreeBSD architecture and uses the same userland.
Grade: B-


2. Performance




Windows:


Windows is adequate for average desktop use but fails miserably under heavy network loads. A few organizations (I don't think it'd be legally advisable to take names here) try to make it work as a server and suffer from frequent error messages. For their own "hotmail" servers microsoft used BSD for many years. As far as desktop performance is concerned, as long as you don't multi task like crazy, you should be fine.
Grade: C

Linux:


Linux performs well for most applications, however the performance is not so optimal under heavy network load. The network performance of Linux is 20-30% below the capability of FreeBSD running on the same hardware. The situation has improved especially since the 2.4 release of the Linux kernel introduced a new virtual memory system and the open source nature allows technology sharing which rapidly enhances performance tweaks. Linux is very capable of handling loads and can be adapted to almost any requirement or need.
Grade: A

FreeBSD:

FreeBSD is the system of choice for high performance network applications. It will outperform other systems when running on equivalent hardware. The largest and busiest public server on the Internet at ftp.freesoftware.com, uses FreeBSD to serve more than 1.2 terabyte/day of downloads. FreeBSD is used by Yahoo!, Qwest, and many others as their main server OS because of its ability to handle heavy network traffic with high performance and rock stable reliability. This can actually be thought of as derived from a need for faster and more efficient processing due to the compilation process of using the ports collection.
Grade: A
Mac OSX:

OSX is designed specifically to run on a specific set of hardware (apple) and this allows developers to optimize the system for maximum efficiency. However, the closed source nature of the development puts it at a slight disadvantage in regard to the time it takes to fine tune a system. But, all in all, it handles performance very well.
Grade: B-


3. Security


Windows:

Seriously, it doesn't matter how secure Microsoft claims their system is, the reality is that they hold the world record for the most security holes ever (CERT advisories agree). They offer no guarantee of security and their software is not available for inspection or peer review due to the closed-source nature of the OS. There is no way, therefore, for users to fix or diagnose any of the issues regularly published about windows systems. Don't try to play a bullshit argument that hackers target windows only because of it's widespread use because that argument loses premises when I stated CERT advisories above. To give an example, compare telnet which uses a plaintext passcode to protect you, to ssh, which unix-based operating systems use by default, that use heavy rsa encryption to protect you. Microsoft Windows has been affected by a very large number of known security holes that have cost companies millions of dollars.
Grade: F

Linux:

Until a couple of years ago, there was no formal code review policy, and because of that many linux distributions still use non-secure defaults, and has been susceptible to Unix-based CERT attacks, but the open-source nature allows for this to be fixed very rapidly. And linux does include a very robust packet filtering firewall system and a competent administrator can remove unsafe services. An example of rapid response fixing is when Konqueror and IE were both discovered to have a loophoe in their SSL protocols which allowed for it to be remotely exploited; the KDE dev team went through incoming solution proposals and had a fix out within the hour. Microsoft took a month to announce that they were working on a fix. 'Nuff said.
Grade: B-

FreeBSD:

FreeBSD has been the subject of a massive auditing project for several years. All of the critical system components have been checked and rechecked for security-related errors. The entire system is open source so the security of the system can and has been verified by third parties. A default FreeBSD installation has yet to be affected by a single CERT advisory. It also has a notion of kernel security levels, virtual server jails (which are a pretty unique innovation), capabilities, ACLs, a very robust packet filtering firewall system, and intrusion detection tools. BSD is more mature than linux and when it comes to security it has all the necessary tools to keep you safe. On a side note: OpenBSD is supposed to be the BSD channel that is optimized for security, FreeBSD is meant for performance
Grade: A

Mac OSX:

Mac OSX inherits it's rock solid security from it's unix lineage and therefore has very few vulnerabilities. The vulnerabilities that are most common actually take advantage of backdoors in microsoft office for mac applications. Microsoft is yet to release a fix for this (With the heavy competition, it's not hard to fathom why). But OSX makes it's procedures very user-friendly, unfortunately, it does not make it idiot-proof and a person could very easily open up his hard disk for remote access (even though a password is required y default, if the person is dumb enough not to know what he's doing then he/she probably doesn't have a strong password either)
Grade: B


4. File-system


Windows:


The windows FAT and NTFS file-systems are plagued with 20 years of backward compatibility with some of the earliest PC-based file-systems. These file-systems are not designed for today's server applications in mind. Heck, they weren't even designed with a multi-user OS or networking in mind. The maximum file size is roughly 4GB if I'm not mistaken, whereas it's 16GB in ext3 and 1TB in ext4 both of which are unix filesystems. Higher single file sizes reduce and eliminate fragmentation within a filesystem. So, basically, the Windows file-system is walking on two broken legs, but it's walking nonetheless.
Grade: D

Linux:


The new journaled ext3 and ext4 filesystems fix the problems with ext2 which is now mostly only used as swap, and the ext2 gets it's performance via an asynchronous mount (which is good for swap, not so much for file storage).
They offer extremely good performance and the trend of improvement shows great promise for the future. It is currently a rock-solid file-system.
Grade: B+

FreeBSD:

FreeBSD uses the Berkeley Fast Filesystem, which is a little more complex than Linux's ext3. It offers a better way to ensure file-system data integrity, mainly with the "softupdates" option. This option decreases synchronous I/O and increases asynchronous I/O because writes to an FFS file-system aren't synced on a sector basis but according to the file-system structure. This ensures that the file-system is always coherent between two updates. The FreeBSD file-system also supports file flags, which can stop a would-be intruder dead in his tracks. There are several flags that you can add to a file such as the immutable flag. The immutable (schg) flag won't allow any alteration to the file or directory unless you remove it. Other very handy flags are append only (sappnd), cannot delete (sunlnk), and archive (arch). When you combine these with the kernel security level option, you have a nearly impenetrable system. The FreeBSD file-system has also been reworked for 8.0 and adds many new features.
Grade: A

Mac OSX:

The HFS+ file-system on the mac is a huge improvement over HFS which suffered problems namely with font labels and block size allocation mapping algorithms. This file-system is one of apple's greatest triumphs and is the same on used in the ipod, if you were wondering. Although complete data integrity is still a little questionable, it rarely poses any problems and the HFS wrapper can easily be changed to encrypt data without having to change into a crypto_luks file-system or similiar.
Grade: A


5. Device drivers

Windows:

Microsoft has excellent relations with device vendors, and by excellent I mean lucrative. This allows them to attract a large number of drivers, and even though there are often conflicts on different versions of windows, and you have to hassle with cd's or finding drivers yourself most of the time; Windows users have excellent access to third-party drivers.
Grade: A

Linux:

The linux community makes it difficult for vendors to release binary only drivers, usually in an effort to make them release open-source drivers. Now, most device vendors don't wan't other people peeping into their source code, so the binaries that they release are an example of what happens when closed-source clashes with open source... lot's of frustrating glitches that the community can't fix due to absence of source code. Many simply create their own, but this takes a lot of time and effort. Giving away drivers to an open-source community isn't really as lucrative for the vendors so they are reluctant to release them. This situation is changing, however, since now more and more people have started using linux, including some of the hardware vendors themselves. But honestly, if you're determined enough, you usually find a way for it to work, and most linux users are tech-savvy enough for it. (Support groups are free if you need a geek)
Grade: C-

FreeBSD:

The FreeBSD bootloader can load binary drivers at boot-time. This allows third-party driver manufacturers to distribute binary-only driver modules that can be loaded into any system. Due to the open-source nature of FreeBSD, it is very easy to develop device drivers for new hardware. Unfortunately, most device manufacturers will only release binaries for Microsoft operating systems (keyword: lucrativeness). This means that it can take several months after a hardware device hits the market until a native device driver is available.
Fortunately, FreeBSD also includes full NDIS API compatibility, so that binary Windows network device drivers can be loaded into the FreeBSD kernel directly. Basically, it converts the windows driver into a kernel module, kinda like ndiswrapper in linux, except it's easier to understand and do in FreeBSD.
Grade: B

Mac OSX:

Due to the hardware exclusivity of apple, drivers are not an issue at all. They make the hardware, and they make the software, so they make them work good with each other. Third-party drivers are also available for OSX users, but they rarely ever need them. The only situation in which I needed a driver when using OSX was with a printer, but it automatically fetched the driver for me so that kind of eliminates the 'hunting' part.
Grade: A


6. Commercial applications

Windows:

There are hundreds of thousands of commercial applications applications for windows, and usually only for windows. Nearly all commercial desktop applications (yes that includes games) are made only for windows. If you have an important application that runs only on windows, then you have to run that applications either in windows or a windows emulator such as wine or cedega.
Grade: A

Linux:


Many new commercial applications are available for Linux, and more are being developed. Unfortunately, Linux can only run binaries that are specifically compiled for the distribution in question. It is unable to run programs compiled for FreeBSD, SCO Unix, or other popular operating systems without significant effort. On the other hand, emulators such as wine (free) and crossover (not free) allow windows binaries to be executed so this opens up a whole new commercial application library for Linux.
Grade: C

FreeBSD:

The number of commercial applications for FreeBSD is growing rapidly, but is still below what is available for windows. In addition to native applications, FreeBSD can also run programs compiled for Linux, SCO Unix, and BSD/OS. Wine, cedega and cross-over are also available for FreeBSD.
Grade: C+

Mac OSX:


Most popular commercial applications are available for OSX and recently, there has been a lot of growth in the number of commercial applications available. Some applications such as Aperture 2 are exclusive to OSX and tend to be of a very good quality. Cross-Over is also available for OSX
Grade: C

NOTE: I have not mentioned the fact that all Operating systems can run virtual machines which can then run a seperate operating system within the one you are currently running. Notable examples are VirtualBox and Parallels.

7. Free applications


Windows:

The amount of free Windows software is much less than what is available for Unix. Many Windows applications are provided as "shareware", without source code, so the programs cannot be customized, debugged, improved, or extended by the user. Piracy is illegal and thus I am not considering pirated copies of applications or warez as "free". Licensed free-ware for windows is not common in this context.
Grade: D

Linux:

There are huge numbers of free programs available for Linux. All GNU software runs on both Linux and FreeBSD without modification. Some of the free programs for Linux differ between distributions, because Linux does not have a central ports collection. If you're using a commercial application, chances are there is an open source version of it that does exactly the same thing, maybe without some of the eye-candy though. It's kind of like a modified rule 34: If there is a commercial app for it, there is open-source for it. If not then it must be created.
Grade: A

FreeBSD:

There are many, many gigabytes of free software applications available for FreeBSD. It includes thousands of software packages and an extensive ports collection, all with complete source code. Many people consider the FreeBSD Ports Collection to be the most accessible and easiest to use library of free software packages available anywhere. In fact, Gentoo Linux, NetBSD, OpenBSD, and many other operating systems have borrowed and extended the famous Ports Collection.
Grade: A

Mac OSX:
Borrowing from it's unix background again, OSX runs all FreeBSD binaries and can tap into port collections modified especially for Mac OSX. Basically, it leaves the dirty work to open-source (lolz).
Grade: A


8. Development Environment

Windows:
Very few development tools are included with Windows. Most need to be purchased separately, and are rarely compatible with each other. Vista tried to introduce a "Powershell" but it introduced more security vulnerabilities and not much of a development environment.
Grade: F

Linux:
Linux includes a large array of development tools, with compilers and interpreters for every common programming language, all the GNU programs, including the powerful GNU C/C++ Compiler, Emacs editor, and GDB debugger. Unfortunately, due to the very splintered nature of Linux, applications that you compile on one system (Red Hat) may not work on another Linux system (Slackware). This is why it's simpler to create a makefile and configure file, and let the user compile it own his/her own. Alternatively, the developer can compile it as deb for debain based distros and rpm for red hat based distros; That will cover a lot of the general linux population, the rest are more than likely skilled enough to compile a program (which isn't difficult by the way - you just have to run the right file)
Grade: B+

FreeBSD:
FreeBSD includes an extensive collection of developer tools. You get a complete C/C++ development system (editor, compiler, debugger, profiler, etc.) and powerful Unix development tools for Java, HTTP, Perl, Python, TCL/TK, Awk, Sed, etc. All of these are free, and are included in the basic FreeBSD installation. All come with full source code.
Grade: A

Mac OSX:
Since OSX is unix-based, the usual goodies tag along. Goodies like the C/C++ compiler, vi, emacs, sed, HTTP, Perl etc. Some stuff you might have to get yourself, but it's not hard to do.
Grade: A


9. Development Infrastructure

Windows:
Microsoft Windows is a closed-source operating system driven by market demand rather than technical merit. New technologies are rushed into the product before they have been properly designed or fully implemented. Very little is known about the internal development infrastructure of Microsoft but the "blue-screen of death" speaks for itself. In simpler words, the next security patch, or new version, and release cycle, is all decided by a business-minded bureaucrat who's looking for the biggest profit margin. The development team is a small-knit community of programmers who don't have enough time or resources to patch holes caused by the previous development team's incompetence or rather powerlessness.
Grade: F

Linux:
Linux is a Unix-like kernel that must be combined with the GNU system to make a complete operating system. Linux does not use any version control system so all bug-fixes and enhancements must be emailed back and forth on mailing lists and ultimately submitted to the one person (Linus) who has authority to commit the code to the tree. Due to the overwhelming amount of code that gets written, it is impossible for one person to adequately quality control all of the pending changes. For this reason there is a lot of code in Linux that was hastily written and would never have been accepted into a more conservative operating system. This is where the distro concept come in. The kernel is at the heart of the system but developers can combine it with their own mix of software to create a "flavor" like ubuntu is a different flavor than opensuse. And in this way there are hundreds of "flavors" each with their own development infrastructure which usually tends to resemble that of FreeBSD.
Grade: B

FreeBSD:
FreeBSD is an advanced BSD Unix operating system. The source code for the entire system is available in a centralized source code repository running under CVS. A large team (300+) of senior developers has write access to this repository and they coordinate development by reviewing and committing the best changes of the development community at large. FreeBSD is engineered to find elegant solutions for overall goals, rather than quick hacks to add new functionality. Since FreeBSD is a complete open-source operating system, rather than just a kernel, you can recompile and reinstall the entire system by simply typing one command, "make world". Cool eh?
Grade: A

Mac OSX:
Now this is also a closed source operating system with a development infrastructure similar to windows. But it's links with it's unix counterparts allow for better development resources for the dev team to work with.
Grade: E


10. Support

Windows:
Although support is available for Windows, you should be prepared to spend as long as an hour on hold, with no guarantee that your problem will be resolved. Because of the closed source nature of Windows, there is no informal, free support available, and bugs can only be fixed on Microsoft's schedule, not yours. Windows is not updated frequently, you may wait years for bugs to be fixed.
Grade: D-

Linux:
Many organizations provide professional support for Linux. All the major Linux vendors offer some level of support, and several offer full 24x7 service. There are many forums where Linux questions are answered for free, such as newsgroups and mailing lists. As a last resort, you can always use the source to track down and fix a problem yourself. Now, that's what support should look like.
Grade: A

FreeBSD:
Several organizations, including the FreeBSD Mall, offer a wide range of support options. In addition to 24x7 professional support, there is a large amount of free, informal support available through Usenet newsgroups and mailing lists, such as questions@freebsd.org. Once a problem is found, source code patches are often available within a few hours. Another point I should better include is that there is a FreeBSD Handbook available, which covers pretty much everything anyone would need. No other operating system has such a thing, oh and did I mention it's free?
Grade: A

Mac OSX:
Macintosh is usually pretty good about support but then again, due to the closed-source nature there is little informal support. Now, the reason I said little here and none with windows, is that Mac OSX is not entirely closed source and the unix foundation is open-source and that can be used to solve a lot of problems.
Grade: D


11. Price and TCO (Total Cost of Ownership)

Windows:
The server edition of Windows XP costs nearly $700. Don't even get me started on W7 and Vista. Even basic applications cost extra. Users often spend many thousands of dollars for programs that are included for free with Linux or FreeBSD. Documentation is expensive, and very little on-line documentation is provided. A license is required for every computer, which means delays and administrative overhead. The initial learning curve for simple administration tasks is smaller than with Unix, (which can be explained by more people having experience with windows, it being so popular) but it also requires a lot more work to keep the system running with any significant work load. Therefore, be prepared to cough up some dough, both at the start and for maintenance.
Grade: F

Linux:
Linux is free. Several companies offer commercial aggregations at very low cost. Applications and documentation is available for little or no cost. There are no licensing restrictions, so Linux can be installed on as many systems as you like for no additional cost. Linux's total cost of ownership is very low or none, depending on what you go for.
Grade: A

FreeBSD:
FreeBSD can be downloaded from the Internet for free. Or it can be purchased on a four CDROM set along with several gigabytes of applications for $40. All necessary documentation is included. Support is available for free or for very low cost. There is no user licensing, so you can quickly bring additional computers online. This all adds up to a very low (or zero) total cost of ownership.
Grade: A

Mac OSX:
Most people complain that OSX is more expensive to get than a windows computer. The down payment should not be the only thing taken into consideration. Windows has high system requirements, for which you need to get more of some sort of hardware, and you end up buying a new computer often. Then you have costs for anti-virus and stuff like that (that is pretty obsolete for unix-users) and then maintenance fees incurred. So even though the price of equivalent apple equipment may seem slightly higher, in the long run the Total Cost of Ownership turns out to be quite less than with windows, all depending on the configuration, of course.
Grade: E


12. User Interface and Ease of Use

Windows:
Windows has pretty much used the same UI for over 10 years, adding tweaks here and there to make it seem "new, and improved" whereas the truth is the UI isn't very savvy when you compare it with the unix alternatives. As far as ease of use, windows is not actually easy to work in, and if you use it, your desktop is probably cluttered with icons. You need to perform more actions to do the same thing that you could do with less clicks in a unix-environment. The way the navigation is arranged is pretty sloppy once you use something like GNOME. In a recent study with elderly people who had never used a computer before, more found GNOME and the OSX DE to be more easy to use than either the WINDOWS DE or KDE. The myth that windows is easy to use only stems from the large number of people who use it or have to use it, and that makes them familiar with the environment.
Grade: D+

Linux:
Most distros, by default come with an intuitive UI such as GNOME, and there are many many more available such as KDE, fluxbox, enlightenment, openbox, IceWM, XFCE, etc. The interface is extremely easy to use, and there are distributions which deal with migrating windows users and give them a familiar environment whilst transitioning them into new ones. Although, for people absolutely new to computers I would recommend GNOME.
Grade: A

FreeBSD:
Like some distros of linux (eg. Arch). FreeBSD dumps you into the command-line by default (Unless you configure X during setup). This is 'delicious' to users who prefer the command line, but for people who only know wich button to click to get to their email, this is over their head. In such a situation PC-BSD or desktop-bsd can intervene giving a graphical installer and a GUI by default. Again, all open source DE's and WM's are available for BSD.
Grade: C

Mac OSX:
The default UI is simply gorgeous, much like KDE is gorgeous, but this is a different kind of pretty. The interface is intuitive and easy to use although some aspects may pose some difficulty for lifetime windows users (which causes some of them to absolutely hate it, similar to how some people react to country music in a manner of disgust but love classic rock).
Grade: B+


Final Standings

The scoring for the grades are as follows:

A= 10
B= 8
C= 6
D= 4
E= 2
F= 0




WindowsLinuxFreeBSDMac OSX
Reliability28107
Performance610107
Security07108
File-system491010
Device Drivers105810
Commercial Applications10676
Free Applications4101010
Development Environment091010
Development Infrastructure08102
Support310104
Price and TCO010102
UI and Ease of Use51069
Raw Aggregate:4410211185
Low Handicap (+5 for every score below five, just for the heck of it)8x5= +40003x5 = +15
Total (with handicap)84102111100



So, with a handicap inclusive total; The overall grades are as follows:

Windows: C+ (+0.00pts)

Linux: B (+0.50pts)

FreeBSD: B+ (+0.25pts)

MacOSX: B (+0.33pts)

Ignore the fractional points in the brackets, that's only for people who are on the fence between two similar grades. All in all, I think I did a pretty decent job at analyzing each OS without prejudice, and if you felt that I did, well that's why I added the handicap, which is actually pretty generous. Feedback is welcome (no trolls please), and If you have any requests for a specifc review or comparison, feel free to say so in the comments (open to all humans with a computer). Thank you for reading.

No comments:

Post a Comment