私が知る限り、Busyboxは一連のUnixコマンド/ユーティリティを含む実行可能ファイルです。
私の質問は、これを実行するには基本オペレーティングシステムが必要か、カーネルなしでコンピュータで直接実行できるかです。明示的なオペレーティングシステムなしで実行できる場合は、CPUスケジューリング、ユーザー、ロール管理などのタスクを誰が処理しますか?基本的なオペレーティングシステムが必要な場合、どのようにプラットフォームに拘束されないのですか?
ここで私が何を見逃しているのか理解するのを手伝ってください。
編集する:
だから混乱の原因は、小さな組み込みデバイスにインストールされることです。私の結論は、これらのデバイスには、Bigboxを使用して基本的なUnix機能を追加できる軽量オペレーティングシステムをインストールする必要があることです。
また、上記はプラットフォームに拘束されません。つまり、基本OSに拘束されないという意味です。たとえば、WindowsでBusyBoxを実行できますか?では、これはどのように可能ですか?
答え1
オペレーティングシステムの定義によって異なります。
カーネルは必要ですが、残りのオペレーティングシステムは必要ありません。カーネル(Linux)は、オペレーティングシステム(Linuxを使用するほとんどのUnixファミリーシステムではGnu / Linux)の小さな部分です。 busybox/Linux を使用できます。これは単にbusyboxとLinuxです(Gnuもなく、何もありません)。
答え2
明示的なオペレーティングシステムなしで実行できる場合は、CPUスケジューリング、ユーザー、役割管理などのタスクを誰が処理できますか?
これはすでに最初の質問に対する答えになります。これはカーネルが行うことで、カーネルがなければ、busyboxを含むこれらの機能に依存するプログラムを実行することはできません。
プラットフォームに依存しないカーネルを使用すると、これは馬のように簡単ではありません。プラットフォームとは、プロセッサアーキテクチャを意味すると仮定します。つまり、実行可能ファイルが仮想マシンなしですべてのプロセッサで実行されることを意味します。これは不可能です。
あなたが望むものに最も近いのは、おそらくコアLinux(わずか11 MB)などの最小限のLinuxディストリビューションです。
起動後にユーザーとの対話をしたくない場合は、OSからより多くの項目を削除することもできますが、システムと対話するには少なくとも端末が必要になると思います。
だから混乱の原因は、小さな組み込みデバイスにインストールされることです。私の結論は、これらのデバイスには、Bigboxを使用して基本的なUnix機能を追加できる軽量オペレーティングシステムをインストールする必要があることです。
この問題にはいくつかの側面があります。
組み込みデバイスとは何ですか?最近では、技術的にはまだ「小型組み込みデバイス」であるRaspberry PiでLinux全体のディストリビューションを簡単に実行できます。私はそれが引用文が言うものだと思います。
カーネルなしで実行するようにbusyboxを変更できます。タスクの難易度は、タスクがカーネル呼び出しにどれだけ依存しているか、すべての機能が機能するのか、一部が機能するのかによって異なります。
どれくらい重要ですか? Busyboxは、UNIXシリーズのカーネルで使用するように設計されたPOSIX標準で説明されているいくつかのプログラムを実装しています。たとえば、
chroot
ルートディレクトリは壊れていて、ファイルシステムがない場合はどういう意味ですか?
また、上記はプラットフォームに拘束されません。つまり、基本OSに拘束されないという意味です。たとえば、WindowsでBusyBoxを実行できますか?では、これはどのように可能ですか?
はい、しかしいいえ。 Windowsには、プログラムがカーネルと対話できるさまざまなAPIがあります。また、実行可能ファイルに別のバイナリ形式を使用します。一種の互換性レイヤーがなければ、Windowsでbusyboxを実行することはできません。
通常、Linux APIをデフォルトのWindows APIにリダイレクトしてこれを行うmingwなどを使用します。これにより、ソースコードを大幅に変更することなく、単純なLinuxプログラムをコンパイルして実行できます。
Windows 10以降、Microsoftは独自の互換性レイヤを提供しました。Linux用Windowsサブシステム、私の知る限り。それでは、仮想化されたLinuxカーネル全体を実行してみてください。窓の中Linuxアプリケーションを「デフォルトで」実行します。