Linuxカーネルイメージを圧縮する理由と方法は何ですか? RAM内の画像を圧縮して(私が知っている限り)、解凍する必要があることは意味がありませんか?どのように圧縮できますか?メモリにバイナリマシン命令ではなく圧縮された混乱がある場合、CPUはこれをどのように実行しますか?
もう一つの問題は、圧縮画像が圧縮されていない画像よりも速いのはなぜですか?私はこのような内容を読んだか理解しました。これは本当ですか、偽ですか?
答え1
カーネルイメージは、いくつかのアーキテクチャ(i386など)の制限を解決するために圧縮されました。
特に、初期起動中に使用可能なメモリ量にカーネルを合わせることです。
最近では、UEFIと64ビットのアドレス指定のため、これらの機能はもはや「必須」ではありませんが、はい、そうです。起動速度を向上させることができます。私の圧縮されたカーネルイメージは約11MBで、圧縮しない場合は大きくなり(おそらく20MB以上)、ロードに時間がかかります。一般に、減圧速度は駆動速度より速い。ただし、PCIe 4.0 NVME ドライブでは、もはやそうではありません。
あなたの質問に答えるための追加の詳細を提供することができます。ここ
使用方法に関しては、カーネルはさまざまな圧縮アルゴリズムを使用することができ、古代のgzipはそのうちの1つですが、XZ、LZ4、Zstdもサポートしています。おそらくもっとあるようですが、思い出すリストはこの程度です。