设计与产品joshondesign.com
Ideal OS:重启桌面操作系统
Ideal OS: Rebooting the Desktop Operating System
2017 — 2024,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
作者 Josh Marinacci 从 UX 专家视角撰写长文,设想一个“理想桌面操作系统”:整合历史上已被验证过的理念(如 BeOS、Plan 9 的设计思想),解决现代桌面系统层层堆叠、组件割裂的问题。他强调这些想法并不新颖,关键在于把它们整合成一个连贯的整体,并建议先在树莓派等单一硬件上做原型。
为什么经久不衰:它触及桌面计算多年停滞的痛点,2017 和 2024 两次登上 HN 首页,说明“桌面 OS 该如何进化”的讨论至今没有过时。
HN 评论精选
作者澄清:不主张重造 OS,而是主张整合旧理念并先做原型试验场
我是原作者,本来还没打算公开,还有些未完成的部分。澄清几点:我刚加入 Mozilla Devrel,但这篇文章与 Mozilla 无关;文中想法都不是新的,我用了 25 年专业软件、亲历过 BeOS、Oberon、Plan 9 等,我的观点正是这些都已被做过,只是从未整合成连贯整体;现代 Linux 用 Wayland 等也能做到大部分,技术不难,难的是整合;我知道重造主流桌面 OS 是无望的,不认真提议这么做,但在树莓派上做个可用的原型会很有价值,能成为移植到主流 OS 的想法试验场。
joshmarinacci查看英文原文
I'm the original author. I hadn't planned to publicize this yet. There are still some incomplete parts, broken links, and missing screenshots. But the Internet wants what it wants. Just to clarify a few things. I just joined Mozilla Devrel. None of this article has anything to do with Mozilla. I know that none of the ideas in this article are new. I am a UX expert and have 25 years experience writing professional software. I personally used BeOS, Oberon, Plan 9, Amiga, and many others. I read research papers for fun. My whole point is that all of this has been done before, but not integrated into a nice coherent whole. I know that a modern Linux can do most of these things with Wayland, custom window managers, DBus, search indexes, hard links, etc. My point is that the technology isn't that hard. What we need is to put all of these things into a nice coherent whole. I know that creating a new mainstream desktop operating system is hopeless. I don't seriously propose doing this. However, I do think creating a working prototype on a single set of hardware (RPi3?) would be very useful. It would give us fertile playground to experiment with ideas that could be ported to mainstream OSes. And thank you to the nearly 50 people who have signed up to the discussion list. What I most wanted out of this article was to find like minded people to discuss ideas with. Thanks, Josh
现实很残酷:没有资源和生态,新 OS 无法与成熟系统竞争
他说的就是:去掉这些坏层次,再加上那些好层次——这就是再造一个 AmigaOS 或 Be 的方式。过去 20 年 OS 没什么进步,因为进步发生在更高层。你不能扔掉 OS 还保留 ARKit。臃肿成熟的 OS 同时也是稳定的、有大量接口、有海量用户。几个人在裸机上写 OS 已经行不通了:没有 GPU 支持、没有可靠的 TCP/IP 栈、没有好的 USB 支持和文件系统。我见过太多优秀的操作系统半途而废,我用过 BeOS,我真心希望它赢过 NeXT。
Damogran6查看英文原文
So what he's saying is: REmove all these layers because they're bad, but add these OTHER layers because they're good. Thats how you make another AmigaOS, or Be, I'm sure Atari still has a group of a dozen folks playing with it, too. The OS's over the past 20 years haven't shown much advancement because the advancement is happening higher up the stack. You CAN'T throw out the OS and still have ARkit. A Big Bloated Mature Moore's Law needing OS is also stable, has hooks out the wazoo, AND A POPULATION USING IT. 4 guys coding in the dark on the bare metal just can't build an OS anymore, it won't have GPU access, it won't have a solid TCP/IP stack, it won't have good USB support, or caching, or a dependable file system. All of these things take a ton of time, and people, and money, and support (if you don't have money, you need the volunteers) Go build the next modern OS, I'll see you in a couple of years. I don't WANT this to sound harsh, I'm just bitter that I saw a TON of awesome, fledgling, fresh Operating systems fall by the wayside...I used BeOS, I WANTED to use BeOS, I'da LOVED it if they'd won out over NeXT (another awesome operating system...at least that survived.) At a certain level, perhaps what he wants is to leverage ChromeOS...it's 'lightweight'...but by the time it has all the tchotchkes, it'll be fat and bloated, too.
引用 Joel 名文反驳:推倒重来会丢掉旧代码中沉淀的修复与知识
是的,现有桌面应用和 OS 就是层层堆叠的毛线球:Atom 之上是 Electron,Electron 内嵌整个浏览器和 JS 运行时,浏览器调用绘图 API,绘图 API 又委托给更低层 API,再往下是窗口管理器和 X……复杂之上叠复杂。但解决方案绝不是扔掉一堆旧层次换成新层次!引用 Joel Spolsky 的话:程序员总想推倒重写,是因为读代码比写代码难;旧代码被使用过、测试过、修过大量 bug,扔掉代码就是扔掉所有这些积累的知识。
cs702查看英文原文
Yes, existing desktop applications and operating systems are hairballs with software layers built atop older software layers built atop even older software layers. Yes, if you run the popular editor Atom on Linux, you're running an application built atop Electron, which incorporates an entire web browser with a Javascript runtime, so the application is using browser drawing APIs, which in turn delegate drawing to lower-level APIs, which interact with a window manager that in turn relies on X... Yes, it's complexity atop complexity atop complexity all the way down. But the solution is NOT to throw out a bunch of those old layers and replace them with new layers!!! Quoting Joel Spolsky[1]: "There’s a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming: It’s harder to read code than to write it. ... The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. ... When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work." [1] https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
文中设想的能力 Linux 早已具备,缺的不是技术而是需求
文中说的很多功能在 Linux 上已经可行:i3wm 可以跨应用停靠标签页;FFMPEG 等命令行工具可以处理管道中的视频流;wmctrl 和 dbus 十五年前就能让程序控制窗口管理器。问题是实践中没人在乎这些。
jcelerier查看英文原文
> Why can I dock and undock tabs in my web browser or in my file manager, but I can't dock a tab between the two apps? There is no technical reason why this shouldn't be possible. that's absolutely possible on linux with i3wm for instance > I'd like to pipe my Skype call to a video analysis service while I'm chatting, but I can't really run a video stream through awk or sed. awk and sed, no, but there are many CLI tools that accept video streams through pipe. e.g. FFMPEG. You wouldn't open your video through a GUI text editor, so why would you through CLI text editors ? > Window Managers on traditional desktops are not context or content aware, and they are not controlable by other programs. Sure they are, on linux: https://linux.die.net/man/1/wmctrl Fifteen years ago people were already controlling their WM through dbus: http://wiki.compiz.org/Plugins/Dbus#Combined_with_xdotool The thing is, no one really cares about this in practice.
历次讨论
同类还值得读
贝塞尔曲线入门
A Primer on Bézier Curves
Pomax 编写的贝塞尔曲线在线教程,从基础概念一路讲到曲线求交、投影、曲率等进阶内容,并配有可交互的示例和配套的 bezier.js 库。
设计与产品上首页 7 次 · 2014–2022pomax.github.io编辑精选WebGL 水面模拟
WebGL Water
Evan Wallace 制作的 WebGL Water 演示:在浏览器里实时渲染一片水面,展示折射、反射和焦散等 GPU 图形效果。
设计与产品上首页 6 次 · 2011–2025madebyevan.com设计建议:永远不要使用黑色
Design Tip: Never Use Black
设计随笔提出“永远不要用纯黑”的建议,主张在界面和绘画中改用深灰或带色相的暗色,并借阴影与色彩关系来论证。
设计与产品上首页 5 次 · 2012–2021ianstormtaylor.com用于思考不可想象之物的媒介
Media for Thinking the Unthinkable
Bret Victor 的这个页面围绕《Media for Thinking the Unthinkable》展开,探讨我们用来思考和表达复杂问题的媒介,以及以文字/符号为主的传…
设计与产品上首页 5 次 · 2013–2020worrydream.com编辑精选页面重量很重要
Page Weight Matters
博文讲 YouTube 工程师 Chris Zacharias 的一次页面瘦身实验:团队做了一个更轻量的页面版本,起初从整体平均加载时间看反而更慢;按地理区域分层后才发现,轻量版…
设计与产品上首页 4 次 · 2012–2022blog.chriszacharias.com