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

2021-08-25 01:25:04 字數 1770 閱讀 9861

在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的哲學,在這個世界上符合哲學到底能得到什麼好處呢?我想哲學也僅僅是人們心靈的乙個避風港吧,風大浪急還要面對,說不定要翻船,不過這就是真實...

在linux終端下執行X Window程式

在 linux 終端下執行 x window程式 作為linux 程式設計師,在大多數情況,在終端下幹活 程式設計 可能更方便一點。伺服器在機房裡,大家都連線到同一臺伺服器上,而本機在 windows 下執行乙個終端 如 securecrt 這是典型的配置。如果開發的軟體是不帶 gui介面的,一點問...

關於Linux跨網路執行X Window程式

x window在設計上就是跨網路的,x client是需要圖形顯示的應用程式,x server則負責具體顯示和傳遞使用者互動行為。二者之間通訊的協議稱為 x protocol,x協議。基於主機驗證的x window配置 1 在x server端,加入允許傳送x request的機器位址。xhost...

在Linux下沒有許可權開啟檔案

今天用xshell遠端linux的時候發現怎麼輸入密碼都被拒絕訪問 於是去到linux系統想要修改sshd config檔案,卻發現沒有許可權開啟,於是只能切換root使用者進行操作,命令如下 1 切換到root使用者。su do i 通過這個 命令輸入 當前管理 員使用者的 密碼就可 以進到r o...