Linux (kernel)

from Wikipedia, the free encyclopedia
Linux
Tux, the Linux penguin
Linux 3.0.0 boot.png
Starting kernel (version 3.0.0) in Debian
developer Linus Torvalds et al. v. m.
License (s) GPLv2 ( only ), contains various closed source binary blobs
First publ. 17th September 1991
Current  version 5.8.4 from August 26, 2020 (1 day ago )
Architecture (s) IA-32 (incl. X64 ), Alpha AXP , SPARC , Motorola 68k , PowerPC , POWER , ARM , Hitachi SuperH , z Systems , MIPS , PA-RISC , IA-64 , AVR32 , Renesas H8 / 300 and others
Languages) English
www.kernel.org

Linux ( German [ liːnʊks ]) is an operating system kernel , which in 1991 by Linus Torvalds originally designed for the 32-bit - x86 architecture IA-32 developed from version 0.12 under the free GNU General Public License is published (GPL) . It is now part of a wide variety of operating systems .

The name Linux is made up of the name Linus and an X for the Unix that served as a model . In the broader sense, it no longer only refers to the kernel itself, but transfers entire Linux-based systems and distributions from it . This led to the GNU / Linux name dispute .

Basic technology

Rough structure of the Linux kernel

Tasks of the kernel

The kernel of an operating system forms the hardware-abstracting layer , that is, it provides the software based on this with a uniform interface ( API ) that is independent of the computer architecture . The software can always access the interface and does not need to know the hardware that is using it in detail. Linux is a modular monolithic kernel and is responsible for memory management , process management , multitasking , load balancing, security enforcement and input / output operations on various devices.

programming language

Linux is written almost exclusively in the C programming language, with some GNU C extensions being used. The architecture-dependent parts of the code (in the arch directory within the Linux sources ), such as the start of the system start ( boot process ), which is written in assembly language , are an exception .

functionality

With a strictly monolithic kernel , the entire source code including all drivers is compiled into the kernel image (the executable kernel) . In contrast, Linux can use modules that can be loaded and removed during operation. This provides the flexibility to address a wide variety of hardware without having to keep all (also not required) drivers and other system parts in the main memory .

If parts of the hardware specifications are not sufficiently disclosed, Linux can use special VM86 modes to rely on the system's BIOS , etc. a. to the extensions according to the standards APM , ACPI and VESA . In order to use x86 compatible hardware under these conditions, e.g. As on the DEC - Alpha to operate platform, are in some cases even emulators to run corresponding ROM - codes used. Linux itself typically takes over the system during the boot process at the moment when the BIOS bootloader was successful and all system initializations of the BIOS have been completed.

The kernel is an operating system kernel and must not be understood as the actual operating system . This is made up of the kernel and other basic libraries and programs (which first make the computer usable).

See also: device file , network block device , netfilter , network scheduler , process scheduler , Linux (operating system)

Interfaces

A distinction can be made between four interfaces that enable the interaction of either kernel-internal components with one another or of the kernel and external software. The stability of the external programming interface is guaranteed, which means that the source code is basically portable without any changes. The stability of the internal programming interfaces is not guaranteed; they can remain stable for ten years or a few months. Since the Linux kernel is being promoted by a few thousand developers, the effort that may arise is bearable.

The binary interface of the kernel is irrelevant, it depends on the complete operating system. The Linux Standard Base (LSB) should make it possible to port commercial programs unchanged between Linux operating systems. The internal binary interface is not stable and there are no efforts whatsoever to change it; this has the consequence that an internal module, which z. B. has been compiled for Linux 3.0, most likely will not work with Linux kernel 3.1. This is a very conscious decision.

architecture

User programs (e.g. word processing, spreadsheet or browser) User mode
Complex Libraries ( GLib , GTK + , Qt , SDL , EFL ) User programs
Complex Libraries ( GLib , kde) Simple Libraries sin, opendbm User programs
C standard library : glibc open, exec, sbrk, socket, fopen, calloc
System calls TRAP, CALL, BRK, INT (depending on the hardware) Kernel mode
Kernel (device drivers, processes, network, file system)
Hardware (processor (s), memory, devices)

Linux is a monolithic kernel . The drivers in the kernel and the kernel modules run in privileged mode (x86: Ring  0), so they have unrestricted access to the hardware . A few modules of the kernel run in restricted user mode (x86: ring 3). The Level 1 and 2 of the x86 architecture are not used by Linux because they do not exist in many other architectures and the kernel should work the same on all supported architectures essentially.

Almost every driver can also be available as a module and then dynamically reloaded by the system. The exception to this are drivers that are responsible for starting the system before the file system can be accessed. However, you can configure the kernel in such a way that a CramFS or Initramfs file system is loaded before the actual root file system, which contains the other modules required for the start process. This can reduce the kernel size and increase flexibility dramatically.

Programs running in the system are in turn assigned processor time by the kernel. Each of these processes is given its own protected memory area and can only access the device drivers and the operating system via system calls. The processes take in user mode ( user mode ) , while the kernel in kernel mode ( kernel mode ) works. The privileges in user mode are very limited. Abstraction and memory protection are almost complete; direct access is only permitted very rarely and under precisely controlled conditions. This has the advantage that no program z. B. can cause the system to crash due to an error .

