![カーネルソースコードから最小限の起動可能なLinux(ターミナルのみを含む)を作成するには? [コピー]](https://linux33.com/image/85939/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89%E6%9C%80%E5%B0%8F%E9%99%90%E3%81%AE%E8%B5%B7%E5%8B%95%E5%8F%AF%E8%83%BD%E3%81%AALinux%EF%BC%88%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%AE%E3%81%BF%E3%82%92%E5%90%AB%E3%82%80%EF%BC%89%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
ターミナルインターフェイスと基本的なコマンド/アプリケーションのみを持つ非常に小さなLinuxオペレーティングシステムを作成したいと思います(busyboxは私が選択したコマンド/アプリケーションです)。私のオペレーティングシステムでインストールオプションを使用したくありません。 RAMから完全に起動して実行したいです。 ISO-Linuxをブートローダとして使用する予定です。ネットワーキングなし、仮想化サポートなし、不要なドライバなしなど、私はそれが非常に基本的なオペレーティングシステムになることを願っています。 kernel.orgから最新の安定カーネル(v4.5)ソースコードをダウンロードし、ビルド環境を準備しました。
私が感じるもう一つの混乱は、基本的にカーネルにコマンドを入力して出力を見るためのユーザーインターフェース(シェル、ターミナル...)があるということです。
答え1
技術的にはこれを達成できます。ただし、カーネルには組み込みのユーザーインターフェイスはありません。
次の手順に従ってください。
1. Create a initramfs with static busybox and nothing else.
This initramfs will have few necessary directories: like proc, sys, tmp, bin, usr, etc
2. Write a "/init" script, whose main job will be:
a. mount the procfs,tmpfs and sysfs.
b. Call busybox's udev i.e. mdev
c. Install the busybox command onto virtual system by executing busybox install -s
d. Calling /bin/sh
3. Source the initramfs directory while compiling the kernel. You can do so by flag: CONFIG_INITRAMFS_SOURCE
4. Compile your kernel.
5. Boot off this kernel and you will get the shell prompt with minimal things.
しかし、私は上記のメモを非常に形式的な方法で書きました。必要に応じて微調整が可能です。
修正する:
フォローするこのリンクいくつかのガイドライン。
答え2
カーネルの構築に関する知識がほとんどない場合は、最小分布を調べることをお勧めします。コアオペレーティングシステム。その他(私は直接使用していません)には、Project Atomic、Snappy Ubuntu Core、RancherOS、Photonなどがあります。
RAMで実行する必要がある場合は、最小限のリカバリおよび/またはLiveCDディストリビューションを使用できます。組み込みデプロイ最初からディストリビューションを作成するよりも作業量が少なく、使用に適している可能性があります(しかし、それは何の用途ですか?)。