4

“操作系统不以 C 开头和结尾,C 不等于整个世界”

 2 years ago
source link: https://blog.csdn.net/csdnnews/article/details/123988894
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

整理 | 张仕影
出品 | CSDN(ID:CSDNnews)

众所周知,C 是一种被广泛使用的语言,从操作系统内核到加密算法的编写,到处都在使用 C,它在多个领域发挥着重要作用。不久前,国外一位 Swift 和 Rust 专家 Aria Beingessner 在其文章《 C 不再是一种编程语言》中说,如今 C 不再只是一种编程语言,而成了每一种通用编程语言都需要遵守的协议,它具有绝对的统治地位。

不过近日 The Register 网站的作者 Liam Proven 却在其发表的关于 C 的文章中表示,古往今来有很多不涉及 C 的编程语言和操作系统都发展得不错:“并不是所有东西都基于 C。在 C 出现之前,许多当前流行的商业操作系统就已经出现了,还有一些用新旧语言编写的操作系统,也基本不涉及 C 语言。”

ALGOL 语言

ALGOL(ALGOrithmic Language),计算机发展史上首批清晰定义的高级语言,在20世纪60年代,ALGOL 影响力巨大,是大多数现代指令性语言的鼻祖。

美国 Burroughs 公司曾围绕 ALGOL 高级语言编写操作系统以及应用程序,开创性地设计了一系列大型机,即 Burroughs 大型系统。其中第一台大型机 B5000 于 1961 年推出,所使用的操作系统为 Burroughs 公司在 1916 年引入的 MCP(Master Control Program)大型机操作系统。(MCP 最初是于 1961 年用 ESPOL 语言编写的,而 ESPOL 为 ALGOL 60 的超集。 )

在众多商用操作系统中,MCP 是一款为数不多仍然沿用至今的“古老”操作系统,目前主要应用在 Unisys ClearPath/MCP。ClearPath MCP 当前的版本是 20.0,于2021年5月发布。

PASCAL 语言及其“后裔”

Pascal 语言是由瑞士计算机科学家 Niklaus Wirth 在上世纪六十年代末所设计的。Pascal 语法严谨,一出世就受到广泛欢迎,迅速地从欧洲传到美国。Pascal 语言是 Apple Lisa(苹果公司发布的世界首台图形界面计算机)和早期 Mac 开发使用的高级语言,此外最初 Macintosh 操作系统的部分也是从 Pascal 源代码手工翻译成 Motorola 68000 汇编语言的。

不少人眼中的 Pascal 语言是一种并不流行的语言,但实际上 NOI(全国奥林匹克信息学竞赛)将 Pascal 、C 与 C++ 作为竞赛使用的程序设计语言, 同时 IOI(国际信息学奥林匹克竞赛)也将 Pascal 作为三种程序设计语言之一——事实上 Pascal 并没有大家想的那么不受欢迎。

20 世纪 80 年代,Wirth 为操作系统和应用程序专门设计了 Modula-2 语言。目前,世界上已经开发了近百个 Modula-2 编译系统。欧洲、加拿大、澳大利亚等不少大学已经用 Modula-2 代替 Pascal 语言作为计算机科学系本科生的第一门程序设计课。

此外,Wirth 设计的 Oberon 操作系统也具有重要的价值。如今,Oberon 仍有多个项目正在运行中,如 Project Oberon 项目,该项目在基于 FPGA(现场可编程逻辑门阵列)的现代硬件上运行一个现代化的操作系统版本;还有 Native Oberon 项目,在 x86-32 PC 和 QEMU(一款开源的模拟器及虚拟机监管器)下运行。

C 的“后裔”

以上所讲的与 C 并无关联的编程语言还是有些晦涩难懂,下面可以看一看 C 的“后裔”如今发发展如何。

首先是 C++。虽然 Linux 之父曾多次表明自己不喜欢 C++ ,还将其批得一无是处:“C++ 是一门很糟糕的语言”、“很多不合格的程序员都在使用它” 、”C++ 最后做出来的就是一堆可怕且难以维护的垃圾”…但 C++ 依旧是目前非常受欢迎的一种语言。由 C 扩展升级而产生的 C++,拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。像是曾经辉煌的 Symbian 系统(塞班公司为手机而设计的操作系统)和目前流行的开源数据库 MySQL 等等,都基于 C++ 语言设计。

C# 则是由 C 和 C++ 衍生出来的一种安全稳定、简单优雅的面向对象编程语言,在继承 C 和 C++ 强大功能的同时去掉了一些它们的复杂特性。它凭借其强大的操作能力以及优雅的语法风格等条件成为 .NET(用于构建多种应用的免费开源开发平台)开发的首选语言。C# 是兼顾系统开发和应用开发的实用语言,因此被很多人认为其很有可能成为编程语言历史上的第一个“全能”型语言。

事实上,近几年来有关 C 是否会被 Rust 语言取代的话题一直层出不穷,其中被讨论最多的应该就是 Rust 能否成为继 C 语言之后 Linux 内核的第二官方语言。作为上线时间并不是很久的 Rust 语言目前已经受到了足够的重视,从微软探索将 Rust 作为 C 和 C++ 的安全替代方案开始,Rust 吸引了越来越多的目光:内核维护者表示愿意接受用 Rust 开发 Linux 驱动;AWS(亚马逊 Web 服务)也伸出橄榄枝,宣布赞助 Rust……

“C 不等于整个世界”

虽然 C 的世界是吸引人的,但同时 C 以外的世界也很精彩,作者 Liam Proven 在其文章的最后表示:“我希望这些例子可以说明一点:操作系统不以 C 开头和结尾,C 也不等于整个世界。”

不少阅读完 Liam Proven 文章的网友都表达了自己的一些看法,一部分网友对 Liam Proven 的观点表示赞同:

网友@Jonathan Knight:“我认为,以 C 语言为中心的操作系统观点真的只对年轻人有效。”

网友@bazza:“上世纪60、70年代,在众多操作系统/语言的竞争中必须要有一种获得胜利,只是碰巧它是 C 和 UNIX 。”

也有一部分网友对 Liam Proven 的观点表示怀疑,认为如今再提 ALGOL 和 Pascal 已没有意义:

网友@R Soul:“这篇文章就相当于在鼠疫时代,一个推着手推车的人到处说‘把你的死人带出来,把你的死人带出来’。”

那么,你对于非 C 操作系统之外的世界有什么看法呢?

参考链接:https://www.theregister.com/2022/03/29/non_c_operating_systems/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK