跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • wine 这种是怎么实现的呀?
未分類
30 11 月 2020

wine 这种是怎么实现的呀?

wine 这种是怎么实现的呀?

資深大佬 : Macv1994 0

一直用的 Ubuntu1804 网页版微信也不能用 今天折腾了一下 wine 可以在 Ubuntu 使用 Windows 微信客户端 好他娘神奇啊 这是怎么实现的啊?个人技术水平有限,有咩有懂哥科普一哈。

大佬有話說 (14)

  • 資深大佬 : forcecharlie

    Wine 通常要做到加载 PE 格式可执行文件到内存让其执行,提供 Windows 系统调用供其于系统交互。相同的 CPU 指令集就无需指令翻译了,否则还还涉及到指令集的翻译。

  • 資深大佬 : neoblackcap

    wine 会重新实现对应 windows 的 win32 api,并能加载 PE 格式的可执行文件,就是这么简单无华但枯燥乏味的原理

  • 資深大佬 : cheng6563

    模拟了 Windows 的 API,和 WSL1 一个原理

  • 資深大佬 : billlee

    加载 PE 格式的可执行文件和 DLL, 提供 Windows API 的实现。

    其实 linux 下原生的动态连接 ELF 也是由一个用户空间程序 ld.so 来加载的。

  • 資深大佬 : outponder

    @cheng6563 但是为什么能这么强,有些游戏用 vulkan 重写 dx 的 api 在 linux 性能强过 win

  • 資深大佬 : Xusually

    Wine Is Not an Emulator
    想到这个就是一个字“秀”

  • 主 資深大佬 : Macv1994

    @neoblackcap 对我来说 很神奇了 没有深入研究过操作系统层面的知识 唉 太菜了我

  • 資深大佬 : neoblackcap

    @outponder 跟“API”没有多大关系,跟“重写”很大关系。
    稳定的软件,用原来的技术栈重写一样能获得性能提升,实际上不就是调优嘛。
    DX12,vulkan,mantle 都是一个技术源头——xbox 360 研发过程。

  • 資深大佬 : way2explore2

    酵母+糖(多是葡萄)+时间。

    有时候还需要木桶。

  • 資深大佬 : no1xsyzy

    @way2explore2 主要需要无氧环境
    似乎葡萄才能出 wine,苹果出 cider,麦芽出 ale…… 之类的,英文环境下会用不同单词区分不同原料的产物

  • 資深大佬 : TransAM

    由于指令集一样,你需要:

    ( 1 )将 linux api 封装成 windows api
    ( 2 )将 pe 适配成 elf

  • 主 資深大佬 : Macv1994

    @TransAM 指令集是根据架构决定的 对吧 ?那微信为什么是 deb 包 有点不解

  • 主 資深大佬 : Macv1994

    @way2explore2 搁着教我酱酒呢

  • 資深大佬 : dyv9

    @neoblackcap 你选择理科的原因大概是语文勉强及格,朴实无华“但”枯燥乏味。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具