构建操作系统所需的语言

时间:2012-02-24 23:12:46

标签: assembly operating-system

我希望建立一个操作系统。我知道它需要的工作量,而不是将它当作某种笑话,因为大多数专门讨论这个主题的网站的初学者部分都假设了这一点。我只是想知道,我需要知道哪些语言,因为所有wiki和网站的信息都不同。有人说C或C ++,有些人说是C,Pascal和其他人的组合。可以肯定的是,需要组装。人们需要什么语言?

4 个答案:

答案 0 :(得分:2)

在处理特定于CPU的功能时,例如在切换权限级别或安装页面表时,实际上需要进行汇编。

其余的可以用任何合理的低级语言编写,能够操作指针。例如,C本身就足够了。 Linux是用C语言编写的,只有一个小程序集(没有C ++)。我猜Pascal也会这样做,虽然它可能比C方便一点。

答案 1 :(得分:2)

完全装配是必须的,实际上是快速消失。对于大多数系统来说,这将是必须的,但随着UEFI的发展,可以摆脱直接组装,你可以做一些小的内联汇编,它会工作正常。此外,如果你没有编写自己的引导加载程序,你也可以减少组装。

除此之外,还需要C语言或其他一些低级语言。特别是操纵指针。 C ++是可能的,但由于语言功能可能需要你做一些详细的工作,即例外。有关详细信息,请参阅here。这类问题的一个很好的资源是osdev.org。在我看来,link为您提供了最佳答案。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您可以使用任何编译为足够低级别二进制文件的语言。 Java和其他解释语言已经出局,但除此之外,它是设计师的选择......