為什麼中國沒有自主研發的操作系統?
我寫個操作系統,上面連QQ都沒法用(騰訊公司沒有開發基於我操作系統的QQ),請問你用嗎?同樣的,你也用不了OFFICE,Chrome,LOL。
操作系統,已經不是編程能力和技術的問題了,是生態的問題,現在市面上總共就流行的三大平台,Win,Mac,Linux,就這三大佬,都給軟體編程人員帶來非常多的麻煩(一個native的客戶端軟體要寫三個平台),所以大部分遊戲公司只會選擇給Win開發,而不會去適配另外兩家。
硬體也是,不要光看那些顯卡電路,更重要的是驅動,硬體廠商只為Linux提供有限的性能驅動,像DirectX這類的高級貨也沒有精力為Linux提供,Linux也用不起來,所以你懂的,Linux上的遊戲相當少。
所以,要想中國做個自己的操作系統,不是能力的問題,是生態的問題,此問題同樣適用於手機操作系統。
可以預言,除非BAT強力合作,並且政府撥出大量資金贊助,否則,不要說中國,全世界操作系統都只會維持目前的Win,Linux,Mac三足鼎立的現狀,只會出現其中某一個衰敗退出歷史舞台,不會再多了。
以上,不適用專用平台,比如軍方。
很簡單,不是做不到,因為沒必要,不划算。經濟上ROI太低。
學生時代的有陣子痴迷操作系統,大概是2005年左右,讀過linux的kernel代碼、NT泄露出來的代碼、BSD代碼。訂閱大量OS的郵件列表。
畢業以後也做了好幾年底層軟體開發,寫驅動什麼的。
操作系統簡單來說,最重要的是三個模塊:
1)進程調度(有些操作系統不支持進程,只有線程調度,先這麼叫吧)
2)內存管理。
3)I/O管理(主要是硬碟,也有網路呀什麼的)
有了這三塊,就可以跑程序了,其它需要什麼一點點加上去就是了。
現代計算機系統就好像蓋樓,從最底層的編譯器、操作系統、計算機底層網路一點點往上蓋房子。有了下一層,才能蓋上一層。
比如現在的Tensorflow等流行的人工智慧領域,還是要站在大數據、操作系統、Python語言等等的肩膀上才快。
大家都有自己的領域內未決問題,重複去造輪子,不是沒那個本事,而是蠢!經濟學上划不來。
另外,在一些商業領域,自己造出來的操作系統也有很多,只是不不是通用系統,不太為人所知。比如過去我供職的公司,OS內核就是自己寫的,不過參考了大量的成熟的操作系統比如Linux、Vxworks,Nucleus等RTOS內核等。
做的感覺經常是你自己想了半天,可能還沒有人家做出來的成熟,何必重複的去造輪子呢?OS領域的論文就那麼多。該研究的大問題已經都搞定了。NT內核當時那班大牛現在都跑去做雲計算、人工智慧去了。
一個科技樹已經點好了,要去點下一個了。
比如Nucleus的線程調度做的真不錯,在RTOS不需要多進程的領域下就挺不錯,很好用。Linux的內存管理不錯,可以抄一抄。
所以有的時候會把一些操作系統在模塊設計上的思路拼接在一起,做出適合自己用的系統和解決方案來就好。所以中國的商業公司內,有大量的定製化的系統存在,用來給自己用的。
程序的本質還是解決問題。所謂的底層程序員,寫驅動很像很屌,其實只是要求高一定,在一個沒有操作系統奶媽的內存保護的情況下寫代碼,對人要求稍微高一定而已。
可是其他領域的程序員也有自己的兩把刷子,比如做遊戲的引擎的圖形學很厲害,做人工智慧的張量等數學工具很厲害。不是沒有水平搞定,只是面對的問題不一樣而已,被逼出來的。
既然現階段世界的主要矛盾已經不是要去寫OS了,我們直接用別人現成的,好用幹嘛不用。別人的滿足不了我們的地方,直接改了就好。像太湖之光這種超算,CPU都是自己倒騰的,OS和編譯器,當然基本就是自己半寫半改的。
少年看開點,你就安慰自己這是全人類的財富好了。
必須糾正問題里的錯誤:Linux屬於全人類FreeBSD屬於每一個人
就目前中國儲備的操作系統領域的人才而言,構建操作系統不存在技術性障礙。對於玩具級(但是本質性的)操作系統,很多程序員在家裡就可以打造。對於工程級(穩定並具備相當複雜性)的操作系統,如果在特殊狀況——如戰爭爆發——下也可以在較短的時間內構建出來。
這不是開玩笑。如果真的爆發嚴酷的戰爭(與其他國家),我們這些程序員也是普通人,必然會獻出自己所有的能力。集結國內最優秀的程序員,以及國家級的資源供給。你想像一下,在經濟停擺,國家陷入生存危機的時刻,所有你無法想像的優秀程序員都會被集結起來,朝著相同的方向努力。這樣的力量不是目前任何一家商業公司能夠比擬的。
用一個更形象的說法,你想想那些設計了支撐整個中國每天 365 天持續運轉的通信、娛樂、交易系統的最聰明的人——而且是數以萬計的他們,突然某一天因為一個與利益無關,關乎(不僅是自己,還有父母妻兒)生死的問題而聚在一起解決同一個問題時,將會爆發怎樣的力量。
中國的程序員平均水平與歐美髮達國家還存在不小的差距。但是就頂尖水平而言,實際上差距比大多數人想像的要小。也許你還不理解他們的優秀。但你想想全世界最大的交易系統,最大的通信平台實際上都是中國人自己構建的,無處可抄時,你看看手機上熟悉的微信圖片、支付寶圖標時,我們任何一個中國人,都值得有那麼一點點的自豪。
很多人常常把操作系統與核武器、大飛機、航母之類的做類比,其實雖然這些東西都是象徵了一個國家的技術儲備,但是操作系統所在的軟體行業和其他行業有一個非常特殊的不同,那就是它的開放和共享程度是其他任何行業都很難想像的。
因此在這個行業內,「秘密性知識」遠遠少於其他行業。更多的困難來自於經濟性,以及實踐性方面。直白的說就是,花同樣的精力,可以做很多不同的軟體賺更多的錢,並且風險更低;而做操作系統,長遠來看可以賺大錢,但是需要投入的資源大,而且面臨的市場風險(已經有巨頭)太大。非常非常不划算。
所以沒有人去做。
其實再說一點,操作系統絕對不是目前軟體行業里最難做的軟體類型。更不是目前最有價值的軟體類型。
打字太多手疼,我還是趕稿吧。
什麼時候Linux成美國的了?
聯合國總部也設在美國,就能說聯合國屬於美國?
Linux項目發起者是北歐的芬蘭人Linus Torvalds.
不說你不知道,Linus Torvalds父親Nils Torvalds甚至還是芬蘭共產黨中央委員會委員.
https://en.wikipedia.org/wiki/Nils_Torvalds
Nils Torvalds was active in the Communist Party of Finland
since he was a college student in the 1960s.
He was elected to the Central Committee of the Party in 1982.
全球各地的公司和程序員都可以向Linux內核貢獻代碼,比如國內的華為和阿里等公司就是Linux內核項目的代碼貢獻者,同時也是Linux基金會成員.
Linus Torvalds開發的分散式版本控制系統Git,初衷就是為Linux這個全球化協作的開源項目而設計. Git下,成員可以讀取整個倉庫下的所有文件,所以Git不能像SVN禁止某些成員訪問某個目錄. 原因就是前面說的那樣,Git就是為像Linux這種全球化協作的開源項目而設計的版本控制工具.
Qt庫是挪威公司奇趣科技在1994創建的圖形庫,GTK+庫則是美國人發起的.
KDE桌面是德國人發起的,GNOME桌面是墨西哥人發起的.
說到Linux發行版,比如說Ubuntu是南非企業家發起的,SUSE是德國人發起的,Mandriva是法國人發起的,Mint是愛爾蘭人發起的.
國內也有Linux發行版Deepin,跟Ubuntu一樣,基於Debian,並且自研桌面環境以及外圍應用,Linux桌面開發的功力應該是國內最深厚的,對Wine項目有代碼貢獻,同時Deepin也是Linux基金會成員.
而Google收購得來的Android,內核用的也是Linux,雖然不是標準Linux發行版,但也是一個Linux系統.
Google粉絲稱Google是人類希望,你看人類希望還不是用Linux來構建自己的移動操作系統Android,以及上網本系統ChromeOS,還有伺服器系統.所以說,既然有免費開源自由優秀的Linux,為什麼還要自己從頭搞一套系統呢?就算搞出來了,你確定軟硬體生態能跟得上Linux么?所以超算 神威太湖之光 使用Linux也就不足為奇了,事實上,TOP500超算里99%都是用Linux:
https://en.wikipedia.org/wiki/TOP500
還有,神威太湖之光使用的處理器不是Intel,而是基於DEC Alpha 21164擴展自研的申威1600,流片生產可能是台積電,也可能是內地的中芯國際.
至於民用晶元,國內也能研製出來,比如龍芯,但是性價比不如Intel.比如龍芯三號開源電腦主機,龍芯3B1500,6核,4GB內存,120G固態硬碟,售價就要2999元,系統預裝的是基於Fedora的LoongNix,愛好者可以到龍芯俱樂部購買:
http://www.loongsonclub.com/gw/?mod=listcode=deals
比如售價3799元的龍芯三號開源電腦主機(4核1GHz處理器龍芯3A2000,8GB內存,120G固態硬碟,主板集成顯卡) 龍芯俱樂部的網友 sunhaiyong 錄製了該龍芯主機的桌面使用視頻並搭建了LAMP服務. 龍芯3A2000運行LoongNix(基於Fedora)跑Linux桌面和LAMP服務,截至該網友截圖時,系統已經穩定運行超過17天.
http://www.loongsonclub.com/article/21.html
http://v.youku.com/v_show/id_XMTYyNDcwOTY3Ng==.html

