Twoja wyszukiwarka

ALEKSY BARTNIK
JPEG, ZIP, UUE ETC...
Wiedza i Życie nr 4/1996
Artykuł pochodzi z "Wiedzy i Życia" nr 4/1996

Żeglując po sieci, często natykamy się na pliki, których typ nie jest nam znany. Ten artykuł ma pomóc w ich rozpoznawaniu. Jak pamiętamy, pliki mają nazwy, a po jej części głównej występuje często kropka i rozszerzenie nazwy, tj. krótki, zazwyczaj trójliterowy skrót, informujący o typie pliku. Możemy nadawać nazwom plików dowolne rozszerzenia, ale warto trzymać się ustalonych zwyczajów. Ponieważ większość Czytelników dysponuje komputerami klasy PC, zakładam, iż właśnie na taki komputer trafią docelowo ściągane pliki. Ich rozszerzenia w systemie Unix mogą być bardziej skomplikowane, jednak najczęściej pliki dla MS-DOS mają rozszerzenia zrozumiałe dla DOS. Pliki, z którymi mamy do czynienia to najczęściej:

  • teksty do czytania; standardowymi rozszerzeniami są: TXT (tekst), DOC (dokumentacja) lub brak rozszerzenia, nazwa sugeruje, że jest to informacja do czytania, np. INDEX (spis programów w danym podkatalogu) lub README (tj. czytaj mnie);

  • programy w wersji źródłowej, np. w języku C++, Fortranie lub Pascalu; każdy, znający jakiś język programowania niechybnie rozpozna "swoje"pliki, np. dla C i C++ rozszerzenie to C (sam kod) i H (prototypy), dla Fortranu - F lub FOR etc.;

  • programy w postaci wykonalnej, tj. takie, których można użyć bezpośrednio na naszym komputerze, dla DOS to oczywiście - COM i EXE;

  • pliki "ścieśnione", tj. zakodowane tak, aby zajmować możliwie mało miejsca na dysku;

  • grafika - rysunki i obrazy;

  • dźwięk;

  • animacje - obrazy ruchome;

  • tzw. pliki hipertekstowe dla World Wide Web (napiszę o tym w jednym z następnych odcinków), typowe rozszerzenie to HTML (Unix) lub HTM (DOS);

  • pliki, nie zawierające czystego tekstu angielskiego, zakodowane tak, aby można je było przesłać pocztą elektroniczną.

OBRAZ I DŹWIĘK

Prawie każdy program graficzny, a nawet edytor tekstu, ma swój własny "format"plików zawierających obrazy, tzn. zapisuje je specjalnym kodem. W Internecie spotkamy jednak w zasadzie tylko dwa typy plików graficznych - JPG (DOS) lub JPEG (Unix) i GIF. Czasami znajdziemy też pliki graficzne dla Windows, o rozszerzeniu nazwy BMP. Pliki te (rozszerzenie ich nazwy jest skrótem od bit map, co w żargonie komputerowym znaczy mapa bitowa, po polsku zaś rysunek rastrowy) są na ogół bardzo duże. Zapisuje się w nich po prostu kolor każdego punktu na ekranie - stąd nazwa. Ponieważ ekran ma dziś rozdzielczość przynajmniej 640 na 480 punktów, pliki te są duże. Zaletą ich jest tu szybkość odtwarzania ich na ekranie - nie ma żadnego kodowania.

JPEG (JPG) jest standardem wprowadzonym przez komitet ekspertów - Joint Photographics Experts Group. Obraz zakodowano bardzo wydajnie, z wykorzystaniem całej wiedzy o właściwościach ludzkiego oka (np. drobne szczegóły pozbawione są informacji o kolorze, gdyż człowiek i tak tego nie zauważy). Technika ta staje się coraz bardziej popularna w Internecie, gdyż obrazy typu JPG zajmują znacznie mniej miejsca niż kodowane techniką GIF. Jednak kodowanie to pociąga za sobą pewną stratę jakości. Koduje się w tej technice obrazy, podając tzw. czynnik jakości - im wyższy, tym wierniej da się obraz odtworzyć, jednak plik będzie większy. Czynnik jakości wyraża się liczbą z zakresu1-100; najczęściej stosuje się 55. Czynnik jakości poniżej tej wielkości prowadzi do zauważalnej straty jakości grafiki.

