2012-02-24 47 views
0

我期待构建一个操作系统。我知道它需要的工作量,并没有把它当作某种笑话,因为大多数致力于该主题的网站的初学者部分都假设了这一点。我只是想知道,我需要知道哪些语言,因为所有维基和网站的信息都不一样。有人说只是C或C++,有人说是C,Pascal等等的组合。所有可以肯定的是,组装是必要的。需要什么语言?特定CPU的功能打交道时,例如切换权限级别或安装页表时,实际上是需要建立操作系统所需的语言

+0

随着生活中的一切越多,你越了解你越好:) 我认为汇编和C就足够了,但让导师在这里回答它,希望以认真的态度 – 0x90 2012-02-24 23:17:10

回答

2

大会。

其余的可以用任何合理的低层次的语言,能够操纵指针。 C本身就足够了。 Linux是用C编写的,有一些程序集(没有C++)。我想帕斯卡尔会做的伎俩太,尽管它可能是比C

1

有点不太方便,我认为它真的只是一个偏好的问题。你显然需要汇编,但除此之外,你只需要一个编译为本地代码的低级语言。 C可能是最好的,但是根据你的代码结构,你可能会发现C++也会有帮助。至于Pascal,我相信这在技术上是可行的,但是你可能会发现你的选择受到严格限制,因为Pascal在很长一段时间内还没有被普遍使用(比较SO用Pascal标记420个问题,而C用超过50,000个问题) 。

1

您可以使用编译为一个足够低的水平二进制,想必任何语言。 Java和其他解释性语言都出来了,但除此之外,它是设计师的选择...

2
上装配是必须的实际上是迅速消失

完整。对于大多数系统来说,这将是必须的,但随着UEFI的发展,可以摆脱直装配,并且可以做一些小的内联装配,而且它可以正常工作。另外,如果你不写你自己的引导程序,你也可以减少很多程序集。

所有这一切抛开,将需要C或其他一些低层次的语言。特别是操纵指针。 C++是可能的,但由于语言特性可能需要你做一些细致的工作,即例外。详情请参阅here。这类问题的一个很好的资源是osdev.org。在我看来,这link给你最好的答案。