首页 > 编程语言 >这个地方的程序员太闲了,写了三个世界流行的操作系统!

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

时间:2024-06-12 18:58:48浏览次数:26  
标签:汇编 操作系统 Ville 太闲 MenuetOS 程序员 Linux

Andreas开发宁静OS则是为了逃离毒瘾,Ville M. Turjanmaa用汇编写MenuetOS,是因为汇编性能高。他发现Linux中那些C/C++写的组件用汇编重写时,性能可以提升10%~40%,于是就开始重写了。

世界上有个地方,这里的程序员似乎特别闲,特别喜欢开发操作系统。

这个地方就是北欧。

1991年,芬兰的程序员Linus Torvalds开发了Linux,现在已经统治世界。

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

图片

图片

在短短的半年时间内,单枪匹马构建了普通程序员几年,甚至十几年才能搞定的东西:操作系统内核、TCP/IP协议、GUI框架、进程管理器、文件浏览器、文本编辑器、界面编辑器、贪吃蛇游戏、绘图工具......

这个叫做宁静(SerenityOS)的操作系统,从操作系统内核到上层应用系统,全是重写的,太可怕了。

图片

图片

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

图片

图片

和Linux和宁静OS不同,MenuetOS的最大特点是:全部用汇编写成!

它小得惊人,最小的版本可以放到一个1.44M的软盘当中!

它快得惊人,即使是Intel Pentium MMX 200 MHz,启动时间也仅需5秒。

你可能会问:这是不是一个玩具操作系统啊?就像大学生的毕业设计一样。

其实判断一个操作系统是不是玩具,我觉得看这几个方面就行。

1.有没有图形用户界面

简单的操作系统内核现在非常成熟,要想实现GUI,那工作量嗖嗖就上去了。

2.是否支持网络访问

MenuetOS实现了TCP/IP,也是用汇编写的!你看看它的API:

rax = 53
rbx = 5
rcx = local port
rdx = remote port
rsi = 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,是因为汇编性能高。

他发现Linux中那些C/C++写的组件用汇编重写时,性能可以提升10%~40%,于是就开始重写了。

在我们看来,这纯属于吃饱了饭没事干,996那么累,下班了打打游戏,刷刷短视频多好。

写什么操作系统嘛!给钱吗?

有开源免费的Linux在前,再写个操作系统有啥用?还用汇编?自己折磨自己?

但是Ville M. Turjanmaa根本不管这些,MenuetOS从2000年开始开发,打磨了整整15年以后,才发布1.0版本。

然后1.02、1.05、1.15、1.21...... 直到2024年的1.51版。

在汇编操作系统这条道路上,Ville M. Turjanmaa走了24年,也没看到他从中赚到什么钱。

可以说,没有巨大的热情、兴趣,没有充足的时间,绝对不可能坚持到现在。

这种不考虑利益,可以完全凭兴趣搞事情的环境,才是创新能不断涌现的土壤。

这可能就是北欧程序员能写出Linux、MySQL、Chrome V8、MineCraft、cURL、SSH、QT、Unity的重要原因吧!

标签:汇编,操作系统,Ville,太闲,MenuetOS,程序员,Linux
From: https://blog.csdn.net/leyang0910/article/details/139454209

相关文章

  • 程序员 的 低水平重复 调查
    程序员(或其他人)经常面临(听说)一个痛点:低水平重复。低水平重复,导致职业生涯止步不前,无法取得更好的收益,巨大的成功、走上人生巅峰,遥不可及。本随笔简单列举了程序员的低水平(技能)重复有哪些,以及熟手技能、高手技能(自己认知范围内的)。注意,可用于自评,欢迎补充各级别......
  • 普适大中小企业的工业操作系统
    supOS是国内首个自主知识产权的工业操作系统,也是首个以自动化技术为起点,从下至上推进的开放的以企业为核心的工业互联网平台、工业大数据平台、工业人工智能平台。以工厂全信息集成为突破口,实现生产控制、生产管理、企业经营等多维、多元数据的融合应用,提供对象模型建模、大数......
  • 操作系统
    一、实验目的进程调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制块、进程队列等概念,并体会和了解优先数算法(包括抢占式和非抢占式)和时间片轮转算法的具体实施办法。二、实验内容和要求设计进程控制块PCB的结构,通常应包括如下......
  • 操作系统 c语言模仿 磁盘文件操作
    1.实验目的深入了解磁盘文件系统的实现。2.实验预备知识文件的操作;文件的逻辑结构和物理结构;磁盘空间的管理;磁盘目录结构。3.实验内容设计一个简单的文件系统,用文件模拟磁盘,用数组模拟缓冲区,要求实现:支持多级目录结构,支持文件的绝对读路径;文件的逻辑结构采用流式结构,......
  • 在Windows操作系统上,有一些流量控制工具可以帮助用户监视、管理和控制网络流量。以下
    在Windows操作系统上,有一些流量控制工具可以帮助用户监视、管理和控制网络流量。以下是一些常见的Windows网络流量控制工具:NetBalancer:这是一款功能强大的网络流量控制工具,可以帮助用户监视和调整应用程序的网络活动。用户可以设置上传和下载速度限制,并优化网络性能。NetLim......
  • 老生常谈!程序员为什么要阅读源代码?
    大家好,我是码农先森。阅读源码这是一个老生常谈的话题了,但又是很多人想做又没有付出行动的事情。前段时间我研究了Swoole的源代码,并且输出了系列的源码分析文章「感兴趣的朋友可以翻阅以前的文章」。虽然这个过程很枯燥和艰难,但到最后有种苦尽甘来的感觉,因为突破了自己之......
  • 大厂“争招”鸿蒙人才,鸿蒙程序员平均月薪超1万8
    鸿蒙程序员成新宠,大厂“抢人”大战白热化,月薪破万八只是开始?   在科技浪潮的推动下,鸿蒙系统异军突起,成为科技圈的新星。它如同一块肥沃的土地,孕育着无限商机,也滋养着程序员的梦想。如今,鸿蒙程序员已成为市场上的“香饽饽”,一场前所未有的“抢人”大战正在上演。而这一切,都......
  • 老生常谈!程序员为什么要阅读源代码?
    大家好,我是码农先森。阅读源码这是一个老生常谈的话题了,但又是很多人想做又没有付出行动的事情。前段时间我研究了Swoole的源代码,并且输出了系列的源码分析文章「感兴趣的朋友可以翻阅以前的文章」。虽然这个过程很枯燥和艰难,但到最后有种苦尽甘来的感觉,因为突破了自己之前一直......
  • 程序员怎么样找用户需求
    需求,商业成功的启航点今天,我想与大家探讨一个话题:作为一个程序员,我们应如何探索并把握商机?通过生财,我们已经见识了多种赚钱的方式,但深入分析,任何项目的核心都逃不过一个基本框架:需求-产品/服务-流量-转化-交付-变现。需求是所有商业行为的出发点。如果我们能够针对特定群体......
  • 程序员如何高效挖掘市场需求
    如何高效发掘市场需求?那么,我们怎样能够高效地发掘市场的需求呢?首先,需要指出的是,在挖掘需求时,最好基于个人已有的行业背景或对某个行业的深刻理解来进行。这样做主要有两个原因:对于我们已经熟悉或正在从事的行业,借助于丰富的经验和知识,我们可以更快地识别出哪些需求是真实且......