有没有可以在没有 RAM 的情况下使用的操作系统,特别是那种可以创建可启动 U 盘并在计算机中使用的操作系统?这很尴尬,因为启动本质上是在 RAM 中加载操作系统。
笔记:我原本想了解无 RAM 的操作系统,以检查我的笔记本电脑(无法启动但显示空白屏幕)的 RAM 是否已经坏了,但我喜欢这个问题滚雪球的方式。
答案1
每个操作系统都需要 RAM 吗?
对于 IBM PC 兼容硬件,强制的步骤BIOS POST 过程是检查是否有 RAM 来加载 BIOS。可选的 POST 过程检查 RAM 是否正常运行。在 POST 过程之后,BIOS 将引导加载程序加载到 RAM 并将控制权交给引导加载程序。因此,您的问题(“每个操作系统都需要 RAM 吗?”)的答案是:是的,每个 IBM PC 兼容硬件都需要至少一些可运行的 RAM 才能启动。对于在该硬件上运行的任何操作系统而言,情况都是如此。
请注意,在原作者的原始问题中,提到了“笔记本电脑”,我将其解释为:IBM PC 兼容硬件。对于此答案的其余部分,我将假设 IBM PC 兼容硬件。
操作系统可以在 RAM 有故障的情况下启动吗?
如果你的 RAM 有故障(但并非完全缺失或损坏),或者你可以(部分)更换 RAM,则可能能够使用坏RAM的坏记忆内核补丁。它要求你重新编译内核(听起来比第一次做要容易得多),然后你可以重新启动并告诉内核你的坏内存在哪里。关于使用Memtest86/Memtest86+,可以找到 BadRAM/BadMEM这里。
操作系统可以在没有 RAM 的情况下启动,并使用 CPU 的缓存作为 RAM 吗?
据我所知,如果系统上没有任何 RAM,就无法将 CPU 的缓存用作 RAM(@philipp 和其他人建议的)。如果有的话,最好在这里添加。我能找到的关于这个主题的唯一论文是这张纸上面写着:“使用处理器的缓存作为 RAM,直到 RAM 初始化”。不确定它是否(以及如何)能工作没有RAM。据我所知,没有在职的在 IBM 兼容 PC 上启动操作系统的代码。欢迎在评论中引用任何概念验证、工作代码或任何内容,我会将其添加到此答案中。
我可以进入 BIOS 吗?
楼主的问题有点模糊,笔记本电脑是否能够通过 BIOS POST。正如@Tonny 指出的那样,不能操作系统将帮助你“进入 BIOSF1“。您可以使用或F2或F10或DEL或键进入 BIOS ESC,具体取决于您的 BIOS 品牌。
如何从没有 RAM 的笔记本电脑恢复数据?
至于你提出这个问题的目的:你为什么需要访问你的笔记本电脑?可能是因为硬盘上还有你想恢复的数据?如果是这样的话,拔出硬盘(参见手册)并将其连接到外部存储设备或直接连接到 PC 要容易得多。这里是一个很好的指南。
答案2
这是可能的理论上,但速度会非常慢,因为它需要使用磁盘来存储无法放入 CPU 缓存的任何临时存储。(CPU 有几兆字节的缓存,因为即使是 RAM 也是太慢了对他们来说。想一想。)所以你需要一个相当小的操作系统。
(嗯,嵌入式片上系统能从 RAM 或内部闪存执行代码 - PC BIOS 理论上可以做同样的事情,但它不能运行整个操作系统。)
但是,另一件事是,BIOS 运行前和外部任何已安装的操作系统,BIOS 可让您从 U 盘或其他设备启动。因此,如果您无法访问 BIOS,那么不世界上其他的操作系统将会帮助你。
答案3
你可以花点功夫设计一个不包含 RAM 的系统。从 ROM(或存储)加载软件,并在寄存器或缓存中执行所有操作。这样的系统用途非常狭窄,而且考虑到当今的 RAM 价格,它有点毫无意义。如果没有板载内存,现成的笔记本电脑将无法运行。
你真正的问题更可能是“如何从无法启动的计算机中获取信息”,这很容易。拆开它,取出驱动器,然后将其连接到外部驱动器盒。
但请注意,任何旧到你无法花 20 美元为其购买可用 RAM 的计算机都会配备 ATA(常规 ATA,而非 SATA)驱动器。这种接口如今几乎已不复存在,因此你还需要找到一个带有 ATA 卡的驱动器盒以及一个全尺寸到笔记本电脑尺寸的适配器。我有一个 2000 年购买的驱动器盒,我保留了几个旧盒就是为了这个目的。
答案4
您认为内存损坏的假设很可能是错误的。如果您没有听到蜂鸣声或屏幕消息,那么根本原因几乎肯定是 CPU 故障(可能性不大)或主板故障(可能性很大)。由于冷焊点,主板会随着时间的推移而不断出现故障,这在 ROHS 运动和使用无铅焊料的要求初期很常见。制造技术已针对使用铅基焊料进行了优化,业界花了一段时间才赶上并解决这些问题。许多零部件制造商不太愿意花钱升级他们的工艺。毕竟,这些设备可以正常测试和老化,但几个月或几年后就会出现故障,那时任何保修可能都已过期。只有在故障越来越多以及用户强烈负面反馈的情况下,制造商才开始改进。在这样的笔记本电脑上,重新焊接主板以纠正冷焊点几乎肯定是成本过高。