其實,,Windows系統(tǒng)的編寫工作量并不大,,但是想要成型,工作量就很大了,! 編寫Windows系統(tǒng),?不如說是編寫Windows核心!對于一個系統(tǒng)而言,,就和蓋房子是一樣的,,只要打好地基,就很容易向上累積,,所以實際上,,Windows系統(tǒng)的內(nèi)核才是這個系統(tǒng)剝?nèi)ネ庖潞笳嬲臉用病?br> 所以,編寫Windows系統(tǒng)的關(guān)鍵和難點就在于編寫Windows系統(tǒng)的內(nèi)核,,所幸,,Windows XP之前的系統(tǒng)內(nèi)核不是微軟編寫的,它使用的是DOS系統(tǒng)內(nèi)核,,我們可以把它看做是使用Linux內(nèi)核的安卓系統(tǒng)或者是Ubuntu,,內(nèi)核系統(tǒng)在計算機學(xué)范疇上實際上指的是最基礎(chǔ)的可以利用各種代碼調(diào)用硬件的接口的微型系統(tǒng),比如在DOS下,,雖然沒有文件管理器這個界面,,但我們依然可以使用各種DOS命令完成這一任務(wù)。 但是我們尚不知道在比爾·蓋茨買下DOS系統(tǒng)更改為MS-DOS之前,,DOS系統(tǒng)到底編寫了多久,,但我們可以參照Linux的發(fā)展來看看到底有多難。 Linux的過去,,Unix僅由幾人開創(chuàng)Linux是基于Unix內(nèi)核的修改版,,可以看做類似于Windows的系統(tǒng)發(fā)展史,而Unix基本內(nèi)核第一版僅由Unix之父Ken Thompson(左)和其同事Dennis Ritchie(右)共同利用匯編語言編寫而成。 到了1973年的時候,,Ken Thompson 與Dennis Ritchie感到用匯編語言做移植太過于頭痛,,他們想用高級語言來完成第三版,對于當(dāng)時完全以匯編語言來開發(fā)程序的年代,,他們的想法算是相當(dāng)?shù)寞偪?。一開始他們想嘗試用Fortran,可是失敗了,。后來他們用一個叫BCPL(Basic Combined Programming Language)的語言開發(fā),,他們整合了BCPL形成B語言,后來Dennis Ritchie覺得B語言還是不能滿足要求,,于是就改良了B語言,,這就是今天的大名鼎鼎的C語言。 于是,,Ken Thompson 與Dennis Ritchie成功地用C語言重寫了Unix的第三版內(nèi)核,。至此,Unix這個操作系統(tǒng)修改,、移植相當(dāng)便利,,為Unix日后的普及打下了堅實的基礎(chǔ)。而Unix和C完美地結(jié)合成為一個統(tǒng)一體,,C與Unix很快成為世界的主導(dǎo),。 之后就不算是內(nèi)核的重寫,而是系統(tǒng)的開枝散葉了,,不再做介紹,。 既然如此,那為什么現(xiàn)在做不到重寫一個Windows10,?小編一開始就說過,,系統(tǒng)內(nèi)核是系統(tǒng)的靈魂部分,但這不代表只要有靈魂這個系統(tǒng)就能活起來,,作為地基,,想要正常的居住就必須在上面無數(shù)次迭代更新建房子,,僅微軟為了Windows Vista(64位版本)重寫的核心(從這一版系統(tǒng)開始內(nèi)核不再是MS-DOS),,就耗費了數(shù)萬微軟程序員的心血,但造成的問題還是顯而易見,,拋棄MS-DOS成熟系統(tǒng)內(nèi)核帶給了Vista效率下降50%以上的問題,,直到Windows 7才有所好轉(zhuǎn),這也就說明,,地基不是想重做就重做的,! 想寫一個Windows10對于個人而言是不可能完成的事情,為什么WindowsXP的系統(tǒng)還要占1G左右的空間,歸根結(jié)底是因為除了MS-DOS的系統(tǒng)內(nèi)核以外,,還有數(shù)以萬計的各類擴展庫(DLL)和應(yīng)用程序(EXE),,這些東西的作用是將復(fù)雜的DOS命令簡單化,讓其他高級語言的使用者可以直接調(diào)用系統(tǒng)API從而更高效的完成應(yīng)用,,比如C語言里想要使用圖片顯示在DOS窗格,,就要調(diào)用系統(tǒng)GUI參數(shù)才可以做到,所以個人或許可以重寫一個系統(tǒng)內(nèi)核,,但是沒有相應(yīng)的擴展庫和調(diào)用接口,,就不能產(chǎn)生大量的生態(tài)軟件,這就是為什么微軟的移動系統(tǒng)會失敗的原因,。 |
|
來自: 大隆龍 > 《編程技術(shù)》