2009-05-19 82 views
2

我期待進入操作系統內核開發,並認爲我的貢獻是擴展SANOS操作系統以支持JDK 1.6和1.7。我一直在閱讀操作系統(Tannenbaum)的書籍,以及研究BSD和Linux如何應對這一挑戰,但仍然困擾於幾個概念。升級OS內核的方法

  1. 是什麼,告訴我需要什麼額外的系統調用,以支持作爲SANOS從底部向上開始更多的最快方法?

  2. 如果我有一個需要支持的系統調用列表,如果它們本質上是相似的,那麼將它們展開的最佳方法是什麼?

回答

1

系統的最低數量要求的任何合理的* nix風格OS應該是(恕我直言):

  • 開放
  • 接近
  • 閱讀
  • exec
  • waitpid

第4個允許您爲程序提供輸入並獲取其輸出。 (記住在* nix之類的操作系統上,就操作系統而言,stdout只是另一個文件句柄)。

另外3個是啓動另一個程序並等待其結果的最低限度所需。但是,由於SanOS已經是一個功能非常強大的操作系統,因此SanOS已經具備了這些功能。

完全有可能您需要添加的內容不需要在內核級別完成。

編輯:

至於需要支持較新的JVM什麼,從SanOS site本段給出了一個很大的提示:

您可以運行Sun 熱點的Windows版本JVM在sanos下。這是 可能的,因爲sanos支持 標準PE可執行格式(.EXE 和.dll文件)。包裝器提供 用於Win32 DLL的比如kernel32.dll, user32.dll中,WSOCK32.DLL,等,以及如 C運行時庫MSVCRT.DLL。我 已經測試sanos具有以下 的JVM:

基本上,JVM上是標準的Windows exe文件。所以你只需要找出引用的dll所做的系統調用,並確保它們存在並正確實現。

+0

「所以,你只需要找出哪些系統調用的DLL引用做,並確保它們的存在,並得到正確實施。」 以上是如何完成的... – McGovernTheory 2009-05-20 10:51:24