私の状況は次のとおりです。新しくコンパイルされたカーネル、新しいプラットフォーム用にコンパイルされたすべてのアプリケーションとライブラリがあり、選択したブートローダで起動する方法を知っていますが、ルートファイルシステムはありません。
特定のLinuxカーネルの新しいルートファイルシステムを埋める方法、Linuxカーネルに実際に必要なライブラリ、および最小限のLinuxでLinuxカーネルを実行するために必要なすべての機能の公式またはよくテストされたガイドがあるかどうか疑問に思います。ボックス。
最も確実なのはCライブラリだと思います。とにかく、acライブラリが必要ですが、Cライブラリと私が好きな追加のプログラムとライブラリを使用できるのか、カーネルに他のものが必要かわかりません。 、設定ファイルに関しても、Linuxカーネルがルートファイルシステムでどのファイルを見つけることを期待しているのかについての明確な情報が見つかりませんでした。
/lib
私が見つけたのは、Linux互換のファイルシステムに必要なディレクトリ構造についてです。デフォルトでは、、、/usr
およびより多くのディレクトリが必要/bin
ですが、新しいファイルシステムを作成するための実質的な内容はありません。
ポリスチレン
質問は〜です。いいえファイルシステムの作成方法、起動方法などについては、新しいLinuxボックスを起動できるように、このカーネルとファイルシステムのペアを完了するために必要なファイルが何であるかを知りたいです。
答え1
Linuxカーネルはあまり気にしません。ブートローダは、ルートファイルシステム(通常は初期のRAMディスクイメージ(initrd))をマウントする場所をカーネルに通知しますが、実際のルートファイルシステムでもあります。そうでない場合、カーネルは init プロセス/sbin/init
( initramfs から) を開始します。/init
/proc
カーネルファイルシステム(、、/sys
udev/dev
など)の場所もデフォルトでユーザースペースによって決まります。
これLinux標準ライブラリこのプロジェクトは、さまざまなLinuxディストリビューションでそれを標準化します。 (まあ、デバイスの命名などにはまだいくつかの違いがあり、で/usr/bin
マージする/bin
ことについての/usr/lib
議論があります/lib
。)そのバージョンはISO標準ISO / IEC 23360として承認されました。 2016年10月現在、LSBの最新バージョンは次のとおりです。最下位ビット5。
Linux カーネル開発者は、ユーザー空間インターフェイスのエントリを以前のバージョンと互換性を保つために非常に懸命に取り組んでいます。これがバージョン2.6の情報が4.4に非常に適用可能な理由です。ほとんど新機能とインターフェイスが導入された場合にのみ、新しいバージョンは以前のバージョンとは異なり、それに関するドキュメントを見つける必要があります。
いくつかのライブラリとアプリケーションをコンパイルしたと言われました。その場合、使用するコンパイル時間の設定(configure
設定の確認--prefix
など)と、これらのライブラリとアプリケーションが設定ファイル(Cライブラリのタイムゾーンファイル、国際化などを含む)を探すディレクトリに応じてディレクトリ構造。必ず必要です。
Linuxは最初から始まります!完全な機能を備えたLinuxディストリビューションを最初からコンパイルして構築する方法についての本を書くコミュニティです。あまり小さいわけではありません。場合によっては、特定のパッケージを省略したり、他のパッケージを削除したりすることがあります。しかし、すべてが考慮されます。
ロブランドリーLinuxカーネルコンテンツを文書化したことが知られています。彼のinitramfsについて、initramfsの使い方とinitramfsプログラミング多くの組み込みデバイスのように、initramfsで直接実行される最小のシステムを作成したい場合、これは非常に興味深いものです。
一般的に systemd についてsystemctl
はお知らせします。ホームページ、幸運を祈ります。私自身もこれを防ぎ、まだ認識できるより強力な初期化システムを使用する方法を探しています。Unixの哲学気まぐれにもつれた混乱に集まるのではなく。 (私の経験によれば、前者は長期的に機能的でメンテナンスが可能ですが、後者は新機能と外部改善の統合によりエンドユーザーが好むことが多いが、長期的にシステムとシステム管理者を脆弱で脆弱にします。壊れています。あなたの経験と意見は異なる場合があります。)
Linuxクラスタノードを評価するための簡単なベンチマークUSBスティックを開発する際に、OPが要求した詳細を見つけるためにインストールできる最小限のDebianおよびCentOSシステムを確認しました。小規模軽量システム)最終クラスタ自体と同じバイナリを実行できるシステム、つまり基本サービスとライブラリを含みます。今日はぜひご覧ください。デバン、複数の初期化システムをサポートしているからです。仮想マシンでこれらの実験を実行することは非常に有益です。
理論や標準を超えて練習してください。強制された標準はなく、実際にはいかなる標準もありません。 LSBとISO / IEC 23360も、相互運用性の成功のためのガイドラインに近いです。これLinuxカーネルドキュメントLinuxカーネルのソースコードから抽出したものはカーネルの期待を説明しますが、前述のようにファイルシステムツリーに影響を与える期待はほとんどありません。ブート時またはコンパイル時に設定が可能になる傾向があります。