從視頻可以看出,VLC同時播放2個視頻和1個音樂(深度音樂),以及打開Firefox瀏覽器上網,龍芯都很正常. htop里可見,龍芯4個核心,每個核心的CPU使用率在30%左右.
所以說,有了軟體生態那麼好,限制又那麼少的Linux,為什麼不用呢?你看,龍芯裝上Linux,Linux上的大多數軟體就能跑在龍芯上,如果你自研操作系統,那麼你連一個多媒體播放器都得自己開發,但你有這麼多精力么?
生態是最重要的,沒有生態,再強大的技術,再雄厚的資金也很難翻身.
比如微軟和英特爾,PC時代叱吒風雲,呼風喚雨,人送外號Wintel,移動時代就落寞了.微軟花了那麼多錢收購諾基亞,結果Windows Phone還不是竹籃打水一場空.英特爾花了那麼多錢補貼基於Atom x86的平板和手機,結果還不是干不過ARM.這裡面,技術還是其次,生態才是關鍵.
胡說八道,誰告訴你中國沒有原創的操作系統?
目前中國許多原創操作系統,內核都是中國人一行一行寫出來的的。貢獻者們非常年輕,也很有潛力,未來一定可以發展起來。目測那些操作系統都死在畢業後的硬碟里。
月經貼終結!腦洞時間:
按發起者劃分的話,說Linux是美國的也沒錯,畢竟Linus本來是芬蘭人,但現在已經是美國籍了。可以轉國籍就好辦多了,中國出錢,讓Linus加入中國籍,這樣Linux就是中國的,大家支不支持啊?這一筆錢不多,十億剛剛好,反正十億丟進自主操作系統研發也是不見水花,直接點,就可以收穫無比成熟的操作系統,好不好啊?
有勞題主多交稅了。因為中國不需要100%純原創的操作系統
以及Linus是芬蘭人,開源軟體屬於全人類,不屬於包括美國在內的任何一個國家如果爆發戰爭,電腦晶元可能就買不到,但是軟體總可以複製,尤其是 Linux,連心理壓力都沒有
國產個屁。Tru64 Unix 吃透了嗎?
Compaq in deal to translate OS into Chinese
沒有生態,怎麼做桌面操作系統...
比如:Linux熱烈祝賀Linux在PC市場的市場份額超過2%
超算的系統目前沒有必要,Linux是開源的,開源的就是大家的...就是社會主義...你就這麼理解吧...—------—
2017-8-23更新:
才意識到題目已經改了。沒錯,一開始的題目被我批判了一番,然後改了,所以你們別嫌我扯太湖之光覺得莫名其妙,原題就是寫了太湖之光我才這樣寫的。原答案不改了。-------------------------------------------------------------------------------------------------------------------------原答:
利益相關:正在太湖之光上苦逼寫代碼......首先,你這個問題是有問題的。
你說中國沒有自己的電腦操作系統,這是不對的。
電腦,就是計算機吧?
既然你知道太湖之光是國產的超級計算機,而且是世界最快的超算,你難道不知道太湖之光的操作系統也是國產操作系統么?
可能你真的不知道,那我就來告訴你,從底層到頂層,不管是cpu設計,操作系統,指令集,編譯系統,應用軟體,全是國產的。因為你用intel的被美國一禁運你就傻眼了。
這個難道不是計算機的操作系統么?
可能你想說的是為什麼沒有大力發展個人電腦的東西。我可以回答你,因為上面的領導需要大的東西,比如超算這種,因為要搞很多軍事的東西,小PC是搞不了的。
那為什麼要重點搞軍事的呢?我可以給你講個故事,太湖之光的前身原來是搞密碼破譯的,當年破密碼發現有敵人要炸我國某國家領導的飛機,然後他沒坐那個爆炸的飛機逃過了一劫。於是意識到這個東西真的很重要,要好好搞。所以一搞幾十年,搞成了世界第一。
那為什麼沒什麼人知道,這麼非主流呢?怎麼沒有主流的東西呢?因為這tm就是非主流啊,全是國產的,大部分人對這個東西兩眼一摸黑,而且這裡面的很多東西巨複雜,正常人都不想來這上面搞,沒有生態環境。最近超算他們為了發展生態環境也做了很多努力,學界提出了13類應用已經有12類在太湖之光上實現了,就差最後一類自動機的還沒有實現。因為它設計的時候就是為了破密碼,多核,計算能力高,但是每個核的局部存儲很小,訪存的問題很大,我們現在想搞這個自動機,真的是很艱難的在搞。
最尖端的東西國家在搞,中低端的東西,手機和Pc,交給市場不就行了?有什麼買不了的?會給你禁運?
所以結論是,不是搞不好,就是不想搞。要想搞分分鐘給你搞出來。
你需要明白Linux存在的意義,我們即使是有自主內核,也只可能是軍工用途。我們的民用的市場對於這類操作系統需求不大,一個新的系統,沒有任何支持,那麼誰來用?所以沒有。還有Linux不是美國的,作者是一個叫Linus的芬蘭人。Linux是自由的。
在各種專業領域,應該是有很多自主設計的操作系統的。在 PC 領域,也有不少,但沒有廣泛應用的,因為即使做出來了你也不會用,因為不兼容任何現有操作系統軟體。而且 Linux 那麼成熟,又免費,為什麼要費力做自己的還沒人用?
把「中國」改成日本,德國,俄國,英國,法國看看成不成立?
為什麼要重複造輪子?
寫操作系統又不容易賺錢,沒人給你開發軟體所以你見不到。PS:天河二號是使用美國Intel的Xeon處理器問題改了?電腦只要找英特爾買一堆志強OS你要能讓一堆人買你的
這個問題我認為應該這樣回答,超算是硬體設施,沒有開源,原理複雜,面對美國佬的壟斷,中國必須在硬體方面攻堅克難把這個技術拿到手,牢牢握緊才能掌握主動權。但是回到操作系統,這方面國產操作系統從0開始研發,到成型,中國完全都沒有問題。可是,要形成一個完整的生態,不僅需要時間的積累和人力財力的大量投入,而且,投入和收穫並不成正比,投入市場也不會被認可(因為win和Linux的普世性),只會在政府或軍隊等小範圍內使用,要想發展起來很難。所以,還不如拿來主義,把Linux改一改,不僅不勞民傷財,而且還有現成的生態可以利用,豈不美哉?當然這裡說的只是民用的操作系統,如果說到超算本身因為架構不同於個人PC,也需要編寫自己的系統,(神威太湖之光的系統據說也是自主開發的)只不過和大眾沒什麼關係罷了。
首先Linux不是美國的,它是一個開源項目,不屬於某個政府或國家。
其次,開發操作系統雖然難度很大,但也不是做不到。問題是沒有相應的應用軟體啊,你說一個新的系統,沒有QQ,沒有微信,沒有辦公軟體,沒有瀏覽器,沒有那些成千上萬種各類軟體,你能做什麼?沒有各種硬體的驅動,你幾乎無法擴展你的計算機。
所以,問題的根本不在於沒有操作系統,而是缺乏相應的應用程序,也就是沒有生態圈。
國際標準都已經被制定死了
pc上中國要做,只能以linux為基礎向上做一套類似shell 的東西(有些做硬體的主要是修改驅動而非寫界面)
手機上中國要做,現如今基本也都是從android開始向上改(ios蘋果不對外,加上如今android是最容易起步的)
簡單說為什麼要用linux和android作為起步?
因為資源豐富,大量前人在上面留下的工作經驗和資源。使得這兩個基礎很適合進行二次開發
比起中國純粹自己從零開始要有效的多。
~
但是很多人,並不覺得你拿linux或者android 定製出來的東西算是你自主研發的操作系統
Deepin正在做,我很看好他們。
推薦閱讀:
※LOL即使是最高畫質,畫質也很低,這是為什麼?
※A卡真的會通過不斷優化讓性能超過原來更好的n卡嗎?
※哪些因素造成APU的GPU性能不如同規格獨顯?
