Unixのアーキテクチャは同心円のように見えますが、Windowsのアーキテクチャは長方形です。なぜこれが起こるのですか?これらの違いが発生する具体的な理由は何ですか?
答え1
多くの場合、次のように呼ばれるマルチレベル保護ドメインの概念保護リングによってマルチプレックスシステムオペレーティングシステムもともとMulticsシステムには8つのリングがありましたが、最新のシステムには少ないリングがありました。もう1つの違いは、Multicsでリング変換がソフトウェアで行われ、他の多くの最新のCPUアーキテクチャには、特定の形式のリング保護ハードウェアサポートが含まれていることです。たとえば、x86アーキテクチャは4つの保護リングをサポートします。
Windows NTまたはUnixは、主に他のハードウェアアーキテクチャとの互換性を維持するためにx86アーキテクチャの環境保護サポートを最大限に活用しません。両方WindowsそしてLinuxリング0はカーネルモードに対応し、リング3はユーザーモードに対応する2つのリングのみを使用します。通常、このような状況が頻繁に発生します。モノリシックコアアーキテクチャ、カーネルは特権(スーパーユーザーモードと呼ばれる)デバイスドライバで実行されますが、アプリケーションは特権のないユーザーモードで実行されます。
答え2
私はあなたがMaurice J. Bachの本に出てくるアーキテクチャ図を考えていると思います。UNIXオペレーティングシステムの設計。
Windowsでも同様の図を簡単に描画できます。
個人的には、この写真は間違っていると思います。つまり、内側から外側へ。
その理由は次のとおりです。ドライバなどの低レベルのアイテムはシステム内に配置され、高レベルのアプリケーションは外部に配置されます。実際、この図の鍵はハードウェアです。
ただし、実際にはデバイスが外部世界と対話するため、低レベルのアイテムは外部と見なされるべきです。
しかし、問題があります。
事実は中央に属する「中間」コードである。これがこのブロックダイアグラムが意味をなす理由です。たとえば、関数呼び出しの方向を見て、関数呼び出しチェーンの上部がグラフの外側にあることを望みます。
トップはどこにありますか?上記はmain
アプリケーションの機能です。各スレッドの起動機能にもあり...カーネルの割り込みスケジューラも最上位ルーチンにあります。おおまかに言えば、それらのどれも反対方向からカーネルの奥まで呼び出すことができます。
階層化されたブロック図が最も適しています。彼らはある意味、すべて「外側」である反対側の上層を提示し、中央のサンドイッチに従います。
とにかく重要な点は、これらの図はすべてUnixやWindows、他の多くのシステムで使用できることです。