web-dev-qa-db-ja.com

すべてのOSにRAMが必要ですか?

RAMなしで使用できるOS、特に私が起動可能なペンドライブを作成してコンピュータで使用できる種類はありますか?起動は基本的にOSをRAMにロードするので、これは厄介です。

注:私はもともと私のラップトップ(起動しないが空白の画面を表示する)かどうかをチェックするためにRAMのないOSについて知りたいと思いましたRAMは悪くなったが、私はこの質問がスノーボールした方法が好きだ。

76

理論上でも可能ですが、CPUキャッシュに収まらない一時ストレージにディスクを使用する必要があるため、非常に遅くなります。 (CPUはRAMでも遅すぎるであるため、数メガバイトのキャッシュを持っています。それについて考えてください。)かなり小さいOSが必要です。

(まあ、組み込みシステムオンチップcan RAMまたは内部フラッシュメモリのいずれかからコードを実行します– PC BIOSは理論的には同じことを実行できますが、 OS全体。)

しかし、もう1つは、BIOSがbeforeおよびoutsideをインストールされたオペレーティングシステムで実行し、ペンドライブなどから起動できるBIOSであるということです。したがって、BIOSに到達できない場合は、no世界の他のOSが役立ちます。

33
grawity

RAMをまったく含まないシステムを設計することもできます。ソフトウェアをROM(またはストレージ)からロードし、すべてをレジスタまたはキャッシュに入れます。そのようなシステムは非常に狭い用途があり、今日のRAMの価格は少し意味がありません。市販のラップトップはオンボードメモリがないと機能しません。

あなたの本当の質問は、「起動しないコンピュータから情報を取得するにはどうすればよいですか」という可能性が高く、それは簡単です。分解してドライブを取り外し、外付けドライブケースに接続します。

ただし、$ 20相当のRAMを入手できないほど十分に古いコンピュータには、ATA(通常のATA、SATAではなく)ドライブがあります。このインターフェースは今日ではほとんど消滅しているので、ATAカードとフルサイズからラップトップサイズのアダプターまでのドライブケースを見つける必要があるでしょう。私は私が2000年に買ったものを持っています、そして私はちょうどこの目的のために周りにいくつかの古いケースを保管しています。

15
peter

私が正しく質問を読むと、ここのみんなが間違った木に吠えています。

彼は「BIOSに到達するために」明示的に述べています。

ラップトップがひどく壊れていても、それがBIOSに入ることすらありません、他はすべて無意味です。

RAMの状況にかかわらず、これでOSを起動することはできません。

10
Tonny

メモリが悪いというあなたの仮定はおそらく無効です。ビープ音や画面上のメッセージが表示されない場合、根本的な原因はほぼ確実にCPUの故障(多少ありそうにない)またはメインボードの故障(非常にありそう)です。メインボードは、冷たいはんだ接合部が原因で常に古くなっています。これは、ROHSの動きの初期の時代によく見られ、鉛フリーはんだを使用する必要があったためです。製造技術は鉛ベースのはんだを使用するように最適化されており、業界は問題を見つけて解決するのに時間がかかりました。多くの部品メーカーは、自分たちのプロセスをアップグレードするためにお金を使うことをあまり望んでいませんでした。結局、保証が期限切れになる可能性があった後に、数か月または数年後に失敗するだけで、デバイスはテストして正常に動作します。失敗の山が増え、ユーザーからの強い否定的なフィードバックがあったときにだけ、製造業者は物事を改善し始めました。このようなラップトップでは、コールドはんだ接合部を修正するためにメインボードをリフローさせることは、ほとんど間違いなく法外なコストです。

8
sewalk

1980年代前後の初期のコンピュータのほとんどはIOチップに一種のオペレーティングシステム(ハードウェアドライバ、ROMサポート、プログラムロード、非常に単純なコマンドラインインタフェースなど)を持っていました。 RAMチップが動作不能であっても、多少機能する可能性があります。この機能は、ハードウェアテストを実行し、主にビープ音とキーボードライトを介して通信するように設計された特別なROMコンテンツバージョンで使用されていました。

