99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

國產(chǎn)操作系統(tǒng)最致命的短板,被這個開源軟件補上了!

0
分享至

“國產(chǎn)操作系統(tǒng)為什么沒人用?”

“因為上面沒有軟件。”

“那么多軟件,下載下來,一安裝不就行了嗎?”

“不行,現(xiàn)在的軟件都是給Windows開發(fā)的,國產(chǎn)操作系統(tǒng)是基于Linux爆改的,軟件跑不了。”

“那就給國產(chǎn)Linux開發(fā)軟件啊?!”

“沒人開發(fā),因為國產(chǎn)操作系統(tǒng)沒人用。”

“你這不就成了雞生蛋,蛋生雞的了,無解循環(huán)......”

這是我和一個朋友關于國產(chǎn)桌面操作系統(tǒng)的一次對話。

其實這幾年國產(chǎn)桌面操作發(fā)展得相當不錯,像Deepin,統(tǒng)信等根據(jù)國人的審美和操作習慣,做了很多本土化工作,并且內(nèi)置了各種常用的軟件如WPS Office、搜狗輸入法、有道詞典、網(wǎng)易云音樂等,用來做日常辦公完全夠用。


但是,國產(chǎn)操作系統(tǒng)做得再好,也只能涵蓋一部分軟件,對于Windows龐大生態(tài)生態(tài)中那千千萬萬的軟件,只能望洋興嘆了。

如果你要用的軟件不被國產(chǎn)操作系統(tǒng)支持,那怎么辦?

最簡單的方案是用類似VirtualBox這樣的虛擬機,在虛擬機中運行Windows,然后在Windows上安裝想要的軟件。


這種一層摞一層的辦法有用,就是效率太低,運行速度太慢:


有沒有辦法,既能在Linux上運行Windows軟件,又能避免效率的損失呢?

有!這個軟件叫做Wine。


Wine不是虛擬機,而是一個軟件兼容層,它通過“轉發(fā)”的方式,讓Windows程序可以運行在Linux之上。

要想理解Wine的秘密,必須得從最底層看起。

0 1

可移植的CPU指令

比如這段代碼:

int foo(int x) {
return x * x;
}

都基于x86 CPU編譯(這一點兒很重要),在Linux上這樣的:


在Windows上是這樣的:


看起來差別相當大,對吧?

但是,由于兩者生成的代碼都是基于x86 CPU的,換句話說,CPU指令集(mov、imul、ret之類)是完全相同的。


Linux上可執(zhí)行文件是ELF格式,下圖的.text 區(qū)域就是CPU的指令


Window上的可執(zhí)行文件是PE格式,CPU指令也在.text區(qū)域


既然.text區(qū)域的CPU指令在Windows和Linux之間是“可移植的”,你可能立刻會想到,如果有一個程序,可以把foo函數(shù)在Windows編譯出的.text 給“取”出來,拿到Linux上執(zhí)行,應該是可以運行的。

Wine其實就是這么干的,它把Windows可執(zhí)行文件加載到內(nèi)存中,分析一下,找到可執(zhí)行代碼的位置,跳轉到這個地方執(zhí)行就可以了!

0 2

系統(tǒng)調(diào)用

如果事情就這么簡單,任何人都可以寫一個Wine,Windows上的海量軟件就可以輕松移植到Linux上,Windows生態(tài)的優(yōu)勢將不復存在。

但Windows的桌面霸主地位堅如磐石,這其中的關鍵就是:系統(tǒng)調(diào)用

操作系統(tǒng)是對硬件功能的封裝,它對外提供了一系列服務如讀寫硬盤、讀寫內(nèi)存、進程管理等。

應用程序想使用這些服務,必須通過系統(tǒng)調(diào)用來進行,別無它法。

而Windows和Linux的系統(tǒng)調(diào)用,是完全不同的。

名稱不同、參數(shù)不同、語義也不同。


一個稍微有用的應用程序,肯定要使用系統(tǒng)調(diào)用(無論是直接還是間接方式),那就立刻和操作系統(tǒng)綁定了。

比如這個hello world

#include
int main() {
printf("Hello!\n");
return 0;
}

在Linux上是這樣的,它調(diào)用的是puts函數(shù)。


在Windows上編譯后是這樣的,調(diào)用的是printf函數(shù)。


puts和printf都C標準庫的函數(shù),C標準庫最終還是走到系統(tǒng)調(diào)用那里,畢竟你要在控制臺輸出“Hello!”,這事兒只能操作系統(tǒng)來辦。

要想在Linux上運行Windows程序,有兩條路

(1)把Windows系統(tǒng)調(diào)用在Linux上重新實現(xiàn)一遍,這和重寫OS差不多了

(2)把Windows系統(tǒng)調(diào)用攔截,轉發(fā)到Linux的系統(tǒng)調(diào)用

Wine開發(fā)團隊選擇了第二條道路,當應用程序調(diào)用Windows 系統(tǒng)調(diào)用時,Wine進行“攔截”,然后轉發(fā)到Linux的系統(tǒng)調(diào)用。


這個事情畫個圖很簡單,實現(xiàn)起來太麻煩了。

Windows的系統(tǒng)調(diào)用非常多,源碼又不公開,全是黑匣子,我們不知道Windows內(nèi)部到底是如何實現(xiàn)的,Windows文檔又很差......(大膽猜測一些,微軟是故意的)。

更要命的是,這些系統(tǒng)調(diào)用還存在一些錯誤、缺陷、奇怪的副作用,Wine在攔截轉發(fā)的時候,這些錯誤和缺陷不但不能修復,還必須原封不動地去復現(xiàn)它們。

如果不這么干,那些Windows軟件在Linux上運行起來的行為就不同了。

這還不算完,別忘了Windows游戲啊,它們都在調(diào)用微軟的DirectX,這是微軟專門為游戲開發(fā)提供的API,僅支持Windows。

在Linux平臺下也有個對應的東西,原來叫OpenGL,現(xiàn)在新一代的圖形API叫做Vulkan。

很明顯,DirectX和Vulkan是不同的東西。


為了把DirectX調(diào)用轉換成Vulkan,Valve(Steam就是他們家的)和CodeWeavers(主要贊助Wine)合作開發(fā)了Proton。


Proton 最初于 2018 年 8 月 21 日發(fā)布,當時Valve還發(fā)布了一個 27 款游戲的名單,這些游戲經(jīng)過測試和認證,性能與 Windows 原生版本相同,無需最終用戶進行調(diào)整。其中包括《毀滅戰(zhàn)士》(2016 年)、《雷神之錘》和《最終幻想 VI》等。

0 3

總結

看了Wine干的這些事情,你肯定會感慨,讓Windows應用在Linux上順利地跑起來可真不容易啊。

這是沒辦法的事情,誰讓Windows是桌面操作系統(tǒng)的老大呢?

微軟通過Windows系統(tǒng)調(diào)用API和DirectX等API,構建了非常寬的護城河。

開源的Wine在這個護城河上建立一座橋,這座橋雖然還不完美,但足以讓大量的Windows應用來到Linux的世界快樂地玩耍。

相信國產(chǎn)操作系統(tǒng)一定會充分地利用Wine這樣開源界的成果,讓自己的生態(tài)變得更加豐富。

ps,本文用到的例子來源于https://werat.dev/blog/how-wine-works-101/,這篇文章有更多細節(jié),感興趣的話可以看看。

全文完,覺得不錯的話點個贊或者在看吧!

近期爆文

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
剛剛,貝索斯發(fā)射火箭,將未婚妻成功送上太空!同行還有樂壇天后“水果姐”,6位成員均為女性

剛剛,貝索斯發(fā)射火箭,將未婚妻成功送上太空!同行還有樂壇天后“水果姐”,6位成員均為女性

每日經(jīng)濟新聞
2025-04-14 23:13:11
特朗普又酸中方訪問越南了,兩個順差大國擁抱在一起,夠他難受!

特朗普又酸中方訪問越南了,兩個順差大國擁抱在一起,夠他難受!

大道無形我有型
2025-04-15 10:33:45
舊社會的家妓有多慘?被當做“肉屏風”,吞痰液,連娼妓都不如

舊社會的家妓有多慘?被當做“肉屏風”,吞痰液,連娼妓都不如

午夜故事會
2025-04-11 14:51:35
國足還是哪家中超俱樂部?64歲世界名帥自爆可能回到中國執(zhí)教!

國足還是哪家中超俱樂部?64歲世界名帥自爆可能回到中國執(zhí)教!

田先生籃球
2025-04-15 09:55:35
48歲大羅被打臉:豪言5年踢歐冠,結果3次降級!尋求賣隊

48歲大羅被打臉:豪言5年踢歐冠,結果3次降級!尋求賣隊

葉青足球世界
2025-04-15 08:15:09
比閃崩還快的跌停!今日12只股票跌停,其中6只跳水跌停

比閃崩還快的跌停!今日12只股票跌停,其中6只跳水跌停

歷史阿務
2025-04-15 16:49:15
蔡司展示飛機內(nèi)透明玻璃全息顯示原型,相關技術已被用于航天任務

蔡司展示飛機內(nèi)透明玻璃全息顯示原型,相關技術已被用于航天任務

IT之家
2025-04-14 14:52:33
中國工程院院士鄔賀銓:5G商用5年除速度比4G快 用戶感受不明顯

中國工程院院士鄔賀銓:5G商用5年除速度比4G快 用戶感受不明顯

