Un file system è solo il layout delle cartelle?


56

Ho usato Windows fin dall'infanzia e quando sento la frase "filesystem di Windows" penso alle directory (cartelle) all'interno delle directory, una cartella chiamata SYSTEM, una cartella chiamata PROGRAM FILES ecc. È questo il sistema? Solo il layout delle cartelle?

E poi di recente ho iniziato a usare Linux, e il mio libro di consultazione dice che nel filesystem linux tutto inizia da root e si ramifica da lì. In che modo è davvero diverso da Windows? Voglio dire, sembra che il sistema Linux e il sistema Windows siano solo due modi per impostare un albero di directory. È questo che significa file system?


3
Hai provato a leggere en.wikipedia.org/wiki/Filesystem ?
Choroba,

2
Cordiali saluti, Non esiste un "filesystem Linux". Quello che il libro intendeva dire è l'albero delle directory di Linux. E, sì, l'albero delle directory è solo il layout delle cartelle.
user606723

2
A Linux manca il concetto di unità , in modo che tutto sia montato sotto /. In Windows, questo non è il caso, poiché manca un montaggio in stile UNIX (correggimi se sbaglio qui), quindi tutto è organizzato attorno alle unità.
nuovo123456,

1
@ new123456 Ritenersi corretti. Windows supporta il montaggio (da W2k o NT), sebbene la funzionalità venga utilizzata molto raramente.
Kubanczyk,

Risposte:


130

Solo il layout delle cartelle?

Sembra troppo bello per essere vero ...

Prendiamo il file system FAT32 come esempio. Posso installare Windows XP su di esso, ma posso anche usarlo su una scheda di memoria. Su una scheda di memoria, non hai quelle cartelle che riassumi.

Quindi ... Non confondere il layout della directory di una famiglia di sistemi operativi con un file system.

È questo che significa un file system?

No ... Si riferisce ai bit e ai byte sottostanti che fanno funzionare la struttura della directory.

I bit e i byte sottostanti? Mostrami FAT32!

Diamo un'occhiata a come appare FAT32 , che ha:

  • Alcuni settori di intestazione all'inizio, come ID volume e settori riservati
  • Due tabelle di allocazione dei file, che ci consentono di capire dove sono i nostri file.
  • Cluster contenenti tutti i nostri dati di directory e file.
  • Un po 'di spazio inutilizzato molto piccolo che non possiamo usare.

Una tabella FAT è composta da molte voci simili a questa, che ci consentono di determinare dove è archiviata la directory o il file nello spazio dei cluster, nonché alcuni attributi e dimensioni.

Una voce di directory punta a un elenco di voci di directory / file ...

Nello spazio dei cluster, ora possiamo spostare i nostri cluster per trovare i dati di cui abbiamo bisogno. Un cluster contiene essenzialmente dati e informazioni in cui si trovano i frammenti successivi

inserisci qui la descrizione dell'immagine

Gli altri file system differiscono? Mostrami NTFS!

Ti mostrerò un'immagine in modo che tu possa notare le differenze, il resto sono compiti per il lettore: ulteriori informazioni sono disponibili su questo archivio del blog o su Google.

L'idea principale è che NTFS è un enorme miglioramento rispetto a FAT32 che è più robusto / efficiente. Avere una migliore idea dello spazio (non) usato usando una bitmap per aiutare ulteriormente contro la frammentazione. E così via...

- http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png

E i file system su Linux? Mostrami ext2 / 3!

L'idea è che ext2 / ext3 usano super blocchi e inode; questo consente soft e hardlink, directory che sono file, file con più nomi e così via. L'essenza principale si sta allontanando per consentire al file system di essere in grado di fare più cose meta-ish ...

- http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png


@Shadok: Potrei migliorare le sezioni successive in seguito, sono piuttosto impegnato in questi giorni però ... Grazie.
Tamara Wijsman,

2
Lo farei +2 se potessi. Ora, perché non è possibile che più documenti e specifiche siano più simili a questo !?
greatwolf l'

Forse dovresti scrivere un post sul blog su questo @TomWijsman ;-)
Ivo Flipse

@IvoFlipse: A "Archiviazione dei dati: come funziona?" le serie potrebbero essere possibili, ecco un'altra risposta . Immagini grandi e $ # dicono più delle parole ... :)
Tamara Wijsman,

Sicuramente, sembra una bella idea
Ivo Flipse l'

14

La grande differenza tra Linux e Windows, almeno quando si tratta dei loro filesystem e dei loro alberi di directory è che in Linux "tutto è un file" e tutto discende da una singola radice. Questo vale anche per quasi tutti i sistemi operativi derivati ​​da Unix come BSD, OS X, Solaris, ecc., Ma dirò semplicemente "Linux" come generico (se non del tutto accurato).

