熟悉码农翻身的小伙伴知道,我一直在关注一个叫做SerenityOS(宁静)的操作系统。

这个OS的特点是:类似Unix/Linux的内核 90年代软件的外观。

公司一般用什么操作系统做开发 我决定辞掉工作(1)

它野心勃勃,一切从头来过,不但要从头写操作系统内核,还要写上面所有的应用软件,不打算依赖任何第三方。

更可怕的是,这个OS在起步阶段,完全是由是一个戒毒成功的瑞典程序员Andreas Kling单枪匹马搞定的:

操作系统内核、TCP/IP协议、GUI框架、进程管理器、文件浏览器、文本编辑器、界面编辑器、贪吃蛇游戏、绘图工具......

这家伙就是传说中的10倍速,甚至100倍速程序员

你说已经有非常成熟的Linux了,为啥还有另起炉灶?这不是没事找事吗?

但是国外“闲得没事”的程序员就是多,他们在业余时间一窝蜂地向宁静OS做贡献,完全不计报酬,代码贡献者已经达到了765人,Discord server 接近7000人!除了兴趣之外我真是想不出有什么别的理由,真是腐朽的资本主义啊!

今年10月10号,是宁静OS的第4个年头,创始人Andreas Kling写了一篇纪念文章。我仔细看了一下,发现又有了非常大的进展。

宁静OS开始支持多核,多用户,开发了一个跨平台的浏览器Ladybird,为了确保内存安全,这帮人还开发了一个内存安全的新的编程语言:Jakt !

我把之前的文章也做了更新 (看过上一篇文章的可以直接拉到文末),再次强烈推荐大家关注下这个仅凭兴趣发展起来的操作系统: HTTPS://GitHub.com/SerenityOS/serenity

下面以第一人称,讲述一下他的故事。

2018年10月,我刚刚在瑞典的一家戒毒所完成了为期3个月的康复计划, 我失业了,和家人在一起,无事可做。

日子太漫长了,我得找点儿事儿做。

之前我在Apple 和诺基亚工作,主要做基于WebKit的Web浏览器, 但是我对底层的东西特别感兴趣,我写过ELF的解析器,Ext2 文件系统浏览器,有着事件循环的GUI 框架......

慢慢地,一个操作系统居然开始成形了,我把它取名为SerenityOS (宁静操作系统)。

你可能要问了,为什么要搞个新的操作系统呢?

答案很简单,我想构建一个我日常使用的梦想的操作系统:结合上世纪90年代的GUI和Unix严肃的命令行。

在Apple工作的时候,我很享受苹果软件那种都在一个“屋檐”下的感觉,不但所有的软件可以超级紧密地集成,并且可以让程序员尽情地去“折腾”。

我决定把这种感觉带给开源世界:我的SerenityOS不再是由一个个软件包“拼凑”起来的,我要重新构建所有的东西:从内核到浏览器,以及中间层的所有东西!

开工吧!

第一年, 从零到HTML!

2018-11-08: 在虚拟机中运行

公司一般用什么操作系统做开发 我决定辞掉工作(2)

2019-1-09 ,开始对Widget(窗口,按钮,CheckBox等)开始测试

公司一般用什么操作系统做开发 我决定辞掉工作(3)

2019-02-03: 增加字体编辑器、时钟

公司一般用什么操作系统做开发 我决定辞掉工作(4)

2019-02-11: 实现菜单!早期的文件管理器

公司一般用什么操作系统做开发 我决定辞掉工作(5)

2019-02-28: 早期的进程管理器

公司一般用什么操作系统做开发 我决定辞掉工作(6)

2019-03-15: TCP协议栈搞定了,实现一个IRC玩玩

公司一般用什么操作系统做开发 我决定辞掉工作(7)

2019-04-11: 创建VisualBuilder, 创意来源于Visual Basic

公司一般用什么操作系统做开发 我决定辞掉工作(8)

2019-04-20: 贪吃蛇游戏

公司一般用什么操作系统做开发 我决定辞掉工作(9)

2019-04-22: GCC基本上可以工作了

公司一般用什么操作系统做开发 我决定辞掉工作(10)

2019-06-14: 简单的绘图程序

公司一般用什么操作系统做开发 我决定辞掉工作(11)

2019-09-09: 女士们先生们,我们有 DOOM了!

公司一般用什么操作系统做开发 我决定辞掉工作(12)

2019-09-29: 在LibHTML中实现基本的CSS

公司一般用什么操作系统做开发 我决定辞掉工作(13)

2019-10-10 第一个浏览器实现了!

公司一般用什么操作系统做开发 我决定辞掉工作(14)

第二年

2019-11-04: 移植Quake

公司一般用什么操作系统做开发 我决定辞掉工作(15)

2019-11-30: 整一个 C IDE吧: HackStudio IDE

公司一般用什么操作系统做开发 我决定辞掉工作(16)

2019-12-30: SerenityOS 在 36c3 上被“黑”,我开始发疯似地学习安全知识来保护它

公司一般用什么操作系统做开发 我决定辞掉工作(17)

2020-02-29: 一个简单的HTTP服务器(为了庆祝我的生日)

公司一般用什么操作系统做开发 我决定辞掉工作(18)

2020-03-31: JavaScript 支持初见雏形

公司一般用什么操作系统做开发 我决定辞掉工作(19)

2020-05-30: 支持TLS(和HTTPS)

公司一般用什么操作系统做开发 我决定辞掉工作(20)

2020-06-22: JPEG解码器

