rendszermag From Wikipedia, the free encyclopedia
A Linux-rendszermag vagy Linux-kernel egy nyílt Unix-szerű operációs rendszermag, amelyet Linus Torvalds finn számítástechnikus alkotott meg 1991-ben, azóta pedig Linus vezetésével számtalan fejlesztő dolgozik rajta a világ minden tájáról.
![]() |
Ez a szócikk vagy szakasz lektorálásra, tartalmi javításokra szorul. (2007 augusztusából) |
Linux kernel | |
![]() | |
![]() | |
A 2.6.24.4 Linux kernel bootolás közben (Knoppix 5.3.1) | |
Fejlesztő | Linus Torvalds (eredetileg, jelenleg számos közreműködő) |
Első kiadás | 1991 |
Legfrissebb stabil kiadás | 6.5.2 (2023. szeptember 6.[1]) |
Legfrissebb fejlesztői kiadás | 6.11-rc5 (release candidate version, 2024. augusztus 25.)[2] |
Programozási nyelv | C, assembly |
Platform |
|
Kategória | kernel |
Licenc | GPL |
A Linux kernel weboldala |
Linus eredetileg az Intel 386-os processzorára fejlesztette, de később számos más processzorra is alkalmazták. A Linux-kernel C-ben íródott (néhány GNU C kiegészítéssel), de tartalmaz assembly kódrészletet is (a GNU Assembler „AT&T-style” szintaxisával).
Mivel GPL licenccel fejlesztik, a Linux szabad szoftver.
A Linux-kernellel a legtöbben a GNU/Linux operációs rendszer magjaként találkoznak. Az ezen a kernelen alapuló szoftver disztribúciókat GNU/Linux disztribúcióknak nevezzük.
A projekt 1991 áprilisában indult, amikor Linus az azóta híressé vált üzenetét elküldte a Usenet comp.os.minix hírcsoportjára:
Abban az időben a GNU projekt rengeteg olyan komponenst fejlesztett, amelyek egy szabad operációs rendszerhez szükségesek, de az ő kernelük, a GNU Hurd még nem készült el. A BSD operációs rendszer körüli jogi problémák még nem tisztázódtak. Ezt a légüres teret töltötte ki a Linux-kernel, és a korlátozott képességei ellenére már a korai verziók is számos fejlesztőt és felhasználót gyűjtöttek maguk köré. A korai időkben a Minix hackerei ötleteikkel és kódolással segítették a Linux kernel fejlődését.
Ezt követően sok programozó csatlakozott a projekthez. 1991 szeptemberére elkészült a 0.01 verzió, ami már 10 239 sor kódot tartalmazott. 1991 októberében már a 0.02 verziónál járt a fejlesztés. Ugyanabban az évben decemberre elkészült a 0.11 verzió, ami az első önálló kernel volt, olyan értelemben hogy egy 0.11 verziójú linux kernelt futtató gépen le lehetett fordítani a 0.11 kernelt. Ezt követően Torvalds átvette a GNU GPL licencet. (Korábban a saját maga által barkácsolt licencet használta.)
1992 januárjában elindult az alt.os.linux newsgroup, amit két hónappal később, márciusban átneveztek comp.os.linux-ra. Ezzel egyidejűleg elkészült a 0.95 kernelverzió, ami már tudott X Window System-et (röviden X-et) futtatni.
Két évvel később, 1994 márciusában adták ki az 1.0.0 kernelt, amely már 176 250 sor kódot tartalmazott. Még egy évvel később, 1995 márciusában jelent meg az 1.2.0 verzió, ami már 310 950 sorból állt.
A linux kernel 2.0.0 verziója 1996 márciusában jelent meg. A fejlődés itt sem állt meg:
Manapság már programozók ezrei vesznek részt a fejlesztésekben.
Linus ma is tovább fejleszti a saját kódját, beépíti más programozók változtatásait, és kiadja a Linux kernel újabb és újabb verzióit. Ezeket "vanilla" (hagyományos) kerneleknek nevezzük, ami azt jelzi, hogy senki sem változtatott rajtuk. Sok GNU/Linux operációs rendszer szállítója módosítja a kernelt a termékeikhez, főleg olyan illesztőprogramok és szolgáltatások hozzáadásával, amiket még nem adták ki "stabil" csomagok részeként. Néhány disztribúció, mint például a Slackware, hagyományos kerneleket használnak.
A Linux kernel verziószámozása jelenleg négy számból áll, a sokáig használt három szám helyett. Tegyük fel például, hogy a verziószám a következő: A.B.C[.D] (például 2.2.1, 2.4.13 vagy 2.6.12.3).
Linus Torvalds a legújabb programkódok felügyeletét végzi, és ő adja ki a tesztelésre szánt kernel verziókat. A régebbi verziók karbantartásával több programozót bízott meg:
Kernel sorozat | Karbantartó |
---|---|
2.0 | David Weinehall |
2.2 | Marc-Christian Petersen (korábban Alan Cox) |
2.4 | Marcelo Tosatti |
2.6 | Andrew Morton |
3.2 | Ben Hutchings |
3.4 | Li Zefan |
3.10 | Willy Tarreau |
3.12 | Jiri Slaby |
3.16 | Ben Hutchings |
3.18 | Sasha Levin |
4.1 | Sasha Levin |
4.4 | Greg Kroah-Hartman |
4.9 | Greg Kroah-Hartman |
4.14 | Greg Kroah-Hartman |
Egyéb Linux kernelprogramozók, többek között Robert Love, Molnár Ingó, és Miguel de Icaza. (A Linux KARBANTARTÓK fájlja).
Torvalds kezdetben olyan licenc alatt adta ki a Linuxot, ami minden nemű kereskedelmi felhasználást tiltott. Azonban hamarosan váltott a GNU GPL licencre, amely megengedi a Linux terjesztését és kereskedelmi forgalmazását akár érintetlen akár módosított formában, azzal a feltétellel, hogy az így keletkező terméket csak a GNU GPL licenc alatt szabad terjeszteni és minden esetben mellékelni kell a teljes forráskódot.
A licencváltást Torvalds később úgy jellemezte, hogy az volt a legjobb dolog, amit valaha tett: Making Linux GPL'd was definitely the best thing I ever did.
A Linuxot jelenleg a GNU GPL 2 verziója alatt adják ki. Vitatott, hogy könnyen át lehetne-e állni a GPL 3 verzióra, illetve hogy egyáltalán szükség-e ez a lépés. A 2.4.0 kernelverzió kiadásakor Torvalds nyomatékosan kijelentette, hogy az ő összes kódjára a GPL 2 vonatkozik. 2006 szeptemberében végeztek egy felmérést 29 kulcsfontosságú kernelfejlesztő körében arról, hogy melyik licencverzió tetszik nekik jobban. A megkérdezett 29-ből 28 személy találta a GPL 2 verziót szimpatikusabbnak a GPL 3-nál, tehát Torvalds nincs egyedül a véleményével.
Megoszlanak a vélemények arról, hogy a betölthető kernelmodulok vajon származtatott munkának számítanak-e és azáltal a GNU GPL alá esnek-e. Richard Stallman szerint a forráskód nélkül terjesztett kernelmodulok által a Linux megszűnik szabad szoftvernek lenni és ezek a kernelmodulok megszegik a GPL-t. A Linux közösség véleménye sokféle, maga Torvalds is egyrészt kijelentette, hogy minden kernelmodul definíció szerint származtatott munkának minősül, tehát a GPL vonatkozik rá, azonban arra is rámutatott, hogy vannak driverek, amelyeket eredetileg nem is Linuxra írtak és nem is használnak ki semmilyen Linux-specifikus működést.
A Linux szó bejegyzett védjegy az Egyesült Államokban és néhány más országban is. Erre azért volt szükség, mert egy illetéktelen személy bejegyeztette a nevet és pénzt kezdett követeleni a használatáért. Linux támogatók egy csoportja bírósághoz fordult az ügyben, melynek eredményeként 1997 augusztusában a védjegy Torvalds birtokába került.
A Linux kernel technikailag valódi többfeladatú (multitasking), virtuális memóriát és osztott könyvtárakat használó, demand loading, shared copy-on-write futtatható állományokat támogató, helyes memóriakezelésű, TCP/IP hálózatot kezelő rendszermag.
Ma a Linux egy modulokra épülő monolitikus kernel. A meghajtóprogramok és kernel-kiterjesztések általában ring 0 módban futnak, teljes hozzáféréssel a hardverhez, pár kivétel azonban felhasználói térben (user space) fut. A szokványos monolitikus kernelektől eltérően az eszközillesztő-programokat könnyű beállítani, mivel a modulok a rendszer futása közben betölthetőek és eltávolíthatóak. Még egy különbség a Linux és a szokványos monolitikus rendszermagok között, hogy az illesztőprogramok bizonyos feltételek mellett preemptíven kezelhetőek. Az utóbbi szolgáltatást a hardveres megszakítások megfelelő kezeléséhez, és a szimmetrikus multiprocesszoros rendszerek jobb támogatásáért adták hozzá a kernelhez. A preempció javítja a rendszer válaszadási idejét is, alkalmasabbá téve a Linuxot valós idejű alkalmazások futtatására.
A tény, hogy a Linux nem egy mikrokernel egy híres flame war tárgya volt Linus Torvalds és Andy Tanenbaum között 1992-ben a comp.os.minix hírcsoporton.[halott link]
A Linux kernel számos verziójának forráskódja elérhető a https://web.archive.org/web/20050923210216/http://lxr.linux.no/ címen.
Alkalmazási szoftver (bash, LibreOffice, Blender, Tremulous) | User Mode | |||
Átfogó programkönyvtárak (GTK+, Qt, SDL, EFL) | ||||
Szimpla programkönyvtárak sin, opendbm | ||||
C standard library: glibc/uClibc open, exec, sbrk, socket, fopen, calloc | ||||
System calls: TRAP, CALL, BRK, INT, IOCTL (depends on the hardware) | Kernel Mode | |||
Linux rendszermag & (Hardver-illesztőprogramok, process-scheduler, hálózati stack, fájlrendszer) | ||||
Hardver (CPU(s), memória, más mikroprocesszorok, eszközök) |
A kernelpánik olyan kernel szintű hiba esetén lép fel, amikor a kernel nem képes tovább működni. A kernelkódból meghívható a sys/system.h headerben definiált panic() függvény, ami ezt az állapotot jelzi. A kernelpánik leggyakrabban lekezeletlen kernelkód kivételekből adódik, mint például az érvénytelen memóriaterületre való hivatkozás. Ritkább esetben hardverhiba is kiválthatja a kernelpánikot.
A Linux kernel a C programozási nyelv GNU GNU Compiler Collection által támogatott verzióban íródott (ami nem korlátozódik a szabványos C-re), kiegészítve viszonylag rövid Assembly programozási nyelv hardverspecifikus részekkel (a legutóbbi számláláskor a Linux körülbelül 20 különböző processzor-családot támogatott). A GCC által támogatott C-kiegészítések (és a kapcsolódó eszközök) miatt sokáig csak a GCC-vel lehetett a Linux kernelt helyesen lefordítani. Az Intel állításai szerint megváltoztatta a C fordítóját úgy, hogy már az is képes a kernel fordítására.
Sok más programnyelvet is használnak valamilyen módon, elsősorban a kernel fordításakor (mikor a forrásokból létrehozzák a bootolható képet). Ezek a nyelvek többek között a Perl, Python, és számos shell script programnyelv. Néhány illesztőprogram íródhat C++-ban, Fortranban, vagy más nyelveken, de ez nem ajánlott.
Bár eredetileg nem szánták hordozható operációs rendszernek, a Linux ma az egyik legtöbb architektúrán használható rendszermag (bár a NetBSD megközelíti). Fut az iPAQ rendszerektől (egy kézi számítógép) kezdve az IBM System z9-én (egy nagyszámítógép szerver, ami több száz, vagy akár több ezer Linuxot is képes futtatni). A tervek szerint az IBM új Blue Gene szuperszámítógép architektúrájának elsődleges operációs rendszere a Linux lesz. Linus, talán humorosan, beépítette a kernelbe a BogoMipset, mint a rendszer teljesítményének mérésére alkalmas (ál)eszközt.
Fontos megjegyezni, hogy Linus erőfeszítései egy másfajta hordozhatóság terén is kifizetődtek. A hordozhatóság Linus szerint az volt, hogy a rendszeren bármilyen forrásból származó alkalmazást könnyű legyen lefordítani. Így a Linux eredetileg részben azért vált népszerűvé, mert ezen a rendszeren került a legkisebb erőfeszítésbe a népszerű GPL licencű és más nyílt forráskódú alkalmazások üzembehelyezése.
A Linux jelenleg a következő architektúrákon fut:
A támogatott rendszerek teljes listája elérhető itt: Linux Ports.
A Linux 1.0 még csak az a.out bináris formátumot támogatta. Az 1.2 sorozatban jelent meg az ELF (Executable and Linkable Format) formátum támogatása, amellyel egyszerűbben lehet kezelni a megosztott könyvtárakat (shared library).
Eredetileg, a linux csak a kernel neve volt. A "kernel" attribútumot olyan alacsony szintű rendszerprogramoknak adják, amelyek tartalmaznak egy hardver absztrakciós réteget, lemez- és fájlrendszervezérlést, többfelhasználós üzemmódot, terheléskiegyenlítést, hálózati támogatást és biztonsági modulokat.
A kernel önmagában még nem teljes értékű operációs rendszer (a szó szoros értelmében).
A teljes rendszert, mely a Linux kernel köré épült, gyakran Linux operációs rendszerként említik, bár egyesek ragaszkodnak a GNU/Linux elnevezéshez és ez alapján alakult ki a GNU/Linux elnevezési vita.
Egyesek néha keverik a kernel és az operációs rendszer fogalmakat és ez számos téveszméhez vezet pl ahhoz, mely szerint Torvalds valaha írt vagy karbantartott volna más részeket is a rendszerben, mint a kernel.
A Linux-kabala egy Tux nevű pingvin, Larry Ewing alkotása.
A Tux pingvinnek sok változata létezik, néhány 3 dimenzióban.
A kabala azért a pingvin, mert, ahogy Torvalds mondta, "Linus szereti a pingvineket. Ennyi." A Tux nevet a (T)orvalds (U)ni(X) rövidítéseként javasolták.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.