A Linux kernel fordítási ideje egy igazi mérföldkőhöz közeledik: a teljes kernel felépítése a semmiből, kevesebb mint 10 másodperc alatt. Ez az egykor elképzelhetetlen figura a gyorsabb fogyasztói hardver és a mesterséges intelligencia által támogatott javítások kombinációjának köszönhetően jelenik meg a fordítókon, amelyek a kernel forráskódját rendszerindító képpé alakítják. A legutóbbi javítások már közel harmadával lerövidítették a felépítési időt, és nem támaszkodtak a RAM-lemez trükkjére, hogy meghamisítsák a fejlesztést.

Kulcs elvitelek

  • ✓A tiszta Linux kernel buildek hamarosan 10 másodperc alatt elkészülhetnek megfelelő hardveren
  • ✓Az új, mesterséges intelligencia által támogatott fordítójavítások már közel harmadával csökkentették a kernel felépítési idejét
  • ✓A nyereség RAM-lemez nélkül érhető el, ami valódi hatékonyságjavulást mutat
  • ✓A gyorsabb többmagos CPU-k és az NVMe tárhely tovább fokozza a szoftveroldali gyorsulást
  • ✓A gyorsabb buildek a legfontosabbak a kernelfejlesztők, tesztelők és rajongók számára, akik gyakran fordítanak

Mindenki számára, aki még soha nem ült át a kernel felépítésén, a szám önmagában talán nem sokat jelent. A Linux-közösség számára azonban a fordítási idő már régóta informális eredménytábla a hardver és a szerszámok előrehaladását illetően. A tiszta felépítés egy számjegyűre való lebontása az a fajta eredmény, amely a kernel levelezőlistákon túl is észrevehető.

Mi csökkenti ennyire drámaian a Linux kernel fordítási idejét?

Itt két erő ugyanabba az irányba húz. Hardveres oldalon a modern asztali processzorok ma már több tucat magot és szálat tartalmaznak, és a kernelépítések rendkívül jól párhuzamosak, mivel több ezer forrásfájl külön-külön lefordítható az utolsó összekapcsolási szakasz előtt. Párosítsa ezt a gyors NVMe tárhellyel és a rengeteg RAM-mal a gyorsítótárazáshoz, és a ma felépített rendszer számára elérhető nyers átviteli sebesség eltörpül minden iránt, amivel még öt évvel ezelőtt is rendelkezett egy rajongó.

Terminálablak, amely a Linux kernel fordítási idejének visszaszámlálását mutatja a build során

Az érdekesebb rész a szoftveres oldal. A fordítói eszközláncok elkezdték beépíteni a mesterséges intelligencia által támogatott optimalizálást, hogy intelligensebb döntéseket hozzanak a kód belső felépítésével kapcsolatban, mint például a beillesztés, a regiszterelosztás és az utasítások ütemezése. Ezek a döntések korábban pusztán a fordítómérnökök által írt, kézzel hangolt heurisztikákon alapultak. Ha ezt a folyamatot adatvezérelt vagy gépi tanulás által vezérelt modellekkel táplálja, egy olyan megközelítést, amelyet az LLVM-hez hasonló projektekben már felfedeztek, lehetővé teszi a fordító számára, hogy gyorsabban hajtson végre jobb hívásokat, ami közvetlenül megjelenik a felépítési időkben.

A jelentett javulás figyelemre méltó, hogy nem parancsikonból származik. Egyes rajongók felgyorsítják az összeállítást azáltal, hogy RAM-lemezre fordítják, hogy elkerüljék a lemez késleltetését, ami törvényes, de kissé mesterséges módja a gyors számok közzétételének. Ezt a legutóbbi, közel harmadával csökkentő építési időt magának a fordítási folyamatnak a hatékonyságának javításával érték el, ami azt jelenti, hogy a haszonnak a szokásos tárolást is meg kell tartania.

A kernel fordítási ideje mindig is fontos volt a rajongók számára

A Linux kernel forrásból való fordítása az 1990-es évek óta rítusnak számít, amikor a teljes felépítés órákig is eltarthat a kor hardverén. Ahogy a CPU-k magokat szereztek, és az olyan építőeszközöket, mint a fordítóprojektek, például az LLVM és a Ninja, egyre okosabbak lettek a párhuzamos munkavégzés terén, ez a szám percekre, majd a jól felszerelt gépeknél több tíz másodpercre esett. Minden csepp szinte stopperként követte nyomon, hogy a fogyasztói számítástechnika milyen messzire fejlődött.

