Windows 7的心臟:有關(guān)MinWin本質(zhì)
早在Windows 7尚未發(fā)布Beta版前,大家應(yīng)該都聽說過有關(guān)Windows 7中被稱為“MinWin的微內(nèi)核,它是小巧、獨(dú)立、簡單的Windows。對于這個玩意兒相信很多人一直感到好奇,但一直以來有關(guān)它的細(xì)節(jié)資料幾乎沒有。
在前不久剛結(jié)束的微軟技術(shù)大會(TechEd 2009)上,操作系統(tǒng)內(nèi)核專家Mark Russinovich披露了有關(guān)MinWin的技術(shù)細(xì)節(jié)。
下面就讓我們來了解一下有關(guān)MinWin的重要信息。
MinWin確實(shí)存在于Windows 7(以及Windows Server 2008 R2)中,但它并不是傳統(tǒng)意義上的那種內(nèi)核。事實(shí)上,它是一個具備絕大部分基本功能并且可以被分離運(yùn)行的微型Windows系統(tǒng),不僅本身擁有核心程序,還包含了基本的文件系統(tǒng)、網(wǎng)絡(luò)連接、驅(qū)動和系統(tǒng)服務(wù)。
Windows系統(tǒng)經(jīng)過數(shù)十年的發(fā)展,體積成幾何級增長,目前已經(jīng)包含后數(shù)千個EXE、DLL文件和API。Russinovich解釋說,它們彼此之間又相互依賴,如果其中一個文件進(jìn)行改動,你甚至無法估計(jì)會影響到多少個其他文件。當(dāng)想改進(jìn)Windows的時候,發(fā)現(xiàn)只有從深層動手才能解決這些互相聯(lián)系的狀況。
MinWin,就像是從Windows中獨(dú)立出來的系統(tǒng),僅占用25MB磁盤空間和40MB的內(nèi)存。它不需要依賴其他組件就可以獨(dú)自啟動并運(yùn)行,還可以直接訪問網(wǎng)絡(luò)。但這并不表示著它會成為一個基于命令行的超輕量級操作系統(tǒng),只是它自身集成的東西使它具有很高的獨(dú)立性。
為了生成這個MinWin,微軟需要對Windows架構(gòu)的低層部分進(jìn)行了額外的劃分。由于各文件以及組件之間關(guān)聯(lián)錯綜復(fù)雜,這條分割線會從眾多的DLL文件鏈和底層系統(tǒng)服務(wù)中穿過。Russinovich說:“我們需要計(jì)算出哪些東西是MinWin需要的,哪些是不需要的。
最后,Windows開發(fā)組決定為MinWin制作了一些不同標(biāo)識的專屬DLL文件(其中一個主要文件名為:KERNELBASE.DLL)。這樣一來基于原有Windows平臺的應(yīng)用程序?qū)⒉粫艿接绊懀鳰inWin也可以擁有極高的獨(dú)立性。
也就是說,生成這個MinWin所需要的組件與其從現(xiàn)有的大堆文件中分離,還不如專門為其編寫來的簡單。
