Java 操作系统内核升级方法

Java 操作系统内核升级方法,java,c++,multithreading,operating-system,kernel,Java,C++,Multithreading,Operating System,Kernel,我希望进入操作系统内核开发领域,并认为我的贡献将是扩展操作系统以支持JDK1.6和1.7。我一直在阅读操作系统方面的书籍(Tannenbaum),也在研究BSD和Linux是如何应对这一挑战的,但仍停留在几个概念上 当SANOS从最底层开始时,告诉我需要支持哪些额外的系统调用的最快方法是什么 如果我有一个需要支持的系统调用列表,如果它们性质相似,那么最好的方法是什么 任何合理的*nix风格操作系统应具有的最小系统调用数为(IMHO): 打开 接近 阅读 写 叉子 执行官 侍者 前4项允许您向

我希望进入操作系统内核开发领域,并认为我的贡献将是扩展操作系统以支持JDK1.6和1.7。我一直在阅读操作系统方面的书籍(Tannenbaum),也在研究BSD和Linux是如何应对这一挑战的,但仍停留在几个概念上

  • 当SANOS从最底层开始时,告诉我需要支持哪些额外的系统调用的最快方法是什么

  • 如果我有一个需要支持的系统调用列表,如果它们性质相似,那么最好的方法是什么


  • 任何合理的*nix风格操作系统应具有的最小系统调用数为(IMHO):

    • 打开
    • 接近
    • 阅读
    • 叉子
    • 执行官
    • 侍者
    前4项允许您向程序提供输入并获取其输出。(请记住,对于操作系统而言,类似于on*nix的操作系统stdout只是另一个文件句柄)

    另外3个是启动另一个程序并等待其结果所需的最小值。然而,可以肯定的是,SanOS已经有了这些功能,因为它已经是一个功能非常强大的操作系统

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

    编辑:

    关于支持较新JVM所需的内容,本文给出了一个很好的提示:

    您可以运行Windows版本的Sun sanos下的热点JVM。这是 可能是因为sanos支持 标准PE可执行文件格式(.EXE 和.DLL文件)。提供包装材料 对于像kernel32.dll这样的Win32 dll, user32.dll、wsock32.dll等 作为C运行时库msvcrt.dll。我 我们已经用以下方法测试了sanos JVM:


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

    “因此,您只需要找出引用的DLL发出的系统调用,并确保它们存在并正确实现。”上述是如何完成的……我想是一种方法(可能是最暴力的方式)将使用名为strace的工具(有一个windows版本)。这将记录程序使用的所有系统调用。但是,此输出将非常详细,您可能希望它过滤掉您已经实现的系统调用。请注意,我认为您目前正在深入研究。操作系统开发并不容易,一个像样的内核开发人员应该知道如何完成简单的任务,例如di查看系统调用程序在这些操作系统上使用的内容。在实际尝试之前,您可能应该做更多的研究。Evan,我认为研究还包括在Stackoverflow等网站上发布问题,以获得我无法找到的答案……没错,问问题没有坏处(毕竟,这就是这个网站的目的)。