Dźwięk i ruchome obrazy należą raczej do domeny World Wide Web - wymagają do przesyłania szerokiego pasma, gdyż odpowiadające im pliki są naprawdę duże - typowe mają wiele megabajtów. Wspomnijmy tylko, że dla dźwięku popularnym formatem są pliki z rozszerzeniem nazwy WAV, a dla ruchomych obrazów -MPEG, AVI, DL i FLI. Przeglądarki do tych plików zdobędziemy z łatwością przez ftp z jakiejś ogólnodostępnej składnicy programów, na przykład wuarchive.wustl.edu albo ftp.funet.fi.

KOMPRESJA PLIKÓW

Na ogół w pliku jest wiele informacji, które się powtarzają, lub można je zapisać w krótszy sposób. Na przykład w obrazie może być duża powierzchnia o tym samym kolorze, (tj. długi ciąg tych samych liczb, zakładając format BMP), a w pliku programu możemy mieć duże tablice wypełnione samymi zerami. Tekst także zawiera dużo nadmiarowej informacji. Opracowano więc algorytmy, które są w stanie "ścieśnić" dany zbiór, w zależności od ilości nadmiarowej informacji, którą on zawiera. Programy i teksty można ścieśnić nawet dwukrotnie i więcej; w przypadku obrazów typu GIF lub JPG zysku nie będzie - one już zostały "ścieśnione".

Istnieje wiele różnych programów do kompresji, a każdy z nich przypisuje nazwom "ścieśnionych" plików własne rozszerzenia. Do najpopularniejszych należą programy, których plik wynikowy ma rozszerzenie ARC lub ZIP. W Internecie najczęściej spotykamy pliki typu ZIP. Inne spotykane rozszerzenia to: ARJ, LZH, ZOO. W systemie Unix stosuje się także tar i Z, często nawet równocześnie np. Mathwav.tar.Z. "Ścieśniony" plik może zawierać w sobie wiele plików, na przykład cały katalog (można także uwzględnić podkatalogi).

Jak odtwarzać i ścieśniać zbiory - wyjaśnię na przykładzie kompresji ZIP. Plik, który ściągnęliśmy np. przez ftp (pamiętajmy o opcji bin), niech nazywa się MALY.ZIP - odtworzenie zawartych w nim plików robimy następująco (wytłuszczone teksty to polecenia systemowe, których należy użyć); zakładam przy tym, że w katalogu głównym komputera istnieje podkatalog o nazwie TEMP, który jest "sceną naszego dramatu". Oczywiście, nazwa ta może być dowolna. Proszę się także nie przejmować słowem ALEK; tak po prostu sam nazwałem dysk twardy własnego komputera.

C:\TEMP DIR

(sprawdzam, co mam na dysku) ...i widzę na ekranie tekst następujący:

Volume in drive C is ALEK

Volume Serial Number is 1ED0-9441

Directory of C:\TEMP

. DIR 02-13-96 12:24a

.. DIR 02-13-96 12:24a

T 0 02-14-96 6:16p

MALY ZIP 15,227 02-14-96 5:51p

4 file(s) 15,227 bytes

15,351,808 bytes free

Znów wydaję polecenie komputerowi...

C:\TEMP PKUNZIP MALY.ZIP

(to jest polecenie rozpakowania zbioru MALY.ZIP)

Na ekranie mam tekst:

PKUNZIP (R) FAST! Extract Utility Version 2.04g

02-01-93

Copr. 1989-1993 PKWARE Inc. All Rights Reserved.

