Thanks to Google and Wikipedia, research is a lot easier nowadays. I must also acknowledge Matthew Barr. Below is what I am presenting tomorrow, it is 13 pages long...
Introduction to Operating Systems
If you have a computer, then you have heard about operating systems. Any desktop or laptop PC that you buy normally comes pre-loaded with Windows XP. Macintosh computers come pre-loaded with OS X. Many corporate servers use the Linux or UNIX operating systems. The operating system (OS) is the first thing loaded onto the computer -- without the operating system, a computer is useless.
What Kinds Are There?1
Within the broad family of operating systems, there are generally four types, categorized based on the types of computers they control and the sort of applications they support. The broad categories are:
* Real-time operating system (RTOS) - Real-time operating systems are used to control machinery, scientific instruments and industrial systems. An RTOS typically has very little user-interface capability, and no end-user utilities, since the system will be a "sealed box" when delivered for use. A very important part of an RTOS is managing the resources of the computer so that a particular operation executes in precisely the same amount of time every time it occurs. In a complex machine, having a part move more quickly just because system resources are available may be just as catastrophic as having it not move at all because the system is busy.
* Single-user, single task - As the name implies, this operating system is designed to manage the computer so that one user can effectively do one thing at a time. The Palm OS for Palm hand-held computers is a good example of a modern single-user, single-task operating system.
* Single-user, multi-tasking - This is the type of operating system most people use on their desktop and laptop computers today. Microsoft's Windows and Apple's Mac OS platforms are both examples of operating systems that will let a single user have several programs in operation at the same time. For example, it's entirely possible for a Windows user to be writing a note in a word processor while downloading a file from the Internet while printing the text of an e-mail message.
* Multi-user - A multi-user operating system allows many different users to take advantage of the computer's resources simultaneously. The operating system must make sure that the requirements of the various users are balanced, and that each of the programs they are using has sufficient and separate resources so that a problem with one user doesn't affect the entire community of users. Unix, VMS and mainframe operating systems, such as MVS, are examples of multi-user operating systems.
Within the broader context of the philosophy of how they are made, most software that you buy or download only comes in the compiled ready-to-run version. Compiled means that the actual program code that the developer created, (the source code), has run through a special program called a compiler that translates it into a form that the computer can understand. It is extremely difficult to modify the compiled version of most applications and nearly impossible to see exactly how the developer created different parts of the program. Most commercial software developers see this as an advantage that keeps other companies from copying their code and using it in a competing product. It also gives them control over the quality and features found in a particular product. This is the closed source or proprietary software philosophy.
Open source software is at the opposite end of the spectrum. The source code is included with the compiled version and modification or customization is actually encouraged. The software developers who support the open source concept believe that by allowing anyone who's interested to modify the source code, the application will be more useful and error-free.17
It is imperative at this point to differentiate between open source software and another widely-used term which is free software, where the free is short for freedom. The term free software is often confused with programs whose executables are given away at no charge, but whose source code cannot be viewed, modified, or redistributed. Conversely, the term open source is sometime used to mean software whose source code is visible, but for which there are limitations on use, modification, or redistribution. We use the term open source for its usual meaning, that is, software which has its source code freely available for use, viewing, modification, and redistribution.
Open source describes the principles and methodologies to promote open access to the production and design process for various goods, products and resources. The term is most commonly applied to the source code of software that is made available to the general public with either relaxed or non-existent intellectual property restrictions. This allows users to create user-generated software content through either incremental individual effort, or collaboration. The open source model can allow for the concurrent use of different agendas and approaches in production, in contrast with more centralized models of development such as those typically used in commercial software companies. Open source as applied to culture defines a culture in which fixations are made generally available. Participants in such a culture are able to modify those products and redistribute them back into the community. On the other hand, open-source software is an antonym for closed source software and refers to any computer software whose source code is available under a license or arrangement such as the public domain that permits users to study, change, and improve the software, and to redistribute it in modified or unmodified form. It is often developed in a public, collaborative manner.
Open source software development is the process by which open source software or similar software whose source is publicly available) is developed.
Linux and its development
To gain a better understanding of open source and its implications, it is useful to consider its origins. In 1984, Richard Stallman founded the Free Software Foundation and launched the GNU project, with the aim of producing a free operating system that would be entirely compatible with the proprietary Unix system. Stallman also laid down some new rules for the licensing of this software, based around that he calls "copyleft". Essentially, anyone has permission to run the software, copy it, modify it and distribute modified versions so long as they do not add any restrictions of their own. In fact, selling modified versions of software licensed under the GNU General Public License (GPL) for profit is also permitted. Herein lays the most common misconception surrounding "free" software. According to Stallman's own Free Software Foundation website, to properly understand this philosophy you should think of "free" as in "free speech" not "free beer". In other words, the GPL is about freedom.
By 1992, Stallman had completed almost all of the necessary components of his operating system including a shell, editor, compiler and assembler all except the kernel. The kernel is the program at the heart of the operating system that allocates resources to the other programs that you run without it, the rest of the system is useless. However, around the same time, a Finnish student named Linus Torvalds then running a system called Minix on his own machine began work on his own operating system. Torvalds released version 0.02 of his work which he dubbed Linux under the GNU General Public License, which provides a good legal definition of open source software. A lot of people around the world downloaded Linux and began working with it. Many of these users were programmers in their own right and made modifications to the source code that Torvalds had included. Over the next three years, Torvalds received these modified versions from the other programmers and incorporated many of the changes into the baseline version and released Linux version 1.0 in 1994.6
A common concern for end-users who wish to use open source software is the lack of a warranty and technical support. Because the software's license encourages modification and customization, it is nearly impossible to support. This is why Red Hat Software, founded in 1994, created the "Official Red Hat Linux" and is able to sell this normally "free" software. The main value that Red Hat adds to the package is a warranty and technical support. For most businesses, the assurance of technical support has been a key factor in the decision to buy Linux instead of simply downloading it for free. In addition to Red Hat, there are several other companies that have packaged Linux, usually with additional software, for resale.
The fact that Torvalds' and Stallman's source code was freely available to other interested programmers allowing them to improve upon it is central to the open source philosophy. This idea is perhaps most succinctly expressed in the proposition: "Given enough eyeballs, all bugs are shallow", coined by Eric Steven Raymond in his paper The Cathedral and the Bazaar7. This idea is also one of the most compelling arguments in favour of open source software. With an army of willing volunteers, from a wide range of technical backgrounds, bugs in open source applications are dealt with quickly and efficiently. Fixes are made available immediately, most commonly by means of the Internet, and at no cost to the end user. The fact that those developing open source software are doing so out of a personal interest, or need for a particular application themselves, means that they are extremely motivated to produce the best, most stable and secure software possible.
History and development of Sun Solaris
By contrast, commercial, proprietary software is produced by a selected group of developers with a much more narrow range of expertise. Their primary motivation is their salary. An example of where this approach may have resulted in less secure software might be the recurring problem of buffer overflow in Microsoft Windows products such as those recently exposed in Windows' processing of JPEG images. Some proponents of the open source model of software development might argue that such a "blind spot" which may be considered a security risk if the overflow condition can be exploited to execute malicious code might never have arisen if Microsoft products were not developed in such a resolutely "closed source" environment.
Solaris for example, is a computer operating system developed by Sun Microsystems, which has been closed source for decades now. It is certified against the Single Unix Specification as a version of Unix. The next version of Solaris is scheduled to be open source.18
In the early 1990s Sun replaced the BSD-derived SunOS 4 with a version of UNIX System V Release 4 (SVR4), jointly developed with AT&T. The underlying release name was SunOS 5.0, but a new marketing name was introduced at the same time: Solaris 2. While SunOS 4.1.x micro releases were retroactively named Solaris 1 by Sun, the name Solaris is almost exclusively used to refer to SVR4-derived SunOS 5.0 and later.
Solaris is considered to be the SunOS operating system plus a graphical user environment, ONC+, and other components. The SunOS minor version is included in the Solaris release name; for example, Solaris 2.4 incorporated SunOS 5.4. After Solaris 2.6, Sun dropped the "2." from the name, so Solaris 7 incorporates SunOS 5.7, and the latest release SunOS 5.10 forms the core of Solaris 10.
Summary of the strengths of Open Source
The fact that Torvalds' source code was freely available to other interested programmers, allowing them to improve upon it, is central to the open source philosophy. This idea is also one of the most compelling arguments in favour of open source software. With an army of willing volunteers, from a wide range of technical backgrounds, bugs in open source applications are dealt with quickly and efficiently. Fixes are made available immediately, most commonly by means of the Internet, and at no cost to the end user. The fact that those developing open source software are doing so out of a personal interest, or need for a particular application themselves, means that they are extremely motivated to produce the best, most stable and secure software possible.3
By contrast, commercial, proprietary software is produced by a selected group of developers with a much more narrow range of expertise. Their primary motivation is their salary. An example of where this approach may have resulted in less secure software might be the recurring problem of buffer overflow in Microsoft Windows products, such as those recently exposed in Windows' processing of JPEG images. Some proponents of the open source model of software development argue that such a "blind spot", which may be considered a security risk if the overflow condition can be exploited to execute malicious code, might never have arisen if Microsoft products were not developed in such a resolutely "closed source" environment.4
Summary of the weaknesses of Open Source
Most closed source operating system users claim that open source products have an overall higher total cost of ownership (TCO) than closed source programs because of the 'ease of use of closed source software', resulting in less work and lower staff wages.2
As at mid-2006, closed source operating systems Microsoft Windows and Mac OSX between them accounted for an estimated 92.2% of the desktop operating system market. The advantage of this over open source is that naturally it would be a lot easier for a user to find support within his immediate environment.
Figure: Microsoft's dominance of the desktop operating system market.2Because of legal issues, it is easier to get multimedia codecs for proprietary software. Most multimedia codecs available on the open source platform are reverse engineered.
Because of the dominance of Microsoft Windows in the desktop market, majority of hardware vendors tend to ignore open source Operating Systems such as Linux when they are creating drivers for their products. As a result, some hardware may not work out of the box with Linux and locating, configuring and then installing drivers for such hardware would consume valuable time and resources.9
Open Source vs Closed Source
In The Cathedral and the Bazaar, Raymond extols the virtues of open source development over more "traditional" methods. He proposes that "treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging". "Effective debugging" would include the detection and correction of security flaws as well as logical errors and other bugs, so does that make open source software more secure? Microsoft disagrees. By keeping its source code under lock and key, Microsoft claims that it is not exposed to hackers and is therefore more secure16. However, it may be argued that Microsoft's own jealously-guarded dominance over the home and business software market, coupled with its increasingly arrogant-looking insistence on closed source practices, make it an all-the-more attractive target for hackers, script kiddies and virus writers.4
Security considerations aside, another persuasive argument for open source software is the cost. Total Cost of Ownership (TCO) is an increasingly important factor to be considered when making any major software or hardware purchase. Simply put, the TCO should express not only the initial cost of purchasing the system, but also the ongoing costs incurred by continuing to maintain and support the system, the "lifecycle of costs". For any IT system, this will conceivably include training costs (for both end users and support staff), maintenance contracts with suppliers and future upgrade costs. The upfront licensing costs of proprietary software would appear to make open source software, which is essentially "free", unless there is a charge for distribution the clear winner in terms of cost of ownership. However, in practice, the advantage may not be so clear cut. Taking the broad example of making a choice between Linux and Windows operating systems in an enterprise environment, Microsoft would argue that choosing Windows, with its out-of-the-box functionality and familiar, consistent-looking GUI interface, results in a lower TOC in terms of IT staffing costs. This sentiment is echoed by many high profile business people, including Barclays Bank's Chief Technology Officer, Kevin Lloyd, who cites "terms of service" as the main reason behind his recent decision to choose a Microsoft desktop over Linux alternatives10. It must also be considered that, whilst there are free distributions of Linux available, most corporations will prefer to purchase theirs from one of the big players in the open source market, such as Red Hat, IBM and Novell, who provide product warranties and service agreements for a fee9.
Just as vocal, however, are those who believe that open source software offers a considerable saving over licensed proprietary software. Indeed, the UK government's October 2004 report also concluded that "adoption of Open Source software can generate significant savings in hardware and software costs"5. It was also suggested that a typical hardware refresh period for open source systems was 6-8 years (for a Linux system), compared with a 3-4 year period for Windows-based systems. If this is the case, the effects on the total cost of ownership for Linux systems are likely to be significant.
In reality though, there are several factors that may make it difficult to compare Open Source and Closed Source.
* There are so many Open Source variants, each with different functionalities.
* Price and support differ based on editions, distributors, and OEM products.
* Major OEM vendors of new computers may also choose to bundle additional useful software in addition to the operating system installed.
* There are often multiple programs to choose from that accomplish the same task within each operating system, each with a different range of functionalities.
* There are conflicting claims about each operating system based on the marketing and research done on the topic.
Linux distributions used to be criticized as being very involved and difficult for the average user to install. Today, some distributions have simplified the installation and offer a "LiveDistro"; this allows users to boot Linux directly from a CD or DVD17.
It is possible to do a Linux installation without any user interaction at all (except pressing the power button and usually one or two keys to start a network boot) by means such as the FAI (Fully Automatic Installation). However, this requires an install server, which is quite time expensive to create. This method of installation is only profitable when there are many similar computers to be installed, such as in a university or large enterprise.
The Windows install process for example, uses a wizard to guide users through the install process. Drivers are often installed separately.
Ease of use
It has been widely believed that usability is proportional to market share, although there are no credible statistics to back up this belief. The usability of Apple's Mac OS, Microsoft's Windows, and Linux, are comparable, though their market shares are disparate.
In light of this emphasis on convention, the strongest argument against Linux usually comes from the perspective of most non-technical Windows users. They tend to complain that it is not Windows. Any change, beneficial or not from a technical viewpoint, harms apparent usability. A recipe for success would therefore be to mimic Windows. Some distributions, such as Linspire and Kubuntu, have done that17.
Total cost of ownership
Closed source advocates suggest that their systems (mostly Microsoft Windows based systems) are better off in the long term because of their ease of use, resulting in less work and lower staff wages11.
However, those claims are disputed by open source advocates. They say that though higher staffing costs may result from the expense of employing Linux administrators, this ignores the fact that Linux system administration tends to be more efficient and each administrator is able to handle more servers. They also point out that an advert by Microsoft that claimed "Linux was [...] 10 times more expensive than Windows Server 2003", was "misleading", as the hardware chosen for the Linux server was needlessly expensive. Linux, in fact, has a much lower requirement for modern hardware than Windows. Most modern versions of Linux will still run on a Pentium 1 with 128 MB ram. Some distributions, such as Slackware or Damn Small Linux, will run on an i486 with 16 MB. RAM.
For an operating system to be subjectively 'stable', numerous components must operate synchronously. Not all of these components are under the control of OS vendor, so while Open Source and Closed kernels may be stable, poorly written applications and drivers can hamstring both. However, there have been a larger number of cases of such instability in closed source systems. Much of stability is inherent in the extent to which the operating system is structured to thwart the consequences of bad behaviour by third party installations.
Much of the reputation Windows has for instability can be traced to Windows 95, 98, and ME, which were notorious for displaying the blue screen of death (BSOD) upon crashing. Three weaknesses with these particular Windows versions increased the likelihood such a crash would occur17.
In terms of security, it is important to remember that the ideal victim software for a malware piece is one that is as widely used as possible (to maximize spread), as slowly developed/patched as possible (to maximize damage time, and minimize malware development effort), and as monolithic as possible (to maximize potential damage extent inside the system, and minimize complexity of the malware program). Windows is a remarkable example of these three characteristics.
On the other hand, individual Open Source programs are very dynamic, so potential malware should evolve fast to keep up. Moreover, a Linux system for example, is very compartmentalized, both by separating user privileges among them and with the root user, and because very different software pieces coexist, without a central "backbone" to act as spread vector inside the OS.
Viruses have been written for Windows, many thousand have been propagated. Users are advised to install and run anti-virus programs, on the other hand, while viruses have been written for Linux, none have yet propagated successfully.
Closed source proponents claim that their platform is more secure because its code is hidden, thus providing security by obscurity. Only company programmers can fix bugs. The inherent weakness in this is that it may take such programmers a long time to fix such bugs. Open source proponents on the other hand claim that their platform is more secure because all of its code is reviewed by so many people that bugs become useless very quickly.
Figure: Web server share illustrating open source dominance12
The advantage that open source systems enjoy in terms of security means that Open Source systems run by far the larger share of the internet backbone.
In the final analysis, it may be argued that the merits of open source versus proprietary software are largely academic: what really matters is whether anyone uses them. Whilst market share is not an indication of quality, nor any vindication of dubious marketing techniques, it does serve to put the issue into perspective. It is clear that closed source in the form of Microsoft dominates the home PC and business workstation market with their operating systems and productivity software. However, there are a number of key areas in which open source alternatives have a significant or greater market share than that of any proprietary software. For example, the web browser market is entirely dominated by Microsoft, with its Internet Explorer accounting for between 80-85% of the most popular browsers over the last couple of years (quite clearly as a result of the company's bundling of IE with Windows and forcing the once dominant Netscape all but out of existence). However, the Mozilla Foundation spun off from the remains of Netscape has released the Firefox browser. Due perhaps to the combination of its small, fast, efficient design, fervent support from the open source community and a long list of security vulnerabilities in the comparatively bloated Internet Explorer, Firefox has already made significant gains and has overtaken another closed source browser, Mac Safari, to become the number two browser.
It is difficult to say what the future holds for open source software. On the one hand, the financial might and marketing scruples of the proprietary software giants, such as Microsoft, would seem to suggest that open source alternatives will remain just that an alternative to the dominant proprietary offerings. On the other hand, the increased interest in, and awareness of, open source can only bode well for its future proliferation.
1. How Operating Systems Work
3. Stephen Weber. The Success Of Open Source, p47, Harvard University Press, 2004
7. Eric S. Raymond. The Cathedral & the Bazaar, O'Reilly, 2001
9. IDC Puts Windows Ahead of Linux in TCO Study, December, 2002
11. Study finds Linux has higher total cost of ownership than Windows, Computer Weekly, 7 April 2004
13. Microsoft vs the US Justice Department, BBC News
16. Microsoft's Get The Facts