IA-32のカーネルは、1Gの仮想空間を、物理アドレスの下位からストレートマップしてる故、1G(896M)を超える物理アドレスにアクセスできない。従って、理屈はともかく、HIMEM空間を通して、物理アドレスをアクセスする必要がある。となんとなく理解しています。
そこでふと思ったのですが、上の理解が妥当だとすると、HIMEMはあくまでカーネル空間だけの話で、プロセス空間は3G、しかも連続してマップする必要のないユーザプロセスでは、ページテーブルを設定すれば言いだけの話で、従って1Gを超える物理メモリを搭載した環境で、あえてHIMEM領域を設定しなくても、カーネルはちゃんとユーザプロセスに1Gを超える物理メモリを割り当てることができる。と思いに至った次第です。この認識、正しいでしょうか?
No.2ベストアンサー
- 回答日時:
32bitアドレッシングでは4Gバイトまで連続でアクセスできますが、Linuxでは下位3Gがユーザー空間、上位1G弱がkernel空間にマップされるようになっています。
Highmemが必要なのはkernel空間で1Gを越えるメモリを必要とする場合だけ(アドレスレンジが足りなくなるため)ですので、おっしゃるとおりユーザー空間にはHighmemは関係ありません。普通にMMUを使って3Gまでマップできます。
詳しいことは下記を参照して下さい。
参考URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20080 …
回答ありがとうございました。これでなんかすっきりいたしました。早々に教えていただいた記事を読んでさらに理解を深めたいと思います。
No.1
- 回答日時:
> 1G(896M)を超える物理アドレスにアクセスできない。
> カーネルはちゃんとユーザプロセスに1Gを超える物理メモリを割り当てることができる。
「1Gを超える物理アドレスにアクセスできない」と最初に書いてある理解から、どうして「1Gを超える物理メモリを割り当てられる」という結論になったのでしょうか…
カーネルがアクセス出来ないのに、割り当てるも何も無いと思います。
この回答への補足
物理アドレスにアクセス。というのでなく、カーネルモードとして動作できる物理アドレス。ということでした。ことば足らずで申し訳ありませんでした。
補足日時:2010/03/02 15:17お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- IT・エンジニアリング アドレス空間(メモリマップ)について教えてください。 マイコンには必ずメモリマップが記載されています 3 2022/06/17 09:42
- 宇宙科学・天文学・天気 無の空間におけるビッグバン 3 2023/07/01 20:53
- 物理学 真空の質量 3 2023/02/25 11:20
- 物理学 宇宙の公理 4 2023/03/16 14:58
- 宇宙科学・天文学・天気 四次元空間について 1 2022/07/01 17:11
- 哲学 脳内ニュートン力学の詩 2 2023/04/23 16:13
- アニメ 四次元空間について 1 2022/07/01 16:06
- 物理学 相対性理論を時空変換で縛るのが間違ってますよね? 4 2023/03/14 17:43
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ip_conntrack_ftpのインストール
-
OSについて調べています
-
どうしてwindowsはMacと比べ動...
-
割り込み不可能?なプロセスを...
-
Linux UDPサーバーに対するクラ...
-
英語版のMSsoftお試し版の入手方法
-
Windows10について
-
カーネルアップグレード後、una...
-
サウンドのチップ?がESS ES197...
-
パフォーマンスモニタの%Proces...
-
Windowsのソースコードって非公...
-
Linuxって何?
-
エラー”Illegal seek”はどんな...
-
mac OSは、何のプログラミング...
-
Linux 32Bitと64Bitのメモリー...
-
ウイルスバスターTMTDI ドライ...
-
PCカードが認識しない・・・
-
OSの中身
-
CentOS6 の画面サイズの設定
-
分散処理用のフリ-ソフト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パフォーマンスモニタの%Proces...
-
最近、よくOpenWall という言葉...
-
/dev/nvme0n1p2 clean と表示さ...
-
ブルースクリーンの原因が「ntk...
-
割り込み不可能?なプロセスを...
-
romfsってなんですか?
-
魔改造版Windows 2000をインス...
-
mac OSは、何のプログラミング...
-
どうしてwindowsはMacと比べ動...
-
macでカーネルのディレクトリは...
-
カーネルアップグレード後、una...
-
『カーネルとの通信中にエラー...
-
UNIXとBSDとLinuxの違いを小学...
-
Dockerコンテナ(centos7.9)の...
-
Linux 32Bitと64Bitのメモリー...
-
エラー”Illegal seek”はどんな...
-
カーネルバッファとは何でしょうか
-
カーネルスタック不足について
-
rdevコマンドについて
-
インターフェイスが認識しない
おすすめ情報