ZIP

Z Wikipedii, wolnej encyklopedii
ZIP
Rozszerzenia pliku

.zip
.zipx (nowe algorytmy kompresji)

Typ MIME

application/zip

Producent

Phil Katz, PKWare

Typ

kompresja danych

Strona internetowa

ZIP – jeden z najczęściej używanych formatów kompresji bezstratnej i archiwizacji danych na platformie PC, zwłaszcza w środowisku Microsoft Windows.

Ogólne informacje[edytuj | edytuj kod]

Format ten został zaprojektowany w 1989 roku przez Phila Katza, założyciela firmy PKWare(inne języki), i wydany w formie programu PKZIP, obsługującego ten format kompresji i archiwizacji. Nazwa Zip (po ang. zamek błyskawiczny) miała na celu kojarzenie się z szybkością działania – wówczas PKZIP uchodził za najszybszy program archiwizujący. Obecnie jest to najbardziej rozpowszechniony standard wśród programów do kompresji. Ponadto, począwszy od systemu operacyjnego Windows ME, obsługa archiwów ZIP została wcielona do obsługi systemowej - archiwa ZIP są w nim rozpoznawane jako „skompresowane foldery”.

Pojedynczy plik ZIP może zawierać jeden lub więcej plików oraz folderów z opcjonalną kompresją. W obecnej wersji formatu dostępnych jest kilkanaście algorytmów kompresji, m.in. Deflate (najczęściej), bzip2, LZMA, DCL, Implode, WavPack. Format ZIP jest też używany przez wiele programów jako nośnik danych rozbitej na dużą liczbę elementów większej logicznej struktury. Za przykład takiego zbiornika danych mogą posłużyć np. dokumenty OpenOffice (*.odt, *.ods, *.odp), Office Open XML (*.docx, *.docm), archiwa JAR, dodatki do programu Firefox(inne języki) (*.xpi) czy pakiety w systemie Android (*.apk).

Do innych narzędzi umożliwiających odczyt, tworzenie oraz edycję plików ZIP należą m.in. WinZip, PicoZip, Info-ZIP, WinRAR, PeaZip, FAR manager oraz 7-zip. Ten ostatni choć ma własny macierzysty format 7z, to potrafi kompresować pliki do postaci ZIP do kilku procent wydajniej niż inne implementacje.

Historia[edytuj | edytuj kod]

W połowie lat 80., niewielka firma System Enhancement Associates prowadzona przez Thoma Hendersona stworzyła program archiwizujący o nazwie ARC. Program został wypuszczony wraz z kodem źródłowym na licencji Shareware na wiele środowisk. Format ten szybko stał się niepisanym standardem. W pewnym momencie Phil Katz opublikował program PKXARC, kompatybilny z ARC program na platformę PC, cechujący się znacznie większą szybkością działania ze względu na ręcznie zoptymalizowany (w asemblerze) kod, a drobne usprawnienie algorytmu (zmiana długości słowa używanego przez algorytm z 12 do 13 bitów) poprawiło również stopień kompresji typowych plików.

Program okazał się na tyle dobry, że naturalną reakcja SEA było wytoczenie Katzowi procesu o naruszenie praw autorskich, znaków handlowych, oraz plagiatowanie kodu. Katz przegrał proces, w wyniku czego musiał zapłacić firmie 62 500 dolarów i zmienił nazwy swoich programów na PKPAK i PKUNPAK.

Następnym krokiem podjętym przez Katza było utworzenie własnego formatu pliku, dzisiaj znanego jako ZIP. Format ZIP był bardziej odporny na utratę danych dzięki przechowywaniu katalogu pliku w kilku miejscach, jak i był również bardziej elastyczny, zapewniając dodatkowe, opcjonalne metody kompresji i/lub szyfrowania i możliwość dalszego rozwoju formatu, nie wpływając istotnie na samą jego strukturę. Program PKZIP był szybszy i wydajniejszy od oryginalnego ARC, wobec czego PKZIP szybko zyskał na popularności i ostatecznie wyparł format ARC. Katz upublicznił techniczną dokumentację formatu, od pierwszej wersji programu (w styczniu 1989). Pierwotnie dołączana jedynie do zarejestrowanych wersji, później została udostępniona na witrynie producenta.

Na początku lat 90., gdy systemy Windows zyskiwały na popularności, przydatne okazywały się różnorakie graficzne nakładki na oryginalny program PKZIP, najbardziej znaną jest WinZip – którego popularność znacznie przyćmiła opublikowanie PKZIP w wersji dla Windows (wyszedł zdecydowanie za późno). Sam WinZip, po włączeniu doń kodu stworzonego przez grupę Info-ZIP (ok. 1996 roku), stał się niezależnym, samodzielnym narzędziem archiwizującym.

Linki zewnętrzne[edytuj | edytuj kod]