• In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 7 di 7

Discussione: File System

Cambio titolo
  1. #1
    Rivoluzionario L'avatar di Gendo Ikari
    Registrato il
    03-03
    Località
    Neo Tokyo 3
    Messaggi
    6.197

    File System

    Come funziona il file system di Linux?
    Viva l'Itaglia!

  2. #2
    Utente Tostapane L'avatar di WarriorXP
    Registrato il
    10-02
    Località
    MI C.le - LE
    Messaggi
    23.429
    Mica ce n'è uno solo...

  3. #3
    Utente L'avatar di Phoenix
    Registrato il
    10-02
    Località
    Midwich Street
    Messaggi
    6.699
    Minchia... che domande sbrigative che fate
    Di filesystem ce ne sono diversi, i programmi ne sono indipendenti grazie a uno strato intermedio detto Virtual Filesystem Switch che appunto switcha tra un fs e l'altro interfacciando i programmi applicativi con i vari fs.
    Il filesystem System V è comunque uno standard Unix e credo che anche gli altri non vi si discostino un granchè (ma non ne ho idea). In tale fs i file vengono identificati prima da un nome poi, al momento dell'apertura, da un descrittore (simile a un puntatore al file in C). Quando chiudi un file viene eliminato il legame tra descrittore e file (le funzioni fin'ora descritte sono open, creat e close, alle prime due passi nome del file e permessi, all'ultima il descrittore).
    Le operazione sequenziali (read, write) e non sequenziali (lseek) vengono sempre fatte basandosi sul descrittore.
    I file possono essere file catalogo (le directory, che contengono nomi di altri file) e file regolari, i primi sono distribuiti gerarchicamente e non sono disponibili operazioni di read e write su di essi (si utilizzano, allo scopo, delle funzioni speciali) mentre per crearli non si usa creat ma mknod.
    I file non vengono "eliminati" ma "scollegati" attraverso la funzione unlink che prima elimina il nome del file da una directory e se questo era il suo unico nome in seguito lo cancella... la funzione link invece associa diversi nomi a uno stesso file.
    Anche tutte le operazioni di input/output sono svolte scrivendo file, dato che tutte le periferiche sono viste come file (speciali). I file speciali sono quelli che trovi in /dev, e su di essi puoi fare tutte le operazioni che si fanno sui file normali, eccetto quelle prive di senso (scrivere su una tastiera )
    Tra i descrittori ce ne sono tre standard, che sono stdin, stdout e stderr (che di default corrispondono a tastiera e terminale).
    Il filesystem identifica i dischi come dei volumi, delle semplificazioni "astratte" dei dischi stessi... ogni volume è un vettore di blocchi, e ogni blocco è una sequenza di byte (in genere 512 o 1024) trasferibile con una sola operazione da disco a memoria... operazione la cui efficienza è gestita dal buffer cache. I file non sono altro che sequenze di blocchi numerati.
    Il volume è organizzato come segue:
    • Blocco 0: contiene il programma d'avvio (bootstrap) se è un volume bootabile, se no è vuoto
    • Blocco 1: è il superblock, contiene informazioni generali sul volume
    • Tabella degli i-node: gli i-node descrivono i file contenuti nel volume, la tabella in questione è grande qualche blocco
    • Tutti gli altri blocchi contengono i normali file

    I file sono quindi descritti dagli i-node, che contengono tutte le informazioni (dimensione, tipo di file, quanti nomi ha sto file) e cosa più importante i puntatori ai blocchi che costituiscono il file, la cui memorizzazione in un i-node è un po' complessa (e no, non ve la spiego )
    Identificare i blocchi liberi non è semplicissimo perchè non esiste una sequenza di byte equivalente a "file vuoto" (dato che i file sono sequenze di byte qualunque, si rischierebbe la "sovrapposizione"). Il problema è gestito da una lista di blocchi liberi, identificati per indirizzo, che inizia nel superblock e prosegue in blocchi dati normali.


    He who is not bold enough to be stared at from across the abyss
    is not bold enough to stare into it himself.

  4. #4
    Rivoluzionario L'avatar di Gendo Ikari
    Registrato il
    03-03
    Località
    Neo Tokyo 3
    Messaggi
    6.197
    Grazie.
    E per quanto riguarda le directory? Cioè, in Windows c'è C:\windows, con tutta la roba del OS, poi in teoria io potrei installare e creare directory da qualsiasi altra parte. In Linux?
    Viva l'Itaglia!

  5. #5
    Utente L'avatar di Phoenix
    Registrato il
    10-02
    Località
    Midwich Street
    Messaggi
    6.699


    He who is not bold enough to be stared at from across the abyss
    is not bold enough to stare into it himself.

  6. #6
    Rivoluzionario L'avatar di Gendo Ikari
    Registrato il
    03-03
    Località
    Neo Tokyo 3
    Messaggi
    6.197
    Grazie mille, stavo appunto cercando un buon help.
    Viva l'Itaglia!

  7. #7
    Utente Tostapane L'avatar di WarriorXP
    Registrato il
    10-02
    Località
    MI C.le - LE
    Messaggi
    23.429
    Citazione Gendo Ikari
    Grazie mille, stavo appunto cercando un buon help.
    Allora ti conviene cercare altrove

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •