macOS 14.4 更新引发的 Java 问题:为何苹果的内核改动让开发者忧心忡忡?

在一个晴朗的日子里,你坐在 Mac 前,专注地编写 Java 代码。突然,你的 IDE 崩溃了,Java 进程意外终止。你感到困惑,不知道发生了什么。这并不是你一个人的问题,因为自从 macOS 14.4 更新发布以来,Java 用户普遍遇到了类似的困扰。

问题的根源

macOS 14.4 引入了一个新特性,它控制了动态生成代码在每个线程上的执行方式。在正常的即时编译和执行周期中,macOS 上运行的进程可能会访问受保护的内存区域。在 macOS 14.4 之前,当进程尝试访问这些受保护的内存区域时,macOS 内核会发送一个信号(SIGBUS 或 SIGSEGV)给进程。进程可以选择处理该信号并继续执行。

然而,macOS 14.4 中的新特性改变了这一行为。现在,当线程处于写模式时,如果尝试访问受保护的内存区域,macOS 将发送信号 SIGKILL。这个信号无法由进程处理,进程会被无条件地终止。

Java 受影响

Java 虚拟机(JVM)动态生成代码,并利用受保护的内存访问信号机制来确保正确性和性能。然而,macOS 14.4 中的更改导致了问题:原本可以处理信号的 Java 进程现在会直接终止。这对于依赖 Java 的 IDE 和其他基于 Java 的应用程序来说是个大问题。

解决方案

如果你是 Java 用户,特别是在 ARM 架构的 Apple 设备上运行 macOS 14 的用户,请暂缓升级到 macOS 14.4。目前还没有有效的解决方法,而且回滚 macOS 更新并不容易。如果你已经升级了,建议备份系统并等待问题解决。

总结

这次 macOS 14.4 更新的内核改动引发了 Java 开发者的担忧。我们希望苹果能够尽快解决这个问题,以确保开发者和用户的体验不受影响。

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

谷歌Genie启示:未来虚拟世界的无限可能

2024-3-17 9:13:32

指数词

互联网安全:多因素认证的重要性

2024-3-17 14:06:37

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索