Ma cosa significa in pratica?

Windows consente l'uso di più root con nome per i loro filesystem. Li capisci come lettere di unità: C: D: E:e così via. Ognuno ha un root ( \) e un albero che discende da esso. Le versioni recenti di Windows consentono cose come mountpoint di volume, in cui un volume (quello che considereresti una partizione) può essere montato su una cartella esistente e vuota. Quindi invece di D:\ rappresentare la radice, diciamo, dell'unità ottica (CD / DVD / BR), è possibile montarla C:\Opticalinvece. Questo è più simile a quello che fa Linux. Esiste anche uno spazio dei nomi degli oggetti sottostante, a radice singola, per tutto ciò che in Windows è simile a quello che utilizza Linux ed è gestito da Object Manager , ma la maggior parte degli utenti lo vede raramente come riferimento poiché è principalmente per l'uso del kernel.

Linux ha una sola radice: /. Tutto discende da esso e non deve necessariamente rappresentare il tuo disco rigido. Dischi rigidi, unità ottiche, schede di memoria, condivisioni di rete, stampanti, scanner, CPU, RAM, processi, ... tutto è rappresentato da qualche parte all'interno di questo singolo spazio dei nomi e può essere accessibile da qualsiasi processo con API standard di gestione dei file, presumendo che tu abbia un livello di accesso abbastanza alto. Solo perché puoi leggere o scrivere da ciò non significa che sia un file sul tuo disco rigido in Linux. Ad esempio, in genere i dispositivi sono montati /dev, quindi accedere alle cose spesso significa che stai parlando con un dispositivo - forse è la scheda audio, uno scanner o una fotocamera, ecc. Questi sono noti come file del dispositivo . procfsè uno speciale "filesystem" che è normalmente montato /proce ha una "directory" per ogni processo in esecuzione, con file in ogni directory relativi a cose come la riga di comando usata per invocare quel processo, mappe di memoria, file aperti, ecc. Sysfs è un altro speciale filesystem (montato su /sys) usato per esporre una grande quantità di informazioni sugli oggetti del kernel in esecuzione e può anche essere usato per mettere a punto il kernel in esecuzione semplicemente scrivendo su un determinato file.


2
Si noti che è facile confondere un file system con il layout di directory dal punto di vista dell'utente. Mentre il termine file system è realmente pensato per riguardare gli interni di un file system; per esempio. la differenza tra FAT e NTFS, così come le differenze tra ext2 ed ext3 ...
Tamara Wijsman

4
@ Tom: Sembra che l'OP stia davvero chiedendo delle differenze nelle varie gerarchie di oggetti tra Linux e Windows piuttosto che come i bit sono disposti sul disco. udev, procfs, sysfs, tmpfs, ecc. sono filesystem tanto quanto ext2 o NTFS sono in Linux, nonostante non riguardino cose sul disco.
Afrazier

Questa è solo una parte della sua domanda "Il file system è solo il layout delle cartelle?", Il modo in cui rispondi alla domanda non fa che confondere e non rispondere a quella domanda. Quindi ho lasciato un avviso per i lettori ...
Tamara Wijsman,

+1 per "tutto è un file" in Linux. Questa è la grande differenza tra Linux e Windows per me.
Rabarberski,

3

Il filesystem non riguarda solo la configurazione di un albero di directory, ma anche il modo in cui queste informazioni sono codificate sul supporto. Esistono diversi filesystem per Linux: ext3, xfs, raiserfs, ecc.


3

Puoi pensare ai file system come a diversi formati per l'archiviazione di file e cartelle, in qualche modo analogo a come MS Word e PDF sono formati diversi per l'archiviazione di documenti, oppure MP3 e WAV sono formati diversi per l'archiviazione di audio.

Dati alcuni file e cartelle, il file system è il formato e il codice che li memorizza su disco in modo che possano essere letti nuovamente.

E proprio come non tutti i lettori video possono riprodurre tutti i formati video, non tutti i sistemi operativi possono leggere tutti i file system. Ad esempio, se si memorizza un file da Linux su una chiavetta USB formattata ext3, Windows non può leggere il file poiché non sa come gestire il file system ext3.

I file system comuni includono

  • FAT e NTFS (Windows, NTFS è standard nelle versioni più recenti di Windows)
  • ext3 ed ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 e UDF (CD, DVD e Blu-Ray)

Vedi Wikipedia per un confronto tra i file system .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.