オペレーティングシステムコードのどの部分がカーネルに関連付けられていますか?
システム図は理解していますが、コーディング部分に課題があります。
ベストアンサー1
...「カーネル」部分(Linux/QNX/BSD、など...)
「関連性」が何を意味するのかを定義する必要があります。できる議論を試みるみんなコードは関連カーネルで:
- カーネルがなく、何もないユーザー空間でも実行されません。
- ユーザ空間アプリケーションがなければ、システムは本質的に役に立たない。
さらに、カーネルの種類に応じて、システムの他の部分はやや強い依存関係を持っています。
- 完全(例えばLinux)は、通常、ドライバのようなものがカーネルに常駐する大規模なコードベースです。
- 雑種(例:Windows)コンポーネントはカーネルスペースとユーザースペースに分けられます。
- マイクロカーネル(例:QNX)は、ドライバがユーザースペース「アプリケーション」として実装されている比較的小さなコードベースです。
もちろん、これはカーネル自体を使用しない「ベアメタル」システムには適用されません。
要求に応じてLinuxカーネルをより深く掘り下げると、主要なサブシステムがあることがわかります。
- アーキテクチャ(マシン)別サポート(x86)
- 初期化ルーチン
- スケジューラ
- 割り込み処理
- メモリ管理
- デバイスサポート(別名「ドライバ」)(MMC)
- ファイルシステム(外部4)
- プロセス間通信
- ネットワーキング(IPv4)
- ...そしてリストは続きます
各サブシステムには追加のサブシステムがあります(一部は上記の括弧内に表示されます)。
あなたの意見で提案されているように図を描くことはできますが、非常に複雑になります。
この記事を読んでみるのもいいと思います。Linuxカーネル分析「何が起こっているのかをよりよく理解するために。