Unix和Linux屬于大型操作系統,憑個人之力,根本不可能完成。以Linux系統為例,它的版權人林納斯.托瓦茲(Linux之父)是個天才程序員,沒日沒夜忙了差不多半年,寫出Linux的0.01版,也就是初級版本,你猜源代碼有多少?大概有1萬行。
Linux0.01版發布后,林納斯和全球成千上萬黑客(和現在喜歡在網上偷雞摸狗的黑客不同,那時的黑客都是程序員大牛,主要以改進電腦軟硬件性能為樂趣)一起修改完善。從1991年0.01版發布,到1994年Linux1.0正式版發布,三年時間,參與的程序員能輕松坐滿一個足球場,你猜代碼有多少行?一共17萬多行。
林納斯.托瓦茲(LinusTorvalds),Linux系統之父。你的手機、你家的電視機頂盒、你常取款的ATM上的系統,都是基于Linux系統改造而來,沒有這個人,就不會有現在的開源軟件。
除非你認為自己的編程天賦和勤奮努力程度能碾壓上述大牛,那么可以試試以個人之力,寫一個Linux級別的操作系統。
更重要的是,當時還是486電腦當道的時代,操作系統遠沒有今天復雜,那怕是iOS和安卓這樣的公司化運作的操作系統項目,也并沒有從0寫起,而是“踩在前人的肩膀上爬梯子”,iOS的內核是Unix,安卓系統的內核是Linux,蘋果公司和谷歌公司在原有系統上“改擴建”,搞成了自己的東西。
肯·湯普森(KennethThompson),C語言前身B語言的作者,Unix的發明人之一,程序員們的祖師爺。
當然,如果不是要寫Linux這樣的大型操作系統,就是想寫來玩玩,比如搞個mini的,還是有可操作性的:
- 建議從最基礎的玩起,先寫監控程序(操作系統的原型),僅具有加載程序和運行程序的功能。
- 監控程序玩熟練之后,可以寫用于單片機的微型操作系統,包含控制程序、編譯器和簡單的應用程序。
個人要熟練寫操作系統,大致說來需要具備下列素質:
- 熟練運用C語言編程;
- 會匯編語言;
- 了解基本的硬件知識;
- 會寫硬件驅動程序;
- 會軟件架構設計;
不過,上面這些都精通了,隨便去互聯網大廠拿個七八十萬年薪的offer是分分鐘的事,何苦自己折騰!
上一篇區塊鏈項目評級有哪些?
下一篇母嬰店管理軟件系統?