新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 業(yè)界動(dòng)態(tài) > 國(guó)產(chǎn)操作系統(tǒng)不僅僅是換皮膚

國(guó)產(chǎn)操作系統(tǒng)不僅僅是換皮膚

作者:python小生 時(shí)間:2020-08-17 來(lái)源:python小生 收藏

我覺(jué)得很多國(guó)人對(duì)上有誤會(huì),“這不就是在linux系統(tǒng)上換一個(gè)皮膚嘛”,這種評(píng)論我聽(tīng)到的最多。所以我覺(jué)得有必要給對(duì)有誤會(huì)的人做個(gè)科普。讓大家了解這么多年我們?cè)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/國(guó)產(chǎn)操作系統(tǒng)">國(guó)產(chǎn)操作系統(tǒng)上做了哪些工作。

本文引用地址:http://butianyuan.cn/article/202008/417124.htm

什么是桌面操作系統(tǒng)?

桌面操作系統(tǒng)就是大家平常電腦里面用的操作系統(tǒng)。 桌面操作系統(tǒng)應(yīng)該是所有操作系統(tǒng)類(lèi)型中最為復(fù)雜、研發(fā)技術(shù)難度最高的一種操作系統(tǒng)了。 世界上非常優(yōu)秀的桌面操作系統(tǒng)有微軟的Windows和蘋(píng)果的Mac OS,其他的Linux桌面操作系統(tǒng),比如Fedora、Suse、Ubuntu包括我們自己的deepin操作系統(tǒng),雖然這十幾年取得了長(zhǎng)足的進(jìn)步,但是相對(duì)于Windows和Mac OS,不論技術(shù)先進(jìn)性、交互設(shè)計(jì)還是產(chǎn)品質(zhì)量方面都還有非常大的差距。

桌面操作系統(tǒng)都有哪些部分組成?

一個(gè)普通用戶使用的桌面操作系統(tǒng)的組成部分主要包括:

  • 內(nèi)核、驅(qū)動(dòng)以及固件:主要用于驅(qū)動(dòng)硬件可以正常工作,除了CPU、內(nèi)存、磁盤(pán)外,最主要的是要廣泛兼容不同的網(wǎng)卡、顯卡、聲卡和外設(shè)等硬件設(shè)備。

  • 軟件倉(cāng)庫(kù)及眾多開(kāi)發(fā)庫(kù):如果沒(méi)有開(kāi)源社區(qū)眾多大神打包好的軟件倉(cāng)庫(kù)和各種開(kāi)發(fā)庫(kù),要基于Linux來(lái)開(kāi)發(fā)一個(gè)操作系統(tǒng)甭說(shuō)開(kāi)源愛(ài)好者,甚至就是一個(gè)中型公司都很難做起來(lái),可以說(shuō)開(kāi)源軟件倉(cāng)庫(kù)從本質(zhì)上改變了操作系統(tǒng)和開(kāi)源軟件的開(kāi)發(fā)模式,豐富的軟件倉(cāng)庫(kù)使開(kāi)源開(kāi)發(fā)者、組織和公司能夠使用最新技術(shù)的同時(shí)開(kāi)發(fā)成本也降低了很多。

  • 桌面環(huán)境:就是大家平常一開(kāi)機(jī)就用到的桌面、任務(wù)欄和開(kāi)始菜單等,可以說(shuō)一個(gè)高質(zhì)量和交互設(shè)計(jì)極佳的桌面環(huán)境可以極大降低用戶使用新的桌面操作系統(tǒng)的門(mén)檻

  • 應(yīng)用商店:對(duì)于用戶來(lái)說(shuō),絕對(duì)不僅僅是一個(gè)好玩的桌面環(huán)境就能留下的,沒(méi)有好的應(yīng)用商店帶來(lái)的海量應(yīng)用和方便易用的安裝操作,普通用戶用幾天就會(huì)放棄,可以說(shuō)應(yīng)用商店是留住普通用戶的最基本要求。

  • 預(yù)裝應(yīng)用:在國(guó)內(nèi)來(lái)看,至少需要解決QQ、Office、網(wǎng)銀和一系列方便易用的多媒體應(yīng)用才能算是一個(gè)好用的桌面操作系統(tǒng)。目前國(guó)產(chǎn)操作系統(tǒng)可以兼容很多windows軟件,若是有迫切的需要,可以去官網(wǎng)提交自己的需求來(lái)加速適配。

