はい。それらを取り除くと(モジュールを必要なものだけをコンパイル/作成します)、カーネルを圧縮します(サイズを最適化します)...非常に小さなカーネルになります。ターゲットシステム用に、さらに小さいものを作成できます。私は自分の PC を知っているように、自分のものを知っています。ということで、必要なものだけまとめます。私自身の SATA ドライバー、USB 用のドライバーなどのように。他には何もありません。ウェブカメラも、古い IDE ドライブも、何もありません。
また、あなたが遭遇するより大きなものは、カーネル全体です(これは決して使用する必要はありません)。デスクトップのものでさえ、(ほとんどの場合、モジュールとして)多くの不要なものが含まれています。しかし、初心者は、プラグインするすべての種類のハードウェアが正常に機能することを期待しています。
(モジュールは必要になるまでロードされないことに注意してください。3 つの状態があります。
[ ]
- コンパイルされず、カーネルの一部になりません。
[M]
- モジュールとしてコンパイルされます。
(modprobe するか、必要なときにシステムが自動ロードします。
システム、ユーザーランドに依存します。)
[X]
- カーネルにコンパイルされ、常に存在します。
小さなカーネルのディストリビューション:
- Tiny Core Linux、Micro Core Linux、12MB Linux GUI デスクトップ、ライブ、質素、拡張可能
- Puppy Linux コミュニティ ホーム - はじめに
Tom's Root-Boot、MuLinux、Diet-router、(現在は廃止された) LOAF などの初期の Linux ディストリビューションや、現在は廃止された他の多くのディストリビューションはすべて、1 枚または 2 枚の 1.44 MB ディスケットで動作する Linux システムに適合します。
Linux カーネルは大きくなりましたが、モジュラーです。カーネル モジュールは必要に応じてロードされます。したがって、フットプリントが非常に小さい Linux ディストリビューションを作成することは依然として可能です。
参照:カーネル サイズ チューニング ガイド - eLinux.org
Linux_tiny.pdf を読むと、これが表示されます
- 歴史的な 0.99pl15 カーネル:Slackware 1.1.2、1994:301K
- Fedora コア 2:1.2M
- SuSE 9.1:1.5M
- 2.6.5-tiny1 テスト構成:IDE、ext2、TCP、NIC:363K
デフォルトのカーネル構成は、できるだけ多くのハードウェアをサポートするように構成されています。デフォルト構成のストリップされていないカーネルは、1897996 kB のサイズになりました (カーネル + モジュールを含む)。多くの不要なドライバーとオプションを取り除くと (Clevo ノートブックを所有しているのに、なぜ HP モジュールが必要になるのでしょうか)、892892 kB のサイズになりました。これは、ストック カーネルと比較して 53% のサイズ削減です。
カーネル モジュールをインストールするときは、INSTALL_MOD_STRIP=1
を追加します。 オプション。これにより、すべてのデバッグ シンボルが取り除かれ、サイズが 92% 縮小されます (892892 kB から 69356 kB に)。これはインストールされるモジュールにのみ影響し、カーネル (vmlinuz) 自体には影響しないことに注意してください:
make INSTALL_MOD_STRIP=1 modules_install
Documentation/kbuild/kbuild.txt から:
INSTALL_MOD_STRIP
--------------------------------------------------
INSTALL_MOD_STRIP, if defined, will cause modules to be
stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
the default option --strip-debug will be used. Otherwise,
INSTALL_MOD_STRIP value will be used as the options to the strip command.