A Linux egy GPL-licencű operációs rendszer mag, a legkülönfélébb, széles körűen használt számítástechnikai eszközökön, mint például a legtöbb mobiltelefonon, szerveren, stb. futó operációs rendszer alapja, és ez alapján gyakorta használt a Linux operációs rendszer kifejezés, melyet szintén neveznek egyszerűen csak Linuxnak. Cikkünk ilyen értelemben használja az elnevezést; a rendszermagról a Linux (rendszermag) cikk szól. A szabad és a nyílt forráskódú szoftverek egyik legismertebb példája.
A „Linux” elnevezés szigorú értelemben véve a Linux-rendszermagot jelenti, amelyet Linus Torvalds kezdett el fejleszteni 1991-ben. A köznyelvben mégis gyakran a teljes Unix-szerű operációs rendszerre utalnak vele, amely a Linux-rendszermagra és az 1983-ban, Richard Matthew Stallman vezetésével indult GNU projekt keretében született alapprogramokra épül. A Linux pontosabb neve ebben az értelemben GNU/Linux.
A „Linux” kifejezést használják Linux-disztribúciókra (terjesztések) is, ám ilyenkor általában a disztribúció nevét is hozzáteszik. Egy-egy disztribúció olyan összeállítás, amely az alaprendszeren túl bizonyos szempontok alapján összeválogatott és testre szabott programokat tartalmaz.
A Linux a szerverek és személyi számítógépek mellett – elsősorban nyíltságának köszönhetően – megtalálható sok összetett elektronikus eszközben, így hálózati eszközökben (például routerek), hordozható eszközökben (például mobiltelefonok, okostelefonok, PDA-k, hordozható hanglejátszók, órák), háztartási gépekben, szórakoztató elektronikai berendezésekben (például asztali DVD-lejátszók, videójáték-konzolok, set-top-boxok) is. Bizonyos területeken (például webszerverek, szuperszámítógépek esetében) a legmeghatározóbb operációs rendszernek számít, ám az utóbbi években személyi számítógépekre (asztali és hordozható gépek) is egyre szélesebb körben telepítenek valamilyen Linux disztribúciót.oprepi blog: A pingvinek nekifutnak...430 000 linuxos szavazógép Brazíliában (angol)IBM, Canonical/Ubuntu, Novell és Red Hat megállapodása: Microsoft-mentes asztali gépek világszerte (angol)
Története Előzmények A GNU projekt
Világszerte sok programozót inspirált az 1983-ban indított GNU Projekt, amelyet Richard M. Stallman (RMS) indított útjára. A szabad szoftveres megmozdulás célja az volt, hogy szabadon felhasználható, minőségi szoftvereket készítsen és terjesszen. Elkezdődött a GNU operációs rendszer, a GNU Hurd fejlesztése is, de annak fejlesztése több éves szünetekkel akadozott, de 2015-ben és 2016-ban négy kiadást ért meg. Azóta nem készült új kiadás: a disztribúciók egyes napi vagy éjjeli fordításokat vesznek igénybe.
Az 1980-as évek PC-s operációs rendszerei A 80-as évek elejétől az egyik meghatározó PC-s operációs rendszer a DOS (Disk Operating System) volt. Az IBM a zárt forráskódú MS-DOS operációs rendszerrel szállította személyi számítógépeit, melyek később elárasztották a világot. Az akkori Apple Macintosh gépek (a szintén zárt forrású MacOS operációs rendszerrel) jobbak voltak az IBM PC-knél, de magasabb áruk és a perifériák alacsony választéka meggátolta őket a szélesebb körű elterjedésben.
A UNIX operációs rendszer thumb|right|A Unix történeti fa
Egy másik, a 80-as években használt operációs rendszer a Unix volt. Jó tulajdonságai ellenére főként az intézmények, kutatási központok, iskolák operációs rendszere volt, részben az ára miatt, részben mert eredetileg sem otthoni felhasználásra, hanem nagyszámítógépekre tervezték. A UNIX operációs rendszer forráskódja zárt volt, ahhoz néhány kivételezett intézményen kívül mások nem férhettek hozzá.
A MINIX operációs rendszer
A szakemberek természetesen megkísérelték a UNIX előnyeit átültetni az olcsóbb PC-re. Az egyik ilyen próbálkozás 1987-ben a MINIX volt, megalkotója Andrew S. Tanenbaum Hollandiában élő, USA állampolgárságú professzor és kernelszakértő. A MINIX fejlesztése a nulláról kezdődött, azaz készítője nem egy meglevő operációs rendszert használt fel alapjául. Tanenbaum a rendszert oktatási céllal írta, azt szerette volna, ha tanítványai ezen a MINIX-en tanulják meg az operációs rendszerek működésének, felépítésének alapjait. A MINIX rendszert az Intel 8086 mikroprocesszoraira fejlesztette, amelyek abban az időben elárasztották a világ számítástechnikai piacát.
A MINIX nem volt kimagaslóan jó operációs rendszer, de elvitathatatlan előnye, hogy nyílt volt a forráskódja. Bárki, aki megvásárolta Tanenbaum Operációs rendszerek című könyvét, hozzájuthatott a mintegy 12 000 sor MINIX kódhoz (a könyv második kiadásakor már több mint 27 000 sor), amely egy működő operációs rendszer forráskódja volt.
Ez volt az első alkalom, hogy a nagyközönség elolvashatta egy operációs rendszer forrását, hiszen a többi rendszer forráskódját a gyártók szigorúan védelmezték a nyilvánosságtól. Tanenbaum munkájának köszönhetően programozók és egyetemisták tömegei tanulmányozhatták a MINIX operációs rendszerek működését. Ennek hatására ugrásszerűen megnőtt a téma népszerűsége, egyre-másra alakultak olyan levelezési listák, ahol az érdeklődők az operációs rendszerek készítésének kérdéseiről beszélgethettek. Az egyik olvasó Linus Torvalds, svéd nemzetiségű finn egyetemista volt.
A Linux születése thumb|right|Linus Torvalds, a Linux kernel megalkotója
1991-ben Linus a Helsinki Egyetem számítástechnikai tudományok karának másodéves hallgatója volt. Linus autodidakta hacker volt, saját operációs rendszert szeretett volna írni, mivel a GNU Hurd-re várhatóan néhány évet várni kellett volna. A 21 éves egyetemista a Intel 80386-os processzor védett módú (protected mode), feladat-váltó (task-switching) lehetőségeit szerette volna felfedezni. Ez körülbelül 1991 nyarának elején lehetett, a pontos dátumra maga Linus sem emlékszik. Egy biztos: egy e-mail tanúsága szerint 1991. július 3-án már a POSIX szabvány után érdeklődött az interneten, így ekkor már futhatott nála egy kezdetleges rendszer. A program fejlesztése a Tanenbaum-féle Minix alatt történt, eleinte assembly nyelven.
1991. augusztus 25-én Linus egy mostanra már legendássá vált levelet küldött a MINIX hírcsoportba. A levél magyar nyelvű fordítása:
„Üdv minden Minix-felhasználónak odaát! Egy (ingyenes) operációs rendszert csinálok (csak hobbiból, nem lesz olyan nagy és profi, mint a gnu) a 386-os (486-os) AT-klónokhoz. Április óta érlelem, és lassan elkészül. Szeretnék visszajelzéseket arról, hogy mi tetszik és mi nem tetszik a Minixben az embereknek, mivel az én operációs rendszerem némileg hasonlít rá (többek között (gyakorlati okokból) azonos a fájlrendszer fizikai kiosztása).
A bash (1.08) és a gcc (1.40) programokat már átültettem, és úgy tűnik, működik a dolog. Ez azt jelenti, hogy pár hónapon belül valami hasznosat fogok kapni, és kíváncsi lennék, milyen funkciókat szeretnének legtöbben. Minden javaslatot szívesen veszek, azt viszont nem ígérem, hogy meg is valósítom őket :-)
- Linus ([email protected])
Ui.: Igen! Nincs benne Minix-kód és többszálú fs-sel rendelkezik. Nem hordozható (a 386 feladatváltást használja stb.), és lehet, hogy soha nem is fog az AT-merevlemezeken kívül bármi mást támogatni, minthogy nekem csak ez van :-(.”
Így kezdődött a Linux története. Linus levele számos programozót inspirált. Andrew S. Tanenbaum – a MINIX operációs rendszer atyja – Hollandiában élő egyetemi tanár, operációsrendszer-kutató, egyik későbbi levelében azt írta, hogy a Linux elavult, mert monolitikus, ezért a professzor nem jósolt neki nagy jövőt. A levélből óriási vita lett. Ennek ellenére a Linux az elmúlt 21 évben hihetetlen fejlődésen ment keresztül, és még mindig monolitikus, pontosabban hibrid (távol áll a mikrokerneltől, de betölthető-eltávolítható modulokra osztható a funkciók többsége).
„GNU/Linux” A „Linux” valójában csupán a kernel (rendszermag) neve. A Linux kernelen alapuló rendszerek szinte minden esetben a GNU projekt által fejlesztett alapprogramokat használják (mint például az operációs rendszer alapkönyvtára, a „libc”, vagy az alapvető Unix/Linux programok, mint például a „echo” vagy az „ls”).
A Linux operációs rendszer tehát leggyakrabban a Linux kernelből valamint a GNU rendszerkönyvtárakból és rendszerprogramokból áll. Stallman szerint ezért az operációs rendszer helyes elnevezése „GNU/Linux operációs rendszer”. Bár ennek jogosságával kevesen vitáznak, a köznyelvben elterjedt a Linux elnevezés.
Az FSF alapítvány azokat a Linux-disztribúciókat, amelyek GNU programokat használnak GNU variánsoknak nevezi, és azt kéri, hogy ezekre az operációs rendszerekre GNU/Linux- vagy Linux alapú GNU rendszer névvel utaljanak. Ennek ellenére nem csak a nagyközönség nevezi egyszerűen Linuxnak a rendszert, hanem a nagy és jelentős Linux disztribútorok is (pl.: SuSE Linux). Van azonban néhány disztribúció akik a GNU/Linux elnevezést használják, ezek közül talán a legjelentősebb a Debian. A lelkes szakértői berkeken kívül azonban szinte senki nem használja a GNU/Linux kifejezést. Ráadásul arról is megoszlik a vélemény, hogy egyáltalán helyes-e ez az elnevezés. Linus Torvalds például elhatárolódik a GNU/Linux kifejezéstől, mivel a Linux nem egy GNU projekt.
Jogi kérdések Informatika Maga a Linux kernel és a legtöbb GNU szoftver a GNU General Public License (GPL) licenc alatt jelenik meg. A GPL kötelezi azt, aki bármilyen Linux disztribúciót árusít, hogy a Linux kernel forráskódját (vagy a rajta végzett bármilyen módosítást) elérhetővé tegye, hogy így bárki megtekinthesse, tovább módosíthassa, és ugyanolyan feltételekkel továbbadhassa. 1997-ben Linus Torvalds kijelentette: "A Linux GPL licenc alá helyezése volt a legjobb dolog, amit valaha tettem."
A Linux más fő összetevői más licenceket is használnak. Sok könyvtár a GNU Lesser General Public License (LGPL) licencet használja (ami a GPL licencnek egy engedékenyebb változata), az X Window System rendszer pedig az MIT licencet használja.
Torvalds nyilvánosan kijelentette, hogy a Linux kernelt nem fogja a GPL 2 licencről a 2007 közepén megjelent GPL 3-ra változtatni, az új licenc egyes részleteit kifogásolva, melyek lehetetlenné tennék a kernel felhasználását Digital Rights Management-et („digitális jogkezelést”, tkp. másolásvédelmet) használó környezetben. Ezen kívül megjegyzi, hogy van egy nagyon praktikus, gyakorlati oka is: mivel több ezer ember is hozzájárult a Linux kernel fejlesztéséhez – és tulajdonképpen ezért ők is licenc tulajdonosai -, ezért nem lehet csak úgy átállni egyik licencről a másikra azok megkérdezése nélkül.
Egy 2001-es Red Hat Linux 7.1-ről készült tanulmány szerint a disztribúció 30 millió sornyi kódot tartalmazott. A COCOMO segítségével kiszámították, hogy ennek létrehozása egy embernek körülbelül 8000 évbe telne, és ha ezt hagyományos módszerrel egy kereskedelmi cég fejlesztené, az körülbelül 1,34 milliárd amerikai dollárba (2009-es árfolyamon) kerülne az Egyesült Államokban. A Red Hat Linux 7.1 kódjának legnagyobb része (71%) C programozási nyelven íródott, de emellett sok más nyelvet is használtak, például a C++ (15%), Perl, Python, Fortran és számos shell script nyelvet. A Red Hat Linux 7.1-ben található szoftverek alig több, mint a fele van GPL licenc alá helyezve. Egész pontosan a copyleftet használó szoftverek (tehát a GPL és LGPL) aránya 63%. A Linux kernel maga 2,4 millió sornyi kódot jelent, ami az egésznek a 8%-át teszi ki.
Egy későbbi tanulmány ugyanezzel a módszerrel vizsgálta a Debian GNU/Linux 4.0-t. Ez a disztribúció közel 283 millió sornyi kódot tartalmazott, melynek kifejlesztése hagyományos módszerekkel 7,37 milliárd amerikai dollárba (2009-es árfolyamon) került volna.