ページへ戻る

− Links

 印刷 

OT​/0006 のバックアップ差分(No.3) :: OSASK計画

osaskwiki:OT/0006 のバックアップ差分(No.3)

« Prev[4]  Next »[5]
2: 2009-07-17 (金) 15:11:45 ソース[6] 3: 2009-11-17 (火) 12:06:28 ソース[7]
Line 11: Line 11:
--コールゲート: --コールゲート:
--sysenter: --sysenter:
----でも386で利用できない命令は、いたずらに対応機種を減らすだけなのでOSASKでは使わない 
-第一世代OSASKを作るに当たっては、これらの方法を検討した。まずnear-CALL案はかなりはやく消えた。なぜなら、結局アプリからシステムコールした以上は、どこかのタイミングでCPL=0に入る必要があり、だからアプリからAPIを叩いたときにすぐにCPL=0に移行するのが一石二鳥でいいと思えたのだ。 -第一世代OSASKを作るに当たっては、これらの方法を検討した。まずnear-CALL案はかなりはやく消えた。なぜなら、結局アプリからシステムコールした以上は、どこかのタイミングでCPL=0に入る必要があり、だからアプリからAPIを叩いたときにすぐにCPL=0に移行するのが一石二鳥でいいと思えたのだ。
 +-sysenterに関しては386で利用できない命令なので、OSASKでは使わない。
-例外方式は遅そうなのでボツ。 -例外方式は遅そうなのでボツ。
-ソフトウェアINTは、APIブリッジが構築しにくいだろうということで捨てた。IDTはシステム全体に対して一つだけど、LDTはタスクの数だけある。そうすると、タスクごとに異なる設定にできるのはLDTのほうで、だからLDT上のコールゲートを使うのがいいと考えたのだ。APIブリッジとは、APIのリダイレクトというか、API-CALLを横取りしてエミュレーションするようなものである。このとき、タスクによって横取りするかしないか、もしくは横取り後の処理の仕方をタスクごとに変えたいなど、そういうことをするにはIDT上のベクタを使うわけには行かなかったのである。 -ソフトウェアINTは、APIブリッジが構築しにくいだろうということで捨てた。IDTはシステム全体に対して一つだけど、LDTはタスクの数だけある。そうすると、タスクごとに異なる設定にできるのはLDTのほうで、だからLDT上のコールゲートを使うのがいいと考えたのだ。APIブリッジとは、APIのリダイレクトというか、API-CALLを横取りしてエミュレーションするようなものである。このとき、タスクによって横取りするかしないか、もしくは横取り後の処理の仕方をタスクごとに変えたいなど、そういうことをするにはIDT上のベクタを使うわけには行かなかったのである。
« Prev[4]  Next »[5]