专栏名称: 猿大侠
猿大侠,既然选择了,就一定成为大侠! 小程序、小游戏、Google、苹果、职场、前沿技术分享,一起成长。
目录
相关文章推荐
e公司官微  ·  如何整治高额彩礼、大操大办?权威回应 ·  16 小时前  
神嘛事儿  ·  我回答了 @有钳人28 ... ·  昨天  
秋叶PPT  ·  夸爆!WPS官方接入DeepSeek,自动化 ... ·  2 天前  
秋叶PPT  ·  谈谈我们一个月做PPT的真实收入 ·  2 天前  
51好读  ›  专栏  ›  猿大侠

这个地方的程序员太闲了,写了3个世界流行的操作系统!

猿大侠  · 公众号  ·  · 2024-06-09 12:08

正文

转自:码农翻身
世界上有个地方,这里的程序员似乎特别闲,特别喜欢开发操作系统。
这个地方就是北欧。
1991年,芬兰的程序员Linus Torvalds开发了Linux,现在已经统治世界。

2018年,瑞典程序员Andreas Kling为了戒除毒瘾,完全从头儿开始,开发操作系统。

在短短的半年时间内,单枪匹马构建了普通程序员几年,甚至十几年才能搞定的东西:操作系统内核、TCP/IP协议、GUI框架、进程管理器、文件浏览器、文本编辑器、界面编辑器、贪吃蛇游戏、绘图工具......
这个叫做 宁静(SerenityOS) 的操作系统,从操作系统内核到上层应用系统,全是重写的,太可怕了。

Linux的故事和SerenityOS的故事在下面的链接中可以看到:

Linux之父:财务自由以后,我失眠了

我决定辞掉工作,全职开发我的操作系统

今天我们要说的是另外一个芬兰人Ville M. Turjanmaa的惊世之作: MenuetOS

和Linux和宁静OS不同,MenuetOS的最大特点是: 全部用汇编写成
它小得惊人, 最小的版本可以放到一个1.44M的软盘当中
它快得惊人,即使是Intel Pentium MMX 200 MHz, 启动时间也仅需5秒
你可能会问:这是不是一个玩具操作系统啊?就像大学生的毕业设计一样。
其实判断一个操作系统是不是玩具,我觉得看这几个方面就行
1.有没有图形用户界面
简单的操作系统内核现在非常成熟,要想实现GUI,那工作量嗖嗖就上去了。
2.是否支持网络访问
MenuetOS实现了TCP/IP,也是用汇编写的!你看看它的API:
rax = 53rbx = 5rcx = local portrdx = remote portrsi = remote ip address ( in internet byte order )rdi = mode : SOCKET_PASSIVE or SOCKET_ACTIVE  ( defined in stack.inc )The socket number allocated is returned in rax.
用汇编方式打开一个TCP socket ,太疯狂了
MenuetOS也实现了自己的浏览器,虽然还比较简单。

3.能不能跑大型游戏
这是个重要指标,能看出它的兼容性和性能。
在MenuetOS上是可以跑QUAKE和DOOM的。

除此之外,它 还实现了libc,网络驱动,图形驱动,声音驱动,API全部是汇编。

用汇编写过程序的朋友知道,这个玩意儿实在是太低级了。
一个小小的hello world就需要写一大堆代码,写出来的代码非常难以理解。

当然,汇编是操作系统启动时不可或缺的部分,但是一旦进入内核,就可以用C语言来写其他功能了。
但是MenuetOS的功能全部由汇编编写,实在是不可思议。
Linus写Linux是“ Just for Fun ”,他自己也没想到Linux将来会统治世界,能成为一种全新的开发模式。

Andreas开发宁静OS则是为了逃离毒瘾,Ville M. Turjanmaa用汇编写MenuetOS,是因为汇编性能高。






请到「今天看啥」查看全文