web-dev-qa-db-fra.com

Est-ce que chaque OS a besoin de RAM?

Existe-t-il un système d'exploitation qui peut être utilisé sans RAM, en particulier le type pour lequel je peux créer une clé USB amorçable et l'utiliser dans l'ordinateur? Cela devient délicat, car le démarrage consiste essentiellement à charger le système d'exploitation dans la RAM.

Remarque: Je voulais à l'origine connaître le système d'exploitation sans RAM pour vérifier si mon ordinateur portable (qui ne démarre pas mais affiche un écran vide) RAM avait mal tourné, mais j'aime bien la façon dont cela fonctionne la question a fait boule de neige.

76
Suvarna Pattayil

Est-ce que chaque système d'exploitation a besoin de RAM?
Pour le matériel compatible IBM PC, une étape obligatoire du processus BIOS POST consiste à vérifier s'il existe RAM pour charger le BIOS. Facultativement, le POST processus vérifie correctement votre RAM. Après le processus POST, le BIOS charge le chargeur de démarrage sur le RAM et lui donne le contrôle. Donc, la réponse à votre question ("Chaque système d'exploitation a-t-il besoin de RAM?") Est: oui, tout matériel compatible avec un PC IBM nécessite au moins un certain fonctionnement de RAM en état de fonctionnement. Cela est vrai pour tout système d'exploitation qui s'exécute sur ce matériel.

Notez que dans la question initiale du PO, il était fait référence à un "ordinateur portable", ce que j’ai interprété comme étant: du matériel compatible IBM PC. Pour le reste de cette réponse, nous supposerons le matériel compatible IBM PC.

Un système d'exploitation peut-il démarrer avec une RAM défectueuse?
Si votre RAM est défectueux (et pas entièrement absent/cassé) ou si vous pouvez (partiellement) remplacer votre RAM, vous pourrez peut-être démarrer à l'aide de la commande BadRAM = de BadMEM correctifs du noyau. Cela vous oblige à recompiler le noyau (cela semble plus facile que si vous le faites pour la première fois) et vous pouvez redémarrer et indiquer au noyau où se trouve votre mauvaise mémoire. Une bonne explication de l'utilisation de Memtest86 / Memtest86 + , BadRAM/BadMEM peut être trouvé ici .

Un système d'exploitation peut-il démarrer sans RAM et utiliser le cache du processeur en tant que RAM?
Autant que je sache, il n’ya aucun moyen d’utiliser le cache de votre CPU en tant que RAM sans aucun RAM sur votre système (comme suggéré par @philipp et autres) dans les commentaires. Si c'est le cas, il serait bien de l'ajouter ici. Le seul document que j’ai trouvé sur ce sujet est ce document et indique: "Utiliser le cache du processeur comme RAM jusqu'à ce que le RAM soit initialisé". Pas sûr si (et comment) cela fonctionnera sans RAM. Autant que je sache, il n'y a pas de code de travail permettant de démarrer un système d'exploitation sur un PC compatible IBM. Toute référence à des preuves de concept, un code de travail ou quoi que ce soit est la bienvenue dans les commentaires et je l’ajouterai à cette réponse.

Puis-je accéder au BIOS?
La question de l'OP est un peu vague si l'ordinateur portable est capable de réussir le POST du BIOS. Comme @Tonny le fait remarquer, no OS vous aidera à " accéder au BIOS ". Vous entrez dans le BIOS en utilisant le F1 ou F2 ou F10 ou DEL ou ESC clé, en fonction de votre marque de BIOS.

Comment récupérer des données de l'ordinateur portable sans RAM?
En ce qui concerne l'objectif de votre question: pourquoi avez-vous besoin d'un accès à votre ordinateur portable? Probablement parce qu'il y a encore des données sur le disque dur que vous voulez récupérer? Si tel est le cas, il est beaucoup plus facile de retirer le disque dur (voir le manuel) et de le connecter à un périphérique de stockage externe ou directement à un PC. Here est un bon guide pour faire exactement cela.

96
agtoever

C'est possible en théorie , mais ce serait très lent, car il faudrait utiliser le disque pour tout stockage temporaire ne rentrant pas dans les caches du processeur. (Les processeurs ont quelques mégaoctets de cache, car même RAM est trop lent pour eux. Pensez-y.) Vous auriez donc besoin d'un système d'exploitation plutôt petit.

