[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 883] Re: フォーマットについて.



  こんばんは、川合です。


Myurika さんは 2000/06/12 21:00:01 の「[OSASK 873] Re: フォーマ
ットについて .」で書きました:

>>  いえ、カーネルはDLLです。そう思っていただいても、害はありませ
>>ん。カーネルもDLLも呼び出しかたは全く同じで、FS:EBXにコマンド列
>>へのポインタをセットして、ただfar-callするだけです(一般のDLLは
>>、レジスタの使い方がこれとは違うかもしれませんが)。INTじゃない
>>です。
>  えっ、INTじゃないんですか(汗)?

  INTじゃないです。いったいどうして、INTが標準的なシステムコール
として定着してしまったのでしょう?・・・って、DOSとBIOSのせいに
決まっているのですが。

  INTのメリットは、命令が2バイトで済むことくらいしかありません
。遅いし、エントリは256個しか作れないし、全タスクで共通にしなけ
ればいけません。

  直接far-callなら(別に間接far-callでもいいですけど)、命令長は
7バイトにもなりますが、実行時間は速く、エントリは8192個まで作れ
ますし(LDT内に作る)、タスクごとに自由に設定できます。

>  それはすごいですね。C言語の標準的な構文でも、カーネルコールできちゃうん
>ですか。

  C言語の標準的な構文は、far-callをサポートしていないので、カー
ネルコールできるとはいえません。処理系ごとにfar-callするための拡
張がなされていますから、それに従えば可能です。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.or.jp
Homepage http://www.imasy.or.jp/~kawai/