Terminálablak, amely a Linux kernel fordítási idejének visszaszámlálását mutatja a build során

Ez gyakorlati szempont is, nem csak kérkedés. A kernelfejlesztők folyamatosan újjáépítenek a javítások tesztelése, a hibák felosztása vagy az illesztőprogram-módosítások érvényesítése közben. A disztribúciós karbantartók és az egyéni kernelkészítők, beleértve a játék kéziszámítógépekhez vagy speciális hardverekhez hangoló kerneleket is, munkafolyamataik részeként rendszeresen futtatják a teljes buildeket. Minden második leborotvált egy build megsokszorozódik több száz iterációval naponta.

Mit jelentenek a 10 másodperc alatti buildek a fejlesztők és a Linux-felhasználók számára

Ha a tiszta kernel felépítése valóban 10 másodperc alá csökken a megfelelő hardveren, akkor a gyakorlati hatás sokkal szorosabb visszacsatolási hurkot jelent mindenki számára, aki magán a kernellel dolgozik. A gyorsabb iteráció azt jelenti, hogy a hibákat hamarabb elkapják, a javításokat alaposabban tesztelik a benyújtás előtt, és a kernelfejlesztés általános üteme némileg felgyorsulhat, mivel a várakozási idő azon kevés erőforrások egyike, amelyek valóban elpazarolják a szoftverfejlesztést.

A tágabb Linux-ökoszisztéma számára is befolyási értékkel rendelkezik. A disztribúciós karbantartók, akik egyedi kernelt építenek, a játékközpontú Linux-projektek, amelyek meghatározott hardverre hangolnak, és a kernelkonfigurációkkal kísérletező amatőrök, ugyanolyan hatékonyságnövekedést élveznek. Egyikhez sem kell egzotikus felszerelés; A fejlesztések az általános fordítói és build-rendszerkódban landolnak, így ki kell szűrniük azokat, akik ésszerűen aktuális asztali CPU-t futtatnak, ahelyett, hogy a csúcskategóriás munkaállomásokhoz kötnének.

Terminálablak, amely a Linux kernel fordítási idejének visszaszámlálását mutatja a build során

Itt is van egy szélesebb jelzés. A mesterséges intelligencia által támogatott optimalizálás egyre gyakrabban jelenik meg magában a fejlesztői eszközökben, nem csak a mutatós fogyasztói termékekben. A fordítók, a rendszerfejlesztők és még a hibakereső eszközök is kezdik átvenni a gépi tanulási technikákat, hogy fokozatosan, de valódi fejlesztéseket tegyenek a mindennapi mérnöki feladatokban. A kernel fordítási ideje szokatlanul jól látható és könnyen mérhető példája ennek a tendenciának a nyilvánosság előtt.

Gyakran ismételt kérdések

Általában mennyi ideig tart egy Linux kernel felépítése?

Ez nagymértékben függ a hardvertől és a konfigurációtól, de egy modern többmagos asztali számítógépen egy teljesen tiszta felépítés általában egy perctől több percig is tart. A régebbi vagy egyszálas rendszerek jóval tovább tarthatnak, és az 1990-es években és a 2000-es évek elején a felépítések gyakran órákig tartottak.

A gyorsabb Linux kernel fordítási idő befolyásolja a kész kernel teljesítményét?

Nem. A fordítási idő azt méri, hogy a forráskód milyen gyorsan válik használható kernelképpé, nem pedig azt, hogy a kernel hogyan teljesít futás után. A gyorsabb összeállítások a fejlesztői termelékenységet és a tesztelés előnyeit jelentik, nem pedig a futási sebesség változását.

Milyen szerepet játszik valójában az AI a fordítók felgyorsításában?

Egyes fordítóprojektek gépi tanulási modelleket használnak a belső döntések meghozatalára, például, hogy mely funkciókat illessze be, vagy hogyan foglalja le a CPU-regisztereket, amelyeket korábban rögzített szabályalapú heurisztika kezelt. A jobb döntések ezeken a területeken csökkenthetik a fordító által elvégzendő munkát, és felgyorsíthatják a teljes összeállítást.

Ezekhez a fejlesztésekhez RAM-lemez szükséges?

Nem. A jelentett gyorsulások a fordítási folyamat valódi hatékonyságnövekedéséből származnak, nem pedig a beépítésnek a memóriába RAM-lemezzel történő gyorsítótárazásából, ami azt sugallja, hogy az előnyt a rendszeres tárolásra is alkalmazni kell.