zlib se sagtewarebiblioteek vir datakompressie: speel ‘n rol agter die skerms in Gzip en baie hoofsagtewareplatforms

TL; DR: zlib, ‘n oopbron-sagtewarebiblioteek wat gebruik word vir datakompressie, is ‘n belangrike komponent in die gzip-sagtewareprogram en baie wyd erkende sagtewareplatforms, soos Linux, iOS en macOS. Die gratis oplossing, wat aanvanklik in 1995 vrygestel is, geniet nog steeds wydverspreide gebruik, met gereelde verbeterings wat deur die open source gemeenskap voorsien word. Mark Adler, mede-skepper van zlib, het vooruit gesê dat aanhangers ‘n oog moet hou vir moontlike prestasieverbeterings en versoenbaarheid met nuwe standaarde.


As u in 1995 aan zlib mede-skepper, Mark Adler, gesê het dat die sagtewarebiblioteek vir datakompressie wat hy pas vrygestel het, in 2020 steeds wydverspreide gebruik sou geniet, sou hy gesê het dat hy baie gelag het.

“Ek sou geweet het dat rekenaars 25 jaar later heeltemal anders sou wees – groter, vinniger, hoër deurvoer – en kompressietegnologieë sou baie meer gevorderd wees,” het Mark ons ​​vertel. ‘Ek kon nie dink dat zlib steeds in gebruik sou wees nie. Maar dit is.”

Terwyl Mark die eerste een is wat erken dat daar beter kompressietegnologieë beskikbaar is vir sommige gevalle, bied hulle almal verskillende verhandelings.

Foto van Mark Adler en zlib-logo

Mede-skepper Mark Adler het ons ‘n blik op zlib gegee, ‘n open source-sagtewarebiblioteek wat gebruik word vir datakompressie.

“Zlib woon in ‘n spesifieke ruimte in terme van hoe lank dit neem om saam te druk teenoor hoeveel kompressie jy daaruit haal, en hoe vinnig dit dekomprimeer.”

Die open source-tegnologie is ook gratis, wyd beskou en spog met buitengewone oordraagbaarheid. Benewens die ondersteuning van die gzip-lêerformaat en sagtewaretoepassing, is zlib ‘n belangrike sagtewarekomponent in sommige van die bekendste bedryfstelsels van vandag, insluitend Linux, macOS en iOS..

Intel en CloudFlare handhaaf albei vurke met ‘n hoë werkverrigting in die biblioteek wat gereeld gebruik word. Dit is ook te sien in gewilde spelkonsoles, insluitend PlayStation 4, Wii, Xbox One en Xbox 360.

Die gratis sagteware word deesdae gereeld verbeter deur die open source gemeenskap. Nogtans het Mark ons ​​vertel dat hy uitsien om die sagteware moontlik te verbeter met prestasie-opgraderings en beter versoenbaarheid met nuwe standaarde.

Bydra Open Source-kompressiekode vir dekades

Die eerste openbare weergawe van die zlib-sagtewarebiblioteek is op 1 Mei 1995 vrygestel onder die open source zlib-lisensie. Maar Mark het gesê dat die wortels van zlib tot die laat 1980’s strek, toe hy van ‘n IBM-rekenaar met MS-DOS na die NeXT-rekenaarstelsel opgegradeer het terwyl hy sy doktorsgraad in fisika voltooi het. (Prettige feit: NeXT, Inc, gestig in 1985 deur Steve Jobs, is uiteindelik deur Apple opgeneem).

“Ek wou ‘n klomp lêers van my ou rekenaar na my NeXT-rekenaar oordra, maar ek het nie ‘n goeie manier gehad om dit te doen nie, behalwe om zip-lêers te gebruik,” het Mark gesê. ‘Die probleem was dat op die NeXT geen manier was om uit te pak nie. Ek het gedink, miskien is dit iets wat ek self kan doen. ”

zlib is geskep as deel van ‘n open source-reaksie op patenteraangeleenthede.

