zlibi tarkvarakomplekt andmete tihendamiseks: Gzipi ja paljude tavapäraste tarkvaraplatvormide rollimajandus stseenide taga

TL; DR: Andmete tihendamiseks kasutatav avatud lähtekoodiga tarkvararaamatukogu zlib on nii gzipi tarkvaraprogrammi kui ka paljude laialt tunnustatud tarkvaraplatvormide, näiteks Linux, iOS ja macOS, oluline komponent. Algselt 1995. aastal välja antud tasuta lahendus on endiselt laialt levinud, koos avatud lähtekoodiga kogukonna pakutavate regulaarsete täiustustega. Edasi liikudes ütles zlibi kaaslooja Mark Adler, et fännid peaksid silma peal hoidma võimalike jõudluse täiustuste ja uute standarditega ühilduvuse osas..


Kui oleksite 1995. aastal zlibi kaasloojale Mark Adlerile öelnud, et äsja välja lastud andmete pakkimise tarkvararaamatukogu saaks 2020. aastal endiselt laialdast kasutamist, oleks ta öelnud, et oleks saanud kõvasti naerda.

“Ma oleksin teadnud, et 25 aastat hiljem on arvutid hoopis teistsugused – suuremad, kiiremad, suurema läbilaskevõimega – ja tihendamise tehnoloogiad on palju arenenumad,” rääkis Mark meile. „Ma ei saanud kuidagi arvata, et zlib oleks endiselt kasutusel. Aga see on.”

Ehkki Mark tunnistab esimesena, et mõnede kasutusjuhtude jaoks on tänapäeval saadaval paremaid tihendamistehnoloogiaid, pakuvad need kõik erinevaid kompromisse.

Mark Adleri foto ja zlibi logo

Kaasloome autor Mark Adler vaatas meile sisse sisselülituse zlibi – avatud lähtekoodiga tarkvara kogu, mida kasutatakse andmete tihendamiseks.

“Zlib elab konkreetses ruumis selle järgi, kui kaua kompresseerimiseks kulub, võrreldes sellega, kui palju tihendamist sellest välja saate ja kui kiiresti see dekompresseerub.”

Ka avatud lähtekoodiga tehnoloogia on tasuta, laialdaselt arvestatav ja erakordse kaasaskantavusega. Lisaks gzip-failivormingu ja tarkvararakenduse toetamisele on zlib elutähtis tarkvarakomponent ka mõnes tänapäeva tuntumas opsüsteemis, sealhulgas Linux, macOS ja iOS.

Nii Intel kui CloudFlare säilitavad üldkasutatava teegi suure jõudlusega kahvlid. Seda on kajastatud ka populaarsetes mängukonsoolides, sealhulgas PlayStation 4, Wii, Xbox One ja Xbox 360.

Täna täiendab avatud lähtekoodiga kogukond tasuta tarkvara. Siiski ütles Mark meile, et ta ootab tarkvara potentsiaalset täiustamist jõudluse täiendustega ja paremat ühilduvust uute standarditega.

Panustav avatud lähtekoodiga tihenduskood aastakümnete jaoks

Tarkvarakogu zlibi esimene avalik versioon vabastati 1. mail 1995 avatud lähtekoodiga zlibi litsentsi alusel. Kuid Mark ütles, et zlibi juured ulatuvad 1980-ndate aastate lõppu, kui ta füüsika doktorikraadi omandades läks üle IBM-i arvutilt, mis töötab MS-DOS-i, NeXT-arvutisüsteemiks. (Lõbus tõsiasi: Steve Jobs’i 1985. aastal asutatud NeXT, Inc võttis lõpuks kasutusele Apple).

“Tahtsin vanast arvutist oma NeXT-arvutisse hunniku faile üle kanda, kuid mul polnud selleks muud võimalust kui zip-failide kasutamine,” rääkis Mark. „Probleem oli selles, et NeXT-l polnud võimalust lahti pakkida. Mõtlesin, et äkki saan seda ise teha. ”

