2

私はオペレーティング システムのカーネル開発に携わりたいと考えており、JDK 1.6 および 1.7 をサポートするためにSANOSオペレーティング システムを拡張することが私の貢献になると考えました。私はオペレーティング システムに関する本 (Tannenbaum) を読んでおり、BSD と Linux がこの課題にどのように取り組んできたかを研究していますが、まだいくつかの概念に行き詰まっています。

  1. SANOS がボトムアップで開始するにつれて、サポートする必要がある追加のシステム コールを知る最も速い方法は何ですか?

  2. サポートが必要なシステム コールのリストがある場合、性質が類似している場合、それらをロールアップする最善の方法は何ですか?

4

1 に答える 1

1

妥当な*nixスタイルのOSが持つべきシステムコールの最小数は(IMHO)です。

  • 開いた
  • 選ぶ
  • 読む
  • 書きます
  • フォーク
  • exec
  • waitpid

最初の4つでは、プログラムへの入力とその出力の両方を提供できます。(* nixのようなオペレーティングシステムのstdoutは、OSに関する限り、単なる別のファイルハンドルであることを忘れないでください)。

他の3つは、別のプログラムを開始してその結果を待つために最低限必要なものです。ただし、SanOSはすでに非常に機能的なオペレーティングシステムであるため、すでにこれらを備えていることは確かです。

必要な追加をカーネルレベルで行う必要がない可能性は十分にあります。

編集:

新しいJVMをサポートするために必要なものに関する限り、 SanOSサイトのこの段落は素晴らしいヒントを提供します。

Windows版のSunHotSpotJVMをsanosで実行できます。これが可能なのは、sanosが標準のPE実行可能形式(.EXEおよび.DLLファイル)をサポートしているためです。ラッパーは、kernel32.dll、user32.dll、wsock32.dllなどのWin32 DLL、およびCランタイムライブラリmsvcrt.dll用に提供されています。次のJVMでsanosをテストしました。

基本的に、JVMは標準のWindowsexeファイルです。したがって、参照されているdllが作成するシステムコールを調べて、それらが存在し、正しく実装されていることを確認する必要があります。

于 2009-05-19T17:42:50.910 に答える