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