什么是桌面環(huán)境?

桌面環(huán)境簡(jiǎn)單來(lái)說(shuō),就是在內(nèi)核和X Server之上,寫(xiě)一批程序讓用戶登錄后就可以直覺(jué)性、流暢的使用桌面、任務(wù)欄、開(kāi)始菜單、文件操作和系統(tǒng)設(shè)置。

這里對(duì)X server做個(gè)科普,X server是Linux系統(tǒng)里面圖形接口服務(wù)器的簡(jiǎn)稱(chēng)。

Windows系統(tǒng)的界面是這個(gè)系統(tǒng)不可分割的一部分,各種窗口操作界面顯示都是由系統(tǒng)核心直接管理的,

而Linux的圖形界面并不是系統(tǒng)的必要組成部分,它可以在無(wú)界面的條件下運(yùn)行。當(dāng)需要Linux提供界面的時(shí)候,系統(tǒng)就會(huì)建立一個(gè)或者數(shù)個(gè)X server,通過(guò)X協(xié)議跟窗口管理器交互,由獨(dú)立于系統(tǒng)的應(yīng)用程序來(lái)產(chǎn)生窗口,狀態(tài)欄,按鈕之類(lèi)的交互界面。

比較常見(jiàn)的Linux界面操作環(huán)境有KDE和GNOME,為它們提供系統(tǒng)支持的就是X server,而并非Linux核心。

總結(jié)一下linux圖形界面層次關(guān)系:

linux本身-->X服務(wù)器<-[通過(guò)X協(xié)議交談]->窗口管理器(綜合桌面環(huán)境)-->X應(yīng)用程序。

這個(gè)世界上從功能完整性和產(chǎn)品質(zhì)量來(lái)看主要有四個(gè)桌面環(huán)境:

  • RedHat主導(dǎo)開(kāi)發(fā)的Gnome, Gnome2的穩(wěn)定性和性能都非常好,包括后面的Mint桌面都是衍生于Gnome2。

  • Suse主導(dǎo)開(kāi)發(fā)的KDE:可以說(shuō)功能最為豐富的桌面環(huán)境,包括產(chǎn)品質(zhì)量以及性能每年都在飛速進(jìn)步。

  • Ubuntu主導(dǎo)開(kāi)發(fā)的Unity: Unity身上還是可以看到很多Gnome2的影子,產(chǎn)品質(zhì)量和性能都不錯(cuò),Ubuntu自己獨(dú)立開(kāi)發(fā)了Mir、Unity桌面環(huán)境和一些全局菜單等獨(dú)特特性。

  • Deepin主導(dǎo)開(kāi)發(fā)的DDE: 作為DDE的開(kāi)發(fā)者,客觀的評(píng)價(jià),產(chǎn)品質(zhì)量、設(shè)計(jì)視覺(jué)都符合中國(guó)人的習(xí)慣,很多地方的交互設(shè)計(jì)細(xì)節(jié)要比其他桌面環(huán)境做的更加精致和簡(jiǎn)單,主要面向開(kāi)箱即用的非技術(shù)型用戶,從功能設(shè)計(jì)上并不適合技術(shù)高手和那些本來(lái)就喜歡折騰的技術(shù)型用戶

其他輕量型的桌面環(huán)境,比如LXDE、XFCE、Enlightenment雖然性能極佳,但是從桌面環(huán)境的功能完整性和交互設(shè)計(jì)的精致性上都不夠,比較適合有一定技術(shù)深度,追求性能和自己配置多于開(kāi)箱即用的技術(shù)型用戶。

