開發瀏覽器內核難嗎?聽說光代碼就得幾千萬行?

瀏覽器開發難嗎?難非常難。

開發瀏覽器內核難嗎?聽說光代碼就得幾千萬行?

如果你留心的話你會看到,360瀏覽器用的內核也不是自己開發的,因為它使用的是谷歌瀏覽器和IE瀏覽器的內核,都是互相可以兼容的。只需其他什麼的搜狗瀏覽器、傲騰瀏覽器,雷暴瀏覽器等等不是使用谷歌內核就是火狐內核,那麼為什麼我們不自己開發一個瀏覽器呢?因為開發一個成熟的瀏覽器內核不亞於開發一個操作系統。


開發瀏覽器內核難嗎?聽說光代碼就得幾千萬行?

開發瀏覽器內核和開發操作系統屬於一個維度。

首先從技術角度來看,互聯網的很多標準都是國外公司首先制定的,如果你單獨去搞一套東西沒有人願意去適配你的產品,你做出來的東西也只是無用之物。因此你在研發內核的同時需要遵循別人的定製的標準,這就要熟悉他們的技術,這其中就設計了很多複雜的內容,由於需要遵循別人的標準,因此單獨的掣肘就很多,就好比移動通信的2G、3G、4G一樣,你是繞不開的領域。

其次如今一個瀏覽器代碼接近2400萬行,從項目規模來說,已經接近半個操作系統了。谷歌瀏覽器的背後那可是有著幾千名程序員和工程師在那裡支撐著這個東西,就說這十幾年以來,光支付的人工成本也幾十億美金了吧,更別提市場推廣的費用了,可想而知,國內誰沒事整合上百億資金去搞一個瀏覽器內核,並且這個內核搞出來怎麼去實現盈利還是一個未知數,因為已經有了更成熟的產品,你沒必要單獨去搞一個費錢費力的東西。


開發瀏覽器內核難嗎?聽說光代碼就得幾千萬行?


因此不重複造輪子,而是用別人的東西來實現自己的產品才是現在很多廠商的首選方案,像華為那樣重新制定市場規則的企業不是誰都能做到的。

另外如果大家沒事了看下一本書叫做《操作系統設計與實現》,然後在看下瀏覽器的具體實現過程什麼進程調度,IO系統,存貯系統,文件系統,網絡系統基本你能在操作系統開發上用到的技術,瀏覽器大概都用到了,想想linux內核代碼也就是2多萬行,而谷歌瀏覽器也兩千多萬行,可以說瀏覽器內核的開發和操作系統的開發基本上是屬於一個維度的。

開發瀏覽器內核難嗎?聽說光代碼就得幾千萬行?

再強調下瀏覽器內核的複雜性,html協議本身就是一個鬆散的協議,而且很龐大。光是處理這些就相當的麻煩,而這只是內核處理的一部分。並且還要考慮超級多的屬性用法,實現各種屬性的渲染,還要涉及到算法優化,另外圖形方面的知識也是必須懂的。當然開發瀏覽器的C++語法,你至少也是精通才行,否則免談。

還有就是光JS引擎就要程序員吃上好幾本書,更何況瀏覽器內核涉及編譯原理、計算機圖形學、計算機網絡、計算機操作系統、數據結構,此外還有一大堆標準、兼容性問題,想想都可怕。

最後,你所有的都搞定了還差一樣安全性,如果學過計算機安全的同學估計都應該知道,微軟以前沒事幹最喜歡打補丁,其中涉及到瀏覽器安全補丁的就佔了近一半的數量,因此對於瀏覽器的安全領域也是一個及其複雜的工作。當然除了安全,你做出來的瀏覽器還需要一個詞,性能,對沒有足夠好的性能照樣是死路一條啊。

總之你只需要知道,「瀏覽器內核」與「操作系統內核」比在工程複雜度上有過之而無不及。


分享到:


相關文章: