我在一台安装了 ubuntu 17.10 的旧机器上运行,该机器是一台旧的 AMD Athlon XP 19000+,配备 1.5Gb RAM。当尝试在终端中使用一些开发应用程序时,例如:
- 节点(NodeJS)
- npm(Node 包管理器)
- subl(Sublime Text)
但我收到了很多这样的回复“非法指令(核心转储)”,我无法使用它们。在 GUI 中运行 Sublime Text 也不起作用,它会崩溃。
我尝试重新安装操作系统并再次运行应用程序,但发生了一些事情。
发生了什么事?这是操作系统问题?应用程序问题?硬件问题?有解决办法吗?
谢谢你的帮助!
答案1
出现此问题的原因是您的处理器缺少 SSE2 指令集。除了购买新的、更现代的处理器外,您别无选择。我的 Athlon XP 2500+ 实际上也遇到了同样的问题。最好的解决方案是使用针对此类处理器的发行版。我个人使用的是 antix Linux 17,它的存储库针对非 SSE2 处理器。
对于某些程序,您可以尝试一些解决方法,但对于其他程序,您将没有运气。您可以尝试自己从源代码进行编译,这将确保处理器指令适合您的特定处理器,因为它正在编译它。我对 RetroArch 使用了这种方法,并且运行完美。您还可以尝试使用不需要 SSE2 的旧版本软件。例如,Firefox 从版本 48 开始使用 SSE2,因此您可以将该版本用于浏览器。但是我个人使用 Pale Moon,这是一款基于 Firefox 的浏览器,具有专用的非 SSE2 版本。它可以在 antix 存储库中找到。主要缺点是您将无法使用扩展,因为它们需要较新版本的浏览器。
现在您知道了。每当您看到“非法指令”时,就意味着您的处理器不理解它被要求做什么,因为它没有理解它所需的“词典”。