剩下的就是一堆平鋪類(lèi)窗口管理器,比如大家熟知的:awesome, i3, xmonad, dwm, stumpwm等等,這些窗口管理器型的桌面環(huán)境有300多個(gè),我曾經(jīng)為了研究所有桌面環(huán)境的特性,把這些窗口管理器都用過(guò),最喜歡的是xmonad。這類(lèi)窗口管理器的可以把個(gè)人的工作環(huán)境內(nèi)存和性能消耗降到極低,而且可定制性極強(qiáng),甚至可以通過(guò)編程來(lái)打造自己獨(dú)一無(wú)二的工作環(huán)境。這類(lèi)窗口管理器型的桌面環(huán)境比較適合開(kāi)發(fā)人員和黑客,當(dāng)然也不乏國(guó)內(nèi)一大批裝X用戶。

桌面環(huán)境和那些換主題的工作差別在哪里?

可以說(shuō),桌面操作系統(tǒng)的核心技術(shù)和產(chǎn)品功力都聚焦在桌面環(huán)境上。 只有掌握了桌面環(huán)境這個(gè)古老而又深?yuàn)W的核心技術(shù),才能說(shuō)在桌面操作系統(tǒng)上可以任意修改和改進(jìn),才能給用戶帶來(lái)更好的用戶體驗(yàn)。

因?yàn)樽烂姝h(huán)境強(qiáng)調(diào)的是從上至下全棧技術(shù)攻克,不論技術(shù)深度、技術(shù)全面性和代碼工程量來(lái)說(shuō)都是巨大的,開(kāi)發(fā)一個(gè)功能完備的桌面環(huán)境需要20+人以上的團(tuán)隊(duì)工作最少2年以上才能打造出來(lái),而且桌面環(huán)境的技術(shù)核心全部都依賴一批古老的協(xié)議,比如:x11、xcb、composite等基礎(chǔ)技術(shù),互聯(lián)網(wǎng)上幾乎沒(méi)有文檔教你怎么一步一步的構(gòu)建桌面環(huán)境,現(xiàn)成的桌面環(huán)境因?yàn)榘l(fā)展多年,代碼已經(jīng)非常復(fù)雜,最多只能從核心代碼片段有所學(xué)習(xí)。一個(gè)人要自上而下框架式的學(xué)習(xí)桌面環(huán)境核心技術(shù)并實(shí)現(xiàn)一套功能完備的桌面環(huán)境幾乎不可能。

所以,大部分的Linux發(fā)行版都是基于Gnome、KDE改的,大多數(shù)都是在網(wǎng)上找一批主題(Gtk+主題、圖標(biāo)主題、光標(biāo)主題、窗口邊框主題、DM主題、鎖屏主題)再配上一張好看的壁紙就可以做一套自己DIY的桌面環(huán)境。很多Linux社區(qū)的用戶說(shuō),你看我自己都可以做桌面環(huán)境,甚至很多國(guó)內(nèi)的Linux發(fā)行版廠商也是拿著社區(qū)的桌面環(huán)境然后換一套皮膚就去騙政府的錢(qián),說(shuō)自己是自主研發(fā)的操作系統(tǒng)。

