History of the Linux Kernel

2165 words [ 14 Screenshots ] [ 47 Versions ] [ 9 Weblinks ] - Last update: 2016-10-16 Page created: 2004-04-03 [SB]



Development of Linux

Showing Tux and supported CPU architecture by Linux 1986 Linus (Benedict) Torvalds programmed its own driver for its floppy controller. He learned intensively hardware programming and became better knowledge about his Sinclair computer with Q-DOS. Additionally he provided his own programmer Tools. When 1991 the 386-Intel PC became modern, he got one PC to learn about the programming of 386 CPUs. As operating system the Unix derivate MINIX was used, he has know Unix already since 1990 from its university. Minix was developed by Andrew Tanenbaum as learning system and was particularly used at universities. The written book from A. Tanenbaum "Operating Systems: Design and Implementation" is about operating system concepts and Minix, which became the favourite book from Torvalds. The source code of Minix is open source, any modifications are bound to the license conditions.

Because he did not find the provided terminal emulator program in Minix acceptable, he began his project to code his own and better terminal emulator with more functions on hardware level. In addition he programmed his own drivers for the data medium access and the file system and others in assembler. With these functions the software becames the ability to upload and download from the Internet. In the line of the development terminal program got more and more functions so he made the decision to enhance it to a operating system. Its operating system was derivated from concepts of Minix but completely written from scratch beginning at the Kernel. After long programming evenings it was so far. On 17th September 1991 the operating system Freax version 0.01 was finished, as development environment was used still the MINIX for 386 CPUs. It contained already the GNU Shell bash and the GNU C-compiler GCC from Richard Stallman, which counts to the standard programs for the meantime named operating system Linux. Because Linux profits particularly from the GNU software pool, it is generally called GNU/Linux.

After approximately 6 months Freax was renamed in Linux. Already on 3th July 1991 he had asked for the POSIX standards in the minix-newsgroup, he presented on 25th August 1991 his project in public and asked for suggestions for further functions and extensions. The source code was made freely accessible by ftp. To communicate with other programmers and interested people he used the Maylinglist "Linux-activists@niksula.hut.fi" and the newsgroup "comp.os.minix" for contact and progress messages. Later its own Maylinglist and forums were created. In the line of the development he received wished postcards from all over the world with thankfully words. The project has got a strong self-dynamic in the InterNet and was maintained by the community. The rights at the brand name Linux was transferred after a legal incident to Linus Torvalds and later distributed on several persons to ensure the further development and to avoid a "takeover by enemys". The symbol figure "Tux the penguin" was selected because Torvalds was bitten by a penguin in a Finnish zoo. The self-willed animal had impressed him in such a way, which it gave to its operating system this guidance figure. At the beginning Linux doesn`t contain any installation script or graphical installation menu. To make the installation from Linux easier and automated Owen LeBlanc from the Manchester Computing Centre published the MCC Interim release, this was the key for the automated installation of today's distributions.

File structure (first level) of Linux and derivatives

/ - Root-Directory
/bin - system tools
/boot - kernel, bootmanager
/cdrom - Mount-Point for CD-ROM drives (optional)
/dev - device files
/etc - configuration files
/floppy - Mount-Point for floppy drive(optional)
/home - user directory
/lib - shared Libraries
/mnt - mount Verzeichnis
/opt - additional software, GUI
/proc - system informations
/root - root user directory
/sbin - system programs for root
/tmp - temporary files
/usr - applications for the GUI, source code (kernel)
/var - various files, log files


Small reference of shell commands

mount - Mounts a filesystem
umount - Unmounts a filesystem
fdisk - Used to create or delete of partitions on a hard drive
hdparm - Get/set various hard disk geometry parameters
rm - Remove files
ls - List the contents of every subdirectory
dir - List the current directory content
cd - Change the current directory
dd - Bit based disk or data copy
ps - shows active processes
df - Shows the free space of any filesystem
find - Search for a file
mkdir - Make a directory
mv - Move or rename a file
vi - Editor with a command mode and text mode
killall - Kill processes by name
ifconfig - Configure a network interface
netstat - Information about the network connections
mc - File manager with visual shell



The advantages of a free development and distribution are among other things in the user orientation because no unnecessary features are integrated that nobody does need. That is done via the dynamic development process, which select principle from 1.000 current ideas the most necessary features out that taken up to the official system core. In order to meet all requirements, the Kernel series of 2.2.x (max. 2 GByte RAM addressably) exists beside the newer 2.4.x (max. 64 GByte RAM addressably) in coexistence. By the dynamic development a rigid marketing plan that rules about the release date is unimportant. In addition new versions are only published with proven reliability and are not determined if the schedule points to the best sales favorable time. While Linux 0.01 with the most fundamental components and instructions consisted of 10.000 code lines, the source code increased now in version of 2.4.9 to approximately 3.7 million code lines including many hardware drivers. Linux regards the specifications from system V and BSD Unix programs.

Some operating system companies use the open development to add new characteristics into the open source operating system as example the file system support XFS by SGI. Linux and related operating systems are only possible through the work of the InterNet Community that contains the support of developers world-wide and increasingly development support by IT companies. Therefore there are so-called developer kernel releases with odd version number like 2.3 and stable releases with straight numbers like 2.4 for the stable use for user and employment in companys. Matthias Ettrich announced the project Kool Desktop Environment (KDE) in the Usenet posting of October 14th, 1996. The GUI library Qt by Trolltech is used for the development. The first KDE main release happens in July 1998, the second release in October 2000, the thirth release in April 2002. The KDE desktop is besides gnome one of the most used user interfaces.

According to estimations there is at the beginning of 2001 at least 10 million Linux user world-wide, tendency strongly rising. Since about 1997/1998 Linux is regarded strengthened by the IT industry as alternative operating system. In the years 2000/2001 the assumption is expressed, that Linux can also replace the existing commercial Unix variants gradually and wins further agreements. In the heterogeneous network Linux co-operates by the native support of network protocols with Macintosh, Novell and Windows.

The General Public License version 1 was founded 1989 of Richard M. Stallmann. The GPL version 2 was written by the Free Software Foundation in 1991, since then the Linux Kernel is put under this licence. The final GPL version 3 came out on 2007-06-29. The license model GPL that Linux underlies, offers to the developer extensive liberties and spreads transfers of technology because the knowledge is open. By the open development code audits constantly improve the quality of the source code. By code sighting from various developers the software security is increased and the further development doesn`t depend on probritary manufacturer. Many Linux derivatives are available on the Websites of the Distributors and projects with ftp or HTTP for free Download at no costs. By redundant Mirror servers the operating systems are available in ISO images around the world.

