Kenapa cpio daripada tar?
Keputusan ini dibuat kembali pada bulan Desember 2001. Diskusi dimulai di sini:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
Dan menelurkan utas kedua (khusus pada tar vs cpio), mulai di sini:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
Versi ringkasan cepat dan kotor (yang bukan pengganti untuk membaca utas di atas) adalah:
1) cpio adalah standar. Sudah puluhan tahun (dari masa AT&T), dan sudah banyak digunakan di Linux (di dalam RPM, disk driver perangkat Red Hat). Ini artikel Linux Journal tentang hal itu mulai tahun 1996:
http://www.linuxjournal.com/article/1213
Ini tidak sepopuler tar karena alat baris perintah cpio tradisional memerlukan argumen baris perintah _truly_hideous_. Tapi itu tidak mengatakan apa-apa tentang format arsip, dan ada alat alternatif, seperti:
http://freecode.com/projects/afio
2) Format arsip cpio yang dipilih oleh kernel lebih sederhana dan lebih bersih (dan dengan demikian lebih mudah untuk dibuat dan diurai) dibandingkan dengan salah satu dari berbagai format arsip tar. Format arsip initramfs lengkap dijelaskan dalam buffer-format.txt, dibuat di usr / gen_init_cpio.c, dan diekstraksi di init / initramfs.c. Ketiganya memiliki total kurang dari 26 ribu teks yang dapat dibaca manusia.
3) Proyek GNU standardisasi pada tar kira-kira sama relevannya dengan standardisasi Windows pada zip. Linux juga bukan bagian dari keduanya, dan bebas untuk membuat keputusan teknis sendiri.
4) Karena ini adalah format internal kernel, itu bisa dengan mudah menjadi
sesuatu yang baru. Kernel menyediakan alatnya sendiri untuk membuat dan mengekstrak format ini. Menggunakan standar yang ada lebih disukai, tetapi tidak penting.
5) Al Viro membuat keputusan (kutipan: "tar jelek sekali dan tidak akan didukung di sisi kernel"):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
menjelaskan alasannya:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
dan, yang paling penting, merancang dan mengimplementasikan kode initramfs.