Like its model Unix, Linux provides a complete abstraction and virtualization for almost all operating resources (e.g. virtual memory , the illusion of one's own processor, etc.).

The fact that Linux is not based on a microkernel was the subject of a famous Flame Wars between Linus Torvalds and Andrew S. Tanenbaum . In the early 1990s , when Linux was developed, monolithic kernels were considered obsolete (Linux was still purely monolithic at the time). The discussion and summaries are detailed in the History of Linux article.

Thanks to extensions like FUSE and the increasing use of kernel processes, numerous microkernel concepts are now also being incorporated into Linux.

Portability

Although Linus Torvalds hadn't actually intended to write a portable kernel, Linux has developed a great deal in this direction thanks to the GNU compiler GCC . It is now one of the most frequently ported systems (only NetBSD now runs on about the same number of architectures). The repertoire ranges from rarely encountered operating environments such as the iPAQ handheld computer, digital cameras or mainframe computers such as IBM's System z to normal PCs .

Although the porting to the S / 390 was originally an undertaking not approved by the IBM management (see also: Skunk works ) , IBM is also planning to equip the next IBM supercomputer generation Blue Gene with its own Linux port.

Torvalds originally wanted a completely different kind of portability for its system, namely the ability to easily compile free GPL and other open source software under Linux. This goal was achieved very early on and certainly accounts for a good part of Linux's success, as it offers everyone an easy way to run free software on a free system.

The first architectures Linux ran on were the computers used by Linus Torvalds:

  • IA-32 (x86 from the i386 ) - Linus had a PC with an Intel 386DX 33 MHz processor, 4 MB RAM and 40 MB hard disk from 1991.
  • Alpha  - Linus worked from 1994 to 1995 on porting to the 64-bit Alpha architecture (on a DEC Alpha computer that he had received on loan).

This made Linux 64-bit capable very early on (Linux 1.2 appeared in 1995) and the porting to Alpha paved the way for further ports. At the same time, from 1993, the student Dave Miller worked on the porting to SPARC from Sun Microsystems , an architecture that was widely used at the time. But Linux 2.0 officially ran on IA-32 and Alpha from mid-1996, but could already SMP .

The following ports were added with Linux 2.2 from January 1999:

With Linux 2.4 from January 2001, the following architectures were added:

Despite the supported instruction set architectures ( English Instruction Set Architecture , short ISA) more is necessary for the operability, so that Linux currently on u. a. following platforms and architectures is running:

Binary interfaces of the ARM architecture

Linux supports two different binary interfaces for ARM processors. The older binary interface is designated by the acronym OABI (old application binary interface) and supports processor architectures up to and including ARMv4, while the newer binary interface, designated EABI (embedded application binary interface) , supports processor architectures from and including ARMv4. The most significant difference between the binary interfaces in terms of system performance is the much better support for software-emulated floating-point calculations by EABI.

User mode Linux

A special port is the Linux user mode . In principle, this is a port from Linux to its own system call interface. This makes it possible to start a Linux kernel as a normal process on a running Linux system. The user-mode kernel then does not access the hardware itself, but rather passes the corresponding requirements on to the real kernel. This constellation enables " sandboxes " similar to the virtual machines from Java or the jails from FreeBSD , in which a normal user can have root rights without being able to harm the actual system.

µClinux

µClinux is a Linux variant for computers without a Memory Management Unit (MMU) and is mainly used on microcontrollers and embedded systems . Since Linux version 2.6 µClinux has been part of the Linux project.

Development process

Linus Torvalds (2014)

Due to the GNU General Public License and a very open development model, the development of Linux is not in the hands of individuals, corporations or countries, but in the hands of a worldwide community of many programmers who exchange information mainly via the Internet. During development, the developers communicate almost exclusively via e-mail, as Linus Torvalds claims that this way opinions do not clash. In many mailing lists , but also in forums and on Usenet, everyone has the opportunity to follow the discussions about the kernel, to participate in them and also to make active contributions to the development. This uncomplicated approach ensures rapid and constant development, which also means that everyone can provide the kernel with capabilities that they need.

This is only limited by the control of Linus Torvalds and some highly deserved programmers who have the final say on adding improvements and patches to the official version. Some Linux distributors also build their own functions into the kernel that are not (yet) available in the official kernel.

Changes to the control of origin

The development process of the kernel, like the kernel itself, has also been continuously developed. The SCO Group's legal process over allegedly illegally transferred code in Linux led to the introduction of a “Linux Developer's Certificate of Origin”, which was announced by Linus Torvalds and Andrew Morton . This change took up the problem that according to the model of the Linux development process that was valid until then, the origin of an extension or improvement of the kernel could not be traced.

“These days, most of the patches in the kernel don't actually get sent directly to me. That not just wouldn't scale, but the fact is, there's a lot of subsystems I have no clue about, and thus no way of judging how good the patch is. So I end up seeing mostly the maintainers of the subsystem, and when a bug happens, what I want to see is the maintainer name, not a random developer who I don't even know if he is active any more. So at least for me, the chain is actually mostly more important than the actual originator.

There is also another issue, namely the fact than when I (or anybody else, for that matter) get an emailed patch, the only thing I can see directly is the sender information, and that's the part I trust. When Andrew sends me a patch, I trust it because it comes from him - even if the original author may be somebody I don't know. So the _path_ the patch came in through actually documents that chain of trust - we all tend to know the "next hop", but we do _not_ necessarily have direct knowledge of the full chain.

So what I'm suggesting is that we start "signing off" on patches, to show the path it has come through, and to document that chain of trust. It also allows middle parties to edit the patch without somehow "losing" their names - quite often the patch that reaches the final kernel is not exactly the same as the original one, as it has gone through a few layers of people. "

“At the moment, most of the patches for the kernel are not sent directly to me. That just wouldn't be feasible. The fact is, there are a lot of subsystems that I am completely unfamiliar with, and so I have no way of deciding how good the patch is. Therefore, it usually boils down to meeting the maintainer of the subsystem. If something goes wrong, I want to see the name of a maintainer and not some developer's name I don't even know if he's still active. Therefore, the _chain_ is definitely more important to me than the actual author. There's another problem too, which is that if you email me (or anyone else) a patch, all I can see is the sender information directly, and that's the part I trust. When Andrew sends me a patch, I trust the patch because it came from Andrew - even if the actual creator is someone I don't know. So the _path_ that the patch took to me actually occupies this chain of trust - we all tend to know the next "link", but _not_ necessarily have immediate knowledge of the entire chain. So what I'm suggesting is that we start "signing off" patches to show the path they have taken and to document that chain of trust. This also allows intermediary groups to change the patch without the name of anyone “falling by the wayside” - quite often the patch version that is ultimately included in the kernel is not exactly the original, it is through gone some developer shifts. "

- Linus Torvalds : Linux Kernel Archive, May 23, 2004

The version control system Git

The version control of the kernel is subject to the Git program . This was specially developed for the kernel and optimized for its needs. It was introduced in April 2005 after it became apparent that the old version control system BitKeeper could no longer be used for kernel development.

Kernel versions

All old and new kernel versions are archived on the kernel.org website . The reference kernels located there are also referred to as vanilla kernels (from colloquial English vanilla for standard or without extras compared to distribution kernels ). The distribution kernels are built on this, and the individual Linux distributions add additional functions. The kernel version of the loaded operating system can be queried with the command uname -r.

Version number scheme

The early kernel versions (0.01 to 0.99) did not yet have a clear numbering scheme. Version 1.0 should be the first "stable" Linux version. Starting with version 1.0, the version numbers of Linux follow a certain scheme:

The first digit is only increased if there are fundamental changes in the system architecture. During the development of the 2.5 kernel, due to the relatively fundamental changes compared to the 2.4 kernel, the discussion among kernel programmers arose about declaring the next production kernel 3.0. Torvalds was against it for various reasons, so the resulting kernel was named 2.6.

The second digit indicates the respective "major release". So far, stable versions (productive kernel) have always been identified by the developers with even numbers such as 2.2, 2.4 and 2.6, while the test versions (developer kernels) have always had odd numbers, such as 2.3 and 2.5; however, this separation has been suspended since July 2004, there was no developer kernel with the number 2.7, instead the changes were continuously incorporated into the 2.6 series.

In addition, a third number denotes the "minor release", which identifies the actual version. As new functions are added, the third number increases. The kernel is identified with a version number like 2.6.7, for example.

In order to be able to spread the correction of a serious NFS error more quickly, a fourth digit was introduced for the first time in version 2.6.8.1 . This numbering has been used officially since March 2005 (Kernel 2.6.11). This makes it possible to guarantee the stability of the kernel despite the sometimes very short release cycles and to transfer critical errors to the official kernel within a few hours - whereby the fourth digit increases (e.g. from 2.6.11. 1 to 2.6 .11. 2 ). The minor release number, i.e. the third digit, is only incremented when new functions are introduced.

In May 2011, Linus Torvalds announced that the coming version after version 2.6.39 would not be called 2.6.40, but 3.0. The reason he cited was that, in his opinion, the version numbers were too high. The version number '3' also stands for the third decade, which for the Linux kernel begins with its 20th birthday. Since then, the second digit has been increased in new versions and the third - instead of the fourth - stands for bug fix releases.

In February 2015, Torvalds upgraded to version 4.0 instead of version 3.20 after asking for opinions on Google+ . Linux 5.0 has been released since March 2019. The jump from the last version number 4.20 to 5.0 has no deeper meaning. The current version should provide a more modern memory function and more speed.

Developer version

New functions can be found in the -mm kernel of the kernel developer Andrew Morton and are then transferred to the main branch of Torvalds. This avoids major differences between development and production kernels and the associated porting problems between the two series. This procedure also means that there are fewer differences between the official kernel and the distribution kernel (in the past, features of the development branch were often back-integrated into their own kernels by the distributors). However, in 2004/2005 the stability of the 2.6 kernel suffered from the changes that were often adopted too quickly. At the end of July 2005, a new development model was therefore decided that was used for the first time after the release of version 2.6.13: Innovations are only accepted in the first two weeks of kernel development, with quality assurance then being carried out until the new version is finally released.

Maintenance of the kernel versions

While Torvalds was releasing the latest development versions, the maintenance of the older stable versions was passed on to other programmers. Greg Kroah-Hartman is currently responsible for this - with the exception of the 3.16 branch managed by Ben Hutchings . In addition to these official kernel source codes, which can be obtained from Kernel.org or one of its mirrors , you can also use alternative "kernel trees" from other sources. Distributors of Linux-based operating systems usually maintain their own versions of the kernel and employ permanent kernel hackers for this purpose, who usually incorporate their changes into the official kernels.

Distribution kernels are often intensely patched in order to also contain drivers that are not yet included in the official kernel, but which the distributor believes that his customers might need and that the necessary stability or freedom from errors is still guaranteed.

Long-term support versions

The following versions are provided with long-term support :

version publication End of support (EOL)
3.16 Aug 3, 2014 June 2020
4.4 Jan. 10, 2016 February 2022
4.9 Dec 11, 2016 January 2023
4.14 Nov 12, 2017 January 2024
4.19 Oct. 22, 2018 December 2024
5.4 Nov 24, 2019 December 2025

history

Time tables

Development of the number of source text lines

The following diagram shows individual versions of the Linux kernel based on the release dates on a time table and is intended to provide an overview.

Version history up to version 2.6

branch version publication Files (a) Source code
lines
(b)
Size
in  kB (c)
Remarks
Older version; no longer supported: 0.01 17th September 1991 88 8,413 230 first publication; started on systems with floppy disk drives and 386 processors, loading the drivers for the Minix file system and a Finnish keyboard, as well as the command line interpreter bash as the only application program
1.0 Older version; no longer supported: 1.0.0 March 13, 1994 563 170,581 1,259
1.1 Older version; no longer supported: 1.1.0 April 6, 1994 561 170,320 1,256 Development version
Older version; no longer supported: 1.1.95 March 2, 1995 2,301
1.2 Older version; no longer supported: 1.2.0 March 7, 1995 909 294,623 2,301 first ports to other processor architectures, with Alpha , MIPS and SPARC
Older version; no longer supported: 1.2.13 August 2, 1995 2,355
1.3 Older version; no longer supported: 1.3.0 June 12, 1995 992 323,581 2,558 Development version with initial support for multiprocessor systems
Older version; no longer supported: 1.3.100 May 10, 1996 5,615
2.0 Older version; no longer supported: 2.0.0 June 9, 1996 2.015 716.119 5,844 first support for symmetrical multiprocessor systems
Older version; no longer supported: 2.0.40 February 8, 2004 7,551
2.1 Older version; no longer supported: 2.1.0 September 30, 1996 1,727 735.736 6,030 Development version
Older version; no longer supported: 2.2.0-pre9 January 21, 1999 13,077
2.2 Older version; no longer supported: 2.2.0 January 26, 1999 4,599 1,676,182 13,080 First support for the network protocol IPv6 and porting to the UltraSPARC and PA-RISC platforms
Older version; no longer supported: 2.2.26 February 24, 2004 19,530
2.3 Older version; no longer supported: 2.3.0 May 11, 1999 4,721 1,763,358 13,804 Development version
Older version; no longer supported: 2.3.99-pre9 May 23, 2000 20,882
2.4 Older version; no longer supported: 2.4.0 January 4, 2001 8,187 3,158,560 24,379 First support for the ACPI energy management standard and for the USB data bus , large file support , introduction of the netfilter and iptables ; last branch maintained before 2.6
Older version; no longer supported: 2.4.37 December 2, 2008 38,735 Last version was 2.4.37.11 on December 18, 2010
2.5 Older version; no longer supported: 2.5.0 November 23, 2001 9,893 3,833,603 29,405 Development version
Older version; no longer supported: 2.5.75 July 10, 2003 40,969
2.6 Older version; no longer supported: 2.6.0 December 18, 2003 21,279 8,102,486 41,614 New version scheme, with the previous development branches being replaced by a continuous development process
→ For all subsequent versions see section "Version history from version 2.6"
Legend:
Old version
Older version; still supported
Current version
Current preliminary version
Future version

Version history from version 2.6

When looking at the most recently released versions (see table), the development of a new kernel version takes an average of 82 days. The kernel is extended by an average of 768 files and 325,892 lines of code . The tar archive (.tar.gz) compressed with the data compression program gzip grows on average by around 2  megabytes with each major version published.

version publication Number of files (a) Source text
lines
(b)
Size
in  kB (c)
Period
in days (d)
Remarks
Older version; no longer supported: 2.6.13 Aug 28, 2005 u. a. was Inotify added
Older version; no longer supported: 2.6.20 Feb. 4, 2007 21,280 8,102,486 54,548 66 First support for the virtualization technology KVM
Older version; no longer supported: 2.6.21 Apr 26, 2007 21,614 8,246,470 55,329 80
Older version; no longer supported: 2.6.22 July 8, 2007 22,411 8,499,363 56,914 74
Older version; no longer supported: 2.6.23 Oct 9, 2007 22,530 8,566,554 57,404 93
Older version; no longer supported: 2.6.24 Jan. 24, 2008 23,062 8,859,629 59,079 107
Older version; no longer supported: 2.6.25 Apr 17, 2008 23,810 9,232,484 61,518 83
Older version; no longer supported: 2.6.26 July 13, 2008 24,270 9,411,724 62,550 88
Older version; no longer supported: 2.6.27 Oct 9, 2008 24,354 9,709,868 63,721 88 was subsequently expanded with support for new hardware (such as SAS );
Last version was 2.6.27.62 on March 17th, 2012
Older version; no longer supported: 2.6.28 Dec 24, 2008 25,255 10.195.507 66,766 76
Older version; no longer supported: 2.6.29 March 23, 2009 26,668 11,010,647 71,977 89 Admission of the Btrfs
Older version; no longer supported: 2.6.30 June 10, 2009 27,879 11,637,173 75,768 78 USB 3.0 support
Older version; no longer supported: 2.6.31 Sep 9 2009 29,111 12,046,317 78.279 92 Support for hard drives with native 4K sectors (also known as Advanced Format )
Older version; no longer supported: 2.6.32 Dec 3, 2009 30,485 12.610.030 81.901 84 The last version was 2.6.32.71 on March 12, 2016
Older version; no longer supported: 2.6.33 Feb. 24, 2010 31,565 12,990,041 84,533 83 forms the basis for a real-time branch;
The last version was 2.6.33.20 on November 7, 2011
Older version; no longer supported: 2.6.34 May 16, 2010 32,297 13.320.934 86,520 82 Graphics drivers for newer AMD Radeon GPUs and the graphics cores of some Intel processors not expected until the beginning of next year , new file systems: LogFS and Ceph ; many changes to the file systems Btrfs , ext4 , NILFS2 , SquashFS and XFS , the SCSI subsystem and the architecture code for ARM , Blackfin and MicroBlaze CPUs; better support for new and older AMD and Intel chips; major modifications to the Nouveau driver for Nvidia graphics;
The last version was 2.6.34.15 on February 10, 2014
Older version; no longer supported: 2.6.35 Aug 1, 2010 33,316 13,545,604 88,301 77 New features include improved network throughput , defragmentable RAM and support for the turbo core function of modern AMD processors; the support for the power saving functions of Radeon graphics chips has been improved, as well as the new H.264 decoding functions for the graphics core in Intel's Core i5 processors (also called Ironlake );
The last version was 2.6.35.14 on March 13, 2012
Older version; no longer supported: 2.6.36 Oct 20, 2010 34,301 13,499,457 88,707 80 New are - in the 36 branch also known as “Flesh-Eating Bats with Fangs” - the AppArmor security framework and the “ LIRC ” interface (for the system introduced in version 2.6.35) for the use of infrared remote controls) and improved power management for graphics processors ; Real-time virus scanner support;
The last version was 2.6.36.4 on February 17th, 2011
Older version; no longer supported: 2.6.37 Jan. 5, 2011 35,186 13,916,632 92,474 76 What is new, in addition to the usual additional drivers (e.g. for USB 3.0 ), is improved scaling and virtualization for multi-core processors ;
The last version was 2.6.37.6 on March 27, 2011
Older version; no longer supported: 2.6.38 March 15, 2011 35,864 14,208,866 94.144 69 Support for the AMD Radeon HD 6000 series and for AMD's APUs , as well as improvements for audio and video processing as well as for touch-sensitive screens ;
Last version was 2.6.38.8 on June 3, 2011
Older version; no longer supported: 2.6.39 May 19, 2011 36,705 14,533,582 95.994 65 Support for firewall IP sets , the Big Kernel Lock is removed;
The last version was 2.6.39.4 on August 3, 2011
Older version; no longer supported: 3.0 July 22, 2011 36,781 14,646,952 96,676 64 new version numbering scheme, also new drivers etc. a. for (virtual) network devices and the television standard DVB-T2 , as well as generally improved virtualization (including through final work on the Xen hypervisor ) and many small improvements (such as write and delete optimizations for file systems);
Last version was 3.0.101 on October 22, 2013
Older version; no longer supported: 3.1 Oct 24, 2011 37.084 14,770,469 97,334 94 is new u. a. the support of the processor platform OpenRISC ;
Last version was 3.1.10 on January 18, 2012
Older version; no longer supported: 3.2 Jan. 4, 2012 37,617 14,998,651 ≈ 62,600 73 is new u. a. support for the processor architecture Hexagon company Qualcomm ; also were u. a. some network drivers into the associated subsystem outsourced
last version was 3.2.102 on 31 May 2018
Older version; no longer supported: 3.3 March 18, 2012 38,082 15.166.074 ≈ 75,300 74 is new u. a. the support for the Android platform;
The last version was 3.3.8 on June 1st, 2012
Older version; no longer supported: 3.4 May 20, 2012 38,566 15,383,860 ≈ 64,100 63 ninth LTS approval; is new u. a. the support of the hibernation mode RC6 ;
The last version was 3.4.113 on October 26, 2016
Older version; no longer supported: 3.5 July 21, 2012 39.096 15,596,378 ≈ 77,200 62 support for the outdated network standards Token Ring and Econet has been removed;
The last version was 3.5.7 on October 12, 2012
Older version; no longer supported: 3.6 Sep 30 2012 39,733 15,868,036 ≈ 78,500 71 u. a. the energy-saving or sleep function for standby mode and idle mode of the entire system has been further developed;
The last version was 3.6.11 on December 17th, 2012
Older version; no longer supported: 3.7 Dec 11, 2012 40.905 16,191,690 ≈ 79,800 71 u. a. NAT for IPv6 , support for the ARM 64-bit instruction set and Ext4 size changes for drives larger than 16 terabytes, major changes to the graphics drivers for Nvidia, Intel and AMD graphics and improved hardware support for brightness control and Power saving functions of sound cards;
Last version was 3.7.10 on February 27, 2013
Older version; no longer supported: 3.8 Feb. 18, 2013 41,520 16,416,874 84,623 70 u. a. support for the F2FS file system has been added and support for Intel 80386 processors has been removed; should serve as the basis for the next Android version;
The last version was 3.8.13 on May 11, 2013
Older version; no longer supported: 3.9 Apr 29, 2013 42,423 16,686,879 ≈ 82,000 69 u. a. Support for 32-bit processors of the HTP series (from Meta ) and ARC 700 (from Synopsys ) has been added and the drivers for the Btrfs file system have been expanded to include initial support for Raid 5 and 6 ;
Last version was 3.9.11 on July 21, 2013
Older version; no longer supported: 3.10 30th of June 2013 43,016 16,955,489 ≈ 69,900 63 including better support for the Unified Video Decoder (UVD) from AMD Radeon GPUs and better support from Nvidia Tegra ; In addition, real-time capabilities have been improved and SSDs can be used as a cache for hard drives . Also new is the driver for the high-speed transmission technology InfiniBand ;
Last version was 10/3/108 on November 4, 2017
Older version; no longer supported: 3.11 Sep 2 2013 44.002 17,403,279 ≈ 71,600 63 In addition to optimizations to the graphics drivers, various new WLAN and LAN drivers and the improvement of KVM and Xen support on ARM64 are planned; If the main memory becomes scarce, it can be compressed with a zswap (see also Zip and Swap );
The last version was 3.11.10 on November 29, 2013 - Also called Linux for Workgroups because of its version number , based on Microsoft's Windows 3.11 for Workgroups .
Older version; no longer supported: 3.12 Nov 3, 2013 44,586 17,726,872 ≈ 73,000 62 In addition to optimizing the Optimus drivers, a SYN proxy has been added to prevent SYN flooding attacks; Multithreading with Raid 5 arrays created with Mdadm and Btrfs can handle deduplication ; The last version was 3.12.74 on May 9, 2017
Older version; no longer supported: 3.13 Jan. 20, 2014 44,970 17,930,916 ≈ 73,600 77 contains the new firewall infrastructure Nftables (which with the 2.4 introduced iptables to replace), improved 3D performance and activation of the Dynamic Power Management (DPM) with AMD Radeon graphics cards. More modern multiqueue storage interface;
The last version was 3.13.11 on April 22, 2014
Older version; no longer supported: 3.14 March 31, 2014 45,935 18,271,989 ≈ 74,900 70 a scheduler suitable for real-time systems is added and u. a. Xen 4.4 is now included; Support of new graphics cores and correct functioning of the Unified Video Decoder (UVD) for AMD graphics chips from HD 7000;
Last version was 3.14.79 on September 11, 2016
Older version; no longer supported: 3.15 June 8, 2014 46,780 18,632,574 ≈ 76,000 53 Waking up from Suspend-to-RAM mode has been accelerated and Open File Description Locks have been introduced. For example, video software should now be able to read parts of a file more easily and atomic exchange of files is possible. Support for FUSE , XFS and Flash storage with a file system on it has been expanded;
Last version was 3.15.10 on August 14, 2014
Older version; no longer supported: 3.16 Aug 3, 2014 47,425 18,879,129 ≈ 76,900 56 have included u. a. Robustness measures for the Btrfs file system and the Radeon and Nouveau graphics drivers have been optimized;
Last version was 3.16.85 on June 11, 2020
Older version; no longer supported: 3.17 Oct 5, 2014 47,490 18,864,388 ≈ 76,600 63 The Getrandom () function and specifications for minimum entropy ensure more reliable random numbers. There are new bases for kdbus , Fences in Dma-Buf , MST ( Multi-Stream Transport , part of DisplayPort 1.2) for 4K monitors , as well as support for the Xbox One - Controller and ForcePad touchpads . Optimizations for Thunderbolt on Apple devices;
Last version was 3.17.8 on January 8, 2015
Older version; no longer supported: 3.18 7th Dec 2014 47,971 18,994,096 ≈ 77,300 64 Recording of the OverlayFS ; Improvements to Btrfs and F2FS ; Tunneling of any protocol is possible via UDP ; Audio output with the Nouveau driver via DisplayPort; Just-in-time compilation of the Extended Berkeley Packet Filter (eBPF) for ARM64; the BPF is now generally available through the Syscall bpf() ; Module parameters can be unsafe (English unsafe are labeled);
Last version was 3.18.140 on May 16, 2019
Older version; no longer supported: 3.19 Feb 9, 2015 48,424 19.130.604 ≈ 77,900 63 u. a. Support for AMD's Heterogeneous System Architecture (HSA), the interprocess communication framework Binder , which was originally developed for Android and is based on OpenBinder , was also included;
Last version was 3.19.8 on May 11, 2015
Older version; no longer supported: 4.0 Apr 12, 2015 48,945 19,312,370 ≈ 78,500 63 u. a. Support for updates during operation ( Kernel Live Patching );
Last version was 4.0.9 on July 21, 2015
Older version; no longer supported: 4.1 June 22, 2015 49,457 19,512,485 ≈ 79,300 70 u. a. Encryption for Ext4, drivers for NV-DIMMs and laying the foundations for 3D acceleration in virtual machines ;
Last version was 4.1.52 on May 28, 2018
Older version; no longer supported: 4.2 Aug 30, 2015 50,795 20,311,717 ≈ 82,000 70 u. a. Update of UEFI now possible from Linux, support of AMD graphics cards of the Volcanic Islands generation;
Last version was 4.2.8 on December 15, 2015
Older version; no longer supported: 4.3 Nov 2, 2015 51,570 20,621,444 ≈ 83,000 63 Support for Skylake and Fiji GPUs; IPv6 is the default setting;
The last version was 4.3.6 on February 19, 2016
Older version; still supported: 4.4 Jan. 10, 2016 52.221 20,862,115 ≈ 83,300 70 Kernel with long-term support; Graphics drivers for the Raspberry Pi and other 3D graphics accelerations in KVM for virtual machines, improvements in RAID and SSDs , BPF calls are now also possible in the user space ;
Current version: 4.4.232 on July 31, 2020
Older version; no longer supported: 4.5 March 14, 2016 52,916 21,154,545 ≈ 84,300 63 further improvements in the 3D drivers, including support for PowerPlay , and smooth switching of network connections; Improvements in access to NFS servers;
The last version was 4.5.7 on June 8, 2016
Older version; no longer supported: 4.6 May 15, 2016 53,660 21,422,694 ≈ 85,300 63 u. a. Improved energy management through the option of setting the clock rate for Tegra X1 GPUs and through the activation of the Frame Buffer Compression (FBC) for processors of the Haswell architecture and Broadwell , the OrangeFS file system was also activated and additional tools for better error detection (English bug hunting );
Last version was 4.6.7 on August 16, 2016
Older version; no longer supported: 4.7 July 24, 2016 54,400 21,712,846 ≈ 86,200 70 u. a. First support for new Radeon graphics cards (under the code name Polaris ), four more ARM drivers and support for game controllers; also better SMR support and acceleration when tunneling ; Compared to its predecessor ( 4.6 ), around 500 additional hardware components are now supported;
Last version was 4.7.10 on October 22, 2016
Older version; no longer supported: 4.8 Oct 2, 2016 55.503 22,071,048 ≈ 87,700 70 in addition to support for new drivers for main and graphics processors from AMD , ARM ( Mali ), Intel and Nvidia , a. the overclocking (or overclocking ) for AMD graphics drivers and a new GPU virtualization technology introduced for Intel graphics driver, further was the XFS revised so that it consider, as well as data integrities data deduplication and the copy-on-write controlled process;
Last version was 4.8.17 on January 9, 2017
Older version; still supported: 4.9 Dec 11, 2016 56,223 22,348,356 ≈ 88,900 70 in addition to improvements in security - through better protection against stack overflows - receive u. a. the driver for the XFS is an extension called Shared Data Extents , which is based on the reverse mapping infrastructure (already introduced in the 4.8 core) and is intended to enable several files to share a data or value (s) area in the future can and this can also have several owners; In addition, the first support for the so-called Greybus was incorporated, which was originally intended for the modular smartphone Ara developed by Google and, among other things. a. used by Motorola in one of their devices;
Current version: 4.9.232 on July 31, 2020
Older version; no longer supported: 4.10 19th Feb 2017 57,172 22,839,541 ≈ 89,900 71 Improvements in writing to data carriers and the introduction of faster error detection in RAID systems. a. EFI access improved and the LED driver uleds incorporated and a method for graphics acceleration of virtual machines introduced; With Intel processors, the cache can be split between processes, the functions for the ARM64 architecture have been expanded, routing has been revised, the UBIFS file system has been supplemented with optional encryption, while logfs has been removed;
The last version was 10/4/17 on May 20, 2017
Older version; no longer supported: 4.11 1st May 2017 57,964 23.137.284 ≈ 91,000 71 Reduction of the power consumption of NVMe SSDs through the power saving technology APST; Support for self-encrypting SSDs; Improvements in querying metadata for directories and files; Revision of the Intel Turbo Boost Max 3.0 function introduced in 4.10 ; Improvements in virtual machine graphics acceleration for AMD graphics units; Adjustments for ext4 to improve its use as a disposable file system;
The last version was 11/4/12 on July 21, 2017
Older version; no longer supported: 4.12 2nd July 2017 59,808 24,173,535 ≈ 99,000 62 Introduction of the "Budget Fair Queuing" (BFQ) scheduler for better performance when accessing data carriers, support for AMD's Radeon Vega graphics processor ;
The last version was December 4th , 2014 on September 20th, 2017
Older version; no longer supported: 4.13 3rd Sep 2017 60,543 24,767,008 ≈ 100,000 63 Performance gain in the HTTPS protocol, directories in the Ext4 file system can now contain up to 2 billion entries;
Last version was 4.13.16 on November 24, 2017
Older version; still supported: 4.14 Nov 12, 2017 61,258 25,041,165 ≈ 97,000 70 LTS version; Supports up to 4096 terabytes of memory;
Current version: 4.14.191 on July 31, 2020
Older version; no longer supported: 4.15 Jan. 28, 2018 62,271 25.364.680 ≈ 100,000 78 Installation of various protective mechanisms against Meltdown and Specter , the Amdgpu driver now supports AMD's Vega graphics cards better;
Last version was 4.15.18 on April 19, 2018
Older version; no longer supported: 4.16 April 1, 2018 62,883 25,558,670 100,606 63 Last version was 4.16.18 on June 26, 2018
Older version; no longer supported: 4.17 3rd June 2018 61,332 25,379,428 99,772 63 HDCP support for Intel CPUs with integrated graphics processor, first countermeasures against Specter v4 (Speculative Store Bypass) , removal of architecture support Blackfin , AXIS CRIS and 6 others;
Last version was 4.17.19 on August 24, 2018
Older version; no longer supported: 4.18 12 Aug 2018 60,973 25.280.736 101,782 70 Preparatory work for enhanced firewall Bpfilter ; Support for GPU from Kaby Lake-G and the announced Vega20 ; First support for Qualcomm's Snapdragon 845 processor;
Last version was 4.18.20 on November 21, 2018
Older version; still supported: 4.19 Oct. 22, 2018 61,700 25,588,319 103.117 71 LTS version ; new "Code of Conduct" for developers included in the kernel documentation, support of the new WLAN standard 802.11ax, performance improvement of the SATA drivers;
Current version: 4.19.136 on July 31, 2020
Older version; no longer supported: 4.20 23 Dec 2018 62,446 25,955,384 104,258 62 Amdgpu driver supports new GPUs from AMD, security vulnerability has been fixed for the second variant of Specter;
Last version was 4.20.17 on March 19, 2019
Older version; no longer supported: 5.0 3rd March 2019 63,135 26.211.072 102,776 70 u. a. Support for Freesync from AMD has been added;
Last version was 5.0.21 on June 4th, 2019
Older version; no longer supported: 5.1 May 6, 2019 63,873 26,459,776 ≈ 101,000 63 Data carriers can now be addressed via asynchronous I / O (AIO);
The last version was 5.1.21 on July 28, 2019
Older version; no longer supported: 5.2 7th July 2019 64,587 26,552,127 ≈ 102,000 63 u. a. Directories in Ext4 can now also be used case-insensitive ; the performance of Meltdown - and Specter v2 - patch has been optimized.
The last version was 5.2.21 on October 11, 2019
Older version; no longer supported: 5.3 Sep 15 2019 65,261 27.141.312 ≈ 108,500 70 u. a. Support for new AMD Navi 10 GPUs and Zhaoxin x86 CPUs, some innovations for efficiency improvements (support for umwait instructions, Intel Speed ​​Select, utilization clamping in the scheduler), 16 million more IPv4 addresses from the 0.0.0.0/8 range are available made;
The last version was 5.3.18 on December 18, 2019
Older version; still supported: 5.4 Nov 24, 2019 65,701 27,538,212 ≈ 109,400 70 LTS version; Support for Microsoft's exFAT file system, integration of the kernel lockdown feature, support for other AMD GPU / APU products (Navi 12/14, Arcturus, Renoir), improved performance for host file system access from a virtual machine with virtio-fs;
Current version: 5.4.58 on August 11, 2020
Older version; no longer supported: 5.5 Jan 27, 2020 66,493 27,854,754 ≈ 108,100 63 u. a. The foundations for the future support of the VPN technology WireGuard laid, initial support of the Raspberry Pi 4 , modernized code for the load distribution of the scheduler, a framework for module tests was integrated with KUnit , Btrfs receives new RAID-1 and hash algorithms, improved performance and / or stability thanks to multi-channel support for CIFS / SMB , the temperature of NVMe drives can be read out and made available by the kernel;

The last version was 5.5.19 on April 21, 2020

Older version; no longer supported: 5.6 March 29, 2020 67,337 28,169,797 ≈ 109,200 63 u. a. WireGuard is fully supported, support for the Raspberry Pi 4 (PCIe controller) has been expanded, the first components for USB4 support have been added, the k10temp driver now transmits temperature, current and voltage values ​​for Zen CPUs, / dev / random delivers random numbers even with empty entropy sources , if the Cryptographic Random Number Generator (CRNG) has been initialized once (programs that request random numbers in this way are no longer blocked), Linux allows a guest system of a VirtualBox VM thanks to the implemented VirtualBox Shared folder driver (vboxsf) an efficient integration of directories of the host system, for the first time all requirements for coping with the year 2038 problem for 32-bit operating systems are met;

Last version was 5.6.19 on June 17, 2020

Older version; still supported: 5.7 May 31, 2020 Current version: 5.7.15 on August 11, 2020
Current version: 5.8 Aug 2, 2020 Current version: 5.8.2 on August 19, 2020
Future version: 5.9 Oct. 2020 Current version: 5.9 RC1 on August 16, 2020
Legend:
Older version; no longer supported
Older version; still supported
Current version
Current preliminary version
Future version

Remarks

(a) Files counted with: find . -type f -not -regex '\./\.git/.*'|wc -l
(b) Source lines counted with:find . -type f -not -regex '\./\.git.*'|xargs cat|wc -l
(c)Size in kB based on a tar archive compressed with gzip (.tar.gz); from version 3.2 in the tar.xz format
(d) The development period mentioned only relates to the merging of already developed program parts, some of which were developed several years before the merger.

