我知道C语言是操作系统开发的标准编程语言,但是出于好奇,我想知道在C之前主要用什么编程语言进行操作系统开发?
我知道C语言是操作系统开发的标准编程语言,但是出于好奇,我想知道在C之前主要用什么编程语言进行操作系统开发?
C语言在Unix(1969年...)之前有很多系统。 这里是一个简略的时间轴。 点击每个系统以获取详细信息。大多数早期系统将使用汇编语言实现。一个值得注意的例外(未列在时间轴中)是1961年先进的B5000,其操作系统是用ALGOL编写的。
Burroughs是最早使用非汇编语言开发操作系统的公司之一,他们选择了一种Algol方言。
1965年,Multics(由ARPA资助的Project MAC)开始设计,并选择使用PL/I来开发操作系统。1969年,Multics在MIT开放使用,但存在许多问题,Bell Labs退出了Project MAC。Ken Thompson、Dennis Ritchie、Doug McIlroy和J.F.Ossanna继续寻求完美解决方案,Unics(后来的Unix)的开发也随之开始。
Flex 机器 - 这台硬件是定制的,可以进行微程序设计,有一个操作系统、(模块化)编译器、编辑器、垃圾回收器和文件系统,全部使用 Algol 68RS编写。该 Algol68RS 的 Linux 移植版可从 Sourceforge:algol68toc 下载。
/* 有趣的是,DRA 的代数指定的抽象机器 Ten15 的部分仍然可用,也可以从 Sourceforge:TenDRA(适用于 minux)获取。 Ten15 作为 DRA 编译器的中间语言,并演变成支持 C 和 Ada。 显然,曾经尝试使用 TenDRA C 编译器移植 FreeBSD / Unix */ICL VME - S3编程语言 是操作系统VME的实现语言。S3基于ALGOL 68,但数据类型和运算符与ICL 2900系列提供的相同。该操作系统仍作为Linux虚拟机使用,并拥有约10万用户。
苏联时代的计算机Эльбрус-1 (Elbrus-1)和Эльбрус-2是使用高级语言uЭль-76 (AL-76)创建的,而不是传统的汇编语言。uЭль-76类似于Algol-68,主要区别在于uЭль-76支持硬件级别的动态绑定类型。uЭль-76用于应用程序、作业控制、系统编程c.f. e2k-spec。
也许美国军方在某个地方正在做类似的事情。有人知道吗?
许多16位Forth系统的解释器和(相当原始的)操作系统层都是用Forth编写的。
最初的Mac OS是用68k ASM和稍微扩展的Pascal混合编写的。
ADA已被用于编写多个操作系统。
但我猜在C之前,用于操作系统开发的主要语言是IBM 360汇编语言。
最近,GNU的as
工具使汇编语言名声有点不好,因为它相对原始。但不要相信恐吓战术。
as
感觉几乎不比直接在Motorola S-Records中编码更好,用于UV EPROM编程器。(抱歉,老顽固的本性又显露出来了。) - RBerteig