Est-il possible d'utiliser ubuntu sans ram du tout?

15

Si je règle la valeur de swappiness à 100 et essaie de démarrer le disque dur installé ubuntu sur l'ordinateur de mon ami qui n'a pas de RAM, puis-je démarrer l'ordinateur sans Ram du tout?

pio123498765
la source
31
Que voulez-vous dire que l'ordinateur de votre ami n'a pas de RAM? Êtes-vous sûr que c'est un ordinateur?
terdon
5
@terdon C'est une théière .
cat

Réponses:

47

Non. Le CPU ne peut pas exécuter de code à partir du swap. L'échange fonctionne en déplaçant le contenu de la RAM vers le disque et d'autres contenus du disque vers la RAM, mais l'exécution se fait toujours à partir de la RAM.

Et non, il n'y a aucun moyen de transférer du code ou des données du disque directement vers les caches CPU. Vous ne pouvez pas contourner la RAM.

Même les architectures de microcontrôleurs qui peuvent exécuter du code directement à partir de la mémoire flash NOR nécessitent de la RAM pour la pile, au moins une partie de la SRAM intégrée comme certains contrôleurs.

Philippos
la source
1
@ LưuVĩnhPhúc Vous avez raison. Je suis toujours habitué à appeler ces SoC avec des cœurs ARM Cortex-A "microcontrôleurs", bien que cela puisse être trompeur. Ceux-ci ont une MMU, peuvent exécuter Linux et ont généralement aussi cette SRAM interne (nécessaire pour le code de démarrage), mais je ne pense pas que ceux-ci puissent exécuter du code directement à partir de Flash. Eh bien, l'OP semble penser à un PC ordinaire de toute façon.
Philippos
1
Je pense que S390 Linux peut exécuter du code directement depuis le disque dur. La fonctionnalité a été ajoutée car le S390 est une architecture 31 bits, et rendre chaque octet disponible pour les données au lieu du code est une victoire. Je me souviens peut-être mal, mais l'ensemble de correctifs était mémorable, car il avait la distinction unique d'être utile à la fois pour les ordinateurs centraux et les microcontrôleurs (c'est-à-dire les deux extrémités extrêmes de la mise à l'échelle Linux), mais sans intérêt pour quoi que ce soit entre les deux.
Jörg W Mittag
2
Ah, je l'ai trouvé, c'est la fonction XIP (eXecute In Place). De toute évidence, vous avez toujours besoin de RAM pour les données. Il s'agit uniquement de code.
Jörg W Mittag
1
@rackandboneman En tant que développeur embarqué, j'ai tout fait, de l'assembleur nu sur des contrôleurs 8 bits sur RTOS au Linux embarqué. Le moins de mémoire que j'ai rencontré était un ATtiny avec de la mémoire pour une pile d'adresses à trois retours. Sans cela, vous ne pourriez même pas avoir d'interruptions! Maintenant, s'il vous plaît, ne discutez pas si cette mémoire de pile est un ram ou des registres ... (-:
Philippos
1
@Philippos pourquoi dirais-je - NOUS parlons de la même chose.
rackandboneman
7

/electronics//a/311839/111920 contient le lien http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2 qui décrit le processus de démarrage d'un processeur Intel moderne dans des détails atroces.

TL; DR: Non. Il y a en effet une phase lors du démarrage où les puces RAM ne sont pas utilisées, et le processeur fonctionne avec uniquement son cache interne fonctionnant comme RAM de fortune. Mais c'est très tôt dans le processus de chargement du BIOS et l'une des premières choses que fait le BIOS est d'initialiser la RAM, pour pouvoir l'utiliser. Le code machine qui y fonctionne est très spécialisé, très artisanal.

Après cette étape très précoce, la RAM est nécessaire pour tout. Cela signifie que vous ne pourrez même pas accéder au BIOS, obtenir un signal vidéo ou encore moins démarrer à partir de n'importe quel support, sans RAM.

AnoE
la source