公司一般用什么操作系统做开发 我决定辞掉工作(21)

(想知道图片中这位美女是谁的,可以参考这篇文章《计算机女神,互联网第一夫人!》)

2020-06-30: 努力通过Web浏览器的CSS兼容性测试(ACID2)

公司一般用什么操作系统做开发 我决定辞掉工作(22)

2020-08-30: 更多的桌面游戏 (Chess and 2048)

公司一般用什么操作系统做开发 我决定辞掉工作(23)

2020-09-22: C IDE HackStudio 开始支持Git

公司一般用什么操作系统做开发 我决定辞掉工作(24)

2020-09-29: 简单版Excel !

公司一般用什么操作系统做开发 我决定辞掉工作(25)

第三年

从这一年开始,采访明显增多

2021-03-6: 移植经典游戏:暗黑破坏神

公司一般用什么操作系统做开发 我决定辞掉工作(26)

2021-05-28: 重大里程碑,收到了足够的捐款,可以真正在宁静OS上全职工作!

2021-6-30: 支持64位

公司一般用什么操作系统做开发 我决定辞掉工作(27)

2021-6-30: 构建“设置”应用程序

公司一般用什么操作系统做开发 我决定辞掉工作(28)

2021-8-10:致力于多核稳定性

公司一般用什么操作系统做开发 我决定辞掉工作(29)

第四年

出名了以后,采访更多了

在西雅图会议上做演示,被JetBrains CLion采访,被瑞典报纸采访,自己对骨干开发着采访,在YouTube发各种宁静OS的视频......

可以看出,团队一边在努力开发,一边在努力做推广宣传。

支持多核

公司一般用什么操作系统做开发 我决定辞掉工作(30)

支持多用户桌面

公司一般用什么操作系统做开发 我决定辞掉工作(31)

Jakt: 为宁静OS设计的内存安全的编程语言

由于C 内存安全不佳,他们尝试了其他几种语言,做了原型以后都觉得不爽,那就按照宁静OS的传统,一切从头儿来吧,自己开发一个新的语言Jakt。

Jakt最早由Rust实现,现在已经可以自举了,这就意味着宁静OS连编程语言都不依赖第三方了。

Ladybird:一个跨平台的网络浏览器

公司一般用什么操作系统做开发 我决定辞掉工作(32)

随着时间的推移,越来越多的人发现了我这个小项目(和我在GitHub上的视频),也引起了不少人的共鸣,比如:

我很喜欢你这个项目,有着Unix风格的内核,混搭的GUI,一个Mac OS的菜单栏, Windows GUI界面,一个NextSTEP风格的Laucher , 你把其他系统中你最喜欢的部分给拿了过来。

越来越多的人参与进来, 宁静操作系统,已经从一个不起眼的小项目,发展成为一个活跃的开源社区,全世界有几百个贡献者,在GitHub上收获了22.3K的star 和 2.4k 的fork 。

2021年5月28号,我辞职了,全心全意地投入到这个操作系统的开发中。

这主要得益于大家慷慨的支持,我现在每月收到来自Patreon, GitHub 和PayPal的2000美元的捐赠,YouTube也有少量收入(每月150美元),再加上宁静OS的商品销售(每月100美元)。

这虽然不足以完全维持我和我的家庭的开销,但也差不到哪儿去。

正如你看到的,我并不想通过这个操作系统发财, 我只想成为一个健康的、神智健全的人, 碰巧我的“自我治疗”项目吸引了这么多人的注意和支持。

我是Andreas Kling, 一个瑞典程序员。

公司一般用什么操作系统做开发 我决定辞掉工作(33)


故事看完了,不知道各位小伙伴有什么感受?

说实话,我看了以后首先的感觉就是特别震惊!

文章开头已经提过,这家伙在短短的半年时间内、一个人单枪匹马构建了普通程序员几年、甚至十几年的业余时间才能搞定的东西, 这家伙就是传说中的10倍速,甚至100倍速程序员

其次,Andreas真是敢想敢干,从内核到应用,都要重新搞一遍。Linux发展这么多年,大家都觉得一统天下了,都去研究Linux就好了,有个别爱好者也就是写个玩具操作系统,但是Andreas却有自己独特的想法,走出了一条独特的道路,并且培育了一个良好的开源社区。

第三就是兴趣真是最好的老师,他完全是凭借个人兴趣把这个系统开发出来的, 在起步阶段,所有的代码都是一个人写的。 一般人写操作系统,估计也就开个头,能够启动,抄几个例子也就算了,更不会搞这么多复杂的GUI框架和程序了。

他在油管上发了700多个视频!让人叹为观止,把自己的开发过程,对操作系统的理解都讲了出来。

公司一般用什么操作系统做开发 我决定辞掉工作(34)

不过, 这几年他衰老速度也肉眼可见

公司一般用什么操作系统做开发 我决定辞掉工作(35)

第四,宁静OS运气不佳。

为什么这么说呢?因为Linux能在90年代发展起来,有个大的历史背景,就是Unix官司缠身,而蓬勃发展的互联网急需一个开源的,免费的操作系统,Linux正逢其时,在Linus的卓越领导下一飞冲天。

而宁静OS没有这样的风口了。

但是Andreas他们根本不在乎,这就是自己的个人兴趣,我就是在玩儿,自己爽,管你外界怎么看?

最后一个问题:如果有个机会,你每月也可以收到一笔赞助,可以维持不错的生活,只能租房子,但是不用担心医疗,你会去做类似的事情吗?

,