You are on page 1of 85

The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems.

It is one of the most prominent examples of free and open source software. The Linux kernel is released under the GNU General Public License version 2 (GPLv2), (plus some firmware images with various licenses), and is developed by contributors worldwide. Day-to-day development takes place on the Linux kernel mailing list.

The Linux kernel was initially conceived and created by Finnish computer science student Linus Torvalds in 1991. Linux rapidly accumulated developers and users who adopted code from other free software projects for use with the new operating system. The Linux kernel has received contributions from thousands of programmers. Many Linux distributions have been released based upon the Linux kernel.

History of Linux

In 1991, in Helsinki, Linus Torvalds began a project that later became the Linux kernel. It was initially a terminal emulator, which Torvalds used to access the large UNIX servers of the university. He wrote the program specifically for the hardware he was using and independent of an operating system because he wanted to use the functions of his new PC with an 80386 processor. Development was done on MINIX using the GNU C compiler, which is still the main choice for compiling Linux today (although the code can be built with other compilers, such as the Intel C Compiler)

As Torvalds wrote in his book Just for Fun, he eventually realized that he had written an operating system kernel. On 25 August 1991, he announced this system in a Usenet posting to the newsgroup "comp.os.minix.³ Hello everybody out there using 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, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus ( PS. Yes ± it's free of any minix code, and it has a multithreaded 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 :-(. ²Linus Torvalds

The name
Linus Torvalds had wanted to call his invention Freax, a portmanteau of "freak", "free", and "x" (as an allusion to Unix). During the start of his work on the system, he stored the files under the name "Freax" for about half of a year. Torvalds had already considered the name "Linux," but initially dismissed it as too egotistical.