Innovations in the kernel 2.6

The 2.6 kernel series was developed from December 2001 onwards on the basis of the 2.4 series at that time and featured extensive innovations. For development, the new source code was clearer and easier to maintain, while users benefited from the revision of the process scheduler and the I / O area and from lower latency times. This was achieved through a number of measures, which are shown below:

New process scheduler

In an operating system capable of multitasking, there must be an instance that allocates computing time to the processes that want to run. The process scheduler forms this instance . Since Linux 2.6 was released, fundamental work has been done on the scheduler several times.

For the first 2.6 kernels, Ingo Molnár designed and implemented a completely new scheduler compared to Linux 2.4, the O (1) scheduler . This got its name because the relevant algorithms on which the scheduler was based have the time complexity . This means that the processor time required by the scheduler for its own tasks is independent of the number of processes or threads managed. In particular, there was no need to search through all processes for the currently most important process.

The O (1) scheduler also worked extremely efficiently with a large number of processes and required very little computing time itself. In principle, he used two linked lists in which the processes were entered that still wanted to run and those that were already running. When all the processes were in the second list, the data fields were swapped and the game began again. In addition, the scheduler was designed in such a way that processes that require large amounts of computing time are disadvantaged compared to interactive processes if both want to run at the same time.

Interactive processes generally require very little computing time, but are very time-critical (for example, the user does not want to wait long for a reaction from the graphical user interface). The O (1) scheduler had heuristics to determine whether a process is interactive or whether the CPU has been busy for a long time.

