2016-04-15 6 views
0

Ich arbeite an einem Projekt, wo ich alle grundlegenden Komponenten für ein virtuelles Dateisystem (Speicherblöcke, Dateiname Tabelle, Inodes, etc) erstellen muss. Mein System muss in der Lage sein, eine Einzelschicht (keine Unterverzeichnisse) "Platte" zu machen, die aus festen Speicherblöcken besteht (in diesem Fall 256 Byte). Ich verstehe alle grundlegenden Komponenten und ihre Funktionen, soweit es das Dateisystem betrifft, aber ich bin nicht sicher, wie man mit der Erstellung von Speicherblöcken für die Zuweisung beginnt. Ich habe noch keine Struktur für die Inodes oder die Dateitabelle entworfen (ich muss meine eigene erstellen), aber ich glaube, ich habe die grundlegende Speicherzuweisung für die Erstellung einer "Festplatte", wo ich dann formatieren kann und fügen Sie die folgenden Datenstrukturen:Virtual File System Speicherblock Erstellung

int make_disk(char const *name) 
{ 
    int c, dex; 
    char buff[BLOKSIZE]; 

    if(!name) 
    { 
     fprintf(stderr, "Make: Invalid Name\n"); 
     return -1; 
    } 
    if((c=open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0) 
    { 
     perror("Cannot Open File\n"); 
     return -1; 
    } 

    memset(buff, 0, BLOKSIZE); 
    for(dex=0;dex<NUMBLOKS;dex++) 
    { 
     write(c, buff, BLOKSIZE); 
    } 

    close(c); 
    return 0; 

} 

Meine Hauptfrage ist bin ich auf dem richtigen Weg so weit wie richtig die Zuteilung der 256-Byte-Speicherblöcke, die für die Speicherung von Dateien und Metadatenspeicher verwendet werden, sobald diese „disk“ richtig ist partitioniert?

Antwort

0

Am besten verwenden Sie eine Speicherabbilddatei als virtuelle Festplatte.