天天看點

X Window沒有在linux核心實作的原因

在linux核心中沒有實作X Window,在linux裡面沒有相應的X驅動,這裡面我想有兩個原因,其中一個是最重要的。先談談那個不那麼重要的,衆所周知linux核心隻提供了機制而不提供政策,X這種東西對于核心來說太政策了,它涉及顯式驅動程式等等,關于顯式的東西是人機互動中最重要的東西,這也就是為何人們普遍對顯示卡有要求而對聲霸卡沒有要求的原因,顯式相關的東西和别的比如列印機驅動相比具有自己的獨特的特點,那就是複雜,高度政策化,它幾乎是人的玩具而不是硬體的特質,于是linux核心當然為了不引入過多的政策也就對此類驅動敬而遠之了,相反在使用者空間實作x驅動而對顯示卡的控制邏輯。我想到的第二個原因也就是最重要的原因就是linux的開源模式,因為它是開源的,沒有固定的開發周期和市場調研,那麼就決定了它不一定是跟着市場走的,而在某種程度上是由别的原因決定的,開源的模式也決定了開源軟體隻能很好的提供機制而不提供政策,它們隻能在點上做文章而不能像Microsoft那樣一下子就做一條産品線,開源的軟體隻是解決一個問題而不能滿足一類使用者的永久需求,比如vsftpd能解決遠端檔案傳輸并且它是一個伺服器需要自己配備用戶端,而windows下自帶的ftp卻隻是一個IIS中的子產品罷了,開源模式下開發的軟體在點上的力量很大卻不能形成自己的産品線,相反商業的軟體卻可以一下子提供一整套解決方案,加之開源軟體的開發者的報酬是不定的,是以多數情況下隻能憑興趣和激情去做事而不能靠别的。明白了以上原因以後,我們看一下為何在linux核心中沒有實作x和很多顯式控制邏輯,顯式控制邏輯是和市場有很大關系的,某種程度上,它關系到目前流行的遊戲,流行的電影以及王牌廠商的規範,比如Microsoft的DirectX10就是一個例子,既然和商業聯系在了一起,那麼它在一些信念上就是和開源相悖的,故而就不能為了在核心中實作顯式驅動而和商業和政策攪合在一起了。

視覺沖擊永遠是新事物對人們的第一沖擊,難怪廠商紛紛要搶占人們的眼睛,誰控制了顯式規範誰就控制了PC,遊戲已經成了推動PC發展的第一推動力,linux如果無心在桌面市場和衆強角逐,那麼它就沒有必要去在核心實作内置的顯式驅動,當然它是沒有必要的啦,linux關注的是伺服器領域,如今雖然linux開始進軍桌面,但是我不希望它跑偏。開源模式的點上功夫就好比unix的偉大哲學--每次隻做并且做好一件事。和對人們視覺沖擊不同,聽覺沖擊往往對人們影響不是很大,人們天天都在談環繞立體聲,杜比等等但是沒有幾個人真的去關注,而且聲音規範變化的沒有顯式規範快,是以聲音規範顯得更加穩定,那麼linux的核心就可以實作聲音驅動,可以實作各種聲音規範,而且還真的有人去做這件事,比如最新的ALSA驅動就包含了很多聲音規範,Intel最新的HD聲音規範代替了AC97,當然也可以說是AC97的更新在linux的各個聲霸卡驅動裡面也得到了實作。我的一個親身經曆就是去年的時候我接到一個工作,就是驅動我們公司自己研發的一塊闆子的聲音晶片和顯式晶片,當然晶片都是标準的,接口也是标準的,不同的就是總線不同,于是我的工作就是到驅動總線為止,以後的用規範的做,這一切看起來很是簡單,但是做起來卻不是我想的那麼簡單,幾個夜晚我沒有合眼,不是聲霸卡驅動寫不好,而是顯示卡驅動太複雜,其實聲霸卡驅動我一周就完成了,就是驅動一下總線然後按照聲霸卡晶片的規範驅動聲霸卡就可以了,一切很順利,但是顯示卡就不是這樣了,我也按照同樣的步驟做,但是就是無法正常驅動顯示卡,後來我查了資料,發現顯示卡規範太複雜了,我在實作的時候漏掉了很多關鍵的東西,這個過程耗了我将近一個半月時間...我想linux核心的設計者和實作者也是這麼認為的吧,難怪x沒有在核心實作呢,不過這也好,這可以讓x可以成為一個自成體系的系統。

在最新的2.6.29核心中,核心實作了核心中的顯式控制邏輯,叫做kernel-mode-setting,我不知道這到底是好是壞,如果從相容和使用者角度來講這當然好了,但是卻完全不符合unix的哲學,在這個世界上符合哲學到底能得到什麼好處呢?我想哲學也僅僅是人們心靈的一個避風港吧,風大浪急還要面對,說不定要翻船,不過這就是真實...

 本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1274151

繼續閱讀