The internal "cycle" of the kernel has been increased from 100 to 1000 Hertz from Kernel 2.6  , which means that the shortest possible length of a time slice is now one millisecond. The interactive processes particularly benefit from this, since it is their turn “back in line” earlier. However, since this leads to an increased CPU load and thus to a higher power consumption, it was decided to preset the clock to 250 Hertz from Kernel 2.6.13 onwards. When configuring the kernel, however, the values ​​100, 300 and 1000 Hertz can also be selected.

With the kernel version 2.6.23 in October 2007, the O (1) scheduler was replaced by a Completely Fair Scheduler ( CFS for short ), which was also developed by Ingo Molnár. The CFS, currently the only scheduler available in the main development branch, is sometimes controversial among kernel developers, as it focuses on scalability even for servers with many processor cores. Developers like Con Kolivas believe that this focus, as well as some design decisions in the CFS, will affect performance on typical desktop systems.

Preemptive kernel

As of version 2.6, most functions of the kernel are preemptive , i. H. even if the system is currently executing tasks in kernel mode , this process can be interrupted by a process from user mode . The kernel then makes when the user mode process its time slice has been used or even a new scheduling (English Re- Schedule ) requests, so the scheduler (English Scheduler ) announces that it can perform another task. This works very well , with the exception of a few kernel functions that have to run atomically (not interruptible) and also benefits interactivity.

