是寫一個Windows8樣的操作系統難?
答案是寫一個Windows8系統更難。
之所以這么說,是因為寫這么一個系統需要一個完整的工業體系。即CPU設計,制造工業。沒有這套東西,你會發現很多東西似是而非。比如說,CPU的文檔不全,一些特性難以使用,出了問題根本無法下手,甚至CPU里面的后門也不知道。這樣做出來的操作系統根本不是完全可靠的。
所以,首先要建立一個制造CPU材料的工廠,需要質量達標,廢品率低,控制成本。
接下來是CPU設計。需要定義一套指令集。美國早已把想86指令集專利化。如果用它的就有專利糾紛,如果不用他的,就會不兼容現有軟件,軟硬件生態就需要重新來,像Windows,Linux的所有軟件都不能用。做出來沒人用,豈不是很尷尬?
如果使用Intel授權,需要給他繳費,不使用就沒有費用,但是自己設計也是個技術活。假如解決了指令集問題,接下來還要突破CPU的磨具制造技術。這個技術和CPU的制造技術一樣難。
如果模具技術也不是問題,那接下來就是CPU制造技術了。這個東西的理論也不復雜,就是使用強酸腐蝕,在光線的指引下腐蝕成需要的結構?,F在的主流水平已經到了納米級別,也就是說需要精確控制5個原子大小的結構。在這個尺度制造數以億計的電路。成本還要控制在千元左右。成本主要是成功率,廢品率。對制造技術和工業管理有很高的挑戰,需要幾乎無塵的空間進行。
到了這一步,就可以開始編寫操作系統。拿著CPU的指令開始編寫編譯器,內核。從這開始就是軟件工程。但是從頭寫還是有困難。編譯器是一個比較大的困難。
編譯器的困難在于文本分析,編譯指令。西方計算機技術用了十年才搞出來yacc,bison,flex這種東西。如果不用這些東西,重新搞一套也可以。但是國內不知道哪些組織搞過?
邁過了編譯器,就可以編內核了。現代操作系統都是多用戶,多線程,多硬件支持。內核設計是必須的。就不能照搬Windows和*nux的東西。這就需要規劃接口,模塊。
內核做完了,還有需不需要做界面。像界面這種東西,就是平常的各種窗口。這里面還會遇到蘋果和微軟這樣的專利老流氓。
如果內核和操作系統界面做完了,還需要封裝一套網絡工具,支持Java,OpenGL,等等的外圍基礎設施。
最后,做出來的操作系統還只是一個什么功能都不具備的裸機。還需要和其他公司合作,讓大家一起參與編寫應用軟件,這樣系統才能用起來。
整個過程來看,需要很多人參與才行,能組織這樣的工程的也只有國家層面。但是這個東西需要有很多的工程師,設計師,還要求他們都是技術狂人,專注技術,不是那種只會搞政治的所能做的。最最重要的,還是測試能力。微軟就說過,微軟其實并不是一個軟件公司,而是一個軟件測試公司。