如何使用 Java 创建操作系统?
How to create operating system using Java?
我是否可以使用 java 创建一个操作系统?无论如何我可以嵌入 windows java 库以便我可以使用 JFrame、JFileChooser、JTextArea 等开发我的 OS 吗?还是在长期 运行 学习 C 或 C++ 中我会更好?
简答:没有。
首先,Java 使用 OS 到 运行 您的 java 代码。许多 windows 正在使用 OS 进行渲染。
其次,您应该注意大多数(如果不是全部的话)OS 都是以 machine/assembly 代码开头的。如果您的目标是完全从头开始自己制作一个 OS,则您将需要学习汇编,这是没有办法的。幸运的是,你只需要写少量的汇编就可以得到用C或C++写的东西到运行(注意Java 运行时间写在C/C++).
自从 Java 使用 OS' 本地代码到 manage/render windows 和控件,并假设您从源代码编译 Java 而没有使用说库,如果你编写了唯一的代码来处理渲染控件和 windows 的所有图形,那么是的,假设你可以在 java 中编写大部分 OS 一旦你得到基本的东西完成了。你应该知道你不能使用很多 javafx 或 swing 来做任何事情,因为它们依赖于 OS.
最后,我强烈建议你上大学并接受扎实的教育,然后我会进一步建议你在一家拥有经验丰富的程序员团队的公司工作至少 4 年(至少),然后再接受这样的职位创建 OS 是一项艰巨的任务。你不会自己写出有用的 OS 并且你似乎拥有任何语言的知识量。
编辑:
正如其他答案中提到的,有些机器的微处理器本机理解 java 字节码。但是,为该处理器编写的 OS 只能在该处理器上运行,不会广泛分发 atm。出于学习目的,你最好坚持使用 JVM,无论你现在可以访问什么,你真的不会有太多收获。
此外,学习编写 OS 是我鼓励所有程序员学习的一项任务。它将使您更好地了解计算机的内部和外部工作原理。从编程的角度来看,就高级语言而言,使用一种语言而不是另一种语言不会有太大损失或收获。有些人认为(也许我同意)Java 不使用指针,所以大多数人都不知道这一点,但是如果你的意图是在 Java 中做所有事情,那么你只需要了解 Java.
作为一个观点,我认为你最好学习你遇到的每一种编程语言,以及每一种语言的前身。我并不是说要成为 BCPL 或 COBOL 或任何该级别的高级程序员,但至少要研究、学习如何做基本的事情并知道它们的存在,并且(在大多数情况下)可以做所有其他语言可以做的事情。
我的专业建议,学习并掌握您的雇主希望您使用的任何语言。如果您换工作,请准备好学习新知识。并非所有工作都使用 Java 或 C++,因此如果您将自己限制在 Java 甚至 C/C++,您将不会在就业市场上那么受欢迎。
是的,你可以。
许多选项可供选择:
- JNI 提供 Java 代码与本机代码的通信。您可以使用本机代码开发引导加载程序,但 UI 在 Java
- Java处理器:JVM在硬件中的实现
- Java 优化处理器
- 嵌入式Java
- 微微Java
等等..
没有什么可以阻止您在 Java 中发展 OS。您可以找到许多 OSes 写在 Java 中:从 CISCO 到 NASA...
然而,即使创建一个微小的 OS 也需要付出很多努力。
我是否可以使用 java 创建一个操作系统?无论如何我可以嵌入 windows java 库以便我可以使用 JFrame、JFileChooser、JTextArea 等开发我的 OS 吗?还是在长期 运行 学习 C 或 C++ 中我会更好?
简答:没有。
首先,Java 使用 OS 到 运行 您的 java 代码。许多 windows 正在使用 OS 进行渲染。
其次,您应该注意大多数(如果不是全部的话)OS 都是以 machine/assembly 代码开头的。如果您的目标是完全从头开始自己制作一个 OS,则您将需要学习汇编,这是没有办法的。幸运的是,你只需要写少量的汇编就可以得到用C或C++写的东西到运行(注意Java 运行时间写在C/C++).
自从 Java 使用 OS' 本地代码到 manage/render windows 和控件,并假设您从源代码编译 Java 而没有使用说库,如果你编写了唯一的代码来处理渲染控件和 windows 的所有图形,那么是的,假设你可以在 java 中编写大部分 OS 一旦你得到基本的东西完成了。你应该知道你不能使用很多 javafx 或 swing 来做任何事情,因为它们依赖于 OS.
最后,我强烈建议你上大学并接受扎实的教育,然后我会进一步建议你在一家拥有经验丰富的程序员团队的公司工作至少 4 年(至少),然后再接受这样的职位创建 OS 是一项艰巨的任务。你不会自己写出有用的 OS 并且你似乎拥有任何语言的知识量。
编辑: 正如其他答案中提到的,有些机器的微处理器本机理解 java 字节码。但是,为该处理器编写的 OS 只能在该处理器上运行,不会广泛分发 atm。出于学习目的,你最好坚持使用 JVM,无论你现在可以访问什么,你真的不会有太多收获。
此外,学习编写 OS 是我鼓励所有程序员学习的一项任务。它将使您更好地了解计算机的内部和外部工作原理。从编程的角度来看,就高级语言而言,使用一种语言而不是另一种语言不会有太大损失或收获。有些人认为(也许我同意)Java 不使用指针,所以大多数人都不知道这一点,但是如果你的意图是在 Java 中做所有事情,那么你只需要了解 Java.
作为一个观点,我认为你最好学习你遇到的每一种编程语言,以及每一种语言的前身。我并不是说要成为 BCPL 或 COBOL 或任何该级别的高级程序员,但至少要研究、学习如何做基本的事情并知道它们的存在,并且(在大多数情况下)可以做所有其他语言可以做的事情。
我的专业建议,学习并掌握您的雇主希望您使用的任何语言。如果您换工作,请准备好学习新知识。并非所有工作都使用 Java 或 C++,因此如果您将自己限制在 Java 甚至 C/C++,您将不会在就业市场上那么受欢迎。
是的,你可以。
许多选项可供选择:
- JNI 提供 Java 代码与本机代码的通信。您可以使用本机代码开发引导加载程序,但 UI 在 Java
- Java处理器:JVM在硬件中的实现
- Java 优化处理器
- 嵌入式Java
- 微微Java
等等..
没有什么可以阻止您在 Java 中发展 OS。您可以找到许多 OSes 写在 Java 中:从 CISCO 到 NASA...
然而,即使创建一个微小的 OS 也需要付出很多努力。