A Gentoo Linux (kiejtés /ˈdʒɛntuː/ dzsen-tú[3]) egy Linux-disztribúció. A tervezésénél fő szempont volt a modularitás, hordozhatóság és az optimalizálhatóság a felhasználó gépének megfelelően. Ezt úgy éri el, hogy az összes program alapvetően forrásból telepíthető a felhasználó által megadott optimalizálási paraméterekkel. A nagyobb programcsomagok rendelkezésre állnak előre lefordított, bináris formátumban is különböző architektúrákra. A Gentoo mindezt a Portage csomagkezelési rendszer használatával éri el.
A Gentoo Linux a hosszú farkú szamárpingvin (Pygoscelis papua) angol megfelelőjéről kapta a nevét a gyorsaságuk és alkalmazkodóképességük miatt.[3] A szamárpingvin akár 36 km/h-s sebességgel is képes úszni és kiválóan alkalmazkodik a legzordabb időjáráshoz is.
A Gentoo forrásalapúsága és nagyfokú rugalmassága miatt kiválóan alkalmas forkolásra, saját disztribució kiadására, hisz könnyen saját igényre szabható a rendszer. Köztük, olyan nem kis cégek is vannak, mint pl. a Google a Chromium OS disztribúciójával.
Történelmi áttekintés
Az első Gentoo Linuxot, még Enoch Linux néven Daniel Robbins alkotta meg. A cél egy binárisok nélküli disztribúció készítése volt, mely lehetővé teszi a hardverekre való optimalizálást a legszükségesebb programok használatával. Az Enoch disztribúciót 1999 decemberében adták ki 0.75-ös verziószám alatt.[4]
Daniel Robbins és társai kifejlesztettek egy GCC klónt EGCS néven és ezen a ponton átkeresztelték a disztribúciót Gentoora. A változtatások olyan sikeresek voltak, hogy később hivatalosan is a GCC (v2.95) részévé váltak.[5]
Ahogy az Enoch egyre finomodott, átnevezték Gentoo Linuxnak, noha párhuzamosan kiadtak még néhány Enoch verziót. Az első stabil verzió, a Gentoo Linux 1.0 2002 március 31 jelent meg.[1] Robbins ez idő tájt még egy 450 MHz-es órajelre tuningolt Celeron 300-ason futtatta a Linuxait, de vett egy újabb gépet, amin nem működött megfelelően a rendszer. Később realizálódott benne, hogy másoknak is ugyanilyen gondjai vannak, amit nem tud megoldani és - szégyenszemre, mint Linux fejlesztő - FreeBSD-re váltott, majd néhány hónap múlva a BSD-s tapasztalatokkal felvértezve újult erővel vágott bele a Gentoo fejlesztésébe.[5][6]
Noha a 2.2-es Linux kernel kiadása csalódás volt számára, a javított 2.4-es szériával úgy érezte új világ nyílt meg előtte, szóval a Gentoo Linux feléledt hamvaiból. E kudarcnak és a BSD-nek hála ekkor vágott bele a Portage koncepcióba, ami a Gentoo disztribúciók nélkülözhetetlen alapkellékévé vált.[6]
Robbins 2000. január 3-án Új Mexikói székhellyel bejegyezte a Gentoo Technologies, Inc. céget,[7] majd miután a Gentoo az egyik legmeghatározóbb Linux disztribúcióvá vált, 2004. 05. 28-ai dátummal bejegyezte a nonprofit Gentoo Alapítványt (Gentoo Foundation, Inc. néven)[8] és levédette a jogokat. A Gentoo Alapítványnak ma az elnök mellett öt tagja van.[9][10]
A nagyobb döntések meghozatalához létrehoztak egy Gentoo Tanácsot, melynek jelenleg hét tagja van, melyeket egy évre választanak és havonta, vagy, ha a tagok szerint szükséges többször üléseznek egy nyilvános meeting keretein belül.[11]
Jellemzők
A Gentoo főként azon Linux felhasználók tetszését nyerheti el, akik teljes kontroll alatt akarják tartani a gépüket. Ideális azok számára, akiknek van kedvük pepecselni azzal, hogy a lehető legjobban a saját hardverükre legyen optimalizálva a rendszer kezdve az architektúrától, a kernel modulokon át a felhasználó szintű szoftverekig.
Ennek az optimalizálhatóságnak köszönhetően a Gentoo kiváló asztali gépeknek éppúgy, mint szervereknek és régebbi gépeken is meglehetősen jól fut bizonyos keretek közt.
A Gentoo kiváló a tanulni vágyóknak is, programozóknak, adminisztrátoroknak, hisz a legalapvetőbb szinten kell a rendszert telepíteni, konfigurálni.
Portage
A Portage a Gentoo szoftver disztribúció és csomagkezelő rendszere. Az eredeti koncepció a port rendszer volt, melyet Berkeley Software Distribution (BSD) rendszerekhez fejlesztettek ki és amely nagyfokú rugalmasságot enged meg a telepítés során éppúgy, mint a szoftverek karbantartása területén. Erről a flexibilitásról a fordítási időben használható un. USE flagek gondoskodnak, melyek lehetővé teszik a függőségek kezelését, biztonságos telepítést (sandbox-on keresztül), a rendszer profilok használatát, vagy éppen a telepített fájlok felülírását, vagy megőrzését. A Portage rendszert Python nyelven programozták, ez a disztribúció „lelke”.[13]
Jelen pillanatban közel 20 000 csomag található a hivatalos Portage rendszerben, de léteznek nem hivatalos kiterjesztések is (Gentoo Portage Overlays), sőt a rendszer azt is megengedi, hogy saját magunk is létrehozzunk egyet a Layman repo menedzselő eszköz jóvoltából.[14]
Noha a Gentoot nem bináris disztribúciónak tervezték, a Portage rendszer lehetővé teszi a bináris csomagok telepítését is, abban az esetben, ha azok a túl nagyok, vagy épp nem érhetők el forrásban.
Hordozhatóság
A Gentoo és a Portage rendszer lehetővé teszi, hogy telepítés közben forrásból natív kódot állítsunk elő az adott architektúrára. Így noha a fordítás jelentős időt és erőforrást emészt fel, lehetővé válik a hordozhatóság, virtuális gép futtatása nélkül is.
Az architektúra kiválasztását, valamint a fordító paraméterezéseit a /etc/portage/make.conf fájlban lehet megtenni, pl., ha Sandy Bridge chipünk van, akkor következőképpen:
A Gentoo-t többféleképpen lehet telepíteni. A leggyakoribb módja a gentoo telepítésének a Minimális Telepítő CD, vagy Hibrid ISO használata, de más LiveCD, LiveUSB, vagy akármilyen másik Linux segítségével, de akár hálózatról is telepíthető.
A koncepció lényege az, hogy egy működő rendszer segítségével elő lehet készíteni a telepítést (particionálás, formázás stb.), majd a felmásolt alap – magát már fejleszteni képes – Gentoo rendszer (un. stage) számára át lehet adni a környezeti paramétereket és a vezérlést, úgynevezett chroot környezet használatával.
A stage-ek (állapotok) tömörített formában érhetőek el. 2005 októbere után az első két stage hivatalosan már nem támogatott, mivel folyamatos körkörös hibákat okozott és a teljes rendszer újrafordításával ugyanúgy elérhető a megfelelően optimalizált állapot a stage 3 esetében is.
Stage 1: újrafordítás és konfigurálás az alap toolchaintől kezdve.
Stage 2: a toolchain félkész állapotban van, de még egyes elemek fordítást igényelnek.
Stage 3: a rendszer már indításra kész, s az alaprendszer is le van fordítva. Csak a kernelt kell fordítani, illetve igény szerint speciális eszközöket (boot loader, cron és syslog démon). Adott esetben konfigurációs fájlok szerkesztése.
Stage 4: teljes Gentoo környezetet tartalmazó bootolható rendszer. Kiválóan alkalmas backupok számára, vagy olyan helyeken, ahol problémás a chrootolás.
A processzor architektúráknak és a rendszer elsődleges céljának megfelelően több stage 3 és stage 4 tölthető le, ilyenek pl. a minimal, multilib, cloud, hardened verziók.
Kernelek
A kernel (rendszermag), mint általában minden csomag, szintén forrásban érkezik a Gentooba. Mint a legtöbb Linux disztribúció a Gentoo is kínál egy előre konfigurált kernelt, de szabad kezet ad a konfigurálásban is, ugyanakkor annyit segít, hogy számos patch settel elérhető a hivatalos Linux kernel.
Néhány kernel a teljesség igénye nélkül:
genkernel: előre konfigurált kernel azok számára, akik nem értenek hozzá, vagy nem akarnak a konfigurálással foglalkozni.
gentoo-sources: ajánlott rendszermag, ami több a Gentoo által alkalmazott foltot tartalmaz.
hardened-sources: szerverek számára ajánlott Gentoo kernel.
Miután a kernel telepítve lett, egy boot loadert (rendszerbetöltőt) kell még feltennünk, hogy a rendszert külső indítóeszköz nélkül tudjuk elindítani. Ez a rendszerbetöltő telepíthető a MBR-ba, egy adott partícióra, vagy egy másik eszközre és általában alkalmas több rendszer indítására (másik Linux, Windows stb.) egy menü segítségével. Ilyen rendszerbetöltők pl. a Grub, vagy a Lilo.
Szolgáltatások
Ahhoz, hogy egy rendszer a mindennapi használatra alkalmas legyen szükség van szolgáltatások (fájlrendszerek csatolása, naplózás, hálózatkezelés, grafikus környezet stb.) elindítására. Ezeket végzik az init (indító rendszerek).
A Gentoo több lehetőséget kínál fel, használható az alapértelmezett OpenRC, de választható pl. a legtöbb Linux disztribúció által támogatott systemd is.
A Gentoo Portage-ban elérhető init rendszerek összehasonlítása[15]
OpenRC
systemd
Epoch
runit
Programozási nyelv
shell, C
C
C
C
Függőség
init (sysv/BSD)
D-Bus
libc, /bin/sh
nincs
Formátum
shell szkript
ini
conf
shell szkript
Konfigurálható
igen
igen
igen
nem
Párhuzamos indítás
lehetséges
lehetséges
nem lehetséges
lehetséges
Licenc
2-cl. BSD
LGPL v2.1+
Public Domain
3-cl. BSD
Támogatás
alapértelmezett
támogatott
használható
használható
Az alapértelmezett OpenRC nem rugaszkodik el sem az eredeti unixos filozófiától (KISS), sem az init rendszerek eredeti céljától, ugyanakkor a mai igényeknek megfelelően rugalmas is, így egy modern, de Unix közeli operációs rendszer számára ideális. A Gentoo init szkriptjei 100%-osan kompatibilisek az OpenRC-vel, sőt a Gentoo külön OpenRC kompatibilis szolgáltatásokat tart karban pl. eudev (ami a ma már sysemd-be integrált udev alternatívája).[16]
Az OpenRC és systemd parancsok összehasonlítása[17]
OpenRC
systemd
A futó szolgáltatások listázása
rc-status
systemctl list-units
Az elakadt szolgáltatások listázása
rc-status --crashed
systemctl --failed
A futási szintekhez tartozó szolgáltatások listázása
rc-update show
Az összes elérhető szolgáltatás listázása
rc-update -v show
A szolgáltatások listázása, futási szintek nélkül
rc-service -l
systemctl --all
Szolgáltatás engedélyezése|tiltása
rc-update add|del daemon [runlevel]
systemctl enable|disable daemon
Parancs adása a szolgáltatásnak • szolgáltatások: start, stop, restart, ...
rc-service daemon command
systemctl command daemon
Gentoo kiadások
A Gentoo ma verzió nélküli un. rolling kiadású disztribúció, ami a gyakorlatban azt jelenti, hogy ha az emerge parancs (emerge --syncután az emerge --update) lefut, akkor a rendszer friss az előző verziótól függetlenül. Habár a Gentoonak is van egy verziószámot mutató fájlja (/etc/gentoo-release), az azonban "Gentoo Base System release" néven a sys-apps/baselayout verzióját tartalmazza.
Rengeteg Gentoo alapú (vagy Gentoo repót használó) disztribúció (vagy egyéni projekt) létezik. A teljesség igénye nélkül az alábbi lista a 2021. 05. 01-ei állapotot tükrözi.[42][43][44]
A Gentoo a DistroWatch.com-on nagyon hamar népszerű lett és a legjobb eredményét napi 326 találattal 2002-ben a 3. helyen érte el,[45] amíg a legrosszabb helyezése a 45. volt 285 találattal 2015-ben.[46]
Noha, rolling disztribúció révén nyilvánvalóan nem a DistroWatchról való letöltögetéssel fogják elérni a friss állapotot, a Gentoo LiveDVD állapotát jól tükrözheti ez a statisztika.
A Gentoo népszerűségét az is mutatja, hogy (2011-ben) csak a gentoo.org rsync szervereit több, mint 20 000 alkalommal érték el naponta. Ebben természetesen nincsenek benne a nem hivatalos, nem regisztrált és a helyi Gentoo szerverek sem.[47]
A phoronixArchiválva2009. január 5-i dátummal a Wayback Machine-ben 2017 júniusában végzett házi felmérése szerint, 3,9%-kal a Gentoo a 7. legnépszerűbb Linux disztribúció laptopon.[48]
Az időközben bezárt LinuxCounter.net listáján - a valamivel több, mint 160 ezer regisztrált gép között - a 6. helyen állt a Gentoo.[49] A becslések szerint nagyjából a Linux felhasználók 0,7%-a (600 ezer) regisztrálta itt magát.[50]
A Lifewire technológiai oldal 2019 februárjában a Gentoo Linuxot negyedik helyen megemlítve minden idők 9 legjobb disztrója közé sorolta, a DistroWatch.com adatai alapján "Bukott Sztár"-ként aposztrofálva.[51]
A Gentoo népszerűségét tovább növeli, hogy a forrásalapúsága miatt - noha használható „késztermékként” - egy könnyű közbenső állapotot jelenthet a többi fork, disztribúció számára, hisz könnyen saját igényre szabható a rendszer. Köztük, olyan nem kis cégek is vannak, mint pl. a Google a Chromium OS disztribúciójával, melyet 2010 májusáig több, mint 1 millióan töltöttek le.[52]
További érdekesség, hogy Greg Kroah-Hartman - a Linux Kernel stabil ágának karbantartója - a verzió nélküli jelleg miatt szintén futtat Gentoot.[53]
Larry, az április bolondja
Larry, a tehén
Larry, a tehén a Gentoo nem hivatalos kabalafigurája. Larry, a tehén az ősfelhasználó, ő "a példa", ő "a troll":
„Larry the Cow was a bit frustrated at the current state of Linux distributions... until he tried Gentoo Linux.”[54]
Fordítás:„Larry a tehén egy kicsit frusztrált a Linux disztribúciók státusza miatt... amíg ki nem próbálta a Gentoot.”
Ám hiába okozott feloldhatatlan frusztrációt egyeseknek, hogy egy „pingvin Linuxnak” egy „tehén fiú” az ősfelhasználója, 2004-ben testet is öltött.[59]
A maja világvége
Nem Larry az egyetlen vicces dolog a Gentoo körül, hisz a 2012-ben aktuális „maja világvégére” még utoljára kiadtak egy világvége verziót.[38]
Múltidézés
A világvége után érthető 2015 április elsejére a Gentoo már olyan retró lett, hogy még a weboldala is CGA optimalizálttá vált.
Azért, hogy a Gentoo még különlegesebb legyen a weboldalukat a CGA Web szabványnak megfelelően 16 színűvé tették és 640x200-as felbontásra optimalizálva. Ugyanakkor a Gentooról készült képernyőképeket gyakorlatban pusztán a kontraszt megnövelésével tették ódon hangulatúvá.
Azt is írták, hogy az új oldal ezentúl elérhetővé válik Gopher protokollal a Gopher://gopher.gentoo.org/ cím alatt.
Mindezt a Gentoo célközönsége miatt kellett megtenni, akik még IBM XT hardvert használnak és 5,25”-os floppykon tartják az adataikat, miközben betárcsázásos modemmel kommunikálnak.
Természetesen az 5,25"-os floppykkal sikerült 700 alá lenyomni a Gentoo lemezek számát.
Galéria
a galéria neve
Gentoo logó: Larry, a tehén (Eredeti, teljes alakos változat)
↑[gentoo-announce Gentoo Linux 2008.0 released - gentoo-announce - Gentoo Mailing List Archives] (angol nyelven). archives.gentoo.org. (Hozzáférés: 2017. július 29.)
↑LinuxCounter.net distribution (angol nyelven). www.linuxcounter.net. [2018. szeptember 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2018. szeptember 5.)
↑LinuxCounter statistics (angol nyelven). www.linuxcounter.net. [2018. augusztus 27-i dátummal az eredetiből archiválva]. (Hozzáférés: 2018. augusztus 27.)