談?wù)勈謾C(jī)GPU驅(qū)動(dòng)升級(jí)那點(diǎn)事
最近,MIUI開(kāi)始推送獨(dú)立GPU驅(qū)動(dòng)的事情,引起了很多朋友的關(guān)注。眾所周知,手機(jī)的硬件驅(qū)動(dòng)往往不能像電腦一樣,獨(dú)立安裝升級(jí),現(xiàn)在情況居然發(fā)生了變化,不少朋友紛紛感嘆這簡(jiǎn)直就是黑科技。
▲應(yīng)用商店竟然可以推送GPU驅(qū)動(dòng)更新?
GPU驅(qū)動(dòng)能夠獨(dú)立升級(jí),對(duì)于用戶(hù)體驗(yàn)來(lái)說(shuō),無(wú)疑是一件好事情。通過(guò)獨(dú)立的驅(qū)動(dòng)更新,手機(jī)能夠更迅速便捷地獲得新驅(qū)動(dòng)帶來(lái)的性能提升、問(wèn)題修復(fù)。這樣的好事情,在別的安卓上也會(huì)有嗎?這是獨(dú)門(mén)科技還是大勢(shì)所趨?這就來(lái)談?wù)劙伞?/p>安卓為何沒(méi)法單獨(dú)升級(jí)驅(qū)動(dòng)?
安卓之所以長(zhǎng)時(shí)間以來(lái),沒(méi)法像Windows那樣靈活升級(jí)驅(qū)動(dòng),是和系統(tǒng)架構(gòu)息息相關(guān)的。安卓基于Linux,而Linux使用的是宏內(nèi)核,系統(tǒng)內(nèi)核和驅(qū)動(dòng)等模塊緊密結(jié)合。而Windows的架構(gòu)更接近于微內(nèi)核,系統(tǒng)各模塊之間分離度較高。
宏內(nèi)核和微內(nèi)核(類(lèi)微內(nèi)核)的特性,會(huì)反映到驅(qū)動(dòng)的更新推送的體驗(yàn)上。由于宏內(nèi)核將驅(qū)動(dòng)和系統(tǒng)內(nèi)核耦合在一起,因此如果想要升級(jí)驅(qū)動(dòng),往往需要升級(jí)系統(tǒng);而Windows這樣的類(lèi)微內(nèi)核系統(tǒng),則可以獨(dú)立升級(jí)驅(qū)動(dòng)。微軟為了兼容更多硬件,還為驅(qū)動(dòng)設(shè)計(jì)了標(biāo)準(zhǔn)模型,例如圖形驅(qū)動(dòng)的WDDM,音頻架構(gòu)UAA等,只要驅(qū)動(dòng)編寫(xiě)符合WDDM、UAA等架構(gòu),就可以自行安裝升級(jí),無(wú)需對(duì)系統(tǒng)內(nèi)核進(jìn)行改動(dòng)。
▲傳統(tǒng)意義上的安卓系統(tǒng)架構(gòu),可見(jiàn)顯示驅(qū)動(dòng)、相機(jī)驅(qū)動(dòng)等等都是被打包在Linux內(nèi)核當(dāng)中的
盡管宏內(nèi)核在驅(qū)動(dòng)升級(jí)方面不夠靈活,但Linux之所以如此設(shè)計(jì),還是有道理的——宏內(nèi)核耦合度高,這可以帶來(lái)更高的進(jìn)程間IPC通訊效率,性能更為出色。因此,我們可以看到Linux廣泛應(yīng)用于各類(lèi)不同性能的設(shè)備之上,超算用Linux能夠更加物盡其用,智能手環(huán)這樣的小物件用Linux則可以帶來(lái)更流暢的體驗(yàn)。
安卓的改變:裝驅(qū)動(dòng)越來(lái)越像Windows?然而,宏內(nèi)核在移動(dòng)互聯(lián)網(wǎng)/物聯(lián)網(wǎng)時(shí)代,則遭遇到了一些挑戰(zhàn)。各式各樣智能設(shè)備迅速涌現(xiàn),令硬件適配成為了一個(gè)不得不面對(duì)的問(wèn)題。
以安卓機(jī)為例,市面上的安卓機(jī)使用了不同的CPU、GPU、基帶、CODEC等等,由于宏內(nèi)核的高耦合度,安卓機(jī)很難對(duì)操作系統(tǒng)和硬件驅(qū)動(dòng)進(jìn)行單獨(dú)升級(jí),無(wú)論想要升級(jí)系統(tǒng)還是想要升級(jí)驅(qū)動(dòng),廠(chǎng)商都需要為每個(gè)安卓機(jī)型號(hào)單獨(dú)制作系統(tǒng)鏡像。并不是每個(gè)廠(chǎng)商都會(huì)選擇投入大精力到系統(tǒng)維護(hù)當(dāng)中的,這導(dǎo)致了安卓系統(tǒng)和驅(qū)動(dòng)升級(jí)困難,最后的結(jié)果就是安卓機(jī)系統(tǒng)版本的碎片化。
為此,Google改變了安卓的形態(tài),在安卓8.0中推行了Project Treble機(jī)制,將系統(tǒng)(Android OS framework)單獨(dú)分區(qū),和硬件驅(qū)動(dòng)(Vendor implementation)分離,此后廠(chǎng)商可以為設(shè)備單獨(dú)推送新版安卓,而不需要重新適配驅(qū)動(dòng)。Project Treble大大簡(jiǎn)化了安卓系統(tǒng)的升級(jí)流程,我們也可以觀(guān)察到,安卓8.0以后的設(shè)備,升級(jí)安卓大版本的速度比以前更快了。
▲Project Treble將Google的安卓系統(tǒng)框架和硬件供應(yīng)商提供的驅(qū)動(dòng)作了分離
但這還不夠。在安卓10當(dāng)中,Google推行了Project Mainline,將系統(tǒng)進(jìn)一步細(xì)分模塊化。在安卓10中,14個(gè)系統(tǒng)組件被Mainline化,媒體解碼器、權(quán)限控制器、網(wǎng)絡(luò)組件等系統(tǒng)組件,都可以像普通APP一樣,通過(guò)應(yīng)用商店來(lái)更新——GPU驅(qū)動(dòng)能夠獨(dú)立更新,就得益于此。
可以說(shuō),安卓通過(guò)Project Treble和Project Mainline,正變得越來(lái)越“微內(nèi)核”。在尚未正式發(fā)布的安卓11中,安卓的組件模塊達(dá)到了20個(gè)之多,安卓的系統(tǒng)維護(hù)將會(huì)變得前所未有地靈活,變得越來(lái)越像PC。
GPU驅(qū)動(dòng)升級(jí)是黑科技嗎?可見(jiàn),MIUI之所以能夠通過(guò)應(yīng)用商店獨(dú)立更新GPU驅(qū)動(dòng),主要是受益于安卓Project Treble和Project Mainline的特性。而作為此次更新所服務(wù)的硬件,高通芯片的貢獻(xiàn)也功不可沒(méi)。
在去年年底,高通就宣布旗下的最新SoC驍龍865,可以通過(guò)應(yīng)用商店來(lái)獨(dú)立更新驅(qū)動(dòng),而且更新操作和更新APP一樣簡(jiǎn)單。不過(guò)當(dāng)時(shí)高通所說(shuō)的是通過(guò)Google Play商店來(lái)進(jìn)行更新,由于眾所周知的原因,國(guó)內(nèi)無(wú)法使用Google Play,因此MIUI轉(zhuǎn)用自己的渠道更新GPU驅(qū)動(dòng),這還是很不錯(cuò)的。
▲高通宣布GPU驅(qū)動(dòng)可以單獨(dú)更新
如無(wú)意外,高通今后也會(huì)繼續(xù)為旗下的芯片發(fā)布新驅(qū)動(dòng),不過(guò)是否所有的安卓機(jī)都能收到更新?這最終還得看手機(jī)OEM廠(chǎng)商——驅(qū)動(dòng)發(fā)布后,需要OEM廠(chǎng)商進(jìn)行測(cè)試,然后再向用戶(hù)推送。無(wú)論如何,OEM廠(chǎng)商所需要做的工作,已經(jīng)比以往少了許多,這都不給用戶(hù)提供驅(qū)動(dòng)升級(jí),未免太說(shuō)不過(guò)去。
目前高通似乎尚未明確除了驍龍865外,還有哪些芯片能夠獲得獨(dú)立的驅(qū)動(dòng)更新。但無(wú)論如何,Project Mainline的前途是光明的。此后我們有望在越來(lái)越多的手機(jī)上得到GPU驅(qū)動(dòng)升級(jí)這樣的福利,這個(gè)Google帶來(lái)的“黑科技”將成為解決安卓碎片化的希望。
總結(jié)隨著移動(dòng)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的發(fā)展,為了更靈活地適配硬件,系統(tǒng)的“微內(nèi)核化”似乎成為了趨勢(shì),從安卓的系統(tǒng)架構(gòu)變更可以印證這點(diǎn)。希望有更多硬件廠(chǎng)商跟進(jìn)安卓的新機(jī)制,及時(shí)為各類(lèi)硬件推送獨(dú)立驅(qū)動(dòng),為用戶(hù)帶來(lái)更好的體驗(yàn)吧!