Linux OSが機能するための最低限必要なコンポーネントは何ですか。また、Linuxを学び、私の理解とニーズが高まるにつれて、拡張と改善のベースとして使用できるコンポーネントは何ですか?
ソースコードを知るようにLinuxを学ぶつもりなら、 Linuxを最初から試してみる
あなたが学びたいのなら、Gentooは良いオプションです-Gentooの最小インストールはルートシェルとパッケージマネージャーであり、あなたはそこからシステムの残りを構築します。 Gentooはまた、パッケージの上流にかなり近いままなので、いくつかのパッケージを自分でダウンロードしてビルドしたい場合でも、あまり多くの問題に遭遇することはありません(実際、それらを/etc/portage/package.providedファイルに追加できます)それらがインストールされた後、依存関係として使用してください!)
可能な限り最小のLinuxシステムを探している場合は、独自のカーネルを構築し、使用する予定のないすべてのドライバーと機能を取り除いてから、同様に最小化されたBusyboxのビルドを含むinitramfsを追加します。その結果、単一の実行可能ファイル(ブートローダーを指すことができる)で完全に起動可能なLinuxシステムとなり、試行することなく10 MB未満に収めることができます。
単一の実行可能なrootfs
絶対最小システムは、 シングルアプリケーションLinux |で説明したように、単一の/init
プログラムを実行します。スーパーユーザー
最小限のLinuxライブ
https://github.com/ivandavidov/minimal
より興味深いインタラクティブシステムの場合、これは(主に教育的な)小さなスクリプトであり、次のことを行います。
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でテスト済み。
Buildroot
以下を管理するMakefileスクリプトの大規模なセット:
最小限の例:
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をインストールする方法は?
一部の大企業で使用されているプロの戦闘テスト済みのもの。
Alpine Linux
https://github.com/gliderlabs/docker-Alpine
Webサイトからプリコンパイルされたバイナリを提供するパッケージマネージャーを備えた埋め込みディストリビューション。
も参照してください
Archlinuxは base ファイルのグループを使用して、最小限のインストールを行います。
base-devel グループに加えて、システム開発を行う場合。
Linuxシステムの最低限のものが本当に必要な場合は、ルーターなどの組み込みシステム用のディストリビューションを試してみてください。これらは通常、最小限のソフトウェアしか搭載しておらず、グラフィカルユーザーインターフェイスが一般的に欠如しているため、コマンドラインに慣れる必要があります。 1つの欠点は、それらのシステムが通常のLinuxディストリビューションの規則に違反することが多いことです。彼らは珍しい場所にソフトウェアをインストールしたり、簡素化されたinitシステムを使用します。
試してみたい場合は、たとえば、 仮想マシンでopenwrt 。
tomsrtbt について誰も言及していないのはどうしてですか? (単一の1.44インチフロッピー上のLinux)
Slackware linuxを試すことができます。メニュー方式のインストールでは、最小限のシステムをインストールできます。 manページ、X11、Tcl、Emacsは簡単に省略できます。これは、最上位レベルのインストールからのものです。インストールに飛び込んで、最小限のパッケージのみをインストールできます。
その後、インストールしたマシン専用のカーネルを再コンパイルします。
SlackwareはデフォルトでLiloブートマネージャーを使用しているため、ブートセクター、ブート可能としてマークされているパーティション、initrdに含まれる内容などについて、Grubでブートしたディストリビューションよりも、知りたいことよりも少し多く知ってしまうことになります。
私にとって、 Damn Small Linux は、「最小のLinuxディストリビューション」の名前を得ました。ただ、廃盤のようです。この wikiページ で、同様のディストリビューション(「Mini Linux」と呼ばれる)のリストも表示できます。
スペースが目的ではない場合、 Gentoo または Arch Linux をお勧めします。どちらもベースシステムをインストールします。必要に応じて、使用するパッケージを選択し、パッケージをインストールします。
Kernel.orgから最新のカーネルをダウンロードし、make menuconfig
とオプションを確認し、それを研究と調査の出発点として使用します。あなたはたくさん学ぶでしょう。
Puppy Linux を見ることができます。最小ではないかもしれませんが、小さいという評判があります。
ただし、小さくすることを意図したLinux distrtosは、一般的に小さくとどまる傾向があります。 Linuxを学ぶために、私はどこかでライブのdebianをするでしょう。 .Debianカーネルソース、bashソース、grubソースをクロスコンパイルしてインストールします。次に、エディタ、apt、gccをクロスコンパイルしてインストールします。次に、debian liveからパッケージのリストを生成します。各パッケージのソースをインストールし、コンパイルしてインストールします。次にXを追加してから、選択したWmを追加すると、実行する操作の基礎が得られます。
PS:apt-get sourceはdebianパッケージのソースを取得します。