टार के बजाय cpio क्यों?
यह निर्णय दिसंबर, 2001 में वापस किया गया था। चर्चा यहाँ शुरू हुई:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
और दूसरा सूत्र (विशेष रूप से टार बनाम cpio पर) शुरू किया, यहाँ से शुरू होता है:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
त्वरित और गंदा सारांश संस्करण (जो उपरोक्त सूत्र पढ़ने के लिए कोई विकल्प नहीं है):
1) cpio एक मानक है। यह दशकों पुराना है (एटीएंडटी दिनों से), और पहले से ही व्यापक रूप से लिनक्स पर इस्तेमाल किया जाता है (आरपीएम के अंदर, Red Hat का डिवाइस ड्राइवर डिस्क)। यहाँ 1996 से इसके बारे में लिनक्स जर्नल लेख है:
http://www.linuxjournal.com/article/1213
यह टार के रूप में लोकप्रिय नहीं है क्योंकि पारंपरिक cpio कमांड लाइन टूल के लिए _truly_hideous_ कमांड लाइन तर्कों की आवश्यकता होती है। लेकिन यह कहता है कि संग्रह प्रारूप के बारे में कुछ भी नहीं है, और वैकल्पिक उपकरण हैं, जैसे:
http://freecode.com/projects/afio
2) कर्नेल द्वारा चुना गया cpio आर्काइव फॉर्मेट सरल है और क्लीनर (और इस प्रकार बनाना और पार्स करना आसान है) विभिन्न टार आर्काइव फॉर्मेट्स में से किसी भी (शाब्दिक दर्जनों) से अधिक है। संपूर्ण initramfs संग्रह प्रारूप को usr / gen_init_cpio.c में बनाया गया, और init / initramfs.c में निकाला गया बफर-format.txt में समझाया गया है। तीनों एक साथ मानव-पठनीय पाठ के कुल 26k से कम आते हैं।
3) टर्न पर मानकीकरण वाला GNU प्रोजेक्ट लगभग उतना ही प्रासंगिक है जितना कि ज़िप पर विंडोज मानकीकरण। लिनक्स या तो हिस्सा नहीं है, और अपने स्वयं के तकनीकी निर्णय लेने के लिए स्वतंत्र है।
4) चूंकि यह एक कर्नेल आंतरिक स्वरूप है, यह आसानी से
कुछ नया हो सकता है । कर्नेल वैसे भी इस प्रारूप को बनाने और निकालने के लिए अपने स्वयं के उपकरण प्रदान करता है। मौजूदा मानक का उपयोग करना बेहतर था, लेकिन आवश्यक नहीं।
5) अल विरो ने निर्णय लिया (उद्धरण: "टार बदसूरत नरक के रूप में है और कर्नेल पक्ष पर समर्थित नहीं होने जा रहा है"):
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
उसका तर्क समझाया:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
और, सबसे महत्वपूर्ण, initramfs कोड को डिज़ाइन और कार्यान्वित करना।