是否有没有RAM即可使用的操作系统,特别是我可以从中创建可启动Pendrive并在计算机中使用的OS?这很尴尬,因为引导实际上是将操作系统加载到RAM中。
注意:我最初想了解一个无RAM的OS,以检查我的笔记本电脑(无法启动但显示黑屏)RAM是否变坏,但是我喜欢这个问题激增的方式。
是否有没有RAM即可使用的操作系统,特别是我可以从中创建可启动Pendrive并在计算机中使用的OS?这很尴尬,因为引导实际上是将操作系统加载到RAM中。
注意:我最初想了解一个无RAM的OS,以检查我的笔记本电脑(无法启动但显示黑屏)RAM是否变坏,但是我喜欢这个问题激增的方式。
Answers:
每个操作系统都需要RAM吗?
对于与IBM PC兼容的硬件,BIOS POST过程的必需步骤是检查是否有RAM可以将BIOS加载到其中。(可选)POST过程检查您的RAM是否正常运行。POST过程之后,BIOS将引导加载程序加载到RAM中,并将控制权交给引导加载程序。因此,您的问题的答案(“每个操作系统都需要RAM吗?”)是:是的,每个与IBM PC兼容的硬件都至少需要一些正常运行的RAM才能启动。对于在该硬件上运行的任何OS都是如此。
请注意,在OP的原始问题中,提到了“笔记本电脑”,我将其解释为:IBM PC兼容硬件。对于此答案的其余部分,我将假定IBM PC兼容的硬件。
操作系统可以使用错误的RAM启动吗?
如果你的内存有问题(而不是完全不存在/断开),或者如果你可以(部分)取代你的RAM,您可能能够使用启动BadRAM的BadMEM内核补丁。它要求您重新编译内核(听起来比第一次编译时要容易),并且可以重新启动并告诉内核您的坏内存在哪里。可以在此处找到有关Memtest86 / Memtest86 +,BadRAM / BadMEM 的用法的很好解释。
操作系统可以在没有RAM的情况下引导并且将CPU的缓存用作RAM吗?
据我所知,在注释中,如果系统上不存在任何RAM(如@philipp等建议),则无法将CPU的缓存用作RAM。如果有的话,最好在这里添加它。我唯一可以找到的关于该主题的论文是该论文,其中指出:“将处理器的缓存用作RAM,直到RAM初始化为止”。不知道它是否(以及如何)没有 RAM 就可以工作。据我所知,没有可在IBM兼容PC上引导OS的工作代码。注释中欢迎引用任何概念验证,工作代码或任何内容,我将其添加到此答案中。
我可以进入BIOS吗?
如果笔记本电脑能够通过BIOS POST,则OP的问题有点含糊。正如@Tonny指出的那样,没有操作系统可以帮助您“ 进入BIOS ”。输入您使用的BIOS F1或F2或F10或DEL或ESC键,这取决于你的品牌的BIOS。
如何从不带RAM的笔记本电脑中恢复数据?
至于问题背后的目标:为什么需要访问笔记本电脑?可能是因为要恢复的HDD上仍有数据吗?在这种情况下,拔出HDD(请参阅手册)并将其连接到外部存储设备或直接连接到PC上要容易得多。这是一个很好的指南。
从理论上讲是有可能的,但是它会非常慢,因为它需要将磁盘用于任何不适合CPU缓存的临时存储。(CPU具有几兆字节的缓存,因为即使RAM 对它们来说也太慢了。考虑一下。)因此,您需要一个相当小的OS。
(嗯,嵌入式片上系统可以从RAM或内部闪存执行代码-理论上,PC BIOS可以执行相同的操作,但不能运行整个OS。)
但是,另一件事是,BIOS 在任何已安装的操作系统之前和之外运行,而BIOS是使您可以从Pendrive或其他任何方式引导的BIOS。因此,如果您无法访问BIOS,那么世界上没有其他操作系统可以为您提供帮助。
您可以花费一些精力设计一个不包含RAM的系统。从ROM(或存储)加载软件,然后在寄存器或缓存中进行所有操作。这样的系统使用范围极窄,考虑到当今的RAM价格也毫无意义。没有一些内置内存,现成的笔记本电脑将无法运行。
您真正的问题很可能是“如何从无法启动的计算机中获取信息”,这很容易。拆卸它,卸下驱动器,然后将其连接到外部驱动器盒。
但是请注意,任何足够老而不能仅获得价值20美元的可用RAM的计算机都将具有ATA(常规ATA,而不是SATA)驱动器。该接口今天几乎已经不存在了,因此您还需要找到带有ATA卡以及全尺寸到笔记本尺寸适配器的驱动器盒。我有一个2000年买的,为了这个目的,我保留了一些旧箱子。
您对内存不良的假设可能无效。如果没有发出哔声或屏幕消息,则根本原因几乎可以肯定是CPU故障(某种程度上不太可能)或主板故障(很有可能)。由于冷焊点,主板总是随着时间的流逝而失效,这在ROHS运动初期以及使用无铅焊锡的需求中很普遍。制造技术已针对使用铅基焊料进行了优化,该行业花了一段时间才赶上并解决了问题。许多组件制造商不太愿意花钱升级他们的工艺。毕竟,在任何保修期过后,设备都可以正常测试并燃烧,直到几个月或几年后才失效。只有随着故障的增加和用户的强烈负面反馈,制造商才开始改进。在这样的笔记本电脑上,让主板回流以纠正冷焊点几乎可以肯定是成本过高的。
在1980年代左右的大多数早期计算机中,ROM芯片中都装有某种操作系统(硬件驱动程序,IO支持,程序加载,非常简单的命令行界面等)。即使RAM芯片无法工作,它也可能会起作用。此功能用于特殊的ROM内容版本中,旨在运行硬件测试并主要通过蜂鸣器和键盘灯进行通信。
CPU具有多个寄存器,至少可以记住要执行的命令的地址,但是通常不将其称为RAM。
常规C代码无法在没有RAM的系统中运行,因为它使用堆栈内存分配变量,并且堆栈位于RAM中。当最近的计算机启动时,常规的动态RAM最初不可用,因为RAM刷新设备需要初始设置才能工作。汇编代码首先运行并执行主板初始化。RAM开始工作,然后可以运行C代码。
1967年我上大学时,计算系有一架Stantec Zebra。内存由8192字磁鼓组成。还有12个寄存器和两个累加器。您可能会考虑该RAM,但并非我们所知道的那样。
您不需要 RAM,例如,使用Turing机。
图灵机是一种假想的设备,可以根据规则表来操纵一条胶带上的符号。尽管图灵机很简单,但它可以适用于模拟任何计算机算法的逻辑,并且在解释计算机内部CPU的功能时特别有用。
(我不认为磁带是RAM。)
现在,您真正的问题应该在询问“有用”,并定义“有用”的含义。
有专门用于嵌入式用途的OS,这些OS完全用完ROM(只读存储器)。但是,要执行任何有用的操作,通常仍需要至少少量RAM。我还没有看到没有RAM即可启动的PC。
至于有关内存测试的原始问题,如果计算机可以开机自检(即使其通过开机自检并尝试启动),则Memtest86专为测试您的RAM而设计。它会测试前64KB的RAM,将自身加载到该RAM中,然后根据需要彻底测试系统的其余部分。“片状”内存(而不是普通的坏内存)并不常见,但是我已经看到Memtest86间歇性地发现了计算机的内存测试丢失的坏点(毕竟,POST内存测试旨在在合理的时间内完成) ,而memtest86最快的测试运行5-10分钟,而更全面的测试则需要数小时。)