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

见字如面,我是军哥!

今天换个题材,你应该喜欢看。

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

这个地方就是北欧。

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

6f7b2fe6046b72d5f3ff1d04d35d3603.png

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

1ce5a6c6352f2f18aea80d6a23937f62.png

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

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

ef55f3fe593818223ef84cbf0682fd6b.png

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

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

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

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

0c2e5eff6f1e1480fb11ab68a5b26d2f.png

和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也实现了自己的浏览器,虽然还比较简单。

eb5187849b1596d496bfdb2d1b5edb20.png

3.能不能跑大型游戏

这是个重要指标,能看出它的兼容性和性能。

在MenuetOS上是可以跑QUAKE和DOOM的。

d844a3bac2ea43ecde4f1b503a66eb21.png

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

0ae54b5c859e5253db7ce701816f17c4.png

用汇编写过程序的朋友知道,这个玩意儿实在是太低级了。

一个小小的hello world就需要写一大堆代码,写出来的代码非常难以理解。

81090e087bf534176ac13222794738ab.png

当然,汇编是操作系统启动时不可或缺的部分,但是一旦进入内核,就可以用C语言来写其他功能了。

但是MenuetOS的功能全部由汇编编写,实在是不可思议。

Linus写Linux是“Just for Fun”,他自己也没想到Linux将来会统治世界,能成为一种全新的开发模式。

6368046fccfaf1da9523cbec4dd4f123.png

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的重要原因吧!

今天的文章就写到这里了,觉得不错的话点个赞,或者在看吧!

最后,最近好几位读者朋友说最近面试老是挂, 每个人问题还不一样,于是,我决定本周末晚上开直播分享关于面试和求职的一切,把我当面试官多年的心得全都分享给你,欢迎点击下方预约,我们不见不散~

以往热文推荐:

作为 40+ 的IT老兵,我有 11 条真话想给年轻程序员说!


更多精彩,关注我公号,一起学习、成长

52d4cfbf65c213b65c20024389656876.png

代码下载链接: https://pan.quark.cn/s/a4b39357ea24 iSecure Center综合安防管理平台配置手册V2.0最新完整版。综合安防管理平台是一个集成了多种功能的智能化系统,通过接入视频监控、停车场、门禁以及报警检测等设备,达成安防信息化集成与联动。以电子地图作为核心载体,融合各类安防设备,达成安防信息化集成与联动。 【海康威视iSecure Center综合安防管理平台配置手册 V2.0.0】是专门针对该公司的安防管理系统而编的详细指南。iSecure Center是一个集成化、智能化的解决方案,其目标是通过整合视频监控、停车场管理、门禁控制和报警系统等多个安全子系统,达成全面的安防信息化集成与联动。平台的核心作用是借助电子地图作为基础,整合各种安防功能,以提供高效且全面的安全监控和管理。 手册中明确指出,iSecure Center的配置和使用仅限于海康威视HIKVISION的用户,并且详细说明了版权和法律声明,强调手册内容的所有权归属于杭州海康威视数字技术股份有限公司,未经授权,禁止进行任何形式的复制、翻译或修改。同时,手册也声明了产品仅适用于中国大陆地区,并且在法律允许的范围内,产品按照现有状态提供,不提供任何形式的保证,对于因使用产品或手册所导致的损失,公司不承担任何赔偿责任。 手册还特别警示用户,将产品接入互联网可能面临风险,如网络攻击、黑客入侵或病毒感染,用户需自行承担这些风险。同时,用户必须遵守适用的法律法规,不得将产品用于侵犯第三方权利或不当用途,否则公司将不承担任何责任。 在操作前,手册提供了符号约定,包括说明、注意和危险等级的标识,帮助用户理解文档中关键信息的重要性。例如,“注意”用于提醒用户重要操作或...
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 gddrxy综合性实验——某系统的设计与实现---互联网应用开发(JSP)4 1. 在MySQL数据库中构建用于实验的数据表,要求包含至少三个字段,并在其中至少加入一条数据记录 2. 设计一个数据录入界面,将用户提交的信息发送至Servlet以执行合法性验证,若验证通过则调用DAO组件向数据表中追加一条新记录 实验报告 实验名称:综合性实验——某系统的设计与实现(互联网应用开发——JSP) 一、实验目的与要求 本次实验旨在使学生深入掌握并熟练运用JavaServer Pages (JSP) 技术开展互联网应用开发工作,特别是在数据库交互方面的实践。通过本次实践操作,期望达成以下学习目标: 1. 精通JSP在数据库层面的增删改查(Create, Read, Update, Delete)操作,包括建立数据库连接、执行SQL指令以及管理结果集等环节。 2. 掌握Servlet的生命周期机制,理解其在Web系统中的功能定位与工作流程。 3. 学会构建动态网页,实现用户输入信息的采集,并在服务器端完成数据校验与处理流程。 二、实验原理与内容 1. JSP进行数据库操作的典型流程涵盖数据库连接建立、SQL指令执行、结果集处理以及连接关闭等多个关键步骤。 2. Servlet作为Java Web应用程序的核心构成部分之一,具有初始化、服务、销毁这三个生命周期阶段。在本次实验中,Servlet将负责接收并处理来自JSP页面的请求,完成数据合法性校验工作。 三、实验步骤与结果 1. 数据库准备: - 采用MySQL数据库创建一个实验用的数据表,例如命名"Student",表中包含"ID"(作...
内容概要:本文详细介绍了基于风光储能和需求响应的微电网日前经济调度模型的Python代码实现,重点探讨了在风能、光伏等可再生能源出力具有不确定性的背景下,如何结合储能系统的运行特性与用户侧的需求响应机制,实现微电网系统的日前优化调度。该模型通过构建精确的数学模型并结合高效的优化算法,对分布式电源、储能设备及可控负荷进行协调优化,旨在最小化系统运行成本、提升可再生能源的消纳水平,并确保供电的安全性与稳定性。文中提供的完整Python代码实现了从数据输入、模型构建到求解分析的全流程,便于读者复现、验证与二次开发。; 适合人群:具备一定电力系统基础知识和Python编程能力,从事新能源、微电网、智能电网等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高校或科研机构开展微电网优化调度相关课题的教学与科研工作;②为实际微电网项目的日前调度策略设计提供技术支撑与仿真验证工具;③帮助研究人员深入掌握基于Python平台的能源系统建模与优化求解方法。; 阅读建议:建议读者结合文档中的理论推导与代码实现同步学习,重点关注目标函数设计、约束条件建模及优化求解器调用等关键环节,并尝试调整参数设置或拓展模型结构以适配不同应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值