In order to facilitate development, the files were uploaded to the FTP server ( of FUNET in September 1991. Ari Lemmke, Torvald's coworker at the University of Helsinki who was one of the volunteer administrators for the FTP server at the time, did not think that "Freax" was a good name. So, he named the project "Linux" on the server without consulting Torvalds. Later, however, Torvalds consented to "Linux".

The designation "Linux" was initially used by Torvalds only for the Linux kernel. The kernel was, however, frequently used together with other software, especially that of the GNU project. This quickly became the most popular adoption of GNU software.

In June 1994 in GNU's bulletin, Linux was referred to as a "free UNIX clone", and the Debian project began calling its product Debian GNU/Linux. In May 1996, Richard Stallman published the editor Emacs 19.31, in which the type of system was renamed from Linux to Lignux. This spelling was intended to refer specifically to the combination of GNU and Linux, but this was soon abandoned in favor of "GNU/Linux".

This name garnered varying reactions. The GNU and Debian projects use the name, although most developers simply use the term "Linux" to refer to the combination. Torvalds announced in 1996 that there would be a mascot for Linux, a penguin. Larry Ewing provided the original draft of today's well known mascot based on this description. The name Tux was suggested by James Hughes as derivative of Torvalds' UniX

Kernel There are many other well-known maintainers for the Linux kernel beside Torvalds such as Alan Cox and Marcelo Tosatti. Cox maintained version 2.2 of the kernel until it was discontinued at the end of 2003. Likewise, Tosatti maintained version 2.4 of the kernel until the middle of 2006.

Andrew Morton steers the development and administration of the 2.6 kernel, which was released on 18 December 2003 in its first stable incarnation. Also the older branches are still constantly improved.

Community The largest part of the work on Linux is performed by the community: the thousands of programmers around the world that use Linux and send their suggested improvements to the maintainers. Various companies have also helped not only with the development of the Kernels, but also with the writing of the body of auxiliary software, which is distributed with Linux.

It is released both by organized projects such as Debian, and by projects connected directly with companies such as Fedora and openSUSE. The members of the respective projects meet at various conferences and fairs, in order to exchange ideas. One of the largest of these fairs is the LinuxTag in Germany (currently in Berlin), where about 10,000 people assemble annually, in order to discuss Linux and the projects associated with it.

Open Source Development Lab and Linux Foundation The Open Source Development Lab (OSDL) was created in the year 2000, and is an independent nonprofit organization which pursues the goal of optimizing Linux for employment in data centers and in the carrier range. It served as sponsored working premises for Linus Torvalds and also for Andrew Morton (until the middle of 2006 when Morton transferred to Google).

Torvalds works full-time on behalf of OSDL, developing the Linux Kernels. On January 22, 2007, OSDL and the Free Standards Group merged to form The Linux Foundation, narrowing their respective focuses to that of promoting GNU/Linux in competition with Microsoft Windows

Companies Despite being open-source, a few companies profit from Linux. These companies, most of which are also members of the Open Source Development Lab, invest substantial resources into the advancement and development of Linux, in order to make it suited for various application areas.

This includes hardware donations for driver developers, cash donations for people who develop Linux software, and the employment of Linux programmers at the company.

Some examples are IBM and HP, which use Linux on their own servers, and Red Hat, which maintains its own distribution. Likewise Nokia supports Linux by the development and LGPL licensing of Qt, which makes the development of KDE possible, and by employing some of the X and KDE developers.

Microsoft contributions In July 2009 Microsoft contributed 20,000 lines of code to the Linux kernel. The contribution consisted of Hyper-V drivers, which improve the performance of virtual Linux guest systems in a Windows hosted environment. Microsoft licensed its Linux Hyper-V drivers under the GPL.

Microsoft was forced to make the code contribution when Vyatta principal engineer and Linux contributor Stephen Hemminger discovered that Microsoft had incorporated a Hyper-V network adriver, with GPLlicensed open source components, statically linked to closed-source binaries in contravention of the GPL license.

Microsoft contributed the drivers to rectify the license violation, although the company attempted to portray it as a charitable act, rather than one to avoid legal action against it.

To put this contribution into perspective, in 2001, at Microsoft's Annual Financial Analysts Meeting in Seattle, Microsoft CEO Steve Ballmer said Linux has "the characteristics of communism that people love so very, very much about it"in a 2001 interview with the Chicago Sun-Times, Ballmer stated "Linux is a cancer that attaches itself in an intellectual property sense to everything it touches."

The Microsoft-contributed drivers were not supported by Microsoft and this left them at risk of being dropped from the kernel at version 2.6.33. The prospect of the drivers being dropped did briefly result in Microsoft developers conducting more work to maintain the code, but their effort did not endure and their code is slated for removal as of kernel version 2.6.35.

Versions and Features

Linux 0.01 (1991 Sept.)

‡Still needs Minix and special gcc compiler ‡230 kbyte source code ‡incl. scripts and header files ‡minimal version, ‡with floppy ‡keyboard and serial driver software ‡ext file system ‡386 CPU support ‡UNIX-Shell bash

Linux 0.02 (1991 Sept. )

‡bash and gcc were ported by MINIX ‡needs 4 mbyte RAM for compiling software

Linux 0.03 (1991 Oct.)

‡small user group ‡ gcc can compile himself on Linux ‡only needs 2 mbyte RAM for compiling software

Linux 0.11 (1991 Nov.)
‡international development team ‡ first fixed disk driver software ‡ mkfs/fsck/fdisk program ‡Hercules/MDA/CGA/EGA/VGA graphic ‡US/German/French/Finnish Keyboard ‡console can beep ‡ Linux now has his own development environment

Linux 0.12 (1992 Jan.)
‡for the first time page-to-disk function builtin ‡Linux is put under the GPL ‡virtual memory ‡Hard-disk caching ‡POSIX job-control ‡more persons programming linux ‡multi-threading file system

Linux 0.96 (1992 April)
‡programmer and user group raised up ‡ X Window system from the MIT is used for the first time

Linux 1.0 (1994 Märch)
‡4,500 kbytes source code ‡incl. scripts and header files ‡more than 170,000 lines of source code ‡approx. 100 developers ‡approx. 100,000 users ‡first SCSI and sound driver software ‡for the first time networkable ‡ext2 file system

Linux 1.2 (1995 Märch)
‡250,000 lines source code ‡about 50% are hardware driver ‡porting to alpha ‡MIPS and SPARC CPUs ‡extended network functions like IPForwarding and NFS, IPX, AppleTalk

Linux 2.0 (1996 June)
‡20,300 kbytes source code ‡incl. scripts and header files ‡approx. 800,000 lines of source code ‡porting to m68k and PowerPC CPUs ‡multi-processor capable up to 16 CPUs (experimental) ‡symbol figure "Tux the penguin" was born

Linux 2.1.32 (1997 April)

‡after a trademark right dispute Torvalds lets register Linux as a trademark

Linux 2.2.0 (1999 Jan.)
‡269 developers works on linux ‡approx. 10 million users ‡improved SMP support ‡IPv6 support as first operating system ‡extended software support by companies like Star Office, Netscape

Linux Kernel 2.0.39 (2001 Jan.)

‡contains bug fixes for security holes

Linux 2.4.0 375 (2001 Jan.)
‡375 developers works on linux, ‡approx. 15 million users, ‡runs on altogether 13 hardware plate forms ‡ improved network support ‡improved performance for memory transactions ‡ extended hardware support

Linux Kernel 2.2.25 (2003 Märch)
‡Better CD-ROM support ‡Sound support ‡support x86 processor

Linux 2.4.21 - Kernel 2.4.20 to 2.4.21 (2003 June)

‡1738 code changes

Linux Kernel 2.6.0 (2003 Dec.)
‡optimized for big file storage devices and high data transfer rate ‡TCP/IP optimized ‡improved memory access and process scheduler ‡ improvement in the threadings ‡ improved Advanced Linux Sound Architecture (ALSA) ‡contains Security-Enhanced Linux (SELinux)

Linux Kernel 2.0.40 (2004 Feb.)

‡It eliminates an information leak via ICMP messages.

Linux Kernel 2.2.26 (2004 Feb.)

‡contains bug fixes for security holes ‡last release of the 2.2 branch

Linux Kernel 2.6.4 (2004 March)

‡HFS rewrite and HFS+ support ‡Add SOCK_SEQPACKET for Unix domain sockets ‡Support for the Intel "ia32e" arch

Linux Kernel 2.6.8 (2004 Aug.)
‡support for 64-bit Super-H hardware ‡New "CPU mask" implementation ‡Support for new Apple Powerbooks ‡Asynchronous I/O support for USB gadgets ‡Removal of the (non-functional) "fastroute" networking option ‡And many more

Linux Kernel 2.6.11 (2005 March)
‡Conversion to 4-level page tables ‡New Pipe implementation ‡Simplify readahead code ‡Remove bitmaps from the buddy allocator ‡AMD Dual-core support ‡DebugFS ‡SATA support for Intel ICH7

Linux Kernel 2.6.12 (2005 June)
‡I/O barrier support for serial ATA drives ‡Hot-pluggable parallel ports ‡Add timing information to printk messages ‡Device mapper multipath support ‡Multilevel security implementation for SELinux ‡Hot-pluggable parallel ports

Linux Kernel 2.6.16 (2006 March)
‡support the moving of the physical location of pages between nodes in NUMA systems ‡support for the Cell processor ‡cpufreq support for G5s plus thermal control for dualcore G5s ‡improved power management support for many devices and subsystems (libata, alsa...) ‡mutex locking primitive ‡high-resolution timers ‡64-to-32-bit ioctl compatibilty for the v4l2 subsystem ‡IPv6 support for DCCP ‡New TIPC protocol (Transparent Inter Process Communication, used for intra-clustering communication ) ‡ACL support for CIFS filesystem ‡support for running executables from v9fs (plan9 9P distributed filesystem)

Linux Kernel 2.6.18 (2006 Sept.)
‡This release includes lightweight user space priority inheritance support ‡a "lock validator" debugging ‡a new power saving policy for multicore systems, ‡ a much improved SATA layer ‡swapless page migration ‡per-zone VM counters, per-task delay accounting, a new perpacket access control for SELinux called 'secmark ‡ randomized i386 vDSO ‡ a few new drivers ‡additional device support for many existing drivers ‡many bug fixes and many other small improvements.

Linux Kernel 2.6.20 (2007 Feb.)
‡This release also adds initial Sony Playstation 3 support ‡UDP-lite support ‡better per-process IO accounting, ‡support for using swap files for suspend users ‡relocatable x86 kernel support for kdump users ‡a generic HID layer, DEEPNAP power savings for PPC970 ‡lockless radix-tree readside ‡shared pagetables for hugetbl, ARM support for the AT91 and iop13xx processors ‡full NAT for nf_conntrack and many other things.

Linux Kernel 2.6.22 (2007 July)
‡new and much better wireless and firewire stacks ‡a new architecture called Blackfin, ‡a LVM-for-flash-storage-devices called UBI, event notifications through file descriptors ‡IPV6 Optimistic Duplicate Address Detection, AF_RXRPC socket support, ‡relocatable x86-64 kernel support, ‡ improvements to the CFQ I/O scheduler, ‡ more process footprint information in /proc, ‡ various new drivers and many other improvements.

Linux kernel version 2.6.25 Released (17 April 2008) ‡includes support of a new architecture (MN10300/AM33) and the widely used Orion SoCs, ‡a new interface for more accurate measurement of process memory usage, ‡realtime group scheduling ‡an alternative MAC security framework called SMACK, an ext4 update, BRK and PIE-executable address space randomization, RCU preemption support, FIFO spinlocks in x86, EFI support in x86-64, ‡ a new network protocol called CAN, initial ATI r500 DRI/DRM support, the beginning of the end for tasks stuck in D state ‡improved device support and many other small improvements.

Linux 2.6.27 Released (2008 October)
‡It adds a new filesystem (UBIFS) for "pure" flash-based storage, ‡the page-cache is now lockless, ‡much improved Direct I/O scalability and performance, delayed allocation support for ext4, ‡ multiqueue networking, ‡data integrity support in the block layer, a function tracer, a mmio tracer, ‡ sysprof support, ‡improved webcam support, ‡support for the Intel wifi 5000 series and RTL8187B network cards, ‡a new ath9k driver for the Atheros AR5008 and AR9001 chipsets, more new drivers

Linux Kernel 2.6.35 (Aug. 2010)
‡Support for transparent spreading of incoming network traffic load, across CPUs; ‡Btrfs filesystem improvements; ‡Delayed logging for XFS filesystem; ‡Kernel debugger (KDB) frontend; ‡perf improvements; ‡Intel graphics improvements; ‡Memory compaction; ‡Multiple multicast route tables support; ‡Support for L2TP v3 (RFC 3931); ‡Support for the CAIF protocol; ‡APEI (ACPI Platform Error Interface) support.

Person Involved

Linus Benedict Torvalds

Linus Benedict Torvalds (born December 28, 1969 in Helsinki, Finland) is a Finnish software engineer best known for having initiated the development of the Linux kernel and git revision control system.
He later became the chief architect of the Linux kernel, and now acts as the project's coordinator.

Richard Matthew Stallman

Richard Matthew Stallman (born March 16, 1953), is an American software freedom activist and computer programmer. In September 1983, he launched the GNU Project to create a free Unix-like operating system, and has been the project's lead architect and organizer. With the launch of the GNU Project, he initiated the free software movement; in October 1985 he founded the Free Software Foundation.

Linux Advantage

Low cost: You don t need to spend time and money to obtain licenses since Linux and much of its software come with the GNU General Public License. You can start to work immediately without worrying that your software may stop working anytime because the free trial version expires. Additionally, there are large repositories from which you can freely download high quality software for almost any task you can think of.

Stability: Linux doesn t need to be rebooted periodically to maintain performance levels. It doesn t freeze up or slow down over time due to memory leaks and such. Continuous up-times of hundreds of days (up to a year or more) are not uncommon.

Performance: Linux provides persistent high performance on workstations and on networks. It can handle unusually large numbers of users simultaneously, and can make old computers sufficiently responsive to be useful again.

Network friendliness: Linux was developed by a group of programmers over the Internet and has therefore strong support for network functionality; client and server systems can be easily set up on any computer running Linux. It can perform tasks such as network backups faster and more reliably than alternative systems.

Flexibility: Linux can be used for high performance server applications, desktop applications, and embedded systems. You can save disk space by only installing the components needed for a particular use. You can restrict the use of specific computers by installing for example only selected office applications instead of the whole suite.

Compatibility: It runs all common Unix software packages and can process all common file formats. Choice: The large number of Linux distributions gives you a choice. Each distribution is developed and supported by a different organization. You can pick the one you like best; the core functionalities are the same; most software runs on most distributions.

Fast and easy installation: Most Linux distributions come with user-friendly installation and setup programs. Popular Linux distributions come with tools that make installation of additional software very user friendly as well. Full use of hard disk: Linux continues work well even when the hard disk is almost full.

Multitasking: Linux is designed to do many things at the same time; e.g., a large printing job in the background won t slow down your other work.

Security: Linux is one of the most secure operating systems. Walls and flexible file access permission systems prevent access by unwanted visitors or viruses. Linux users have to option to select and safely download software, free of charge, from online repositories containing thousands of high quality packages. No purchase transactions requiring credit card numbers or other sensitive personal information are necessary.

Open Source: If you develop software that requires knowledge or modification of the operating system code, Linux s source code is at your fingertips. Most Linux applications are Open Source as well.

Disadvantage of Linux

1.There s no standard edition of Linux. Whereas Microsoft offers several different editions of each version of Windows, there are countless variations of Linux. For a new user it can be confusing to work out which is best for you. 2.Linux has patchier support for drivers (the software which coordinates your hardware and your operating system). This means you ll sometimes find it trickier to get a new device set up.

3.Linux is, for new users at least, not as easy to use as Windows. That s largely because Linux gives you more control, but does mean you ll have to spend some time getting used to the way it works. 4.Because Linux is neither as popular as Windows, nor a commercial product, support works in a different way. You may have to look harder to find the answer to a problem and, while Linux supporters are more likely to offer help, it may not always match your own level of technical understanding.

5.Many of the programs you are used to in Windows will only run in Linux through a complicated emulator. These programs aren t guaranteed to work perfectly, and in some cases may be noticeably slower. 6.While Linux can be suitable for an individual user, its small market share means it s much harder to introduce in a corporate setting. With most office workers already familiar with Windows and Microsoft programs, there ll likely be a notable time cost in converting staff to using a Linux system.

7.While there are perfectly passable alternatives to many popular Windows programs (such as the various Office components), some high-end applications such as Photoshop don t have as close equivalents in Linux. 8.Fans of PC gaming may find Linux offers them a much more limited range. That s partially because the latest games are nearly always a commercial operation and much harder to reproduce in Linux because they are much more individual than, for example, office software.

9.While there s no specific reason why this should be the case, in practice quite a few users report finding printing can be troublesome to set up in Linux. 10.Because Linux is a free, open source system, there are no legal comebacks if you find software isn t up to scratch or if it causes a problem. While there s no guarantee you d win, you do at least have some right of complaint with commercial products such as Windows.