Soos dit blyk, kon hy. Nie net het Mark ‘n kode vir die onttrekking van lêers uitgekryt nie, maar hy het dit uiteindelik bygedra tot die open source-projek UnZip, nou bekend as Info-ZIP. Daarna het hy ‘n zip-program vir UnZip geskryf, wat sy toetrede tot die open source wêreld verder beklemtoon het.

Terselfdertyd het Jean-loup Gailly van Frankryk die kompressiekode van Info-Zip se draagbare argiver, zip geskryf. “Ons het besef dat ons die kompressor van Jean-loup en my dekompressor kan gebruik om iets beter te voorsien as wat tans beskikbaar is in die Unix-stelsel, wat ‘n toepaslike program genoem is, kompres, sê Mark. ‘Dit is wat ons gedoen het – sit dit saam in ‘n program wat ons gzip genoem het.’

Jean-loup was die primêre outeur van gzip, terwyl Mark gedien het as die skrywer van gzip’s en UnZip se belangrikste dekompressie-roetines.

Gebruiksgevalle uit te brei & Formasie van die PNG-fotoformaat

gzip is op 31 Oktober 1992 vrygestel. In 1994 het Unisys Corporation onverwags besluit om sy patent van 1983 op die LZW-kompressie-algoritme af te dwing, wat gebruik word om GIF-lêers (Graphics Interchange Format) te maak, deur ontwikkelaars ‘n fooi te hef vir die maak van sagteware met behulp van die tegnologie.

Nodeloos om te sê, die open source-gemeenskap was minder as opgewonde oor hierdie aankondiging. In antwoord hierop het Mark, Jean-loup en verskeie digitale grafiese spesialiste gevorm wat bekend sou staan ​​as die PNG Working Group.

Met behulp van Jean-loup se kompressiesagteware en Mark se dekompressie-sagteware, plus tegnologie om beelde gemakliker te maak vir kompressie, het die groep die PNG-lêerformaat ontwikkel. Die akroniem staan ​​vir Portable Network Graphics sowel as die meer blatante PNG’s Not GIF.

PNG

Die mede-skeppers van Zlib, Mark Adler en Jean-loup Gailly, het gehelp om die PNG-beeldformaat te ontwikkel.

“Ons het met ‘n nuwe verlieslose alternatief vir GIF vorendag gekom wat veelvuldige kwessies aangespreek het, nie net die feit dat ons ‘n lisensievrye open-source beeldformaat wou hê nie, ‘het Mark gesê. “Dit het ook deursigtigheid, kleurkaart-spesifikasies en meer diepte verskaf.”

Om te verseker dat die bedryf die nuwe formaat kan aanneem, is meer kodering nodig, wat gelei het tot die skepping van PNG lib (nou bekend as libpng) en zlib.

“PNG lib was sagteware wat die formaat kon konstrueer,” het Mark gesê. ‘Dit sal u insette neem wat u gehad het, met verskillende opsionele inligting, soos dieptediepte, aantal kleure en deursigtigheid. Met daardie biblioteek kon u PNG-beelde konstrueer, PNG-beelde dekomprimeer en dit weer verander na rou beeldinligting. Die ander biblioteek was zlib, wat deur PNG lib gebruik is vir rou kompressie en dekompressie. ”

Tydens die skryf van hierdie biblioteke besef Jean-loup en Mark dat veral zlib in ‘n baie breër konteks toegepas kan word.

Deurlopende verbeterings via die GitHub-gemeenskap

Mark het aan ons gesê zlib het sedert die ontstaan ​​daarvan nie fundamenteel verander nie, hoewel daar oor die jare heen bywerkings- en verenigbaarheidsopdaterings was.

‘Die formaat word natuurlik op baie plekke gebruik: in PNG-lêers, HTTP, bergingsformate en in baie ander protokolle wat data eenvoudig van een plek na ‘n ander oordra om die oordragtyd te verminder,’ het hy gesê. ‘Aangesien dit gratis is en almal dit kan gebruik, weet ons nie presies hoe gereeld dit gebruik word nie, maar op grond van die vrae wat ek kry, sou ek sê dat dit baie wyd gebruik word.’

