用于编写操作系统(Windows)或启动CD的语言是什么?
答案 0 :(得分:7)
引导加载程序通常用汇编语言编写,以及低级内核部分,如硬件驱动程序 内核本身可以用不同的语言编写,如Assembly,C或C ++。
答案 1 :(得分:6)
答案 2 :(得分:5)
答案 3 :(得分:3)
我很确定最早的Windows版本主要是用Pascal编写的。这就是为什么你仍然可以在旧文档和头文件中找到对pascal调用约定的引用,尽管AFAIK这些约定只适用于16位Windows。
[编辑 - 我现在很确定我刚才被告知这是错的。微软有理由使用我不记得的Pascal调用约定,但没有使用Pascal编写Windows(或大部分或其他)编码。
现在,Windows可能是用多种语言编写的,但强调C和C ++。例如,.NET的某些部分可能是用C#编写的,而现在很容易算作O / S组件。
同样,我敢打赌,在现代版本的Mac O / S中至少有一些Objective C组件。
有很多语言有点适合编写操作系统。在利基领域,我确信你会找到Ada,Modula 2等等。
没有垃圾收集的命令式语言可能是最常见的,因为与硬件和汇编代码的接口相对容易。但是,大多数函数式语言都是不纯的。如果你看起来足够努力,有低级别的Lisp版本。 ML系列语言和Haskell可能已经用于操作系统,至少用于研究/学术目的。
事实上,在一些操作系统组件中找到一些Prolog并不会感到惊讶 - 当然也有一些代码使用定制的域特定语言编写。
实际操作系统通常是一个非常大的软件系统。甚至嵌入式操作系统也具有相当大的复杂性,例如对于您不需要硬件但其他人不需要的选项。我从来没有参与其中,但我敢打赌,为了实现这一目标,开发人员主要是实用主义者 - 使用他们所拥有的任何东西来完成工作。
答案 4 :(得分:2)
嗯,问题还在于“什么是操作系统?” (捆绑的Internet Explorer是否计入?),但我认为Windows主要是C和C ++。