GNU/Linux >> Linux の 問題 >  >> Linux

32 ビット PAE と 64 ビット カーネルの違いは何ですか?

カーネルは物理メモリを認識し、プロセスにビューを提供します。マシン全体の RAM が 512 MB しかないのに、プロセスが 4 GB のメモリ空間を持つことができるのか疑問に思ったことがあるなら、それが理由です。各プロセスには、独自の仮想メモリ空​​間があります。そのアドレス空間のアドレスは、物理ページまたはスワップ空間にマップされます。スペースをスワップする場合、プロセスがページにアクセスして変更する前に、それらを物理メモリに戻す必要があります。

XQYZ の回答 (DOS highmem) にある Torvalds の例は、あまり当てにならないものではありませんが、PAE は一般的に悪いことであるという彼の結論には同意しません。それは特定の問題を解決し、メリットがありますが、それはすべて議論の余地があります。たとえば、ライブラリの実装者は実装が簡単であると認識しない場合がありますが、そのライブラリのユーザーはこのライブラリを非常に便利で使いやすいと認識する場合があります。 Torvalds は実装者であるため、ステートメントの内容をそのまま発言する義務があります。エンド ユーザーにとって、これは問題を解決し、それがエンド ユーザーの関心事です。

1 つの PAE は、32 ビット マシン上の別の従来の問題を解決するのに役立ちます。これにより、カーネルは 4 GB のメモリ全体をマップし、多くのマシンに存在する BIOS メモリ ホールを回避できるようになり、物理的な 4 GB にもかかわらず、PAE を使用しない純粋な 32 ビット カーネルは 3.1 または 3.2 GB のメモリしか「認識」できなくなります。

いずれにしても、64 ビット カーネルの場合、これは物理ページと仮想ページの間の対称的な関係です (スワップ スペースやその他の詳細は別として)。ただし、PAE カーネルは、プロセスのアドレス空間内の 32 ビット ポインターと物理メモリ内の 36 ビット アドレスの間でマップします。ここではさらに簿記が必要です。キーワード:「拡張ページ テーブル」。しかし、これはややプログラミングの問題です。これが主な違いです。完全な線形アドレス空間と比較して、より多くの簿記。 PAE の場合、おっしゃったように 4 GB のチャンクです。

それ以外は両方 PAE と 64 ビットでは、ラージ ページが可能です (32 ビットの標準の 4 KB ページではなく)。

インテル プロセッサ マニュアルの第 1 巻の第 3 章 ボリューム 3A の第 3 章 (「プロテクト モード メモリ管理」) に概要があり、詳しく読みたい場合は詳細があります。

<ブロック引用>

私には、これは多くの人に無視されているように見える大きな違いのように思えます.

あなたが正しい。ただし、ほとんどの人はユーザーであり、実装者ではありません .それが彼らが気にしない理由です。また、アプリケーションに大量のメモリを必要としない限り、多くの人は気にしません (特に互換性レイヤーがあるため)。


ここで Linus Torwalds の発言を調べてみてください:

<ブロック引用>

PAE は、その非常に単純な事実をひっくり返し、物事を見事に台無しにしました。アイデアを思いついた人は誰でも完全に無能で、DOS HIGHMEM の苦労をすべて忘れていました。 286 を置き去りにして 386 を使用し始めたのには、十分な理由があります。HIGHMEM がより大きな物理スペースに窓を設置する代わりに、386 を使用し始めたのです。

[...]

繰り返しますが、PAE は実際には何も修正しませんでした。それは間違いでした。これは単なる完全な失敗であり、ハードウェア エンジニアがソフトウェアを理解していなかった結果です。


Linux
  1. Linuxのバッファメモリとキャッシュメモリの違いは何ですか?

  2. ファイルへの書き込みとマップされたメモリへの書き込みの違いは何ですか?

  3. Cのstrtok_rとstrtok_sの違いは何ですか?

  1. arm64 と armhf の違いは何ですか?

  2. fsck と e2fsck の違いは何ですか?

  3. ls と l はどう違いますか?

  1. InnoDBとMyISAMの違いは何ですか?

  2. 「su -」と「su --login」の違いは何ですか?

  3. ルートとIPルートの違いは何ですか?