文章链接: Oberon – The Overlooked Jewel

很多行业以及技术在早期都呈现出了一种百花争鸣的态势,然后到了成熟期一般都只是几家公司或者技术在互相竞争。操作系统也是如此,目前的主流 OS 里基本上就是 Mac/Linux/Windows 三家。但是在互联网早期,出现了很多设计里面差别很大的操作系统,从 GNU 的 Hurd,到 Lisp Machine,还有 Oberon 等。他们之所以消失,并不是说本身技术方面不占优势,而是从商业以及用户习惯上来讲,最终使用的人数太少而逐渐销声匿迹而已。而且从设计里面上来说,相当一部分的 OS 设计是因为理念太过超前而违背了当时用户的使用习惯而被舍弃。所以即使从今日来看,探究一下这些老旧的操作系统的设计理念仍然是大有益处的。

Oberon 的作者也是 Pascal 的作者。他自己对 Pascal 是很矛盾的感情。Pascal 本身只是他的一个作品之一,他本身的能力是非常强的,先后设计了很多完整的操作系统,编译器等等。但是外界对他的期待都在 Pascal 上。他也一直拖着不去更新,而是专注于自己感兴趣的领域。Pascal 渐渐式微,Oberon 也淡出大众视野。他沉浸于自己的创造乐趣之中,也给后世留下了无数珍宝。

文章提到了几个 Oberon 操作系统的特点,让人都非常印象深刻。

系统级 GC#

GC 在我们一贯看来都是属于高级语言的概念,操作系统很少有人会用 GC 来做资源管理。Oberon 实现了系统级别的 GC: 进程使用文件,不需要显式地自己去关闭文件句柄等。现在操作系统的应用程序因为系统没有 GC,不管是操作系统本身还是应用程序都需要许多额外的处理此类细节的代码逻辑。而且需要设置各种文件句柄的上限等等。Oberon 所采取的策略对未来的操作系统来说很是很值得借鉴的。

更少的对话框#

对话框这个东西,自操作系统有了图形界面不久就一直存在。软件用它来给用户提供编辑,确认等操作。但是对话框并不是一个好的设计,因为它需要会打断用户的思路,强行让用户分散注意力去关注于一个全新的界面。现代的操作系统仍然有很多的这样的或无奈或多余的设计, 比如:

  • Mac OSX 在关机的时候,因为平时开的软件比较多。经常就是需要一个一个地点各个软件弹出的确认退出的对话框。系统并没有一个默认的忽略选项,即使用户完全不在意各个软件是否需要保存当前状态。Mac OSX 为此做了一个 Force Quit的功能,用户需要一个一个地强制退出可以忽略的软件
  • 文件的更名操作既可以弹出对话框,也可以直接按 Enter 去修改。后者就比前者简单好用的多
  • Mac 安装软件的一步拖动方式就比 Windwos 的在对话框中一直点下一步好很多

Oberon 在设计之处就考虑到了这个问题,尽量在用户界面少使用对话框。比如它的文件另存为操作,就可以直接点击文件名,输入一个新的,然后点击保存命令即可。这比现在常用的弹出一个对话框让用户输入再确认好的多。

校园合作#

这是最让我震惊的一点。 Oberon 操作系统在作者所在的学校里,所有的人都在用这种操作系统。它发源于本校,主要的开发者都在本校工作或者退休了,使用同一种编程语言: Oberon,有足够用的应用程序。这样一种操作系统对学生来说, 在教学上拥有无与伦比的优势:详尽的文档,近在咫尺的开发者,你可以从头到尾了解一个操作系统的实现细节,学习它,研究它,改造它, 提升它的性能,给它开发应用程序。所有的这一切,都会被记录下来,作为一个学校的令人自豪的存在,被后来的追随者延续它的生命。

这几乎就是所有的大学的计算机系最理想的教育模式。由最富有经验的教授或者学生开发,从操作系统,数据库,到一切课本上需要学习的东西,由自己创造出来,让学生参与进来,代代相传,生生不息。不同学校之间还可以经常性地举办各种同类软件之间的竞赛(性能,设计等等)。

Links#

  1. Oberon 操作系统:被忽略的珍宝