Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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
Javascript 可以使用JS或PHP创建操作系统吗_Javascript_Php_Operating System - Fatal编程技术网

Javascript 可以使用JS或PHP创建操作系统吗

Javascript 可以使用JS或PHP创建操作系统吗,javascript,php,operating-system,Javascript,Php,Operating System,这是一个有趣的问题,有许多解释语言可以用来创建操作系统,可以使用PHP或JS创建操作系统 它不一定是一个完全成熟的操作系统,至少是一个打印Hello World的操作系统 这三种语言都是图灵完备的,因此它们可以模拟任何其他图灵完备语言。使用一种(或几种)图灵完备语言编写的操作系统也可以使用另一种语言编写,前提是提供了对底层硬件的充分访问 这样的东西能否以任何合理的速度运行完全是另一回事 在编程中可以做的事情实际上是无限的,但其中许多事情需要付出大量的努力。操作系统的主要目的是在应用程序和计算机硬

这是一个有趣的问题,有许多解释语言可以用来创建操作系统,可以使用PHP或JS创建操作系统

它不一定是一个完全成熟的操作系统,至少是一个打印
Hello World
的操作系统


这三种语言都是图灵完备的,因此它们可以模拟任何其他图灵完备语言。使用一种(或几种)图灵完备语言编写的操作系统也可以使用另一种语言编写,前提是提供了对底层硬件的充分访问

这样的东西能否以任何合理的速度运行完全是另一回事


在编程中可以做的事情实际上是无限的,但其中许多事情需要付出大量的努力。

操作系统的主要目的是在应用程序和计算机硬件之间提供接口,通常将细节抽象出来。为此,操作系统代码必须能够直接(或几乎直接,例如通过调用BIOS函数)访问硬件

像PHP和JavaScript这样的高级语言没有任何机制来实现这一点。它们依赖于操作系统来提供对高级别硬件的访问:文件、网络套接字等

这些语言确实允许您在扩展库中链接,这给了它们额外的功能。但实际上,您并不是用这些语言编写操作系统,而是用编写扩展的语言编写操作系统


如果你坚持使用C语言的可移植特性,我认为即使是C语言也不能用来编写操作系统。用C编写的操作系统依赖于与实现相关的功能,例如将整数转换为指针,它们使用诸如
asm()
之类的扩展,或者偶尔与汇编中编写的子程序链接,以便直接控制硬件。

您似乎对解释器的工作方式有一些基本的误解。解释语言不“解释为C++”(或用于创建解释程序的任何语言)。相反,解释器是一个单独的程序,它将另一个程序加载到内存中,并尝试读取内存以执行其中可能的指令。是的,可以使用解释语言创建操作系统。以使用Dalvik虚拟机的Android为例,它实际上比这要复杂一点,因为许多现代解释语言实际上是编译成本机代码的,根本不进行解释。这是由Dalvik VM(前面提到过)以及大多数Javascript“解释器”完成的。此外,还有C和C++的实际解释器,它们没有编译成本机代码。最后,关于“操作系统”本身的术语…这是一个非常宽泛的术语,可以适用于许多不同的层面。有些人认为直接到硬件内核就是操作系统。其他人只考虑用户面对操作系统的部分。还有一些人认为操作系统是两者的混合体。您还必须记住,并非所有语言都公开或具有用于直接到硬件通信的接口,这是操作系统较低级别所需要的。开发操作系统的主要障碍(我对操作系统角色的理解方式)是,您需要一些代码来与外围设备交互,而这些外围设备(在一天结束时)需要是机器代码,因为这是系统在引导时唯一能理解的东西。解释器和更高级别的东西需要从某个地方读取,而某个地方需要进行读取的代码。据我所知,PHP或JS不容易编译成机器代码,所以除非你(至少)将PHP或JS编写成ASM编译器,否则你真的很幸运,操作系统需要控制硬件,而PHP没有任何方法来做到这一点。它调用操作系统函数来实现这一点,但它可以为模拟硬件运行操作系统,我想,这不是一个“真正”的操作系统。