是否可以使用未编译的语言编写操作系统[像python解释]还是不使用运行时[如Java]?虚拟机是否需要在操作系统上运行?以解释语言编写操作系统
回答
微软研究院创建了一个名为Singularity的操作系统。
尽管这是一个研究项目,我认为他们需要一些低级代码来启动启动过程(在某些时候操作系统需要与硬件进行通信)。
最低级别的x86中断调度代码是用汇编语言和C一旦该代码已经完成了它的任务,它调用内核,其运行时间和垃圾收集都写在唱歌#(Spec#的扩展版本,本身是C#的扩展),并且运行在不受保护的模式下。硬件抽象层用C++编写,并运行在保护模式下。还有一些C代码来处理调试。计算机的BIOS在16位实模式引导阶段被调用;一次在32位模式下,Singularity不会再次调用BIOS,但会调用以Sing#编写的设备驱动程序。在安装过程中,通用中间语言(CIL)操作码使用Bartok编译器编译为x86操作码。
当然。只是不要指望它快,这就是为什么没有人这样做。
您可能需要在解释器中执行一些有趣的事情(虚拟指令),以允许您的操作系统更改机器状态(寄存器和堆栈,内存映射,I/O设备寄存器)以及某些机器具体用于允许硬件中断转换为解释代码的执行,并返回中断返回。你可能在初始引导逻辑上有一段艰难的时间;你的解释器显然无法从磁盘上载入。
但是对于大多数操作系统来说,如果正确完成,例如使用JIT编译器,它将非常轻便,实际上可能相当快。 [您希望JIT编译器使用相同的语言进行编码,并且可以进行自我测试]。
我提出了一种类似于C语言的HLL,它编译成虚拟机解释的代码,恰好在上世纪80年代的OS 360系统的这种架构中,并且几乎完成了构建它的交易。会很有趣。呃,好吧。
是的,这是可能的,如果你在虚拟机中考虑专业。
例如,您可以在java中创建一个小版本的minix以在JVM的顶部运行。但我不知道有人这样做的原因,除了太多的空闲时间:)
一个运营系统需要非常薄和快。如果你选择python,你在每个操作中都会有python解释器开销。即使你认为在系统的一小部分,如设备驱动程序:想象python解释器在内核空间中运行一段时间...
但对于教育或特殊情况(arduino?嵌入?)它可以被接受。我认为lua可以是一个好主意,因为口译员很小。
有大量的本土Forth操作系统。 Forth有些处于被“解释”的边缘(但我宁愿远离这个术语,它太模糊而且被广泛滥用)。
- 1. 移动操作系统及其编写的编程语言
- 2. 写编程语言解释
- 3. 操作系统的语言?
- 4. 操作系统如何引入C语言来编写内核
- 5. 不同体系结构的操作系统汇编语言
- 6. 检测操作系统语言
- 7. 什么编程语言是Android操作系统和它的内核编写?
- 8. 什么是开始写入的最佳语言操作系统
- 9. 已安装语言包安装的操作系统语言?
- 10. 更改“区域和语言”设置操作系统编程
- 11. 在不同操作系统上使用编程语言
- 12. 编译解释语言
- 13. 为arm架构编写操作系统
- 14. 用UEFI编写操作系统
- 15. 如何编写操作系统
- 16. 编写定制的Android操作系统
- 17. 使用C++编写操作系统
- 18. 关于编写操作系统
- 19. 任何人都可以解释这个输出(操作系统)?
- 20. 我可以使用c编程语言创建我自己的操作系统
- 21. 编写MSIL解释器 - 如何描述操作语义?
- 22. 崇高的文字2编写C语言编程系统
- 23. 是否可以为手机编写操作系统?
- 24. 我可以在机器代码中编写操作系统吗?
- 25. php语言系统
- 26. 解释型语言 - 利用解释器之后的编译语言
- 27. Maven的默认语言环境不一样与操作系统语言环境
- 28. C#解释语言
- 29. 解释Django语言
- 30. GetSystemTimeZone英语非英语操作系统
什么? IL不以奇点解释。 –