半個月可以寫出一個電腦操作系統嗎?
絕大多數人對于半個月寫出一個電腦操作系統這件事都是嗤之以鼻,認為這是根本沒有可能的一件事情。
因為目前除了Windows、MacOS、Linux外,絕大多數的操作系統都是基于開源操作系統Linux進行二次開發的。二次開發的代碼量不會超過操作系統總代碼量的1/10,而且會遠遠小于這個數值,一般不會超過1/100。這里的開發單位包括了大型以及超大型企業、絕大多數的科技單位及院校。
但我們可不可以換一種思路想一想:有誰規定只有做到Windows、MacOS、Linux這樣的程度才能叫操作系統呢?難道房子的模型就不能稱作房子嗎?
如今華麗的Windows 10操作系統也是從最初簡陋的DOS系統發展而來。不積跬步無以至千里,想要一個普通的程序員在短期的時間內做出一個媲美Windows、MacOS、Linux界別的操作系統根本不可能,那是無數人幾代迭代出來的結果,要不然怎么可能還不出現第四大操作系統。
做一個產品級的操作系統(OS)確實不是一己之力能夠實現的,也不是一朝一夕就可以完成的。但做一個Toy級的操作系統玩一玩并沒有那么困難。這不日本的川合秀實編寫了一本《30天自制操作系統》的書,來告訴大家編寫一個操作系統并不是一個難于上青天不可挑戰的事情,實際上是沒有人能將這件事講述得通俗易懂而已。
這樣一個操作系統只有40KB,雖然簡陋,但已經是一個真正意義上的操作系統了,實現了圖形界面、多任務等等高級功能。假如跟著做一遍,抄抄他的代碼,半個月寫出一個電腦操作系統也并不是什么難事。如果一開始就想開發出像Windows、MacOS、Linux這樣的龐然大物,好比盲人摸象,連個脈絡都摸不清楚。但是如果從一個簡單的初級的操作系統開始寫起,某一天變成一個舉世聞名的操作系統也并不是沒有可能。
開發一個成熟的商業系統為什么就這么難?拿我們常用的Window10來說,它的代碼在2500萬~6500萬行,合理估計讀完需要130年左右。
最初的Windows版本也僅僅是存放在1.4MB的3.5英寸軟盤上,而如今的Windows10 安裝包就有好幾個GB,安裝完的系統占用直逼20GB。
造成這樣的原因一點也不難理解:假如一個上班族收入提升了10倍,它依然會為錢發愁。隨著他收入的增加,消費的等級也會隨之提升,消費的等級哪怕僅僅只是提升了一點點,開銷就會提高到好幾倍。很多年入成百上千萬的家庭照樣覺得錢不夠花,因為他們住著更大的房子、開著更好的車,孩子也受著更好的教育。
假如現在讓你用過去的dos系統和老人機,你肯定不愿意。對于電腦而言,哪怕鼠標實現一個簡單的特效功能都需要大量的程序代碼和數據做支撐,更別提那些辦公、游戲、制圖、3D之類的應用。電腦的硬件性能每年都在跟隨著“摩爾定律”呈現指數級別的提升,但很快就會被隨著增加的程序代碼迅速淹沒,這就是著名的“安迪·比爾定律”。
一個操作系統商業化成功的很重要一個原因就是:能否建立完善的生態系統。如果沒有人使用,也就基本上沒有幾個開發人員會基于這個操作系統進行軟件開發,如此就會產生惡性循環。微軟(Microsoft)的Windows能占據80%以上的桌面操作系統很大一部分原因是基于x86架構的Wintel硬件產商生態鏈和軟件生態系統。
總結寫一個成熟的商業操作系統確實是難于上青天,但并不代表第四大操作系統不會誕生。我們需要曲線救操作系統,用自己的興趣愛好編寫一個五臟俱全能運行的操作系統,然后逐漸地去完善它。
光自己瞎琢磨還不夠,這個簡陋的操作系統極有可能會成為拋磚引玉的這塊磚。實際上Linux就是這樣成為三大操作系統之一的。眾人拾柴火焰高,假如全世界70億人口中的1億人參與到這個簡陋的操作系統的完善進程中,那么幾十年的時間做出一個成熟的商業操作系統也并不是不可能。
以上個人淺見,歡迎批評指正。
認同我的看法,請點個贊再走,感謝!喜歡我的,請關注我,再次感謝!