Linux (kernel)
Linux | |
---|---|
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
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 ) | ||||
Simple Libraries sin, opendbm | ||||
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:
- SPARC / UltraSPARC from Oracle (originally from Sun )
- 68000 (m68k) from Motorola
- PowerPC (ppc) from Apple , IBM and Motorola (AIM alliance)
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:
- Acorn Archimedes , A5000 and Risc PC series ( ARM , StrongARM , Intel XScale etc.)
- x86-64 or x64 (implemented as AMD64 or Intel 64 ): all x86 processors with 64-bit expansion (still IA-32 architecture), such as AMD's Athlon 64 , Opteron , Turion , Phenom , Phenom II , Bulldozer as well as Intel's Core 2 , Core i , Xeon
- Atmel AVR32
- Axis Communications ' CRIS
- Blackfin
- Compaq Alpha processor
- Hitachi H8 / 300
- Hewlett-Packard PA-RISC
- IA-64 : PCs with 64-bit Intel Itanium processor
- IBM S / 390 and z Systems
- Intel 80386 (up to Kernel 3.7, beginning of 2013): IBM PCs and compatible with 80386 and compatible x86 processors of the same generation
- Intel 80486 and later: IBM PCs and compatible with 32-bit processors of IA-32 - Architecture , u. a. Intel 80486 and Pentium , AMD Athlon and Duron , Cyrix processors and many more.
- Support for Intel 16-bit CPUs ( 8086 , 8088 , 80186 , 80188 and 80286 ) is being developed as a subset of the Linux 2.0 / 2.1 kernel as part of the ELKS project. It stands for Embeddable Linux Kernel Subset , the intended goal is compatibility with Unix V7 on 16-bit x86 systems.
- MIPS : machines from Silicon Graphics ...
- Motorola 68020 and newer: later Amigas , some Atari and many Apple computers from 1987 ( Macintosh II ) to 1995 (see Linux68k )
- NEC v850e
- PowerPC : most Apple computers between 1994 and 2006 (all PCI -based Power Macintosh , the Nintendo GameCube ; limited support for NuBus Power Macs up to Kernel 2.4.x, further development was outsourced to the PPC / Linux for NuBus Power Macs project ) , Clones of Power Macs from Power Computing , UMAX and Motorola , Amigas improved with a "Power-UP" card (e.g. Blizzard or CyberStorm) or its successor AmigaOne , both IBM Power and PowerPC-based IBM RS / 6000 systems, various embedded PowerPC platforms
- Sun / Oracle SPARC and UltraSparc: Workstations from Sun or Oracle
- Hitachi SuperH : Sega Dreamcast
- OpenRISC
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
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. "
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
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 |
---|---|---|---|---|---|---|
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 | 1.0.0 | March 13, 1994 | 563 | 170,581 | 1,259 | |
1.1 | 1.1.0 | April 6, 1994 | 561 | 170,320 | 1,256 | Development version |
1.1.95 | March 2, 1995 | 2,301 | ||||
1.2 | 1.2.0 | March 7, 1995 | 909 | 294,623 | 2,301 | first ports to other processor architectures, with Alpha , MIPS and SPARC |
1.2.13 | August 2, 1995 | 2,355 | ||||
1.3 | 1.3.0 | June 12, 1995 | 992 | 323,581 | 2,558 | Development version with initial support for multiprocessor systems |
1.3.100 | May 10, 1996 | 5,615 | ||||
2.0 | 2.0.0 | June 9, 1996 | 2.015 | 716.119 | 5,844 | first support for symmetrical multiprocessor systems |
2.0.40 | February 8, 2004 | 7,551 | ||||
2.1 | 2.1.0 | September 30, 1996 | 1,727 | 735.736 | 6,030 | Development version |
2.2.0-pre9 | January 21, 1999 | 13,077 | ||||
2.2 | 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 |
2.2.26 | February 24, 2004 | 19,530 | ||||
2.3 | 2.3.0 | May 11, 1999 | 4,721 | 1,763,358 | 13,804 | Development version |
2.3.99-pre9 | May 23, 2000 | 20,882 | ||||
2.4 | 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 |
2.4.37 | December 2, 2008 | 38,735 | Last version was 2.4.37.11 on December 18, 2010 | |||
2.5 | 2.5.0 | November 23, 2001 | 9,893 | 3,833,603 | 29,405 | Development version |
2.5.75 | July 10, 2003 | 40,969 | ||||
2.6 | 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
|
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 |
---|---|---|---|---|---|---|
2.6.13 | Aug 28, 2005 | u. a. was Inotify added | ||||
2.6.20 | Feb. 4, 2007 | 21,280 | 8,102,486 | 54,548 | 66 | First support for the virtualization technology KVM |
2.6.21 | Apr 26, 2007 | 21,614 | 8,246,470 | 55,329 | 80 | |
2.6.22 | July 8, 2007 | 22,411 | 8,499,363 | 56,914 | 74 | |
2.6.23 | Oct 9, 2007 | 22,530 | 8,566,554 | 57,404 | 93 | |
2.6.24 | Jan. 24, 2008 | 23,062 | 8,859,629 | 59,079 | 107 | |
2.6.25 | Apr 17, 2008 | 23,810 | 9,232,484 | 61,518 | 83 | |
2.6.26 | July 13, 2008 | 24,270 | 9,411,724 | 62,550 | 88 | |
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 |
2.6.28 | Dec 24, 2008 | 25,255 | 10.195.507 | 66,766 | 76 | |
2.6.29 | March 23, 2009 | 26,668 | 11,010,647 | 71,977 | 89 | Admission of the Btrfs |
2.6.30 | June 10, 2009 | 27,879 | 11,637,173 | 75,768 | 78 | USB 3.0 support |
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 ) |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 . |
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
|
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
4.16 | April 1, 2018 | 62,883 | 25,558,670 | 100,606 | 63 | Last version was 4.16.18 on June 26, 2018 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
5.7 | May 31, 2020 | Current version: 5.7.15 on August 11, 2020 | ||||
5.8 | Aug 2, 2020 | Current version: 5.8.2 on August 19, 2020 | ||||
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
Future version
|
Remarks
find . -type f -not -regex '\./\.git/.*'|wc -l
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
English:
- The Linux Kernel Archives - official website
- Elixir Cross Referencer
- Interactive Linux Kernel Map
- Linux Kernel Newbies - Information for budding kernel programmers
- Oldlinux.org - a collection of historical kernels
- Linux 0.01 News - Page about further developments of the 0.01 kernel for newer GCC versions
- Anatomy of the Linux kernel - IBM , June 6, 2007
German:
Individual evidence
- ↑ COPYING. Retrieved August 18, 2017 .
- ↑ Reiko Kaps: Linus Torvalds criticizes the second GPLv3 draft. In: Heise online . July 28, 2006 . Retrieved October 30, 2012.
- ↑ GNU Linux-libre. Retrieved August 18, 2017 .
- ^ Greg Kroah-Hartman: Linux 5.8.4 . (accessed on August 26, 2020).
- ↑ Linus Torvalds: RELEASE NOTES FOR LINUX v0.12. In: kernel.org. Retrieved April 22, 2017 (English).
- ↑ index: kernel / git / torvalds / linux.git
- ↑ a b c UNIX / Linux History. Retrieved March 11, 2017 .
- ↑ Katherine Noyes: Linux 3.8: Hello 2013, Goodbye 386 Chips . In: Linux News . Linux Foundation , February 20, 2013, accessed April 14, 2013 .
- ↑ PPC / Linux for NuBus Power Macs. sourceforge.net, accessed April 12, 2014 .
- ^ Andres Calderon, Nelson Castillo: Why ARM's EABI matters. LinuxDevices.com, May 14, 2007, accessed April 10, 2019 .
- ↑ Press release OSDL: Developer's Certificate of Origin . 2004.
- ↑ Linux Kernel Archive: [RFD] Explicitly documenting patch submission , May 23, 2004 (English)
- ↑ Thorsten Leemhuis: New kernel series started with Linux 2.6.11.1. In: Heise online . March 7, 2005 . Retrieved April 26, 2015.
- ↑ 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.
- ↑ Linus Torvalds: index: kernel / git / torvalds / linux.git. git.kernel.org, February 23, 2015, accessed on February 23, 2015 .
- ↑ Linus Torvalds: Linus Torvalds - Google+. plus.google.com, February 13, 2015, accessed February 23, 2015 .
- ↑ Linux 5.0 is here: regain speed and save in a more modern way . heise.de/ct. March 4, 2019. Retrieved March 4, 2019.
- ↑ Active kernel releases. kernel.org, accessed on May 11, 2020 .
- ↑ a b c The Linux Kernel Archives. kernel.org, accessed on September 6, 2010 (English, version overview at kernel.org ).
- ↑ Oliver Diedrich: Happy Birthday, Tux. In: Heise online . August 25, 2006 . Retrieved October 24, 2014.
- ↑ 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.
- ^ Andreas Jaeger: Large File Support in Linux . SUSE GmbH. February 15, 2015.
- ↑ Oliver Diedrich: New firewall code for the Linux kernel. In: Heise online . October 21, 2013 . Retrieved October 28, 2013.
- ↑ 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)
- ↑ Linux kernel 2.6.13 released - Thorsten Leemhuis, at Heise , on August 29, 2005
- ↑ Thorsten Leemhuis: Die Woche: Xen let KVM go by. In: Heise online . June 16, 2011 . Retrieved October 24, 2014.
- ↑ Jörg Thoma: Linux kernel: updates for long-term branches. Golem.de, May 4, 2011, accessed October 24, 2014 .
- ↑ Clever nesting: The new Linux file system Btrfs in detail - Admin-Magazin , issue 04/2009
- ↑ Dr. Oliver Diedrich: The Btrfs file system. In: Heise online . July 7, 2009 . Retrieved August 14, 2016.
- ↑ Thorsten Leemhuis: Kernel-Log: Development of 2.6.39 started. In: Heise online . March 22, 2011 . Retrieved April 26, 2015.
- ↑ a b Thorsten Leemhuis: Main development phase of Linux 3.2 completed. In: Heise online . November 8, 2011 . Retrieved April 26, 2015.
- ↑ 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.
- ↑ Thorsten Leemhuis: Kernel-Log - What 2.6.34 brings (2): File systems. In: Heise online . April 23, 2010 . Retrieved December 9, 2016.
- ↑ 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.
- ↑ Thorsten Leemhuis: Kernel-Log - What 2.6.34 brings (3): Graphics. In: Heise online . May 5, 2010 . Retrieved December 9, 2016.
- ↑ Oliver Diedrich: Development of Linux 2.6.35 starts. In: Heise online . May 31, 2010 . Retrieved December 9, 2016.
- ↑ 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.
- ↑ Andi Kleen: The long term Linux 2.6.35.14 kernel is released. lkml.org, August 1, 2011, accessed May 7, 2012 (English).
- ↑ Thorsten Leemhuis: The innovations of Linux 2.6.36. In: Heise online . October 21, 2010 . Retrieved August 17, 2015.
- ↑ Thorsten Leemhuis: Kernel-Log: 2.6.36, new stable kernels, fresh drivers. In: Heise online . August 11, 2010 . Retrieved August 17, 2015.
- ↑ Thorsten Leemhuis: Main development phase of the Linux kernel 2.6.36 completed. In: Heise online . August 16, 2010 . Retrieved August 17, 2015.
- ↑ Thorsten Leemhuis: Main development phase of the Linux kernel 2.6.37 completed. In: Heise online . November 1, 2010 . Retrieved February 15, 2015.
- ↑ Thorsten Leemhuis: Kernel-Log: Wunderpatch integrated, improved graphics driver at the start. In: Heise online . January 7, 2011 . Retrieved March 10, 2015.
- ↑ Thorsten Leemhuis: Kernel-Log - What 2.6.38 brings (6): Driver. In: Heise online . March 9, 2011 . Retrieved February 15, 2015.
- ↑ Thorsten Leemhuis: Kernel-Log: First release candidate of Linux 2.6.39. In: Heise online . March 30, 2011 . Retrieved February 8, 2015.
- ↑ Thorsten Leemhuis: The innovations of Linux 2.6.39. In: Heise online . May 19, 2011 . Retrieved February 8, 2015.
- ↑ Arnd Bergmann: BKL: That's all, folks. git.kernel.org, January 25, 2011, accessed August 18, 2017 .
- ↑ Thorsten Leemhuis: First preliminary version of Linux 3.0 published. In: Heise online . May 30, 2011 . Retrieved January 24, 2015.
- ↑ Jörg Thoma: Kernel: Linux 3.0 is ready. golem.de, July 22, 2011, accessed January 6, 2015 .
- ↑ Thorsten Leemhuis: Linux kernel 3.0 released. In: Heise online . July 22, 2011 . Retrieved January 6, 2015.
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.1 brings (3): Architecture, infrastructure, virtualization. In: Heise online . 17th September 2011 . Retrieved January 6, 2015.
- ↑ Mirko Dölle: Android drivers should be included in Kernel 3.3. In: Heise online . December 23, 2011 . Retrieved November 16, 2014.
- ↑ Jörg Thoma: RC6 power saving option in Linux kernel works. golem.de, February 15, 2012, accessed on May 21, 2012 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.3 brings (4): Driver. In: Heise online . March 8, 2012 . Retrieved May 21, 2012.
- ↑ Thorsten Leemhuis: The innovations of Linux 3.4. In: Heise online . May 21, 2012 . Retrieved May 21, 2012.
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.5 brings (1): Network. In: Heise online . June 25, 2012 . Retrieved June 27, 2012.
- ↑ Thorsten Leemhuis: Kernel-Log: Development of Linux 3.6 is running. In: Heise online . 2nd August 2012 . Retrieved May 11, 2014.
- ↑ Thorsten Leemhuis: Linux Kernel 3.7 released. In: Heise online . December 11, 2012 . Retrieved December 13, 2012.
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.8 brings (1): File systems and storage. In: Heise online . January 21, 2013 . Retrieved February 16, 2013.
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.8 brings (2): Infrastructure. In: Heise online . February 8, 2013 . Retrieved February 16, 2013.
- ↑ a b Jörg Thoma: Linux Kernel: Torvalds closes merge window for Linux 3.9. golem.de, March 4, 2013, accessed March 6, 2013 .
- ↑ Meta SoC Processors ( Memento from March 15, 2013 in the Internet Archive ) - Page at Imagination Technologies , accessed on March 7, 2013 (English).
- ↑ DesignWare ARC 700 Processor Core Family - Synopsys page , accessed on March 7, 2013.
- ↑ Hans-Joachim Baader: Linux kernel 3.9 enters the test phase. Pro-Linux , March 4, 2013, accessed March 7, 2013 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.10 brings (4): Driver. In: Heise online . June 28, 2013 . Retrieved July 10, 2013.
- ↑ Thorsten Leemhuis: The innovations of Linux 3.9. In: Heise online . April 29, 2013 . P. 3: Conclusion, trends, statistics. Retrieved July 10, 2013.
- ↑ Thorsten Leemhuis: The innovations of Linux 3.10. Heise, July 1, 2013, accessed July 10, 2013 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.11 brings (2): Infrastructure. Heise, August 19, 2013, accessed on August 20, 2013 .
- ↑ Thorsten Leemhuis: "Linux for Workgroups": The range of functions of Linux 3.11 is available. Heise, July 15, 2013, accessed on March 13, 2018 .
- ↑ Thorsten Leemhuis: Linux 3.12 brings Optimus and SYN proxy support. Heise, September 17, 2013, accessed on September 18, 2013 .
- ↑ Thorsten Leemhuis: The innovations of Linux 3.12: Network. Heise, November 4, 2013, accessed November 6, 2013 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.12 brings (1): File systems & storage. Heise, October 8, 2013, accessed November 6, 2013 .
- ↑ Thorsten Leemhuis: The innovations of Linux 3.13. Heise online, January 20, 2014, accessed January 20, 2014 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.13 brings (5): Graphics driver. Heise online, January 10, 2014, accessed on January 20, 2014 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.13 brings (1): File systems and storage. Heise online, December 10, 2013, accessed January 20, 2014 .
- ↑ a b Jörg Thoma: Process deadlines: Linux 3.14 receives deadline scheduler. golem.de, March 31, 2014, accessed March 31, 2014 .
- ↑ Peter Siering: Xen 4.4: virtual machines for ARM. heise.de, March 10, 2014, accessed on March 11, 2014 .
- ↑ Thorsten Leemhuis: Kernel-Log - What 3.15 brings (1): File systems and storage. heise.de, May 6, 2014, accessed on May 6, 2014 .
- ↑ Thorsten Leemhuis: The innovations of Linux 3.16. heise.de, August 4, 2014, accessed on August 17, 2014 .
- ↑ Thorsten Leemhuis: The innovations of Linux 3.17. heise.de, October 6, 2014, accessed on November 10, 2014 .
- ↑ Hans-Joachim Baader: Linux kernel 3.18 released. Pro-Linux , December 8, 2014, accessed December 8, 2014 .
- ↑ Thorsten Leemhuis: Linux 3.19 released: HSA support for AMD chips. Heise online, February 9, 2015, accessed on February 9, 2015 .
- ↑ Jörg Thoma: Linux 3.19: More for the graphics and for the network. golem.de, February 9, 2015, accessed February 9, 2015 .
- ↑ Contemporary Linux-IPC - Linux-Magazin , Edition 02/2015
- ↑ Thorsten Leemhuis: Linux kernel makes version jump to 4.0. heise.de, February 23, 2015, accessed on February 23, 2015 .
- ↑ Jörg Thoma: Version 4.0 patches itself during operation. golem.de, February 23, 2015, accessed on February 23, 2015 .
- ↑ Thorsten Leemhuis: Linux 4.1 released: Ext4 now encrypts itself. Heise.de, June 22, 2015, accessed on June 22, 2015 .
- ↑ Thorsten Leemhuis: Linux 4.2-rc1: New graphics driver from AMD integrated. heise.de, July 6, 2015, accessed on July 19, 2015 .
- ↑ Thorsten Leemhuis: Linux kernel 4.3 will support new AMD and Intel graphics processors. heise.de, September 5, 2015, accessed on September 15, 2015 .
- ↑ Thorsten Leemhuis: Linux 4.3 will use IPv6 support by default. heise.de, September 14, 2015, accessed on September 15, 2015 .
- ↑ 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).
- ↑ Thorsten Leemhuis: Linux 4.4 released: New graphics drivers and optimizations for SSDs. heise.de, January 11, 2016, accessed on August 13, 2016 .
- ↑ Sebastian Grüner: Kernel: Linux 4.4 appears with graphics driver for Raspberry Pi. Golem.de, January 11, 2016, accessed on August 13, 2016 .
- ↑ Thorsten Leemhuis: Linux 4.5: Improved 3D drivers and smooth connection changes. heise.de, January 25, 2016, accessed on August 13, 2016 .
- ↑ Ferdinand Thommes: Kernel: Linux 4.5-rc1 upgrades AMDGPU with Powerplay. golem.de, January 11, 2016, accessed on August 13, 2016 .
- ↑ Thorsten Leemhuis: The innovations of Linux 4.5. heise.de, March 14, 2016, accessed on May 15, 2016 .
- ↑ Ferdinand Thommes: Kernel: Linux 4.6-rc1 with the new OrangeFS file system. golem.de, March 28, 2016, accessed on August 13, 2016 .
- ↑ Thorsten Leemhuis: Linux 4.6 will support 3D acceleration of current GeForce chips. heise.de, March 29, 2016, accessed on May 15, 2016 .
- ↑ Thorsten Leemhuis: Linux 4.7 should support AMD's new Radeon graphics cards. heise.de, May 30, 2016, accessed on July 2, 2016 .
- ↑ Ferdinand Thommes: LLinux 4.7-rc1 supports AMD's Polaris. golem.de, May 30, 2016, accessed December 12, 2016 .
- ↑ Thorsten Leemhuis: Linux 4.7 avoids network latencies and supports SMR hard drives better. heise.de, June 15, 2016, accessed on June 15, 2016 .
- ↑ Thorsten Leemhuis: Linux 4.7 released: RX-480 driver and improved security. heise.de, July 25, 2016, accessed on August 18, 2016 .
- ↑ 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 .
- ↑ Jörg Thoma: Operating systems: Linux 4.8 overclocks AMD graphics cards. golem.de, August 8, 2016, accessed on August 16, 2016 .
- ↑ Thorsten Leemhuis: Linux 4.9 will improve security and bring new drivers. heise.de, October 17, 2016, accessed on October 18, 2016 .
- ↑ Ferdinand Thommes: Kernel: Linux 4.9rc1 appears with a protocol for Project Ara modules. golem.de, October 17, 2016, accessed October 18, 2016 .
- ↑ Hans-Joachim Baader: First preview of Linux kernel 4.10. pro-linux.de, December 26, 2016, accessed November 5, 2017 .
- ↑ Thorsten Leemhuis: Linux 4.10 New ways to accelerate graphics in virtual machines. heise.de, January 17, 2017, accessed on November 5, 2017 .
- ↑ Hans-Joachim Baader: Linux kernel 4.10 released. In: pro-linux.de. February 19, 2017. Retrieved February 19, 2017 .
- ↑ Linux kernel 4.11: longer battery life thanks to NVMe power saving technology - Heise , on March 6, 2017
- ↑ Thorsten Leemhuis: The innovations of Linux 4.11. heise.de, April 16, 2017, accessed on November 5, 2017 .
- ↑ Thorsten Leemhuis: The innovations of Linux 4.12. heise.de, July 3, 2017, accessed on July 23, 2017 .
- ↑ Thorsten Leemhuis: The innovations of Linux 4.13. heise.de, September 4, 2017, accessed on September 24, 2017 .
- ↑ 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 .
- ↑ Thorsten Leemhuis: The innovations of Linux 4.14. heise.de, November 13, 2017, accessed on March 18, 2018 .
- ↑ Thorsten Leemhuis: The innovations of Linux 4.15. heise.de, January 28, 2018, accessed on March 18, 2018 .
- ↑ Thorsten Leemhuis: The innovations of Linux 4.17. heise.de, June 4, 2018, accessed June 4, 2018 .
- ↑ Thorsten Leemhuis: Linux 4.18 released. heise.de , August 13, 2018, accessed on August 13, 2018 .
- ↑ Thorsten Leemhuis: Kernel-Log: Linux 4.19: Start without flickering and save power. heise.de , October 12, 2018, accessed October 24, 2018 .
- ↑ Thorsten Leemhuis: Linux 4.19: Start nicely and ready for the WLAN of tomorrow. heise.de , October 22, 2018, accessed on October 24, 2018 .
- ↑ Thorsten Leemhuis: Linux 4.20 released: Performance optimizations and new drivers. heise.de , December 12, 2018, accessed December 24, 2018 .
- ↑ 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 .
- ↑ Thorsten Leemhuis: Linux 5.1: Performance improvements and new storage technology. heise.de , May 6, 2019, accessed June 24, 2019 .
- ↑ Linux 5.2 released: Change record and speed improvements - c't Magazin , on July 9, 2019
- ↑ Thorsten Leemhuis: Linux 5.3 released: capping priorities and trouble for Nvidia. Retrieved November 26, 2019 .
- ↑ Thorsten Leemhuis: Linux 5.4 released: exFAT support and restrictions for root. Retrieved November 26, 2019 .
- ↑ Thorsten Leemhuis: Linux 5.5 released: Wireguard foundation and performance improvements. Retrieved January 27, 2020 .
- ↑ Thorsten Leemhuis: Linux 5.6 released: Wireguard and USB4 support. Retrieved April 6, 2020 .
- ↑ Thorsten Leemhuis: Linux 5.6 supports Wireguard and USB4. Retrieved April 6, 2020 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ Dr. Oliver Diedrich: The Next Generation - Linux 2.6: Fit for the future . in c't 24/2003 (on November 17, 2003), page 194
- ↑ Marcel Hilzinger: Con Kolivas is back with a new scheduler. Linux Magazin , September 2, 2009, accessed April 27, 2014 .
- ^ Richard M. Stallman: Linux, GNU, and freedom. gnu.org, July 10, 2014, accessed February 12, 2015 .
- ↑ Linus Torvalds: GPL V3 and Linux - Dead Copyright Holders. January 25, 2006, accessed March 24, 2009 (message on the Linux kernel mailing list).