[software development] 兼容内核项目是把wine内置到linux内核中,以提高效率
Tofloor
poster avatar
186******33
deepin
2025-09-07 11:40
Author

Windows NT内核从设计之初就要两套API:Windows API和由微软和IBM公司共同创造的OS/2的API,这样NT内核可以运行Windows应用和OS/2应用。现在Windows又增加了linux API,使Windows可以运行linux应用。

浙大的longene兼容内核项目已经做出过尝试,在linux本身的系统调用(syscalls)之外增加了一套Windows的系统调用。这样linux就可以运行Windows应用。

longene 1.0rc 源代码 : https://github.com/longene-archive/longene-1.0-rc2

比如linux应用要写硬盘那么应用会通过系统中断int 0x80调用操作系统的写磁盘的API,系统完成写磁盘工作后把结果返回给linux应用。而Windows应用写磁盘通过系统中断int 0x2e调用系统写磁盘的API,要求系统完成写磁盘操作。由于linux本身就有写磁盘的代码,所以不用重新写一个写磁盘的代码,直接把Windows写磁盘的API嫁接到linux的写磁盘的API就可以了。由于Windows应用程序对操作系统系统调用所需的大部分功能,linux系统内核基本都有相应功能(把操作系统比喻为一栋大楼,linux大楼的门窗道路会议室是现成的,而且linux中还有砖头钢构建的更细的零部件),只要把Windows应用的API调用转向lux的API调用即可。如有Windows系统调用一些细节和linux的不完全一致,也可以用linux的相应代码(利用linux现成的门窗砖头钢结构等)修改到和Windows的一致。即使某个Windows API是linux内核中没有对于的功能的,也是可以利用linux内核中的微小模块(砖头钢构件)进行重新编码得到相应的功能。

linux本身已经有一套内存管理,CPU分时,安全管理,进程线程管理运作机制,Windows应用只管执行自身代码而不需要关心系统怎么管理软硬件的事情。

longene兼容内核和wine不同。wine是linux的一个应用,运行在linux应用层,并非在linux内核。它把Windows应用对系统的调用转向对linux的系统调用。但它在应用层干这件事情有很大的局限性,首先应用和内核的信息沟通频繁的进出内核和应用层,造成性能的巨大损失。更关键的是,在应用层构建Windows的API调用,相当于用linux会议室等大部件构建Windows的会议室等部件。有可能难以构建出来或者效果不好。而在内核中构建Windows部件可以用更细的砖头钢材材料,能把Windows部件做的更一致。

longene兼容内核是国家核高基项目,据说国家投入了2000万元资金,2014年资金已经用完项目就停摆了。但它已经能运行很多Windows应用,这得益于wine和react OS等开源项目。有现成的代码可以参考,特别是Windows那一堆dll文件是使用wine和react OS的,不需要重新开发。实测运行WPS等应用,longene兼容内核的性能比wine的高得多。

longene兼容内核是一个二进制兼容Windows和Linux应用软件和设备驱动程序的计算机操作系统内核。它在Linux内核的基础上利用Linux内核材料构建MS Windows内核功能模块从而扩充Linux内核的支持能力使之同时支持Linux和Windows的应用程序和设备驱动。兼容内核本质是扩充了功能的Linux内核,可以在x86、龙芯等各种类型cpu的电脑上运行。

Reply Favorite View the author
All Replies
1 / 2
To page
兆兆嘟嘟嘟
deepin
Q&A Team
2025-09-07 11:56
#1

感谢分享。

Reply View the author
enforcee
deepin
2025-09-07 12:07
#2

ntsync可以关注一下

Reply View the author
186******33
deepin
2025-09-07 12:32
#3

https://www.zhihu.com/zvideo/1518518001175855104

这是安卓pad通过兼容内核longene 0.3版本运行windows应用的视频。

兼容内核最新版是longene 1.0rc版。longene 1.0rc做成linux内核模块的形式,在linux内核运行时可以随时加载兼容内核模块,也可以随时卸载兼容内核模块。

Reply View the author
wlly-lzh
deepin
2025-09-07 22:46
#4

这玩意还能是国家核高基项目?你怕不是路边社消息吧。

要我说这玩意没前途的,彻彻底底的歪门邪道,指望他迟早走火入魔。

Reply View the author
186******33
deepin
2025-09-07 23:38
#5
wlly-lzh

这玩意还能是国家核高基项目?你怕不是路边社消息吧。

要我说这玩意没前途的,彻彻底底的歪门邪道,指望他迟早走火入魔。

浙大网新于2010年12月正式签署了2项国家核高基项目的开发合同,其中一项就是“国产操作系统参考实现兼容内核组件的开发”。

给linux增加一个windows 32子系统,使得linux能运行windows应用,扩展里linux的能力,是一件好事情。linus曾表态,不反对linux增加win32子系统。兼容内核如果能发展成熟是有机会并入linux的主线的。

Reply View the author
花雨落逝
Moderator
2025-09-08 08:25
#6
wlly-lzh

这玩意还能是国家核高基项目?你怕不是路边社消息吧。

要我说这玩意没前途的,彻彻底底的歪门邪道,指望他迟早走火入魔。

确实前途不大,但是好歹是兼容层,至少能用

Reply View the author
186******33
deepin
2025-09-08 09:26
#7
花雨落逝

确实前途不大,但是好歹是兼容层,至少能用

兼容内核的技术路线比wine好。

https://baike.baidu.com/item/Linux%E5%85%BC%E5%AE%B9%E5%86%85%E6%A0%B8/15882171

Reply View the author
花雨落逝
Moderator
2025-09-08 09:39
#8
186******33

兼容内核的技术路线比wine好。

https://baike.baidu.com/item/Linux%E5%85%BC%E5%AE%B9%E5%86%85%E6%A0%B8/15882171

是的,wine是应用层,有些深层的东西无法转译

Reply View the author
186******33
deepin
2025-09-08 10:43
#9
花雨落逝

是的,wine是应用层,有些深层的东西无法转译

当年核高基给兼容内核项目2000万元是少了。如果在现在中美技术竞争背景下,国家应该能给到2亿元或更多。有这么多钱相信能把linux的win32子系统推向基本完善,能比较好的运行90%的Windows应用。甚至能在linux里面搭起Windows驱动的框架,能运行一些Windows的设备驱动。这对用户来说是很有意义是事情。

我曾经在wine的邮件列表和wine的主要负责人谈过兼容内核,他们对兼容内核很赞赏,但是他们说“还有低垂的果子要摘,wine暂时不会转向内核”,其实就是尾大不掉,转向内核相当于重新开发wine了。

ReactOS的负责人认为兼容内核是走了条捷径,也是挺赞赏的。

以前中国有一个linux发行版叫magic linux,曾经集成了兼容内核。可以下载体验一下。

Reply View the author
comicfans
deepin
2025-09-08 11:26
#10

知乎上,Magic Linux的开发者之一曾经对兼容内核做出回答,longene2014 年资金用完项目就停了,不是单纯的没钱了,而是发现这条路走不通。举个类似的例子就是一个纯血的鸿蒙,没有任何安卓源码的情况,提供可以兼容安卓程序的环境,先以安卓为主逐步替换组件,这个前提是安卓是开源的,windows不开源,所以做兼容是很难的。

还有人认为,二进制翻译的难点不是效率而是大量的私有API和二进制依赖库,专利迟早是绕不开的。

所以,老老实实搞自研是唯一的路,也是必须走的路。

对于普通人来说,能玩游戏不就行了,现在steam不是能玩吗,就够了,不需要兼容内核。

Reply View the author
186******33
deepin
2025-09-08 14:28
#11
comicfans

知乎上,Magic Linux的开发者之一曾经对兼容内核做出回答,longene2014 年资金用完项目就停了,不是单纯的没钱了,而是发现这条路走不通。举个类似的例子就是一个纯血的鸿蒙,没有任何安卓源码的情况,提供可以兼容安卓程序的环境,先以安卓为主逐步替换组件,这个前提是安卓是开源的,windows不开源,所以做兼容是很难的。

还有人认为,二进制翻译的难点不是效率而是大量的私有API和二进制依赖库,专利迟早是绕不开的。

