我有一个问题已经在我的脑海里有一段时间了。我知道像C这样的语言比Python更快,因此被用来编写操作系统。我在某处读到用Python编写的操作系统会非常慢。所以我的问题是:随着处理器速度的不断提高,特定语言的执行速度在操作系统开发中是否变得不那么重要了?在未来,是否有可能完全用Python编写一个运行速度与用C编写的几乎相同的操作系统?谢谢。
发布于 2013-05-31 17:14:08
常规问题
单独用Python编写操作系统是不可能的,因为Python不是自托管的。
像gcc这样的C编译器有专为操作系统开发(和其他相关任务)设计的特殊的“独立”模式,在这种模式下,像printf这样的函数是不可用的(因为你必须用汇编语言自己实现它们)。
在Python中,像print这样的函数是内置的(不能直接删除),如果你没有操作系统,那么如何实现它们呢?
最后,即使您可以禁用所有依赖于操作系统的Python部分,您仍然无法控制CPU。要启用分页和中断之类的功能,需要特殊的汇编指令,而Python不能生成这些指令。此外,您需要将内容放在内存中的特定位置,而Python没有原始指针。
This page有很多关于使用C语言以外的语言进行OS开发的有用信息。
速度
您说得对,Python只是比C慢的一个常量因素。您可以看到,在除OS开发之外的许多领域,随着CPU变得更快,动态语言正变得越来越流行。
操作系统开发没有什么不同,所以你会发现很多真实的例子,Python取代了通常用C编写的部分操作系统。一个例子是fusepy,它允许你用Python语言实现文件系统。
发布于 2013-05-31 17:17:00
不是的。想想看:如果对于以X速度运行的处理器,Python比C慢,那么对于以2X速度运行的处理器,Python与C的速度如何?
但是后来..。你可以用动态语言编写操作系统。人们就是这么做的。一旦你引导解释器。但这不会成为主流。至少在短期内不会。因为:主流操作系统已经...好吧..。主流。人们想要在他们的新处理器中使用所有的处理能力来...嗯..。处理一些东西。而不是为……提供基础。嗯..。处理流程的东西。
https://stackoverflow.com/questions/16853789
复制相似问题