繁体   English   中英

你能用C编写操作系统吗?

[英]Can you only write operating systems in C?

我得到了C及其超级集允许您进行低级别访问,但是您可以使用其他语言。 例如Visual Basic,C#甚至Java? 我只是好奇,因为从C开始以来它似乎应该有更好的东西。

您可以使用您选择的任何语言编写操作系统 - 只要您具有将其编译到该平台所需的引导。

例如, JNode是基于Java的OS(具有少量汇编程序)。

您可以使用其中任何一个来编写操作系统。 但是,您需要一个引导程序(可能用C编写)来加载和运行您的语言的运行时。

Google学术搜索为研究提供了一些良好的起点: http//scholar.google.com/scholar? q = java + operating + system&hl = en&btnG = Search&as_sdt = 1,5&as_sdtp = on

您几乎可以使用任何编程语言。 您可能需要一些汇编和/或C粘合代码来使用任何托管编程语言。

您可以在OSDev wiki论坛上获得大量信息。

有一个项目,他们甚至创建了直接编译为机器代码的C#编译器,因此内核中可能没有多少C或其他代码。 任何内核都需要一些程序集。

我很确定你可以,但正如你所说的那样使用C,因为它允许你进行低级访问,但是,Visual Basic,Java和C#,它们是在框架下工作的地方

可能有工具可以采用字节码(或者在C#的情况下为IL)并将其编译成当前处理器架构可以理解的机器级代码。 不过,我不知道自己。

ASSEMBLER就是答案! 单独的C不能生成一个很好的bootsector,因为你没有正确的输出格式。 但是大多数操作系统认为C是其大多数部分的好语言。

您可以使用多种语言“开箱即用”来编写诸如C ++,D,汇编等操作系统。

如果要使用C#,Java或VB等语言,则需要具有运行时环境(在某些情况下包括JIT编译器)。 这意味着,您必须编写这些运行时,并且您将无法使用Java等语言执行此操作。 您必须使用C / C ++ / Assembly之类的语言编写运行时代码,然后运行时可以加载Java / VB代码。

另一种方法是为C#/ Java / VB编写一个新的编译器,编译成机器代码或汇编。 这样可行,但是在OS / Executive级别使用VB或Java等语言会有很多麻烦,因为它们不允许你像C / C ++一样进行内存访问。 也不允许您直接运行CPU指令。

似乎从所有答案中可以肯定,但它不会像创建用C语言编写的那样简单或容易。最有可能需要硬件支持或至少需要一些c或c ++“胶水代码”

Cosmos - C#开源管理操作系统

http://www.codeproject.com/KB/system/CosmosIntro.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM