当前位置: 首页 > ops >正文

鸿蒙 PC 发布之后,想在技术上聊聊它的未来可能

最近鸿蒙 PC 刚发布完,但是发布会没公布太多技术细节,基本上一些细节都是通过自媒体渠道获取,首先可以确定的是,鸿蒙 PC 本身肯定是无法「直接」运行 win 原本的应用,但是可以支持手机上「原生鸿蒙」的应用,细节上无非就是 UI 兼容下大屏模式的支持,比如下图是来自 差评XPIN 的鸿蒙 PC 截图:

那么问题来了,HarmonyOS 「卓易通 」 作为生态过渡的丰富支持,甚至在应用商店都可以无缝衔接,那么鸿蒙 PC 是否也可以有类似的场景?

因为目前得到的消息是,鸿蒙 PC 不支持侧载 ,这个结论我也不保熟,只是在这个大条件下讨论,那么 鸿蒙 PC 是不是也可以有个 「W易通」?技术上是否可以支持?


当然,你要说鸿蒙 PC 和鸿蒙手机,本质它们是同源的,App 之间互通理论上没毛病,从这个角度看,好像又支持侧载?
在这里插入图片描述

那「W易通」?技术上是否可以支持?答案上还真可以,从某些媒体上说的,通过定制 Wine 来兼容已有的 win 软件,这个或者是一条可行的路,但是其实我也并没有找到官方下图的说法和出处,但是不妨碍我们讨论可行性。

Wine 这个名字本身就揭示了它核心特性:“Wine Is Not an Emulator”(Wine 不是模拟器),它其实已经被应用很久了,例如:

  • Steam Deck 和 Proton,就是那个 Steam 的掌机,它用的就是为极致游戏定制的 Wine ,Proton 是一个为 Windows 游戏能在 Linux 上流畅运行而深度定制和优化的发行套件
  • CrossOver 和 Whiskey,在 macOS 上运行 win 游戏,也是 Wine 的定制

所以 Wine 确实是一个可行的途径,Wine 在实际场景里主要是充当一个兼容层,实时地将 Windows 应用的 API 调用转换为宿主操作系统(如 Linux 或 macOS)能够理解的等效 POSIX 调用 。

当然,这种设计也意味着 Wine 的兼容性直接取决于其对 Windows API 的重实现程度,所以 Wine 的核心就是重塑 Windows API ,在某种程度上镜像了 Windows 的结构,例如:

  • wineserver:在 Windows 中主要是由内核提供核心服务,在 Wine 中会由 wineserver 在用户空间实现 ,它的职责包括实现基本的 Windows 功能,如进程和线程管理、对象管理、进程间通信(IPC)、同步原语、将 Unix 信号转换为 Windows 异常,处理窗口管理和输入事件等

  • 核心 DLL 的重实现:Wine 提供了大量核心 Windows DLL 版本,例如 NTDLL.DLL(Windows NT 内核功能的核心接口)、KERNEL32.DLL(基础操作系统功能,如内存管理、文件 I/O)、GDI32.DLL(图形设备接口,负责 2D 绘图)、USER32.DLL(用户界面元素、窗口管理、消息传递)等 ,这些 Wine 实现的 DLL 通常以 Unix 共享对象(.so 文件)的形式存在,它们可以直接调用宿主操作系统的函数

另外 还有 WineD3D ,将 Direct3D 和 DirectDraw API 调用翻译成 OpenGL 调用的核心组件 ,另外还有 DXVK 这种专注于将 Direct3D API 调用高效地翻译成 Vulkan 调用的支持。

前面的 Steam 的 Proton 也是一个针对游戏优化的 vkd3d 分支,负责将 D3D12 调用翻译为 Vulkan ,而 macOS 上或者还需要比如 MoltenVK 将 Vulkan 转为 Metal ?

当然,翻译 API 的局限性就不用多说了,还有一些依赖底层驱动支持的场景,很难在通用性上做到完美,当时理论上做到部分应用通用的场景应该可以,甚至在游戏领域反而更有优势?

当然,还有另外一条途径就是直接跑虚拟机,或者说虚拟桌面,目前已经有不少人运行成功,比如就有博主用 Os-easy 虚拟机装上了Windows 11 :

事实上 Linux 上运行 Win 虚拟机一直以来就有,用户只需选择镜像文件并完成基础配置,同样也可以在鸿蒙 PC 上使用Windows系统。

安装完成后,用户可以在鸿蒙与 Windows 系统之间便捷切换,类似切换桌面的效果,这样也算是一种场景支持:

当然,虚拟桌面的割裂感会更重,但是在通用软件场景下会相对更好,但是性能也许会更差一下?

另外,目前也挺多觉得鸿蒙 PC 就是一个平板 PC 化的场景,其实这样也算是一个趋势?类似我前段时间一直在聊的 Android PC 化支持,目前 Android 桌面化已经集齐:

  • Linux 终端控制台支持
  • 桌面模式
  • 外部显示器支持
  • 窗口多任务,最小化,多实例支持
  • 尚未明确的 Desktop View
  • 外部显示器排列和切换
  • ·····

例如下方就是 Android 下的外部显示器排列和切换支持:

最后,貌似目前鸿蒙 PC 虽然能进终端,但是不开放 sudo 权限,apt 也没有?这部分能力不知道后续是否会开放,从 PC 角度看这部分能力还是有必要的:


比如小米这个 winplay 是不是也是 wine 的定制魔改?我个人感觉,鸿蒙 pc 上游戏通过 wine 体系支持可能会比虚拟桌面更好

在这里插入图片描述

那么,对于鸿蒙 PC 场景,你有什么技术方向想聊的?

http://www.xdnf.cn/news/5829.html

相关文章:

  • 【redis】CacheAside的数据不一致性问题
  • 【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区
  • MES管理系统构建智能制造时代下的全面质量管理体系
  • 半小时快速入门Spring AI:使用腾讯云编程助手CodeBuddy 开发简易聊天程序
  • 计算机视觉----时域频域在图像中的意义、傅里叶变换在图像中的应用、卷积核的频域解释
  • CSRF防范歪招
  • 互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-5
  • BlockMesh Ai项目 监控节点部署教程
  • 在 Linux 系统中过滤文件中的字符串
  • 尼康VR镜头防抖模式NORMAL和ACTIVE的区别(私人笔记)
  • supabase 怎么新建项目?
  • STM32H743输出50%的占空比波形
  • DevExpressWinForms-布局容器之SidePanel
  • Java基于SpringBoot的农产品智慧物流系统,附源码+文档说明
  • InfluxDB-数据看板实现流程:从数据采集到可视化展示
  • 图论part09dijkstra算法
  • 黑马Java跟学.最新AI+若依框架项目开发(一)
  • ubuntu部署supabase
  • 广告推荐算法入门 day1 --项目选型
  • HDFS的客户端操作
  • 【Ansible】基于windows主机,采用NTLM+HTTPS 认证部署
  • git进行版本控制时遇到Push cannot contain secrets的解决方法
  • Hapi.js知识框架
  • RabbitMQ,Kafka八股(自用笔记)
  • 亚马逊云科技:开启数字化转型的无限可能
  • MapReduce 入门实战:WordCount 程序
  • 2025政企行业智能体研究
  • MinIO WebUI 页面使用
  • 国产化Word处理控件Spire.Doc教程:如何使用 C# 从 Word 中提取图片
  • INTELLECT-2大模型论文速读:通过全局分散强化学习训练的推理模型