Shareware Version

PKUNZIP Reg. U.S. Pat. and Tm. Off.

80386 CPU detected.

XMS version 2.00 detected.

DPMI version 0.90 detected.

Searching ZIP: MALY.ZIP

Exploding: PROG.EXE

Wprowadzam kolejne polecenie...

C:\TEMP DIR

(ponownie sprawdzam, co mam na dysku) ...by zobaczyć:

Volume in drive C is ALEK

Volume Serial Number is 1ED0-9441

Directory of C:\TEMP

. DIR 02-13-96 12:24a

.. DIR 02-13-96 12:24a

T 676 02-14-96 6:16p

PROG EXE 23,296 06-19-95 1 2:45p

MALY ZIP 15,227 02-14-96 5:51p

5 file(s) 39,199 bytes

15,327,232 bytes free

Pojawił się plik PROG.EXE, który był "ścieśniony" w pliku MALY.ZIP. Zwróćmy uwagę, że plik MALY.ZIP jest rzeczywiście krótszy. Niektóre programy obsługi systemu, np. nowsze wersje Nortona Commandera, potrafią podać zawartość pliku "ścieśnionego". Podobnie sami możemy poddać plik kompresji:

C:\TEMP DIR

(sprawdzam, co mam w katalogu, usunąłem wszystko, oprócz PROG.EXE)

Volume in drive C is ALEK

Volume Serial Number is 1ED0-9441

Directory of C:\TEMP

. DIR 02-13-96 12:24a

.. DIR 02-13-96 12:24a

PROG EXE 23,296 06-19-95 12:45p

4 file(s) 23,296 bytes

23,740,416 bytes free

C:\TEMP PKZIP MALY.ZIP PROG.EXE

(tu właśnie robię kompresję)

PKZIP (tm) FAST! Create/Update Utility Version 1.01

07-21-89

Copyright 1989 PKWARE Inc. All Rights Reserved.

PKZIP/h for help

Creating ZIP: MALY.ZIP

Adding: PROG.EXE imploding (36%), done.

C:\TEMP DIR

(sprawdzam wynik mojej działalności)

Volume in drive C is ALEK

Volume Serial Number is 1ED0-9441

Directory of C:\TEMP

. DIR 02-13-96 12:24a

.. DIR 02-13-96 12:24a

PROG EXE 23,296 06-19-95 12:45p

MALY ZIP 15,227 02-14-96 5:48p

4 file(s) 38,533 bytes

23,724,533 bytes free

Programy pkzip i pkunzip i inne "ścieśniacze" znajdujemy w każdej składnicy programów, w podkatalogach, które nazywają się "arcers"(od pierwszego programu do kompresji - arc), "packers" (ścieśniacze) lub podobnie.

Na koniec ważne ostrzeżenie: programy ściągane z sieci mogą zawierać wirusy (mimo że składnice programów dokładają wysiłków, aby je wytrzebić), toteż każdy nowy program po rozpakowaniu należy sprawdzić programem antywirusowym (znajdziemy wiele tych programów w katalogu VIRUS).

PROGRAMY POCZTĄ ELEKTRONICZNĄ

Poczta elektroniczna miała, w zamyśle twórców, służyć wyłącznie do korespondencji między użytkownikami. Zakładano więc, że tekst będzie zawierał tylko litery angielskie; inne znaki traktowano więc jako znaki kontrolne, które mogły np. być usunięte lub podmienione. Nie chciano także, aby poczty używać do przesyłania programów, obrazów lub innych plików, które mogłyby być długie, a także nieczytelne dla nadzorców sieci. Jednak pomysłowość hackerów szybko zaowocowała sposobem obejścia tego ograniczenia.