快科技
2025-04-14 18:02:07
HBO版《哈利·波特》公布六位成人演員陣容

HBO版《哈利·波特》公布六位成人演員陣容

澎湃新聞
2025-04-15 10:48:27
莫蘭特:如果NBA禁止我做‘扔手榴彈’的慶祝動作,我還會有別的選擇

莫蘭特:如果NBA禁止我做‘扔手榴彈’的慶祝動作,我還會有別的選擇

雷速體育
2025-04-15 11:35:10
受賄2.07億余元 江西省人大常委會原副主任殷美根一審被判死緩

受賄2.07億余元 江西省人大常委會原副主任殷美根一審被判死緩

新京報
2025-04-15 17:25:02
1克最高能賣約37萬!2024年,江西男子貸款買了14斤想出售

1克最高能賣約37萬!2024年,江西男子貸款買了14斤想出售

萬象硬核本尊
2025-04-14 21:56:50
曝特斯拉4月22日公布Model Q新細節(jié) 或采用貫穿燈組

曝特斯拉4月22日公布Model Q新細節(jié) 或采用貫穿燈組

手機中國
2025-04-15 17:13:04
為啥娃七八歲后家長就不熱衷于曬娃了?網(wǎng)友:自己看!

為啥娃七八歲后家長就不熱衷于曬娃了?網(wǎng)友:自己看!

有趣的火烈鳥
2025-04-09 16:25:09
美記者:你的盟友,是不會跟在電視上說“kiss my ass”的總統(tǒng)合作的……

美記者:你的盟友,是不會跟在電視上說“kiss my ass”的總統(tǒng)合作的……

中國日報
2025-04-15 08:02:32
昆明大火后續(xù):死者是一家祖孫8口人,從事修電動車,現(xiàn)場曝光

昆明大火后續(xù):死者是一家祖孫8口人,從事修電動車,現(xiàn)場曝光

小人物看盡人間百態(tài)
2025-04-14 23:34:25
特朗普政府突發(fā)信號!美國可能利用“關稅”買入比特幣 警告全球爭奪戰(zhàn)已打響

特朗普政府突發(fā)信號!美國可能利用“關稅”買入比特幣 警告全球爭奪戰(zhàn)已打響

FX168鏈界觀察
2025-04-15 10:30:11
你都知道哪些行業(yè)內(nèi)幕?網(wǎng)友:水果真的要少吃,吃多脾胃不好

你都知道哪些行業(yè)內(nèi)幕?網(wǎng)友:水果真的要少吃,吃多脾胃不好

娛樂圈人物大賞
2025-04-15 00:05:27
注銷必查三年賬?稅局明確!4月15日起,企業(yè)注銷必須這樣辦,否則后果嚴重!

注銷必查三年賬?稅局明確!4月15日起,企業(yè)注銷必須這樣辦,否則后果嚴重!

祥順財稅俱樂部
2025-04-15 09:08:56
日媒:志田千陽已經(jīng)被跟蹤了一年半,不僅在場館,在酒店也被跟蹤

日媒:志田千陽已經(jīng)被跟蹤了一年半,不僅在場館,在酒店也被跟蹤

直播吧
2025-04-15 09:37:21
2025-04-15 19:00:49
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術文章
118文章數(shù) 456關注度
往期回顧 全部

科技要聞

對等關稅下顯卡被爆炒:黃牛背刺游戲玩家

頭條要聞

1家3口被撞案受害者親屬:肇事者對著寶寶遺體談笑風生

頭條要聞

1家3口被撞案受害者親屬:肇事者對著寶寶遺體談笑風生

體育要聞

父母是臺灣移民!女林書豪被WNBA球隊選中

娛樂要聞

娛樂圈模范夫妻塌房?私生活曝光!

財經(jīng)要聞

美國財長,突然發(fā)聲!涉及“對華關稅”

汽車要聞

轉型中的"穩(wěn)健派" 一汽-大眾的智能化突圍路徑

態(tài)度原創(chuàng)

游戲
本地
旅游
藝術
公開課

前PS總裁稱贊PS5 SSD:能更快加載 不然玩不下去只狼

本地新聞

云游湖北|相約安陸,解鎖限定版粉色春天

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 扬中市| 昌乐县| 金堂县| 武鸣县| 色达县| 闸北区| 哈尔滨市| 西丰县| 舟山市| 三台县| 山东省| 谷城县| 招远市| 五大连池市| 安平县| 汝阳县| 娱乐| 启东市| 甘南县| 齐齐哈尔市| 金塔县| 雅江县| 宁城县| 东宁县| 彰化市| 齐河县| 宁晋县| 稷山县| 达日县| 那曲县| 砚山县| 沽源县| 德化县| 简阳市| 西贡区| 汕头市| 肥西县| 贵定县| 错那县| 嘉兴市| 宣威市|