È possibile usare Ubuntu senza ram?


Risposte:


47

No. La CPU non può eseguire il codice dallo swap. Lo scambio funziona spostando i contenuti della RAM sul disco e altri contenuti del disco nella RAM, ma l'esecuzione avviene sempre dalla RAM.

E no, non c'è modo di trasferire codice o dati dal disco direttamente nella cache della CPU. Non puoi bypassare la RAM.

Anche le architetture di microcontrollori che possono eseguire il codice direttamente dal flash NOR hanno bisogno di RAM per lo stack, almeno un po 'di SRAM integrata come alcuni controller.


1
@ LưuVĩnhPhúc Hai ragione. Sono ancora abituato a chiamare quei SoC con core ARM Cortex-A "microcontrollori", anche se questo può essere fuorviante. Quelli hanno una MMU, possono eseguire Linux e in genere hanno anche quella SRAM interna (necessaria per il codice di avvio), ma non credo che possano eseguire il codice direttamente da Flash. Bene, comunque l'OP sembra pensare a un normale PC.
Philippos,

1
Penso che S390 Linux possa eseguire il codice direttamente dall'HDD. La funzione è stata aggiunta perché l'S390 è un'architettura a 31 bit e rendere ogni byte disponibile per i dati anziché per il codice è una vittoria. Potrei essere in errore, però, ma il set di patch era memorabile, perché aveva l'eccezionale distinzione di essere prezioso sia per i mainframe che per i microcontrollori (cioè le due estremità estreme del ridimensionamento di Linux) ma senza alcun interesse per nulla in mezzo.
Jörg W Mittag,

2
Ah, l'ho trovata, è la funzione XIP (eXecute In Place). Ovviamente, hai ancora bisogno di RAM per i dati. Si tratta solo di codice.
Jörg W Mittag,

1
@rackandboneman Come sviluppatore incorporato, ho fatto di tutto, dall'assemblatore nudo su controller a 8 bit su RTOS a Linux incorporato. Il minimo ricordo che ho incontrato è stato un ATtiny con memoria per uno stack di tre indirizzi di ritorno. Senza quello, non potresti nemmeno avere interruzioni! Ora per favore non discutere se questa memoria dello stack è ram o registri ... (-:
Philippos

1
@Philippos perché dovrei discutere - Stiamo parlando della stessa cosa.
rackandboneman,

7

/electronics//a/311839/111920 contiene il link http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2 che descrive il processo di avvio di una moderna CPU Intel in modo estremamente dettagliato.

TL; DR: No. Durante l'avvio non c'è davvero una fase in cui i chip RAM non vengono utilizzati e il processore è in esecuzione con solo la sua cache interna che funziona come RAM di fortuna. Ma questo è molto presto nel processo di caricamento del BIOS e una delle prime cose che il BIOS fa è inizializzare la RAM, per poterla utilizzare. Il codice macchina in esecuzione è molto specializzato, molto artigianale.

Dopo quella fase molto precoce, la RAM è necessaria per tutto. Ciò significa che non sarai nemmeno in grado di accedere al BIOS, ottenere un segnale video o molto meno avvio da qualsiasi supporto, senza RAM.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.