(Eh bien, les systèmes embarqués can exécutent le code de la mémoire RAM ou de la mémoire flash interne - le BIOS du PC pourrait en principe faire de même, mais il ne peut pas exécuter tout le processus. OS.)

Mais, autre chose, le BIOS exécute before et outside n’importe quel système d’exploitation installé, et c’est le BIOS qui vous permet de démarrer à partir d’une clé USB ou autre. Donc, si vous ne pouvez pas accéder au BIOS, alors no un autre système d'exploitation du monde vous aidera.

33
grawity

Vous pourriez, moyennant quelques efforts, concevoir un système ne contenant pas de RAM. Chargez votre logiciel à partir de ROM (ou stockage) et faites tout dans des registres ou sur le cache. Un tel système aurait une utilisation exceptionnellement étroite et, compte tenu du RAM prix actuel, il serait un peu inutile. Un ordinateur portable standard ne fonctionnera pas sans une mémoire interne.

Votre vraie question est plus probablement "Comment puis-je obtenir des informations sur un ordinateur qui ne démarre pas" et c'est facile. Démontez-le, retirez le lecteur et connectez-le à un boîtier de lecteur externe.

Notez, cependant, que tout ordinateur assez ancien pour que vous ne puissiez pas obtenir 20 € de travail RAM, car il disposera d’un lecteur ATA (ATA normal, et non SATA). Cette interface est presque éteinte aujourd'hui, vous devrez donc également trouver un boîtier de lecteur avec une carte ATA ainsi qu'un adaptateur pleine taille pour ordinateur portable. J'en ai acheté un en 2000 et je conserve quelques vieux boîtiers uniquement à cette fin.

15
peter

Si je lis correctement la question, tout le monde est en train d'aboyer le mauvais arbre.

Il déclare explicitement "pour accéder au BIOS".

Si l'ordinateur portable est tellement en panne qu'il n'entre même pas dans le BIOS, tout le reste est inutile.

Vous ne pouvez démarrer aucun système d'exploitation sur celui-ci, quelle que soit la situation RAM.

10
Tonny

Votre hypothèse selon laquelle la mémoire est mauvaise est probablement invalide. Si vous n'obtenez aucun bip ni message à l'écran, la cause principale est probablement un processeur en panne (peu probable) ou une carte mère en panne (très probablement). Les cartes mères échouent constamment avec l’âge en raison des joints de soudure à froid, qui étaient monnaie courante dans les premiers jours du mouvement ROHS et de la nécessité d’utiliser une soudure sans plomb. Les techniques de fabrication avaient été optimisées pour l'utilisation de soudure à base de plomb et l'industrie a mis du temps à comprendre et à résoudre les problèmes. De nombreux fabricants de composants n'étaient pas très disposés à dépenser de l'argent pour améliorer leurs processus. Après tout, les appareils seraient testés et graveraient parfaitement, mais échoueraient des mois, voire des années plus tard, après l'expiration de la garantie. Ce n’est qu’avec une montagne d’échecs croissante et des retours négatifs intenses des utilisateurs que les fabricants ont commencé à améliorer les choses. Sur un tel ordinateur portable, le coût de la redistribution de la carte mère pour rectifier les joints de soudure à froid est presque certainement prohibitif.

8
sewalk

La plupart des premiers ordinateurs des années 1980 ou à peu près avaient un système d'exploitation (pilotes matériels, support IO, chargement du programme, interface de ligne de commande très simple, etc.) dans la puce ROM. Il pourrait en quelque sorte fonctionner même si RAM puces étaient inutilisables. Cette fonctionnalité était utilisée dans les versions de contenu spéciales ROM conçues pour l'exécution de tests de matériel et communiquant principalement par le biais de voyants et de témoins.

La CPU dispose de plusieurs registres pour mémoriser au moins l'adresse de la commande en cours d'exécution, mais ces registres ne sont généralement pas appelés RAM.

