Dlaczego CPIO zamiast smoły?
Decyzja została podjęta w grudniu 2001 roku. Dyskusja rozpoczęła się tutaj:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
I pojawił się drugi wątek (szczególnie na tar vs cpio), zaczynając tutaj:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
Szybka i brudna wersja podsumowania (która nie zastępuje czytania powyższych wątków) to:
1) CPIO jest standardem. Ma dziesiątki lat (od czasów AT&T) i jest już szeroko stosowany w systemie Linux (w RPM, dyskach ze sterownikami urządzeń Red Hata). Oto artykuł na ten temat w Linux Journal z 1996 roku:
http://www.linuxjournal.com/article/1213
Nie jest tak popularny jak tar, ponieważ tradycyjne narzędzia wiersza polecenia cpio wymagają argumentów wiersza polecenia naprawdę. Ale to nic nie mówi o formacie archiwum, a istnieją alternatywne narzędzia, takie jak:
http://freecode.com/projects/afio
2) Format archiwum CPIO wybrany przez jądro jest prostszy i czystszy (a zatem łatwiejszy do utworzenia i analizy) niż jakikolwiek z (dosłownie dziesiątek) różnych formatów archiwów tar. Pełny format archiwum initramfs wyjaśniono w pliku-buforze-format.txt, utworzonym w usr / gen_init_cpio.c i wyodrębnionym w init / initramfs.c. Wszystkie trzy razem zawierają mniej niż 26 tys. Tekstu czytelnego dla człowieka.
3) Projekt GNU standaryzujący na tar jest mniej więcej tak samo ważny jak system Windows na zipie. Linux nie jest częścią żadnego z nich i może podejmować własne decyzje techniczne.
4) Ponieważ jest to wewnętrzny format jądra, może to być
coś zupełnie nowego. Jądro zapewnia własne narzędzia do tworzenia i wyodrębniania tego formatu. Zastosowanie istniejącego standardu było lepsze, ale nie konieczne.
5) Al Viro podjął decyzję (cytat: „smoła jest brzydka jak diabli i nie będzie wspierana po stronie jądra”):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
wyjaśnił swoje rozumowanie:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
i, co najważniejsze, zaprojektował i wdrożył kod initramfs.