現在のシステムでBusyboxを使用する理由

現在のシステムでBusyboxを使用する理由

busyboxはもともとフロッピーディスクサイズのブータブルシステム用に開発されており、小さなメモリスペースを念頭に置いて設計されています。現在はルータ、洗濯機、電子レンジなど小型システムだけでなく、高性能NAS、スマートフォン、デスクトップLinuxディストリビューションなどの構造システムにも使用されている。 (後者の場合は、ブートローダのイメージに合うことを確認するためのものかもしれません。)

ただし、単一のバイナリとして、単一の障害点も表示されます。

そのようなシステムでは、busyboxの代わりに標準ユーザースペースを使用しないのはなぜですか?

答え1

ただし、単一のバイナリとして、単一の障害点も表示されます。

標準的なユーザー土地にも、これらのものは非常にたくさんあります。 libcが壊れていますか?依存関係がありませんか?本当にひどいです。

そのようなシステムでは、busyboxの代わりに標準ユーザースペースを使用しないのはなぜですか?

ビジーボックス(およびおもちゃ箱などの代替品)の利点は、小さくてシンプルで作業に適していることです。なぜ動作するのに別のものを使うのですか?

また、簡略化のため、initramfs の一部としてすべてのデスクトップコンピュータで使用することもできます。実際のユーザースペースを複製することはできますが、カーネル/initramfsのサイズが不均衡になります。 initramfs が大きいほど、ロード時間が長くなり、起動プロセスが遅くなります。

また、Linuxディストリビューションの場合と同様に、さまざまなコンポーネントを適切に作成して連携し、各コンポーネントのバグを追跡するのではなく、ファームウェアベンダーが個々のプロジェクトを追跡する方が簡単です。

arもちろんビジボックスにも限界がある。たとえば、ビジボックス環境では、単に一部の機能が欠けているため(たとえば、カーネルが使用しようとするいくつかのオプションが欠けているため)、Linuxカーネルをコンパイルするのは困難です。ただし、initramfsやスマートフォンの場合、これらの制限は重要ではありません。

答え2

Debian パッケージングを担当している Chris Boot がbusyboxDebian で使用する方法を説明します。:

主に2つの場所で使用されます。

  • これはDebianインストーラのRAMディスクにバンドルされており、DI用のシェル、ブートローダとして機能し、アプレットはインストーラ環境でほとんどの機能を提供します。

  • デフォルトのinitramfsアセンブリシステムであるinitramfs-toolsは、busyboxをinitramfsに統合し、ルートファイルシステム(別の場合は/ usr)がマウントされ、ivot_rootedされるまでそれを使用します。また、initramfsではklibcの一部を使用していますが、initramfsのどのツールがklibcツール、busyboxアプレット、または実行中のシステムからコピーされた実行可能ファイルであるかは完全にはわかりません。

答え3

ほとんどの場合、システムメモリが限られているため(生産コストを削減するため)。 busyboxはスペースをあまり占めませんが、元のユーザー領域の機能をほとんど持っています。

関連情報