既然換套主題也可以很好,那么桌面環(huán)境和那些換主題的工作差別在哪里? 在我看來(lái),主要在幾個(gè)方面:

  • 核心技術(shù)能力:如果沒(méi)有掌握桌面環(huán)境的核心技術(shù),所有的修改能力僅僅限于修改主題、logo、字符串替換的能力

  • 產(chǎn)品質(zhì)量無(wú)法保障:特別是有很多隱蔽性的bug,如果不掌握核心技術(shù),連問(wèn)題發(fā)生的原因都不知道,更不用提怎么解決

  • 設(shè)計(jì)細(xì)節(jié):如果大家仔細(xì)看那些只是套用主題的桌面環(huán)境,就會(huì)發(fā)現(xiàn)外面看著還可以,但是很多按鈕的顏色、留白以及控件的對(duì)齊都是有問(wèn)題的,甚至是粗糙的,為什么?這是由GTK+的主題設(shè)計(jì)導(dǎo)致的,GTK+強(qiáng)調(diào)的是一套原生控件打天下,但是面對(duì)無(wú)窮的應(yīng)用和需求,不是所有的交互都能靠一套控件才能滿足的,在大多數(shù)Linux社區(qū)開(kāi)發(fā)者不具備控件自繪的能力前提下,大多數(shù)開(kāi)發(fā)者都選擇套用不合適的控件和控件主題去拼裝,而GTK+主題的作者不可能在制作主題的時(shí)候測(cè)試所有軟件,而且從GTK+先天限制也做不到,最后導(dǎo)致不論怎么套用主題,各種軟件拼裝在一起,就像各種質(zhì)量參差不齊的補(bǔ)丁拼在一起一樣的,大多數(shù)開(kāi)源社區(qū)開(kāi)發(fā)者被虐很多年可以忍受粗糙的設(shè)計(jì)細(xì)節(jié),但是對(duì)于普通用戶來(lái)說(shuō),這種拼裝的設(shè)計(jì)細(xì)節(jié)就像拿著當(dāng)年的諾基亞和現(xiàn)在的iPhone7放一塊的感覺(jué)那么強(qiáng)烈。

  • 統(tǒng)一的操作接口:比如右鍵菜單、文件打開(kāi)對(duì)話框、認(rèn)證對(duì)話框等等,只有從深層次統(tǒng)一這些底層接口,才不會(huì)看到不同風(fēng)格的右鍵菜單、文件打開(kāi)對(duì)話框、認(rèn)證對(duì)話框,這些都對(duì)于統(tǒng)一的桌面操作系統(tǒng)體驗(yàn)非常重要,想一想如果你自己買(mǎi)的iPhone各處都粗糙不一樣,你會(huì)不會(huì)砸了它?但是為啥這么多開(kāi)源愛(ài)好者就能忍受這些粗糙的東西?(因?yàn)樽约簺](méi)有花錢(qián),花了錢(qián)你看他不把客服電話打爆...)

一個(gè)完整的桌面系統(tǒng)從技術(shù)剖面看,從下到上主要分這幾層:

  • 內(nèi)核驅(qū)動(dòng)層:前面已經(jīng)說(shuō)了,主要是保障硬件的基本功能和兼容性,所有的Linux發(fā)行版都大同小異,差別就是內(nèi)核補(bǔ)丁集不一樣,或者集成的驅(qū)動(dòng)和固件多少的差異

  • 顯示服務(wù)層:從內(nèi)核引導(dǎo)到plymouth(我們俗稱(chēng)的開(kāi)機(jī)動(dòng)畫(huà))后,只要你見(jiàn)到登錄界面輸入密碼的時(shí)候,這時(shí)候X Server已經(jīng)起來(lái)了, X Server簡(jiǎn)單來(lái)理解就是Linux系統(tǒng)中掌握著繪制圖形界面生殺大權(quán)的“天神”,所有程序要繪制圖形的時(shí)候都要發(fā)送消息到 X Server, X Server才會(huì)給你畫(huà)出來(lái)。同時(shí)X Server也是事件輸入(鍵盤(pán)鼠標(biāo))輸出(顯示器)的抽象層,開(kāi)發(fā)者可以不用考慮底層驅(qū)動(dòng)和顯卡驅(qū)動(dòng)細(xì)節(jié),直接就可以使用X11/XCB的API進(jìn)行應(yīng)用開(kāi)發(fā),只不過(guò)更多的開(kāi)發(fā)者是使用Gtk+/Qt這些在X11/XCB更上層的API進(jìn)行應(yīng)用開(kāi)發(fā)

  • 顯示管理器:簡(jiǎn)單的理解就是你看到的登錄界面提示你輸入密碼的那個(gè)地方

  • 資源管理器:這一層主要由一系列的底層守護(hù)程序來(lái)監(jiān)控硬件的狀態(tài),并匯報(bào)給上層的桌面環(huán)境和應(yīng)用進(jìn)一步操作,比如常見(jiàn)的就有網(wǎng)絡(luò)、電源、磁盤(pán)、藍(lán)牙、聲音、鍵盤(pán)、打印等

  • 桌面環(huán)境: 以深度桌面環(huán)境為例,主要包括桌面環(huán)境后臺(tái)服務(wù)和守護(hù)進(jìn)程、桌面環(huán)境對(duì)外提供圖形開(kāi)發(fā)工具庫(kù)、二進(jìn)制工具、DBus API服務(wù)和桌面環(huán)境UI界面層幾個(gè)部分組成的,后面我會(huì)詳細(xì)講每一個(gè)細(xì)節(jié)

  • 應(yīng)用商店:主要提供系統(tǒng)的軟件安裝、卸載、升級(jí)等操作,保證用戶可以安全易用的進(jìn)行軟件管理,同時(shí)提供了商店的評(píng)論和評(píng)分等功能

  • 應(yīng)用程序:主要包括深度開(kāi)發(fā)的系列應(yīng)用、合作開(kāi)發(fā)的國(guó)內(nèi)應(yīng)用、Android應(yīng)用、Windows應(yīng)用和網(wǎng)頁(yè)應(yīng)用,開(kāi)發(fā)者在linux系統(tǒng)中內(nèi)置了Android RAT,因此,可以直接運(yùn)行Android應(yīng)用。