Goals


- Create a better MINIX than MINIX (he was dissatisfied with MINIX)
- Unix derivated operating system for personal computer
- Open Source development
- Programming together with developers from around the world
- User centric development

Linus Torvalds worked from March 1997 till June 2003 for the chip manufacturer Transmeta Corporate in California, well known for the Crusoe processor. He left the company for the OSDL (Open Source Development Lab) to focus on the future development of the Linux Kernel 2.6.x and moved to Portland, Oregon. The OSDL and the Free Standards Group joined together to the Linux Foundation in January 2007. Linus Torvalds is still active maintainer and the main Linux kernel developer since 1991.

Distributors

A Distributor is usually a developer team that takes advance from the Linux system core (Kernel) to offer a installation-able software package. Beside the individually adaptable system core numerous additional applications, driver and assistant are included, which can be installed and configured with the own installation andsetup routine comfortably. Those distributions are made available on the Internet as ISO image or to buy cheap on CD-ROM or DVD medias. The taken money is needed for the developers and the support. Often Linux distributor companies are actively in other open source projects too.
In order to install a Linux distribution they exists different ways of installation. The booting of the installation routine from CD-ROM after the El-Torito standard, DVD, floppy disk (in the meantime rather rare), by network or ftp server after the boot procedure are supported directly. From the large and big offerers of Linux distributions profit small distributors which are aligned to very special operational areas, like data Recovery or software-routers.



30. May 2002: For the first time several large Distributoren united to a large community (see News note). Under the name UnitedLinux was created a common basis for the uniform development of a Linux distribution. Elements of it are guidelines of the Linux standard base. All participants of the partnership let its experiences in the business area and technical knowledge flow together to rise up the market share in the server range. Final desktop versions for customers are provided by each distributor separately. To the Comdex in November 2002 the initiators presented the finished version 1.0 together. United Linux 1.0 is thereby LSB 1.2 and OpenI18N conform and also valid for future versions as standard. The Linux Standard Base 3.1 was published at 2006-06-21. This definition sets new guidelines for desktop applications, a own software development kit (SDK) and the certification for products to the LSB 3.1.

Netcraft published statistics about the share of Linux distributions on web servers in a news of 5th December 2005 on web servers. Red Hat reached up to 34% followed by Debian with 25% and the biggest growth, Fedora 16%, SuSE 11%, cobalt 7%, gentoo 3%, Mandriva and Centos with 3% each.



Screenshots

History of the Linux Kernel screenshot 1History of the Linux Kernel screenshot 2History of the Linux Kernel screenshot 3History of the Linux Kernel screenshot 4
Linux Kernel 2.6 kernel source code filesLinux Kernel 2.6 graphical configuration with "make xconfig" (1)Linux Kernel 2.6 graphical configuration with "make xconfig" (2)Linux Kernel 2.6 text based configuration with "make config"
History of the Linux Kernel screenshot 5History of the Linux Kernel screenshot 6History of the Linux Kernel screenshot 7History of the Linux Kernel screenshot 8
Linux Kernel structureLinux Standard Base website 2016GNU website 2016GitHub (Linus Torvalds) website 2016
History of the Linux Kernel screenshot 9History of the Linux Kernel screenshot 10History of the Linux Kernel screenshot 11History of the Linux Kernel screenshot 12
UnitedLinux website 2016Linux Foundation website 2016kernel.org website 2007kernel.org website 2010
History of the Linux Kernel screenshot 13History of the Linux Kernel screenshot 14
kernel.org website 2015kernel.org website 2016

Versions

Date - Version
1991 Sept. - Freax 0.01 - 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
1991 Sept. - Freax 0.02 - bash and gcc were ported by MINIX, needs 4 mbyte RAM for compiling software
1991 Oct. - Freax 0.03 - small user group, gcc can compile himself on Linux, only needs 2 mbyte RAM for compiling software
1991 Nov. - Freax 0.11 - 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
1992 Jan. - Freax 0.12 - for the first time page-to-disk function built-in, Linux is put under the GPL, virtual memory, harddisk caching, POSIX job-control, more persons programming linux, multi-threading file system
1992 April - Linux 0.96 - programmer and user group raised up, X Window system from the MIT is used for the first time
1994 March - Linux 1.0 - 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
1995 March - Linux 1.2 - 250,000 lines source code, about 50% are hardware driver, porting to alpha, MIPS, and SPARC CPUs, extended network functions like IP-Forwarding and NFS, IPX, AppleTalk
1996 Juni - Linux 2.0 - 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
1997 April - Linux 2.1.32 - after a trademark right dispute Torvalds lets register Linux as a trademark
1999 Jan. - Linux 2.2.0 - 269 developers works on linux, approx. 10 million users, improved SMP support, IPv6 support as first operating system, extended software support by companies like StarOffice, Netscape
2000 June - Linux 2.2.16 -
2001 Jan. - Linux Kernel 2.0.39 Release, contains bug fixes for security holes
2001 Jan. - Linux 2.4.0 - 375 developers works on linux, approx. 15 million users, runs on altogether 13 hardware plateforms, improved network support, improved performance for memory transactions, extended hardware support
2002 Jan. - Linux Kernel 2.5.2
2002 April - Linux Kernel 2.5.10
2002 June - Linux Kernel 2.5.20
2002 Aug. - Linux Kernel 2.5.30
2002 Oct. - Linux Kernel 2.5.40
2002 Nov. - Linux Kernel 2.5.50
2003 Feb. - Linux Kernel 2.5.60
2003 March - Linux Kernel 2.2.25
2003 May - Linux Kernel 2.5.70
2003 June - Linux 2.4.21 - Kernel 2.4.20 to 2.4.21 : 1738 code changes
2003 Dec. - Linux Kernel 2.6.0 Release, 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)
2004 Feb. - Linux Kernel 2.0.40 Release
2004 Feb. - Linux Kernel 2.2.26 Release, contains bug fixes for security holes, last release of the 2.2 branch
2004 Dec. - Linux Kernel 2.6.10
2007 Feb. - Linux Kernel 2.6.20
2009 June - Linux Kernel 2.6.30
2009 Dec. - Linux Kernel 2.6.32 (Longterm release)
2010 May - Linux Kernel 2.6.34 (Longterm release)
2011 May - Linux Kernel 2.6.39
2011 July - Linux Kernel 3.0
2012 Jan. - Linux Kernel 3.2 (Longterm release)
2012 May - Linux Kernel 3.4 (Longterm release)
2013 June - Linux Kernel 3.10 (Longterm release)
2013 Nov. - Linux Kernel 3.12 (Longterm release)
2014 March - Linux Kernel 3.14 (Longterm release)
2014 Aug. - Linux Kernel 3.16 (Longterm release)
2014 Dec. - Linux Kernel 3.18 (Longterm release)
2015 Feb. - Linux Kernel 3.19
2015 April - Linux Kernel 4.0
2015 June - Linux Kernel 4.1 (Longterm release)
2016 Jan. - Linux Kernel 4.4 (Longterm release)
2016 May - Linux Kernel 4.6
2016 Aug. - Linux Kernel 4.7.1