Napisano program Uuencode, który bierze dowolny plik i koduje opisaną w ramce techniką wszystkie bajty. Wynik jest zapisywany zawsze tak: każda linijka tekstu zaczyna się od litery M, a po niej następuje 79 znaków, kodujących wyjściowy plik. Osiemdziesiąt znaków w linijce to też zabezpieczenie- niektóre systemy poczty elektronicznej wstawiały znaki nowej linii do linijek zawierających więcej niż 80 znaków. Plik zaopatrzony jest w odpowiedni nagłówek i zakończenie (można to odczytać poniżej z obrazu, na którym przedstawiam rzeczywistą strukturę pliku MALY.ZIP po zakodowaniu). Gdy zakodowany plik jest zbyt długi (więcej niż 64 kilobajty), program dzieli go na wiele plików, które podczs odkodowywania są łączone z powrotem w jedną całość. Tak spreparowany plik (lub pliki) przejdzie przez najbardziej nawet prymitywny (lub podejrzliwy) system poczty. Do kodowania używamy programu Uuencode, standardowym rozszerzeniem zakodowanego pliku jest UUE; poniżej koduję plik MALY.ZIP

C:\TEMP UUENCODE MALY.ZIP

(tu koduję)

UU-ENCODE 4.02 FOR PC. by Richard Marks

UUencoding file maly.zip

Encoding to file maly.uue

...

C:\TEMP DIR

(sprawdzam wynik)

Volume in drive C is ALEK

Volume Serial Number is 1ED0-9441

Directory of C:\TEMP

. DIR 02-13-96 12:24a

.. DIR 02-13-96 12:24a

MALY UUE 21,850 02-14-96 5:57p

MALY ZIP 15,227 02-14-96 5:51p

5 file(s) 38,064 bytes

19,529,728 bytes free

Zwróćmy uwagę, że plik MALY.UUE jest trochę dłuższy od oryginału, a tak on wygląda:

section 1 of uuencode 4.02 of file maly.zip by R.E.M.

begin 644 maly.zip

M4$L#!`H````&`*)ETQ[`O-L? "3L```!;```(````4%)/1RY%6$4/`!(#)!4V)

M)S@Y:GM, G6X? "08!$S3E]I;WFVH%&-`E0,@`30)L7K!YZ:L'`0*97BZ#X3EL2

...

M3YD2"1/@58)!LEBY`_`0@0QGRS6L7M4$[081@'4``U!+`0(*``H````&`*)

EYMTQ[`O-

L? "3L```!;```(````````````(`````````!04D]'+D5815!+!08`8 end

sum -r/size 61453/21347 section (from "begin" to "end")

sum -r/size 56295/15227 entire input file

Plik zakodowany odtwarzamy za pomocą programu Uudecode:

C:\TEMP DIR

(sprawdzam, co na dysku)

Volume in drive C is ALEK

Volume Serial Number is 1ED0-9441

Directory of C:\TEMP

. DIR 02-13-96 12:24a

.. DIR 02-13-96 12:24a

MALY UUE 21,850 02-14-96 8:07p

3 file(s) 21,850 bytes

14,286,848 bytes free

C:\TEMP UUDECODE MALY.UUE

(dekoduję)

UU-DECODE 4.02 FOR PC. by Richard Marks

Destination is MALY.ZIP

Decoding MALY.UUE

...

input section passed sum -r and size tests output

file passed sum -r and size tests

Completed decode of file MALY.ZIP

C:\TEMP

Techniką tą możemy przesłać dowolny plik. Często w grupach dyskusyjnych (USENET) publikuje się w ten sposób obrazy i programy. Programy Uudecode i Uuencode są powszechnie dostępne, najczęściej w katalogu UTILITIES.

O podobnych zagadnieniach przeczytasz w artykułach:
E-mail
FTP
Jak szukać programów?
Grupy dyskusyjne: Usenet
World Wide Web
Tu warto zajrzeć...
Ta wspaniała, nikomu niepotrzebna wiedza...
WWW-szukamy informacji
IRC-pogawędki w Internecie
Trwa wojna przeglądarek
Pliki i katalogi