È possibile portare Linux su Teensy 4.1?
"Linux" generalmente richiede il "memory paging" - la capacità di mappare pezzi di memoria "da qualche parte" (e forse sparsi) nella memoria fisica in uno spazio di memoria contiguo che le applicazioni utente vedono. I chip ARM Cortex-M non hanno questa funzionalità, nemmeno nei grandi e veloci chip Cortex M7 usati sul Teensy 4.x Avete bisogno di un chip Cortex-A (o forse di un sistema di memoria esterno di fantasia.)
Quindi non puoi far girare Linux direttamente su nessun microcontrollore Cortex-M.
Alcuni chip PIC32 (basati su una CPU MIPS) hanno una MMU primitiva (Mapping, ma senza paginazione, IIRC), e questo permette ad alcuni dei sistemi operativi unix-like più primitivi di funzionare. 2.10BSD, per esempio.
(Ma per favore non facciamo finta che ciò che la gente intende oggi per "Linux" abbia molte somiglianze con PDP11 unix, o con 2.10BSD, o anche con uno dei due sistemi operativi più primitivi.10BSD, o anche a una delle minuscole versioni linux stripped-down come tomsrtbt (che richiede circa 8MB di RAM)...)
BSD Unix su microcontrollore PIC32BSD Unix su microcontrollore PIC32 RetroBSD è un port UNIX che gira sul microcontrollore PIC32: il sistema è rivolto a un mercato di piccoli sistemi embedded. Le caratteristiche principali includono: Piccoli requisiti di risorse: RetroBSD richiede solo 128 kbyte di RAM per essere attivo e far girare le applicazioni utente. Protezione della memoria: Utilizzando meccanismi hardware, la memoria del kernel è completamente protetta dall'applicazione utente. Funzionalità aperta: Di solito, un'applicazione utente è fissata nella memoria Flash, ma nel caso di RetroBSD, qualsiasi numero di applicazioni può essere inserito nella scheda SD, ed eseguito come richiesto. Multitasking reale: Le API POSIX standard sono implementate (fork, exec, wait4 ecc.). Sistema di sviluppo a bordo: È possibile avere un compilatore C nel sistema, e ricompilare l'applicazione utente (o l'intero sistema operativo) quando necessario. Posted by Ian August 19, 2011 August 19, 2011 Posted in PIC Tags: microcontrollore , PIC32http://dangerousprototypes.com/blog/2011/08/19/bsd-unix-on-pic32-microcontroller/ Unità di gestione della memoria - WikipediaHardware che traduce gli indirizzi virtuali in indirizzi fisici Un'unità di gestione della memoria ( MMU ), a volte chiamata unità di gestione della memoria paginata ( PMMU ), è un'unità hardware del computer che ha tutti i riferimenti di memoria passati attraverso se stessa, eseguendo principalmente la traduzione degli indirizzi di memoria virtuale in indirizzi fisici . Una MMU esegue effettivamente la gestione della memoria virtuale, gestendo allo stesso tempo la protezione della memoria, il controllo della cache, l'arbitrato del bus e, nelle architetture di computer più semplici (soprattutto sistemi a 8 bit), la commutazione di banco. Panoramica [ modifica ] Schema del funzionamento di una MMU [1] : 186 ff. Le moderne MMU tipicamente dividono lo spazio di indirizzamento virtuale (la gamma di indirizzi usati dal processore) in pagine, ognuna delle quali ha una dimensione che è una potenza di 2, di solito qualche kilobyte, ma possono essere molto più grandi. I bit inferiori dell'indirizzo (l'offset all'interno di una pagina) sono lasciati invariati. I bit superiori dell'indirizzo sono i numeri di pagina virtuali. [La maggior parte delle MMU usano una tabella in-memoria di elementi chiamata "tabella di pagina", contenente una "voce di tabella di pagina" (PTE) per pagina, per mappare i numeri di pagina virtuale ai numeri di pagina fisica nella memoria principale. Una cache associativa di PTE è chiamata translation lookaside buffer (TLB) ed è usata per evitare la necessità di accedere alla memoria principale ogni volta che viene mappato un indirizzo virtuale. Altre MMU possono avere un array privato di memoria [3] o registri che contengono un insieme di voci della tabella delle pagine. Il numero di pagina fisica è combinato con l'offset di pagina per dare l'indirizzo fisico completo. [2] Un PTE può anche includere informazioni sul fatto che la pagina sia stata scritta (il "dirty bit"), quando è stata usata l'ultima volta (il "accessed bit", per un algoritmo di sostituzione delle pagine LRU (least recently used)), che tipo di processi (modalità utente o supervisore) possono leggerla e scriverla, e se deve essere messa in cache. A volte, un PTE proibisce l'accesso a una pagina virtuale, forse perché nessuna memoria fisica ad accesso casuale (RAM) è stata allocata a quella pagina virtuale. In questo caso, la MMU segnala un page fault alla CPU. Il sistema operativo (OS) gestisce quindi la situazione, forse cercando di trovare un frame libero di RAM e impostare un nuovo PTE per mapparlo all'indirizzo virtuale richiesto. Se non c'è RAM libera, può essere necessario scegliere una pagina esistente (conosciuta come "vittima"), usando qualche algoritmo di sostituzione, e salvarla su disco (un processo chiamato "paginazione"). Con alcune MMU, ci può anche essere una carenza di PTE, nel qual caso il SO dovrà liberarne una per la nuova mappatura. [2] La MMU può anche generare condizioni di errore di accesso illegale o errori di pagina non validi su accessi di memoria illegali o inesistenti, rispettivamente, portando a condizioni di errore di segmentazione o di bus quando gestiti dal sistema operativo. Vantaggi [ modifica ] In alcuni casi, un errore di pagina può indicare un bug del software, che può essere impedito utilizzando la protezione della memoria come uno dei vantaggi chiave di un MMU: un sistema operativo può utilizzare per proteggere contro i programmi erranti bhttps://en.wikipedia.org/wiki/Memory_management_unitArticoli simili
- È possibile installare playstore sulla smart TV basata su Linux? O almeno le app basate su Linux usando l'USB?
- I dipendenti Microsoft usano Linux? Cosa può fare Linux che Windows non può fare?
- Qual è la differenza tra Linux RPM e Linux DEB?
- Chrome OS è davvero basato sul kernel Linux? Se sì, perché non può eseguire programmi Linux?