zlib loodi osana avatud lähtekoodiga vastusest patendi muredele.

Nagu selgub, võiks ta seda teha. Mark mitte ainult ei kehtestanud failide ekstraheerimiseks mingit koodi, vaid panustas selle lõpuks ka avatud lähtekoodiga projekti UnZip, mida nüüd tuntakse nimega Info-ZIP. Siis kirjutas ta UnZipile ZIP-programmi, tsementeerides veelgi sisenemist avatud lähtekoodiga maailma.

Samal ajal kirjutas Jean-loup Gailly Prantsusmaalt Info-Zipi kaasaskantava arhiivija zip tihenduskoodi. “Mõistsime, et saame kasutada Jean-loupi kompressorit ja minu dekompressorit, et pakkuda midagi paremat kui see, mis oli praegu saadaval Unixi süsteemis, mis oli sobivalt nimetatud programm, mida tuntakse kompressina,” rääkis Mark. “Nii et see, mida me tegime – pange nad kokku programmi, mida me kutsusime gzipiks.”

Jean-loup oli gzipi peamine autor, Mark aga gzipi ja UnZipi peamiste dekompressioonirutiinide autor..

Kasutusjuhtumite laiendamine & PNG-fotovormingu vormindamine

gzip vabastati 31. oktoobril 1992. 1994. aastal otsustas Unisys Corporation ootamatult jõustada oma 1983. aasta patendi graafikavahetusvormingu (GIF) failide valmistamiseks kasutatava LZW pakkimisalgoritmi jaoks, nõudes arendajatelt tasu tehnoloogia abil tarkvara valmistamise eest.

Ütlematagi selge, et avatud lähtekoodiga kogukond oli sellest teadaandest vähem vaimustatud. Mark, Jean-loup ja mitmed digitaalgraafika spetsialistid moodustasid vastuseks PNG töörühma nime.

Kasutades Jean-loupi pakkimistarkvara ja Marki dekompressioonitarkvara ning tehnoloogiat piltide tihendatavamaks muutmiseks, töötas grupp välja PNG-failivormingu. Lühend tähendab nii kaasaskantavat võrgugraafikat kui ka jultunumat PNG-d Not GIF.

PNG

Zlibi kaasloojad Mark Adler ja Jean-loup Gailly aitasid PNG-pildivormingut välja töötada.

“Me pakkusime välja GIF-i uue kadudeta alternatiivi, mis tegeles mitmete probleemidega, mitte ainult sellega, et tahtsime litsentsivaba avatud lähtekoodiga pildivormingut,” ütles Mark. “See pakkus ka läbipaistvust, värvikaardi täpsustamist ja põhjalikkust.”

Tööstuse uue formaadi kasutuselevõtu tagamiseks oli vaja rohkem kodeerimist, mille tulemusel loodi PNG lib (nüüd tuntud kui libpng) ja zlib.

“PNG lib oli tarkvara, mis konstrueeris formaadi,” ütles Mark. „See võtaks ükskõik millise sisendi, mis teil oleks, koos mitmesuguse valikulise teabega, näiteks biti sügavus, värvide arv ja läbipaistvus. See raamatukogu võimaldas teil PNG-pilte konstrueerida, PNG-pilte lahti pakkida ja muuta need töötlemata pilditeabeks. Teine raamatukogu oli zlib, mida PNG lib kasutas töötlemata pakkimiseks ja dekompressiooniks. ”

Neid raamatukogusid kirjutades mõistsid Jean-loup ja Mark, et zlibi saab rakendada palju laiemas kontekstis.

Pidevad täiustused GitHubi kogukonna kaudu

Mark ütles, et zlib pole selle loomisest peale põhjalikult muutunud, ehkki aastate jooksul on kaasaskantavust ja ühilduvust värskendatud.

