2009-05-19 80 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