為什么開(kāi)源的輪子不能用?

深度造了那么多輪子,為什么不用社區(qū)的?

社區(qū)技術(shù)大拿很多,但是技術(shù)強(qiáng)大的同時(shí)能把一個(gè)應(yīng)用的UI和交互細(xì)節(jié)做好的開(kāi)發(fā)者鮮有 社區(qū)大部分軟件都是面向開(kāi)發(fā)者,功能確實(shí)強(qiáng)大,但是對(duì)于小白用戶來(lái)說(shuō)太復(fù)雜了 深度希望十年之內(nèi)解決linux桌面的問(wèn)題,我們內(nèi)部每天幾百個(gè)commit的快速迭代,社區(qū)主導(dǎo)開(kāi)發(fā)完了花都謝了 希望做出來(lái)再吹牛,不想天天在社區(qū)打嘴炮。

十幾年開(kāi)源社區(qū)為什么做不好桌面?

主要用戶群體是開(kāi)發(fā)者,大多數(shù)開(kāi)發(fā)者喜歡黑客般的各種功能堆在一起,而普通用戶只需要簡(jiǎn)單易用的產(chǎn)品 太過(guò)于碎片化:大家不齊心,每個(gè)人都造半成品互相打壓,沒(méi)有形成合力,最后社區(qū)除了大量的半成品,并沒(méi)有多少應(yīng)用能夠比Windows軟件更好(真正能和Windows平臺(tái)堪比的應(yīng)用不超過(guò)50個(gè)) 鄙視小白的氛圍不好,技術(shù)稍微好一點(diǎn)的人就打擊小白用戶,大量真正的桌面小白用戶走了以后,最后導(dǎo)致大家都不關(guān)心桌面的細(xì)節(jié)體驗(yàn) 做的太少,說(shuō)的太多,有行動(dòng),10年就是翻天覆地變化,而不是大家時(shí)間長(zhǎng)了都失望了。

開(kāi)源社區(qū)擅長(zhǎng)什么?

開(kāi)源社區(qū)適合做遠(yuǎn)程協(xié)助,碎片化的事情,比如文檔和翻譯,深度社區(qū)全世界的翻譯貢獻(xiàn)者就超過(guò)300多名: https://www.transifex.com/linuxdeepin/public/ , 曾經(jīng)創(chuàng)造西班牙語(yǔ)一星期就翻譯完整個(gè)系統(tǒng)的奇跡

開(kāi)源社區(qū)適合吐槽, 我說(shuō)的是客觀的吐槽,https://bbs.deepin.org/ 各種用戶幫助開(kāi)發(fā)團(tuán)隊(duì)發(fā)現(xiàn)更多測(cè)試版的bug和非常非常好的反饋建議 開(kāi)源社區(qū)適合打包移植, https://www.deepin.org/dde/desktop-transplantation/ 目前深度桌面已經(jīng)移植到 Arch, Manjaro, SparkyLinux, openSuse, Ubuntu, Gentoo, Fedora 等發(fā)行版

國(guó)內(nèi)技術(shù)圈偏見(jiàn)

我在開(kāi)源社區(qū)十幾年看到國(guó)內(nèi)技術(shù)圈很多偏見(jiàn),最主要的有幾個(gè):

  • 拿著自己的平鋪式窗口管理器裝X,鄙視小白用戶:其實(shí)玩過(guò)的人都知道,就是一些配置,花一些耐心和毅力就能搞定,這些只能證明你比較能折騰,但折騰并不代表你的學(xué)識(shí)淵博和能力高超,更不是鄙視和嘲笑別人的資本

  • 認(rèn)為只有玩內(nèi)核才是技術(shù)高手: 不懂linux的人這樣認(rèn)為,很多開(kāi)發(fā)者也這樣認(rèn)為,真正開(kāi)發(fā)內(nèi)核的開(kāi)發(fā)者都知道,內(nèi)核開(kāi)發(fā)和應(yīng)用開(kāi)發(fā)和其他任何開(kāi)發(fā)都一樣,唯一的不同就是更難調(diào)試,更復(fù)雜不是只會(huì)內(nèi)核開(kāi)發(fā)的開(kāi)發(fā)者才是最厲害的人,很多內(nèi)核的開(kāi)發(fā)都要和應(yīng)用以及現(xiàn)實(shí)場(chǎng)景配合才有意義。更不是自己會(huì)編譯內(nèi)核就開(kāi)始了不起了

  • 認(rèn)為做UI和桌面環(huán)境很容易: 其實(shí)很多嘲笑做UI的人,即使是一些開(kāi)發(fā)者,我相信大部分人連XCB以及窗口移動(dòng),甚至窗口陰影都繪制不出來(lái),在國(guó)內(nèi)看到太多拿著無(wú)知當(dāng)權(quán)威的噴子了,希望這些人長(zhǎng)大以后學(xué)會(huì)謙虛。其實(shí)大家都是看著功成名就來(lái)評(píng)判的,蘋(píng)果應(yīng)該是這個(gè)世界上折騰UI細(xì)節(jié)最多的公司,但是沒(méi)有人說(shuō)蘋(píng)果只會(huì)UI,為什么?國(guó)人就喜歡打壓還沒(méi)有成功的公司,然后跟風(fēng)吹捧成功的公司和產(chǎn)品

  • Linux就是應(yīng)該折騰: Linux早期的折騰對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是非常有幫助的,但是人都有會(huì)老,都會(huì)累的那一天(要不是為什么達(dá)拉斯黑客大會(huì)那么多大牛最后用Mac, 是因?yàn)樗麄冋垓v沒(méi)有你多嗎?),一旦折騰完Linux就應(yīng)該花更多時(shí)間去學(xué)習(xí)新的知識(shí)或享受生活, 而不是一直都在折騰,然后鄙視不會(huì)折騰的人。

通過(guò)上面的科普,大家還有認(rèn)為國(guó)產(chǎn)系統(tǒng)僅僅是換膚那樣簡(jiǎn)單的事情嗎?我認(rèn)為大家應(yīng)該尊重每一位技術(shù)開(kāi)發(fā)者,但是真的對(duì)于那些完全不基于調(diào)查,只是簡(jiǎn)簡(jiǎn)單單基于對(duì)國(guó)內(nèi)開(kāi)發(fā)團(tuán)隊(duì)鄙視而輕言下結(jié)論的人感到痛心,希望國(guó)人基于事實(shí)支持好的產(chǎn)品和團(tuán)隊(duì),停止一切不實(shí)的攻擊。

以上部分內(nèi)容來(lái)源作者:ManateeLazyCat



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