initramfsにcpioを使用するのはなぜですか?

initramfsにcpioを使用するのはなぜですか?

私は次のように自分のinitramfsを作成していますGentoo Wiki。ページはおなじみのtarandの代わりにandを使うように言います。gzipcpiogzipウィキペディアcpio2.6 カーネルの initramfs を使うとしますが、その理由は説明されません。

これは単なるコンベンションですか、それともcpioinitramfsに良いですか?それでもとtar使用できますかgzip

ベストアンサー1

引用するDocumentation/filesystems/ramfs-rootfs-initramfs.txt

なぜtarの代わりにcpioを使うのですか?

この決定は2001年12月に行われた。議論はここから始まった。

http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html

ここから始めて、2番目のスレッド(特にcpioを使用するtarで)を作成しました。

http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html

高速で汚れたサマリーバージョン(上記のスレッドを読み取るのに代わるものではありません)は次のとおりです。

1)cpioが標準です。 AT&T時代から数十年が経ち、Linux(Red HatのデバイスドライバディスクであるRPM)で広く使用されてきました。以下は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)GNUプロジェクト標準tarの関連性は、Windows標準zipの関連性とほぼ同じです。 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コードが設計され実装されていることです。

おすすめ記事