Avalon將從Vista系統內核中剝離!
據Techworld稱,微軟將把圖形子系統Avalon從Vista內核中剝離出來,以提高系統的穩定性。
微軟的基礎架構師Giovanni Marchetti透露,Vista的圖形子系統(代號:Avalon,以前稱為:Windows Presentation Foundation)將從內核中分離,是因為很多系統死鎖都是GUI停止響應造成的。
微軟已經通知開發者,包括顯示卡驅動在內的大多數驅動程式都將會執行在用戶模式下,這就意味著它們不能訪問特權內核模式。在這個特權模式下,工作行程可以為所欲為,包括覆蓋掉不屬於它的記憶體空間。如果是被有bug的代碼覆蓋的就會導致系統崩潰。所以,分離圖形系統會使得系統更加穩定。根據微軟的統計,在Windows XP中,驅動程式的崩潰會有大概89%的機會導致系統崩潰。而如果是執行在用戶模式下的話,這就不會導致整個系統都崩潰了。
將UI轉移到用戶模式中也有助於增加UI硬體的獨立性,也使得微軟能盡早為開發者提供beta代碼的早期體驗;這也有助於提高針對內核模式惡意軟件的防禦力。更廣泛的來說,這使得Windows看起來更像Linux和Unix,甚至Mac OS,因為在這些系統中,圖形子系統是作為一個獨立的元件存在的。
據指出,分離圖形系統將能夠更容易的執行如AutoCAD這樣的應用程式。
而美中不足是系統性能會下降。然而,在1990年發佈NT4的時候,微軟原來是把內核模式對UI和驅動程式開放的,但當時的硬體性能遠不能和今天的相提並論。
破譯微軟Vista表示層Avalon之謎
[前言]:本文將先介紹 "Vista[/b]"的表示子系統Avalon[/b]在圖形處理方面的優勢,然後帶您開始Avalon[/b]編程之旅。
Avalon簡介[/b]
Avalon[/b]是什麼?它其實是WinFX的表示子系統,而WinFX則是.NET 2.0 Framework的延伸。Avalon[/b](阿瓦隆)是凱爾特人傳說中的西方樂土島,據說亞瑟王及其部下死後屍體被移往該島。本文的題目"阿瓦隆之迷"實際上借用了馬裡恩·齊默·布拉德利(Marion Zimmer Bradley)的一本小說的名字。
Avalon[/b]還是紐芬蘭群島的一個半島。最近微軟愛用美洲北太平洋地區的地理名稱作為產品代號。而Longhorn是北美洲范庫弗峰Whistler-Blackcomb 滑雪勝地的一酒吧的名字。Whistler和Blackcomb則分別是XP和Longhorn Server的代號。
WinFX的三大支柱
WinFX的三大支柱分別是Avalon[/b](圖形子系統)、WinFS(存儲子系統)和Indigo(通信子系統)。

Avalon[/b]與GDI 的區別在於,前者使用描述性模型來描述各種圖形實體:視窗、網頁、佈局面板、向量圖形、可重用控件、動畫、3D對像和景物等,而後者採用過程化的方式。
對像樹
Avalon[/b]應用程式的圖形輸出與GDI不同,不是按照過程化指令順序執行的,而是用不同層次的對象及其內容提供的。Avalon[/b]中所有圖形場景都是由Avalon[/b]的類模型中不同層次的對象--即對像樹--構成的。
對像樹的一個簡單實例如下:

Avalon[/b]的核心是基於圖形向量處理的渲染引擎,它負責解釋對像樹並渲染場景,它能充分發揮顯示卡的性能(自由縮放、3D陰影、α混合技術、鏡面反射、動畫、視頻等)。不過我們一步步來,先看看上面的對象樹的輸出結果:

Avalon[/b]的類模型除了有幾何圖形,還有各種控件,如edit box、label、button、combo box、check box和list control。不過這些控件都被定義為向量圖形,所以隨意縮放時不會出現鋸齒。
本質上說,用GUI元素創建對像樹,就可以開發出Avalon[/b]應用程式的UI(用戶界面)。這時,對像樹常被稱為UI樹。
一個簡單的UI樹例子:

用Avalon[/b]渲染引擎渲染之後,輸出結果如下:

由於所有UI元素都是基於向量的,面板可以隨意縮放,控件尺寸也會隨之縮放。我們還可以很方便的修改字體內容、邊框顏色等內容。
即便資料綁定也可以用描述性方式進行:您可以將控件與SQL資料庫或RSS feed等資料源聯繫起來,當顯示控件時,會自動的從資料源獲得內容,無需編寫任何過程式代碼。
不過創建UI樹只是開發圖形界面的一種方式,此外還可以用XAML。