Formato di initfs
Da Dreamos Wiki Page.
Initfs è un fs minimale creato principalmente a scopi di test nello sviluppo del VFS, e utile per contenere informazioni di configurazione del sistema operativo in fase di runtime (per esempio gli utenti) fino a che non svilupperemo un driver per le unita a disco.
In questa pagina verrà illustrato come sarà strutturato tale filesystem, in modo che chiunque pertecipi allo sviluppo dell'os e ha necessita di interagirci, trovi tutte le informazioni necessarie.
- Dimensione massima di un filename: questa informazione si trova nel file include/fs/initrd.h, e' definita dal campo: FILENAME_LENGHT e attualmente vale 64 caratteri.
Le caratteristiche di questo FS sono:
- Non supportare subdirectories
- Supportare un numero limitato di files
- Salvare le informazioni sull'utente che ha creato il file.
La struttura dati che identifica l'entità file è la seguente:
struct initrd_file_t{ int magic; char fileName[FILENAME_LENGTH]; short int file_type; int uid; unsigned int offset; unsigned int length; };
Vediamo cosa indicano i singoli campi:
- magic e' un valore speciale, utile per trovare l'inizio di ogni struttura (non realmente utilizzato).
- fileName - Ha come dimensione massima FILENAME_LENGHT definito in /include/fs/initrd.h e indica il nome del file.
- file_type - Indica se si tratta di un file, una dir, o un mountpoint.
- uid - E' un intero, identifica l'utente che ha creato il file.
- Offset - Indica il punto di partenza del file rispetto all'inizio del file system
- lenght - E' la lunghezza del file
I campi quindi da definire saranno:
- FILENAME_LENGHT - Lunghezza massima consentita per il nome di un file
- MAX_FILES - Numero massimo di files memorizzabili. Attualmente e' settato a 32titolo del collegamento