Lo scorso semestre sono stato abbastanza fortunato da frequentare la CPSC 508 con il meraviglioso Margo Seltzer. CPSC 508 (per chiunque non vada a UBC) è un corso di sistemi operativi della laurea specialistica/magistrale, e come parte di questo corso siamo stati tutti incaricati di lavorare su un argomento di ricerca di nostra scelta.
Per il nostro progetto, il mio gruppo ha deciso che avremmo fatto alcune ricerche che richiedevano due cose:
- emulare memoria persistente
- cambiare la dimensione della pagina della memoria persistente emulata
A prima vista, non pensavo che nessuno di questi obiettivi avrebbe presentato veri e propri ostacoli, ma in corso d’opera il nostro gruppo ha presto scoperto che ci eravamo proprio sbagliati. In questo post spero di far luce su questo processo in modo che altri possano beneficiare di una riduzione del dolore e dell’ansia (scherzi a parte, questo progetto è stato davvero doloroso).
Passaggio 1: emulazione di PMEM
Questa è la parte facile, quindi ecco qui. L’emulazione della memoria persistente nel kernel Linux può essere ottenuta tramite il flag memmap nelle versioni del kernel 4.0+. Questo flag funziona come segue: memmap= XG!YG dove X è la quantità di memoria che desideri riservare per il tuo dispositivo PMEM emulato mentre Y è l’offset fisico per dove dovrebbe iniziare questa mappatura.
Continua la lettura su https://www.williamwalcher.xyz/hacking-libvmmalloc-fun-profit/
Lascia un commento