Mark het nie ‘n opdatering sedert 2017 vrygestel nie, maar hy het gesê dat die oopbron-gemeenskap so onlangs soos in die afgelope paar weke veranderings aangebring het. Bedryfsreuse soos Google en IBM het ook deur die jare verbeter vir eie gebruik, en Facebook het vordering gemaak met die tegnologie om die werkverrigting op die webbedieners en -kliënte van die onderneming te verhoog..

‘Daar is ander alternatiewe vir zlib, ander biblioteke op GitHub met wenslike eienskappe,’ het hy bygevoeg. ‘Byvoorbeeld, LZ4 is ‘n verlieslose datakompressie-kode wat nie so goed saamgepers nie, maar dit baie vinniger saamdruk en veral dekomprimeer. Of daar is XZ, gebaseer op ‘n 7-poskode, wat baie hoër kompressie kan lewer, maar oor die algemeen baie stadiger is. ”

Nuwe tegnologieë, soos Zstandard, bied ‘n beter kompressie en spoed.

‘Jy kan jou voorstel dat Zlib vervang word deur die Zstandard-kompressie – en dit kan wel gebeur, maar as gevolg van die wydverspreide gebruik van Zlib en al die formate waarin dit gebruik word, kan dit ‘n rukkie duur voordat nuwe tegnologie oorneem,’ merk Mark.

Te kom: verbeterings in prestasies, met nuwe standaarde

Dit is moeilik om te glo, maar Mark se werk in die datakompressieruimte is net ‘n newe-stokperdjie. Nadat hy sy doktorsgraad in fisika aan die Kaliforniese Instituut vir Tegnologie verwerf het, het hy saamgewerk met die Space and Communications Group by Hughes Aircraft, waar hy aan videokompressie gewerk het, kodes vir foutkorrigeer en die gevolge van X-straal-uitbarstings op satellietkabels.

Daarna is hy op pad na die Jet Propulsion Laboratory van NASA, waar hy as Lead Mission Engineer gewerk het op die Cassini – Huygens-navorsingsmissie na Saturnus. Hy was ook verantwoordelik vir die beplanning van die Mars Exploration Rover-missies en het gedien as missie- en stelselbestuurder en hoofingenieur vir die Mars Sample Return-projek. Vandag werk hy aan die ontwikkeling van hardeware en tegnologie by Apple.

“Ek het nooit van plan was om in datakompressie te werk nie, maar ek voel ‘n verpligting om die projek aan die lewe te hou,” het hy gesê.

Mark vorentoe het gesê dat hy drie sleutelareas van verbetering vir zlib sien. ‘Die eerste een is oordraagbaarheid,’ het hy gesê. “Dit is buitengewoon draagbaar, maar daar is verouderde makefiles en dinge wat gedoen moet word met CMake, Microsoft Visual Studio en ander build-stelsels om die bouproses meer naatloos te maak.”

Hy het gesê dat daar verskeie moontlikhede is om die prestasie van zlib op sekere argitekture te verbeter deur gebruik te maak van monteerinstruksies, CRC-instruksies en versnellers vir die Adler-32-kontrolesom, onder andere tegnologieë. ‘Daar is baie dinge wat gedoen en gedoen kan word om die deflasie- of inflasiekode se prestasie te verbeter, maar dit is nie by die belangrikste Zlib-verspreiding geïntegreer nie,’ het Mark gesê.

Daar is ook die moontlikheid om nuwe kompressiestandaarde in te sluit.

‘Zstandard kan byvoorbeeld ‘n ander kompressie-metode wees wat by zlib gevoeg word om ‘n beter werkverrigting, beter kompressie, vinniger te lewer. Dit is nog ‘n langtermyn-aksie wat oorweeg kan word. ”

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map