[kernel-ml 67] Re: プロセスマネージャのメモリ要求

Naitoh Ryuichi (night@bfree.rim.or.jp)
Mon, 07 Aug 1995 23:30:44 +0900

隆一です。

In-Reply-To: <Subject: [kernel-ml 65] プロセスマネージャのメモリ要求>
藤井 俊典<TBE01041@niftyserve.or.jp> さん

> Joy こと藤井俊典です。
> いまメモリーマネージャへプロセスマネージャからメモリーをもらうためのイ
> ンターフェイスを考えています。
> ちょっと煮つまってしまったので、助言ください。
>

<省略>

>
> っで、問題なのは 386 の特権レベル移行方法はこのような方法(IRET使用)で
> 良いのでしょうか。

i386でリングレベルを 0 から 3 に移行する方法を Linux の場合と 386BSD
の場合でどうやっているのかを調べてみました。

Linux の場合では、レベル 3 に戻るためのスタックフレームを作成したの
ち iret を実行します。つまりレベル3からレベル0へのレベル移行をともなう
割り込みから戻る処理をシミュレートする処理です。

386BSD の場合には、異なったセグメント間でのレベル移行を行うための命
令 lret を使います。これはゲートディスクリプタを使ってレベル3からレベ
ル0へのレベル移行を行った時に元のレベルへ戻るための処理をシミュレート
する処理です。

----------
内藤隆一 (ggc00661@niftyserve.or.jp/night@bfree.rim.or.jp)