The Evolution Of Linux
Ev-o-lu-tion - "A process in which something changes into a different and usually better form!"The Begining
In April 1991, Linus Torvalds, then 21 years old, started working on some simple ideas for an operating system. He started with a task switcher in Intel 80386 assembly language and a terminal driver. Then, on 26 August 1991, Torvalds posted to comp.os.minix:
| “ | I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since April, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). | ” |
| “ |
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months [...] Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(. [...] It's mostly in C, but most people wouldn't call what I write C. It uses every conceivable feature of the 386 I could find, as it was also a project to teach me about the 386. As already mentioned, it uses a MMU, for both paging (not to disk yet) and segmentation. It's the segmentation that makes it REALLY 386 dependent (every task has a 64Mb segment for code & data - max 64 tasks in 4Gb. Anybody who needs more than 64Mb/task - tough cookies). [...] Some of my "C"-files (specifically mm.c) are almost as much assembler as C. [...] Unlike minix, I also happen to LIKE interrupts, so interrupts are handled without trying to hide the reason behind them. |
” |
After that, many people contributed code to the project. By September 1991, Linux version 0.01 was released. It had 10,239 lines of code. In October 1991, Linux version 0.02 was released.
In December 1991, Linux 0.11 was released. This version was the first to be self-hosted - Linux 0.11 could be compiled by a computer running Linux 0.11. When he released version 0.12 in February 1992, Torvalds adopted the GNU General Public License (GPL) over his previous self-drafted license, which had not permitted commercial redistribution.
A newsgroup alt.os.linux was started, and on 19 January 1992, the first post to alt.os.linux was made.On 31 March 1992, alt.os.linux became comp.os.linux.
The X Window System was soon ported to Linux. In March 1992, Linux version 0.95 was the first to be capable of running X. This large version number jump (from 0.1x to 0.9x) was due to a feeling that a version 1.0 with no major missing pieces was imminent. However, this proved to be somewhat overoptimistic, and from 1993 to early 1994, 15 development versions of version 0.99 appeared.
On 14 March 1994, Linux 1.0.0 was released, with 176,250 lines of code. In March 1995, Linux 1.2.0 was released (310,950 lines of code).
Version 2 of Linux, released on 9 June 1996, was followed by additional major versions under the version 2 header:
- 25 January 1999 - Linux 2.2.0 was released (1,800,847 lines of code).
- 18 December 1999 - IBM mainframe patches for 2.2.13 were published, allowing Linux to be used on enterprise-class machines.
- 4 January 2001 - Linux 2.4.0 was released (3,377,902 lines of code).
- 17 December 2003 - Linux 2.6.0 was released (5,929,913 lines of code).
- 9 June 2009 - Linux 2.6.30 was released (11,637,173 lines of code).
The Most Common X Desktop Envirouments: KDE and GNOME
KDE:
KDE was founded in 1996 by Matthias Ettrich, who was then a student at the Eberhard Karls University of Tübingen. At the time, he was troubled by certain aspects of the Unix desktop. Among his qualms was that none of the applications looked, felt, or worked alike. He proposed the formation of not only a set of applications, but rather a desktop environment, in which users could expect things to look, feel, and work consistently. He also wanted to make this desktop easy to use; one of his complaints with desktop applications of the time was that his girlfriend could not use them. His initial Usenet post spurred a lot of interest, and the KDE project was born.
The name KDE was intended as a word play on the existing Common Desktop Environment, available for Unix systems. CDE was an X11-based user environment jointly developed by HP, IBM, and Sun, through the X/Open Company, with an interface and productivity tools based on the Motif graphical widget toolkit. It was supposed to be an intuitively easy-to-use desktop computer environment. The K was originally suggested to stand for "Kool", but it was quickly decided that the K should stand for nothing in particular. Additionally, one of the tips in certain versions of KDE 3 incorrectly states that the K currently is just meant to be the letter before L in the Latin alphabet, the first letter in the word Linux (which is where KDE is usually run).
Matthias Ettrich chose to use the Qt toolkit for the KDE project. Other programmers quickly started developing KDE/Qt applications, and by early 1997, a few applications were being released.
On 12 July 1998 KDE 1.0 was released. In the release announcement the KDE team outlined the project and its reasons for creation:
KDE is a network transparent, contemporary desktop environment for UNIX workstations. KDE seeks to fill the need for an easy to use desktop for Unix workstations, similar to the desktop environments found under the MacOS or Window95/NT. We believe that the UNIX operating system is the best operating system available today. In fact UNIX has been the undisputed choice of the information technology professional for many years. When it comes to stability, scalability and openness there is no competition to UNIX. However, the lack of an easy to use contemporary desktop environment for UNIX has prevented UNIX from finding its way onto the desktops of the typical computer user in offices and homes.
The second series of releases, KDE 2, introduced significant technological improvements. These included DCOP (Desktop COmmunication Protocol), KIO, an application I/O library, KParts, a component object model, allowing an application to embed another within itself, and KHTML, an HTML rendering and drawing engine.
The third series was much larger than the previous series, consisting of six major releases. The API changes between KDE 2 and KDE 3 were comparatively minor, meaning that the KDE 3 can be seen as largely a continuation of the KDE 2 series. All releases of KDE 3 were built upon Qt 3, which was only released under the GPL for Linux and Unix-like operating systems, including Mac OS X. For that reason, KDE 3 was only available on Windows through ports involving an X server.
KDE 4 is based on Qt 4 which is also released under the GPL for Windows and Mac OS X. Therefore KDE 4 applications can be compiled and run natively on these operating systems as well.
KDE 4 includes many new technologies and technical changes. The centerpiece is a redesigned desktop and panels collectively called Plasma which replaces Kicker, KDesktop, and SuperKaramba by integrating their functionality into one piece of technology, and is intended to be more configurable for those wanting to update the decades-old desktop metaphor. There are a number of new frameworks, including Phonon, a new multimedia interface making KDE independent of any one specific media backend, Solid, an API for network and portable devices, and Decibel, a new communication framework to integrate all communication protocols into the desktop. Also featured is a metadata and search framework, incorporating Strigi as a full-text file indexing service, and NEPOMUK with KDE integration
The release of KDE 4.0 was met with a mixed reception. While early adopters were tolerant of the lack of finish for some of its new features, the release was widely criticised because of a lack of stability and its "beta" quality. Many expected it to be an upgrade of KDE 3.5, when in fact features regressed due to its extensive changes - some of which are still works in progress. The criticism has emerged in spite of the environment being labelled as non-final in distributions such as openSUSE. On the other hand favourable reviews praised KDE 4.0 for its revolutionary changes. By the 4.2 release KDE 4 had nearly approached feature parity with KDE 3.5, so the release was generally well received.
The KDE team releases new versions on a regular basis.
Window Managers :
| Name | Version | KDE Version | Details |
|---|---|---|---|
| KWM | 1.0 | 1.0 | |
| KWin | 2.0 | 2.0 | Extended support for themes and window effects. |
| KWin | 3.0 | 3.2 | Improved support for the extended ICCCM standards from freedesktop.org |
| KWin | 4.0 | 4.0 | Compositing support and Compiz-like effects. |
As of KDE 4.* The Following Effecta are built in :
Accessibility
| Name | Description |
|---|---|
| Dim inactive | Darkens inactive windows |
| Invert | Inverts (negates) desktop and window colors |
| Looking glass | Enhanced screen magnifier |
| Magnifier | Zoom a section of the screen |
| Sharpen | Makes the entire desktop look sharper |
| Track mouse | Display a mouse cursor locating effect when a keyboard shortcut is pressed |
| Zoom | Magnify the entire desktop |
Appearance
| Name | Description |
|---|---|
| Minimizing animation | Animate the minimizing o windows |
| Translucency animation | Make windows translucent under different conditions |
| Magic Lamp | Simulate a magic lap when minimizing windows |
| Explosion | Make windows explode when they are closed |
| Blur | Blurs the background behind semi-transparent windows |
| Dialog parent | Darkens parent windows of active dialogs |
| Dim screen for administrator mode | Darkens the entire screen when requesting root privileges |
| Explosion | Make windows explode when they are closed |
| Fade | Make windows smoothly fade in and out when they are shown or hidden |
| Fall apart | Close windows fall into pieces |
| Login | Smoothly fade to the desktop when logging in |
| Logout | Desaturate the desktop when displaying the logout dialog |
| Minimize animation | Animates the minimizing of windows |
| Mouse mark | Allows you to draw lines over your desktop |
| Present windows | Zoom out until all open windows can be displayed side-by-side (Similar tovMac OS X's Exposé) |
| Scale in | Animate the appearing of windows |
| Shadow | Draw shadows under windows |
| Snow | Simulate snow falling over the desktop |
| Thumbnail aside | Display window thumbnails on the edge of the screen |
| Translucency | Make windows translucent under different conditions |
| Wobbly windows | Deform windows while they are moving |
Miscellaneous
| Name | Description |
|---|---|
| Show FPS | Display KWin's performance in the corner of the screen |
| Show paint | Highlight areas of the desktop that have been recently repainted |
| Video record | Record a video of your desktop |
Window management
| Name | Description |
|---|---|
| Box switch | Display thumbnails of windows in the alt+tab window switcher |
| Desktop cube | Dsiplay each of the desktops on a slice of a cube |
| Desktop Cylinder | Dsiplay each of the desktops on a slice of a Cylinder |
| Desktop Sphere | Dsiplay each of the desktops on a slice of a Sphere |
| Cover switch | Display a Cover Flow effect for the alt+tab window switcher |
| Desktop grid | Zoom out so all desktops are displayed side-by-side in a grid |
| Flip switch | Flip through windows that are in a stack for the alt+tab window switcher |
| Present windows | Zoom out unto openen windows can be displayed side by side |
Tools
| Name | Description |
|---|---|
| Show FPS | Show kwins performance in the corner of the screen |
| Show Paint | Hightligth areas of the desktop that recenly have been updated |
Here is a sample Video
GNOME:
In 1996, the KDE project was started. KDE was free software from the start, but members of the GNU project were concerned with KDE's dependence on the then non-GPL Qt widget toolkit. In August 1997, two projects were started in response to this issue: the Harmony toolkit (a free replacement for the Qt libraries) and GNOME (a different desktop not using Qt, but built entirely on top of GPL and LGPL licensed software).The initial project leaders for GNOME were Miguel de Icaza and Federico Mena.
In 1998, Qt became GPL. While Qt was dual-licensed under both the QPL and the GPL, the freedom to link proprietary software with GTK+ at no charge made it differ from Qt. With Qt licensed under the GPL, the Harmony Project stopped its efforts at the end of 2000, as KDE did not depend on non-GPL software anymore. In contrast, as of 2009, the development of GNOME has not stopped.
In March 2009, Qt 4.5 was released, adding another licensing option, the LGPL.
GNOME 3
The next version
of the desktop environment was
officially
announced at the 2008 GUADEC
conference held in Istanbul
in July. Release has been targeted for 2010, in place of version 2.30
of the current branch. Although the desktop will undergo a major
revision, changes planned so far are mostly incremental
Metacity: The Default Window manager For GNOME :
Metacity is a compositing window manager used by default in the GNOME desktop environment. The development of Metacity was started by Havoc Pennington and it is released under the GNU General Public License.
Before the introduction of Metacity in GNOME 2.2, GNOME used Enlightenment and then Sawfish as its window manager. Although Metacity is part of the GNOME project and designed to integrate into the GNOME desktop, it does not require GNOME to run, and GNOME can be used with different window managers provided that they support the part of the ICCCM specification that GNOME requires.
Metacity uses the GTK+ graphical widget toolkit to create its user interface components, which makes it themeable and makes it blend in with other GTK+ applications.
Metacity works with works with Compiz without any problems :
Compiz : The Project




Compiz is one of the first compositing window managers for the X Window System that uses 3D graphics hardware to create fast compositing desktop effects for window management. The effects, such as a minimization effect and a cube workspace are implemented as loadable plugins. Because it conforms to the Inter-Client Communication Conventions Manual standard, Compiz can substitute for the default Metacity in GNOME or KWin in KDE.
Some of its features mimic those of competitors, such as Exposé in Apple's Mac OS X and an Alt-Tab application-switcher that uses live previews, instead of just icons. The Composite extension to X is used, as is the OpenGL extension GLX_EXT_texture_from_pixmap . The first version of Compiz was released as free software by Novell (SUSE) in January 2006 in the wake of the also new Xgl.
Initially, Compiz only worked with 3D hardware which was supported by Xgl. Most NVIDIA and ATI graphics cards are known to work with Compiz on Xgl. Since May 22, 2006 Compiz works on the standard X.Org Server, by using AIGLX. Besides the Intel GMA graphics cards, AIGLX also supports using the ATI graphics cards (including R300,R400 and R500 cards) using the open-source radeon driver which supports GLX_EXT_texture_from_pixmap since fall 2006. NVIDIA's binary drivers (since Version 1.0-9629) support GLX_EXT_texture_from_pixmap on standard X.Org server. ATI/AMD's binary drivers do since version 8.42
On March 30, 2007 the discussions between the Beryl (a fork of Compiz) and Compiz communities led to a merge of the two communities which results in two new software packages: Compiz, (also Compiz-core) which contains only the core functionality of compiz and base plugins Compiz Fusion, consisting of the plugins, decorators, settings tools and related applications from the Beryl and Compiz communities. Its main activity is focused in installation, configuration and additional plugins to be added to the core functionalities of Compiz. It has been also agreed to fund a code review panel consisting of the best developers from each community who will see that any code included in a release package meets the highest standards and is suitable for distribution in an officially supported package.
On February 2nd, 2009 a conference call was held between developers of Compiz, Compiz++, NOMAD and Compiz Fusion where it was decided to merge the projects together into a unified project, simply named Compiz, with a unified roadmap.
The Following Effects Are Built In :
Internal
- translucency, dimming, desaturation
Included plugins
- Annotate: draw things on top of all windows
- Clone: duplicate output on two screens
- Cube: each virtual desktop becomes a face on a prism
- Decoration: a plugin to communicate decoration settings to a decorator
- D-Bus: D-Bus interfacing
- Fade: windows fade in and out
- Gconf: settings come from GNOME
- Ini: Text based configuration
- Inotify: an inotify plugin which allows plugin developers to easily access inotify. It is currently used to notify settings programs when new plugins are added to the plugins directory.
- Minimize: windows minimize (and maximize/restore) with an animation effect
- Move: window moving
- Place: placement of new windows
- Png: allows plugin developers to load PNG files as textures without worrying about the image format.
- Resize: window resizing
- Rotate: the desktop cube can be rotated
- Scale: an overview of all open windows (similar to Mac OS X's Exposé)
- Svg: allows plugin developers to load svg files as textures. Other image plugins can be added so that extra image types will be seamlessly supported.
- Switcher: active window can be chosen with Alt-Tab
- Video: accelerated video output
- Water: ripples trailing mouse and rain effect
- Wobbly: windows wobble while they move
- Zoom: magnifies a part of screen
Community plugins (Compiz Fusion)
- Animation: animation effects for window events
- Benchmark: plugin to gauge performance
- Bs: brightness and saturation control
- Crashhandler: crash handling through gdb and recovery
- Cube Gears: 3D animated gears in the center of the cube
- Cube Reflection: Draws a reflection of the cube
- Group And Tabs: group windows and access them through a tab bar similar to the well-known feature in browsers
- Negative: inverts color of a window or screen
- Put: moves windows using key binds
- Reflection: watermarks window decorations, similar to Aero-Glass by default
- Screenshot: mode to capture screen regions with the mouse
- Shift Switcher: Provides Flip 3d and Cover Switching of windows
- State: set default opacity and other options for types of windows
- Trailfocus: unfocused windows fade with time
- Mousegestures: advanced mouse gestures to control effect













