gpt4 book ai didi

java - 升级操作系统内核的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:33 25 4
gpt4 key购买 nike

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

  1. 当 SANOS 更多地自下而上启动时,判断我需要支持哪些额外系统调用的最快方法是什么?

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

最佳答案

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

  • 打开
  • 关闭
  • 阅读
  • fork
  • 执行
  • 等待标识符

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

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

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

编辑:

就支持更新的 JVM 所需的内容而言,这一段来自 SanOS site给出了一个很好的提示:

You can run the Windows version of Sun HotSpot JVM under sanos. This is possible because sanos supports the standard PE executable format (.EXE and .DLL files). Wrappers are provided for the Win32 DLLs like kernel32.dll, user32.dll, wsock32.dll, etc., as well as the C runtime library msvcrt.dll. I have tested sanos with the following JVMs:

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

关于java - 升级操作系统内核的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/881957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com