用Java或C编程的OS(内核)

时间:2011-02-08 20:22:29

标签: java c operating-system kernel

我将开始构建操作系统,我不知道为内核选择哪种编程语言。我最喜欢的语言是Java,但我知道所有主要操作系统(Windows,Linux,Mac OS)都是在C中编程的,而且Java需要虚拟机。编程比Java-based操作系统要比C-based操作系统更难编程吗?每种语言有哪些优点和缺点?

6 个答案:

答案 0 :(得分:8)

http://wiki.osdev.org是一个非常有用的网站。它告诉您如何构建工具链,哪些语言选项可用,并且有一些很好的示例代码。

伊凡

答案 1 :(得分:6)

我会谦虚地建议你在尝试构建一个操作系统之前真正学习一门编程语言,之后你会意识到你可以用哪种语言自己编写内核。

Java等编程语言根本不提供创建操作系统所需的低级例程。您可以用c或c ++实现操作系统。除非您掌握引导代码(读取汇编程序)等编程语言,例如c,否则重新考虑一个可能更容易的任务将是一个好主意。

然而,您可以通过在另一个操作系统中将其作为程序运行来模拟操作系统,在这种情况下,您可以尝试使用您选择的任何语言。

答案 2 :(得分:3)

  

基于Java的操作系统比基于C的操作系统更难编程吗?

您如何编写硬件级编程来处理Java中的中断?

答案 3 :(得分:3)

似乎已经有几个基于Java的操作系统了。我对操作系统编程知之甚少,但似乎有大量关于基于Java的操作系统的文献(其中大部分都是德语)来自埃尔兰根大学:http://www4.informatik.uni-erlangen.de/Projects/JX/publications.html
也许有一些东西可以提供帮助。

编写基于C的操作系统应该是最简单的,只是因为有更多关于它的信息。

答案 4 :(得分:1)

除非您可以访问将Java编译为机器语言的编译器,否则您将无法使用Java编写OS内核。 Java需要一个虚拟机来解释字节代码并执行本机指令(依赖于内核)。您必须能够直接与硬件交互,以便对操作系统进行编程,这是您无法使用Java执行的操作。实际上,你唯一的选择是C与装配相结合。

答案 5 :(得分:0)

JVM提供了大量类似操作系统的功能,而且它不能用Java编写 - 所以无论哪种方式,你最终都会用C编写大量的代码(或者是可以生成不需要虚拟机的代码。)