A History of Linux Damian Gordon
A History of Linux
Damian Gordon
Desktop market share (8/2/2016)
1.47%
Prehistory of Linux
• The Unix operating system was developed by Ken Thompson and Dennis Ritchie of AT&T Bell Laboratories in 1969 and first released in 1970.
Prehistory of Linux
• In 1977 the University of California, Berkeley released a free UNIX-like system, Berkeley Software Distribution (BSD). But BSD contained Unix code, so AT&T sued.
Prehistory of Linux
• In 1983, Richard Stallman started the GNU project to create a free UNIX-like operating system. Hurd (the GNU kernel) failed to attract enough developers, leaving GNU incomplete.
Prehistory of Linux
• In 1987 Andrew S. Tanenbaum released MINIX, a Unix-like system intended for academic use. While source code for the system was available, modification and redistribution were restricted.
Linus Benedict Torvalds
• Born: December 28, 1969 (age 45)
• Born in Helsinki, Finland• Chief developer on the
Linux kernel• Created the revision
control system Git• 2014 IEEE Computer
Society Computer Pioneer Award
Linux
• Torvalds made the code of Linux freely available to everyone on the internet, and therefore lots of people created their own versions of Linux.
Linux
• Linux is therefore an example of Open-source software, in which the copyright holder provides the rights to study, change and distribute the software to anyone and for any purpose. Open-source software is often developed in a public, collaborative manner.
2011V3
1992V0.01
1996V2
1994V1
Timeline of Linux
2015V4
1993Debian
2011V3
1992V0.01
1993Slackware
1994SUSE
1996V2
2004Ubuntu
1995Red Hat
2006Oracle
2003Fedora
2000Knoppix
2006Alpine
2004CentOS
2002Arch
2011Mageia
2002Gentoo
2008Android
2008Musix
1994V1
Timeline of Linux
2015V4
Timeline of Linux
Timeline of Linux
Kernel
Kernel Shell
Shell
Kernel
Commands
Shell
Kernel
Hardware
V0.01
• Not a mature product at the time• Minix-like kernel for i386(+) based AT-
machines
September1991
Efficiently using the 386 chip, use of system calls
rather than message passing, a fully multi-threaded FS, minimal task switching, and
visible interrupts
V1.0
• Allowed Multi-programming – multiple programs run at the same time.
• Virtual Memory management supported
March1994
Linux is highly backwards compatible, so if a program
worked in any version of Linux it will work on all
versions of Linux.
V2.0
• Restructured memory management and improvements in task scheduling
• Improved SCSI support
June1996
Increased networking protocols. Filesystem
support for NCP (Novell) and SMB (MS Lan
Manager, etc.) network filesystems added.
V3.0
• Better handling of virtualization systems• Btrfs data scrubbing and automatic
defragmentation
July2011
Not a major change in kernel concept, but
started a new version number to mark the 20th
anniversary of Linux
V4.0
• A *fairly* small release, some VM clean-ups• The unification of the PROTNONE and NUMA
handling for page tables.
12th April2015
Some people advocatedthe 4.0 version number, to
eventually see 4.1.15 - because "that was the
version of Linux SkyNet used for the T-800 Terminator".
V4.10
• A small release by Linus Torvalds, on device drivers, some architecture work, some file systems fixes and some network issues.
15th January, 2017
V4.0 Version
Original release
dateCurrent Version
Support Model
4.0 12 April 2015 4.0.9 Maintained from April 2015 to July 2015
4.1 22 June 2015 4.1.38 Maintained from July 2015 to September 2017
4.2 30 August 2015 4.2.8 Maintained from August 2015 to December 2015
4.3 1 November 2015 4.3.6 Maintained from November 2015 to February 2016
4.4 10 January 2016 4.4.44 Maintained from January 2016 to February 2018
4.5 13 March 2016 4.5.7 Maintained from March 2016 to June 2016
V4.0
VersionOriginal release
dateCurrent Version
Support Model
4.6 15 May 2016 4.6.7 Maintained from May 2016 to August 2016
4.7 24 July 2016 4.7.10 Maintained from July 2016 to October 2016
4.8 25 September 2016 4.8.17 Maintained from
September 2016 to January 2017
4.9 11 December 2016 4.9.5 Latest mainline release
4.10 15 January 2017 4.10-rc4 Latest unstable release
Design Goals of Linux
• The three design goals of Linux are:
– Modularity– Simplicity– Portability
Design Goals of Linux• Linux supports:
– Multiple processes– Multiple platforms– Multiple users– Inter-process communications– Terminal management– Peripheral devices– Buffer cache– Demand paging memory management– Dynamic and Shared libraries– Disk partitions– Network protocol (TCP/IP and others)