我希望进入操作系统内核开发,并认为我的贡献是扩展SANOS操作系统以支持JDK 1.6和1.7。我一直在阅读有关操作系统(Tannenbaum)的书籍,以及研究BSD和Linux如何应对这一挑战,但仍然坚持几个概念。
什么是最快的方式来告诉我需要支持哪些额外的系统调用,因为SANOS从底层开始更多?
如果我有一个需要支持的系统调用列表,如果它们性质相似,最好的方法是什么?
答案 0 :(得分:1)
任何合理的* nix风格操作系统应具有的最小系统调用次数为(恕我直言):
前4个允许您为程序提供输入并获得其输出。 (请记住,就操作系统而言,* nix就stdout而言只是操作系统的另一个文件句柄。)
另外3个是启动另一个程序并等待其结果所需的最低限度。但是,可以肯定SanOS已经拥有这些,因为它已经是一个非常实用的操作系统。
完全有可能您需要进行的添加不需要在内核级别完成。
修改强>
就支持更新JVM所需的内容而言,SanOS site中的这一段提供了一个很好的暗示:
您可以运行Windows的Sun版本 sanos下的HotSpot JVM。这是 可能因为桑诺斯支持 标准PE可执行格式(.EXE 和.DLL文件)。提供包装 对于像kernel32.dll这样的Win32 DLL, user32.dll,wsock32.dll等 作为C运行时库msvcrt.dll。一世 用以下方法测试了sanos 的JVM:
基本上,JVM是标准的Windows exe文件。因此,您只需要找出引用的dll所调用的系统,并确保它们存在并正确实现。