Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 哪些编程语言可以用来制作操作系统?_C_Assembly_Operating System - Fatal编程技术网

C 哪些编程语言可以用来制作操作系统?

C 哪些编程语言可以用来制作操作系统?,c,assembly,operating-system,C,Assembly,Operating System,我四处寻找要做的事情,然后我偶然发现了一本关于制作自己的简单C&Assembly命令行操作系统的指南。 我只是想知道,是主要的操作系统使用C语言,还是可以用其他语言创建操作系统,比如android和java。操作系统的最低级别是内核,它在CPU上运行,所以使用的语言不能依赖于虚拟机或解释器。编译器从该语言创建机器代码,并通常以定义良好的格式将输出打包到模块中。这些模块可用于创建库、应用程序或操作系统内核。您需要一种语言,它可以用相当数量的控件来指定模块内容,像C语言这样的语言相当简单,像C++这

我四处寻找要做的事情,然后我偶然发现了一本关于制作自己的简单C&Assembly命令行操作系统的指南。
我只是想知道,是主要的操作系统使用C语言,还是可以用其他语言创建操作系统,比如android和java。

操作系统的最低级别是内核,它在CPU上运行,所以使用的语言不能依赖于虚拟机或解释器。编译器从该语言创建机器代码,并通常以定义良好的格式将输出打包到模块中。这些模块可用于创建库、应用程序或操作系统内核。您需要一种语言,它可以用相当数量的控件来指定模块内容,像C语言这样的语言相当简单,像C++这样的语言使它变得更难,因此不用于操作系统的低级别。 在最低级别上,您需要完全控制输出,因为它必须与硬件匹配,而不是模块格式,所以您需要使用汇编语言来实现这一点

在内核之上,有很多东西使用更高级的接口,因此不需要特定的二进制模块,可以使用解释器或虚拟机。这些级别可以像Android一样使用Java


最初的MacOS是用Pascal版本编写的。一些IBM大型机操作系统使用PL/1。这些不再流行,但都像C一样编译成模块。

操作系统的最低级别是内核,它在CPU上运行,因此使用的语言不能依赖于虚拟机或解释器。编译器从该语言创建机器代码,并通常以定义良好的格式将输出打包到模块中。这些模块可用于创建库、应用程序或操作系统内核。您需要一种语言,它可以用相当数量的控件来指定模块内容,像C语言这样的语言相当简单,像C++这样的语言使它变得更难,因此不用于操作系统的低级别。 在最低级别上,您需要完全控制输出,因为它必须与硬件匹配,而不是模块格式,所以您需要使用汇编语言来实现这一点

在内核之上,有很多东西使用更高级的接口,因此不需要特定的二进制模块,可以使用解释器或虚拟机。这些级别可以像Android一样使用Java


最初的MacOS是用Pascal版本编写的。一些IBM大型机操作系统使用PL/1。这些不再流行,但都像C一样编译成模块。

Android基于Linux。它大部分是用C语言和汇编语言编写的。它需要一种编译成机器代码的语言,而不是虚拟机或解释器。@ Barmar考虑。CPU从内存可寻址的位置读取OP代码并执行OP代码。你可以从任何你喜欢的语言开始,只要最终你开始使用cpu可以读取和执行的操作码。根据您希望操作系统做什么,您可以从任何级别开始。您甚至可以在另一个操作系统中运行一个操作系统。听起来你想从一个非常低的层次开始,看看如何从那里引导自己。Android在用户空间中运行Java,作为一个由Linux内核管理的进程。内核本身不是Java。如果您用Java编写操作系统,那么它将是由JVM管理的虚拟机的操作系统,而不是任何真正的硬件。它可能只能运行Java代码,除非它也是某个CPU的模拟器。(如qemu用户)Android基于Linux。它大部分是用C语言和汇编语言编写的。它需要一种编译成机器代码的语言,而不是虚拟机或解释器。@ Barmar考虑。CPU从内存可寻址的位置读取OP代码并执行OP代码。你可以从任何你喜欢的语言开始,只要最终你开始使用cpu可以读取和执行的操作码。根据您希望操作系统做什么,您可以从任何级别开始。您甚至可以在另一个操作系统中运行一个操作系统。听起来你想从一个非常低的层次开始,看看如何从那里引导自己。Android在用户空间中运行Java,作为一个由Linux内核管理的进程。内核本身不是Java。如果您用Java编写操作系统,那么它将是由JVM管理的虚拟机的操作系统,而不是任何真正的硬件。它可能只能运行Java代码,除非它也是某个CPU的模拟器。(例如,像qemu用户一样)