Access control lists

With the 2.6 kernel will for the first time Linux Access Control Lists (English access control lists ) introduced natively. This very fine-grained rights management enables system administrators in particular to design the rights on a file system independently of the group and user model and to set virtually any number of special rights per file. The lack of support for access control lists from Linux was previously seen as a massive weakness of the system in terms of rights management and the options for secure configuration.

The support of access control lists works with the file systems ext2 , ext3 , jfs and XFS natively.

Inotify

With the kernel 2.6.13 first one held Inotify mentioned function feeder into the kernel. This enables constant monitoring of files and directories - if one of the monitored objects is changed or a new object is created in the monitoring space , Inotify issues a message, which in turn can cause other programs to perform defined activities. This is particularly important for search and indexing functions of the data stocks and only enables the useful use of desktop search engines such as Strigi or Meta Tracker . Without such a notification function of the kernel, a process would have to check the file or directory to be monitored for changes at certain time intervals, which, in contrast to Inotify, would result in additional performance losses.

Other important changes

As far as possible, the maximum number for certain resources has been increased in Linux 2.6. The number of possible users and groups increased from 65,000 to over 4 billion, as did the number of process IDs (from 32,000 to 1 billion) and the number of devices (major / minor numbers). Other performance-enhancing measures concerned the I / O scheduler, threading with the new native POSIX thread library and the network stack, which is now also O (1) scaled in most tests. In addition, the previously used devfs for the management of the I / O device files has been replaced by the newer udev , which eliminates many shortcomings, such as a too large / dev / directory. In addition, a uniform and consistent device naming can take place, which remains constant, which was not the case before.

License specifics

Proprietary code and concept of freedom

The version of the kernel published today by Linus Torvalds contains proprietary objects in machine language ( BLOBs ) and is therefore no longer exclusively free software . Richard Stallman even doubts that it can be copied legally, as these BLOBs would contradict the GPL and the rights under the GPL would therefore expire. As a result, the Free Software Foundation recommends only using BLOB-free versions of Linux from which these components have been removed. Linux distributions with the Linux-libre kernel meet this requirement.

The kernel under the GPL 2

The usual clause for GPL software that a newer version can be used instead of version 2 of the GPL is missing from the Linux kernel. The decision whether to use version 3 of the license for Linux, which was released in June 2007, is therefore only possible with the consent of all developers. In a survey, Torvalds and most other developers spoke out in favor of keeping version 2 of the license.

literature

  • Wolfgang Mauerer: Linux kernel architecture. Kernel 2.6 concepts, structures and algorithms. Hanser Fachbuchverlag, Munich a. a. 2003, ISBN 3-446-22566-8 .
  • Robert Love: Linux Kernel Manual. Guide to Design and Implementation of Kernel 2.6. Addison-Wesley, Munich a. a. 2005, ISBN 3-8273-2204-9 .
  • Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman : Linux Device Drivers. 3rd edition, O'Reilly. 2005, ISBN 0-596-00590-3 .

Web links

Commons : Linux (Kernel)  - Album with pictures, videos and audio files

English:

German:

