Warum cpio statt teer?
Diese Entscheidung wurde bereits im Dezember 2001 getroffen. Die Diskussion begann hier:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
Und es entstand ein zweiter Thread (speziell zu tar vs cpio), der hier beginnt:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
Die schnelle und schmutzige Zusammenfassungsversion (die kein Ersatz für das Lesen der obigen Themen ist) lautet:
1) cpio ist ein Standard. Es ist Jahrzehnte alt (aus der Zeit von AT & T) und unter Linux bereits weit verbreitet (innerhalb von RPM, Red Hats Gerätetreiberdisketten). Hier ist ein Artikel aus dem Linux Journal von 1996:
http://www.linuxjournal.com/article/1213
Es ist nicht so beliebt wie tar, da die traditionellen cpio-Befehlszeilentools _truly_hideous_ Befehlszeilenargumente erfordern. Das sagt jedoch nichts über das Archivformat aus, und es gibt alternative Tools wie:
http://freecode.com/projects/afio
2) Das vom Kernel gewählte cpio-Archivformat ist einfacher und übersichtlicher (und damit einfacher zu erstellen und zu analysieren) als jedes der (buchstäblich Dutzende) verschiedenen Tar-Archivformate. Das vollständige Archivformat von initramfs wird in buffer-format.txt erläutert, in usr / gen_init_cpio.c erstellt und in init / initramfs.c extrahiert. Alle drei zusammen ergeben weniger als 26.000 lesbaren Text.
3) Das GNU-Projekt zur Standardisierung auf Teer ist ungefähr so relevant wie die Windows-Standardisierung auf Zip. Linux gehört auch nicht dazu und kann seine eigenen technischen Entscheidungen treffen.
4) Da dies ein internes Kernel-Format ist, könnte es leicht
etwas ganz Neues gewesen sein. Der Kernel bietet ohnehin eigene Tools zum Erstellen und Extrahieren dieses Formats. Die Verwendung eines vorhandenen Standards war vorzuziehen, aber nicht unbedingt erforderlich.
5) Al Viro traf die Entscheidung (Zitat: "Teer ist höllisch hässlich und wird auf der Kernelseite nicht unterstützt"):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
erklärte seine Argumentation:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
und vor allem den initramfs-Code entworfen und implementiert.