Le code C standard ne peut pas être exécuté sur un système sans RAM car il utilise la mémoire de pile pour allouer des variables et que la pile est dans la RAM. Lorsqu'un ordinateur récent démarre, un RAM dynamique normal n'est pas disponible au départ car RAM le périphérique d'actualisation a besoin de la configuration initiale pour fonctionner. Le code d'assemblage s'exécute en premier et effectue l'initialisation de la carte mère. RAM commence à fonctionner, puis le code C peut être exécuté.

5
h22

Quand je suis allé à l'université en 1967, le département d'informatique avait un Stantec Zebra . La mémoire consistait en un tambour magnétique de 8192 mots. Il y avait également 12 registres et deux accumulateurs. Vous pourriez considérer que RAM mais pas tel que nous le connaissons.

4
David Marshall

Il vous faudrait au moins sur la mémoire cache de la puce des registres (essentiellement une très petite quantité de RAM sur la puce) pour que l'unité d'exécution de la CPU puisse fonctionner. Donc, même votre processeur dispose de «RAM».

Aucun OS Von-Neumann n'a été conçu sans l'exigence de mémoire, je crois.

Donc non.

3
Hi Lo

Comme toutes les autres personnes ici présentes, je suis d’accord sur le fait que vous n’avez pas besoin de RAM et je ne peux pas m'en passer, mais je lis également ce qui suit:

(À l'origine, je voulais charger un système d'exploitation dépourvu de RAM pour vérifier si la RAM avait mal tourné, mais j'aime la façon dont cette question a fait boule de neige.)

Cela existe réellement dans le BIOS, il existe une fonction pour vérifier le RAM en profondeur. Lorsque vous démarrez et entrez dans le BIOS, désactivez l'option "Auto-test de démarrage rapide" et effectuez une vérification complète de votre RAM. Cette option devrait être située dans les "fonctionnalités avancées du BIOS", quelque chose comme un second choix sur les BIOS AMI.

J'espère que cela vous mettra un peu plus loin. ;-)

3
Olivier M.

Vous n'avez pas besoin RAM par exemple, utilisez une machine Turing .

Une machine de Turing est un dispositif hypothétique qui manipule des symboles sur une bande de ruban conformément à un tableau de règles. Malgré sa simplicité, une machine de Turing peut être adaptée pour simuler la logique de tout algorithme informatique. Elle est particulièrement utile pour expliquer les fonctions d’une CPU dans un ordinateur.

(Je ne considérerais pas une bande comme étant de la RAM.)

Maintenant, vos vraies questions devraient porter sur «utile» et définir ce que vous entendez par «utile» .

3
Ian Ringrose

Il existe des systèmes d’exploitation spécialisés pour une utilisation intégrée qui fonctionnent entièrement à partir de ROM (mémoire en lecture seule). Toutefois, pour effectuer quoi que ce soit d’utile, vous avez généralement besoin d’au moins une petite quantité de RAM. Je n'ai pas vu de PC capable de démarrer sans RAM.

En ce qui concerne la question initiale relative à un test de mémoire, si l’ordinateur POST (c’est-à-dire passer l’autotest à la mise sous tension et tenter de démarrer), Memtest86 est spécialement conçu pour tester votre RAM. Il teste les 64 premiers Ko de RAM, se charge dans cette RAM, puis teste le reste de la mémoire de votre système aussi complètement que vous le souhaitez. La mémoire "floconneuse" (par opposition à une mémoire simplement mauvaise) est rare, mais j'ai vu Memtest86 intercepter un bit de manière intermittente que le test de la mémoire de l'ordinateur avait raté (après tout, le test de mémoire POST est censé se terminer Dans un délai raisonnable, le test le plus rapide de memtest86 dure entre 5 et 10 minutes, et des tests plus complets prennent des heures.)

3
user153822

Oui, vous pouvez avoir un ordinateur sans RAM. Il existe un mode spécial dans la plupart des processeurs x86 qui permet de l'exécuter avec le cache uniquement. Si vous vérifiez le coreboot (ancien linuxbios), il peut le faire. Son appelé cache-as-ram. En fait, vous pouvez créer tout un système d’exploitation basé sur cela, et avec les caches modernes de grande taille, il pourrait même avoir un gui (voir menuet-os). Mais personne ne l'a encore fait.

1
Jorge Aldo