Bármilyen operációs rendszer stabilitásának, biztonságos működésének az alapja az, hogy a rendszerben használt programcsomag összetevők, programok, szolgáltatások egymással tökéletes harmóniában együttműködjenek. Ehhez nem elegendőek csak a jó minőségű szoftverek.
A Linux alapú rendszereknél úgy épül fel az egész rendszer, hogy az adott szoftverkomponensek, hierarchikus módon egymásra épülnek, tehát függnek a másiktól (szoftver, illetve a csomagfüggőség néven ismerhetjük). Ez a Windows esetében részben van így, és csak az alaprendszerre igaz, egyébként a Windows rendszerekben számos azonos statikus vagy dinamikus komponens (DLL) előfordulhat különböző helyeken, amelyek egy program futtatásához szükségesek. Ezért is van a Windows alapú rendszereknek olyan brutális helyigényük.
A Linux alapú rendszereknél ez kissé másképp van.
A rendszer úgy épül fel, hogy GLIBC-től a futó programig, megosztott programkönyvtárak (LIBRARY) sorának felhasználásával kerül lefordításra (forrásból->bináris) egy alkalmazás. Tehát egy, már konzisztens rendszeren a forrásból fordított alkalmazás (és a megosztott programkönyvtárak megtartása mellett), nem csak konzisztens az alaprendszerrel, de teljes mértékben függ is az alaprendszerben elérhető komponensektől (library-któl /libektől/).
A konzisztenciát a lefordított program összes komponensének tömörítésével és egyetlen „önkicsomagoló” állományba tárolásával tartjuk fenn.
A blackPanther OS esetében az RPM csomagformátumot használjuk és LZMA/XZ használatával tömörítjük a programokat, a tároláshoz. A csomagformátum gyakorlatilag mindegy, hogy RPM vagy DEB, TGZ, ezeknek a fejlesztő szemszögéből van nagy jelentősége, mert a kezelésük, információkészségük, és a méretük meghatározó a rendszer építéskor. Az összes közül az RPM formátum messze fejlettebb és több lehetőséget biztosít mint a többi csomagformátum.
Egy példa, egy egyszerű programcsomag információinak lekérésére
Nem utolsó sorban az eredeti forráscsomagokat is RPM-ben tárolja! Tehát bármikor elővehető, és telepítésük megoldja egyúttal a chroot környezet függőségkezelését is, hogy a forráskód azonnal binárissá fordítható legyen.
A konzisztencia, és ezáltal a rendszer stabilitás fenntartása, a ‘hegesztés’ nélküli használat alapja nem más, mint a tökéletes alkalmazáscsomagok elkészítése. Azoknak a felépítésére és legyártására a blackPanther-projekt egy teljesen egyedi, külön policy-t dolgozott ki.
A csomagalapú konzisztencia fenntartása nagyon összetett feladat, mert egy adott program nem csak rendszer-összetevőkre, hanem más programcsomagokra, azok pedig újabbakra, hivatkoznak. Egy program felépítése nem csak abból áll, hogy vagy telepítjük a GIMP-et (példa) – vagy nem -, hanem, a telepítéssel exponenciális folyamatokat indítunk el, és ezen folyamatok együttműködésének a végeredménye, ha telepíthető lesz az adott szoftver.
Figyelem, türelem, precizitás
A programcsomag készítés folyamatának a bonyolultságát, és a fejlesztéshez szükséges precizitást az alábbi képi példában is szereplő, és mindenki által ismert GIMP alkalmazással prezentálom! Kattints a képre, tovább nagyítható 4K-s kép.

Tudtad?! A blackPanther OS verziókban ~25.000 konzisztens programcsomag van! Ezt a konzisztenciát kb, 70.000 csomag legyártásával érhetjük el…

A csomagkészítés egy összetett és nagy figyelmet igénylő feladat!
A megosztott programkönyvtárak miatt csak olyan rendszerrel lehet kompatibilis egy megosztott programkönyvtárakra épülő programcsomag, amely azonos verziójú programkönyvtárakat használ, és azok a rendszerben vagy a tárolóban elérhetőek. Egyébként érvénytelen függőségi vagy fájlkonfliktus alakul ki. Ezek a csomagok csak kényszerítéssel telepíthetőek, de az ilyen művelt a teljes rendszer összeomlását is okozhatja!
Hibás, idegen, inkonzisztens programcsomagok
Egy idegen rendszer programcsomagja, inkonzisztens a rendszerrel, és érvénytelen függőségi hibák sorozatát produkálja
Az ilyen programokat fejlesztői háttérismeretek nélkül semmiképp se telepítsük.
Egy szabályosan feltelepíthető programcsomag ilyen „választ” ad!
Ezt telepíthetjük
Hivatalos, hitelesített csomagok
A kész, tehát biztonságosnak és konzisztensnek jelölt csomagokat digitális aláírással látjuk el, és a saját hitelesítőkulcsunkkal írjuk alá. Amennyien egy programcsomag nincs hitelesített kulccsal ellátva, akkor a telepítőprogram értesítést küld a felhasználónak, hogy különös figyelemmel kell kezelnie az adott programot, mert azt a blackPanther Projektnél nem ellenőrizték, és nem kapott digitális aláírást. Az ilyen programok a harmadik féltől származó: RPM, AppImage, Flatpak, Snap csomagok, illetve a tömörített archívumokban, vagy bin állományokból futtatható bináris programok.
És ennél a telepítési részletnél három lényeges dologra hívnám fel a laikusok figyelmét! Összevetve a Debian vonallal:
- Az RPM csomag, és csomagkezelő motor által felkínált csomaglista áttekinthetősége (feljebb), és a lejjebb látható képen az Ubuntu (Debian, LinuxMint káosz) telepítő által kínált információk közti különbségeket
- A blackPanther OS-re majd miden esetben jellemző egyediséget is tükröző csomagméretbeli (265MB) különbségeket az alább látható Ubuntu telepítés méretével szemben (109MB).
- Az összmennyiség tömörítési arányára! Ez rendszer szinten óriási méret különbség amiben a Debian alapú rendszerek messze lemaradnak.

Ebből is láthatod, hogy a blackPanther OS alapprogramjai mennyivel több szolgáltatást, kényelmet és lehetőséget biztosítanak számodra.
A megosztott (shared library) felépítés hátránya, hogy egy olyan kompones cseréje amely fontos összetevőket biztosít, a teljes rendszer működésére kihathat. Ezért sok esetben nem lehet „bűntelenül csak úgy” kiemelni egyetlen library-t vagy akár háttérprogramot sem. Persze van minimális tolerancia a programok tekintetében, de hozzáértés nélkül rendszer-állományokat piszkálni, rendszer-összeomláshoz vezet.
Firefox: forrásból -> binárist tartalmazó, telepíthető RPM csomaggá
Egy óra egy percben!
Hegyjegyzés: Ez a tudásanyag nem parancsokról, parancs nevekről, főleg nem ‘alias’-ról szól, hanem arról, hogy a rendszerbe hogyan illeszkednek a programok, hogy áll össze egy disztribúció, és hogy tartható kézben a rendszered! Ha ezt nem tudod értelmezni, számodra az alábbi oldalt tudom javasolni: Alapok
Hozzászólások lezárva