Linuxオペレーティングシステムが動作するために必要な最小限のコンポーネントは何ですか?Linuxを学び、理解とニーズが高まるにつれて、拡張と改善の基盤として使用できますか?
答え1
ソースコードを知っているようにLinuxを学びたい場合は、試してみることもできます。最初からLinux
答え2
単一実行可能 rootfs
/init
私がしたように、プログラムを実行するための最小限のシステムシングルアプリケーションLinuxスーパーユーザー|
最小Linuxライブ
https://github.com/ivandavidov/minimal
より興味深いインタラクティブなシステムのために、以下の(主に教育的な)小さなスクリプトがあります。
- カーネルとビジボックスのソースコードをダウンロード
- コンパイル
- これを使用して起動可能な8Mb ISOを生成します。
これにより、ISOはbusyboxのある最小限のシェルに残ります。
QEMUを使用すると、システムから簡単に起動できます。
カーネルソースディレクトリで実行できるように修正しました。https://github.com/cirosantilli/runlinux
使用法:
git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh
次に、新しい最小システムを使用してQEMUウィンドウに入ります。素晴らしい。
サイズが小さいので、ソースコードを読み、何が起こっているのかを理解するのに最適なオプションです。
Ubuntu 16.04でテストされました。
ルート構築
管理のための多数のMakefileスクリプト:
- GCCクロスコンパイルツールチェーン
- カーネルのコンパイル
- ブートローダのコンパイル
- rootfsの生成
- ソースツリーには、GTKなどの複雑なアイテムを含む多数のパッケージのダウンロード/ビルドレシピがあります。依存システムがあります。
最小限の例:
git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.
X11を最初から構築する方法も提供します。私のLinux BuildrootシステムにX11をインストールする方法
一部の大企業で使用され、専門的にテストされています。
ヨクト
https://en.wikipedia.org/wiki/Yocto_Project
Buildrootの目標と非常に似ていますが、長所と短所は不明です。ちょっと見てみると、何と呼びたいかによって、より膨らんで機能が豊富な感じがします。彼らの台本はもう少し健全かもしれません。
ニックOS
もう一つはBuildrootに非常に似ているようですが、これは本当に強力なパッケージ記述形式を持っています!また、複数のバージョンのライブラリの同時インストールをサポートすることに焦点を当てているようです。
2020年に最後に確認されたとき、QEMUでクロスコンパイル+実行機能が素晴らしく、Buildrootの焦点でした。しかし、まだ非常に有望なプロジェクトです。
アルパインLinux
https://github.com/gliderlabs/docker-alpine
Webサイトでプリコンパイルされたバイナリを提供するパッケージマネージャを含むディストリビューション。
また、見ることができます
答え3
Linuxシステムの最小限のものしか必要としない場合は、ルーターなどの組み込みシステム用のディストリビューションを試すことができます。一般的に、最小限のソフトウェアのみを搭載し、グラフィカルユーザーインターフェイスが不足していることが多く、コマンドラインに慣れている必要があります。 1つの欠点は、これらのシステムが一般的ではない場所にソフトウェアをインストールしたり、単純化された初期化システムを使用するなどの方法で一般的なLinuxディストリビューションの規則を破ることが多いことです。
試してみたい場合は、次のようにしてみてください。仮想マシンのopenwrt。