2

我希望进入操作系统内核开发,并认为我的贡献是扩展SANOS操作系统以支持 JDK 1.6 和 1.7。我一直在阅读有关操作系统的书籍 (Tannenbaum) 以及研究 BSD 和 Linux 如何应对这一挑战,但仍然停留在几个概念上。

  1. 当 SANOS 更多地从下往上开始时,告诉我需要支持哪些额外系统调用的最快方法是什么?

  2. 如果我有一个需要支持的系统调用列表,如果它们本质上相似,那么将它们汇总的最佳方法是什么?

4

1 回答 1

1

任何合理的 *nix 风格的操作系统应该具有的最小系统调用数是(恕我直言):

  • 打开
  • 关闭
  • 执行
  • 等待进程

前 4 个允许您为程序提供输入并获得其输出。(请记住,就操作系统而言,在 *nix 之类的操作系统上,stdout 只是另一个文件句柄)。

其他 3 个是启动另一个程序并等待其结果的最低要求。但是,可以肯定的是,SanOS 已经拥有这些,因为它已经是一个功能非常强大的操作系统。

您需要进行的添加完全有可能不需要在内核级别完成。

编辑:

至于支持更新的 JVM 所需的内容,SanOS 网站上的这一段给出了一个很好的提示:

您可以在 sanos 下运行 Windows 版本的 Sun HotSpot JVM。这是可能的,因为 sanos 支持标准的 PE 可执行格式(.EXE 和 .DLL 文件)。为诸如 kernel32.dll、user32.dll、wsock32.dll 等的 Win32 DLL 以及 C 运行时库 msvcrt.dll 提供了包装器。我已经使用以下 JVM 测试了 sanos:

基本上,JVM 是标准的 windows exe 文件。因此,您只需要找出引用的 dll 进行的系统调用,并确保它们存在并正确实现。

于 2009-05-19T17:42:50.910 回答