03.03 既然開發國產操作系統最大的弊端是應用生態,那為何不開發一款能直接運行exe程序的操作系統?

舞可定天下


因為做不到。

對於國內軟件企業,難度在哪裡呢?

商業上不可行

在微軟開發出早期的操作系統:DOS(Windows前身)的時候,的確存在過多種類似DOS的操作系統(比如曾經大名鼎鼎的DR-DOS),它們也可以運行EXE程序,甚至還可以提供比微軟DOS更多的特性(例如快速輸入命令)。

那是因為彼時的DOS操作系統,非常簡單和簡陋。一個商業開發公司,很容易就能完全實現其功能。

但現在的Windows操作系統,已經是一個擁有數十億行代碼量的“巨型”操作系統。完全實現其已經實現的功能,需要的頂級程序員在十萬人的級別,可能需要十年乃至更多的時間。

大致計算一下,按每人每年100萬元人民幣的年薪,大概需要萬億級別人民幣。

目前沒有任何一家企業能付出如此高的投入成本。

而且,即便是付出萬億人民幣實現了現在Windows的功能,這十年微軟也沒有閒著,和現實的差距可能仍然需要萬億人民幣去填補。

有人會說,為什麼要實現Windows全部功能?只要實現一部分就好了。那就不需要這麼多年這麼多人這麼多錢。

可惜,我們很難找到只實現一部分的解決方案。不同的EXE需要不同的操作系統功能支持,操作系統不同的功能之間也有可能有相互調用。

政治上不可行

既然一個公司無法承受全面複製Windows操作系統所需要的成本,那我們能不能發揮兩彈一星的模式,集中全國力量,不惜代價去實現呢?畢竟一萬億人民幣也對GDP排名第二的我國來說,也只佔幾十分之一。

可惜,還是不可行。

首先是Windows包含了數以萬計的專利,如果要全面繞過這些專利保護,難度恐怕比登月還高。

其次是大量的EXE程序開發者也是歐美的公司,它們很有可能不支持這個全面複製Windows的操作系統。

最後,現實一點的是,即便集中全國的架構師和程序員,恐怕也很難在十年之內,完全複製Windows現有的系統。


智匯元


看來你對linux一點也不瞭解,linux上有個wine,就可以運行exe。


專業潑開水


你以為. exe運行在什麼地方?沒有Windows你運行一個試試?有的就是差dll都不行。提出這種問題的人有多愚昧?


想要熊貓898


汽車要是能夠直接在鐵路上運行,那修什麼高速公路?鐵路和高速公路在設計上就存在巨大的差異,儘管wine的出現解決了部分Linux上運行Windows應用程序的問題,現在深度Linux上就有非常多的應用是基於wine運行的,可是終究Linux不是Windows,很多應用是專門為Windows準備的,因此想要在Linux上運行是基本不可能的。

Linux之父還是個喜歡豎中指,見誰罵誰、見誰噴誰的計算機界的史詩級噴子,他是瞧不上Windows、macOS上的那一套東西的,怎麼可能讓Linux原生去兼容Windows應用,即使微軟願意把自己的應用編程接口給Linux用,按照林納斯的性格是肯定不願意的!!!

Linux從一開始的定位就是專業用戶,後來逐漸在Unix陣容中搶到了很大的服務器市場的份額,在桌面領域由於Windows和macOS已經獲得了巨大的成功,Linux基本上不會有插進去一腳的可能性。

Windows是商業軟件,Windows有自己的專屬API

Windows本身就是一個商業軟件,在1985年出現的時候,比爾蓋茨帶著保羅艾倫、鮑爾默去IBM談判的時候,他們還沒有Windows,不過他們很快從一個工程師手裡買來了DOS,跟IBM談妥之後比爾蓋茨帶著自己的創業夥伴在DOS的基礎智商開發了Microsoft-DOS,逐步發展到今天這樣成熟的操作系統。

Linux的出現要比Windows晚了足足七年多,而Windows從一開始就是商業軟件,而且是通過OEM的方式來授權,Linux儘管是開源軟件,也不敢輕易去觸碰這個商業底線的,而且這些商業底線一旦被其他人利用,那麼後果將不堪設想。

Linux現在不會,將來也大概率不會想辦法兼容Windows軟件,微軟也不可能將Windows的應用接口給到Linux,除非有一天Windows也成了完全開源免費,還不受商業條款約束。Windows系統除了內核本身,EXE文件想要執行都需要跟內核通訊,內存管理、進程管理,這些全都要內核才能管理,程序和內核遵守的ABI應用程序二進制接口要一致,程序才能夠正常運行,而Linux和Windows的ABI是完全不同的。

Wine的出現能夠解決部分問題,不過並不完美

Wine就是為了滿足在Linux、準確地說是在Linux、macOS、BSD等眾多操作系統下運行Windows應用程序而產生的兼容層,Wine的全稱是Wine is Not an Emulator,也就是說Wine不是模擬器,跟我們通常所說的虛擬機、模擬器不是一個道理,不過在原理上其實Wine還是應該叫做Windows Environment,只不過這玩意兒不依託於原生Windows環境,而且是完全開源免費的。

Wine支持非常多的Windows應用,大家所熟知的帝國時代、星際爭霸、甚至 IE瀏覽器等Windows應用都曾經被移植。目前以迅雷、QQ、Adobe Photoshop為代表的Windows應用也都被移植過了,而且有不錯的體驗。

Wine畢竟不是完美的,很多應用都不能正常移植,移植以後同樣有很多各種各樣的兼容性問題,當然更大的阻礙是很多商業軟件並不能支持移植,即使能夠移植也不能獲得官方的技術支持,肯定會存在很多問題。Linux想要借Windows的高速公路來跑自己的汽車肯定是不行的,必須構建自己的應用生態,只不過macOS和Windows太過於強大,Linux幾乎沒有取代的可能。


EmacserVimer


想法是好的,關鍵是別人拿著專利,授權,你只要涉及別人專利的開發,就會收到律師函,你要盈利了,就會告到你傾家蕩產。所以國產系統要從頭開始建設。目前國產操作系統都是基於linux開源系統開發的,


IT從業民工


國產操作系統如果直接開發支持微軟PE格式,且不說微軟會來起訴侵犯專利,兼容性就是非常大的問題。Linux上wine也只是能支持很少一部分軟件


智能大石頭


危險,你都不知道它就運行了。


飄蕩306


好比關公戰秦瓊


分享到:


相關文章: