一直用的 Ubuntu1804 网页版微信也不能用 今天折腾了一下 wine 可以在 Ubuntu 使用 Windows 微信客户端 好他娘神奇啊 这是怎么实现的啊?个人技术水平有限,有咩有懂哥科普一哈。
|  |      1forcecharlie      2020-11-26 17:35:31 +08:00 Wine 通常要做到加载 PE 格式可执行文件到内存让其执行,提供 Windows 系统调用供其于系统交互。相同的 CPU 指令集就无需指令翻译了,否则还还涉及到指令集的翻译。 | 
|      2neoblackcap      2020-11-26 17:54:53 +08:00 wine 会重新实现对应 windows 的 win32 api,并能加载 PE 格式的可执行文件,就是这么简单无华但枯燥乏味的原理 | 
|  |      3cheng6563      2020-11-26 17:54:59 +08:00 模拟了 Windows 的 API,和 WSL1 一个原理 | 
|      4billlee      2020-11-26 21:26:46 +08:00 | 
|      5outponder      2020-11-26 21:38:31 +08:00 via Android @cheng6563 但是为什么能这么强,有些游戏用 vulkan 重写 dx 的 api 在 linux 性能强过 win | 
|  |      6Xusually      2020-11-26 21:50:21 +08:00 Wine Is Not an Emulator 想到这个就是一个字“秀” | 
|  |      7Macv1994 OP @neoblackcap 对我来说 很神奇了 没有深入研究过操作系统层面的知识 唉 太菜了我 | 
|      8neoblackcap      2020-11-27 03:19:27 +08:00 @outponder 跟“API”没有多大关系,跟“重写”很大关系。 稳定的软件,用原来的技术栈重写一样能获得性能提升,实际上不就是调优嘛。 DX12,vulkan,mantle 都是一个技术源头——xbox 360 研发过程。 | 
|  |      9way2explore2      2020-11-27 05:19:25 +08:00  1 酵母+糖(多是葡萄)+时间。 有时候还需要木桶。 | 
|  |      10no1xsyzy      2020-11-27 10:04:23 +08:00 @way2explore2 主要需要无氧环境 似乎葡萄才能出 wine,苹果出 cider,麦芽出 ale…… 之类的,英文环境下会用不同单词区分不同原料的产物 | 
|      11TransAM      2020-11-27 12:45:32 +08:00 via Android 由于指令集一样,你需要: ( 1 )将 linux api 封装成 windows api ( 2 )将 pe 适配成 elf | 
|  |      13Macv1994 OP @way2explore2 搁着教我酱酒呢🐶🐶 | 
|      14dyv9      2020-11-28 09:29:03 +08:00 via Android @neoblackcap 你选择理科的原因大概是语文勉强及格,朴实无华“但”枯燥乏味。😁 |