GNU C függvénykönyvtár 2.34 – megérkezett az Y2K38 bug javítása a legacy ABI -hoz

Megérkezett a GNU C függvénykönyvtárba az Y2K38 bug javítása a legacy ABI -hoz, ami sokunk számára igazán örvendetes hír, de mit is jelent ez egészen pontosan ?
Aki esetleg nem tudja miről van szó, a világvége rövid leírása: https://skamilinux.hu/y2038-az-uj-armageddon/

A megoldás kidolgozása, itt még nem voltak konkrétumok, csak előkészület: https://skamilinux.hu/kernel-5-6-a-32-bites-gepek-megmentoje/

Kezdjük talán az LSB és a ABI fogalmakkal.

A linux rendszerek (hivatalosan GNU/linux) nem légből kapott ötletek, hanem olyan szabványok alapján készülnek, mint például a POSIX vagy az FHS.

A legismertebb, legnagyobb disztrók fejlesztői közösen létrehoztak egy LSB szabványt annak érdekében, hogy elősegítsék a rendszerek és az újonnan készített alkalmazások kompatibilitását.

Egyszerűbben fogalmazva, ha egy Ubuntu alatt írunk egy LSB 5.0 szabványú programot, akkor az fusson egy másik ugyanilyen szabványú ARCH, vagy RED HAT linux alatt, persze ez így azért elég sarkos leírása a dolgoknak.

Az LSB meghatározza például: a szabványos könyvtárakat (például az ld-lsb.so), számos parancsot és segédprogramot, amelyek kiterjesztik a POSIX szabványt, a fájlrendszer hierarchiájának elrendezését, a futási szinteket, a nyomtatási rendszert, beleértve az olyan spoolereket, mint a CUPS és az olyan eszközöket, mint a Foomatic, valamint az X Window System számos kiterjesztését.

Bővebben az LSB szabványról az angol nyelvű wikipédián:
https://en.wikipedia.org/wiki/Linux_Standard_Base

Az LSB hivatalos weboldala:
https://refspecs.linuxfoundation.org/lsb.shtml

Az LSB 5.0 szabvány összes leírása:
https://refspecs.linuxfoundation.org/LSB_5.0.0/allspecs.shtml

Most folgalkozzunk kicsit az ABI -val.

A linux kernel két típusú alkalmazásprogramozási  felületet (Application Programming Interface – röviden API) vagy ismertebb nevén interfészt biztosít, ami egy program vagy rendszerprogram azon eljárásainak (szolgáltatásainak) és azok használatának dokumentációja, amelyet más programok felhasználhatnak.

Az egyik a kernel-user space  API és a másik a kernel internal API.

Egy nyilvános API segítségével lehetséges egy programrendszer szolgáltatásait használni anélkül, hogy annak belső működését ismerni kellene.

Az API általában nem kötődik programozási nyelvhez, bármilyen programnyelvből lehetséges azok meghívása, amennyiben a megfelelő paramétereket a hívás biztosítja, és képes lekezelni az esetleges eredményt.

A linux kernel és a GNU C library biztosítja azt a Linux API ( kernel–user space API) -t, ami a programok lefordítása után a kész binárisok által biztosított ABI.

Bővebben az angol nyelvű ABI leírásban:
https://en.wikipedia.org/wiki/Application_binary_interface

Ez az ABI a biztosíték arra, hogy a sajátunktól eltérő , de megfelelően feltelepített rendszeren, ahol a környezet is megfelelően van beállítva és a szükséges library -k is rendelkezésre állnak, egy alkalmazásunk ugyanúgy futtatható legyen, tehát angolul portable, azaz hordozható legyen.

Na és akkor most jön a feketeleves és mindenki érteni fogja, miért akartam ekkora feneket kerítei a bevezetésnek.

A Linaro egyik mérnöke,  Adhemerval Zanella írta azt, hogy egy új  build flag,  a  _TIME_BITS  lehetővé teszti az új 64-bites időbélyegek használatát a legacy ABI -k számára, ahol a 32-bites time_t az alapértelmezett.
A teljes 64 bit támogatás csak akkor lesz ervényes, ha az LFS (_FILE_OFFSET_BITS=64) opció is be van kapcsolva.
Az alábbi eszközön is engedélyezésre került a szükséges ABI -kban: armhf, csky, hppa, i386, m68k, microblaze, mips32, mips64-n32, nios2, powerpc32, sparc32, s390-32, sh.

A funkció bekapcsolásához minimum 5.1 -es linux kernel szükséges, egyébként a 32 bites programjaink EOVERFLOW hibaüzenettel elszállhatnak.

A 64 bites time változó előkészítésre került továbbá: fstat, gettimeofday, mktime, nanosleep, select, stat, time, utime  programokban, több libc függvényben és eljárásban mint a librt és a libanl.

Tehát a régi rendszereink még egy kicsit fellélegezhetnek, persze ez sokkal nem fogja elodázni az elavult eszközök cseréjét, hiszen már napjainkban is egyre nehezebb jó 32 bites alkalmazásokat találni és ahogy azt sejteni lehet, szépen, lassan kikopnak ezek a gépek is, de azért azt ne felejtsük el, hogy rengeteg helyen, főként a termelés, gyártás, az erőművek és a hadiipar területén még rengeteg olyan eszköz található, amit nehézkes és körülményes cserélni, vagy egyszerűen csak túl drága lenne.

A GNU C library 2.34 hivatalos bejelentés és technikai részletek a téma iránt érdeklődőknek:
https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html


Továbbra is várunk mindenkit nagy szeretettel csevegő oldalunkon élőben:
https://skamilinux.hu/chat/

Aktív fórum témák:
https://skamilinux.hu/phpBB3/search.php?search_id=active_topics

Legutóbbi PuppySzoftverek:
https://sourceforge.net/p/puppyszoftver/activity


Leave a Reply

Translate »

Weboldalunk cookie-kat használ annak érdekében, hogy megkülönböztesse Önt weboldalunk többi felhasználójától. Ez segítséget nyújt számunkra, hogy weboldalunk böngészése során jobb élményt nyújthassunk Önnek, valamint az oldalunk fejlesztéséhez is hasznosak. további információ

Ha hozzájárult a cookie-k használatához, a böngésző cookie-kat tárol az Ön számítógépén vagy egyéb eszközén, hogy rendszerünk felismerje beállításait. A hozzájárulás érvényessége időnként lejár. Azonban, hogyha szeretné visszavonni hozzájárulását, a böngészője cookie beállításai között bármikor megteheti.

Bezár