- Open Source Voices : A History of Hackerdom
- Open Source Voices : Twenty Years of Berkeley UNIX
- Wikipedia : Comparison of BSD Operating Systems
- Wikipeida : Commercial Derivatives of FreeBSD
- Open Source Voices : The Linux Edge
- GNU : What's in a Name?
- GNU : Linux and the GNU Project
- About the Debian Project
- The Debian Social Contract
- Wikipedia : Debian Project History
- Wikipedia : Mozilla Foundation
- Wikipedia : The GIMP
- Wikipedia : The GIMP Release History
- Wikipedia : Blender
- FreeBSD
- OpenBSD
- NetBSD
- DragonFly BSD
These distributions are primarily based on the 4.4BSD Lite (which is the unencumbered version of UNIX), or based on another BSD distribution, which in turn was based on 4.4BSD Lite (for instance OpenBSD). While they all may be based on the same founding codebase, there are some differences in the goals of each project. For instance while the FreeBSD project seeks to create a general purpose operating system for a narrow set of architectures, the OpenBSD project aims more at creating a more secure, and correct implementation of UNIX. Another difference between these projects, is how they license their distribution. Some BSD distributions follow the philosophies of GNU and Free software more closely than others.
There are several commercial operating systems based on a BSD project, the most notable one being Apple's Mac OS X, based largely on FreeBSD work. Sun also based some of their operating systems on a BSD distribution. Other notable uses of BSD can be seen in the appliance marketplace: specialize systems that are designed to do one thing and one thing well, and include application appliances from NetApp, e-mail appliances from Sophos, and certain Dell embedded hardware solutions.
Let us now take a look at Linux, a FOSS operating system which has a striking resemblance to UNIX in many ways, which has seen not only great adoption in the desktop marketplace, but more so in the embedded systems world. While Linux may resemble UNIX, its code was written from scratch as opposed to other BSD projects that were based on the 4.4Lite release of BSD UNIX. In the article, the Linux Edge, Linus Torvalds, argues that Linux has succeeded because of good development models and good design principles.
Originally Linux was not designed to be portable - it was an operating system that Linus Torvalds designed and developed so that it would run on his Intel x86 based computer. However, during the initial development of Linux, a group ported the operating system to the Motorolla 68k series to support Apple, Sun and other hardware based on that architecture. Later, when Linus wanted to port the operating system to DEC ALPHA, he remembered the experience his colleagues had in porting Linux to the 68k series, and decided to rewrite Linux to better support portability. However, he challenged conventienal wisdom at the time, which was that kernels should abstract away the lower-level details to make the source more manageable (called microkernel architecture). Instead, Linus took a more pragmatic approach of not building such abstractions in, and instead just being more careful of the management of the Linux project to keep the source code clean. In practice, this meant having ground rules for the development of Linux. This resulted in an operating system with considerably less overhead than its microkernel counterparts and which as a consequence ran faster.
Essentially, the development process uses simple rules to determine whether contributed code should be incorporated into Linux. For instance, if the contributed code consists of a system interface, it will very rarely be made part of the Linux kernel, as adding these interfaces locks Linux into supporting that interface indefinitely. Other things, such as hardware support is more clear cut, and will likely be accepted. Ofcourse there are always gray areas, in which case the Linux team considers their choices very carefully as many things rely on the Linux architecture, and the choice can ultimately have a big impact on future development efforts. In addition, the modular architecture of Linux (such as kernel modules), means that development work can be done in a more clean, orderly fashion, and that functionality can be easily switched into Linux. He also mentions that it is his design philosophy that the kernel should be as simple as possible, and in theory should not need constant changing and fiddling about in most cases.
We now move on to Richard M. Stallman (the founder of the GNU project's) argument that not enough credit is being given to the GNU project with respect to the whole open source movement. For instance, he mentions that people refer to the Linux kernel as being the operating system, even though a more correct name would be GNU/Linux, as the operating system incorporates the Linux kernel (a small amount of code in comparison to an entire GNU/Linux operating system), and many packages from the GNU project. In fact recent surveys of how much GNU software is in a typical Linux distribution can be anywhere between 15 to 25 percent or more. The reason why credit needs to be given to projects that make use of GNU project components, isn't for only fame. Rather it is a historical reminder of why the importance of the free software movement and what the GNU project made possible. There is a real risk in GNU/Linux that the community will forget about the free software movement, and care more about adding more capabilities for Linux than securing the freedom that has been afforded to GNU/Linux for a long time. In fact he cites several examples of companies including proprietary, non-free software into their Linux distributions.
Debian is a popular Linux distribution that was started in August of 1993 by Ian Murdock, who was frustrated by the poor maintenance and bugs found in a Linux distribution he was using. It combines a free (such as Linux or Hurd) kernel, along with packages from a variety of sources, including the GNU project, to derive a complete operating system that can handle a variety of common computing tasks (i.e. browsing the web, playing games, listening to music, or word processing,etc.). All of these components typically come precompiled and ready to install for a variety of different architectures (although source is typically almost always included).
Debian has made a lot of progress from when its initial inception. Important milestones in the project include:
- The Development of the Debian Social Contract in 1996, the Debian Manifesto, and Debian Constitution, which covers the basic philosophy and principles of the Debian project.
- The development of the Advanced Packaging Tool, which significantly eases the installation of software on a Debian machine, as well as a "user friendly" Debian installer.
- The indirect creation of many successful Linux distributions (such as Ubuntu), which are essentially forks (or derivations) of the Debian distribution.
- The inclusion of thousands of new packages, many of which are updated from release to release.
- Support for a variety of different platforms (from Intel's x86 to AMD64, and other specialized devices like netbooks).
The Debian project has several crucial documents which form the philosophy of what they do. The Debian Social contract, which is a social contract between the free software community has the following promises:
- Debian will remain 100% free (i.e. every component of Debian will be free software)
- We will give back to the free software community (i.e. improvements in Debian get contributed back to the free software community)
- We will not hide problems (i.e. be transparent with the development process)
- Our priorities are our users and free software (i.e. put users and free software above their own needs)
- Works that do not meet our free software standards will be separated from the Debian distribution, but can be installed by users/distributors who choose to do so
- Free redistribution (i.e. you have the freedom to redistribute the software at no cost to you)
- Source Code (i.e. the software must include the source code with rights to modify and distribute changed works)
- Derived Works (i.e. the software must allow for derive works to be made under the same terms of the original software, in other words allow copylefted derived works)
- Distribution of source code can only be restricted if the license holder allows patch files to be distributed with the source so that modifications to the original source in effect can be made
- No Discrimination Against Persons or Groups (i.e. you cannot exclude certain people or groups from using the software).
- No Discrimination Against Fields of Endeavor (i.e. you cannot restrict usage of software for a particular endeavor, such as this software cannot be used in the military)
- Distribution of License, (i.e.everyone using the free programs must be given the same license as originally distributed)
- Licenses Must Not be Specific to Debian
- Licenses Must Not Contaminate Other Software (i.e. the license of the software must not place restrictions on other software)
- Examples of Licenses that support this philosophy include GPL,BSD, and Artistic licenses.
By far, one of the most successful open source projects to date is the Mozilla Firefox browser. The browser is developed by not only members of the open source community, but also paid developers who work for the Mozilla Foundation. What is interesting to look at is the history of Mozilla. Back in February of 1997, Netscape decided to release the source code of their Netscape suite to the open source world, with the Mozilla Organization being founded to continue development of the Mozilla Application Suite (which included a web browser, e-mail and newsgroup reader, as well as several other useful internet utilities). What became apparent early on, was that the real value of the Mozilla project, was its web browser, which eventually became known as Firefox. In 2003, the Mozilla Foundation, a non-profit organization was founded to continue support of the Mozilla projects, as it became clear that Netscape, and its parent AOL would cease supporting the Mozilla development effort and funding for the projects would surely go away. The intellectual property of Netscape (for which parts of the Mozilla projects were based on), was transferred to the Mozilla Foundation.
The GIMP (GNU Image Manipulation Program) is a popular free raster graphics editor. In fact many people compare the capabilities of the GIMP to that of Adobe Photoshop. The GIMP project originated as a semester long project created by two University of California, Berkeley students: Spencer Kimball and Peter Mattis in1995, and was made publicly available in January of 1996. Originally the GIMP was created for UNIX systems, although eventually it was ported to several different platforms including Linux, Windows and MAC OS X. An interesting aspect from a usability standpoint was that throughout its lifetime the GIMP has used three different GUI toolkit. Originally the GIMP used the Motif toolkit. However, Peter Mattis became frustrated with Motif, and developed his own GUI toolkit called GTK, which is used by many FOSS applications today. After some time, he rewrote the GTK toolkit to better support the object oriented paradigm, which he called GTK+, and the GIMP's UI code was transitioned to this third GUI toolkit. Another interesting tidbit about the GIMP is that it is one of few open source projects that takes the issue of usability seriously. Efforts have been made throughout its development life cycle to support internationalization, continuous improvements and refinements of the user interface between releases, as well as an interface design that naturally maps to Adobe Photoshop.
Finally, let us consider Blender, is free 3D graphics application that is released under the GPL. Originally Blender was shareware developed and marketed by Not a Number Technologies (NaN), which means that the software was originally proprietary software where source code was not freely available. However, around 2002, Nan, the creators of Blender went bankrupt, and the creators of the software (Ton Roosendaal), started a campaign to get the software released under the GPL. After raising enough funds to buy the rights from the creditors (around 100,000 euros), the team released the software under the GPL, and founded the Blender Foundation to continue the work being done on Blender.
No comments:
Post a Comment