L'uso della memoria flash per eseguire un sistema desktop, come Windows, è stato sconsigliato per un bel po 'di tempo. Ma cosa lo ha reso un'opzione desiderabile e praticabile per i dispositivi mobili? Il post di domande e risposte di SuperUser di oggi contiene la risposta alla domanda di un lettore curioso.
La sessione di domande e risposte di oggi ci arriva per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento guidato dalla comunità di siti web di domande e risposte.
La domanda
Il lettore SuperUser RockPaperLizard vuole sapere cosa rende la memoria flash eMMC utilizzabile nei dispositivi mobili, ma non nei PC:
Da quando sono state inventate le unità flash USB, le persone si sono chieste se potevano far funzionare i loro sistemi operativi su di esse. La risposta era sempre "no" perché il numero di scritture richieste da un sistema operativo le avrebbe consumate rapidamente.
Man mano che gli SSD sono diventati più popolari, la tecnologia di livellamento dell'usura è migliorata per consentire ai sistemi operativi di funzionare su di essi. Vari tablet, netbook e altri computer slim utilizzano la memoria flash invece di un disco rigido o SSD e il sistema operativo è memorizzato su di essa.
Come è diventato improvvisamente pratico? Ad esempio, implementano in genere tecnologie di livellamento dell'usura?
Cosa rende la memoria flash eMMC utilizzabile nei dispositivi mobili, ma non nei PC?
La risposta
I collaboratori di SuperUser Speeddymon e Journeyman Geek hanno la risposta per noi. Il primo, Speeddymon:
Tutti i dispositivi di memoria flash, dai tablet ai telefoni cellulari, smartwatch, SSD, schede SD nelle fotocamere e chiavette USB utilizzano la tecnologia NVRAM. La differenza sta nell'architettura NVRAM e nel modo in cui il sistema operativo monta il file system su qualunque supporto di memorizzazione si trovi.
Per tablet e telefoni cellulari Android, la tecnologia NVRAM è basata su eMMC. I dati che posso trovare su questa tecnologia suggeriscono tra 3k e 10k cicli di scrittura. Sfortunatamente, niente di ciò che ho trovato finora è definitivo, poiché Wikipedia è vuota sui cicli di scrittura di questa tecnologia. Tutti gli altri posti che ho visto erano vari forum, quindi difficilmente quella che chiamerei una fonte affidabile.
Per fare un confronto, i cicli di scrittura su altre tecnologie NVRAM come gli SSD, che utilizzano la tecnologia NAND o NOR, sono compresi tra 10k e 30k.
Ora, per quanto riguarda la scelta del sistema operativo su come montare il file system. Non posso parlare di come lo fa Apple, ma per Android, il chip è partizionato come sarebbe un disco rigido. Hai una partizione del sistema operativo, una partizione dati e molte altre partizioni proprietarie a seconda del produttore del dispositivo.
La partizione di root reale risiede all'interno del bootloader, che è raggruppato come file compresso (jffs2, cramfs, ecc.) Insieme al kernel, in modo che quando l'avvio della fase 1 del dispositivo è completo (di solito la schermata del logo del produttore), allora il kernel si avvia e la partizione di root viene montata contemporaneamente come disco RAM.
Quando il sistema operativo si avvia, monta il file system della partizione primaria (/ system, che è jffs2 sui dispositivi precedenti ad Android 4.0, ext2 / 3/4 sui dispositivi a partire da Android 4.0 e xfs sui dispositivi più recenti) come di sola lettura quindi che nessun dato può essere scritto su di esso. Questo può, ovviamente, essere aggirato dal cosiddetto "rooting" del tuo dispositivo, che ti dà accesso come super utente e ti permette di rimontare la partizione in lettura / scrittura. I tuoi dati "utente" vengono scritti su una partizione diversa sul chip (/ data, che segue la stessa convenzione di cui sopra in base alla versione Android).
Con sempre più telefoni cellulari che abbandonano gli slot per schede SD, potresti pensare che raggiungerai il limite del ciclo di scrittura prima perché tutti i tuoi dati vengono ora salvati nella memoria eMMC invece che su una scheda SD. Fortunatamente, la maggior parte dei file system rileva una scrittura non riuscita in una determinata area di archiviazione. Se una scrittura non riesce, i dati vengono salvati silenziosamente in una nuova area di archiviazione e l'area danneggiata (nota come blocco danneggiato) viene isolata dal driver del file system in modo che i dati non vengano più scritti lì in futuro. Se una lettura non riesce, i dati vengono contrassegnati come danneggiati e all'utente viene chiesto di eseguire un controllo del file system (o di un controllo del disco), oppure il dispositivo controlla automaticamente il file system durante l'avvio successivo.
È un dato di fatto, Google ha un brevetto per rilevare e gestire automaticamente i blocchi danneggiati: Gestione dei blocchi danneggiati nella memoria flash per la scheda flash elettronica dei dati
Per arrivare più al punto, la tua domanda su come questo sia diventato improvvisamente pratico non è la domanda giusta da porre. Non è mai stato poco pratico in primo luogo. È stato fortemente sconsigliato l'installazione di un sistema operativo (Windows) su un SSD (presumibilmente) a causa del numero di scritture che esegue su un disco.
Ad esempio, il registro riceve letteralmente centinaia di letture e scritture al secondo, che possono essere visualizzate con l'estensione Strumento Regmon Microsoft-SysInternals .
L'installazione di Windows è stata sconsigliata su SSD di prima generazione perché con la mancanza di livellamento dell'usura, i dati scritti nel registro ogni secondo (probabilmente) alla fine hanno raggiunto i primi utenti e hanno portato a sistemi non avviabili a causa della corruzione del registro.
Con tablet, telefoni cellulari e praticamente qualsiasi altro dispositivo incorporato, non esiste un registro (i dispositivi Windows Embedded fanno eccezione, ovviamente) e quindi non c'è da preoccuparsi che i dati vengano scritti costantemente sulle stesse parti del supporto flash.
Per i dispositivi Windows Embedded, come molti dei chioschi che si trovano in luoghi pubblici (come Walmart, Kroger, ecc.) Dove di tanto in tanto potresti vedere un BSOD casuale, non c'è molta configurazione che può essere eseguita poiché sono pre-progettati con configurazioni destinate a non cambiare mai. Nella maggior parte dei casi, l'unica volta che le modifiche avvengono è prima che il chip venga scritto. Tutto ciò che deve essere salvato, come il pagamento al negozio di alimentari, viene effettuato tramite la rete nei database del negozio su un server.
Seguito dalla risposta di Journeyman Geek:
La risposta era sempre "no" perché il numero di scritture richieste da un sistema operativo le avrebbe consumate rapidamente.
Alla fine sono diventati convenienti per l'uso tradizionale. Quella "usura" è l'unica preoccupazione è un po 'un'ipotesi. Ci sono stati sistemi che hanno eseguito la memoria a stato solido per un periodo di tempo considerevole. Molte persone che costruivano macchine per auto avviarono con schede CF (che erano elettricamente compatibili con PATA e facili da installare rispetto ai dischi rigidi PATA) e i computer industriali avevano una memoria flash piccola e robusta.
Detto questo, non c'erano molte opzioni per la persona media. È possibile acquistare una costosa scheda CF e un adattatore per un laptop o trovare un minuscolo disco industriale molto costoso su un'unità modulo per un desktop. Non erano molto grandi rispetto ai dischi rigidi contemporanei (i DOM IDE moderni superano 8 GB o 16 GB credo). Sono abbastanza sicuro che avresti potuto ottenere unità di sistema a stato solido configurate molto prima che gli SSD standard diventassero comuni.
Non ci sono stati davvero miglioramenti universali / magici nel livellamento dell'usura per quanto ne so. Ci sono stati miglioramenti incrementali mentre ci siamo spostati dal costoso SLC a MLC, TLC e persino QLC insieme a dimensioni di processo più piccole (tutte a basso costo con un maggior rischio di usura). Flash è diventato molto più economico.
C'erano anche alcune alternative che non presentavano problemi di usura. Ad esempio, eseguendo l'intero sistema su una ROM (che è probabilmente una memoria a stato solido) e una RAM supportata da batteria, utilizzata da molti dei primi SSD e dispositivi portatili come il Palm Pilot. Nessuno di questi è comune oggi. I dischi rigidi oscillavano rispetto a dire, RAM con batteria (troppo costosa), primi dispositivi a stato solido (un po 'costosi) o contadini con le bandiere (mai preso piede a causa della terribile densità dei dati). Anche la moderna memoria flash è un file discendente di eeprom a cancellazione rapida e le eeprom sono state utilizzate nei dispositivi elettronici per l'archiviazione di cose come il firmware per secoli.
I dischi rigidi si trovavano semplicemente in una bella intersezione tra volume elevato (che è importante), basso costo e spazio di archiviazione relativamente sufficiente.
Il motivo per cui trovi le eMMC nei moderni computer di fascia bassa è che i componenti sono relativamente economici, abbastanza grandi (per i sistemi operativi desktop) a quel costo e condividono elementi comuni con i componenti dei telefoni cellulari, quindi sono prodotti in blocco con un'interfaccia standard. Offrono anche una grande densità di archiviazione per il loro volume. Considerando che molte di queste macchine hanno un misero disco da 32 GB o 64 GB, alla pari con i dischi rigidi della parte migliore di un decennio fa, sono un'opzione sensata in questo ruolo.
Stiamo finalmente raggiungendo il punto in cui è possibile archiviare una quantità ragionevole di memoria in modo economico e con velocità ragionevoli su eMMC e flash, motivo per cui le persone li scelgono.
Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere altre risposte da altri utenti esperti di tecnologia Stack Exchange? Dai un'occhiata al thread di discussione completo qui .
Credito immagine: Martin Voltri (Flickr)