Left Menu

Your Ad Here
Your Ad Here
Your Ad Here

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).
X Window system

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.

Timeline of major releases
Date Release
KDE 1
14 October 1996 Project announced by Matthias Ettrich
12 July 1998 KDE 1.0 released
6 February 1999 KDE 1.1 released
KDE 2
23 October 2000 KDE 2.0 released
26 February 2001 KDE 2.1 released
15 August 2001 KDE 2.2 released
KDE 3
3 April 2002 KDE 3.0 released
28 January 2003 KDE 3.1 released
3 February 2004 KDE 3.2 released
19 August 2004 KDE 3.3 released
16 March 2005 KDE 3.4 released
29 November 2005 KDE 3.5 released
KDE 4
11 January 2008 KDE 4.0 released
29 July 2008 KDE 4.1 released
27 January 2009 KDE 4.2 released

The KDE team releases new versions on a regular basis.



Window Managers :


KWin : The default Window Manager For KDE




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.

Version Date Information
GNOME 1 August 1997 GNOME development announced
1.0 March 1999 First major GNOME release
1.0.53 October 1999 "October"
1.2 May 2000 "Bongo"
1.4 April 2001 "Tranquility"
GNOME 2
2.0 June 2002 Major upgrade based on GTK2. Introduction of the Human Interface Guidelines.
2.2 February 2003 Multimedia and file manager improvements.
2.4 September 2003 "Temujin": Epiphany, accessibility support.
2.6 March 2004 Nautilus changes to a spatial file manager, and a new GTK+ file dialog is introduced. A short-lived fork of GNOME, GoneME, is created as a response to the changes in this version.
2.8 September 2004 Improved removable device support, adds Evolution.
2.10 March 2005 Lower memory requirements and performance improvements. Adds: new panel applets (modem control, drive mounter and trashcan); and the Totem and Sound Juicer applications
2.12 September 2005 Nautilus improvements; improvements in cut/paste between applications and freedesktop.org integration. Adds: Evince PDF viewer; New default theme: Clearlooks; menu editor; keyring manager and admin tools. Based on GTK+ 2.8 with cairo support.
2.14 March 2006 Performance improvements (over 100% in some cases); usability improvements in user preferences; GStreamer 0.10 multimedia framework. Adds: Ekiga video conferencing application; Deskbar search tool; Pessulus lockdown editor; Fast user switching; Sabayon system administration tool.
2.16 September 2006 Performance improvements. Adds: Tomboy notetaking application; Baobab disk usage analyser; Orca screen reader; GNOME Power Manager (improving laptop battery life); improvements to Totem, Nautilus; compositing support for Metacity; new icon theme. Based on GTK+ 2.10 with new print dialog.
2.18 March 2007 Performance improvements. Adds: Seahorse GPG security application, allowing encryption of emails and local files; Baobab disk usage analyser improved to support ring chart view; Orca screen reader; improvements to Evince, Epiphany and GNOME Power Manager, Volume control; two new games, GNOME Sudoku and glchess. MP3 and AAC audio encoding.
2.20 September 2007 Tenth anniversary release. Evolution backup functionality; improvements in Epiphany, EOG, GNOME Power Manager; password keyring management in Seahorse. Adds: PDF forms editing in Evince; integrated search in the file manager dialogs; automatic multimedia codec installer.
2.22 March 2008 Addition of Cheese, a tool for taking photos from webcams and Remote Desktop Viewer; basic window compositing support in Metacity; introduction of GVFS; improved playback support for DVDs and YouTube, MythTV support in Totem; internationalised clock applet; Google Calendar support and message tagging in Evolution; improvements in Evince, Tomboy, Sound Juicer and Calculator.
2.24 September 2008 Addition of the Empathy instant messenger, Ekiga 3.0, tabbed browsing in Nautilus, better multiple screens support and improved digital TV support.
2.26 March 2009 New Disc Burning application Brasero, simpler file sharing, media player improvements, support for multiple monitors and fingerprint reader support.

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

Here is a sample video :





Deliciousde.li.cio.us