“Vormingut kasutatakse muidugi paljudes kohtades: PNG-failides, HTTP-vormingus, salvestusvormingutes ja paljudes teistes protokollides, mis edastavad lihtsalt andmeid ühest kohast teise, et edastamisaega lühendada,” ütles ta. “Kuna see on tasuta ja igaüks saab seda kasutada, ei tea me täpselt, kui sageli seda kasutatakse, kuid minu esitatud küsimuste põhjal ütleksin, et seda kasutatakse väga laialdaselt.”

Mark pole alates 2017. aastast värskendust välja andnud, kuid tema sõnul on avatud lähtekoodiga kogukond teinud muudatusi nii hiljuti kui ka viimase paari nädala jooksul. Tööstushiiglased nagu Google ja IBM on aastate jooksul ka oma tarbeks parandusi teinud ning Facebook on tehnoloogia veebiserverite ja klientide jõudluse suurendamiseks teinud edusamme..

“Zlibil on ka muid alternatiive, GitHubis on ka muid soovitavate omadustega raamatukogusid,” lisas ta. „Näiteks LZ4 on kadudeta andmete tihendamise kood, mis samuti ei tihenda, kuid see tihendab ja eriti pakendab seda palju kiiremini. Või on XZ, mis põhineb 7-postiindeksil, mis võib pakkuda palju suuremat pakkimist, kuid on üldiselt palju aeglasem. ”

Uued tehnoloogiad, näiteks Zstandard, pakuvad nii paremat pakkimist kui ka kiirust.

“Võite ette kujutada, et Zlib asendatakse Zstandardi tihendusega – ja nii võib juhtuda, kuid Zlibi ja kõigi selle kasutatavate vormingute laialdase kasutamise tõttu võib uue tehnoloogia ülevõtmine pisut aega võtta,” ütles Mark.

Tulevikku: jõudluse parandamine, uute standardite lisamine

Seda on raske uskuda, kuid Marki töö andmete pakkimisruumis on vaid kõrvaline hobi. Pärast füüsika doktorikraadi omandamist California Tehnoloogiainstituudis ühendas ta jõud Hughes Aircraft kosmose- ja kommunikatsioonigrupiga, kus tegeles video tihendamise, vigade parandamise koodide ja röntgenikiirguse purunemise mõjuga satelliitkaablitele..

Pärast seda suundus ta NASA reaktiivmootorite laboratooriumisse, kus ta töötas Saturnis asuva Cassini – Huygeni uurimismissiooni juhtivinsenerina. Ta vastutas ka Mars Exploration Roveri missioonide kavandamise eest ning oli Marssi proovi tagastamise projekti missioonide ja süsteemide juhataja ning peainsener. Täna töötab ta Apple’is riistvara ja tehnoloogia arendamise alal.

“Ma ei kavatsenud kunagi töötada andmete pakkimisega, kuid tunnen kohustust projekti elus hoida,” sõnas ta.

Edasi liikudes ütles Mark, et näeb zlibi jaoks kolme võtmevaldkonda. “Esimene neist on kaasaskantavus,” ütles ta. “See on eriti kaasaskantav, kuid on olemas aegunud makefaile ja asju, mida tuleb teha CMake’i, Microsoft Visual Studio ja muude ehitamissüsteemidega, et muuta ehitamisprotsess sujuvamaks.”

Ta ütles, et zlibi jõudluse parandamiseks teatud arhitektuuridel on muude tehnoloogiate hulgas mitmeid võimalusi, kasutades monteerimisjuhiseid, CRC juhiseid ja Adler-32 kontrollsumma kiirendid. “Deflatsiooni või inflatsioonikoodi jõudluse parandamiseks on võimalik teha ja saab teha palju, kuid neid pole Zlibi põhijaotusesse integreeritud,” ütles Mark..

Samuti on võimalus lisada uusi tihendusstandardeid.

„Näiteks võiks Zstandard olla veel üks tihendusmeetod, mis on lisatud zlibile, et pakkuda paremat jõudlust, paremat tihendamist ja kiiremat kiirust. See on veel üks pikemaajalisem tegevus, mida võiks kaaluda. ”

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me