【发布时间】:2010-11-08 23:04:46
【问题描述】:
像操作系统这样的东西会用 C 语言编写是有道理的。但是其中有多少,以及什么样的 C 语言?我的意思是,在 C 中,如果你需要一些堆内存,你会调用 malloc。但是,操作系统甚至 有 堆吗?据我所知,malloc 向操作系统请求内存,然后将其添加到链表、二叉树或其他东西中。调用堆栈呢?操作系统负责设置其他应用程序使用的所有这些stuff,但它是如何做到的呢?当您想在 C 中打开或创建文件时,相应的函数向操作系统询问该文件。所以......那个电话的另一边是什么样的C?还是在内存分配的另一端?
另外,实际上有多少操作系统是用 C 编写的?所有的?依赖于架构的代码呢?更高层次的抽象又如何——用更高级的语言(如 C++)编写过吗?
我的意思是,我只是出于好奇而问这个问题。我现在正在下载最新的 linux 内核,但它需要永远。我不确定我是否最终能够遵循代码 - 或者我是否会陷入我从未见过的无法避免的复杂网络中。
【问题讨论】:
-
投票结束时过于宽泛或基于意见。如果它是“OS XXX 是用什么写的”,那将是可以回答的。对于任何操作系统,任何带有
asm()的编译语言都可以使用。 -
“6 年前活跃”:/