mac 苹果芯片运行 Asahi,最强 Linux,终极 ARM64 Linux 工作站
一切都从去年这个月开始
2022 年 3 月,Asahi 的 alpha 版本发布,我立即将其安装在配备 8 核 Apple Silicon (ARM64) M1 处理器的 Mac Mini 上。 Asahi 是一个 Linux 发行版,由于开源社区成员提供了一些巧妙的逆向工程,因此可以在基于 Apple Silicon 的 Mac 上本机运行。此外,运行 Asahi 是完全合法的,因为 Apple 正式允许在其 Apple Silicon 平台上启动非 macOS 操作系统。
虽然 Asahi 当时并不支持所有 Mac Mini 硬件组件,但基本的硬件驱动程序都可用,而且我对系统的速度感到惊讶。在得知我可以安装我需要的所有软件后,它很快就成为我的日常驱动程序,正如我在7 月份的博客文章中详细介绍的那样。到 12 月,所有剩余硬件(蓝牙、音频、GPU)的驱动程序都可用,并且我想要的所有开源软件包都已更新,以支持 Apple Silicon 所需的 16K 页面大小。
就在那时,我心想:“如果我可以在 Apple 最快的 Apple Silicon Mac 上本地运行 Asahi Linux 会怎么样?那将是终极的 ARM64 Linux 工作站。我绝对想运行终极 ARM64 Linux 工作站。”
所以我把事情提升到了一个新的水平
今年一月,我在 Apple 最强大的 ARM64 系统上安装了 Asahi Linux:配备 20 核 M1 Ultra 处理器和 128GB RAM 的 Mac Studio。它通过 HDMI 与令人惊叹的戴尔 34 英寸宽屏曲面显示器搭配。
与此同时,我决定是时候从强大的 i3 窗口管理器(必须在旧版 X 窗口系统上运行)迁移到在新 Wayland 窗口系统上运行的 sway 合成器了。这比我预想的要容易得多——与 i3 相比,sway 的性能更好,并且使用了更精简的配置。
下面是我在 Mac Studio 上的 sway 桌面的高分辨率屏幕截图。您可以在此 GitHub 存储库中找到我的自定义 sway dotfiles 配置。
有什么不行的吗?
引用《哈姆雷特》第三幕第三场第 87 行:“不。”
一切正常……并且运行完美。所有硬件(蓝牙、音频、HDMI、USB、10G 以太网、WiFi 和 GPU)在 Asahi 团队去年创建的驱动程序下都能完美运行,并且没有任何一个我想要或需要的软件不符合要求。 Asahi 在这个系统上运行得不太好。
我安装的大多数软件包都来自 Arch 用户存储库(因为 Asahi 基于 Arch),但其中一些软件包是作为 Flatpak 沙箱安装的(例如 Visual Studio Code)。对于更复杂的软件系统,我经常获取现成的容器映像并将它们作为容器运行(例如,我的 NextCloud 实例)。您还会从htop
屏幕截图的输出中注意到,我正在运行 K3s 集群来测试我开发的微服务。
由于我的大部分工作负载都是容器化的,因此我不需要运行其他 Linux 虚拟机。然而,我确实必须支持在 BSD 监狱中运行的几个 Web 应用程序。为此,我安装了 FreeBSD UNIX 的专用 QEMU 虚拟机,该虚拟机使用 8 核和 64GB RAM。下面是在我的 sway 桌面的终端中运行的虚拟机控制台的图片。您可以在此 GitHub 存储库中找到我的 QEMU 脚本。
这是迄今为止我用过的最快的 Linux 桌面。
一切——我是说一切——都快得令人难以置信。一切都是即时运行的,应用程序启动屏幕似乎不存在。
在某些情况下,它太快了。当我安装 K3s 时,kube-system 命名空间中的所有容器都不断进入可怕的 CrashLoopBackOff 状态(这是我以前在生产容器之外从未见过的情况)。经过一番调查,我发现 Mac Studio 对于 Kubernetes 资源计时来说太快了,我必须为每个 pod 添加资源限制来纠正这种情况。
我喜欢在Linux/ARM64上开发的主要原因之一是因为它符合我的课外开发。我目前合作的初创公司使用基于微服务的计算密集型应用程序,该应用程序通常在具有 48 个 ARM64 核心的 AWS c6g.12xlarge Graviton 实例中运行。该应用程序非常繁重,以至于我们在应用程序本身中内置了自己的负载模拟和性能监控微服务(我们的服务网格也对此有所帮助)。
因此,我在运行 Asahi 的 Mac Studio 上暂存该应用程序,并运行负载模拟,以了解它在 AWS 上的暂存环境中的表现如何。 Mac Studio 彻底击败了 Graviton 实例。相同负载下的延迟平均降低了大约 20%,峰值时的计算速度始终快了 36%。 I/O 的监控和解释比较棘手,但在我看来,总体而言并没有显着不同。
它确实是终极 ARM64 Linux 工作站。我喜欢使用它。
原文:https://jasoneckert.github.io/myblog/ultimate-linux-arm64-workstation

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AutoMQ 1.1.0-RC0 更新:内核升级至 Apache Kafka 3.7.0
AutoMQ 在 2024.02 正式发布了基于 Apache Kafka 3.4.0 的云原生重构版本 1.0.0,AutoMQ 1.0.0 版本相比原版提供了Serverless、自动负载均衡、秒级分区迁移和 All in 对象存储能力,让 Kafka 用户能充分利用云的弹性能力和廉价存储,实现十倍成本优势。 AutoMQ 基于 Apache Kafka 3.4.0 版本开始进行 Kafka 云原生重构,在此期间 Apache Kafka 社区在 trunk 分支上提交了 1700+ 个 Commits,版本也从 3.4.0 演进到 3.7.0,新增了大量的特性、优化和修复。 AutoMQ 为了保障 100% 与 Apache Kafka 兼容,在 AutoMQ 1.0.0 版本稳定后,就立刻开始了对 Apache Kafka 最新代码的合并工作。得益于 AutoMQ 存算分离的架构,对 Apache Kafka 的修改主要限制在存储切面,存储代码仅占整个项目不到 2%,因此 AutoMQ 合并跟进 Apache Kafka 的代码成本很低。 3.7.0 代码合并后,经过评审、Ch...
- 下一篇
本地多个 Git 邮箱身份,commit 的时候不方便,怎么整?
以下是有关如何管理多个 Git 身份(例如个人、工作、client1、client2)的快速提示。 我将 Git 存储库分为三个级别。我的个人项目位于一个~/sources目录中。我所有的工作项目都位于~/work.这是第一级。 2 级是客户端,例如~/work/client1。当然,第 3 级是项目存储库:~/work/client1/foo-api. 这就是我的工作目录的组织方式: /Users/garrit/work ├── client1 │ ├── foo-api │ ├── foo-ios │ └── foo-android └── client2 ├── bar-ios └── bar-middleware 现在,假设client2我们需要使用与默认工作电子邮件不同的身份进行提交。除此之外,您可能还有一个用于您自己的项目的个人电子邮件地址。你是如何做到这一点的? .gitconfig 包括 Git 的全局配置文件是~/.gitconfig.如果您曾经设置过如下参数git config user.name "Foo Bar":...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主