Linux kärna
Linux kärna |
---|
|
|
Sorts |
fri och öppen källkodsprogramvara , operativsystemkärna , samarbete [d] , projekt och datorplattform [d] |
Författare |
Linus Torvalds [1] |
Utvecklaren |
Linus Torvalds , Cox, Alan , Greg Croah-Hartman , Ingo Molnar [d] och Morton, Andrew |
Skrivet i |
C [4] , assemblerspråk , C++ och Rust [5] |
Första upplagan |
25 augusti 1991 |
Hårdvaruplattform |
ARM , AVR , Blackfin [d] , DEC Alpha , ETRAX CRIS [d] , Itanium , MIPS , PA-RISC , PowerPC , SPARC , SuperH , TILE64 [d] , Unicore [d] , Xtensa [d] , Motorola 680x0 , IBM System/390 , x86 , x86_64 och z/Architecture |
senaste versionen |
|
Testversion |
|
Licens |
GNU GPL 2 [6] [7] [8] |
Hemsida |
kernel.org _ |
Mediafiler på Wikimedia Commons |
Linuxkärnan ( /ˈlɪnʊks/ [9] ) är en operativsystemkärna som överensstämmer med POSIX -standarderna och utgör grunden för Linux- familjen av operativsystem , såväl som ett antal operativsystem för mobila enheter, inklusive Android , Tizen , KaiOS . Utveckling av kärnkod startades av den finske studenten Linus Torvalds 1991, och varumärket "Linux" är registrerat i hans namn.
Koden skrivs främst i C med vissa gcc- tillägg och i assembler (med GNU Assemblers
AT&T-syntax ).
Distribueras som fri programvara enligt villkoren i GNU General Public License , förutom icke-fria artiklar, särskilt drivrutiner som använder firmware distribuerad under olika licenser [10] .
Operativsystem baserade på Linux-kärnan är ledande på superdator- , mikrodator- , server- och smartphonemarknaderna .
Historik
Projektet började 1991 med ett inlägg på Usenets nyhetsgrupp [11] .
Vid den tiden hade GNU redan skapat många komponenter för ett gratis operativsystem, men dess GNU Hurd-kärna var ännu inte klar. Därför togs den tomma platsen för kärnan för ett gratis operativsystem av Linux och, trots den begränsade funktionaliteten hos tidiga versioner, lockade många utvecklare och användare.
"Linux" som operativsystemkärna, vars utveckling startades av Torvalds, är bara en liten del av många av de system som använder den, som också brukar kallas "Linux". Detta leder ibland till förvirring, vilket leder till GNU/Linux namnkontroversen - vissa anhängare av GNU-rörelsen tror att detta är det korrekta namnet för ett operativsystem baserat på Linux-kärnan och som använder GNU-projektet (som glibc , gcc , bash , coreutils och andra) [12] .
Från och med maj 2020 är familjen operativsystem baserade på Linux-kärnan den tredje mest populära i världen på skrivbordsmarknaden - 4,9 % [13] . På webbservermarknaden är Linux-andelen cirka 31 %, resten är Unix-system ( FreeBSD , etc.) [14] . Enligt Top500 (maj 2020) används Linux som operativsystem för 100 % av världens mest kraftfulla superdatorer [ 15] .
De flesta mobila enheter, som smartphones och surfplattor baserade på operativsystemen Android , MeeGo , Tizen , samt TV-apparater och många kontorsenheter, som externa nätverkshårddiskar, routrar och modem, använder också operativsystem baserade på Linux-kärnan .
Kronologi
- April 1991: 21-årige Linus Torvalds började arbeta med en del av operativsystemets mekanik. Han började med en terminalemulator och en uppgiftsschemaläggare .
- 25 augusti 1991: Torvalds postade ett meddelande till nyhetsgruppen på Minix [11] [16] .
- 17 september 1991: Linux version 0.01 (10 239 rader kod ).
- 5 oktober 1991: Linux version 0.02 [17] .
- December 1991: Linux version 0.11. Det var den första versionen av Linux som kunde bygga Linux från källkod .
- 19 januari 1992: Första inlägget i alt.os.linux [18] nyhetsgrupp .
- 31 mars 1992: Den specialiserade nyhetsgruppen comp.os.linux [19] skapas .
- April 1992: Linux version 0.96, som gjorde det möjligt att köra X Window Systems grafiska server .
- Hela 1993 och början av 1994: 15 testversioner av version 0.99.* ( BogoMips introducerades i juli 1993 ).
- 14 mars 1994: Linux version 1.0.0 (176 250 rader kod).
- Mars 1995: Linux version 1.2.0 (310 950 rader kod).
- 9 maj 1996: Linux-symbolen Tux pingvinen väljs .
- 9 juni 1996: Linux version 2.0.0 (777 956 rader kod).
- 25 januari 1999: Linux version 2.2.0, från början ganska ofärdig (1 800 847 rader kod).
- 4 januari 2001: Linux version 2.4.0 (3 377 902 rader kod).
- 18 december 2003: Linux version 2.6.0 (5 929 913 rader kod).
- 23 mars 2009: Linux version 2.6.29, Linux temporär symbol Tasmanian Devil Tuz (11 010 647 rader kod).
- 22 juli 2011: Linux 3.0 release (14,6 miljoner rader kod).
- 24 oktober 2011: Linux 3.1 release.
- 15 januari 2012: Linux 3.3-versionen når 15 miljoner rader kod.
- 23 februari 2015: Första versionskandidat för Linux 4.0 (över 19 miljoner rader kod).
- 7 januari 2019: Första releasekandidat för Linux 5.0 (över 26 miljoner rader kod).
Versioner
Torvalds fortsätter att släppa nya versioner av kärnan, kombinerar ändringar gjorda av andra programmerare och introducerar sina egna. Det brukar kallas "vanilla" ( vanilla ), det vill säga den officiella kärnan utan några ändringar från tredje part. Utöver de officiella kärnversionerna finns det alternativa grenar som kan hämtas från olika källor. Vanligtvis underhåller Linux-distributionsutvecklare sina egna versioner av kärnan, till exempel genom att inkludera enhetsdrivrutiner som ännu inte ingår i den officiella versionen. Sedan den 30 maj 2011 har kärnans versionsnumreringspolicy ändrats [20] .
Versionsnumrering till 30 maj 2011
Linuxkärnans versionsnummer före den 30 maj 2011 innehöll fyra nummer, enligt en nyligen ändrad versionsnamnpolicy som länge har baserats på tre nummer. För att illustrera, låt oss säga att versionsnumret är skrivet så här: ABC[.D] (till exempel 2.2.1, 2.4.13 eller 2.6.12.3).
- Siffran A indikerar kärnversionen. Det var ursprungligen avsett att ändras sällan och endast när betydande ändringar gjordes i koden och konceptet för kärnan, inträffade de första sådana ändringarna 1994 (version 1.0) och 1996 (version 2.0). Därefter bröts regeln om ändringars betydelse, och två gånger släpptes nästa versioner av kärnan med en uppdaterad första siffra - den 31 maj 2011 (3.0.0) och den 21 april 2015 (4.0.0).
- Siffran B indikerar huvudversionen av kärnrevisionen. I kärnor före version 3.0 betecknade jämna siffror stabila revisioner, det vill säga de som är avsedda för produktiv användning, såsom 1.2, 2.4 eller 2.6, och udda siffror betecknade utvecklarrevisioner, avsedda att testa nya förbättringar och drivrutiner tills dess tills de är stabila tillräckligt för att inkluderas i en stabil release.
- C -numret indikerar den mindre versionen av kärnrevisionen. I det gamla trenumreringsschemat ändrades det när säkerhetskorrigeringar, buggfixar, nya förbättringar eller drivrutiner inkluderades i kärnan. Med den nya numreringspolicyn ändras den dock bara när nya drivrutiner eller förbättringar görs; mindre korrigeringar stöds av D- numret .
- Siffran D dök upp först efter fallet när en allvarlig NFS -relaterad bugg upptäcktes i 2.6.8-kärnkoden som måste åtgärdas omedelbart . De andra ändringarna var dock inte tillräckliga för att motivera släppandet av en ny mindre revision (som borde ha varit 2.6.9). Därför släpptes version 2.6.8.1 och den enda ändringen var en korrigering av denna bugg. Från och med kärnan 2.6.11 har denna numrering antagits som den nya officiella versionspolicyn. Bugfixar och säkerhetskorrigeringar indikeras nu med ett fjärde nummer, medan större ändringar återspeglas i en mindre revision av kärnrevisionen ( C -nummer ).
Versionsnumrering sedan 30 maj 2011
Den 30 maj 2011 släppte Linus Torvalds kärnversion 3.0-rc1. Tillsammans med det har kärnans versionsnumreringspolicy ändrats. Användningen av jämna och udda tal för att indikera kärnstabilitet har tagits bort, och det tredje siffran betyder kärnstabilitet. Version 3.0 ger nästan inga ändringar, förutom en ändring i kärnans numreringspolicy. Således kommer stabila versioner av 3.0-kärnan att heta 3.0.X, och nästa utgåva efter det kommer att numreras 3.1.
Support
Medan Torvalds fortsätter att släppa nya experimentella versioner, överförs ledarskapet för LTS- versionerna till andra:
Serier
|
Versioner
|
Ledare
|
Slut på support
|
3.2
|
3.2.101
|
Ben Hutchings
|
maj 2018
|
3.4
|
3.4.113
|
Lee Zifan
|
oktober 2016
|
3.10
|
3.10.108
|
Willie Tharow
|
november 2017
|
3.12
|
3.12.74
|
Jiri Slaby
|
maj 2017
|
3.14
|
3.14.79
|
Greg Croah-Hartman
|
september 2016
|
3.16
|
3.16.85
|
Ben Hutchings
|
juni 2020
|
3.18
|
3.18.140
|
Sasha Levin
|
januari 2017
|
4.1
|
4.1.52
|
Sasha Levin
|
maj 2018
|
4.4
|
4.4.302
|
Greg Croah-Hartman & Sasha Levin
|
februari 2022
|
4.9
|
4.9.331
|
Greg Croah-Hartman & Sasha Levin
|
januari 2023
|
4.14
|
4.14.296
|
Greg Croah-Hartman & Sasha Levin
|
januari 2024
|
4.19
|
4.19.262
|
Greg Croah-Hartman & Sasha Levin
|
december 2024
|
5.4
|
5.4.220
|
Greg Croah-Hartman & Sasha Levin
|
december 2025
|
5.10
|
5.10.151
|
Greg Croah-Hartman & Sasha Levin
|
december 2026
|
5.15
|
5.15.75
|
Greg Croah-Hartman & Sasha Levin
|
oktober 2023
|
Andra Linux-kärnprogrammerare är Robert Love och Ingo Molnar [21] .
Stabila utgåvor
- Version 1.0 i mars 1994 - stödde endast i386 uniprocessor- maskiner.
- Version 1.2 mars 1995 - Tillagt stöd för Alpha- , SPARC- och MIPS-processorer .
- Version 2.0 juni 1996 - tillagt stöd för andra processorer såväl som multiprocessorsystem.
- Version 2.2 i januari 1999 [22] .
- Version 2.4 januari 2001 - Tillagt stöd för ISA Plug and Play , PA-RISC-processorer , USB och PC-Card ( PCMCIA ) bussar. Stöd för Axis Communications ETRAX CRIS-processorer och InterMezzo-filsystemet lades till senare [23] .
- Version 2.6 - 17 december 2003:
- μClinux- gaffel skapad (för mikrokontroller );
- lagt till stöd för Hitachi H8/300-serien, NEC v850, Motorola m68k inbyggda systemprocessorer , ny NUMA- minnesåtkomstarkitektur , NCR Voyager-stöd, Intel hyperthreading och PAE-tekniker;
- Lagt till:
- stöd för XFS -filsystemet (developer - SGI );
- förbättrat APIC- stöd ;
- det maximala antalet användare och grupper har ökats från 65 000 till över 4 miljarder;
- det maximala antalet processer har ökats från 32 000 till 1 miljard;
- det maximala antalet enhetstyper (stor enhet) har höjts - från 255 till 4095, och det maximala antalet enheter av varje typ (mindre enhet) - från 255 till mer än en miljon, på grund av problem med fördelningen av nummer för enhetstyper har udev-systemtjänsten introducerats;
- förbättrat stöd för 64-bitarssystem och filsystem större än 16 TB;
- minskad reaktionstid för realtidsprocesser;
- omskriven implementering av trådar med hjälp av Native POSIX Thread Library ( NPTL );
- förbättrad modullastare;
- lagt till nya tjänstefilsystem sysfs ;
- Linux- integration i användarläge ;
- och så vidare.
- Version 3.0. - Används i Ubuntu 11.10
- Version 3.1.
- Version 3.2 - används i Ubuntu 12.04 LTS och Debian 7 Wheezy. Förutom buggfixar förväntas vissa prestandapåverkande kodoptimeringar introduceras för första gången i en kärna med lång support.
- Version 3.3.
- Version 3.4.
- Version 3.5 - används i Ubuntu 12.10.
- Version 3.6.
- Version 3.7.
- Version 3.8 - Stöd för i386-processorer har tagits bort. Används i Ubuntu 13.04.
- Version 3.9.
- Version 3.10.
- Innovationer:
- Det är möjligt att förhindra att skript exekveras som program - funktionaliteten för att köra skript som innehåller sökvägen till tolken i "#!"-huvudet kan nu kompileras som en kärnmodul.
- Bcache- systemet Google har integrerats Bcache låter dig cache-åtkomst till långsamma hårddiskar på snabba SSD-enheter; cachelagring utförs på blockenhetsnivå - och detta gör att du kan snabba upp åtkomsten till enheten, och oavsett vilka filsystem som används på enheten.
- Kärnan kan kompileras med Clang-kompilatorn tack vare korrigeringarna förberedda av LLVMLinux-projektet.
- Ett dynamiskt styrsystem för generering av timeravbrott har dykt upp. Nu, beroende på det aktuella tillståndet, kan du ändra avbrott i intervallet från tusentals tick per sekund till ett avbrott per sekund - detta gör att du kan minimera belastningen på CPU:n vid bearbetning av avbrott i händelse av systeminaktivitet. För närvarande används den här funktionen för realtid och HPC (högprestandaberäkning), men i framtida kärnutgåvor kommer den att vara aktiverad för stationära system också.
- Nu är det möjligt att generera en händelse som meddelar applikationen om tillvägagångssättet för uttömning av det tillgängliga minnet för processen/systemet (i cgroups).
- Minnesåtkomstprofilering har blivit tillgänglig för perf-kommandot.
- Det finns en ny "sync"-drivrutin (experimentell). Den utvecklades inom Android-plattformen och används för synkronisering mellan andra drivrutiner.
- En drivrutin för Microsoft Hyper-V virtuella videoadaptrar har dykt upp (det finns också förbättringar i driften av Hyper-V som helhet).
- Nya strömhanteringsfunktioner introducerade med AMD 16h ("Jaguar") familjeprocessorer stöds nu.
- Stöd för accelererad videoavkodning med UVD-avkodaren för hårdvara inbyggd i moderna AMD GPU :er har lagts till i Radeon DRM-modulen.
- Lade till stöd för RDMA (iSER)-protokollet till iSCSI- undersystemet .
- Utförande av kryptografiska funktioner (sha256, sha512, blowfish, twofish, orm och camellia) optimeras med AVX / AVX2 och SSE -instruktioner .
- QXL virtuella grafikkortsdrivrutin var integrerad (används i virtualiseringssystem för accelererad grafikutmatning med SPICE-protokollet).
- Version 3.11. - Används i Ubuntu 13.10
- Version 3.12.
- Version 3.13. - Används i Ubuntu 14.04
- Version 3.14.
- Version 3.15.
- Version 3.16. - Används i Ubuntu 14.10
- Version 3.17.
- Version 3.18.
- Version 3.19. - Används i Ubuntu 15.04
- Version 4.0 [24] - ändringar gäller främst drivrutinsfixar (media, ljud, pci, scsi target, drm, termisk), uppdateringar för nios2, x86 arkitekturer [25] .
- Några innovationer: [26]
- installation av kärnuppdateringar utan behov av omstart;
- förbättringar för Intel 'Skylake'-plattformen;
- stöd för Intel Quark SoC;
- olika förbättringar för Linux på Playstation 3;
- TOopen-source AMD Radeon-drivrutinsstöd för DisplayPort Audio;
- olika förbättringar av HID-drivrutiner, inklusive Lenovos kompakta tangentbord, Wacom Cintiq 27QHD;
- Inställningar för USB-sömn/laddning, snabbladdning, sömn med musik etc. har lagts till i Toshibas drivrutiner för strömhantering;
- förbättringar av filsystem, inklusive F2FS, BtrFS, etc.
- Version 4.1.
- Version 4.2. - Används i Ubuntu 15.10
- Version 4.3.
- Version 4.4. - Används i Ubuntu 16.04
- Version 4.5.
- Version 4.6.
- Version 4.7.
- Version 4.8.
- Huvudsakliga förbättringar:
- AMDGPU OverDrive-stöd
- initialt stöd för NVIDIA Pascal
- HDMI CEC-stöd
- fullt stöd för BCM2837 - SoC som Raspberry Pi 3 är baserad på
- större revision av Btrfs ENOSPC
- många säkerhetsförbättringar
- Version 4.9.
- Huvudsakliga förbättringar:
- Massor av Direct Rendering Manager-förbättringar
- Greybus-stöd - delsystem för interaktion mellan Project Ara-moduler
- Stöd för Intel Integrated Sensor Hub (ISH)
- Betydande förändringar av Xen- och KVM-virtualiseringsundersystemen
- Fixade buggar i btrfs och ext4
- Stöd för Loongson 1C-processorer
- Version 4.10.
- Huvudsakliga förbättringar:
- Massor av nya funktioner i f2fs, ubifs, ext4, xfs, cifs filsystem, borttagna logfs
- Lade till stöd för virtio-crypto för virtualiserade gäster
- Betydande förbättringar av nouveau, amdgpu, intel och adreno grafikdrivrutiner
- Tillagt stöd för CS35L34, CS42L42, WM8581, MSM8916 WCD, RT5665 ljudchips
- Implementerad Intel GVT-g-teknik, som gör att du kan tillhandahålla en separat virtuell GPU för varje virtuell miljö
- Segment Routing (SR-IPv6) är implementerad för IPv6
- Version 4.11.
- Huvudsakliga förbättringar:
- Algoritmen för att använda swap har gjorts om för SSD
- OPAL-stöd för datakryptering på NVM Express
- Nytt statx() systemanrop - uppdaterad stat()
- Ansluta I/O-schemaläggare till Multilevel Queue Subsystem för blockenheter
- MD-delsystem RAID 4/5/6 lägger till stöd för journalföring till en separat NVRAM eller SSD
- Flera ändringar av cgroups, RCU, inotify, namnutrymmen, timers och andra delsystem
- Version 4.12.
- Huvudsakliga förbättringar:
- Stöd för enheter med USB Type-C till USB 3.1
- Hårdvaruacceleration för NVIDIA GTX 1050, 1060, 1070 och 1080
- Borttagen hd, en hårddiskdrivrutin skriven av Linus och skickad sedan kärnversion 0.01
- Lade till verktyget AnalyzeBoot som genererar en HTML-rapport om kärnstart
- Stödet för AVR32-arkitekturen har tagits bort
- Stöd för Orange Pi PC2, NVIDIA Tegra 186, i/MX28 Duckbill, Motorola DROID4, Rockchip RK3399/RK3288 datorer och Broadcom BCM2835 temperatursensorer (Raspberry Pi)
- Version 4.13.
- Huvudsakliga förbättringar:
- Tillagt delsystem för att arbeta med UUID/GUID
- Lade till kärnimplementering av TLS-protokoll
- Stöd för en enorm mängd ny hårdvara, inklusive initialt stöd för Intel Cannonlake/Coffeelake-grafik, men fortfarande ingen Zen/Ryzen termisk drivrutin
- Många förbättringar av diskundersystemet och filsystemen ext4, Btrfs, F2FS, UBIFS, XFS
- ext4 har ett alternativ som ökar det maximala antalet filer i en katalog från 10 miljoner till 2 miljarder
- Standardversionen av SMB-protokollet är nu 3.0, introducerad med Windows 8
- Version 4.14.
- Huvudsakliga förbättringar:
- Förbättringar för Vega i AMDGPU, stöd för lägesinställning GP108 / GT 1030 i Nouveau, lägga till kod för att fungera med Cannonlake "Gen 10"-chips i Intel-videodrivrutinen
- HDMI CEC-stöd för Raspberry Pi och Allwinner Sunxi
- Många Aarch64-arkitekturförbättringar för Raspberry Pi Zero W, Banana Pi och många andra kort, MIPS-arkitekturuppdateringar och utfasning av R6000-seriens processorer
- Ökade RAM-storleksgränser för nya Intel-processorer: adressutrymme upp till 128 PB, fysiskt RAM-minne upp till 4 PB
- Zstd-kompressionsstöd för Btrfs och SquashFS
- Parallelliseringsstöd i Cgroup2
- Version 4.15 - används i Ubuntu 18.04.
- Huvudsakliga förbättringar:
- Ny arkitektur - RISC-V, drivrutiner för RISC-V-enheter förväntas i nästa utgåva
- Information om sårbarheterna hos den använda processorn är nu tillgänglig i /sys/devices/system/cpu/vulnerabilities, det är nu lättare att avgöra exponeringen för Meltdown eller Spectre
- AMD Zen (Ryzen/Threadripper/EPYC) temperatursensorstöd har äntligen lagts till, Intel Coffee Lake och Cannonlake temperaturövervakningsstöd lagt till, såväl som GeForce GTX 1000
- Lade till Radeon RX Vega-drivrutin
- Stöd för nya SoC:er och enkelkortsdatorer: Allwinner R40, Broadcom Hurricane 2, CubieBoard 6, Banana Pi M2 Ultra, Fairphone 2
- Arbetet fortsätter med att fixa "Unix Millennium Bug" - År 2038-problem
- Version 4.16.
- Huvudsakliga förbättringar:
- Vboxguest-drivrutinen accepteras äntligen i kärnan. Medan nästan alla andra VirtualBox-drivrutiner fortfarande inte används, är funktioner som sömlöst läge och delat urklipp redan tillgängliga.
- Stöd för nya enkelkort: Orange Pi R1, Hummingboard2, D-Link DNS_313 och skärmstöd för NVIDIA Jetson TX2
- Många förbättringar för att blockera enhetsdrivrutiner och filsystem XFS, Btrfs och ext4
- AMDGPU stöder nu synkronisering med flera skärmar i konfiguration med flera bildskärmar, den här funktionen är aktiverad som standard för alla GPU:er som stöds
- Olika säkerhetsfixar och förbättringar och arbete för att förhindra exploatering av Spectre och Meltdown sårbarheter på alla stödda arkitekturer
- Version 4.17.
- Huvudsakliga förbättringar:
- Energibesparingsförbättring upp till 10 % på viss utrustning
- F2FS stöder nu lost+found, och ext4 är skyddat från attacker av specialgjorda behållare
- Rensat upp koden, tagit bort supportkoden för nio äldre arkitekturer, lagt till stöd för den nya NDS32-arkitekturen
- AMDGPU DC är nu aktiverad som standard med Vega12 och AMDKFD-stöd, vilket gör att ROCm/OpenCL kan köras på Polaris och Fiji
- Tillagd drivrutin för gigabit nätverkskort Microchip LAN743x
- Stöd för nya SoC:er: Allwinner H6, NVIDIA Tegra Xavier, ST STM32MPU, NVIDIA P2972
- Version 4.18 - används i Ubuntu 18.10.
- Huvudsakliga förbättringar:
- Förhindra exploatering av Spectre V4-sårbarhet på ARM64 och Spectre V2-sårbarhet på ARM32
- Initialt stöd för Vega 20, Vega M och Intel Icelake Gen11-grafik
- Nytt BPFILTER-undersystem som tillhandahåller paket- och brandväggsfiltreringsmöjligheter och upprätthåller kompatibilitet med iptables
- Många förbättringar av implementeringen av USB 3.2, USB Type-C och SoundWire
- Temperatursensordrivrutin har äntligen lagts till för AMD Stoney Ridge och Bristol Ridge
- Luster-filsystemet har tagits bort från huvudkoden, dess vidareutveckling kommer att utföras i en gaffel
- Version 4.19.
- Huvudsakliga förbättringar:
- DisplayPort alternativt läge för USB Type-C-kontakter
- Virtual KMS Driver (VKMS) möjliggör GPU-funktioner på huvudlösa system
- Många korrigeringar och förbättringar för att lösa år 2038-problemet, som ext4-drivrutinen som nu stöder 64-bitars datum
- Nya Spectre-skyddsmekanismer för x86, PowerPC och S390
- Nytt filsystem - EROFS, mycket enkla interna funktioner, mycket hög prestanda, men endast skrivskyddad montering är möjlig
- Många förbättringar av KMS-undersystemet på x86- och PowerPC-plattformar
- Version 4.20.
- Huvudsakliga förbättringar:
- Kexec-anropet, som gör det möjligt att ladda kärnan i minnet utan att starta om, implementeras för MIPS-arkitekturen
- Stöd för kinesiska processorer Hygon Dhyana och C-SKY
- Betydande rensning av GCC-specifik kod och borttagning av användningen av VLA för att tillåta att kärnan kan byggas med Clang
- Förbättrad viloläge för 32-bitars x86
- Många korrigeringar relaterade till 2038-problemet
- Vibrationsstöd i Xbox One S-kontrollerdrivrutinen
Arkitektur
]
Linux-kärnan stöder multitasking , virtuellt minne , dynamiska bibliotek, lazy loading, ett prestandaminnehanteringssystem och många nätverksprotokoll .
Idag är Linux en monolitisk kärna med stöd för laddningsbara moduler. Enhetsdrivrutiner och kärntillägg körs vanligtvis i en nollring av skydd , med full tillgång till hårdvaran. Till skillnad från konventionella monolitiska kärnor är drivrutiner lätt att montera som moduler och laddas eller avlastas medan systemet körs.
Att Linux-arkitekturen inte är en mikrokärna orsakade en hel del debatt mellan Torvalds och Andrew Tanenbaum vid Minix-konferensen 1992 .
Kompatibilitet
Från början inte avsedd som en multiplattformskärna, Linuxkärnan har nu porterats till ett mycket brett utbud av arkitekturer, som körs på ett brett utbud av hårdvara från iPAQ (Pocket Computer) till IBM S/390 (High-Performance Mainframe) ). Linux-baserade system används som de viktigaste på nästan alla superdatorer (mer än 99% av TOP500-listan ), inklusive den mest kraftfulla en - Summit [27] . Linux utvecklades ursprungligen för 32-bitars x86 - kompatibla datorer ; Hittills körs olika versioner av Linux-kärnan på följande processorarkitekturer:
- ARM :
- Axis Communications CRIS ;
- DEC Alpha ;
- HP PA-RISC ;
- Hitachi : SuperH (SEGA Dreamcast), H8/300 ;
- IBM System/390 ;
- IBM zSeries -stordatorer;
- Intel 80386 och högre: IBM PC och kompatibla processorer:
- 80386 , 80486 och AMD , Cyrix , TI och IBM varianter;
- Pentium -serien ;
- Core , Core2 Duo i 32- och 64-bitarsversioner;
- AMD Am5x86 , K5 , K6 , Athlon (alla 32-bitarsversioner), Duron ;
- AMD64 : AMD 64-bitars teknologi (även känd som x86-64);
- Cyrix 5x86, 6x86 (M1), 6x86MX och MediaGX (National/AMD Geode) serier;
- VIA C3 och efterföljande processorer;
- stöd för Intel 8086 , 8088 , 80186 , 80188 och 80286 processorer är under utveckling (ELKS-projektet);
- Microsoft Xbox ( Pentium III );
- Intel IA-64 ( Itanium );
- MIPS ;
- Motorola 68020 och högre:
- NEC v850e ;
- Renesas M32R ;
- PowerPC och IBM POWER :
- alla nya Apple-datorer (alla utrustade med PCI Power Macintosh, begränsat stöd för NuBus Power Macs),
- PCI Power Mac-kloner utvecklade av Power Computing , UMAX och Motorola;
- IBM RS/6000 , iSeries- och pSeries -system;
- Pegasos I och II system;
- några inbyggda PowerPC-system;
- Qualcomm Hexagon [28]
- SPARC och UltraSPARC : Arbetsstationer och servrar i Sun 4-serien, SPARCstation / SPARCserver , Ultra- , Blade- och Fire -serien.
Licens
Linux-kärnan distribueras under villkoren i GNU General Public License , vilket betyder att den är gratis . Denna licens valdes av Linus Torvalds nästan omedelbart efter att det stod klart att hans hobby började spridas över världen. Linus är ägare av Linux-varumärket och hjälper till att upprätthålla hans rättigheter och villkoren för GPL Free Software Foundation .
Symbol
Den officiella symbolen för Linux är en pingvin som heter Tux , som skiljer sig från "vanliga" pingviner i den gula färgen på näbben och tassarna .
Symbolen för kärnversion 2.6.29 är den tasmanska djävulen Tuz, vars bild tidigare fungerade som maskot för konferensen linux.conf.au 2009. Vid denna konferens höll Linus Torvalds en framgångsrik välgörenhetsförsäljning av Linux tasmanska djävulleksaker för att rädda befolkning av den tasmanska djävulen. Version 2.6.30 använder den gamla logotypen.
Uppskattning av kostnaden för utveckling från början
Kostnaden för att omarbeta Linux-kärnan version 2.6.0 på det sätt som används för egenutvecklad mjukvaruutveckling uppskattades till 612 miljoner USD (467 miljoner euro) i 2004 års priser med hjälp av COCOMOs personmånadsvärderingsmodell [29] . År 2006 höjde en EU-finansierad studie kostnaden för att utveckla Linux-kärnan till 882 miljoner euro (1,09 USD) [30] .
Detta ämne togs upp igen i oktober 2008 av Amanda McPherson, Brian Proffitt och Ron Hale-Evans. Med hjälp av David E. Wheelers metodik uppskattade de utvecklingen av 2.6.25-kärnan till $1.3 miljarder (en bråkdel av $10.8 miljarders omutveckling av Fedora 9) [31] . Garcia-Garcia och Alonso de Magdaleno från universitetet i Oviedo (Spanien) uppskattade också den årliga ökningen av kostnaden för kärnan till cirka 100 miljoner euro från 2005 till 2007. och 225 miljoner euro 2008. Den totala utvecklingskostnaden i Europeiska unionen 2009 uppskattas till mer än 1 miljard euro (cirka 1,23 miljarder US-dollar) [32] .
Se även
Linux Kernel-komponenter
Anteckningar
- ↑ https://web.archive.org/web/20150315012537/http://www.linuxfoundation.org/about
- ↑ Linux 6.0.6 - 2022.
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/?h=v6.1-rc1
- ↑ Linux Open Source Project på Open Hub: Languages-sidan - 2006.
- ↑ https://www.zdnet.fr/actualites/rust-fait-un-grand-pas-en-avant-en-devenant-le-deuxieme-langage-officiel-de-linux-39933753.htm
- ↑ RELEASE NOTES FÖR LINUX v0.12
- ↑ Det är officiellt, Linux släpptes den 17 september 1991
- ↑ Linux Open Source Project på Open Hub: Licenser sida - 2006.
- ↑ Hur uttalar man Linux? (engelska) . Hämtad 5 mars 2008. Arkiverad från originalet 21 augusti 2011.
- ↑ Bruce Byfield. Linux-libre-projekt möter stenig mottagning (engelska) (nedlänk) . linux.com . SourceForge Inc. (1 augusti 2008). Hämtad 2 augusti 2008. Arkiverad från originalet 5 augusti 2008.
- ↑ 1 2 Vad skulle du helst vilja se i minix? (eng.) — Linus Torvalds ursprungliga inlägg om hans nya operativsystem i nyhetsgruppen comp.os.minix
- ↑ Andrew D. Balsa. Vanliga frågor om e-postlistan för linux-kärnan ( död länk) (12 november 2006). Hämtad 17 maj 2008. Arkiverad från originalet 1 juli 2016.
- ↑ OS-statistik
- ↑ Användning av Linux för webbplatser . Från och med maj 2020 används GNU/Linux- system av 31,3 % av webbplatserna på Internet. . W3 Techs. Hämtad: 4 juni 2020.
- ↑ Lista statistik | TOP500 superdatorwebbplatser
- ↑
Från: torvalds@klaava.Helsinki.Fi (Linus Benedikt Torvalds) Nyhetsgrupp
: comp.os.minix
Ämne: En liten undersökning om mitt nya operativsystem
Meddelande-ID:<1991Aug25.205708.9541@klaava.Helsinki.Fi>
Datum: 25 aug . 91 20:57:08 GMT
Organisation: Helsingfors universitet
Hej till alla som använder minix -
Jag gör ett (gratis) operativsystem (det är bara en hobby, inte lika stort och professionellt som GNU) för 386 (486) AT-kloner. Detta system har skrivits sedan april och kommer snart att vara klart. Jag vill ha feedback på saker som folk gillar/ogillar med minix, eftersom mitt operativsystem liknar det (samma filsystemlayout (bland annat av praktiska skäl).
Jag har för närvarande portat bash (1.08) och gcc (1.40) och de programmen verkar fungera. Det betyder att jag kommer att få något praktiskt under de närmaste månaderna, och jag vill veta vilka funktioner de flesta vill ha. Alla förslag accepteras, men jag lovar inte att jag kommer att implementera dem :-)
Linus (torvalds@kruuna.helsinki.fi)
PS Ja - det finns ingen minix-kod i den, och det kommer att finnas en flertrådig FS. Systemet är INTE BÄRBART (använder Intel 386-kommandon etc.) och kommer förmodligen bara att stödja AT-hårddiskar eftersom det är allt jag har :-(
Originaltext (engelska)[ visaDölj]
hej alla där ute som använder minix
Jag gör ett (gratis) operativsystem (bara en hobby, kommer inte att vara stor och professionell som gnu) för 386 (486) AT-kloner. Det här har bryggt sedan april och börjar bli klart. Jag skulle vilja ha feedback på saker som folk gillar/ogillar i minix, eftersom mitt operativsystem liknar det något (samma fysiska layout av filsystemet (bland annat på grund av praktiska skäl).
Jag har för närvarande portat bash (1.08) och gcc (1.40), och saker verkar fungera. Detta innebär att jag kommer att få något praktiskt inom några månader, och jag skulle vilja veta vilka funktioner de flesta skulle vilja ha. Alla förslag är välkomna, men jag lovar inte att jag kommer att implementera dem :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Ja - den är fri från minix-kod, och den har en flertrådig fs. Den är INTE bärbar (använder 386 uppgiftsväxling etc), och den är förmodligen aldrig
kommer att stödja allt annat än AT-hårddiskar, eftersom det är allt jag har:-(.
- ↑ [1 ]
- ↑ alt.os.linux _
- ↑ comp.os.linux _
- ↑ Gmane - Maila till nyheter och tillbaka igen
- ↑ Lista över Linux- underhållare
- ↑ [2 ]
- ↑ [3 ]
- ↑ Ima får. Linux 4.0 släppt . Linux Kernel Mailing List-arkiv (sön, 12 apr 2015 15:41:30). (obestämd)
- ↑ Linus Torvalds. Re: Linux 4.0 släppt (sön, 12 april 2015 15:49:41 −0700). (obestämd)
- ↑ JOEY-ELIJAH SNEDDON. Linux Kernel 4.0 har Live Kernel Patching, PS3-stöd . (obestämd)
- ↑ Sandra Henry Stocker. UNIX SOM ANDRA SPRÅK: Red Hat når toppmötet – en ny toppvetenskaplig superdator . Network World (8 juni 2018). Hämtad: 1 oktober 2018.
- ↑ http://www.pcweek.ru/foss/article/detail.php?ID=136238 "Uppdaterad kärna stöder Qualcomms Hexagon DSP."
- ↑ David A. Wheeler. Linux Kernel 2.6: Det är värt mer! . Hämtad 18 september 2010. Arkiverad från originalet 21 augusti 2011. (obestämd)
- ↑ Ekonomiska effekter av FLOSS på innovation och konkurrenskraft inom EU:s IKT-sektor (länk ej tillgänglig) , tabell 3 på sidan 50.
- ↑ Uppskattning av total utvecklingskostnad för en Linux-distribution Arkiverad 11 juli 2010 på Wayback Machine , tabell på sidan 6.
- ↑ Miljarddollarkärnan
- ↑ 9885 Linux (1994 TM14 ) . JPL Small Body Database Browser . JPL ( NASA ). Hämtad 23 maj 2008. Arkiverad från originalet 21 augusti 2011.
Litteratur
- Torvalds, L.; Diamond, D. För skojs skull = Bara för skojs skull. - M . : EKSMO-Press, 2002. - S. 288. - ISBN 5-04-009285-7 .
- Robert Love. Linux Kernel Development = Linux Kernel Development. - 2:a uppl. - M . : "Williams" , 2006. - S. 448 . - ISBN 0-672-32720-1 .
- Rodriguez KZ, Fischer G, Smolsky S. Linux: The ABC of the Kernel. - "KUDITS-PRESS" , 2007. - S. 584. - ISBN 978-5-91136-017-7 .
- Barret D. Linux: grundläggande kommandon. Fickguide . — 2:a upplagan. - "KUDITS-PRESS", 2007. - S. 288 . — ISBN 5-9579-0050-8 .
- Mayank Sharma. The Birth of the Linux Kernel // Linux Format . - 2016. - Oktober ( nr 10 (215) ). - S. 24-31 .
Länkar
Tematiska platser |
|
---|
Linux kärna |
---|
Organisation | |
---|
Teknisk | Felsökning |
|
---|
Läser in |
|
---|
ABI |
|
---|
API | Användarutrymme _ | |
---|
Kärnor | Systemsamtalsgränssnitt _ |
- POSIX
- ioctls
- Välj
- öppna
- läsa
- stänga
- synkronisera
- …
- Endast Linux
|
---|
i kärnan |
|
---|
|
---|
|
---|
Komponenter |
- initramfs
- KernelCare
- kexec
- kGraft
- kpatch
- Ksplice
|
---|
alternativ |
|
---|
|
---|
Adoption | Användningsområde _ |
- Skrivbord
- Inbäddad
- Spelande
- Tunn klient:
- server:
- enheter
|
---|
Adoptanter |
- Lista över Linuxanvändare
- GENIVI-alliansen
- Proprietär programvara för Linux
|
---|
|
---|
- Kategori
- Wikimedia Commons
- bok
- Wikiversity
- Portal
|
Linux- projekt |
---|
Allmän |
|
---|
Spridning |
|
---|
Ansökningar |
|
---|
Personligheter |
|
---|
massmedia |
|
---|
Listor |
|
---|
Rörlighet |
|
---|
Övrig |
|
---|