2

OS は (RAM/USB などのハードウェア周辺機器を除いて) 純粋にハードウェアに依存していると言っているのはなぜですか? ハードウェアの独立性という言葉は、OS が ARM/x86/xtensa/starcore などの基礎となるハードウェア抽象化レイヤーなしで、任意のプラットフォームで実行される必要があることを意味します。

シンプル/一般的な OS での正確なハードウェアの依存関係を教えてください。OS のすべてのポイントがハードウェアにアクセスしている、またはプラットフォームに依存している正確な意味は?

また、ハードウェアやプラットフォームに依存しない (つまり、VM の概念がない) 単純な OS または RTOS (C 言語を使用) を作成して、どのプラットフォームでも実行できるようにすることは可能ですか?

RAM /keyboard/mouse のような周辺機器側からではなく、OS カーネル側からの回答を期待しています。

OS におけるハードウェア依存の正確な例を示します

4

5 に答える 5

4

一般に、次のことはハードウェアに依存します。

  • システム起動・リセット
  • 割り込み処理
  • 仮想メモリの管理と保護
  • デバイス I/O
  • コード アクセスとセキュリティに対するシステム レベルの保護
  • いくつかの相互排除プリミティブ。

あるレベルでは、OS カーネルは何かの上にある必要があります。ほとんどのカーネルは、できるだけ小さな表面積でハードウェアに触れるように書かれていますが、そこには何らかの接触点がなければなりません。

ほとんどのカーネルは C で記述できます (通常はこれが当てはまります)。しかし、何かの上を走る必要があります。OS の定義を少しいじると、ハードウェアに依存する「マイクロカーネル」を作成し、上記の多くをおもちゃの OS として抽象化してその上に構築できますが、パフォーマンスが低下します。 /正確さ/洗練。

于 2010-09-24T19:46:08.450 に答える
4

どのオペレーティング システムも、少なくとも 1 つのハードウェア、つまり CPU に依存しています。さまざまな CPU があり、それぞれが異なる働きをし、異なる「ネイティブ言語」を持っています。OS は CPU 上で実行する必要がある「単なるプログラム」であるため、OS は CPU のネイティブ言語で記述されている必要があり、OS に依存しています。たとえば、ARM または PowerPC プロセッサで通常の Windows を実行することはできません。Intel 互換の CPU でのみ動作します。

Linux や FreeBSD などのほとんどの UNIX が良い例です。ただし、実行する CPU ごとにコンパイル (「変換」) する必要があります。

CPU とは別に、OS は何かを処理する方法も必要とするため、ハードディスクや ROM のような入力と出力、画面とキーボードが必要です (必ずしもそうとは限りません。たとえば、エレベーターには実際のキーボードは必要なく、多くの場合、画面も必要ありません)。また、これらの各デバイスにアクセスするにはさまざまな方法があり、OS はこれらの方法に依存します (たとえば、PCI バスのようなバス システム、またはシリアル ポート用の 16550 のような専用チップ)。

于 2010-09-24T19:53:26.990 に答える
1

メモリ管理からタイマー (スケジューリング)、ネットワーク、ビデオ、キーボード、BIOS に至るまで、OS に関するほとんどすべてが何らかの形でハードウェアに依存しています。これらすべてに、ハードウェアに依存する C コードやアセンブリが必要です。

これは、アーキテクチャ間で共有される多くの一般的な C コードを抽出できないという意味ではありません。Linux はこの典型的な例です。膨大な数のハードウェア プラットフォームに移植されており、プラットフォームごとにカスタム コードが必要です。ただし、共有 C コードの大部分はまだ存在します (ファイルシステム ドライバなど)。

そしてもちろん、ANSI C の部分でさえ、コンパイラがそれをターゲットにできる場合にのみハードウェアで実行されます。

于 2010-09-24T19:44:35.037 に答える
1

OS にハードウェアの依存関係がない場合、OS はどのようにして出力世界から入力を受け取り、結果を出力することができるでしょうか?

于 2010-09-24T19:45:18.237 に答える
1

入力と出力が発生するすべてのポイントは、ハードウェアに依存します。

割り込みが発生するすべてのポイントは、ハードウェアに依存します。

メモリ自体が管理されるすべてのポイントは、ハードウェアに依存します。

つまり、気にするのであれば、おそらくハードウェアに依存しています。

私は組み込みシステムが好きです。

于 2010-09-24T19:56:39.417 に答える