Individual evidence

  1. COPYING. Retrieved August 18, 2017 .
  2. Reiko Kaps: Linus Torvalds criticizes the second GPLv3 draft. In: Heise online . July 28, 2006 . Retrieved October 30, 2012.
  3. GNU Linux-libre. Retrieved August 18, 2017 .
  4. ^ Greg Kroah-Hartman: Linux 5.8.4 . (accessed on August 26, 2020).
  5. Linus Torvalds: RELEASE NOTES FOR LINUX v0.12. In: kernel.org. Retrieved April 22, 2017 (English).
  6. index: kernel / git / torvalds / linux.git
  7. a b c UNIX / Linux History. Retrieved March 11, 2017 .
  8. Katherine Noyes: Linux 3.8: Hello 2013, Goodbye 386 Chips . In: Linux News . Linux Foundation , February 20, 2013, accessed April 14, 2013 .
  9. PPC / Linux for NuBus Power Macs. sourceforge.net, accessed April 12, 2014 .
  10. ^ Andres Calderon, Nelson Castillo: Why ARM's EABI matters. LinuxDevices.com, May 14, 2007, accessed April 10, 2019 .
  11. Press release OSDL: Developer's Certificate of Origin . 2004.
  12. Linux Kernel Archive: [RFD] Explicitly documenting patch submission , May 23, 2004 (English)
  13. Thorsten Leemhuis: New kernel series started with Linux 2.6.11.1. In: Heise online . March 7, 2005 . Retrieved April 26, 2015.
  14. Linus Torvalds: Linux 3.0-rc1. (No longer available online.) Thread.gmane.org, May 30, 2011, archived from the original on November 30, 2016 ; accessed on November 16, 2014 (English). Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / thread.gmane.org
  15. Linus Torvalds: index: kernel / git / torvalds / linux.git. git.kernel.org, February 23, 2015, accessed on February 23, 2015 .
  16. Linus Torvalds: Linus Torvalds - Google+. plus.google.com, February 13, 2015, accessed February 23, 2015 .
  17. Linux 5.0 is here: regain speed and save in a more modern way . heise.de/ct. March 4, 2019. Retrieved March 4, 2019.
  18. Active kernel releases. kernel.org, accessed on May 11, 2020 .
  19. a b c The Linux Kernel Archives. kernel.org, accessed on September 6, 2010 (English, version overview at kernel.org ).
  20. Oliver Diedrich: Happy Birthday, Tux. In: Heise online . August 25, 2006 . Retrieved October 24, 2014.
  21. a b c d e f Dr. Oliver Diedrich: The week: Linux is 3.0. In: Heise online . June 1, 2011 . Retrieved April 26, 2015.
  22. ^ Andreas Jaeger: Large File Support in Linux . SUSE GmbH. February 15, 2015.
  23. Oliver Diedrich: New firewall code for the Linux kernel. In: Heise online . October 21, 2013 . Retrieved October 28, 2013.
  24. LKML: Willy Tarreau: Linux 2.4.37.10 + 2.4 EOL plans - message on the Linux kernel mailing list , from September 6, 2010, accessed on: September 16, 2012 (English)
  25. Linux kernel 2.6.13 released - Thorsten Leemhuis, at Heise , on August 29, 2005
  26. Thorsten Leemhuis: Die Woche: Xen let KVM go by. In: Heise online . June 16, 2011 . Retrieved October 24, 2014.
  27. Jörg Thoma: Linux kernel: updates for long-term branches. Golem.de, May 4, 2011, accessed October 24, 2014 .
  28. Clever nesting: The new Linux file system Btrfs in detail - Admin-Magazin , issue 04/2009
  29. Dr. Oliver Diedrich: The Btrfs file system. In: Heise online . July 7, 2009 . Retrieved August 14, 2016.
  30. Thorsten Leemhuis: Kernel-Log: Development of 2.6.39 started. In: Heise online . March 22, 2011 . Retrieved April 26, 2015.
  31. a b Thorsten Leemhuis: Main development phase of Linux 3.2 completed. In: Heise online . November 8, 2011 . Retrieved April 26, 2015.
  32. Thorsten Leemhuis: The innovations of Linux 2.6.34. In: Heise online . May 17, 2010 . P. 3: Linux 2.6.34: file systems, network. Retrieved November 30, 2015.
  33. Thorsten Leemhuis: Kernel-Log - What 2.6.34 brings (2): File systems. In: Heise online . April 23, 2010 . Retrieved December 9, 2016.
  34. Thorsten Leemhuis: Kernel log: Cluster file system Ceph in 2.6.34, Kernel and KVM lectures from the CLT2010. In: Heise online . March 22, 2010 . Retrieved December 9, 2016.
  35. Thorsten Leemhuis: Kernel-Log - What 2.6.34 brings (3): Graphics. In: Heise online . May 5, 2010 . Retrieved December 9, 2016.
  36. Oliver Diedrich: Development of Linux 2.6.35 starts. In: Heise online . May 31, 2010 . Retrieved December 9, 2016.
  37. Thorsten Leemhuis: A flood of new stable kernels and an outlook on Linux 2.6.35. In: Heise online . July 6, 2010 . Retrieved December 9, 2016.
  38. Andi Kleen: The long term Linux 2.6.35.14 kernel is released. lkml.org, August 1, 2011, accessed May 7, 2012 (English).
  39. Thorsten Leemhuis: The innovations of Linux 2.6.36. In: Heise online . October 21, 2010 . Retrieved August 17, 2015.
  40. Thorsten Leemhuis: Kernel-Log: 2.6.36, new stable kernels, fresh drivers. In: Heise online . August 11, 2010 . Retrieved August 17, 2015.
  41. Thorsten Leemhuis: Main development phase of the Linux kernel 2.6.36 completed. In: Heise online . August 16, 2010 . Retrieved August 17, 2015.
  42. Thorsten Leemhuis: Main development phase of the Linux kernel 2.6.37 completed. In: Heise online . November 1, 2010 . Retrieved February 15, 2015.
  43. Thorsten Leemhuis: Kernel-Log: Wunderpatch integrated, improved graphics driver at the start. In: Heise online . January 7, 2011 . Retrieved March 10, 2015.
  44. Thorsten Leemhuis: Kernel-Log - What 2.6.38 brings (6): Driver. In: Heise online . March 9, 2011 . Retrieved February 15, 2015.
  45. Thorsten Leemhuis: Kernel-Log: First release candidate of Linux 2.6.39. In: Heise online . March 30, 2011 . Retrieved February 8, 2015.
  46. Thorsten Leemhuis: The innovations of Linux 2.6.39. In: Heise online . May 19, 2011 . Retrieved February 8, 2015.
  47. Arnd Bergmann: BKL: That's all, folks. git.kernel.org, January 25, 2011, accessed August 18, 2017 .
  48. Thorsten Leemhuis: First preliminary version of Linux 3.0 published. In: Heise online . May 30, 2011 . Retrieved January 24, 2015.
  49. Jörg Thoma: Kernel: Linux 3.0 is ready. golem.de, July 22, 2011, accessed January 6, 2015 .
  50. Thorsten Leemhuis: Linux kernel 3.0 released. In: Heise online . July 22, 2011 . Retrieved January 6, 2015.
  51. Thorsten Leemhuis: Kernel-Log - What 3.1 brings (3): Architecture, infrastructure, virtualization. In: Heise online . 17th September 2011 . Retrieved January 6, 2015.
  52. Mirko Dölle: Android drivers should be included in Kernel 3.3. In: Heise online . December 23, 2011 . Retrieved November 16, 2014.
  53. Jörg Thoma: RC6 power saving option in Linux kernel works. golem.de, February 15, 2012, accessed on May 21, 2012 .
  54. Thorsten Leemhuis: Kernel-Log - What 3.3 brings (4): Driver. In: Heise online . March 8, 2012 . Retrieved May 21, 2012.
  55. Thorsten Leemhuis: The innovations of Linux 3.4. In: Heise online . May 21, 2012 . Retrieved May 21, 2012.
  56. Thorsten Leemhuis: Kernel-Log - What 3.5 brings (1): Network. In: Heise online . June 25, 2012 . Retrieved June 27, 2012.
  57. Thorsten Leemhuis: Kernel-Log: Development of Linux 3.6 is running. In: Heise online . 2nd August 2012 . Retrieved May 11, 2014.
  58. Thorsten Leemhuis: Linux Kernel 3.7 released. In: Heise online . December 11, 2012 . Retrieved December 13, 2012.
  59. Thorsten Leemhuis: Kernel-Log - What 3.8 brings (1): File systems and storage. In: Heise online . January 21, 2013 . Retrieved February 16, 2013.
  60. Thorsten Leemhuis: Kernel-Log - What 3.8 brings (2): Infrastructure. In: Heise online . February 8, 2013 . Retrieved February 16, 2013.
  61. a b Jörg Thoma: Linux Kernel: Torvalds closes merge window for Linux 3.9. golem.de, March 4, 2013, accessed March 6, 2013 .
  62. Meta SoC Processors ( Memento from March 15, 2013 in the Internet Archive ) - Page at Imagination Technologies , accessed on March 7, 2013 (English).
  63. DesignWare ARC 700 Processor Core Family - Synopsys page , accessed on March 7, 2013.
  64. Hans-Joachim Baader: Linux kernel 3.9 enters the test phase. Pro-Linux , March 4, 2013, accessed March 7, 2013 .
  65. Thorsten Leemhuis: Kernel-Log - What 3.10 brings (4): Driver. In: Heise online . June 28, 2013 . Retrieved July 10, 2013.
  66. Thorsten Leemhuis: The innovations of Linux 3.9. In: Heise online . April 29, 2013 . P. 3: Conclusion, trends, statistics. Retrieved July 10, 2013.
  67. Thorsten Leemhuis: The innovations of Linux 3.10. Heise, July 1, 2013, accessed July 10, 2013 .
  68. Thorsten Leemhuis: Kernel-Log - What 3.11 brings (2): Infrastructure. Heise, August 19, 2013, accessed on August 20, 2013 .
  69. Thorsten Leemhuis: "Linux for Workgroups": The range of functions of Linux 3.11 is available. Heise, July 15, 2013, accessed on March 13, 2018 .
  70. Thorsten Leemhuis: Linux 3.12 brings Optimus and SYN proxy support. Heise, September 17, 2013, accessed on September 18, 2013 .
  71. Thorsten Leemhuis: The innovations of Linux 3.12: Network. Heise, November 4, 2013, accessed November 6, 2013 .
  72. Thorsten Leemhuis: Kernel-Log - What 3.12 brings (1): File systems & storage. Heise, October 8, 2013, accessed November 6, 2013 .
  73. Thorsten Leemhuis: The innovations of Linux 3.13. Heise online, January 20, 2014, accessed January 20, 2014 .
  74. Thorsten Leemhuis: Kernel-Log - What 3.13 brings (5): Graphics driver. Heise online, January 10, 2014, accessed on January 20, 2014 .
  75. Thorsten Leemhuis: Kernel-Log - What 3.13 brings (1): File systems and storage. Heise online, December 10, 2013, accessed January 20, 2014 .
  76. a b Jörg Thoma: Process deadlines: Linux 3.14 receives deadline scheduler. golem.de, March 31, 2014, accessed March 31, 2014 .
  77. Peter Siering: Xen 4.4: virtual machines for ARM. heise.de, March 10, 2014, accessed on March 11, 2014 .
  78. Thorsten Leemhuis: Kernel-Log - What 3.15 brings (1): File systems and storage. heise.de, May 6, 2014, accessed on May 6, 2014 .
  79. Thorsten Leemhuis: The innovations of Linux 3.16. heise.de, August 4, 2014, accessed on August 17, 2014 .
  80. Thorsten Leemhuis: The innovations of Linux 3.17. heise.de, October 6, 2014, accessed on November 10, 2014 .
  81. Hans-Joachim Baader: Linux kernel 3.18 released. Pro-Linux , December 8, 2014, accessed December 8, 2014 .
  82. Thorsten Leemhuis: Linux 3.19 released: HSA support for AMD chips. Heise online, February 9, 2015, accessed on February 9, 2015 .
  83. Jörg Thoma: Linux 3.19: More for the graphics and for the network. golem.de, February 9, 2015, accessed February 9, 2015 .
  84. Contemporary Linux-IPC - Linux-Magazin , Edition 02/2015
  85. Thorsten Leemhuis: Linux kernel makes version jump to 4.0. heise.de, February 23, 2015, accessed on February 23, 2015 .
  86. Jörg Thoma: Version 4.0 patches itself during operation. golem.de, February 23, 2015, accessed on February 23, 2015 .
  87. Thorsten Leemhuis: Linux 4.1 released: Ext4 now encrypts itself. Heise.de, June 22, 2015, accessed on June 22, 2015 .
  88. Thorsten Leemhuis: Linux 4.2-rc1: New graphics driver from AMD integrated. heise.de, July 6, 2015, accessed on July 19, 2015 .
  89. Thorsten Leemhuis: Linux kernel 4.3 will support new AMD and Intel graphics processors. heise.de, September 5, 2015, accessed on September 15, 2015 .
  90. Thorsten Leemhuis: Linux 4.3 will use IPv6 support by default. heise.de, September 14, 2015, accessed on September 15, 2015 .
  91. Greg Kroah-Hartman: The Linux 4.4 kernel will be the next LTS (long term support) release ... Greg Kroah-Hartman, October 28, 2015, accessed on November 2, 2015 (English).
  92. Thorsten Leemhuis: Linux 4.4 released: New graphics drivers and optimizations for SSDs. heise.de, January 11, 2016, accessed on August 13, 2016 .
  93. Sebastian Grüner: Kernel: Linux 4.4 appears with graphics driver for Raspberry Pi. Golem.de, January 11, 2016, accessed on August 13, 2016 .
  94. Thorsten Leemhuis: Linux 4.5: Improved 3D drivers and smooth connection changes. heise.de, January 25, 2016, accessed on August 13, 2016 .
  95. Ferdinand Thommes: Kernel: Linux 4.5-rc1 upgrades AMDGPU with Powerplay. golem.de, January 11, 2016, accessed on August 13, 2016 .
  96. Thorsten Leemhuis: The innovations of Linux 4.5. heise.de, March 14, 2016, accessed on May 15, 2016 .
  97. Ferdinand Thommes: Kernel: Linux 4.6-rc1 with the new OrangeFS file system. golem.de, March 28, 2016, accessed on August 13, 2016 .
  98. Thorsten Leemhuis: Linux 4.6 will support 3D acceleration of current GeForce chips. heise.de, March 29, 2016, accessed on May 15, 2016 .
  99. Thorsten Leemhuis: Linux 4.7 should support AMD's new Radeon graphics cards. heise.de, May 30, 2016, accessed on July 2, 2016 .
  100. Ferdinand Thommes: LLinux 4.7-rc1 supports AMD's Polaris. golem.de, May 30, 2016, accessed December 12, 2016 .
  101. Thorsten Leemhuis: Linux 4.7 avoids network latencies and supports SMR hard drives better. heise.de, June 15, 2016, accessed on June 15, 2016 .
  102. Thorsten Leemhuis: Linux 4.7 released: RX-480 driver and improved security. heise.de, July 25, 2016, accessed on August 18, 2016 .
  103. Thorsten Leemhuis: Linux 4.8 brings drivers for new ARM, Intel and Nvidia graphics processors. heise.de, August 8, 2016, accessed on August 16, 2016 .
  104. Jörg Thoma: Operating systems: Linux 4.8 overclocks AMD graphics cards. golem.de, August 8, 2016, accessed on August 16, 2016 .
  105. Thorsten Leemhuis: Linux 4.9 will improve security and bring new drivers. heise.de, October 17, 2016, accessed on October 18, 2016 .
  106. Ferdinand Thommes: Kernel: Linux 4.9rc1 appears with a protocol for Project Ara modules. golem.de, October 17, 2016, accessed October 18, 2016 .
  107. Hans-Joachim Baader: First preview of Linux kernel 4.10. pro-linux.de, December 26, 2016, accessed November 5, 2017 .
  108. Thorsten Leemhuis: Linux 4.10 New ways to accelerate graphics in virtual machines. heise.de, January 17, 2017, accessed on November 5, 2017 .
  109. Hans-Joachim Baader: Linux kernel 4.10 released. In: pro-linux.de. February 19, 2017. Retrieved February 19, 2017 .
  110. Linux kernel 4.11: longer battery life thanks to NVMe power saving technology - Heise , on March 6, 2017
  111. Thorsten Leemhuis: The innovations of Linux 4.11. heise.de, April 16, 2017, accessed on November 5, 2017 .
  112. Thorsten Leemhuis: The innovations of Linux 4.12. heise.de, July 3, 2017, accessed on July 23, 2017 .
  113. Thorsten Leemhuis: The innovations of Linux 4.13. heise.de, September 4, 2017, accessed on September 24, 2017 .
  114. Greg Kroah-Hartman: As no one seemed to make 4.9 blow up too badly, let's try this again! plus.google.com, June 17, 2017, accessed June 17, 2017 .
  115. Thorsten Leemhuis: The innovations of Linux 4.14. heise.de, November 13, 2017, accessed on March 18, 2018 .
  116. Thorsten Leemhuis: The innovations of Linux 4.15. heise.de, January 28, 2018, accessed on March 18, 2018 .
  117. Thorsten Leemhuis: The innovations of Linux 4.17. heise.de, June 4, 2018, accessed June 4, 2018 .
  118. Thorsten Leemhuis: Linux 4.18 released. heise.de , August 13, 2018, accessed on August 13, 2018 .
  119. Thorsten Leemhuis: Kernel-Log: Linux 4.19: Start without flickering and save power. heise.de , October 12, 2018, accessed October 24, 2018 .
  120. Thorsten Leemhuis: Linux 4.19: Start nicely and ready for the WLAN of tomorrow. heise.de , October 22, 2018, accessed on October 24, 2018 .
  121. Thorsten Leemhuis: Linux 4.20 released: Performance optimizations and new drivers. heise.de , December 12, 2018, accessed December 24, 2018 .
  122. Thorsten Leemhuis: Linux 5.0 is here: regain speed and save in a modern way. heise.de , March 4, 2019, accessed on June 24, 2019 .
  123. Thorsten Leemhuis: Linux 5.1: Performance improvements and new storage technology. heise.de , May 6, 2019, accessed June 24, 2019 .
  124. Linux 5.2 released: Change record and speed improvements - c't Magazin , on July 9, 2019
  125. Thorsten Leemhuis: Linux 5.3 released: capping priorities and trouble for Nvidia. Retrieved November 26, 2019 .
  126. Thorsten Leemhuis: Linux 5.4 released: exFAT support and restrictions for root. Retrieved November 26, 2019 .
  127. Thorsten Leemhuis: Linux 5.5 released: Wireguard foundation and performance improvements. Retrieved January 27, 2020 .
  128. Thorsten Leemhuis: Linux 5.6 released: Wireguard and USB4 support. Retrieved April 6, 2020 .
  129. Thorsten Leemhuis: Linux 5.6 supports Wireguard and USB4. Retrieved April 6, 2020 .
  130. Thorsten Leemhuis: The innovations of Linux 2.6.25. Data and figures on the latest versions of the Linux kernel. Heise online, April 17, 2008, p. 6 , accessed on September 28, 2010 .
  131. Thorsten Leemhuis: The innovations of Linux 2.6.31. Data and figures on the latest versions of the Linux kernel. Heise online, September 10, 2009, p. 6 , accessed on September 28, 2010 .
  132. Thorsten Leemhuis: The innovations of Linux 2.6.38. Data and figures on the latest versions of the Linux kernel. Heise online, March 15, 2011, p. 8 , accessed on March 15, 2011 .
  133. Thorsten Leemhuis: The innovations of Linux 3.0. Data and figures on the latest versions of the Linux kernel. Heise online, July 22, 2011, p. 4 , accessed on July 25, 2011 .
  134. Dr. Oliver Diedrich: The Next Generation - Linux 2.6: Fit for the future . in c't 24/2003 (on November 17, 2003), page 194
  135. Marcel Hilzinger: Con Kolivas is back with a new scheduler. Linux Magazin , September 2, 2009, accessed April 27, 2014 .
  136. ^ Richard M. Stallman: Linux, GNU, and freedom. gnu.org, July 10, 2014, accessed February 12, 2015 .
  137. Linus Torvalds: GPL V3 and Linux - Dead Copyright Holders. January 25, 2006, accessed March 24, 2009 (message on the Linux kernel mailing list).
This version was added to the list of articles worth reading on October 23, 2005 .