世界上有個地方,這里的程序員似乎特別閑,特別喜歡開發操作系統。
這個地方就是北歐。
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秒。
你可能會問:這是不是一個玩具操作系統啊?就像大學生的畢業設計一樣。
其實判斷一個操作系統是不是玩具,我覺得看這幾個方面就行。
簡單的操作系統內核現在非常成熟,要想實現GUI,那工作量嗖嗖就上去了。
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也實現了自己的瀏覽器,雖然還比較簡單。
圖片
這是個重要指標,能看出它的兼容性和性能。
在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的重要原因吧!
本文鏈接:http://www.www897cc.com/showinfo-26-92170-0.html這個地方的程序員太閑了,寫了三個世界流行的操作系統!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 聊聊Vue如何使用自定義插槽Slot