6.2 Σύστημα αρχείων
6.2 Σύστημα αρχείων
Σύστημα αρχείων (file system) ονομάζουμε τον τρόπο με τον οποίο, ένα Λ.Σ υλοποιεί την οργάνωση των αρχείων τόσο του ίδιου του Λ.Σ όσο και των χρηστών του συστήματος. Ένα σύστημα αρχείων μπορεί να θεωρηθεί ως μια βάση δεδομένων που περιέχει τη πληροφορίες, όπως το όνομα και τη φυσική θέση κάθε αρχείου που είναι αποθηκευμένο στους δίσκους του συστήματος. Τα αρχεία είναι συνήθως οργανωμένα σε ενότητες που ανάλογα με το Λ.Σ ονομάζονται φάκελοι (folders) ή κατάλογοι (directories). Οι ενότητες αυτές μπορούν να περιέχουν άλλους φακέλους και αρχεία.
Οποιαδήποτε συσκευή αποθηκεύει δεδομένα, όπως το κινητό μας, ένα GPS κλπ, χρησιμοποιεί απαραίτητα ένα σύστημα αρχείων.
Υπάρχουν δύο όψεις ενός συστήματος αρχείων. Η μια όψη είναι εσωτερική και είναι το πώς το ίδιο το Λ.Σ υλοποιεί και "βλέπει" το σύστημα αρχείων. Η δεύτερη όψη είναι εξωτερική και είναι το πώς ο χρήστης αντιλαμβάνεται το σύστημα αρχείων.
Εσωτερική όψη του συστήματος αρχείων
Όλες οι μονάδες μνήμης που χρησιμοποιεί ένα υπολογιστικό σύστημα για την αποθήκευση των αρχείων του και γενικότερα των δεδομένων που χρησιμοποιεί πρέπει να έχουν μορφοποιηθεί (φορμαριστεί - format) κατάλληλα. Στη διαδικασία της μορφοποίησης στη μονάδα μνήμης δημιουργούνται τομείς (sectors) με μέγεθος 512 bytes. Ο τομέας είναι η μικρότερη φυσική μονάδα για την αποθήκευση. Επίσης δημιουργούνται οι μονάδες εκχώρησης (clusters) οι οποίες περιλαμβάνουν έναν αριθμό από συνεχόμενους τομείς. Ο αριθμός αυτός εξαρτάται από τη μέθοδο διαμόρφωσης της μονάδας μνήμης και μπορεί να περιέχει από έναν μέχρι 128 τομείς. Στα σύγχρονα Λ.Σ μια μονάδα εκχώρησης περιέχει 4 τομείς. Η μονάδα εκχώρησης είναι το μικρότερο μέγεθος μνήμης που χρησιμοποιεί το Λ.Σ για την αποθήκευση των δεδομένων του.
Το σύστημα αρχείων διατηρεί πληροφορίες σε ποιες μονάδες εκχώρησης είναι αποθηκευμένο κάθε αρχείο του υπολογιστή καθώς και ποιες μονάδες εκχώρησης είναι κενές και μπορούν να δεχθούν δεδομένα. Το σύστημα αρχείων αποτελεί μέρος του Λ.Σ και ουσιαστικά είναι το τμήμα που ενημερώνει το Λ.Σ που μπορεί να αποθηκεύσει ένα αρχείο ή που μπορεί να βρει ένα αρχείο.
Τέλος το σύστημα αρχείων δεν διατηρεί μόνο το όνομα του αρχείου αλλά και ένα άλλο μεγάλο πλήθος πληροφοριών σχετικά με το αρχείο όπως το μέγεθός του, το είδος του, τον δημιουργό του, τα δικαιώματα των χρηστών στο αρχείο αυτό, καθώς και τη λογική θέση του στο σύστημα φακέλων (καταλόγων).
Εξωτερική όψη του συστήματος αρχείων
Ο χρήστης αντιλαμβάνεται το σύστημα αρχείων ως μια ιεραρχική δομή ανεστραμμένου δέντρου, φακέλων (καταλόγων) ο καθένας από τους οποίους μπορεί να περιέχει αρχεία καθώς και άλλους υπο-φακέλους (υπο-καταλόγους).

