如何使用Java创建操作系统?

rya*_*pvw 0 java operating-system

无论如何我可以使用java创建一个操作系统吗?无论如何,我是否可以嵌入 Windows java 库,以便我可以使用 JFrame、JFileChooser、JTextArea 等来开发我的操作系统?或者从长远来看我学习 C 或 C++ 会更好吗?

ydo*_*ebi 5

简短的回答:不。

首先,Java 使用操作系统来运行您的 java 代码。很多窗口都使用操作系统来渲染。

其次,您应该注意,大多数(如果不是全部)操作系统都是使用机器/汇编代码启动的。如果您的目标是完全从头开始自己制作一个操作系统,那么您将需要学习汇编,并且没有办法解决这个问题。幸运的是,您只需要编写少量的程序集,就可以运行用 C 或 C++ 编写的代码(请注意,Java 运行时是用 C/C++ 编写的)。

由于 Java 使用操作系统的本机代码来管理/渲染窗口和控件,并且假设您已经从源代码编译了 Java,而不使用所述库,因此如果您编写了唯一的代码来处理渲染控件和窗口的所有图形,那么是的,假设一旦你完成了基本的工作,你就可以用 java 编写大部分操作系统。您应该知道,您将无法使用 javafx 或 swing 来做任何事情,因为它们依赖于操作系统。

最后,我强烈建议您上大学并接受扎实的教育,然后我会进一步建议您在一家拥有经验丰富的程序员团队的公司工作至少 4 年(至少),然后再承担创建一个操作系统。你不可能凭自己所掌握的任何语言知识来编写一个有用的操作系统。

编辑:正如其他答案中提到的,有些机器的微处理器本身就理解java字节码。然而,为该处理器编写的操作系统只能在该处理器上运行,并且不会广泛分发 atm。出于学习目的,您最好坚持使用 JVM 来处理您现在可以访问的任何内容,因为您实际上不会获得太多收益。

另外,学习编写操作系统是我鼓励所有程序员学习的一项任务。它将让您更好地了解计算机的内部和外部工作原理。从编程的角度来看,相对于高级语言,使用一种语言相对于另一种语言不会损失或获得太多。有些人认为(也许我同意)Java 不使用指针,因此大多数人都忽略了这一点,但是如果您的意图是用 Java 完成所有操作,那么您需要了解的就是 Java。

作为一个观点,我认为你最好学习你遇到的每一种编程语言,以及它们的前辈语言。我并不是说成为 BCPL 或 COBOL 或任何该级别的高级程序员,但至少要研究、学习如何做基本的事情并知道它们的存在,并且(在大多数情况下)可以做其他语言可以做的所有事情。

我的专业建议是,学习并掌握雇主要求您使用的任何语言。如果您换工作,请准备好学习新东西。并非所有工作都使用 Java 或 C++,因此如果您仅限于 Java 甚至 C/C++,那么您在就业市场上将不会有市场。


Muh*_*ran 5

是的你可以。

有许多选项可以实现此目的:

  1. JNI 提供 Java 代码与本机代码的通信。您可以使用本机代码开发引导加载程序,但可以使用 Java 开发 UI
  2. Java处理器:JVM在硬件中的实现
  3. Java 优化处理器
  4. 嵌入式Java
  5. picoJava

等等..

没有什么可以阻止您用 Java 开发操作系统。您可以找到许多用 Java 编写的操作系统:从 CISCO 到 NASA……

然而,即使创建一个微型操作系统也需要付出很多努力。