なぜtarではなくcpioなのですか?
この決定は2001年12月に行われました。議論はここから始まりました。
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
そして、ここから始めて、2番目のスレッド(具体的にはtarとcpioで)を生成しました。
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
(上記のスレッドを読むのに代わるものではない)迅速で汚い要約バージョンは次のとおりです。
1)cpioは標準です。それは(AT&Tの時代から)数十年前のものであり、すでにLinuxで広く使用されています(RPM内、Red Hatのデバイスドライバーディスク)。これは、1996年のLinux Journalに関する記事です。
http://www.linuxjournal.com/article/1213
従来のcpioコマンドラインツールは_truly_hideous_コマンドライン引数を必要とするため、tarほど一般的ではありません。しかし、これはアーカイブ形式については何の意味もありません。次のような代替ツールがあります。
http://freecode.com/projects/afio
2)カーネルによって選択されたcpioアーカイブ形式は、(文字通り数十の)さまざまなtarアーカイブ形式のどれよりもシンプルでクリーンです(したがって、作成と解析が簡単です)。完全なinitramfsアーカイブ形式はbuffer-format.txtで説明され、usr / gen_init_cpio.cで作成され、init / initramfs.cで抽出されます。3つすべてを合わせると、人間が読めるテキストの合計は26k未満になります。
3)tarで標準化するGNUプロジェクトは、zipで標準化するWindowsとほぼ同じくらい関連性があります。Linuxもどちらにも含まれておらず、独自の技術的な決定を自由に行うことができます。
4)これはカーネルの内部形式であるため、
まったく新しいものである可能性があります。カーネルは、とにかくこのフォーマットを作成および抽出するための独自のツールを提供します。既存の標準を使用することが望ましいですが、必須ではありません。
5)Al Viroが決定しました(引用:「tarは地獄のように醜く、カーネル側ではサポートされません」):
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コードを設計および実装したことです。