Εικόνα 6.2.1 Ιεραρχική δομή φακέλων (καταλόγων)
Τα υποστηριζόμενα συστήματα αρχείων είναι διαφορετικά ανάλογα με τον τύπου του λειτουργικού συστήματος που χρησιμοποιείται σε ένα υπολογιστικό σύστημα. Για παράδειγμα τα Windows χρησιμοποιούν FAT32 και NTFS, τα προσανατολισμένα σε Linux EXT 2/3/4, XFS, JFS κτλ., με κάθε ένα από αυτά τα συστήματα να διαφέρουν ως προς τον τρόπο που το ΛΣ ελέγχει την οργάνωση, την αποθήκευση και την ανάκτηση των δεδομένων.
Σε γενικές γραμμές τα διαφορετικά συστήματα αρχείων δεν είναι συμβατά μεταξύ τους επομένως δεν είναι δυνατή η ανάγνωση αρχείων από ένα Λ.Σ. που δεν υποστηρίζει το σύστημα αρχείων ή η μεταφορά αρχείων από ένα σύστημα σε άλλο χωρίς το κατάλληλο λογισμικό. Σε αυτή την ενότητα θα επικεντρωθούμε στα κυριότερα συστήματα αρχείων που υποστηρίζονται, στη συμβατότητα που παρουσιάζουν και θα προβούμε σε μια γενικότερη σύγκρισή τους.
Σύστημα αρχείων των Windows
Τα Windows χρησιμοποιούν τα συστήματα αρχείων FAT (File Allocation Table) και τις μετέπειτα εξελίξεις του FAT16/FAT32. Στη συνέχεια εμφανίστηκε το NTFS (New Technology File System), για το οποίο έχει γίνει εκτενής αναφορά στο κεφάλαιο 2, και το νεότερο exFAT (Extensible File Allocation Table). Το FAT32 γνώρισε μεγάλη διάδοση και αναγνωρίζεται από το Linux και το Android και το MacOS. Ορισμένες αδυναμίες του όμως όπως η υποστήριξη μεγάλων αρχείων καθώς και δίσκων αποθήκευσης οδήγησαν στην εμφάνιση νέων συστημάτων αρχείων.
Το σύστημα αρχείων exFAT (Extensible File Allocation Table) είναι ένα σύστημα που έχει σχεδιαστεί κυρίως για αφαιρούμενες συσκευές αποθήκευσης, όπως μονάδες flash USB, κάρτες SD κλπ. Μπορεί να χρησιμοποιηθεί όπου απαιτείται μεγαλύτερο όριο μεγέθους αρχείου από αυτό του τυπικού συστήματος αρχείων FAT32 (4 GB). Μάλιστα, οι νεότερες εκδόσεις των Windows υποστηρίζουν εγγενώς την εκκίνηση από exFAT, την εγκατάσταση του συστήματος από συσκευή με exFAT, ενώ το σύστημα αυτό είναι συμβατό με τις περισσότερες εκδόσεις του Linux. Επίσης οι αποθηκευτικές κάρτες τύπου SDXC συνοδεύονται από τον κατασκευαστή τους με αυτό ως το προεγκατεστημένο σύστημα αρχείων, το οποίο είναι διαθέσιμο στα σύγχρονα smartphone με λειτουργικό Android. Το μόνο μειονέκτημα του exFAT είναι ότι, ως το νεότερο σύστημα από τα προαναφερόμενα, πιθανό να μην καλύπτεται ακόμα από όλα λειτουργικά συστήματα, όπως συμβαίνει με το FAT32.
Σύστημα αρχείων των Linux
Στο Linux χρησιμοποιούνται και υποστηρίζονται πολλές παραλλαγές συστημάτων αρχείων με κυριότερες αυτές της οικογένειας EXT (Extended File System). Σήμερα χρησιμοποιούνται οι εκδόσεις EXT3 και EXT4. Όπως και στα Windows αυτά τα συστήματα αρχείων αποτελούν μια δομημένη συλλογή αρχείων σε μια μονάδα δίσκου ή σε ένα διαμέρισμα και διαχειρίζεται όλες τις πληροφορίες, συμπεριλαμβανομένου του μεγέθους του αρχείου, της ημερομηνίας δημιουργίας, του ονόματος αρχείου κλπ. Το Ext4, είναι η νεότερη έκδοση και είναι συμβατή προς τα πίσω ως το EXT2, που αποτελεί και την παλιότερη έκδοση ποπυ υποστηρίζεται. Καθώς θα συστήματα android βασίζονται σε πυρήνα Linux, το σύστημα EXT4 υποστηρίζεται και στα συστήματα αυτά.
Το EXT4 εισήχθη αρχικά για να επεκτείνει τα όρια αποθήκευσης και να βελτιώσει την απόδοση του συστήματος. Σε σύγκριση με προηγούμενα συστήματα EXT, το EXT4 μπορεί να υποστηρίξει μεγαλύτερο μέγεθος αρχείου και μεγαλύτερους σκληρούς δίσκους (ή άλλες συσκευές αποθήκευσης). απεριόριστους υποκατάλογους, χρονική σήμανση νανοδευτερόλεπτου, εκχώρηση σε πολλαπλά μπλοκ και περιλαμβάνει προηγμένες λειτουργίες όπως ευρετηρίαση (indexing) καταλόγου, και ανασυγκρότηση (defrag). Στα μειονεκτήματά του συγκαταλέγονται ότι είναι δεν παρέχει ασφάλεια δεδομένων και χρησιμοποιεί περισσότερο χώρο στο δίσκο για τη διαχείρισή του.
|
Σύστημα αρχείων |
Μέγιστο μέγεθος υποστηριζόμενο αρχείου |
Μέγιστο μέγεθος υποστηριζόμενου μπλοκ |
Λειτουργικά συστήματα |
|
NTFS |
8 PB – 2 MB |
256TB - 64KB 8PB - 2MB (θεωρητικό) |
Windows 10/11 MacOS Χ (Μόνο για ανάγνωση) Linux πυρήνα 2.6 και μεταγενέστερες εκδόσεις, FreeBSD, NetBSD, OpenBSD (Μόνο για ανάγνωση) |
|
FAT32 |
4 GB |
16TB - 4KB |
Windows 10/11 MacOS Χ Linux |
|
exFAT |
128 PB |
512 TB |
Windows 10/11 MacOS Χ Linux πυρήνα 5.4 και μεταγενέστερες εκδόσεις , FUSE |
|
EXT 3 |
16 TB – 4 KB |
16 TB – 4 KB |
Linux πυρήνα 0.96 και μεταγενέστερες εκδόσεις |
|
EXT 4 |
256 PB – 64 KB |
256 PB – 64 K 1 EB (θεωρητικό) |
Linux πυρήνα 0.96 και μεταγενέστερες εκδόσεις |
Συγκριτικός πίνακας συστημάτων αρχείων
|
|
|
Σε περίπτωση που πρέπει να μεταφερθούν αρχεία από το Λ.Σ των Windows προς άλλα λειτουργικά συστήματα πχ. Ubuntu, Android ή αντίστροφα, προτείνεται οι φορητές μονάδες δίσκου που θα χρησιμοποιηθούν να είναι μορφοποιημένες σε σύστημα FAT32 ή exFAT, καθώς όπως προαναφέραμε είναι τα συστήματα αναγνωρίζονται από τα περισσότερα ΛΣ. Το FAT32 ως πιο παλιό, υποστηρίζεται από σχεδόν όλα τα ΛΣ, ενώ το exFAT υπάρχουν ορισμένες διανομές Linux που δεν το υποστηρίζουν. Σε αυτή την περίπτωση απαιτείται επιπρόσθετο λογισμικό για να υπάρξει πρόσβαση στα περιεχόμενα των δίσκων, όπως το FUSE exFAT tool (Δραστηριότητα 6.2.2). |
Υλοποιήστε τις δραστηριότητες 6.2.1-6.2.2