所以,老老实实搞自研是唯一的路,也是必须走的路。

对于普通人来说,能玩游戏不就行了,现在steam不是能玩吗,就够了,不需要兼容内核。

老老实实搞自研是唯一的路。。。。。自研没有问题,兼容内核就是自研的。关键不是是否自研,而是生态。Windows下的软件每年交易额有上万亿元,整个生态的软件价值十万亿元以上,有数十万工程师为Windows开发软件。而linux桌面的软件少得很。

现在中国每年生产3亿多台电脑,每台电脑安装Windows操作系统300多元,一年支付的操作系统费用就是1000亿元。

如果能用300亿元投入给linux做个win32子系统,能运行90%多的Windows软件,那么如果每年新电脑一半安装兼容win32软件的linux,那么每年就节约500亿元。这绝对的划算的买卖。我觉得给linux做个win32子系统并不是很难,华为用了一万个工程师花费500亿元就把鸿蒙系统做了出来。

黑mao白mao抓住老鼠的是好猫,linux桌面要有大量的应用软件才好用,才是抓住老鼠的好猫。

Reply View the author
comicfans
deepin
2025-09-08 15:05
#12
186******33

老老实实搞自研是唯一的路。。。。。自研没有问题,兼容内核就是自研的。关键不是是否自研,而是生态。Windows下的软件每年交易额有上万亿元,整个生态的软件价值十万亿元以上,有数十万工程师为Windows开发软件。而linux桌面的软件少得很。

现在中国每年生产3亿多台电脑,每台电脑安装Windows操作系统300多元,一年支付的操作系统费用就是1000亿元。

如果能用300亿元投入给linux做个win32子系统,能运行90%多的Windows软件,那么如果每年新电脑一半安装兼容win32软件的linux,那么每年就节约500亿元。这绝对的划算的买卖。我觉得给linux做个win32子系统并不是很难,华为用了一万个工程师花费500亿元就把鸿蒙系统做了出来。

黑mao白mao抓住老鼠的是好猫,linux桌面要有大量的应用软件才好用,才是抓住老鼠的好猫。

我有点理解不了需求,除游戏设计和视频制作外,办公软件对硬件需求都不大,wine+3d基本都能正常运行,游戏又有steam linux,我理解不了为啥还要兼容,至于信创arm架构,现在就是地方推广+大厂独占优势期,软件生态不是建不起来,而是建了没有团体独占来钱快,所以他们不愿意弄而已。兼容实际对国家产业替代不利,其他地方是靠生态来占据硬件市场,我们正好相反,硬件已经大量布局,补生态其实相对容易,从业者要能躺在AMD64架构和x86-64架构的win下舒适环境里赚钱,肯定不愿意去趟国产arm架构新路,最好是能用、或者不那么好用就行, 从信创的主机布局推动软件市场变革,新架构原生软件能引起人们注意,为加快国产化替代创造氛围。

Reply View the author
wlly-lzh
deepin
2025-09-08 15:15
#13
花雨落逝

是的,wine是应用层,有些深层的东西无法转译

年轻人不要理他,这不是什么性能问题,也不是什么技术问题。

这是方向问题,是要动摇根基的重大问题。

wine只是应用层的东西,只能算特别行政区,而内核级的兼容则必然是颜色革命。

当Linux完美兼容90%的Windows软件时,还有必要为Linux开发软件吗?

有些人只看到表面的利益,而不去思考深层的利害;只看到个人的好处,而不顾长远的危害。

Reply View the author
186******33
deepin
2025-09-08 15:16
#14
comicfans

我有点理解不了需求,除游戏设计和视频制作外,办公软件对硬件需求都不大,wine+3d基本都能正常运行,游戏又有steam linux,我理解不了为啥还要兼容,至于信创arm架构,现在就是地方推广+大厂独占优势期,软件生态不是建不起来,而是建了没有团体独占来钱快,所以他们不愿意弄而已。兼容实际对国家产业替代不利,其他地方是靠生态来占据硬件市场,我们正好相反,硬件已经大量布局,补生态其实相对容易,从业者要能躺在AMD64架构和x86-64架构的win下舒适环境里赚钱,肯定不愿意去趟国产arm架构新路,最好是能用、或者不那么好用就行, 从信创的主机布局推动软件市场变革,新架构原生软件能引起人们注意,为加快国产化替代创造氛围。

Windows下的软件非常丰富,不只是游戏和办公软件。比如croe、altium等软件wine就做不好。wine是路子走错了,妄图在用户空间补核内空间的差异。

兼容内核的核内差异核内补才是正路。

Reply View the author
186******33
deepin
2025-09-08 15:19
#15
wlly-lzh

年轻人不要理他,这不是什么性能问题,也不是什么技术问题。

这是方向问题,是要动摇根基的重大问题。

wine只是应用层的东西,只能算特别行政区,而内核级的兼容则必然是颜色革命。

当Linux完美兼容90%的Windows软件时,还有必要为Linux开发软件吗?

有些人只看到表面的利益,而不去思考深层的利害;只看到个人的好处,而不顾长远的危害。

微软为Windows11增加了linux子系统,它也没有什么顾虑的。为什么linux反倒有这些顾虑。

Reply View the author
听风者
deepin
2025-09-08 15:34
#16
It has been deleted!
听风者
deepin
2025-09-08 15:35
#17

当前,这个思路或路线的价值已经不大了,因为......

但并不反正有能力和精力及资源的机构和个人去探索,所有的探索都是有意义的

Reply View the author
wlly-lzh
deepin
2025-09-08 15:39
#18
186******33

微软为Windows11增加了linux子系统,它也没有什么顾虑的。为什么linux反倒有这些顾虑。

笑话!WSL已经从兼容层变成了彻底的虚拟机了,这是完全不一样的东西,你不要混淆视听。

顾虑?wine大家不是用的很爽吗?无论是模拟器还是虚拟机大家都没有排斥。

倒是你在这里宣扬投敌思想!

微软搞wsl就是承认了Linux的地位,Linux有wine也是承认了Windows的丰富,你倒好,还想进一步。不愧是软弱的……。

Reply View the author
comicfans
deepin
2025-09-08 15:54
#19
186******33

Windows下的软件非常丰富,不只是游戏和办公软件。比如croe、altium等软件wine就做不好。wine是路子走错了,妄图在用户空间补核内空间的差异。

兼容内核的核内差异核内补才是正路。

你说的这些mac也没解决,也是使用替代软件或者虚拟机,执着于特定软件和功能的,不如老老实实用win好了,没必要费工夫折腾兼容,多数人对软件没有那么高的需求,有哪闲钱和功夫不如源代码自主化或者安装包架构统一了

Reply View the author
186******33
deepin
2025-09-08 17:33
#20
wlly-lzh

笑话!WSL已经从兼容层变成了彻底的虚拟机了,这是完全不一样的东西,你不要混淆视听。

顾虑?wine大家不是用的很爽吗?无论是模拟器还是虚拟机大家都没有排斥。

倒是你在这里宣扬投敌思想!

微软搞wsl就是承认了Linux的地位,Linux有wine也是承认了Windows的丰富,你倒好,还想进一步。不愧是软弱的……。

我是实用主义者。

现在很多新电脑安装linux,华为笔记本也有安装uos。但linux桌面生态很差,很多软件用不了,很多人用不了多久就把linux卸载,安装Windows了。

如果linux本身就自带win32子系统,能比较好的运行Windows大多数应用,那么就不会有这么多人卸载linux。对大多数普通用户来说只在意是否好用是否符合自身使用习惯和是否能运行自己的软件完成任务。是linux或Windows倒不太在意。

中国每年生产电脑3亿多台,购买Windows操作系统费用近千亿元。不如花几十亿元用来开发linux的win32子系统,使linux能运行大部分Windows应用。一旦开发成功,每年节省购买Windows系统费用几百亿元。

我算了一下,一个1000人的团队,人均每年经费80万元,开发5年,也只是花费40亿元。这么多的人力投入把win32子系统开发出来是没有问题的。

一旦美国对中国禁售Windows系统,那么我们也有替代Windows的系统可用。

Reply View the author
1 / 2
To page