賈靖儀
(長(zhǎng)治職業(yè)技術(shù)學(xué)院,山西長(zhǎng)治 046000)
目前,我國(guó)自主瀏覽器的市場(chǎng)占有率較低,很多軟件開發(fā)廠商推出的瀏覽器產(chǎn)品只是對(duì)現(xiàn)有的IE、Firefox等進(jìn)行修改,產(chǎn)品的兼容性存在很大問題。針對(duì)這一問題,開發(fā)人員要研發(fā)自主可控的瀏覽器,讓基于Linux操作系統(tǒng)的瀏覽器能夠穩(wěn)定、安全地運(yùn)行,實(shí)現(xiàn)用戶訪問系統(tǒng)的平滑過渡。目前,國(guó)產(chǎn)瀏覽器存在諸多問題,如開發(fā)技術(shù)落后、沒有自主內(nèi)核、過度商業(yè)化等,這些問題阻礙了我國(guó)自主瀏覽器的發(fā)展。本文從市場(chǎng)上常見的瀏覽器入手,對(duì)瀏覽器的市場(chǎng)份額進(jìn)行分析,并對(duì)自主瀏覽器存在的問題進(jìn)行總結(jié),找出未來自主瀏覽器的發(fā)展方向,最后提出基于Linux操作系統(tǒng)自主瀏覽器關(guān)鍵技術(shù)的具體方案,希望對(duì)未來自主瀏覽器的設(shè)計(jì)與開發(fā)起到積極作用[1]。
目前,市場(chǎng)上常見的瀏覽器有:IE、Firefox、QQ瀏覽器、Safari、Opera、Google Chrome、百度瀏覽器、搜狗瀏覽器、獵豹瀏覽器、360瀏覽器、UC瀏覽器、傲游瀏覽器、世界之窗瀏覽器等。用戶使用量最多的瀏覽器有五款,分別是IE、Firefox、Google Chrome、Safari、Opera。市面上同樣也有許多雙核瀏覽器。雙核,也就是有著兩個(gè)瀏覽器內(nèi)核,但這并不意味著一個(gè)網(wǎng)頁由兩個(gè)內(nèi)核渲染得出[2]。例如,一個(gè)核是正在用的內(nèi)核,而另一個(gè)是作為備用。為了讓用戶能夠享受新技術(shù)帶來的瀏覽體驗(yàn),瀏覽器廠商發(fā)明了“雙核”這一瀏覽器模式,其中具有代表性的是搜狗瀏覽器、傲游瀏覽器、獵豹瀏覽器、QQ瀏覽器等。
國(guó)產(chǎn)自主瀏覽器市場(chǎng)占有率低的原因有兩個(gè)。第一,受到資金和技術(shù)條件限制,自主瀏覽器的開發(fā)難度較大,導(dǎo)致用戶在使用過程中會(huì)遇到崩潰、卡頓等問題。第二,國(guó)內(nèi)廠商對(duì)瀏覽器過度商業(yè)化,影響了用戶體驗(yàn)。
從技術(shù)層面來說,目前,主流的瀏覽器都采用套殼Chrome的Chromium內(nèi)核版本,并沒有自主內(nèi)核。內(nèi)核是瀏覽器中最有技術(shù)含量的一環(huán),它的核心作用是將網(wǎng)頁內(nèi)容正確地排版呈現(xiàn)在用戶眼前。全球最主流的瀏覽器內(nèi)核分別有Webkit、Trident以及Gecko。其中,Webkit是蘋果公司的內(nèi)核,被Safari瀏覽器使用,Chrome瀏覽器最初用的也是這一內(nèi)核,之后又基于該內(nèi)核推出了Blink內(nèi)核。Trident是微軟在Mosaic代碼的基礎(chǔ)之上修改而來的內(nèi)核,用于IE瀏覽器。當(dāng)前,Trident已經(jīng)加大了對(duì)現(xiàn)代瀏覽器技術(shù)的支持,推出了用在Edge瀏覽器上的EdgeHTML內(nèi)核。Gecko的代碼則完全公開,主要是Firefox瀏覽器在使用[3]。
瀏覽器內(nèi)核的開發(fā)周期長(zhǎng)、技術(shù)門檻高、耗時(shí)耗力耗錢。正因?yàn)槿绱耍恢币詠?,?guó)產(chǎn)瀏覽器都沒能實(shí)現(xiàn)內(nèi)核方面的自主,從而使得自主瀏覽器發(fā)展緩慢。不僅如此,國(guó)產(chǎn)瀏覽器在沒有自己核心算法加持的基礎(chǔ)上,又進(jìn)一步對(duì)流量和用戶進(jìn)行過度商業(yè)化。用戶在使用過程中被強(qiáng)制推送一些廣告內(nèi)容,這必然降低了用戶的使用體驗(yàn)。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展和智能手機(jī)生態(tài)的不斷完善,整個(gè)互聯(lián)網(wǎng)的競(jìng)爭(zhēng)已經(jīng)從網(wǎng)站、產(chǎn)品和服務(wù)進(jìn)入到平臺(tái)之間、生態(tài)之間的競(jìng)爭(zhēng)。
瀏覽器作為一個(gè)全面的平臺(tái),包含了搜索、內(nèi)分發(fā)、資訊內(nèi)容和掃描等各項(xiàng)功能,因此,瀏覽器背后的競(jìng)爭(zhēng)也可以看作互聯(lián)網(wǎng)公司之間的競(jìng)爭(zhēng)。這樣的競(jìng)爭(zhēng)下,國(guó)產(chǎn)瀏覽器開始把關(guān)注的重點(diǎn)放在“如何成為默認(rèn)瀏覽器”上。在利益的驅(qū)使下,國(guó)產(chǎn)瀏覽器的各種“流氓行為”也開始層出不窮,桌面彈窗、首頁廣告、添加開機(jī)啟動(dòng)、修改默認(rèn)瀏覽器、篡改瀏覽器主頁、捆綁全家桶,這些行為應(yīng)有盡有,讓用戶十分反感。
不僅如此,許多廠商紛紛把瀏覽器當(dāng)成流量入口。為了把域內(nèi)流量整合進(jìn)瀏覽器中,許多廠商將瀏覽器做成信息聚合平臺(tái),例如,國(guó)產(chǎn)某瀏覽器里面植入了太多不屬于瀏覽器本身的東西,像小說、新聞資訊、游戲等。360瀏覽器、QQ瀏覽器亦是如此。這些瀏覽器背后的廠商都想通過瀏覽器留存自家域內(nèi)的流量,從而獲取經(jīng)濟(jì)價(jià)值。這背離了瀏覽器發(fā)展的初心,最終導(dǎo)致用戶體驗(yàn)下降[4]。
國(guó)產(chǎn)瀏覽器并沒有提供友好的第三方開放平臺(tái),不像Chrome瀏覽器一樣,與其他提供功能性插件的廠商進(jìn)行合作,擁有豐富的插件系統(tǒng)。目前,很多用戶對(duì)瀏覽器的選擇十分挑剔,比如許多用戶之所以選擇Chrome瀏覽器,是因?yàn)樗‵lash廣告屏蔽、網(wǎng)頁截屏、圖片采集、視頻下載等功能。這些功能統(tǒng)統(tǒng)集中在Chrome瀏覽器里,用戶并不需要安裝第三方exe程序,使用起來十分方便。相比之下,國(guó)產(chǎn)瀏覽器在這一點(diǎn)上存在不足。很多國(guó)產(chǎn)的自主瀏覽器一味地讓用戶來消化自家的產(chǎn)品與生態(tài),塞上合作網(wǎng)站的信息與內(nèi)容,大量推送不相關(guān)的廣告內(nèi)容和新聞資訊,不與提供第三方功能性插件的平臺(tái)進(jìn)行合作。這導(dǎo)致用戶體驗(yàn)感很差,轉(zhuǎn)而選擇其他瀏覽器,最后用戶逐漸流失,市場(chǎng)份額下降。
國(guó)產(chǎn)瀏覽器要想重新獲得市場(chǎng),技術(shù)和商業(yè)模式是重心所在。事實(shí)上,谷歌、蘋果之類的瀏覽器之所以被用戶認(rèn)可,主要在于他們的技術(shù)與設(shè)計(jì)。谷歌、蘋果之類的瀏覽器在功能性、美觀性、交互性等方面的設(shè)計(jì)做得非常好,用戶在使用瀏覽器時(shí),生理和心理都會(huì)得到滿足。
在未來,國(guó)產(chǎn)瀏覽器需要學(xué)習(xí)其他廠商的優(yōu)秀經(jīng)驗(yàn),不能單純依靠瀏覽器本身實(shí)現(xiàn)商業(yè)目的,而要通過用戶使用過程中所產(chǎn)生的行為數(shù)據(jù),并基于這些行為數(shù)據(jù)對(duì)相關(guān)的廣告與應(yīng)用進(jìn)行精準(zhǔn)投放。例如,某位用戶在使用瀏覽器的過程中產(chǎn)生了一系列數(shù)據(jù),瀏覽器可以通過大數(shù)據(jù)技術(shù)對(duì)用戶行為進(jìn)行分析,了解用戶的潛在需求,從而對(duì)用戶進(jìn)行精準(zhǔn)化的廣告投放。當(dāng)然,這種精準(zhǔn)的投放并不是基于瀏覽器本身,而是由瀏覽器所衍生出來的一系列應(yīng)用程序、郵箱、其他依附的網(wǎng)站等實(shí)現(xiàn)的。瀏覽器廠商要通過相關(guān)的衍生平臺(tái)對(duì)用戶進(jìn)行精準(zhǔn)的廣告投放。利用這種廣告投放方式,一方面,廠商可以通過技術(shù)手段提前對(duì)用戶的行為和潛在需求進(jìn)行分析,增強(qiáng)客戶投放廣告的有效性和精準(zhǔn)性;另一方面,又降低了用戶的排斥感,用戶通過這些投放的廣告了解相關(guān)信息。因此,國(guó)內(nèi)廠商對(duì)瀏覽器的定位應(yīng)是把瀏覽器當(dāng)作收集用戶行為大數(shù)據(jù)的一個(gè)入口或渠道,而不是將其變成獲取商業(yè)價(jià)值的核心。國(guó)產(chǎn)瀏覽器真正的核心應(yīng)該是基于瀏覽器所獲取的用戶行為大數(shù)據(jù),通過這些大數(shù)據(jù)進(jìn)行變現(xiàn),從而獲取經(jīng)濟(jì)效益[5]。
我國(guó)擁有龐大的用戶群體,這個(gè)數(shù)量級(jí)提煉出來的創(chuàng)新是足以影響瀏覽器技術(shù)標(biāo)準(zhǔn)的。國(guó)產(chǎn)瀏覽器應(yīng)該在行業(yè)標(biāo)準(zhǔn)上奪取更多的話語權(quán)。國(guó)產(chǎn)瀏覽器廠商要加大對(duì)技術(shù)的研發(fā)投入,以用戶需求為導(dǎo)向,以安全為核心,開發(fā)出符合國(guó)內(nèi)用戶習(xí)慣的瀏覽器,服務(wù)于用戶,甚至服務(wù)于將來的國(guó)產(chǎn)操作系統(tǒng),這樣才能促進(jìn)網(wǎng)絡(luò)技術(shù)的創(chuàng)新與進(jìn)步。
目前,全球最主要的瀏覽器內(nèi)核分別是Webkit、Trident以及Gecko。其中,Webkit是蘋果公司的瀏覽器內(nèi)核,被Safari瀏覽器所使用。Trident是微軟在Mosaic代碼的基礎(chǔ)之上修改而來的內(nèi)核,用于IE瀏覽器。當(dāng)前,Trident已經(jīng)增加了對(duì)現(xiàn)代瀏覽器技術(shù)的支持,推出了用在Edge瀏覽器上的EdgeHTML內(nèi)核。Gecko的代碼則完全公開,主要是Firefox瀏覽器在使用。Linux內(nèi)核下的瀏覽器并不支持IE瀏覽器內(nèi)核,我們需要對(duì)其進(jìn)行擴(kuò)展,從而使其能夠支撐IE瀏覽器內(nèi)核的使用。本文提出研制支撐Gecko和IE(Trident)這兩種內(nèi)核的雙核瀏覽器,該瀏覽器能夠兼容IE瀏覽器的內(nèi)核,同時(shí)還能兼容ActiveX控件。雙核瀏覽器的系統(tǒng)采用Linux系統(tǒng)上比較經(jīng)典的Firefox作為基礎(chǔ)開發(fā)平臺(tái),根據(jù)Firefox所提供的比較好的通用功能,讓其能夠支持Gecko內(nèi)核。因此,對(duì)Trident引擎進(jìn)行兼容是我們關(guān)注的重點(diǎn)。
1.Trident 內(nèi)核引擎實(shí)現(xiàn)路線分析
實(shí)現(xiàn)Tirdent內(nèi)核引擎的方法主要有兩種,一是通過虛擬化技術(shù)在Linux系統(tǒng)中虛擬出Windows的運(yùn)行環(huán)境,這需要在Linux下安裝虛擬容器,如KVM和VMware。當(dāng)瀏覽器廠商在虛擬機(jī)上安裝Windows系統(tǒng)后,用戶在進(jìn)行業(yè)務(wù)訪問時(shí),業(yè)務(wù)系統(tǒng)就會(huì)通過虛擬機(jī)登錄到Windows系統(tǒng)中進(jìn)行操作,或者與IE瀏覽器進(jìn)行交互。這種實(shí)現(xiàn)方法比較簡(jiǎn)單,技術(shù)要求不高,但是缺點(diǎn)是要提前安裝Windows系統(tǒng),要占用很多系統(tǒng)空間,其安全性也難以得到保障。在虛擬機(jī)中的Windows系統(tǒng)安全性較低,容易被攻擊。因此,這種方式無法真正研發(fā)出雙核瀏覽器。二是通過對(duì)Windows的IE瀏覽器進(jìn)行Linux系統(tǒng)的重構(gòu),但是Trident并不開源,其無法實(shí)現(xiàn)在Linux操作系統(tǒng)下的重構(gòu),也無法實(shí)現(xiàn)真正基于Linux內(nèi)核的雙核瀏覽器的研發(fā)[6]。
2.雙核瀏覽器架構(gòu)設(shè)計(jì)
我們對(duì)Trident內(nèi)核引擎的實(shí)現(xiàn)路線進(jìn)行了分析,發(fā)現(xiàn)雙核瀏覽器的架構(gòu)設(shè)計(jì)需要采用Firefox作為主要引擎,通過采用IEtab+IEs4linux+Cabextract實(shí)現(xiàn)Trident引擎解決方案的架構(gòu)。數(shù)據(jù)流回路如下:(1)用戶通過Linux操作系統(tǒng)下的Firefox瀏覽器瀏覽支撐IE瀏覽器的網(wǎng)站。(2)Firefox通過調(diào)用IEtab插件,把用戶在瀏覽器使用過程中所產(chǎn)生的請(qǐng)求發(fā)送到Ies4linux。(3)IEs4linux將用戶所提出的請(qǐng)求傳遞到瀏覽器底層的Cabextract。(4)Cabextract調(diào)動(dòng)IE內(nèi)核,對(duì)cab文件進(jìn)行解析等操作,并讓IE啟動(dòng)進(jìn)程,用以執(zhí)行用戶在網(wǎng)站上進(jìn)行的業(yè)務(wù)訪問操作。(5)將最終操作的結(jié)果通過逐層傳遞上傳到Firefox瀏覽器上。
整體架構(gòu)涉及幾個(gè)軟件,這些軟件分別是Firefox、IEtab、IEs4linux、Cabextact,這幾個(gè)軟件需要進(jìn)行集體封裝。為了使用戶在使用瀏覽器的過程中有更好的體驗(yàn),我們需要對(duì)這些開源組件進(jìn)行分別部署,從而實(shí)現(xiàn)組件的高層集成。
完整的瀏覽器系統(tǒng)分為兩部分,一是新瀏覽器,它繼承了IEtab插件,將IEtab插件作為其擴(kuò)展功能;二是該IE內(nèi)核虛化系統(tǒng)直接將集成IEs4linux、Cabextract和已經(jīng)安裝好的IE作為底層虛擬化系統(tǒng),使Linux的消息與新架構(gòu)的雙核瀏覽器進(jìn)行交互。
1.沙箱防護(hù)措施
沙箱防護(hù)的安全防護(hù)措施是目前比較常用的瀏覽器安全防護(hù)措施之一,這種防護(hù)措施能夠讓雙核瀏覽器在用戶瀏覽過程中,多標(biāo)簽之間互相隔離,每一個(gè)標(biāo)簽獨(dú)立運(yùn)行,避免出現(xiàn)多標(biāo)簽情況下單一標(biāo)簽崩潰導(dǎo)致的瀏覽器崩潰或系統(tǒng)崩潰的情況,提高了瀏覽器的可靠性。此外,瀏覽器的雙核分別運(yùn)行在具備基本運(yùn)行環(huán)境的容器中,相對(duì)形成了封閉的沙箱。這種沙箱是通過容器和虛擬化技術(shù)搭建而成的,如果有外部惡意攻擊或有病毒感染,瀏覽器可以通過虛擬化技術(shù)或者容器的備份技術(shù)對(duì)數(shù)據(jù)進(jìn)行還原,從而對(duì)惡意攻擊和病毒感染進(jìn)行源頭防護(hù)。例如,瀏覽器所采用的Trident內(nèi)核有多個(gè)版本,每個(gè)版本之間的安全漏洞積累不同,如果瀏覽器采用常規(guī)的安全防護(hù)手段,就需要與微軟公司溝通解決,開發(fā)者需要投入的資金和精力相對(duì)較高。因此,沙箱防護(hù)的技術(shù)能夠從源頭進(jìn)行安全防護(hù),降低了安全成本,提升了瀏覽器的安全性和防護(hù)能力。
2.瀏覽器自身的安全保護(hù)措施
雙核瀏覽器的安全防護(hù)相較于其他瀏覽器有相同之處,也有不同之處。雙核瀏覽器通過服務(wù)端對(duì)安全的黑白名單進(jìn)行管理,做好來訪用戶的安全訪問控制,提高安全性。瀏覽器本身的虛擬化技術(shù)能夠虛擬運(yùn)行環(huán)境,一旦瀏覽器的運(yùn)行環(huán)境被破壞,我們還可以對(duì)數(shù)據(jù)進(jìn)行備份,以恢復(fù)運(yùn)行環(huán)境。這種方式與沙箱的機(jī)制比較類似。此外,SWT的Browser控件能夠?qū)Σ《竞蛺阂饩W(wǎng)站進(jìn)行篩查與過濾。在用戶訪問網(wǎng)站的過程中,Browser控件會(huì)提前對(duì)網(wǎng)頁內(nèi)容進(jìn)行審查,如果網(wǎng)站具有安全隱患,控件會(huì)對(duì)用戶進(jìn)行告知,并詢問用戶是否要繼續(xù)訪問該網(wǎng)站,從而提高瀏覽器的安全性。
我國(guó)擁有龐大的用戶群體,自主研發(fā)瀏覽器應(yīng)該在行業(yè)標(biāo)準(zhǔn)上奪取更多的話語權(quán),然后服務(wù)于用戶。研發(fā)基于Linux操作系統(tǒng)的自主可控瀏覽器是響應(yīng)維護(hù)國(guó)家網(wǎng)絡(luò)安全的需要。目前,針對(duì)我國(guó)自主瀏覽器關(guān)鍵技術(shù)的研究需要相關(guān)開發(fā)者加大關(guān)注,在滿足用戶需求的基礎(chǔ)上,增強(qiáng)瀏覽器的安全性與可靠性。國(guó)產(chǎn)瀏覽器廠商只有以用戶需求為導(dǎo)向,為用戶提供更好的服務(wù),才能讓國(guó)產(chǎn)自主瀏覽器不斷發(fā)展、不斷進(jìn)步。