系统与基础设施ignorethecode.net
Oberon(2009)
Oberon (2009)
2009 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 2009 年的一篇博客文章,介绍 Niklaus Wirth 在 ETH Zürich 开发的 Oberon 操作系统。它的界面与主流 GUI 完全不同:没有桌面、没有重叠窗口,而是平铺的文本面板;任何被选中的文本(例如 Module.Function)点击即可作为命令执行,系统文本本身可扩展为富文本组件。
为什么经久不衰:它保存了一条几乎被淘汰的操作系统设计路径——小而完整、可读可改、文本即命令,今天读来仍能提供对 GUI 与可编程系统的另一种想象。
HN 评论精选
亲历者认为 Oberon 虽像玩具系统,但原创、可扩展,属于可改造系统传统中的有趣样本。
我不仅听说过 Oberon,还给它写过代码!Oberon 语言是 Pascal 和 Modula-2 之后相当不错的一支后裔,90 年代时编译器速度就已经很快。界面古怪得很有意思:正如文章所说,你可以在任何地方输入命令并点击执行;我用过的旧版本还有平铺窗口。特别妙的一点是系统基于一种可扩展的富文本格式——我写了个小时钟组件,可以在任何富文本里的任何位置实例化,实时显示时间。实际用起来它已经像个玩具系统,因为缺少大量实用软件,但作为玩具系统它丰富、原创,值得花几个周末探索和写代码。如果你喜欢探索不同路径的操作系统,这是比较有意思的一个;如果你着迷于 Lisp Machine、SmallTalk 或 OLPC 这类整个系统都力求易理解、可改造的系统,不妨看看。
ekidd查看英文原文
Not only have I heard of Oberon, I've written code for it! The Oberon programming language is a nicer-than-average descendant of Pascal and Modula-2. The compiler was reasonably fast even in the 90s. The UI was strange enough to feel really interesting. As the article mentions, you could type a command anywhere and click it. And the older version I used had tiling windows, although this seems to have changed. But one especially neat feature is that the system was based around a rich-text format that you could extend! I wrote a little clock widget that I could instantiate anywhere, inside any rich text, and it would give me a live time readout. In practice, Oberon already felt like a toy system when I used it, because it was missing tons of useful software. But as toy systems went, it was rich and original and well-worth a couple of weekends of exploring and coding. If you enjoy the idea of operating systems that explored a different path, this is one of the more interesting ones. If you're fascinated by systems like the Lisp Machine, or SmallTalk, or OLPC, where the entire system is meant to be easily understandable and hackable, take a look.
一位早期学生的负面回忆:教学选它作“零基础”语言,但系统不稳定、缺工具,多数人用完就弃。
1991 年我在德国开始学计算机时,第一门“实践信息学 I”课就用 X11 终端上的 Oberon 作为第一门编程语言。教授说 Oberon 是新的,这样能保证所有人起点相同、没有先验知识,于是我们用 Oberon 写链表、哈希表、树、排序算法等。那时几乎所有学生都在 Apple、Commodore、Atari 家用电脑上编过程,或用过 Turbo Pascal 和 Turbo C。由于 Oberon 系统不太稳定也不友好,学生们对它支持寥寥:我记得编译器在某些输入下能稳定复现地崩溃,没有调试器,编辑器也不达预期。课程结束后,包括我在内的大多数人再没碰过 Oberon。不过,三十年后不妨再看看它今天是什么感觉。
pacod查看英文原文
When I started to study computer sciences in Germany in 1991, we used Oberon on X11 terminals during the the initial "Praktische Informatik I" lecture as our first programming language. Oberon being new, the professor said he wanted to make sure that everyone starts under the same conditions and with no pre-knowledge. So we wrote our linked lists, hash tables, trees, sorting algorithms etc. in Oberon. That time almost all students had a track-record coding on Apple, Commodore or Atari homecomputers and/or had worked with Turbo-Pascal and -C. Because the Oberon system was not very stable nor user friendly, the Oberon environment was met only with little support by the students. For example I remember that the compiler crashed reproducible on certain inputs. There also was no debugger and the editor did not meet expectations. After finishing the lecture, most students (including) me, never touched Oberon again. But hey, let's re-visit it after 30 years again and see how it feels today.
补充技术细节:它是点选式图形 TUI、三键组合鼠标、可编辑系统模块,并非命令行。
90 年代中期,我们在斯泰伦博斯的三年级计算机操作系统课上用过 Oberon(系统和语言都是)。这系统有意思,值得一看,因为它有些尚未被探索的想法(我对语言本身印象没那么好)。我和 Win3/Win95、X-Windows(KDE/Gnome 之前)同期接触它,它并不逊色。很高兴这篇文章引起关注,但我觉得文章没把它讲到位。Zooming UI 和桌面是后来才出现、作为对今天更主流做法的回应。我不会称这个界面为 CLI——它不是 REPL,需要三键鼠标,非常“点选式”,说 TUI 更准确。它是图形化的,没有桌面,面板不重叠(某些情况下一个面板会遮住下面的面板),可以想象成平铺窗口管理器。鼠标按键是组合使用的,有很多组合,因此不碰键盘就能高亮、选择、复制、粘贴和执行命令。任何文本都能被选中并执行,选中“Module.Function”就会在该模块里执行那个函数。它用了“文档对象模型”,基础文本类可扩展以容纳原生文本之外的更多组件。单用户、单进程,系统代码和你自己的代码没有真正区分:你可以查看和编辑系统模块,并加入自己的模块。
philipswood查看英文原文
We used Oberon (the system and the language) in our 3rd year CS OS course in Stellenbosch in the mid 90's Interesting system, it's worth looking at since it has a few unexplored ideas. (I was less impressed the the language). I experienced it at about the same time as win3 / Win95 and X-Windows (before KDE/Gnome) and it compared favourably. I'm glad this post is calling attention to it, but I don't think the post does it much justice. The Zooming-UI and desktops happened later as a reaction to (today) more mainstream approaches. I wouldn't call the interface a CLI - it wasn't REPL. It needed a 3 button mouse and was very point and click. TUI is more accurate. It was graphical, with no desktop and non-overlapping panels (although in certain cases one panel could obscure a lower panel). Think tiling window manager. The mouse button use was chorded, so there were a lot of combinations, this meant one could highlight, select, copy, paste and execute commands without using the keyboard. Any text could be selected and executed. Selecting 'Module.Function' would execute that function in that module. It used a "Document Object Model", the base text class was expandable to handle more widgets than just native text. Single user, single process with no real distinction between the system code and your own. You could view and edit system modules and add your own.
推荐 Wirth 的 Oberon 全书,单卷覆盖从硬件到系统的完整实现。
Wirth 的《Oberon》一书(2013 年更新)非常出色,它在一本书里描述了整个 Oberon 系统,从处理器一直往上。链接:https://people.inf.ethz.ch/wirth/ProjectOberon/PO.System.pdf
scroot查看英文原文
The Oberon book (by Wirth, updated in 2013) is excellent in that it describes the entire Oberon system, from the processor on up in a single volume. https://people.inf.ethz.ch/wirth/ProjectOberon/PO.System.pdf
历次讨论
同类还值得读
TTY 揭秘(2008)
The TTY demystified (2008)
经典文章深入剖析了 Unix/Linux 中 TTY 子系统的工作原理,包括线路规程、终端驱动、信号与控制字符等机制。
系统与基础设施上首页 11 次 · 2009–2025linusakesson.net编辑精选为什么 GNU grep 这么快
Why GNU grep is Fast
FreeBSD 邮件列表上一篇广为流传的帖子,解释 GNU grep 为什么快:核心在于 Boyer-Moore 字符串搜索算法配合精心优化的内部循环和 I/O,让程序在搜索时“…
系统与基础设施上首页 9 次 · 2010–2022lists.freebsd.orgXplain:为普通人讲解 X11
Xplain – Explaining X11 for the rest of us
《Xplain》是作者(HN 用户 Jasper_)写的一系列 X11 长文,用他在浏览器中重建的 X11 绘图模型做交互演示,讲解 X11 的绘图模型与窗口系统设计。
系统与基础设施上首页 6 次 · 2013–2020magcius.github.io编辑精选旋风教程:为 Linux 创建极小 ELF 可执行文件(1999)
A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999)
breadbox 写于 1999 年的经典教程,主题是如何为 Linux 手工构造并裁剪出体积极小的 ELF 可执行文件。
系统与基础设施上首页 6 次 · 2007–2025muppetlabs.comPostgreSQL 内部原理
The internals of PostgreSQL
《The Internals of PostgreSQL》是一本免费在线书籍,系统讲解 PostgreSQL 的内部实现,包括查询处理、并发控制、WAL、缓冲区管理等核心机制。
系统与基础设施上首页 5 次 · 2017–2025interdb.jp编辑精选