CPUは少なくとも実行されているコマンドのアドレスを記憶するためにいくつかのレジスタを持っていますが、これらは通常RAMと呼ばれていません。

通常のCコードは、変数を割り当てるためにスタックメモリを使用し、スタックがRAMにあるため、RAMがないとシステムで実行できません。最近のコンピュータが起動すると、RAMリフレッシュデバイスは正常に動作するために初期設定が必要になるため、通常は動的なRAMを使用できません。アセンブリコードが最初に実行され、マザーボードの初期化を実行します。 RAMが機能し始め、Cコードを実行できます。

5
h22

私が1967年に大学に行ったとき、コンピューティング部門は Stantec Zebra を持っていました。メモリは8192ワードの磁気ドラムで構成されていました。 12個のレジスタと2個のアキュムレータもありました。あなたはRAMと考えるかもしれませんが、我々がそれを知っているようにではありません。

4
David Marshall

CPU実行ユニットが機能するためには、少なくともレジスタ用のオンチップキャッシュ(基本的には非常に少量のオンチップRAM)が必要です。だからあなたのCPUでも 'RAM'があります。

どのようなフォンノイマンOSも、私が信じるメモリを必要とせずに設計されています。

いいえ、違います。

3
Hi Lo

ここにいる他のすべての人々と同じように、私はあなたがRAMを必要とし、それなしでは働けないという事実に同意します、しかし私はまた以下を読みます:

(私はもともとRAMが悪くなったかどうかをチェックするためにRAMのないOSをロードしたいと思っていましたが、私はこの質問がうまくいかなかった方法が好きです。)

これは実際にはBIOSに存在し、RAMを詳細にチェックする機能があります。起動してBIOS内に入るときは、オプション "Quick Power-on self test"をオフに変更してください。そうすれば、あなたのRAMを完全にチェックすることになります。このオプションは、AMI BIOSの2番目の選択肢のような「高度なBIOS機能」にあります。

それがあなたに一歩先を行くことを願っています。 ;-)

3
Olivier M.

needRAMを使用しないでください。たとえば、 Turing machine を使用してください。

チューリング機械は、規則の表に従ってテープのストリップ上の記号を操作する仮想装置です。その単純さにもかかわらず、チューリング機械は任意のコンピュータアルゴリズムの論理をシミュレートするように適合させることができ、そしてコンピュータ内部のCPUの機能を説明するのに特に有用である。

(テープをRAMとは見なしません。)

これであなたの本当の質問は「役に立つ」について尋ねるべきであり、「役に立つ」であなたが何を意味するのかを定義するべきです。

3
Ian Ringrose

ROM(読み取り専用メモリ)をすべて使い尽くす組み込み用途向けの特殊なOSがあります。ただし、便利なことをするためには、通常少なくとも少量のRAMが必要です。 RAMがなくても起動するPCを見たことはありません。

メモリテストについての最初の質問に関しては、コンピュータがPOST(つまり、電源投入時セルフテストを通過して起動しようとする)になる場合は、Memtest86は特にRAMのテスト用に設計されています。 RAMの最初の64KBをテストし、自分自身をそのRAMにロードしてから、システムメモリの残りの部分を必要なだけ徹底的にテストします。 "Flakey"メモリは(普通の悪いメモリとは対照的に)めったにありませんが、Memtest86が断続的に悪いビットをキャッチしてコンピュータのメモリテストが失敗するのを見ました(結局、POSTメモリテストは完了を意味します)もっとも合理的な時間で、memtest86の最速テストは5〜10分で実行されますが、より包括的なテストでは数時間かかります。)

3
user153822

はい、あなたはRAMなしでコンピュータを持つことができます。ほとんどのx86プロセッサには、キャッシュのみで実行できる特別なモードがあります。あなたがcoreboot(以前のlinuxbios)をチェックすれば、それはそれをすることができます。これはcache-as-ramと呼ばれます。実際にこれに基づいてオペレーティングシステム全体を実行することができます、そして現代の大きなサイズのキャッシュでそれはgui(check menuet-os)さえ持つことになるかもしれません。しかし、まだ何もしていません。

1
Jorge Aldo