服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

OrbStack: macOS 上的 WSL

日期: 来源:虚拟框架收集编辑:维术

过去很长一段时间我都是通过 VSCode Remote 的方式在一台 Linux 服务器上做开发工作,因为无论是两仪还是 KernelSU,它们都无法在 macOS 本地进行编译。其实曾经有一段时间我是使用虚拟机进行开发的,我用 Parallel Desktop 启动一个没有窗口系统的 Ubuntu 系统,然后通过 ssh 连接到此系统完成开发;设置如下图:

虽然这种方式的确能工作,但总是不太让人满意;比如说它不支持动态磁盘空间,我得提前给它开辟一个大小足够的磁盘;而 Android 源码编译通常需要 200G,加上一些其他的,我至少得给它 500G;这样即使我只用了 350G,另外 150G 也浪费了;也许有人说,你可以给它只分配 380G 或者更少啊,但这样你又得经常调整磁盘空间,挺麻烦的。

有时候交叉编译比如 Rust cross,还需要用到 Docker。但 Docker Desktop for macOS 我实在是不想吐槽,启动特别慢不说,启动之后电脑风扇就狂转就像烧开水一样;因此我很少使用它。

前段时间,一个叫做 OrbStack 的 App 引起了我的注意,它是一个为 macOS 量身定制的 containers 和虚拟机应用,它的一个核心特点就是“快”。不论是容器还是虚拟机的启动速度都快得难以置信,以至于你登陆一个虚拟机的 shell 然后在 Linux 系统中执行命令跟你在 macOS 原生 shell 中执行 mac 系统的命令在速度上几乎没有任何区别。因为这种极致的快,它让我们以前觉得很荒谬的操作现在变成了可能。比如我们开发 Linux 相关的东西,有些工具在 macOS 上根本没有或者说执行起来很不方便,如果在以前,你告诉别人:“你可以启动一个 Linux 虚拟机,然后 ssh 登陆到虚拟机,然后在虚拟机里面执行命令,然后返回结果”,别人可能觉得你是个疯子,但现在这种操作在 OrbStack 里变得非常自然。只需要在你要执行的命令之前加上 orb 前缀,你就可以临时进入 Linux 系统然后执行一条命令然后获取其输出;这个过程你压根都感知不到此命令是在虚拟机执行的,它就像执行 macOS 原生命令一样。

下图是 OrbStack 官方给出的与其他软件的启动速度对比:

除了快之外,它还有一个特性就是“无缝操作”;这个 App 极致地细化了 macOS 系统与虚拟机的 Linux 系统直接的可交互性。你可以在 Linux 虚拟机里很方便地执行 macOS 的命令,在 macOS 执行虚拟机 Linux 中的命令也同样如此;另外,它在目录操作上也非常方便,在 Linux 内可以直接访问 macOS 的目录,如果你正在 macOS 的 shell 中某个目录操作,只要输入 orb 就可以进入到 Linux 系统并且保持当前目录 macOS 中一致。我打个比方,大家刷机 ROOT 肯定会用到一个叫做 magiskboot 的东西,它可以帮你操作 Android 的 boot 镜像;但 macOS 里无法执行这个命令,通过 OrbStack,我们之间 orb ~/magiskboot unpack boot.img 就可以对 boot.img 进行解包,非常方便。

还有一些可能感知不到的细节,比如它的 CPU / 内存 / 磁盘 都是按需使用的,你再也不用操心到底给虚拟机分配多少磁盘空间了,只要你的 macOS 还有空间它就可以工作,而且不占用一点额外的空间;还有内存,如果你给 Docker Desktop 8G 内存,你 8 G内存真的就没了,但 OrbStack 就不会,如果它不运行,那基本都不会用你的内存。

这个软件甚至改变了我部分的工作方式,比如:

  1. 1. 编译 Android 内核和 AOSP 都可以在本地完成,我不再使用远程服务器,不用把编译产物来回 scp。

  2. 2. 在编写 Rust 应用时,我开始使用 cross 进行交叉编译。以前我是用的是 cargo ndk,但这个其实挺不完善的,有些场景不支持;但 cross 要用到 docker,Docker Desktop 实在是太垃圾了我又不愿意用;现在这被 OrbStack 完美解决。

  3. 3. magiskboot 我可以直接在 macOS 上操作,不需要再把 boot.img 推送到手机然后在手机上操作。

这个软件其实还有一些其他的可能,比如你可以直接把它当作 eBPF 的实验开发环境。eBPF 交叉编译其实挺麻烦的,但通过 OrbStack 会被很好地解决。

一句话总结:OrbStack 就是 macOS 上的 WSL,它使得在 macOS 上使用 Linux 系统就像在 Windows 系统上使用 WSL 一样自然;如果你有过 WSL 的体验经历,一定能够理解它的方便之处。

这个软件现在是免费的,而且已经开放下载了,官网在:https://orbstack.dev (也可以阅读原文直接跳转)强烈推荐给有需求的各位童鞋!

最后,大家晚安!


相关阅读

  • KernelSU: Root 兼容性大幅提升

  • 昨天 KernelSU 发布了 0.5.0 版本,大幅提升了 ROOT 命令与 MagiskSU 的兼容性。在这以前,很多童鞋表示有非常多的 ROOT 应用在 KernelSU 上无法使用,其中有一些应用专门针对 Ke
  • 2023研招调剂服务系统4月6日开通,注意事项看过来

  • 2023全国硕士研究生招生调剂服务系统4月6日开通。研招复试调剂服务系统如何使用?有哪些注意事项?一起来了解——网上调剂,有哪些注意事项?(一)考生申请调剂前,请认真阅读《2023年全
  • 注意!全国硕士生招生调剂服务系统今天开通

  • 近日,湖北省招办发布2023年全国硕士研究生调剂注意事项,全国硕士生招生调剂服务系统将于4月6日开通。(一)考生申请调剂前,请认真阅读《2023年全国硕士研究生招生工作管理规定》,了
  • 多看这些,帮大脑排出“垃圾”

  • 编译 | 李木子
    磁共振成像扫描发现成人大脑脑脊液区域。图片来源:Stephanie D. Williams
    《公共科学图书馆-生物学》3月30日发表的一项最新研究表明,大脑的“垃圾处理系统”可

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四
  • 美国对华2000亿关税清单,到底影响有多大?

  • 1 今天A股大跌,上证最大跌幅超过2%。直接导火索是美国证实计划对华2000亿美元产品加征25%关税。 听起来,2000亿美元数目巨大,我们来算笔账。 2000亿美元,按现在人民币汇率

最新文章

  • KernelSU: Root 兼容性大幅提升

  • 昨天 KernelSU 发布了 0.5.0 版本,大幅提升了 ROOT 命令与 MagiskSU 的兼容性。在这以前,很多童鞋表示有非常多的 ROOT 应用在 KernelSU 上无法使用,其中有一些应用专门针对 Ke
  • OrbStack: macOS 上的 WSL

  • 过去很长一段时间我都是通过 VSCode Remote 的方式在一台 Linux 服务器上做开发工作,因为无论是两仪还是 KernelSU,它们都无法在 macOS 本地进行编译。其实曾经有一段时间我是