兆芯LOGO
❶ 國產CPU和國產操作系統大揭底:究竟都有啥
近日,龍芯在北京開了一場盛大的發布會,並聲稱和Intel最強技術只有30%的差距。因為從某個角度上看,龍芯更是一個自主設計的產品,作為一個中國人是應該感到興奮的。但龍芯的發布會又讓我們對國產CPU的真實狀況和搭配的國產操作系統倍加關注,於是我們在知乎上找到了一篇對比較好的揭底文章:
先不談製造,直說設計,打著國產旗號的CPU有很多,可以分為以下幾個類型:
1. 龍芯這種從下到上都是自主設計,指令集雖然是模仿的,但也勉強算是自主的,現代CPU架構下指令集的差異性已經不大了。
2. 用開源的硬體方案的,代表類型有SPARC架構下的一些CPU,比如神舟飛船上用的就是這類,拿別人開源的東西改改就可以用了。
3. 直接買別人的硬體方案,這了指的是買了全套東西的那種,代表類型有alpha架構,也就是申威系列,太湖之光用的。
4. 拿別人的授權,然後生產CPU的,代表類型是華為海思這種,拿到ARM的授權,然後重新設計的,雖然ARM會提供公版,但像拿來直接用還是有點難度的。
5. 破解、抄襲、打磨別人家的CPU的,有一些研究所在做。
哪個是國產CPU的最好選擇?
龍芯這種其實意義是最大的,基本上把CPU設計中所有的水都試過,雖然也出過能跑Linux的桌面版本,但整體技術來說有點落後,並且市場前景也不樂觀,MIPS自己都快死了。
龍芯肯定會活著,至少作為國家戰略的技術儲備,也會有人讓它活著,但活的好不好就難說了。玩硬體太燒錢了,看Intel掙的多,燒的錢更多。
SPARC和alpha其實在實際中差不多,一種是開源的,另一種是整體買過來的。問題在於,不管是開源還是買的,基本上搞不到太好的東西,雖然申威拿到的超算的第一,但申威自身的問題很多,比如內存設計就很弱,適合做並行計算,但不適合民用。
當年太湖之光拿下超算第一的時候,很多人覺得國產CPU成氣候了,其實不是那麼一回事,民用領域對單核性能要求很高的,申威的單核可能還不如龍芯(沒研究過具體數據,可能有偏差),申威的優勢在於浮點性能強悍,但普通用戶要那麼強的浮點性能幹嘛?
SPARC多用在航天領域,歐洲人一直在用,我們在後面跟著學(之前寫的有誤,老美用的是PPC,歐洲人用SPARC),我們自己造的SPARC整體上還是有一定的差距,如果只是使用的話,已經足夠了。
再次強調,這兩類不太適合民用。
第四類就是拿授權,自己設計Soc之類的,這類包含很多,廣義一點來說,兆芯(x86)、飛騰(ARM)、海思(ARM)、展訊(ARM)等等,好像PPC指令集在國內也有拿到授權的。龍芯拿到MIPS授權以後,其實也可以歸到這類,但畢竟龍芯早期確實是全自主設計,只不過是「兼容」MIPS指令,而且龍芯發布的年代國內缺人缺錢,條件要困難的多。
狹義的看,像兆芯這種其實不算,因為沒有什麼自主性可言,其實就是VIA,但要是哪天VIA賣給國內也許不是什麼壞事,起碼可以合法生產x86的CPU了(評論里說最新的兆芯已經重新設計IP了,如果這樣就跟海思之類的差不多)。
拿到的授權不同,自主的程度也不一樣,有些可以做深度定製,有些就只能簡單改改,因為這類廠商實在是太多了,我了解的不全,不好一一評價。但我個人認為,從商業化的角度上看,這條路是最好走的。兼容性上沒有門檻,前期不需要燒特別多的錢(但也不少),對於商業化來說相對比較容易。
最後一類是拿別人的片子搞破解抄襲之類的,基本沒有什麼市場可言,要麼是打著科研的旗號,要麼打著國防的旗號,要麼就是純粹騙錢,當然可能兩三種情況並存的也有。還有,特別注意區別一下龍芯是自己做出來的,漢芯是靠打磨騙錢的,兩個不是一回事。
以上都是CPU設計方面的。
關於製造方面
生產方面,國內晶元工藝相對落後,光刻機被卡著脖子,高端的晶元生產不了。這里的晶元類型包括但不限於CPU、內存、Flash存儲等,低端的可以做一些,高端的基本沒戲。設計CPU已經很燒錢了,造CPU就更燒錢,這方面除了收購別人已經沒有捷徑可言,可是稍微好點的又限制中國收購(鎂光),龍芯過去都是委託別人製造的。
光刻機雖然是別人不賣(編者按:據ASML相關人透露,現在是已經取消這個限制了),但主要原因還是工業積累的時間不夠長。從科技樹的角度上看,光刻機依賴於高精度機床、高精度光學設備(鏡片),這些東西國產的都不行,說到尼康,都知道是做單反的,其實尼康還做光刻機,而國內就沒有這樣的企業,所以國產光刻機的路還很漫長。
國產操作系統的「爛賬」
說的到國產操作系統,這個話題就太大了,因為廣義上說國產操作系統太多了。大致分這么幾類:
1. 全自主設計的;
2. 拿開源的改的;
3. 合法的拿閉源的改的;
4. 不合法的。
以上所有大類又可以細分為民用市場和專用領域兩大塊,其中2、3條又分為改logo改皮膚的,以及深度定製的。
軟體不像硬體那麼好界定,畢竟指令集什麼的,是一下就能看出來的,軟體想要搞清楚究竟是借鑒還是抄襲還是原創,有一定難度。
下面挨個細說一下:
全自主設計的,這個怎麼說呢,要說多,也非常多,一個計算機專業的本科生或者研究生,水平高的就能自己搞一個簡單的內核,16位的、32位的、64位的,基於SMP/SMT的,甚至帶虛擬化的,我自己都寫過類似的東西。難度一點也不高,但操作系統重要的是生態,這方面全自主設計的國產系統基本上是零。
全自主設計的國產系統,一般都在專用領域,總之民用的不多見,比如嵌入式的DJYOS(我不是太了解,只是聽說)等等。
拿開源的改的,是國產系統里最常見的方式,因為這樣可以避免生態系統的困局,但也很容易招罵,比如過去的麒麟、紅旗之類的。基本上都是改Linux,或者BSD系列。這里也有一些深度定製的,比如deepin之類的。
安卓家族從廣義上說也是這類,幾家手機廠商都在搞,另外像阿里雲之類的也屬於類Linux系統。
普通用戶接觸的「國產」操作系統,大部分屬於拿開源的改的這一類。同時,在超算、嵌入式領域,這種思路也行得通。
合法拿閉源的改的,這類里也有不少,只不過很多人不了解。跟硬體一樣,軟體一樣可以拿到完整的授權(源碼級),然後就可以自己DIY了,只不過要掏很多錢,代表類型是VxWorks這類,在嵌入式里很常見。我在上家公司做交換機的時候,OS的核心也是買的。
還有一類是不合法的,但這種卻沒人管,因為管不了,主要集中在國防,航天軍工這類行業里。前面我已經說了,國內喜歡抄老美的方案,不管硬體還是軟體,硬體的CPU抄完,操作系統也跟著抄,但因為不敢明面上直接抄,只好打著兼容XXX系統這種旗號了,究竟這類系統是全自主的還是全抄襲的還是混合的,我也搞不清楚,民用領域很難接觸到,不做評價。
就出路而言,2、3、4其實差不多,論自主可控程度,基本上都是一致的(都有源碼)。別覺得抄的東西不一定就好,其實抄別人的,本身也不那麼容易,抄好了反過來把對方吞並,也不是不可能。
有些領域因為要緊跟著老美的步伐,不得不採用抄襲的方式,這其實是一種省錢辦事的好方法,自己去試水需要付出的時間和金錢的代價都太大,本來我們就落後,再挨個試水,差距只會越來越大。
有人會說源碼不是中國人寫的,不安全。我想說的是:源碼都給你了你還覺得不安全,那什麼是安全?中國人自己寫的就安全無bug?簡直是笑話。是從頭寫一個操作系統更容易更穩定,還是拿現有的源碼研究更容易更穩定?
至於民用系統,走Linux的路子其實也沒什麼問題,將來國內企業有錢了,保留Linux上層API,把內核換了就完事了,況且Linux社區里華人的貢獻也不少呢。Linux是屬於全世界的。
同時,也別把國產系統想的多麼重要,從科技樹的角度上看,國產系統依賴國產硬體,國產硬體依賴國產工業設備(機床、光刻),先把依賴性搞清楚了再看看哪個才是最重要的。真有一天美國對中國搞技術封鎖了,最大的問題是晶元,而不是什麼操作系統之類的東西。
而且建立一個完善的生態系統需要很多很多錢,可能是幾倍十幾倍三峽工程、京滬高鐵的錢,國內缺錢的地方很多,搞IT的千萬別覺得自己是個程序員,國內的所有資源都應該投放到軟體行業。代碼不能當飯吃,代碼不能當水喝,代碼也不能給誰生孩子。