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