Σύστημα αρχείων ext2 στο Linux. Πώς να αποκτήσετε πρόσβαση σε συστήματα αρχείων Ext2, Ext3, Ext4 σε περιβάλλον Windows Σύστημα αρχείων Ext2

Πώς να καταστεί δυνατή η πρόσβαση σε ένα διαμέρισμα δίσκου ή σε αφαιρούμενα μέσα με συστήματα αρχείων σε περιβάλλον Windows Ext2/3/4 ? Αν, για παράδειγμα, υπάρχει και δεύτερο σύστημα στον υπολογιστή Linux. Και πρέπει να εργαστείτε με τα δεδομένα του από το περιβάλλον Windows. Ή ένα άλλο παράδειγμα - όταν οι εικονικοί δίσκοι είναι τοποθετημένοι μέσα στα Windows με εγκατεστημένο εικονικές μηχανέςσυστήματα Linuxή Android. Με Ext2/3/ 4 Τα Windows δεν μπορούν να λειτουργήσουν εγγενώς· χρειάζονται εργαλεία τρίτων για αυτό. Τι είδους μέσα είναι αυτά;Ας δούμε τα παρακάτω.

***
Τα τρία πρώτα εργαλεία θα καταστήσουν δυνατή την ανάγνωση μόνο συσκευών πληροφοριών από Ext2/3/4. Η πιο πρόσφατη λύση θα σας επιτρέψει τόσο να διαβάζετε όσο και να γράφετε δεδομένα. Όλα τα εργαλεία που αναφέρονται παρακάτω είναι δωρεάν.

1. Αναγνώστης Linux DiskInternals

Ένα απλό πρόγραμμα είναι ένας πρωτόγονος διαχειριστής αρχείων, κατασκευασμένος όπως μια τυπική Εξερεύνηση των Windows, με υποστήριξη για συστήματα αρχείων Έξοδος 2/3/4 , Reiser4 , HFS , UFS2. Στο παράθυρο του προγράμματος θα δούμε κατατμήσεις και συσκευές με Linuxή Android.

Για να αντιγράψετε, πρέπει να επιλέξετε έναν φάκελο ή ένα αρχείο, πατήστε το κουμπί "Αποθηκεύσετε".

Στη συνέχεια, καθορίστε τη διαδρομή αντιγραφής.

2. Πρόσθετο για το Total Commander DiskInternals Reader

Οι θαυμαστές του δημοφιλούς μπορούν να εξαγάγουν δεδομένα Linuxή Androidμέσα στα Windows χρησιμοποιώντας αυτόν τον διαχειριστή αρχείων. Αλλά πρώτα εγκαταστήστε ένα ειδικό πρόσθετο σε αυτό. Ένα από αυτά τα πρόσθετα είναι το , μπορεί να συνδέσει και να διαβάσει συσκευές πληροφοριών που έχουν διαμορφωθεί Ext2/3/4 , Λίπος/exFAT , HFS/HFS+ , ReiserFS. Κατεβάστε το πρόσθετο, αποσυσκευάστε το αρχείο του μέσα , επιβεβαιώστε την εγκατάσταση.

Ας ξεκινήσουμε (σπουδαίος) για λογαριασμό του διαχειριστή. Ας πάμε στην ενότητα. Κάντε κλικ.

Εδώ, μαζί με άλλα διαμερίσματα και μέσα δίσκου, αυτό με Ext2/3/4 .

Τα δεδομένα αντιγράφονται παραδοσιακά τρόπο - πατώντας το F5 στον δεύτερο πίνακα.

3. Πρόσθετο για το Total Commander ext4tc

Μια απλοποιημένη εναλλακτική λύση στην προηγούμενη λύση - ext4tc, ένα άλλο πρόσθετο για . Μπορεί να συνδεθεί με συσκευές ανάγνωσης πληροφοριών που έχουν διαμορφωθεί μόνο σε Ext2/3/4. Κατεβάστε την προσθήκη, αποσυσκευάστε το αρχείο της μέσα στη διαχείριση αρχείων και ξεκινήστε την εγκατάσταση.

Ας ξεκινήσουμε (σπουδαίος) για λογαριασμό του διαχειριστή. Κάντε κλικ. Ας πάμε στο .

Εάν χρειάζεται να αντιγράψετε δεδομένα, χρησιμοποιήστε τη συνήθη μέθοδο με το πλήκτρο F5.

4. Πρόγραμμα οδήγησης υποστήριξης Ext2Fsd

Πρόγραμμα Ext2Fsd– αυτός είναι ο οδηγός Ext2/3/4, υλοποιεί υποστήριξη για αυτά τα συστήματα αρχείων σε επίπεδο λειτουργικού συστήματος. Μπορείτε να εργαστείτε με διαμερίσματα και μονάδες δίσκου που έχουν διαμορφωθεί με αυτά τα συστήματα αρχείων, όπως με κανονικές συσκευές πολυμέσων που υποστηρίζονται από Windows σε ένα παράθυρο του Explorer ή προγράμματα τρίτων. Το πρόγραμμα οδήγησης σάς επιτρέπει τόσο να διαβάζετε όσο και να γράφετε δεδομένα.

Κάντε λήψη της πιο πρόσφατης τρέχουσας έκδοσης Ext2Fsd.

Κατά την εγκατάσταση ενεργοποιούμε (αν πρόκειται για μακροχρόνια εργασία) τρία προτεινόμενα πλαίσια ελέγχου:

1 — Αυτόματη εκτέλεση προγράμματος οδήγησης με Windows.
2 - Υποστήριξη εγγραφής για Ext2;
3 - Υποστήριξη μορφοποίησης για Ext3.

Στο στάδιο προκαταρκτικής τελικής επεξεργασίας, ενεργοποιούμε την επιλογή εκκίνησης του παραθύρου διαχείρισης προγραμμάτων οδήγησης - μαζί με την εκχώρηση πληροφοριών σε συσκευές από Ext2/3/4γράμματα οδήγησης.

Στο παράθυρο που ανοίγει Θα δούμε τα μέσα με την επιστολή που έχει ήδη ανατεθεί. Για παράδειγμα, στην περίπτωσή μας, ένας μεταφορέας με Ext4δίνεται η πρώτη δωρεάν επιστολή φά.

Τώρα μπορούμε να δουλέψουμε με το δίσκο φάστο παράθυρο του Explorer.

Αντιστοιχίστε ένα γράμμα σε νέες συνδεδεμένες συσκευές με Ext2/3/4μπορεί να γίνει χρησιμοποιώντας το μενού περιβάλλοντος που εμφανίζεται σε καθένα από αυτά που εμφανίζονται στο παράθυρο συσκευές. Αλλά απλώς εκχωρώντας ένα γράμμα μονάδας δίσκου, μια τέτοια συσκευή δεν θα εμφανιστεί μετά επανεκκίνηση των Windows, αυτή η λύση είναι μόνο για μία περίοδο λειτουργίας υπολογιστή. Για να φτιάξετε μια νέα συσκευή με Ext2/3/4μόνιμα ορατό στο περιβάλλον των Windows, πρέπει να κάνετε διπλό κλικ σε αυτό για να ανοίξετε το παράθυρο διαμόρφωσης και να ορίσετε παραμέτρους μόνιμης σύνδεσης. Στη δεύτερη στήλη χρειάζεστε:

Για αφαιρούμενα μέσα, ενεργοποιήστε το πλαίσιο ελέγχου που υποδεικνύεται με τον αριθμό 1 στο στιγμιότυπο οθόνης και καθορίστε το γράμμα της μονάδας.
Για εσωτερικούς δίσκους και διαμερίσματα, ενεργοποιήστε το πλαίσιο ελέγχου που υποδεικνύεται στο παρακάτω στιγμιότυπο οθόνης με τον αριθμό 2 και υποδείξτε επίσης το γράμμα της μονάδας.

14 Ιούν

Συστήματα αρχείων ext2, ext3, XFS, ReiserFS, NTFS

Σύστημα αρχείων- αυτή είναι η σειρά που καθορίζει τον τρόπο οργάνωσης, αποθήκευσης και ονομασίας δεδομένων σε οποιοδήποτε ηλεκτρονικό μέσο αποθήκευσης σε υπολογιστές.

Η ποικιλία των συστημάτων αρχείων εξηγείται από το γεγονός ότι το καθένα εφευρέθηκε για το δικό του συγκεκριμένο σύνολο εργασιών. Μερικοί γράφουν πολύ γρήγορα μικρά αρχεία (ας πούμε, έως 1 GB), αλλά ταυτόχρονα αλληλεπιδρούν άσχημα με μεγάλα αρχεία ή δεν λειτουργούν καθόλου με αυτά. Μερικά είναι καλά από άποψη ασφάλειας, άλλα από άποψη ταχύτητας ανάγνωσης/εγγραφής. Κάθε σύστημα αρχείων έχει τα δικά του πλεονεκτήματα, μειονεκτήματα, ευπάθειες και ξεχωριστές δυνατότητες.

ΣΕ LinuxΟι πιο συχνά χρησιμοποιούμενοι τύποι συστημάτων αρχείων είναι:

  1. ext2- σημαίνει Δεύτερο εκτεταμένο σύστημα αρχείων(δεύτερο εκτεταμένο σύστημα αρχείων). Αναπτύχθηκε από την Remy Card το 1993 ως σύστημα αρχείων για τον πυρήνα Linux, από το 1993 έως το 2001 ήταν το κύριο σύστημα αρχείων Linux.
    Το πλεονέκτημα είναι η υψηλή ταχύτητα ανάγνωσης/εγγραφής.
    Το κύριο μειονέκτημα του συστήματος ext2είναι ότι δεν είναι γραμμένο, αλλά ακριβώς γι' αυτό έχει εξαιρετική απόδοση ( ξύλευσηείναι μια διαδικασία ημερολογίου που αποθηκεύει μια λίστα αλλαγών που βοηθά στη διατήρηση της ακεραιότητας του συστήματος αρχείων κατά τη διάρκεια διαφόρων αστοχιών του συστήματος).
  2. ext3- σημαίνει Τρίτο εκτεταμένο σύστημα αρχείων(τρίτη έκδοση του εκτεταμένου συστήματος αρχείων). Αναπτύχθηκε από τον Stephen Tweedy το 2001 και χρησιμοποιείται ακόμα σήμερα στις διανομές Linux. Γεννήθηκε ως βελτιωμένος ext2.
    Το πλεονέκτημα αυτού του συστήματος είναι ότι είναι journaled, δηλαδή η αξιοπιστία του αυξάνεται σημαντικά σε σύγκριση με ext2.
    Το μειονέκτημα είναι ελαφρώς χαμηλότερη απόδοση και ταχύτητα ανάγνωσης/εγγραφής.
  3. XFS— Αναπτύχθηκε από την εταιρεία Silicon Graphicsτο 1993, προστέθηκε στον πυρήνα Linuxως σύστημα αρχείων το 2002 σε ολόκληρη την οικογένεια διανομών Linux, επί του παρόντος χρησιμοποιείται ως "εγγενής" στη διανομή κόκκινο καπέλο.
    Το πλεονέκτημα είναι η παρουσία καταγραφής μεταδεδομένων, η υψηλή λειτουργική σταθερότητα, η κατανομή των ροών εισόδου/εξόδου σε ομάδες υποστηρίζεται, οι υψηλές ταχύτητες ανάγνωσης/εγγραφής, είναι δυνατή η ανασυγκρότηση ακόμη και όταν είναι τοποθετημένο το διαμέρισμα και μπορείτε να αυξήσετε το μέγεθος του το σύστημα αρχείων. Λειτουργεί πιο αποτελεσματικά με μεγάλα αρχεία.
    Το μειονέκτημα είναι ότι το μέγεθος του διαμερίσματος δεν μπορεί να μειωθεί, η διαδικασία επεξεργασίας μεταδεδομένων δεν είναι τόσο γρήγορη και λειτουργεί αισθητά πιο αργά με μικρά αρχεία από άλλους τύπους συστημάτων αρχείων.
  4. ReiserFS- αναπτύχθηκε από την εταιρεία Namesysυπό τη διεύθυνση του Hans Reiser το 2001. Χρησιμοποιείται μόνο σε λειτουργικά συστήματα Linux. Ήταν το πρώτο ημερολογιακό σύστημα αρχείων που υιοθετήθηκε στον πυρήνα.
    Το πλεονέκτημα αυτού του συστήματος αρχείων είναι ότι λειτουργεί πολύ γρήγορα με μικρά αρχεία (η ταχύτητα ανάγνωσης/εγγραφής είναι υψηλότερη από αυτή του ext4), υποστηρίζει την καταγραφή.
    Το μειονέκτημα είναι ότι η ανάπτυξή του έχει επιβραδυνθεί αισθητά λόγω της σύλληψης του αρχηγού του, Hans Reiser, και δεν υπάρχει κρυπτογράφηση φόντου.
  5. NTFS- σημαίνει σύστημα αρχείων νέας τεχνολογίας(σύστημα αρχείων νέας τεχνολογίας). Αναπτύχθηκε τον Ιούλιο του 1993 από την εταιρεία Microsoft. Χρησιμοποιείται ευρέως σε διάφορα λειτουργικά συστήματα, καθώς και σε διάφορα μέσα αποθήκευσης.
    Το πλεονέκτημα είναι η ενσωματωμένη δυνατότητα περιορισμού της πρόσβασης σε δεδομένα για διαφορετικούς χρήστες, καθώς και η εκχώρηση περιορισμών σε αυτά μέγιστη έντασηχώρος στο δίσκο, χρήση συστήματος ημερολογίου, υψηλή ταχύτητα ανάγνωσης/εγγραφής μικρών αρχείων.
    Το μειονέκτημα είναι ότι για σταθερή λειτουργία απαιτείται μεγάλη μνήμη RAM υπολογιστή, λειτουργεί αργά με μεγάλα αρχεία και το μήκος της διαδρομής προς τα αρχεία είναι περιορισμένο (32.767 χαρακτήρες Unicode).

Με αυτόν τον απλό τρόπο καταλάβαμε «συστήματα αρχείων ext2, ext3, XFS, ReiserFS, NTFS«!

Σύστημα αρχείων(Αγγλικό σύστημα αρχείων) - μια σειρά που καθορίζει τον τρόπο οργάνωσης, αποθήκευσης και ονομασίας δεδομένων σε μέσα αποθήκευσης πληροφοριών εξοπλισμού πληροφορικής (χρησιμοποιώντας φορητές κάρτες μνήμης flash για επαναλαμβανόμενη εγγραφή και αποθήκευση πληροφοριών σε φορητό ηλεκτρονικές συσκευές: ψηφιακές κάμερες, κινητά τηλέφωνακ.λπ.) και εξοπλισμό πληροφορικής. Καθορίζει τη μορφή του περιεχομένου και τη φυσική αποθήκευση των πληροφοριών, η οποία συνήθως ομαδοποιείται με τη μορφή αρχείων. Ένα συγκεκριμένο σύστημα αρχείων καθορίζει το μέγεθος του ονόματος αρχείου (φάκελο), το μέγιστο δυνατό μέγεθος αρχείου και διαμερίσματος και ένα σύνολο χαρακτηριστικών αρχείου. Ορισμένα συστήματα αρχείων παρέχουν δυνατότητες υπηρεσιών, όπως έλεγχος πρόσβασης ή κρυπτογράφηση αρχείων.

Εργασίες συστήματος αρχείων

Οι κύριες λειτουργίες οποιουδήποτε συστήματος αρχείων στοχεύουν στην επίλυση των ακόλουθων εργασιών:

Ονομασία αρχείου?

διεπαφή λογισμικού για εργασία με αρχεία για εφαρμογές.

αντιστοίχιση του λογικού μοντέλου του συστήματος αρχείων στη φυσική οργάνωση της αποθήκευσης δεδομένων.
οργάνωση της ανθεκτικότητας του συστήματος αρχείων σε βλάβες ρεύματος, σφάλματα υλικού και λογισμικού.

Σε συστήματα πολλών χρηστών, εμφανίζεται μια άλλη εργασία: η προστασία των αρχείων ενός χρήστη από μη εξουσιοδοτημένη πρόσβαση από άλλο χρήστη, καθώς και η διασφάλιση της συνεργασίας με αρχεία, για παράδειγμα, όταν ένας από τους χρήστες ανοίγει ένα αρχείο, για άλλους το ίδιο αρχείο θα είναι προσωρινά διαθέσιμο σε λειτουργία μόνο για ανάγνωση. .

Ένα σύστημα αρχείων είναι η βασική δομή που χρησιμοποιεί ένας υπολογιστής για να οργανώσει πληροφορίες στον σκληρό δίσκο του. Κατά την εγκατάσταση ενός νέου σκληρός δίσκοςπρέπει να διαμεριστεί και να μορφοποιηθεί για ένα συγκεκριμένο σύστημα αρχείων, μετά από το οποίο μπορούν να αποθηκευτούν δεδομένα και προγράμματα σε αυτό. Υπάρχουν τρεις πιθανές επιλογές συστήματος αρχείων στα Windows: NTFS, FAT32 και το σπάνια χρησιμοποιούμενο σύστημα παλαιού τύπου FAT (γνωστό και ως FAT16).

Το NTFS είναι το προτιμώμενο σύστημα αρχείων για αυτήν την έκδοση των Windows. Έχει πολλά πλεονεκτήματα σε σχέση με το παλαιότερο σύστημα FAT32. Μερικά από αυτά παρατίθενται παρακάτω.

Η δυνατότητα αυτόματης ανάκτησης από ορισμένα σφάλματα δίσκου (το FAT32 δεν έχει αυτή τη δυνατότητα).
Βελτιωμένη υποστήριξη για μεγάλους σκληρούς δίσκους.
Υψηλότερος βαθμός ασφάλειας. Μπορείτε να χρησιμοποιήσετε δικαιώματα και κρυπτογράφηση για να αρνηθείτε την πρόσβαση του χρήστη σε ορισμένα αρχεία.

Το σύστημα αρχείων FAT32 και το σπάνια χρησιμοποιούμενο σύστημα FAT χρησιμοποιήθηκαν στο προηγούμενο εκδόσεις Windows, συμπεριλαμβανομένων των Windows 95, Windows 98 και Windows Millenium Edition. Το σύστημα αρχείων FAT32 δεν παρέχει το επίπεδο ασφάλειας που παρέχεται από το NTFS, επομένως εάν ο υπολογιστής σας διαθέτει διαμέρισμα ή τόμο μορφοποιημένο ως FAT32, τα αρχεία σε αυτό το διαμέρισμα είναι ορατά σε οποιονδήποτε έχει πρόσβαση στον υπολογιστή. Το σύστημα αρχείων FAT32 έχει επίσης περιορισμούς μεγέθους αρχείου. Σε αυτήν την έκδοση των Windows, δεν είναι δυνατή η δημιουργία διαμερίσματος FAT32 μεγαλύτερο από 32 GB. Επιπλέον, ένα διαμέρισμα FAT32 δεν μπορεί να περιέχει αρχείο μεγαλύτερο από 4 GB.

Ο κύριος λόγος για τη χρήση ενός συστήματος FAT32 είναι ότι ο υπολογιστής θα μπορεί να εκτελεί είτε Windows 95, Windows 98 ή Windows Millennium Edition είτε αυτήν την έκδοση των Windows (διαμόρφωση πολλαπλών λειτουργικών συστημάτων). Για να δημιουργήσετε μια τέτοια διαμόρφωση, πρέπει να εγκαταστήσετε την προηγούμενη έκδοση του λειτουργικού συστήματος σε ένα διαμέρισμα μορφοποιημένο ως FAT32 ή FAT, καθιστώντας το κύριο διαμέρισμα (το κύριο διαμέρισμα μπορεί να περιέχει το λειτουργικό σύστημα). Άλλες ενότητες πρόσβαση από ΠΡΟΗΓΟΥΜΕΝΕΣ ΕΚΔΟΣΕΙΣΤα Windows πρέπει επίσης να είναι μορφοποιημένα ως FAT32. Οι παλαιότερες εκδόσεις των Windows έχουν πρόσβαση μόνο σε δικτυωμένα διαμερίσματα ή τόμους NTFS. Τα διαμερίσματα NTFS στον τοπικό υπολογιστή δεν θα είναι προσβάσιμα.

FAT – πλεονεκτήματα:

Απαιτεί κάποια μνήμη RAM για να λειτουργήσει αποτελεσματικά.
Γρήγορη δουλειάμε μικρούς και μεσαίους καταλόγους.
Ο δίσκος κάνει, κατά μέσο όρο, λιγότερες κινήσεις κεφαλής (σε σύγκριση με το NTFS).
Αποτελεσματική εργασίασε αργούς δίσκους.

ΛΙΠΗ – μειονεκτήματα:

Καταστροφική απώλεια απόδοσης με αυξανόμενο κατακερματισμό, ειδικά για μεγάλους δίσκους (μόνο FAT32).
Δυσκολίες με την τυχαία πρόσβαση σε μεγάλα (ας πούμε, 10% ή περισσότερο του μεγέθους του δίσκου) αρχεία.
Πολύ αργή εργασία με καταλόγους που περιέχουν μεγάλο αριθμό αρχείων.

NTFS - πλεονεκτήματα:

Ο κατακερματισμός αρχείων δεν έχει ουσιαστικά καμία συνέπεια για το ίδιο το σύστημα αρχείων - η απόδοση ενός κατακερματισμένου συστήματος υποβαθμίζεται μόνο από την άποψη της πρόσβασης στα ίδια τα δεδομένα του αρχείου.
Η πολυπλοκότητα της δομής του καταλόγου και ο αριθμός των αρχείων σε έναν κατάλογο επίσης δεν θέτει ειδικά εμπόδια στην απόδοση.
Γρήγορη πρόσβαση σε ένα αυθαίρετο τμήμα ενός αρχείου (για παράδειγμα, επεξεργασία μεγάλων αρχείων .wav).
Πολύ γρήγορη πρόσβαση σε μικρά αρχεία (μερικών εκατοντάδων byte) - ολόκληρο το αρχείο βρίσκεται στην ίδια θέση με τα δεδομένα συστήματος (εγγραφή MFT).

NTFS - μειονεκτήματα:

Σημαντικές απαιτήσεις μνήμης συστήματος (64 MB είναι το απόλυτο ελάχιστο, περισσότερα τόσο καλύτερα).
Οι αργοί δίσκοι και οι ελεγκτές χωρίς Mastering διαύλου μειώνουν σημαντικά την απόδοση του NTFS.
Η εργασία με καταλόγους μεσαίου μεγέθους είναι δύσκολη επειδή είναι σχεδόν πάντα κατακερματισμένοι.
Ένας δίσκος που λειτουργεί για μεγάλο χρονικό διάστημα στο 80% - 90% γεμάτο θα δείξει εξαιρετικά χαμηλή απόδοση.

Τα ακόλουθα συστήματα αρχείων θεωρούνται ως «εγγενή» για το Linux (δηλαδή αυτά στα οποία μπορεί να εγκατασταθεί και από τα οποία μπορεί να ξεκινήσει): ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS.Συνήθως προσφέρονται ως επιλογή κατά την εγκατάσταση της συντριπτικής πλειοψηφίας των διανομών. Φυσικά, υπάρχουν τρόποι Εγκαταστάσεις Linuxσε συστήματα αρχείων FAT/VFAT/FAT32, αλλά αυτό είναι μόνο για εκείνους τους φίλους και τους κυρίους που καταλαβαίνουν τις διαστροφές και δεν θα μιλήσω για αυτές.

Τα κύρια κριτήρια κατά την επιλογή ενός συστήματος αρχείων είναι συνήθως η αξιοπιστία και η απόδοση. Σε ορισμένες περιπτώσεις, πρέπει επίσης να λάβετε υπόψη τον παράγοντα συμβατότητας - σε αυτήν την περίπτωση, σημαίνει την ικανότητα άλλων λειτουργικών συστημάτων να έχουν πρόσβαση σε ένα συγκεκριμένο σύστημα αρχείων.
Θα ξεκινήσω την αναθεώρηση με το ReiserFS - επειδή ο λόγος για τη σύνταξη αυτής της σημείωσης ήταν η ερώτηση: τι πρέπει να θεωρούνται μικρά αρχεία; Άλλωστε, είναι γνωστό ότι η αποτελεσματικότητα της εργασίας με μικρά αρχεία είναι η δύναμη αυτού του συστήματος αρχείων.

Έτσι, μικρά αρχεία σημαίνει αρχεία μικρότερα από ένα λογικό μπλοκ του συστήματος αρχείων, το οποίο στο Linux στις περισσότερες περιπτώσεις είναι ίσο με τέσσερα kilobyte, αν και μπορεί να καθοριστεί κατά τη μορφοποίηση εντός ορισμένων ορίων (ανάλογα με το συγκεκριμένο FS). Υπάρχουν αμέτρητα τέτοια μικρά αρχεία σε οποιοδήποτε λειτουργικό σύστημα τύπου Unix. Χαρακτηριστικό παράδειγμα είναι τα αρχεία που αποτελούν το δέντρο των θυρών του FreeBSD, των portages Gentoo και παρόμοιων συστημάτων που μοιάζουν με port.
Στα περισσότερα συστήματα αρχείων, τέτοια μίνι-αρχεία έχουν τόσο το δικό τους inode (έναν κόμβο πληροφοριών που περιέχει μετα-πληροφορίες για το αρχείο) όσο και ένα μπλοκ δεδομένων, το οποίο οδηγεί τόσο σε κατανάλωση χώρου στο δίσκο όσο και σε μείωση της απόδοσης των λειτουργιών αρχείων. Ειδικότερα, αυτός είναι ακριβώς ο λόγος για την καταστροφική στοχαστικότητα του συστήματος αρχείων του FreeBSD (τόσο του παλιού, UFS, όσο και του νέου, UFS2) όταν εργάζεται με το δικό του σύστημα θυρών.

Στο σύστημα αρχείων ReiserFS, σε τέτοιες περιπτώσεις, δεν εκχωρούνται ξεχωριστά μπλοκ για δεδομένα - καταφέρνει να ωθήσει τα δεδομένα αρχείου απευθείας στην περιοχή inode. Λόγω αυτού, εξοικονομείται χώρος στο δίσκο και η απόδοση αυξάνεται - κυριολεκτικά αρκετές φορές σε σύγκριση με όλα τα άλλα FS.
Αυτός ο χειρισμός μικρών αρχείων ReiserFS έχει δημιουργήσει το θρύλο της αναξιοπιστίας του. Πράγματι, όταν το σύστημα αρχείων καταρρέει (δηλαδή, η καταστροφή περιοχών εξυπηρέτησης), τα δεδομένα που βρίσκονται μαζί με τους ινώδους του εξαφανίζονται μαζί τους - και αμετάκλητα. Ενώ σε εκείνα τα συστήματα αρχείων όπου τα μπλοκ inode και δεδομένων διαχωρίζονται πάντα χωρικά, τα τελευταία μπορούν θεωρητικά να αποκατασταθούν. Έτσι, για το ext2/ext3 υπάρχουν ακόμη και εργαλεία που σας επιτρέπουν να το κάνετε αυτό.

Ωστόσο, όπως κάθε θρύλος, έτσι και αυτός δίνει μόνο την εντύπωση της αυθεντικότητας. Πρώτον, η μόνιμη απώλεια δεδομένων ισχύει μόνο για πολύ μικρά αρχεία. Μεταξύ των χρηστών, πρακτικά δεν υπάρχουν τέτοια, και όλα τα άλλα μπορούν εύκολα να αποκατασταθούν από το κιτ διανομής.
Δεύτερον, όταν μιλούσα για τη δυνατότητα ανάκτησης δεδομένων από μπλοκ που έχουν χάσει τη σύνδεσή τους με τους inode τους, δεν ήταν τυχαίο που χρησιμοποίησα τη λέξη "θεωρητικό". Γιατί στην πράξη αυτή η δραστηριότητα είναι εξαιρετικά κοπιαστική και δεν δίνει εγγυημένο αποτέλεσμα. Όποιος χρειάστηκε να το κάνει αυτό θα συμφωνήσει ότι μπορεί να επιδοθεί σε αυτό μόνο από πλήρη απόγνωση. Και αυτό ισχύει για όλους συστήματα αρχείων Linux. Επομένως, αυτή η πτυχή μπορεί να παραμεληθεί κατά την επιλογή ενός συστήματος αρχείων.

Όσον αφορά τη συνολική απόδοση, το ReiserFS είναι σίγουρα ταχύτερο από όλα τα άλλα ημερολογιακά FS και από ορισμένες απόψεις είναι ανώτερο από το ext2. Μπορείτε να βρείτε μια σύγκριση ταχύτητας ορισμένων κοινών λειτουργιών αρχείων εδώ.
Αλλά με το ReiserFS η κατάσταση συμβατότητας είναι κάπως χειρότερη. Η πρόσβαση σε αυτό από λειτουργικά συστήματα Windows, από όσο γνωρίζω, είναι αδύνατη. Ορισμένα λειτουργικά συστήματα της οικογένειας BSD (DragonFlyBSD, FreeBSD) υποστηρίζουν αυτό το σύστημα αρχείων, αλλά σε λειτουργία μόνο για ανάγνωση. Ακόμη και η πιθανότητα ένα αυθαίρετο Linux LiveCD από προηγούμενα χρόνια να μην έχει υποστήριξη ReiserFS δεν είναι μηδενική.

Και εδώ ήρθε η ώρα να θυμηθούμε το ext3fs. Το πλεονέκτημά του δεν είναι καθόλου στη μεγαλύτερη αξιοπιστία - αυτός είναι ο ίδιος μύθος με την αστάθεια του ReiserFS. Έχω ακούσει όχι λιγότερο για σφάλματα ext3fs παρά για παρόμοια περιστατικά με το ReiserFS. Εγώ ο ίδιος δεν μπορούσα να καταστρέψω ούτε το ένα ούτε το άλλο. Μόνο που δούλευε με το ext2 - αλλά ακόμα και τότε πολύ καιρό πριν, κατά τη διάρκεια του πυρήνα 2.2 (ή ακόμα και του 2.0).

Όχι, το κύριο πλεονέκτημα του ext3fs είναι η συμβατότητά του - είναι εγγυημένο ότι θα διαβαστεί από οποιοδήποτε σύστημα Linux. Για παράδειγμα, κατά την επαναφορά από κάποιο αρχαίο LiveCD στο χέρι - μια κατάσταση που πρακτικά δεν είναι τόσο απίστευτη, έπρεπε να μπω σε αυτήν. Και πάλι, τα περισσότερα συστήματα BSD μπορούν εύκολα να κατανοήσουν τα ext3fs (αν και χωρίς καταγραφή). Για Windows υπάρχουν επίσης, από όσο ξέρω, όλων των ειδών τα προγράμματα οδήγησης και τα πρόσθετα για κοινά διαχειριστές αρχείων(τύπος Συνολικός Διοικητής), παρέχοντας πρόσβαση σε κατατμήσεις με ext2fs/ext3fs.

Όσον αφορά την απόδοση, το ext3fs αφήνει ανάμεικτες εντυπώσεις. Πρώτον, η απόδοσή του εξαρτάται πολύ από τον τρόπο καταγραφής, από τους οποίους υπάρχουν τρεις: με πλήρη καταγραφή δεδομένων, μερική καταγραφή και καταγραφή μόνο μεταδεδομένων. Σε κάθε λειτουργία, εμφανίζει διαφορετική απόδοση σε διαφορετικούς τύπους λειτουργιών αρχείων. Ωστόσο, σε καμία περίπτωση η απόδοση δεν σπάει ρεκόρ.

Ωστόσο, εάν η απαίτηση απόδοσης είναι πρώτη, τότε το ext2fs δεν έχει ανταγωνισμό - ωστόσο, σε αυτήν την περίπτωση θα πρέπει να ανεχθείτε καθόλου την έλλειψη καταγραφής. Και, κατά συνέπεια, με μακροχρόνιους ελέγχους του συστήματος αρχείων σε περίπτωση λανθασμένου τερματισμού λειτουργίας - και με τον όγκο των σύγχρονων δίσκων, αυτό μπορεί να διαρκέσει πολύ χρόνο...

Τα ακόλουθα μπορούν να ειπωθούν για το XFS. Από πλευράς συμβατότητας, ισχύουν όλα όσα γράφτηκαν για το ReiserFS - επιπλέον, μέχρι κάποιο διάστημα δεν υποστηριζόταν από τον τυπικό πυρήνα Linux. Από πλευράς απόδοσης, το XFS επίσης δεν λάμπει, αποδίδοντας συνολικά περίπου στο ίδιο επίπεδο με το ext3fs. Και η λειτουργία της διαγραφής αρχείων δείχνει γενικά καταθλιπτική βραδύτητα.
Σύμφωνα με τις παρατηρήσεις μου, η χρήση του XFS αποδίδει όταν εργάζεστε όχι μόνο με μεγάλα, αλλά με πολύ μεγάλα αρχεία - που στην πραγματικότητα είναι μόνο εικόνες DVD και αρχεία βίντεο.

Επιτρέψτε μου να επιστρέψω στο ζήτημα της αξιοπιστίας. Μια συνηθισμένη διακοπή ρεύματος κατά τη διάρκεια της κανονικής εργασίας του χρήστη, κατά κανόνα, γίνεται ανώδυνα ανεκτή από όλα τα ημερολογιακά συστήματα αρχείων (και κανένα από αυτά δεν διασφαλίζει την ασφάλεια των λειτουργιών του χρήστη που δεν είναι γραμμένες στο δίσκο - η διάσωση πνιγμένων παραμένει έργο των ίδιων των πνιγόμενων ατόμων). Είναι αλήθεια ότι για οποιοδήποτε σύστημα αρχείων είναι δυνατή η προσομοίωση μιας κατάστασης στην οποία η απενεργοποίηση της τροφοδοσίας θα οδηγήσει σε περισσότερο ή λιγότερο σοβαρή βλάβη. Ωστόσο, στην πραγματική ζωή, τέτοιες καταστάσεις είναι απίθανο να συμβούν. Και μπορείτε να τα εξαλείψετε εντελώς αγοράζοντας ένα αδιάλειπτο τροφοδοτικό - θα δώσει περισσότερη εμπιστοσύνη στην ασφάλεια των δεδομένων από τον τύπο του συστήματος αρχείων. Λοιπόν, σε κάθε περίπτωση, η μόνη εγγύηση για την επαναφορά κατεστραμμένων δεδομένων μπορεί να είναι τα τακτικά αντίγραφα ασφαλείας...

Νομίζω ότι οι πληροφορίες που παρουσιάζονται παραπάνω είναι αρκετές για μια τεκμηριωμένη επιλογή. Η προσωπική μου επιλογή τα τελευταία χρόνια ήταν το ReiserFS. Περιστασιακά, σε συστήματα όπου είναι δικαιολογημένο να μετακινήσετε οτιδήποτε είναι δυνατό εκτός του ριζικού διαμερίσματος, είναι λογικό να χρησιμοποιείτε ext3fs για το ριζικό σύστημα αρχείων και ReiserFS για όλους τους άλλους.

Εάν παρέχεται ξεχωριστό διαμέρισμα για τον κατάλογο /boot (και αυτό συνιστάται κατά τη χρήση GRUB bootloaderαπό τους προγραμματιστές του) - γι 'αυτό, κανένα άλλο σύστημα αρχείων εκτός από το ext2fs δεν δικαιολογείται, οποιαδήποτε καταγραφή δεν έχει νόημα εδώ. Τέλος, αν δημιουργήσετε ένα ξεχωριστό διαμέρισμα για όλα τα είδη πολυμέσων, τότε μπορείτε να σκεφτείτε το XFS.

Αν προσεγγίσουμε την εξήγηση πιο μεθοδικά

ext - στις πρώτες μέρες του Linux, το ext2 (εκτεταμένη έκδοση συστήματος αρχείων 2) ήταν κυρίαρχο. Από το 2002, αντικαταστάθηκε από το σύστημα ext3, το οποίο είναι σε μεγάλο βαθμό συμβατό με το ext2, αλλά υποστηρίζει επίσης λειτουργίες καταγραφής, και όταν εργάζεστε με την έκδοση πυρήνα 2.6 και νεότερη, ACL. Το μέγιστο μέγεθος αρχείου είναι 2 TB, το μέγιστο μέγεθος συστήματος αρχείων είναι 8 TB. Στα τέλη του 2008 ανακοινώθηκε επίσημα η κυκλοφορία του ext4, το οποίο είναι συμβατό με το ext3, αλλά πολλές λειτουργίες υλοποιούνται πιο αποτελεσματικά από πριν. Επιπλέον, το μέγιστο μέγεθος συστήματος αρχείων είναι 1 EB (1.048.576 TB) και μπορείτε να περιμένετε ότι αυτό θα είναι αρκετό για κάποιο χρονικό διάστημα. Σχετικά με το reiser - το σύστημα πήρε το όνομά του από τον ιδρυτή του, Hans Reiser, και ήταν το πρώτο σύστημα με λειτουργίες καταγραφής που είχε πρόσβαση στον πυρήνα του Linux για δεδομένα. Η έκδοση SUSE του Zp θεωρήθηκε ακόμη και τυπική για κάποιο χρονικό διάστημα. Τα κύρια πλεονεκτήματα του reiser σε σύγκριση με το ext3 είναι η υψηλότερη ταχύτητα και η αποτελεσματικότητα τοποθέτησης κατά την εργασία με μικρά αρχεία (και σε ένα σύστημα αρχείων, κατά κανόνα, τα περισσότερα αρχεία είναι μικρά). Με τον καιρό, ωστόσο, η ανάπτυξη των reisefers σταμάτησε. Εδώ και καιρό έχει ανακοινωθεί ότι θα κυκλοφορήσει η έκδοση 4, η οποία δεν είναι ακόμα έτοιμη και η υποστήριξη για την έκδοση 3 έχει σταματήσει. Σχετικά με το xfs - το σύστημα αρχείων xfs αναπτύχθηκε αρχικά για σταθμούς εργασίας SGI που εκτελούνται στο λειτουργικό σύστημα IRIX. Το Xfs είναι ιδιαίτερα καλό για εργασία με μεγάλα αρχεία και είναι ιδιαίτερα ιδανικό για εργασία με ροή βίντεο. Το σύστημα υποστηρίζει ποσοστώσεις και εκτεταμένα χαρακτηριστικά (ACL).
jfs

jfs - a66peBHaTypaJFS σημαίνει "Journaled File System". Αρχικά αναπτύχθηκε για την IBM και στη συνέχεια προσαρμόστηκε για Linux.Ο Jfs δεν γνώρισε ποτέ μεγάλη αναγνώριση στο Linux και επί του παρόντος μαραζώνει σε μια άθλια ύπαρξη, κατώτερη από άλλα συστήματα αρχείων.
brtfs

brtfs - Εάν είναι η θέληση των κορυφαίων προγραμματιστών πυρήνα, το σύστημα αρχείων brtfs στο Linux έχει λαμπρό μέλλον. Αυτό το σύστημα αναπτύχθηκε από την αρχή στην Oracle. Περιλαμβάνει υποστήριξη για χαρτογράφηση συσκευών και RAID. Το Brtfs είναι περισσότερο παρόμοιο με το σύστημα ZFS που αναπτύχθηκε από τη Sun. Τα πιο ενδιαφέροντα χαρακτηριστικά του περιλαμβάνουν τον επιτόπιο έλεγχο συστήματος αρχείων, καθώς και υποστήριξη για SSD (οι δίσκοι στερεάς κατάστασης είναι σκληροί δίσκοι που τροφοδοτούνται από μνήμη flash). Δυστυχώς, οι εργασίες στα brtfs δεν θα ολοκληρωθούν στο άμεσο μέλλον. Το Fedora, ξεκινώντας από την έκδοση 11, παρέχει τη δυνατότητα εγκατάστασης brtfs, αλλά συνιστώ να το χρησιμοποιήσετε μόνο για προγραμματιστές συστημάτων αρχείων!
Δεν υπάρχει "γρηγορότερο" ή "καλύτερο" σύστημα αρχείων - η αξιολόγηση εξαρτάται από το για το οποίο σκοπεύετε να χρησιμοποιήσετε το σύστημα. Συνιστάται στους αρχάριους χρήστες Linux που εργάζονται σε τοπικό υπολογιστή να εργάζονται με ext3 και στους διαχειριστές διακομιστή με ext4. Φυσικά, με το ext4 η ταχύτητα λειτουργίας είναι υψηλότερη από ό,τι με το ext3, αλλά ταυτόχρονα, στο σύστημα ext4 η κατάσταση με την αξιοπιστία των δεδομένων είναι πολύ χειρότερη - μπορεί να χάσετε πληροφορίες εάν το σύστημα απενεργοποιηθεί ξαφνικά.

Εάν έχετε εγκαταστήσει ένα δεύτερο λειτουργικό σύστημα που μοιάζει με UNIX στον υπολογιστή σας, τότε τα ακόλουθα συστήματα αρχείων θα σας φανούν χρήσιμα κατά την ανταλλαγή δεδομένων (από το ένα λειτουργικό σύστημα στο άλλο).

sysv - χρησιμοποιείται σε SCO, Xenix και Coherent OS.

ufs - χρησιμοποιείται σε FreeBSD, NetBSD, NextStep και SunOS. Το Linux μπορεί να διαβάσει πληροφορίες μόνο από τέτοια συστήματα αρχείων, αλλά δεν μπορεί να κάνει αλλαγές στα δεδομένα. Για να αποκτήσετε πρόσβαση σε τμήματα από το BSD, θα χρειαστείτε επιπλέον την επέκταση ετικέτας δίσκου BSD. Μια παρόμοια επέκταση υπάρχει για πίνακες διαμερισμάτων SunOS.

Το ZFS είναι ένα σχετικά νέο σύστημα που αναπτύχθηκε από τη Sun για το Solaris. Επειδή ο κώδικας ZFS δεν είναι συμβατός με την GPL, δεν μπορεί να ενσωματωθεί με τον πυρήνα του Linux. Για το λόγο αυτό, το Linux υποστηρίζει αυτό το σύστημα αρχείων μόνο έμμεσα, μέσω FUSE.
Windows, Mac OS X

Τα ακόλουθα συστήματα αρχείων θα είναι χρήσιμα κατά την ανταλλαγή πληροφοριών με MS DOS, Windows, OS/2 και Macintosh.

vfat - χρησιμοποιείται στα Windows 9x/ME. Το Linux μπορεί να διαβάσει πληροφορίες από τέτοια διαμερίσματα και να κάνει αλλαγές σε αυτά. Τα προγράμματα οδήγησης συστήματος vfat σάς επιτρέπουν να εργάζεστε με παλαιότερα συστήματα αρχείων MS DOS (8 + 3 χαρακτήρες).

ntfs - το σύστημα χρησιμοποιείται σε όλες τις σύγχρονες εκδόσεις των Windows: otNT και νεότερες εκδόσεις. Το Linux μπορεί να διαβάσει και να τροποποιήσει τα αρχεία του.

hfs και hfsplus - αυτά τα συστήματα αρχείων χρησιμοποιούνται σε υπολογιστές Apple. Το Linux μπορεί να διαβάσει και να τροποποιήσει τα αρχεία του.

Τα δεδομένα CD και DVD χρησιμοποιούν συνήθως τα δικά τους συστήματα αρχείων.

iso9660 - Το σύστημα αρχείων για CD-ROM περιγράφεται στο πρότυπο ISO-9660, το οποίο επιτρέπει μόνο σύντομα ονόματα αρχείων. Τα μεγάλα ονόματα υποστηρίζονται διαφορετικά σε διαφορετικά λειτουργικά συστήματα, χρησιμοποιώντας μια ποικιλία επεκτάσεων που δεν είναι συμβατές μεταξύ τους. Το Linux μπορεί να τρέξει τόσο την επέκταση Rockridge, η οποία είναι κοινή στο UNIX, όσο και την επέκταση Joliet, που αναπτύχθηκε από τη Microsoft.

udf - αυτή η μορφή (καθολική μορφή δίσκου) εμφανίστηκε και αναπτύχθηκε ως διάδοχος του ISO 9660.

Συστήματα αρχείων δικτύου

Τα συστήματα αρχείων δεν χρειάζεται να βρίσκονται στον τοπικό δίσκο - αυτά
μπορεί να συνδεθεί σε υπολογιστή και μέσω δικτύου. Ο πυρήνας Linux υποστηρίζει διάφορα συστήματα αρχείων δικτύου, από τα οποία τα παρακάτω είναι τα πιο συχνά χρησιμοποιούμενα.

smbfs/cifs - βοηθήστε στη σύνδεση των καταλόγων δικτύου Windows ή Samba σε ένα δέντρο καταλόγου.

Το nfs είναι το πιο σημαντικό σύστημα αρχείων δικτύου στο UNIX.

coda - αυτό το σύστημα είναι πολύ παρόμοιο με το NFS. Έχει πολλά πρόσθετα χαρακτηριστικά, αλλά δεν είναι πολύ συνηθισμένο.

ncpfs - εκτελείται στο πρωτόκολλο πυρήνα NetWare· το oH χρησιμοποιείται από το Novell Netware.

Εικονικά συστήματα αρχείων

Το Linux έχει πολλά συστήματα αρχείων που δεν έχουν σχεδιαστεί για την αποθήκευση δεδομένων στον σκληρό δίσκο (ή σε άλλα μέσα αποθήκευσης), αλλά μόνο για την ανταλλαγή πληροφοριών μεταξύ του πυρήνα και των προγραμμάτων χρήστη.
devpts - Αυτό το σύστημα αρχείων παρέχει πρόσβαση σε ψευδοτερματικά (συντομογραφία PTY) μέσω /dev/pts/* σύμφωνα με την προδιαγραφή UNIX-98. (Τα ψευδοτερματικά μιμούνται μια σειριακή διεπαφή. Σε συστήματα UNIX/Linux, τέτοιες διεπαφές χρησιμοποιούνται από εξομοιωτές τερματικού όπως το xterm. Συνήθως, χρησιμοποιούνται συσκευές όπως το /dev/ ttypn. Αντίθετα, η προδιαγραφή UNIX-98 ορίζει νέες συσκευές. Περισσότερες λεπτομέρειες αναφέρονται στο τερματικό κειμένου H0WT0.)
proc και sysfs - το σύστημα αρχείων proc χρησιμοποιείται για την εμφάνιση πληροφοριών υπηρεσίας που σχετίζονται με τη διαχείριση πυρήνα και διεργασιών. Επιπλέον, το σύστημα αρχείων sysfs δημιουργεί σχέσεις μεταξύ του πυρήνα και του υλικού. Και τα δύο συστήματα αρχείων είναι προσαρτημένα στο /proc και στο /sys.
tmpfs - Αυτό το σύστημα είναι χτισμένο με βάση την κοινή μνήμη σύμφωνα με το System V. Συνήθως τοποθετείται στη θέση /dev/shm και επιτρέπει την αποτελεσματική ανταλλαγή πληροφοριών μεταξύ δύο προγραμμάτων. Σε ορισμένες διανομές (όπως το Ubuntu), οι κατάλογοι /var/run και /var/lock δημιουργούνται επίσης χρησιμοποιώντας το σύστημα αρχείων tmpfs. Τα αρχεία σε αυτούς τους καταλόγους χρησιμοποιούνται από ορισμένους δαίμονες δικτύου για την αποθήκευση αριθμών αναγνώρισης διεργασιών καθώς και πληροφορίες πρόσβασης στα αρχεία. Χάρη στο tmpfs, αυτά τα δεδομένα αντικατοπτρίζονται πλέον στη μνήμη RAM. Η μέθοδος εγγυάται υψηλή ταχύτητα, καθώς και ότι μετά την απενεργοποίηση του υπολογιστή, δεν θα μείνουν αρχεία στους καταλόγους /var/run ή /var/lock.

usbfs - το σύστημα αρχείων usbfs, ξεκινώντας από την έκδοση πυρήνα 2.6 και νεότερη, παρέχει πληροφορίες σχετικά με τις συνδεδεμένες συσκευές USB. Συνήθως ενσωματώνεται στο σύστημα αρχείων proc. Σχετικά με την υποστήριξη συσκευών USB στο Linux.

Άλλα συστήματα αρχείων

auto - στην πραγματικότητα, δεν υπάρχει σύστημα αρχείων με αυτό το όνομα. Ωστόσο, η λέξη auto μπορεί να χρησιμοποιηθεί στο /etc/fstab ή με την εντολή mount για να καθορίσετε το σύστημα αρχείων. Σε αυτήν την περίπτωση, το Linux θα προσπαθήσει να αναγνωρίσει το σύστημα αρχείων από μόνο του. Αυτή η μέθοδος λειτουργεί με τα περισσότερα μεγάλα συστήματα αρχείων.
autofs, autofs4

Το autofs, το autofs4 δεν είναι επίσης συστήματα αρχείων, αλλά επεκτάσεις πυρήνα που εκτελούνται αυτόματα εντολή προσάρτησηςγια επιλεγμένα συστήματα αρχείων. Εάν ένα σύστημα αρχείων δεν χρησιμοποιείται για κάποιο χρονικό διάστημα, η εντολή umount εκτελείται αυτόματα σε αυτό. Αυτή η μέθοδος είναι βολική κυρίως σε περιπτώσεις όπου μόνο λίγοι από τους πολλούς καταλόγους NFS χρησιμοποιούνται ενεργά ταυτόχρονα.

Για την εκτέλεση τέτοιων λειτουργιών, το σενάριο /etc/init.d/ autofs εκτελεί αυτόματα το πρόγραμμα αυτόματης προσάρτησης κατά την εκκίνηση του συστήματος. Διαμορφώνεται χρησιμοποιώντας το αρχείο /etc/auto.master. Τα αντίστοιχα προγράμματα εγκαθίστανται αυτόματα, για παράδειγμα, στο Red Hat και στο Fedora. Σε κάθε περίπτωση, το autofs ενεργοποιείται μόνο μετά τη διαμόρφωση του /etc/auto.master ή του /etc/auto.misc.
κραμφ και κολοκυθάκια

cramfs και squashfs - Τα συστήματα αρχείων Cram και Squash είναι μόνο για ανάγνωση. Χρησιμοποιούνται για να «πακετάρουν» όσο το δυνατόν περισσότερα zip αρχεία σε μνήμη flash ή ROM (μνήμη μόνο για ανάγνωση).

Fuse - FUSE σημαίνει Filesystem in Userspace και επιτρέπει την ανάπτυξη και χρήση προγραμμάτων οδήγησης συστήματος αρχείων εκτός του πυρήνα. Επομένως, το FUSE χρησιμοποιείται πάντα με ένα εξωτερικό πρόγραμμα οδήγησης συστήματος αρχείων. Το FUSE λειτουργεί, συγκεκριμένα, με το πρόγραμμα οδήγησης NTFS ntfs-3g.

gfs και ocfs - Το παγκόσμιο σύστημα αρχείων και το σύστημα αρχείων συμπλέγματος από την Oracle (Oracle Cluster File System) σάς επιτρέπουν να δημιουργήσετε γιγάντια συστήματα αρχείων δικτύου στα οποία μπορείτε να έχετε παράλληλη πρόσβαση από πολλούς υπολογιστές ταυτόχρονα.

jffs και yaffs - Το Journaling Flash File System και το Yet Another Flash File System είναι ειδικά βελτιστοποιημένα για εργασία με μονάδες SSD και μέσα flash. Χρησιμοποιώντας ειδικούς αλγόριθμους, προσπαθούν να χρησιμοποιήσουν όλα τα κύτταρα μνήμης ομοιόμορφα (τεχνολογία ισοπέδωσης φθοράς) για να αποφύγουν την πρόωρη βλάβη του συστήματος.
βρόχος

βρόχος - χρησιμοποιείται για εργασία με ψευδο συσκευές. Μια συσκευή loopback είναι ένας προσαρμογέας που μπορεί να έχει πρόσβαση σε ένα κανονικό αρχείο ως συσκευή μπλοκ. Χάρη σε αυτό, μπορείτε να τοποθετήσετε οποιοδήποτε σύστημα αρχείων σε οποιοδήποτε αρχείο και, στη συνέχεια, να το συνδέσετε στο δέντρο καταλόγου χρησιμοποιώντας το mount. Η συνάρτηση πυρήνα που είναι υπεύθυνη για αυτό - υποστήριξη ψευδο-συσκευής - υλοποιείται στη μονάδα βρόχου.

Υπάρχουν διάφορες χρήσεις για ψευδοσυσκευές. Συγκεκριμένα, μπορούν να χρησιμοποιηθούν κατά τη δημιουργία δίσκων αρχικής μνήμης RAM για GRUB ή LILO, κατά την υλοποίηση κρυπτογραφημένων συστημάτων αρχείων ή τη δοκιμή εικόνων ISO για CD.

Συστήματα αρχείων πολυμέσων αποθήκευσης

Συστήματα αρχείων
ISO 9660
Επέκταση συστήματος αρχείων Joliet ISO 9660.
Rock Ridge (RRIP, IEEE P1282) – μια επέκταση συστήματος αρχείων ISO 9660 που έχει σχεδιαστεί για την αποθήκευση των χαρακτηριστικών αρχείων που χρησιμοποιούνται στα λειτουργικά συστήματα POSIX
Επεκτάσεις Amiga Rock Ridge
Ελ Τορίτο
Επεκτάσεις Apple ISO9660
HFS, HFS+
Η Universal Disk Format είναι μια προδιαγραφή μιας μορφής συστήματος αρχείων που είναι ανεξάρτητη από το λειτουργικό σύστημα για την αποθήκευση αρχείων σε οπτικά μέσα. Το UDF είναι μια εφαρμογή του προτύπου ISO/IEC 13346
Όρος Ρενιέ

Αρχείο Σύστημα Linux- αυτό είναι πιο συχνά το ext4. Είναι εγγεγραμμένο σε ημερολόγιο και σας επιτρέπει να εργάζεστε άνετα με δεδομένα όταν επιλύετε τη συντριπτική πλειονότητα των προβλημάτων. Ωστόσο, υπάρχουν και άλλα. Οι κύριοι τύποι συστημάτων αρχείων και οι αρχές εργασίας μαζί τους θα συζητηθούν στο πλαίσιο αυτού του υλικού.

Τύποι συστημάτων αρχείων Linux και τα χαρακτηριστικά τους

Τα διακριτικά χαρακτηριστικά είναι η ταχύτητα εργασίας με αρχεία, η ασφάλεια και οι παράμετροι (όπως το μέγεθος μπλοκ) που υπάρχουν από προεπιλογή και ορίζονται κατά τη δημιουργία του FS. Ίσως το πιο σημαντικό χαρακτηριστικό είναι η παρουσία ενός περιοδικού. Το αρχείο καταγραφής συστήματος καταγράφει δεδομένα ή μεταδεδομένα(μόνο κεφαλίδες) από τις οποίες μπορούν να αποκατασταθούν πληροφορίες σε περίπτωση αποτυχίας.

Ένα σύστημα αρχείων μπορεί να δημιουργηθεί σε οποιαδήποτε συσκευή: σε δίσκο ή διαμέρισμα συστήματος.

Σύστημα αρχείων EXT2

Το EXT2 είναι επί του παρόντος ένα ξεπερασμένο σύστημα αρχείων που πρακτικά δεν χρησιμοποιείται σε σύγχρονες εγκαταστάσεις. Το κύριο μειονέκτημα είναι η έλλειψη καταγραφής, η οποία, κατά συνέπεια, καθιστά αδύνατη την επαναφορά δεδομένων σε περίπτωση αποτυχίας. Χρησιμοποιείται ακόμα σε φορητά μέσα αποθήκευσης όπως USB. Δεν απαιτείται περιοδικό για αυτούς, αφού καταλαμβάνει συγκεκριμένο χώρο.

Εγγυάται επίσης τη μέγιστη ταχύτητα λειτουργίας.

  • για μέγιστο μέγεθος αρχείου EXT2 -2 TB

Σύστημα αρχείων EXT3

Το αντικαταστημένο EXT2, το κύριο χαρακτηριστικό είναι η εμφάνιση του γεμιστήρα, είναι πλήρως συμβατό με το EXT2 (το EXT2 μπορεί να μετατραπεί ελεύθερα σε EXT3). Σήμερα είναι επίσης σπάνιο· το EXT4 χρησιμοποιείται σχεδόν πάντα.

Περιοδικό - μια ειδική περιοχή στη μνήμη στην οποία καταγράφονται πληροφορίες για όλες τις αλλαγές

  • για μέγιστο μέγεθος αρχείου EXT3 -2 TB
  • Το μέγιστο μέγεθος όλων των αρχείων είναι 32 TB
  • Κάθε κατάλογος μπορεί να έχει έως και 32.000 υποκαταλόγους

Κατά την εγγραφή ημερολογίου, υπάρχουν τρεις επιλογές (καθορίζονται κατά τη δημιουργία του συστήματος αρχείων):

  • περιοδικό – μεταδεδομένα, καθώς και τις ίδιες τις πληροφορίες, στο περιοδικό
  • παραγγελία - προεπιλεγμένη επιλογή, μόνο τα μεταδεδομένα αποθηκεύονται ακόμη και μετά την εγγραφή στο δίσκο
  • εγγραφή – μόνο τα μεταδεδομένα αποθηκεύονται επίσης, μπορείτε να επιλέξετε να τα αποθηκεύσετε πριν ή μετά την εγγραφή στο δίσκο

Σύστημα αρχείων EXT4

Η σύγχρονη έκδοση του εκτεταμένου συστήματος αρχείων, αυτή είναι αυτή που χρησιμοποιείται συχνότερα

  • μέγιστο μέγεθος αρχείου -2 TB 16 TB
  • Το μέγιστο μέγεθος όλων των αρχείων είναι 1 EB (exabyte). 1 EB = 1024 PB (petabyte). 1 PB = 1024 TB (terabyte).
  • Κάθε κατάλογος μπορεί να έχει έως και 64.000 υποκαταλόγους

Στο EXT4, η καταγραφή μπορεί να απενεργοποιηθεί ορίζοντας την επιλογή δεδομέναόταν τοποθετηθεί μέσα μακριά από

EXT ως το κύριο σύστημα αρχείων Linux και λειτουργική πρακτική

Το σύστημα αρχείων δημιουργείται με την εντολή mk2fs

Η απαιτούμενη επιλογή καταγραφής καθορίζεται κατά την τοποθέτηση, για παράδειγμα:

mount /dev/vdc /mnt/1 -t ext3 -o data=journal

Μετατροπή από EXT2 E σε XT3

ReiserFS

Το ReiserFS (και η σύγχρονη υλοποίηση του Reiser4 με υποστήριξη SELinux) έχει καλή απόδοση και είναι πολύ παραγωγικό - ειδικά όταν εργάζεστε με μεγάλο αριθμό μικρών αρχείων. Το ReiserFS δεν εκχωρεί inodes για κάθε μικρό αρχείο, αλλά τα επεξεργάζεται μαζί και το ReiserFS χρησιμοποιεί επίσης ένα ημερολόγιο με πολλές διαθέσιμες επιλογές. Επί του παρόντος, το σύστημα αρχείων υποστηρίζεται από προγραμματιστές από τη Ρωσία.

Μπορείτε να δημιουργήσετε ένα FS για μια συσκευή με την εντολή

XFS

Το XFS είναι ένα σύστημα αρχείων ημερολογίου. Χρήσεις ΕΜΒΟΛΟγια να αποθηκεύσετε πληροφορίες, ώστε να είναι δυνατή η απώλεια δεδομένων - για παράδειγμα, όταν σβήσει το ρεύμα.

Για να χρησιμοποιήσετε το XFS στο Ubuntu θα χρειαστεί να εγκαταστήσετε πακέτα xfsprogsΚαι xfsdump

vfat

Το σύστημα αρχείων Linux υπάρχει επίσης στο περιβάλλον των Windows. Χρησιμοποιείται όταν χρειάζεται να οργανώσετε την κοινόχρηστη πρόσβαση σε ορισμένους δίσκους και διαμερίσματα πελατών με διαφορετικά λειτουργικά συστήματα. Σε άλλες περιπτώσεις, δεν συνιστάται η χρήση του καθώς ενδέχεται να προκύψουν δυσκολίες κατά την εργασία σε Linux.

(Δεύτερο εκτεταμένο σύστημα αρχείων).

· Ιστορία της ανάπτυξης συστημάτων αρχείων Linux

· Δομή διαμερισμάτων δίσκου σε ext2fs

·

· Κατάλογοι

· Αρχεία συσκευής

·

·

· Βιβλιοθήκη EXT2fs

· Εργαλεία συστήματος EXT2fs

· Υπολογισμός απόδοσης

Μαθηματική σχολή

Λογισμικό πρόγραμμα

2ο έτος 5ο γρ.

Τσιτσίροφ Αντρέι

Ψεύτικο σύστημα EXT2fs (Δεύτερο εκτεταμένο σύστημα αρχείων).

Ιστορία της ανάπτυξης συστημάτων αρχείων Linux

Οι πρώτες εκδόσεις του Linux αναπτύχθηκαν με βάση το λειτουργικό σύστημα Minix. Θα ήταν πιο εύκολο να μοιραστείτε τους δίσκους μεταξύ των δύο συστημάτων παρά να αναπτύξετε ένα νέο σύστημα αρχείων, έτσι ο Linus Torvalds αποφάσισε να εισαγάγει υποστήριξη Linux για το σύστημα αρχείων Minix. Εκείνη την εποχή, αυτό το σύστημα αρχείων ήταν ένα αρκετά αποδοτικό προϊόν λογισμικού με σχετικά μικρό αριθμό σφαλμάτων.

Ωστόσο, οι περιορισμοί που σχετίζονται με τη δομή του συστήματος αρχείων Minix ήταν αρκετά υψηλοί, έτσι άρχισαν να σκέφτονται την ανάπτυξη ενός νέου συστήματος αρχείων για Linux.

Για να απλοποιηθεί η υλοποίηση του νέου συστήματος αρχείων στον πυρήνα του Linux, αναπτύχθηκε ένα εικονικό σύστημα αρχείων (VFS). Το VFS γράφτηκε αρχικά από τον Chris Provenzano και στη συνέχεια ξαναγράφτηκε από τον Linus Torvalds πριν ενσωματωθεί στον πυρήνα.

Μετά την εγκατάσταση του VFS στον πυρήνα, ένα νέο σύστημα αρχείων, το EXTfs (Extended File System), αναπτύχθηκε τον Απρίλιο του 1992 και προστέθηκε στην έκδοση Linux 0.96c. Στο νέο σύστημα αρχείων, αφαιρέθηκαν δύο σημαντικοί περιορισμοί του συστήματος Minix: το μέγιστο μέγεθός του θα μπορούσε να φτάσει τα 2 gigabyte και το μέγιστο μήκος ονόματος αρχείου θα μπορούσε να είναι 255 χαρακτήρες. Αυτή ήταν μια βελτίωση σε σχέση με το σύστημα αρχείων Minix, αν και εξακολουθούσαν να υπάρχουν ορισμένα προβλήματα. Δεν υπήρχε υποστήριξη για κοινόχρηστη πρόσβαση, τροποποίηση του περιγραφέα ευρετηρίου και τροποποίηση κελιών χρόνου αλλαγής αρχείων. Αυτό το σύστημα αρχείων χρησιμοποίησε συνδεδεμένες λίστες για να λειτουργήσει σε ελεύθερα μπλοκ και inodes, τα οποία επηρέασαν πολύ την απόδοση του συστήματος: με την πάροδο του χρόνου, οι λίστες έγιναν ακατάλληλες και μη ταξινομημένες, οδηγώντας σε κατακερματισμό του συστήματος αρχείων.

Η λύση σε αυτά τα προβλήματα ήταν η κυκλοφορία τον Ιανουάριο του 1993 άλφα εκδόσεων δύο νέων συστημάτων αρχείων: Xia και EXT2fs (Δεύτερο εκτεταμένο σύστημα αρχείων). Ως επί το πλείστον, το σύστημα αρχείων Xia βασίστηκε στο Minix, με μερικές νέες δυνατότητες που προστέθηκαν. Αυτή ήταν κυρίως η δυνατότητα εργασίας με μεγάλα ονόματα αρχείων, υποστήριξη για μεγαλύτερα διαμερίσματα δίσκου και υποστήριξη για τρία κελιά χρόνου αλλαγής αρχείων. Από την άλλη, το EXT2fs βασίστηκε σε EXTfs με πολλές βελτιώσεις και προσθήκες. Είχε επίσης ευκαιρίες για μελλοντική ανάπτυξη.

Όταν κυκλοφόρησαν αυτά τα δύο συστήματα αρχείων, λειτουργικά ήταν περίπου ίσα. Το σύστημα Xia ήταν πιο αξιόπιστο από το EXT2fs ελαχιστοποιώντας το. Καθώς άρχισαν να χρησιμοποιούνται ευρέως, ανακαλύφθηκαν σφάλματα στο σύστημα EXT2fs και προστέθηκαν ένας μεγάλος αριθμός νέων λειτουργιών και βελτιώσεων. Το σύστημα αρχείων EXT2fs είναι πλέον πολύ αξιόπιστο και έχει γίνει το de facto πρότυπο συστήματος αρχείων Linux.

Ο παρακάτω πίνακας παρέχει γενικές πληροφορίες σχετικά με τη λειτουργικότητα που παρέχεται από διάφορα συστήματα αρχείων.

Minix FS

Ext FS

Ext2FS

Xia FS

Μέγιστο μέγεθος συστήματος αρχείων

Μέγιστο μήκος αρχείου

Μέγιστο μήκος ονόματος αρχείου

Υποστήριξη για τρία κελιά χρόνου αλλαγής αρχείων

Επεκτασιμότητα

Μέγεθος μπλοκ με δυνατότητα αλλαγής μεγέθους

Προστασία πληροφοριών

Εάν είναι απαραίτητο, το μήκος του ονόματος αρχείου σε Παράταση 2μπορεί να αυξηθεί σε 1012.

Το EXT2fs διατηρεί έναν ορισμένο αριθμό μπλοκ για τον χρήστη root. Συνήθως αυτό είναι το 5% του συνόλου, το οποίο επιτρέπει στον διαχειριστή του συστήματος να αποφύγει την εξάντληση του χώρου του σκληρού δίσκου όταν αυτός είναι γεμάτος με διαδικασίες άλλων χρηστών.

Δομή διαμερισμάτων δίσκου σε ext2fs

Οι κατασκευαστές σκληρών δίσκων συνήθως αποστέλλουν τα προϊόντα τους μορφοποιημένα χαμηλού επιπέδου. Από όσο γνωρίζω, αυτό σημαίνει ότι ολόκληρος ο χώρος του δίσκου χωρίζεται σε «τομείς» μεγέθους 512 byte χρησιμοποιώντας ειδικές ετικέτες. Ένας τέτοιος δίσκος (ή διαμέρισμα δίσκου) πρέπει να προετοιμαστεί για χρήση σε ένα συγκεκριμένο λειτουργικό σύστημα. Στο MS-DOS ή στα Windows, η διαδικασία προετοιμασίας ονομάζεται μορφοποίηση και στο Linux - δημιουργία συστήματος αρχείων. Δημιουργία συστήματος αρχείων ext2fsσυνίσταται στη δημιουργία μιας συγκεκριμένης λογικής δομής σε ένα διαμέρισμα δίσκου. Αυτή η δομή είναι κατασκευασμένη ως εξής. Αρχικά, εκχωρείται μια περιοχή εκκίνησης στο δίσκο. Η περιοχή εκκίνησης δημιουργείται σε οποιοδήποτε σύστημα αρχείων. Στο κύριο διαμέρισμα, περιέχει μια εγγραφή εκκίνησης - ένα κομμάτι κώδικα που ξεκινά τη διαδικασία φόρτωσης του λειτουργικού συστήματος κατά την εκκίνηση. Αυτή η περιοχή δεν χρησιμοποιείται σε άλλα διαμερίσματα. Ο υπόλοιπος χώρος στο δίσκο χωρίζεται σε μπλοκ. Ένα μπλοκ μπορεί να έχει μέγεθος 1, 2 ή 4 kilobyte. Ένα μπλοκ είναι μια διευθυνσιοδοτούμενη μονάδα χώρου στο δίσκο. Τα αρχεία κατανέμονται σε μπλοκ, επομένως υπάρχουν αντισταθμίσεις κατά την επιλογή του μεγέθους του μπλοκ. Μεγάλο μέγεθοςΤο μπλοκ, κατά κανόνα, μειώνει τον αριθμό των προσβάσεων στο δίσκο κατά την ανάγνωση ή την εγγραφή ενός αρχείου, αλλά αυξάνει το ποσοστό του χαμένου χώρου, ειδικά όταν υπάρχει μεγάλος αριθμός μικρών αρχείων.

Τα μπλοκ στην περιοχή τους συνδυάζονται σε ομάδες μπλοκ. Ομάδες μπλοκ σε ένα σύστημα αρχείων και μπλοκ μέσα σε μια ομάδα αριθμούνται διαδοχικά, ξεκινώντας από το 1. Το πρώτο μπλοκ σε έναν δίσκο έχει τον αριθμό 1 και ανήκει στην ομάδα αριθμός 1. Ο συνολικός αριθμός μπλοκ σε έναν δίσκο (σε ένα διαμέρισμα δίσκου) είναι ένας διαιρέτης της χωρητικότητας του δίσκου, εκφρασμένος σε τομείς. Και ο αριθμός των ομάδων μπλοκ δεν χρειάζεται να διαιρεί τον αριθμό των μπλοκ, επειδή η τελευταία ομάδα μπλοκ μπορεί να μην είναι πλήρης. Η αρχή κάθε ομάδας μπλοκ έχει μια διεύθυνση, η οποία μπορεί να ληφθεί ως ((αριθμός ομάδας - 1)* (αριθμός μπλοκ στην ομάδα)).

Κάθε ομάδα μπλοκ έχει την ίδια δομή. Η δομή του παρουσιάζεται στον παρακάτω πίνακα.

Η δομή μιας ομάδας διαμερισμάτων δίσκου από μπλοκ μέσα ext2fs

Το πρώτο στοιχείο αυτής της δομής (superblock) είναι το ίδιο για όλες τις ομάδες και όλα τα υπόλοιπα είναι ατομικά για κάθε ομάδα. Το superblock αποθηκεύεται στο πρώτο μπλοκ κάθε ομάδας μπλοκ (εκτός από την ομάδα 1, η οποία έχει εγγραφή εκκίνησης στο πρώτο μπλοκ). Superblockείναι το σημείο εκκίνησης του συστήματος αρχείων. Έχει μέγεθος 1024 byte και Πάντα που βρίσκεται σε μετατόπιση 1024 byte από την αρχή του συστήματος αρχείων. Η παρουσία πολλαπλών αντιγράφων ενός superblock εξηγείται από την εξαιρετική σημασία αυτού του στοιχείου του συστήματος αρχείων. Τα διπλότυπα Superblock χρησιμοποιούνται κατά την ανάκτηση ενός συστήματος αρχείων μετά από αποτυχίες.

Οι πληροφορίες που είναι αποθηκευμένες στο superblock χρησιμοποιούνται για την οργάνωση της πρόσβασης στα υπόλοιπα δεδομένα του δίσκου. Το superblock καθορίζει το μέγεθος του συστήματος αρχείων, τον μέγιστο αριθμό αρχείων στο διαμέρισμα, την ποσότητα του ελεύθερου χώρου και περιέχει πληροφορίες σχετικά με το πού να αναζητήσετε περιοχές που δεν έχουν εκχωρηθεί. Όταν ξεκινά το λειτουργικό σύστημα, το superblock διαβάζεται στη μνήμη και όλες οι αλλαγές στο σύστημα αρχείων αντικατοπτρίζονται πρώτα σε ένα αντίγραφο του superblock που βρίσκεται στο λειτουργικό σύστημα και εγγράφονται στο δίσκο μόνο περιοδικά. Αυτό βελτιώνει την απόδοση του συστήματος επειδή πολλοί χρήστες και διεργασίες ενημερώνουν συνεχώς τα αρχεία. Από την άλλη πλευρά, όταν το σύστημα είναι απενεργοποιημένο, το superblock πρέπει να εγγραφεί στο δίσκο, το οποίο δεν επιτρέπει την απενεργοποίηση του υπολογιστή απλό κλείσιμοθρέψη. Διαφορετικά, την επόμενη φορά που θα εκκινήσετε, οι πληροφορίες που καταγράφονται στο superblock δεν θα αντιστοιχούν στην πραγματική κατάσταση του συστήματος αρχείων.

Το superblock έχει την ακόλουθη δομή

Ονομα πεδίου

Τύπος

Ενα σχόλιο

s_inodes_count

ULONG

Αριθμός ινωδών στο σύστημα αρχείων

s_blocks_count

ULONG

Αριθμός μπλοκ στο σύστημα αρχείων

s_r_blocks_count

ULONG

Αριθμός μπλοκ που έχουν δεσμευτεί για υπερχρήστη

s_free_blocks_count

ULONG

Δωρεάν μετρητής μπλοκ

s_free_inodes_count

ULONG

Δωρεάν μετρητής inode

s_first_data_block

ULONG

Το πρώτο μπλοκ που περιέχει δεδομένα. Ανάλογα με το μέγεθος του μπλοκ, αυτό το πεδίο μπορεί να είναι 0 ή 1.

s_log_block_size

ULONG

Λογικός δείκτης μεγέθους μπλοκ: 0 = 1 KB; 1 = 2 KB; 2 = 4 KB.

s_log_frag_size

ΜΑΚΡΥΣ

Ένδειξη μεγέθους θραύσματος (φαίνεται ότι η έννοια του τμήματος δεν χρησιμοποιείται αυτήν τη στιγμή)

s_blocks_per_group

ULONG

Αριθμός μπλοκ σε κάθε ομάδα μπλοκ

s_frags_per_group

ULONG

Αριθμός θραυσμάτων σε κάθε ομάδα μπλοκ

s_inodes_per_group

ULONG

Αριθμός ινωδών σε κάθε ομάδα μπλοκ

s_mtime

ULONG

Η τελευταία φορά που προσαρτήθηκε το σύστημα αρχείων.

s_wtime

ULONG

Ώρα στην οποία εγγράφηκε για τελευταία φορά το σύστημα αρχείων

s_mnt_count

USHORT

Μετρητής του αριθμού των προσαρτήσεων του συστήματος αρχείων. Εάν αυτός ο μετρητής φτάσει την τιμή που καθορίζεται στο επόμενο πεδίο (s_max_mnt_count), το σύστημα αρχείων πρέπει να ελεγχθεί (αυτό γίνεται κατά την επανεκκίνηση) και ο μετρητής να μηδενιστεί.

s_max_mnt_count

ΜΙΚΡΟΣ

Ένας αριθμός που καθορίζει πόσες φορές μπορεί να προσαρτηθεί το σύστημα αρχείων

s_magic

USHORT

"Μαγικός αριθμός" (0xEF53) που υποδεικνύει ότι το σύστημα αρχείων είναι τύπου ex2fs

s_state

USHORT

Σημαίες που υποδεικνύουν την τρέχουσα κατάσταση του συστήματος αρχείων (είναι καθαρό, κ.λπ.)

s_errors

USHORT

Σημαίες που καθορίζουν διαδικασίες για την επεξεργασία μηνυμάτων σφάλματος (τι να κάνετε εάν εντοπιστούν σφάλματα).

s_pad

USHORT

Πλήρωση

s_lastcheck

ULONG

Ώρα τελευταίου ελέγχου συστήματος αρχείων

s_checkinterval

ULONG

Μέγιστο χρονικό διάστημα μεταξύ των ελέγχων του συστήματος αρχείων

s_creator_os

ULONG

Μια ένδειξη του τύπου του λειτουργικού συστήματος στο οποίο δημιουργήθηκε το σύστημα αρχείων

s_rev_level

ULONG

Έκδοση (επίπεδο αναθεώρησης) του συστήματος αρχείων.

s_reserved

ULONG

Επένδυση έως 1024 byte

Μετά το superblock ακολουθεί μια περιγραφή της ομάδας των μπλοκ (Group Descriptors). Αυτή η περιγραφή είναι ένας πίνακας με την ακόλουθη δομή.

Ονομα πεδίου

Τύπος

Σκοπός

bg_block_bitmap

ULONG

Διεύθυνση του μπλοκ που περιέχει το bitmap του μπλοκ αυτής της ομάδας

bg_inode_bitmap

ULONG

Διεύθυνση του μπλοκ που περιέχει το bitmap inode αυτής της ομάδας

bg_inode_table

ULONG

Διεύθυνση του μπλοκ που περιέχει τον πίνακα inode αυτής της ομάδας

bg_free_blocks_count

USHORT

Μετρητής του αριθμού των δωρεάν μπλοκ σε αυτήν την ομάδα

bg_free_inodes_count

USHORT

Αριθμός ελεύθερων ινωδών σε αυτήν την ομάδα

bg_used_dirs_count

USHORT

Ο αριθμός των ινωδών σε μια δεδομένη ομάδα που είναι κατάλογοι

bg_pad

USHORT

Πλήρωση

bg_reserved

ULONG

Πλήρωση

Το μέγεθος της περιγραφής της ομάδας μπλοκ μπορεί να υπολογιστεί ως (block_group_size_in_ext2 * number_of_groups) / block_size(στρογγυλό αν χρειάζεται).

Οι πληροφορίες που είναι αποθηκευμένες στην περιγραφή της ομάδας χρησιμοποιούνται για τον εντοπισμό των bitmaps μπλοκ και inode, καθώς και του πίνακα inode. Μην ξεχνάτε ότι τα μπλοκ και οι ομάδες μπλοκ αριθμούνται ξεκινώντας από το 1.

Ένα μπλοκ bitmap είναι μια δομή στην οποία κάθε bit υποδεικνύει εάν το αντίστοιχο μπλοκ έχει εκχωρηθεί σε ένα αρχείο. Εάν το bit είναι 1, τότε το μπλοκ είναι απασχολημένο. Αυτός ο χάρτης χρησιμοποιείται για την αναζήτηση ελεύθερων μπλοκ σε περιπτώσεις όπου είναι απαραίτητο να εκχωρηθεί χώρος για ένα αρχείο. Το bitmap μπλοκ καταλαμβάνει έναν αριθμό μπλοκ ίσο με (αριθμός_μπλοκ_σε_ομάδα / 8) / μέγεθος_μπλοκ(στρογγυλό αν χρειάζεται).

Το bitmap inode εκτελεί μια παρόμοια λειτουργία με τον πίνακα inode: δείχνει ποιοι inode χρησιμοποιούνται.

Η επόμενη περιοχή στη δομή της ομάδας μπλοκ χρησιμοποιείται για την αποθήκευση του πίνακα inode του αρχείου. Η δομή του ίδιου του inode συζητείται λεπτομερέστερα στην επόμενη υποενότητα.

Λοιπόν, και τέλος, όλος ο υπόλοιπος χώρος στην ομάδα των μπλοκ διατίθεται για την αποθήκευση των πραγματικών αρχείων.

Σύστημα αρχείωνΕξωτ 2 χαρακτηρίζεται από:

  • ιεραρχική δομή,
  • συντονισμένη επεξεργασία συνόλων δεδομένων,
  • δυναμική επέκταση αρχείου,
  • προστασία των πληροφοριών σε αρχεία,
  • αντιμετωπίζοντας τις περιφερειακές συσκευές (όπως τερματικά και συσκευές ταινίας) ως αρχεία.

Αναπαράσταση εσωτερικού αρχείου

Κάθε αρχείο στο σύστημα Ext 2 έχει ένα μοναδικό ευρετήριο. Το ευρετήριο περιέχει τις πληροφορίες που απαιτούνται από οποιαδήποτε διαδικασία για την πρόσβαση στο αρχείο. Επεξεργάζεται την πρόσβαση στα αρχεία χρησιμοποιώντας ένα καλά καθορισμένο σύνολο κλήσεων συστήματος και αναγνωρίζοντας το αρχείο με μια σειρά χαρακτήρων που λειτουργεί ως αναγνωρισμένο όνομα αρχείου. Κάθε σύνθετο όνομα προσδιορίζει μοναδικά ένα αρχείο, έτσι ο πυρήνας του συστήματος μετατρέπει αυτό το όνομα σε ευρετήριο αρχείου.Το ευρετήριο περιλαμβάνει έναν πίνακα διευθύνσεων όπου οι πληροφορίες του αρχείου βρίσκονται στο δίσκο. Δεδομένου ότι κάθε μπλοκ σε έναν δίσκο αντιμετωπίζεται από τον δικό του αριθμό, αυτός ο πίνακας αποθηκεύει μια συλλογή αριθμών μπλοκ δίσκων. Για να αυξήσει την ευελιξία, ο πυρήνας προσαρτά ένα αρχείο ένα μπλοκ κάθε φορά, επιτρέποντας στις πληροφορίες του αρχείου να διασκορπίζονται σε όλο το σύστημα αρχείων. Αλλά αυτή η διάταξη περιπλέκει το έργο της αναζήτησης δεδομένων. Ο πίνακας διευθύνσεων περιέχει μια λίστα με αριθμούς μπλοκ που περιέχουν πληροφορίες που ανήκουν σε ένα αρχείο, αλλά απλοί υπολογισμοί δείχνουν ότι μια γραμμική λίστα μπλοκ αρχείων σε ένα ευρετήριο είναι δύσκολο να διαχειριστεί. Προκειμένου μια δομή μικρού ευρετηρίου να επιτρέπει την εργασία με μεγάλα αρχεία, ο πίνακας διευθύνσεων μπλοκ δίσκων ευθυγραμμίζεται με τη δομή που φαίνεται στο σχήμα 1

Τα περισσότερα αρχεία σε ένα σύστημα Ext 2 δεν είναι μεγαλύτερα από 10 KB ή ακόμα και 1 KB!Επειδή τα 10 KB ενός αρχείου βρίσκονται σε μπλοκ άμεσων διευθύνσεων, τα περισσότερα από τα δεδομένα που είναι αποθηκευμένα σε αρχεία μπορούν να προσπελαστούν σε μία πρόσβαση σε έναν δίσκο. Επομένως, σε αντίθεση με την πρόσβαση σε μεγάλα αρχεία, η εργασία με αρχεία τυπικού μεγέθους είναι γρήγορη.

Αρχείο inodes

Κάθε αρχείο στο δίσκο σχετίζεται με ένα και μόνο αρχείο inode, το οποίο προσδιορίζεται από τον αύξοντα αριθμό του - το ευρετήριο αρχείου. Αυτό σημαίνει ότι ο αριθμός των αρχείων που μπορούν να δημιουργηθούν σε ένα σύστημα αρχείων περιορίζεται από τον αριθμό των inodes, ο οποίος είτε προσδιορίζεται ρητά κατά τη δημιουργία του συστήματος αρχείων είτε υπολογίζεται με βάση το φυσικό μέγεθος του διαμερίσματος του δίσκου. Τα inodes υπάρχουν στο δίσκο σε στατική μορφή και ο πυρήνας τα διαβάζει στη μνήμη πριν εργαστεί μαζί τους.

Το αρχείο inode έχει την ακόλουθη δομή:

Ονομα πεδίου

Τύπος

Περιγραφή

I_mode

USHORT

Ο τύπος και τα δικαιώματα πρόσβασης σε αυτό το αρχείο.

I_uid

USHORT

Αναγνωριστικό κατόχου αρχείου (Owner Uid).

I_size

ULONG

Μέγεθος αρχείου σε byte.

I_atime

ULONG

Ώρα τελευταίας πρόσβασης στο αρχείο (Χρόνος πρόσβασης).

I_ctime

ULONG

Χρόνος δημιουργίας αρχείου.

I_mtime

ULONG

Ώρα τελευταίας τροποποίησης του αρχείου.

I_dtime

ULONG

Χρόνος διαγραφής αρχείου.

I_gid

USHORT

Αναγνωριστικό ομάδας (GID).

I_links_count

USHORT

Οι σύνδεσμοι μετράνε.

I_blocks

ULONG

Ο αριθμός των μπλοκ που καταλαμβάνει το αρχείο.

I_flags

ULONG

Σημαίες αρχείου (Σημαίες αρχείου)

I_Reserved1

ULONG

Με κράτηση για OS

I_block

ULONG

Δείκτες σε μπλοκ στα οποία είναι γραμμένα τα δεδομένα αρχείου (ένα παράδειγμα άμεσης και έμμεσης διευθυνσιοδότησης στην Εικ. 1)

I_έκδοση

ULONG

Έκδοση αρχείου (για NFS)

I_file_acl

ULONG

Αρχείο ACL

I_dir_acl

ULONG

Κατάλογος ACL

I_faddr

ULONG

Διεύθυνση θραύσματος

I_frag

UCHAR

Αριθμός θραύσματος

I_fsize

UCHAR

Μέγεθος θραύσματος

I_pad1

USHORT

Πλήρωση

I_Reserved2

ULONG

Κατοχυρωμένα

Το πεδίο τύπου αρχείου και δικαιωμάτων πρόσβασης είναι μια λέξη δύο byte, κάθε bit της οποίας χρησιμεύει ως σημαία που υποδεικνύει τη σχέση του αρχείου με έναν συγκεκριμένο τύπο ή τη ρύθμιση ενός συγκεκριμένου δικαιώματος αρχείου.

Αναγνωριστικό

Εννοια

Σκοπός της σημαίας (πεδίο)

S_IFMT

F000

Μάσκα τύπου αρχείου

S_IFSOCK

A000

Υποδοχή τομέα

S_IFLNK

C000

S_IFREG

8000

Κανονικό αρχείο

S_IFBLK

6000

Συσκευή προσανατολισμένη στο μπλοκ

S_IFDIR

4000

Κατάλογος

S_IFCHR

2000

Συσκευή προσανατολισμένη στα byte (χαρακτήρες).

S_IFIFO

1000

Ονομασμένος σωλήνας (fifo)

S_ISUID

0800

SUID - αλλαγή bit κατόχου

S_ISGID

0400

SGID - bit αλλαγής ομάδας

S_ISVTX

0200

Bit αποθήκευσης εργασιών (κολλώδες bit)

S_IRWXU

01C0

Μάσκα δικαιωμάτων κατόχου αρχείου

S_IRUSR

0100

Δικαίωμα ανάγνωσης

S_IWUSR

0080

Γράψε σωστά

S_IXUSR

0040

Δικαίωμα εκτέλεσης

S_IRWXG

0038

Μάσκα δικαιωμάτων ομάδας

S_IRGRP

0020

Δικαίωμα ανάγνωσης

S_IWGRP

0010

Γράψε σωστά

S_IXGRP

0008

Δικαίωμα εκτέλεσης

S_IRWXO

0007

Μάσκα δικαιωμάτων άλλων χρηστών

S_IROTH

0004

Δικαίωμα ανάγνωσης

S_IWOTH

0002

Γράψε σωστά

S_IXOTH

0001

Δικαίωμα εκτέλεσης

Μεταξύ των inodes, υπάρχουν αρκετά inodes που είναι δεσμευμένα για ειδικούς σκοπούς και παίζουν ιδιαίτερο ρόλο στο σύστημα αρχείων. Αυτοί είναι οι ακόλουθοι περιγραφείς

Αναγνωριστικό

Εννοια

Περιγραφή

EXT2_BAD_INO

Ένα inode που παραθέτει τις διευθύνσεις των κακών μπλοκ στο δίσκο (Bad blocks inode)

EXT2_ROOT_INO

Inode του ριζικού καταλόγου του συστήματος αρχείων (Root inode)

EXT2_ACL_IDX_INO

ACL inode

EXT2_ACL_DATA_INO

ACL inode

EXT2_BOOT_LOADER_INO

Boot loader inode

EXT2_UNDEL_DIR_INO

Αναίρεση διαγραφής καταλόγου inode

EXT2_FIRST_INO

Πρώτη ανεπιφύλακτη inode

Η πιο σημαντική λαβή σε αυτήν τη λίστα είναι η λαβή του ριζικού καταλόγου. Αυτή η λαβή οδηγεί στον ριζικό κατάλογο, ο οποίος, όπως όλοι οι κατάλογοι, αποτελείται από εγγραφές με την ακόλουθη δομή:

Ονομα πεδίου

Τύπος

Περιγραφή

Inode

ULONG

τον αριθμό inode αρχείου

rec_len

USHORT

Μήκος αυτής της καταχώρησης

name_len

USHORT

Μήκος ονόματος αρχείου

Ονομα

ΑΠΑΝΘΡΑΚΩΝΩ

Ονομα αρχείου

Μια μεμονωμένη καταχώρηση καταλόγου δεν μπορεί να διασχίσει ένα όριο μπλοκ (δηλαδή, πρέπει να βρίσκεται εξ ολοκλήρου μέσα σε ένα μόνο μπλοκ). Επομένως, εάν η επόμενη εγγραφή δεν χωράει πλήρως σε ένα δεδομένο μπλοκ, μεταφέρεται στο επόμενο μπλοκ και η προηγούμενη εγγραφή συνεχίζει έτσι ώστε να γεμίζει το μπλοκ μέχρι το τέλος.

Εικόνα 1 Μπλοκ άμεσης και έμμεσης διεύθυνσης στο ευρετήριο

Εικόνα 2 Μέγεθος αρχείου σε byte με μέγεθος μπλοκ 1 KB

Εικόνα 3. Παράδειγμα ευρετηρίου δίσκου

Το σχήμα 3 δείχνει το ευρετήριο δίσκου ενός συγκεκριμένου αρχείου. Αυτό το ευρετήριο ανήκει σε ένα κανονικό αρχείο του οποίου ο κάτοχος είναι "mjb" και του οποίου το μέγεθος είναι 6030 byte. Το σύστημα επιτρέπει στον χρήστη "mjb" να διαβάσει, να γράψει και να εκτελέσει το αρχείο. Τα μέλη της ομάδας "os" και όλοι οι άλλοι χρήστες επιτρέπεται μόνο να διαβάζουν ή να εκτελούν το αρχείο, αλλά όχι να γράφουν δεδομένα σε αυτό. Το αρχείο διαβάστηκε για τελευταία φορά στις 23 Οκτωβρίου 1984 στις 1:45 μ.μ. και τελευταία γράφτηκε στις 22 Οκτωβρίου 1984 στις 10:30 π.μ. Το ευρετήριο τροποποιήθηκε τελευταία φορά στις 23 Οκτωβρίου 1984 στις 1:30 μ.μ., αν και καμία πληροφορία δεν γράφτηκε στο αρχείο εκείνη τη στιγμή. Ο πυρήνας κωδικοποιεί όλα τα παραπάνω δεδομένα σε ένα ευρετήριο. Σημειώστε τη διαφορά στη γραφή στο δίσκο των περιεχομένων του ευρετηρίου και των περιεχομένων του αρχείου. Τα περιεχόμενα ενός αρχείου αλλάζουν μόνο όταν γίνεται εγγραφή στο αρχείο. Τα περιεχόμενα του ευρετηρίου αλλάζουν τόσο όταν αλλάζουν τα περιεχόμενα του αρχείου όσο και όταν αλλάζουν ο κάτοχος του αρχείου, τα δικαιώματα πρόσβασης και το σύνολο δείκτη. Η αλλαγή των περιεχομένων ενός αρχείου προκαλεί αυτόματα προσαρμογή του ευρετηρίου, αλλά η προσαρμογή του ευρετηρίου δεν σημαίνει αλλαγή των περιεχομένων του αρχείου.

Κατάλογοι

Κατάλογοι είναι τα αρχεία από τα οποία είναι χτισμένη η ιεραρχική δομή του συστήματος αρχείων. παίζουν σημαντικό ρόλο στη μετατροπή του ονόματος αρχείου σε αριθμό ευρετηρίου. Ένας κατάλογος είναι ένα αρχείο του οποίου τα περιεχόμενα είναι ένα σύνολο καταχωρήσεων που αποτελείται από τον αριθμό ευρετηρίου και το όνομα αρχείου που περιλαμβάνονται στον κατάλογο. Ένα αναγνωρισμένο όνομα είναι μια συμβολοσειρά χαρακτήρων που τερματίζεται από τον μηδενικό χαρακτήρα και χωρίζεται με κάθετο ("/") σε πολλαπλά στοιχεία. Κάθε στοιχείο εκτός από το τελευταίο πρέπει να είναι το όνομα ενός καταλόγου, αλλά το τελευταίο στοιχείο μπορεί να είναι το όνομα ενός αρχείου που δεν είναι κατάλογος. Στην έκδοση V του UNIX, το μήκος κάθε στοιχείου περιορίζεται στους 14 χαρακτήρες. Έτσι, μαζί με τα 2 byte που έχουν εκχωρηθεί για τον αριθμό ευρετηρίου, το μέγεθος της καταχώρησης καταλόγου είναι 16 byte.

Μετατόπιση byte
μέσα στον κατάλογο

Αριθμός ευρετηρίου
(2 byte)

Ονομααρχείο

1798

μέσα σε αυτό

1276

fsck

clri

1268

motd

1799

βουνό

mknod

2114

passwd

1717

ποσό

1851

ΛΙΣΤΑ ΕΛΕΓΧΟΥ

fsdbld

config

1432

getty

σύγκρουση

mkfs

Εικόνα 4 Μορφή καταλόγου /etc

Το σχήμα 4 δείχνει τη μορφή του καταλόγου "etc". Κάθε κατάλογος περιέχει αρχεία των οποίων τα ονόματα υποδεικνύονται με μια τελεία και δύο τελείες ("." και "..") και των οποίων οι αριθμοί ευρετηρίου συμπίπτουν με τους αριθμούς ευρετηρίου του δεδομένου καταλόγου και του γονικού καταλόγου, αντίστοιχα. Αριθμός ευρετηρίου για το αρχείο "." στον κατάλογο "/etc" έχει μια διεύθυνση σε μετατόπιση 0 και μια τιμή 83. Ο αριθμός inode για το αρχείο ".." έχει μια διεύθυνση στη μετατόπιση 16 από την αρχή του καταλόγου και μια τιμή 2. Εγγραφές στο Ο κατάλογος μπορεί να είναι κενός, αλλά ο αριθμός inode είναι 0. Για παράδειγμα, η καταχώρηση στη διεύθυνση 224 στον κατάλογο "/etc" είναι κενή, παρά το γεγονός ότι κάποτε περιείχε ένα σημείο εισόδου για ένα αρχείο που ονομάζεται "crash". Το πρόγραμμα mkfs προετοιμάζει το σύστημα αρχείων έτσι ώστε οι αριθμοί inode για τα αρχεία να είναι "." και ".." στον ριζικό κατάλογο είναι ίδια με τον αριθμό του ριζικού ευρετηρίου του συστήματος αρχείων.

Ο πυρήνας αποθηκεύει δεδομένα σε έναν κατάλογο ακριβώς όπως κάνει σε έναν κανονικό τύπο αρχείου, χρησιμοποιώντας μια δομή ευρετηρίου και μπλοκ με άμεσο και έμμεσο επίπεδο διευθυνσιοδότησης. Οι διεργασίες μπορούν να διαβάζουν δεδομένα από καταλόγους με τον ίδιο τρόπο που διαβάζουν τα κανονικά αρχεία, αλλά η αποκλειστική πρόσβαση εγγραφής στον κατάλογο δεσμεύεται από τον πυρήνα, διασφαλίζοντας ότι η δομή του καταλόγου είναι σωστή. Τα δικαιώματα καταλόγου έχουν την εξής σημασία: η άδεια ανάγνωσης δίνει στις διεργασίες τη δυνατότητα να διαβάζουν δεδομένα από τον κατάλογο. Η άδεια εγγραφής επιτρέπει σε μια διεργασία να δημιουργεί νέες εγγραφές σε έναν κατάλογο ή να αφαιρεί παλιές (χρησιμοποιώντας τις λειτουργίες συστήματος creat, mknod, link και unlink), αλλάζοντας έτσι τα περιεχόμενα του καταλόγου. Το δικαίωμα εκτέλεσης επιτρέπει σε μια διαδικασία να αναζητήσει έναν κατάλογο με βάση το όνομα αρχείου (καθώς η "εκτέλεση" ενός καταλόγου είναι άσκοπη).

Όταν μια διεργασία χρησιμοποιεί μια διαδρομή αρχείου, ο πυρήνας αναζητά στους καταλόγους τον αντίστοιχο αριθμό inode. Αφού το όνομα αρχείου έχει μετατραπεί σε αριθμό inode, το inode τοποθετείται στη μνήμη και στη συνέχεια χρησιμοποιείται σε επόμενα αιτήματα.

Η έννοια των συστημάτων αρχείων Unix περιλαμβάνει την έννοια της σύνδεσης. Ένα μόνο inode μπορεί να συσχετιστεί με πολλά ονόματα αρχείων. Ο περιγραφέας περιέχει ένα πεδίο που αποθηκεύει τον αριθμό με τον οποίο συσχετίζεται το αρχείο. Η προσθήκη ενός συνδέσμου συνίσταται στη δημιουργία μιας καταχώρισης καταλόγου όπου ο αριθμός inode δείχνει σε ένα άλλο inode και στην αύξηση του μετρητή συνδέσμου στο inode. Όταν αφαιρείται ένας σύνδεσμος, ο πυρήνας μειώνει τον μετρητή συνδέσμου και αφαιρεί τη λαβή εάν ο μετρητής γίνει μηδέν.

Τέτοιοι σύνδεσμοι ονομάζονται σκληροί σύνδεσμοι και μπορούν να χρησιμοποιηθούν μόνο σε ένα σύστημα αρχείων (δεν μπορείτε να δημιουργήσετε έναν σύνδεσμο για ένα αρχείο από άλλο σύστημα αρχείων). Επιπλέον, ένας σκληρός σύνδεσμος μπορεί να οδηγεί μόνο σε ένα αρχείο (μια σκληρή σύνδεση σε έναν κατάλογο μπορεί να προκαλέσει βρόχο στο σύστημα αρχείων).

Στα περισσότερα συστήματα Unix υπάρχει άλλος τύπος συνδέσμου. Αυτοί οι σύνδεσμοι, που περιέχουν μόνο το όνομα του αρχείου, ονομάζονται συμβολικοί. Όταν ο πυρήνας επεξεργάζεται τέτοιους συνδέσμους, όταν μετατρέπει τη διαδρομή αρχείου σε inode, ο πυρήνας αντικαθιστά το όνομα του συνδέσμου με τα περιεχόμενα του inode (δηλαδή το όνομα του αρχείου προορισμού) και ερμηνεύει ξανά τη διαδρομή του αρχείου. Δεδομένου ότι ένας συμβολικός σύνδεσμος δεν οδηγεί σε μια ινωδία, είναι δυνατή η δημιουργία συνδέσμων σε αρχεία που βρίσκονται σε άλλο σύστημα αρχείων. Αυτοί οι σύνδεσμοι μπορούν να παραπέμπουν σε οποιονδήποτε τύπο αρχείου, ακόμη και σε ανύπαρκτα. Οι συμβολικοί σύνδεσμοι χρησιμοποιούνται ευρέως επειδή δεν έχουν τους ίδιους περιορισμούς που έχουν οι σκληροί σύνδεσμοι. Ωστόσο, καταλαμβάνουν κάποιο χώρο στο δίσκο όπου βρίσκονται τα μπλοκ inode και δεδομένων. Η χρήση τους μπορεί να οδηγήσει σε ορισμένες καθυστερήσεις στη μετατροπή της διαδρομής του αρχείου σε inode, λόγω του γεγονότος ότι ο πυρήνας πρέπει να ερμηνεύσει εκ νέου τη διαδρομή του αρχείου κατά την επεξεργασία ενός συμβολικού συνδέσμου.

Αρχεία συσκευής

Σε λειτουργικά συστήματα που μοιάζουν με Unix, η πρόσβαση στις συσκευές γίνεται μέσω ειδικών αρχείων. Ένα τέτοιο αρχείο δεν καταλαμβάνει χώρο στο σύστημα αρχείων. Είναι μόνο ένα σημείο πρόσβασης στο πρόγραμμα οδήγησης της συσκευής.

Υπάρχουν δύο τύποι αρχείων συσκευής: χαρακτήρας και μπλοκ. Όταν χρησιμοποιείτε έναν τύπο χαρακτήρων, μπορείτε να ανταλλάσσετε δεδομένα μόνο με μια συσκευή σε λειτουργία χαρακτήρων, ενώ τα αρχεία συσκευής τύπου μπλοκ σας επιτρέπουν να ανταλλάσσετε μπλοκ μόνο χρησιμοποιώντας μια προσωρινή μνήμη. Όταν υποβάλλεται αίτημα εισόδου/εξόδου σε ένα αρχείο συσκευής, το αίτημα προωθείται στο κατάλληλο πρόγραμμα οδήγησης συσκευής. Κάθε τέτοιο αρχείο έχει έναν κύριο αριθμό που προσδιορίζει τον τύπο της συσκευής και έναν δευτερεύοντα αριθμό που προσδιορίζει την ίδια τη συσκευή.

Πρόσθετα χαρακτηριστικά του EXT2fs

Εκτός από τις τυπικές δυνατότητες Unix, το EXT2fs παρέχει ορισμένες πρόσθετες δυνατότητες που δεν υποστηρίζονται συνήθως από συστήματα αρχείων Unix.

Τα χαρακτηριστικά αρχείου σάς επιτρέπουν να αλλάξετε τον τρόπο με τον οποίο αντιδρά ο πυρήνας όταν εργάζεστε με σύνολα αρχείων. Μπορείτε να ορίσετε χαρακτηριστικά σε ένα αρχείο ή κατάλογο. Στη δεύτερη περίπτωση, τα αρχεία που δημιουργούνται σε αυτόν τον κατάλογο κληρονομούν αυτά τα χαρακτηριστικά.

Κατά την προσάρτηση του συστήματος, ενδέχεται να οριστούν ορισμένες δυνατότητες που σχετίζονται με τα χαρακτηριστικά του αρχείου. Η επιλογή προσάρτησης επιτρέπει στον διαχειριστή να επιλέξει πώς δημιουργούνται τα αρχεία. Σε ένα συγκεκριμένο σύστημα αρχείων BSD, τα αρχεία δημιουργούνται με το ίδιο αναγνωριστικό ομάδας με τον γονικό κατάλογο. Τα χαρακτηριστικά του System V είναι κάπως πιο περίπλοκα. Εάν ένας κατάλογος έχει το setgid bit του, τότε δημιουργήθηκαν αρχείακληρονομούν το αναγνωριστικό ομάδας αυτού του καταλόγου και οι υποκατάλογοι κληρονομούν το αναγνωριστικό ομάδας και το bit setgid. Διαφορετικά, δημιουργούνται αρχεία και κατάλογοι με το κύριο αναγνωριστικό ομάδας της διαδικασίας κλήσης.

Το σύστημα EXT2fs μπορεί να χρησιμοποιήσει σύγχρονη τροποποίηση δεδομένων παρόμοια με Σύστημα BSD. Η επιλογή προσάρτησης επιτρέπει στον διαχειριστή να καθορίσει ότι όλα τα δεδομένα (ινωδοί, μπλοκ bit, έμμεσα μπλοκ και μπλοκ καταλόγου) θα εγγράφονται στο δίσκο συγχρονισμένα όταν τροποποιούνται. Αυτό μπορεί να χρησιμοποιηθεί για την επίτευξη υψηλής ικανότητας εγγραφής δεδομένων, αλλά και ως αποτέλεσμα κακής απόδοσης. Στην πραγματικότητα, αυτή η λειτουργία δεν χρησιμοποιείται συνήθως επειδή, εκτός από την υποβάθμιση της απόδοσης, μπορεί να οδηγήσει σε απώλεια δεδομένων χρήστη που δεν επισημαίνονται κατά τον έλεγχο του συστήματος αρχείων.

Το EXT2fs σάς επιτρέπει να επιλέξετε το λογικό μέγεθος μπλοκ κατά τη δημιουργία ενός συστήματος αρχείων. Μπορεί να έχει μέγεθος 1024, 2048 ή 4096 byte. Η χρήση μεγαλύτερων μπλοκ έχει ως αποτέλεσμα ταχύτερες λειτουργίες εισόδου/εξόδου (καθώς γίνονται λιγότερα αιτήματα δίσκου) και επομένως λιγότερη κίνηση της κεφαλής. Από την άλλη πλευρά, η χρήση μεγάλων μπλοκ οδηγεί σε σπατάλη χώρου στο δίσκο. Συνήθως, το τελευταίο μπλοκ ενός αρχείου δεν χρησιμοποιείται πλήρως για την αποθήκευση πληροφοριών, επομένως όσο αυξάνεται το μέγεθος του μπλοκ, αυξάνεται ο χαμένος χώρος στο δίσκο.

Το EXT2fs σάς επιτρέπει να χρησιμοποιείτε επιταχυνόμενους συμβολικούς συνδέσμους. Όταν χρησιμοποιείτε τέτοιους συνδέσμους, δεν χρησιμοποιούνται μπλοκ δεδομένων συστήματος αρχείων. Το όνομα του αρχείου προορισμού δεν αποθηκεύεται στο μπλοκ δεδομένων, αλλά στο ίδιο το inode. Αυτή η δομή σάς επιτρέπει να εξοικονομήσετε χώρο στο δίσκο και να επιταχύνετε την επεξεργασία συμβολικών συνδέσμων. Φυσικά, ο χώρος που προορίζεται για μια λαβή είναι περιορισμένος, επομένως δεν μπορεί να αναπαρασταθεί κάθε σύνδεσμος ως επιταχυνόμενος σύνδεσμος. Το μέγιστο μήκος ενός ονόματος αρχείου σε έναν επιταχυνόμενο σύνδεσμο είναι 60 χαρακτήρες. Στο εγγύς μέλλον σχεδιάζεται να επεκταθεί αυτό το σχήμα για μικρά αρχεία.

Το EXT2fs παρακολουθεί την κατάσταση του συστήματος αρχείων. Ο πυρήνας χρησιμοποιεί ένα ξεχωριστό πεδίο στο superblock για να υποδείξει την κατάσταση του συστήματος αρχείων. Εάν το σύστημα αρχείων είναι προσαρτημένο σε λειτουργία ανάγνωσης/εγγραφής, τότε η κατάστασή του ορίζεται σε "Not Clean". Εάν αποσυναρμολογηθεί ή επανατοποθετηθεί σε λειτουργία μόνο για ανάγνωση, τότε η κατάστασή του ορίζεται σε "Καθαρισμός". Κατά την εκκίνηση του συστήματος και τους ελέγχους κατάστασης συστήματος αρχείων, αυτές οι πληροφορίες χρησιμοποιούνται για να καθοριστεί εάν είναι απαραίτητος ένας έλεγχος συστήματος αρχείων. Ο πυρήνας τοποθετεί επίσης ορισμένα σφάλματα σε αυτό το πεδίο. Όταν ο πυρήνας εντοπίσει αναντιστοιχία, το σύστημα αρχείων επισημαίνεται ως "Εσφαλμένο". Ο έλεγχος συστήματος αρχείων ελέγχει αυτές τις πληροφορίες για να ελέγξει το σύστημα, ακόμα κι αν η κατάστασή του είναι πραγματικά Καθαρή.

Η παράβλεψη της δοκιμής του συστήματος αρχείων για μεγάλο χρονικό διάστημα μπορεί μερικές φορές να οδηγήσει σε ορισμένες δυσκολίες, επομένως το EXT2fs περιλαμβάνει δύο μεθόδους για τακτικό έλεγχο του συστήματος. Το superblock περιέχει τον μετρητή βάσης συστήματος. Αυτός ο μετρητής αυξάνεται κάθε φορά που το σύστημα τοποθετείται σε λειτουργία ανάγνωσης/εγγραφής. Εάν η τιμή του φτάσει στο μέγιστο (αποθηκεύεται επίσης στο superblock), τότε το πρόγραμμα δοκιμής συστήματος αρχείων αρχίζει να το ελέγχει, ακόμα κι αν η κατάστασή του είναι "Clean". Ο τελευταίος χρόνος ελέγχου και το μέγιστο διάστημα μεταξύ των ελέγχων αποθηκεύονται επίσης στο superblock. Όταν επιτευχθεί το μέγιστο διάστημα μεταξύ των σαρώσεων, η κατάσταση του συστήματος αρχείων αγνοείται και ξεκινά η σάρωσή του.

Το σύστημα EXT2fs περιέχει εργαλεία για τη διαμόρφωσή του. Το πρόγραμμα tune2fs μπορεί να χρησιμοποιηθεί για να αλλάξει:

  • ενέργειες όταν εντοπιστεί σφάλμα. Όταν ο πυρήνας εντοπίσει μια ασυμφωνία, το σύστημα αρχείων επισημαίνεται ως "Εσφαλμένο" και μπορεί να πραγματοποιηθεί μία από τις ακόλουθες τρεις ενέργειες: συνεχίστε την εκτέλεση, επανατοποθετήστε το σύστημα αρχείων σε λειτουργία μόνο για ανάγνωση για να αποφύγετε ζημιές ή επανεκκινήστε το σύστημα για να ελέγξετε σύστημα αρχείων.
  • μέγιστη τιμή τοποθέτησης.
  • μέγιστο διάστημα μεταξύ των ελέγχων.
  • αριθμός λογικών μπλοκ που έχουν δεσμευτεί για τον χρήστη root.

Οι επιλογές που καθορίζονται στο mount μπορούν επίσης να χρησιμοποιηθούν για να αλλάξουν τι κάνει ο πυρήνας όταν εντοπίζει ένα σφάλμα.

Η χρήση χαρακτηριστικών επιτρέπει στους χρήστες να διαγράφουν ευαίσθητα αρχεία. Όταν ένα τέτοιο αρχείο διαγράφεται, τυχαίες πληροφορίες εγγράφονται στα μπλοκ που χρησιμοποιήθηκαν προηγουμένως για την τοποθέτηση αυτού του αρχείου. Αυτό εμποδίζει τους ξένους να αποκτήσουν πρόσβαση στα προηγούμενα περιεχόμενα αυτού του αρχείου χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας δίσκου.

Πρόσφατα προστέθηκαν νέοι τύποι αρχείων στο σύστημα EXT2fs, προερχόμενοι από το σύστημα αρχείων 4.4 BSD. Τα αρχεία του πρώτου τύπου μπορούν να χρησιμοποιηθούν μόνο για ανάγνωση: κανείς δεν έχει το δικαίωμα να τα αλλάξει ή να τα διαγράψει. Αυτό μπορεί να χρησιμοποιηθεί για την προστασία σημαντικών αρχείων διαμόρφωσης. Ένας άλλος τύπος αρχείου είναι ένα αρχείο που μπορεί να ανοίξει σε λειτουργία εγγραφής και τα δεδομένα μπορούν να προστεθούν μόνο στο τέλος του αρχείου. Τα αρχεία αυτού του τύπου δεν μπορούν επίσης να διαγραφούν ή να μετονομαστούν. Μπορούν να χρησιμοποιηθούν ως αρχεία καταγραφής, τα οποία μπορούν να αυξηθούν μόνο σε μέγεθος.

Βελτιστοποίηση απόδοσης

Το σύστημα EXT2fs περιέχει πολλές δυνατότητες που βελτιστοποιούν την απόδοσή του, γεγονός που οδηγεί σε αυξημένη ταχύτητα ανταλλαγής πληροφοριών κατά την ανάγνωση και εγγραφή αρχείων.

Το EXT2fs χρησιμοποιεί ενεργά την προσωρινή μνήμη του δίσκου. Όταν ένα μπλοκ χρειάζεται να διαβαστεί, ο πυρήνας εκδίδει ένα αίτημα λειτουργίας I/O σε πολλά γειτονικά μπλοκ. Έτσι, ο πυρήνας προσπαθεί να βεβαιωθεί ότι το επόμενο μπλοκ προς ανάγνωση έχει ήδη φορτωθεί στην προσωρινή μνήμη του δίσκου. Τέτοιες λειτουργίες εκτελούνται συνήθως κατά τη διαδοχική ανάγνωση αρχείων.

Το σύστημα EXT2fs περιέχει επίσης μεγάλο αριθμό βελτιστοποιήσεων για την τοποθέτηση πληροφοριών. Οι ομάδες μπλοκ χρησιμοποιούνται για την ομαδοποίηση αντίστοιχων ινωδών και μπλοκ δεδομένων. Ο πυρήνας προσπαθεί πάντα να τοποθετήσει τα μπλοκ δεδομένων ενός αρχείου στην ίδια ομάδα, καθώς και τον περιγραφέα του. Αυτό προορίζεται να μειώσει την κίνηση των κεφαλών κίνησης κατά την ανάγνωση του περιγραφέα και των αντίστοιχων μπλοκ δεδομένων του.

Κατά την εγγραφή δεδομένων σε ένα αρχείο, το EXT2fs εκχωρεί εκ των προτέρων έως και 8 συνεχόμενα μπλοκ κατά την εκχώρηση ενός νέου μπλοκ. Αυτή η μέθοδος σας επιτρέπει να επιτύχετε υψηλή απόδοση κάτω από μεγάλο φορτίο συστήματος. Αυτό επιτρέπει επίσης την τοποθέτηση αρχείων σε συνεχόμενα μπλοκ, γεγονός που επιταχύνει την επακόλουθη ανάγνωσή τους.

Βιβλιοθήκη EXT2fs

Για να απλοποιηθεί η χρήση των πόρων EXT2fs και η λειτουργία των δομών ελέγχου αυτού του συστήματος αρχείων, αναπτύχθηκε η βιβλιοθήκη libext2fs. Αυτή η βιβλιοθήκη περιέχει λειτουργίες που μπορούν να χρησιμοποιηθούν για τον ορισμό και την τροποποίηση δεδομένων συστήματος αρχείων EXT2 με απευθείας πρόσβαση στη φυσική συσκευή.

Τα περισσότερα βοηθητικά προγράμματα EXT2fs (mke2fs, e2fsck, tune2fs, dumpe2fs, debugfs, κ.λπ.) χρησιμοποιούν αυτήν τη βιβλιοθήκη. Αυτό απλοποιεί σε μεγάλο βαθμό την τροποποίηση αυτών των βοηθητικών προγραμμάτων, καθώς τυχόν αλλαγές για την εισαγωγή πρόσθετων δυνατοτήτων στο σύστημα αρχείων EXT2fs πρέπει να γίνονται μόνο στη βιβλιοθήκη EXT2fs.

Δεδομένου ότι η διεπαφή της βιβλιοθήκης EXT2fs είναι αρκετά ευρεία και αφηρημένη, τα προγράμματα που απαιτούν άμεση πρόσβαση στο σύστημα αρχείων μπορούν εύκολα να γραφτούν με τη βοήθειά της. Για παράδειγμα, η βιβλιοθήκη EXT2fs χρησιμοποιήθηκε κατά τη μεταφορά του 4.4 BSD dump και την αποκατάσταση ορισμένων βοηθητικών προγραμμάτων. Απαιτήθηκαν πολύ λίγες αλλαγές για την προσαρμογή αυτών των εργαλείων στο Linux (χρειάστηκε να αντικαταστήσουμε αρκετές λειτουργίες που αλληλεπιδρούν με το σύστημα αρχείων με κλήσεις στη βιβλιοθήκη EXT2fs).

Η βιβλιοθήκη EXT2fs παρέχει πρόσβαση στις λειτουργίες πολλών κλάσεων. Η πρώτη κατηγορία είναι λειτουργίες που σχετίζονται με το σύστημα αρχείων. Οποιοδήποτε πρόγραμμα μπορεί να ανοίξει ή να κλείσει ένα σύστημα αρχείων, να διαβάσει ή να γράψει ένα μπλοκ bit ή να δημιουργήσει ένα νέο σύστημα αρχείων στο δίσκο. Υπάρχουν επίσης λειτουργίες για το χειρισμό μιας λίστας ακατάλληλων μπλοκ συστήματος αρχείων.

Η δεύτερη κατηγορία λειτουργιών λειτουργεί με καταλόγους. Ένα πρόγραμμα που χρησιμοποιεί τη βιβλιοθήκη EXT2fs μπορεί να δημιουργήσει ή να επεκτείνει έναν κατάλογο, καθώς και να προσθέσει ή να διαγράψει εγγραφές σε έναν κατάλογο. Υπάρχουν λειτουργίες τόσο για τον προσδιορισμό της διαδρομής προς ένα αρχείο με χρήση inode όσο και για τον προσδιορισμό της διαδρομής προς ένα αρχείο χρησιμοποιώντας έναν καθορισμένο περιγραφέα.

Η τελευταία κατηγορία πράξεων λειτουργεί σε λαβές ευρετηρίου. Είναι δυνατή η ανάγνωση του πίνακα των περιγραφέων, η ανάγνωση ή η εγγραφή ενός περιγραφέα και η προβολή όλων των μπλοκ του καθορισμένου περιγραφέα. Είναι δυνατή η χρήση συναρτήσεων για την τοποθέτηση και την απελευθέρωση μπλοκ και περιγραφέων.

Εργαλεία συστήματος EXT2fs

Για το σύστημα EXT2fs έχουν αναπτυχθεί ισχυρά χειριστήρια. Αυτά τα εργαλεία χρησιμοποιούνται για τη δημιουργία, τροποποίηση και διόρθωση τυχόν ασυνεπειών στα συστήματα αρχείων EXT2fs. Το πρόγραμμα mke2fs χρησιμοποιείται για την προσάρτηση ενός διαμερίσματος δίσκου που περιέχει ένα κενό σύστημα αρχείων EXT2fs.

Το πρόγραμμα tune2fs μπορεί να χρησιμοποιηθεί για τη διαμόρφωση των παραμέτρων του συστήματος αρχείων.Με τη βοήθειά του, μπορείτε να αλλάξετε την απόκριση σε σφάλματα, τον μέγιστο αριθμό προσαρτήσεων συστήματος, το μέγιστο διάστημα μεταξύ ελέγχων συστήματος και τον αριθμό των λογικών μπλοκ που έχουν δεσμευτεί για τον χρήστη root.

Ίσως το πιο ενδιαφέρον εργαλείο είναι ο έλεγχος συστήματος αρχείων. Το E2fsck έχει σχεδιαστεί για να εξαλείφει τις ασυνέπειες στο σύστημα αρχείων μετά από έναν ανακριβή τερματισμό λειτουργίας ολόκληρου του συστήματος. Η αρχική έκδοση του προγράμματος e2fsck βασίζεται στο πρόγραμμα fsck Linus Torvald για το σύστημα αρχείων Minix. Ωστόσο, η τρέχουσα έκδοση του προγράμματος ξαναγράφεται χρησιμοποιώντας τη βιβλιοθήκη EXT2fs και είναι πιο γρήγορη και μπορεί να διορθώσει περισσότερα σφάλματα στο σύστημα κατά τον έλεγχο του, σε σύγκριση με την αρχική έκδοση.

Το πρόγραμμα e2fsck σχεδιάστηκε για να λειτουργεί με τη μέγιστη ταχύτητα. Εφόσον τα προγράμματα ελέγχου συστήματος αρχείων οδηγούν σε φόρτωση δίσκου, οι αλγόριθμοι e2fsck θα πρέπει να βελτιστοποιηθούν έτσι ώστε οι δομές του συστήματος αρχείων να είναι προσβάσιμες πολύ λιγότερο συχνά. Και, επιπλέον, η σειρά ελέγχου των inodes και των καταλόγων θα εκτελείται με βάση τον αριθμό μπλοκ για να μειωθεί ο χρόνος που απαιτείται για τη μετακίνηση των κεφαλών μονάδας δίσκου.

Στο πρώτο πέρασμα, το e2fsck τρέχει μέσω όλων των inode στο σύστημα αρχείων και εξετάζει κάθε inode ως ξεχωριστό στοιχείο συστήματος. Έτσι, άλλα αντικείμενα του συστήματος αρχείων δεν ελέγχονται κατά τη διάρκεια αυτής της δοκιμής. Ένας από τους σκοπούς τέτοιων ελέγχων είναι να ελεγχθεί η ύπαρξη του τύπου του αρχείου που ελέγχεται, καθώς και η αντιστοιχία όλων των μπλοκ στον περιγραφέα με μπλοκ με υπάρχοντες αριθμούς. Το πρώτο πέρασμα ελέγχει τους χάρτες bit υποδεικνύοντας τη χρήση μπλοκ και περιγραφέων.

Εάν το e2fsck βρει μπλοκ δεδομένων των οποίων οι αριθμοί περιέχονται σε περισσότερους από έναν περιγραφείς, τότε εκτελούνται τα περάσματα 1B έως 1D για να επιλυθεί η διαφορά, είτε αυξάνοντας τα μπλοκ που θα μοιραστούν είτε αφαιρώντας έναν ή περισσότερους περιγραφείς.

Το πρώτο πέρασμα παίρνει τον περισσότερο χρόνο, αφού όλα τα inode πρέπει να διαβαστούν στη μνήμη και να ελεγχθούν. Για να μειωθεί ο χρόνος των λειτουργιών I/O σε επόμενα περάσματα, όλες οι απαραίτητες πληροφορίες παραμένουν στο buffer. Ένα χαρακτηριστικό γνώρισμα αυτού του σχήματος είναι η αναζήτηση όλων των μπλοκ καταλόγων του συστήματος αρχείων. Για να αποκτήσετε αυτές τις πληροφορίες, στο δεύτερο πέρασμα διαβάζονται ξανά οι δομές περιγραφής όλων των καταλόγων στο σύστημα αρχείων.

Στο δεύτερο πέρασμα, οι κατάλογοι ελέγχονται ως ξεχωριστά στοιχεία του συστήματος αρχείων. Κάθε μπλοκ καταλόγου ελέγχεται χωριστά, χωρίς αναφορά σε άλλα μπλοκ καταλόγου. Αυτό επιτρέπει στο e2fsck να ταξινομεί όλα τα μπλοκ καταλόγου κατά αριθμό μπλοκ και να τα ελέγχει με αύξουσα σειρά, μειώνοντας έτσι τον χρόνο πρόσβασης στο δίσκο. Τα μπλοκ καταλόγου ελέγχονται για να διασφαλιστεί ότι οι καταχωρίσεις τους είναι έγκυρες και ότι περιέχουν αναφορές σε λαβές με υπάρχοντες αριθμούς (όπως καθορίζεται στο πρώτο πέρασμα).

Για το πρώτο μπλοκ καταλόγου σε κάθε περιγραφέα καταλόγου, ελέγχεται η ύπαρξη καταχωρήσεων ".". και "..", και ότι ο αριθμός περιγραφής για την καταχώρηση "." ταιριάζει με τον τρέχοντα κατάλογο. (Ο αριθμός περιγραφής για την καταχώρηση ".." δεν ελέγχεται μέχρι το τρίτο πέρασμα.)

Κατά το δεύτερο πέρασμα, οι πληροφορίες που αντιστοιχούν στον γονικό κατάλογο αποθηκεύονται σε ένα buffer.

Θα πρέπει να σημειωθεί ότι μέχρι το τέλος του δεύτερου πέρασμα, έχουν ολοκληρωθεί σχεδόν όλες οι λειτουργίες I/O στο δίσκο. Όλες οι πληροφορίες που απαιτούνται για το τρίτο, το τέταρτο και το πέμπτο πέρασμα περιέχονται στη μνήμη, ωστόσο, τα υπόλοιπα περάσματα φορτώνουν τον επεξεργαστή και καταλαμβάνουν λιγότερο από το 5-10% του συνολικού χρόνου εκτέλεσης του e2fsck.

Στο τρίτο πέρασμα, ελέγχονται οι συνδέσεις καταλόγου. Το E2fsck ελέγχει τις διαδρομές κάθε καταλόγου προς τη ρίζα χρησιμοποιώντας τις πληροφορίες που ελήφθησαν κατά το δεύτερο πέρασμα. Εδώ ελέγχεται η καταχώρηση ".." για κάθε κατάλογο. Όλοι οι κατάλογοι που προσδιορίζονται μετά από έλεγχο και δεν έχουν σύνδεση με τον ριζικό κατάλογο τοποθετούνται στον κατάλογο /lost+found.

Στο τέταρτο πέρασμα, το e2fsck ελέγχει τις μετρήσεις αναφοράς για κάθε inode περνώντας από όλους τους inode και συγκρίνοντας τις μετρήσεις αναφοράς (αυτές οι πληροφορίες αποθηκεύονται από το πρώτο πέρασμα) με τους εσωτερικούς μετρητές που υπολογίστηκαν κατά το δεύτερο και το τρίτο πέρασμα. ov. Όλα τα μη διαγραμμένα αρχεία με μηδενικό αριθμό αναφοράς τοποθετούνται επίσης στον κατάλογο /lost+found.

Τέλος, στο πέμπτο πέρασμα, το e2fsck ελέγχει ότι ταιριάζουν όλες οι πληροφορίες του συστήματος αρχείων. Εδώ, τα bitmaps των μπλοκ και των περιγραφέων που ελήφθησαν σε προηγούμενα περάσματα συγκρίνονται με τις πραγματικές τιμές και, εάν είναι απαραίτητο, οι πληροφορίες στο δίσκο προσαρμόζονται ανάλογα.

Ένα άλλο χρήσιμο εργαλείο είναι ο εντοπισμός σφαλμάτων συστήματος αρχείων. Το Debugfs είναι ένα ισχυρό πρόγραμμα που σας επιτρέπει να προσδιορίσετε και να ορίσετε την κατάσταση ενός συστήματος αρχείων. Ουσιαστικά, είναι μια διαδραστική διεπαφή με τη βιβλιοθήκη EXT2fs, δηλαδή μεταφράζει πληκτρολογημένες εντολές σε κλήσεις προς λειτουργίες βιβλιοθήκης.

Τα σφάλματα εντοπισμού σφαλμάτων μπορούν να χρησιμοποιηθούν για τον προσδιορισμό της εσωτερικής δομής ενός συστήματος αρχείων, την επιδιόρθωση με μη αυτόματο τρόπο ενός κατεστραμμένου συστήματος ή τη δημιουργία δοκιμών υπό όρους για το e2fsck. Δυστυχώς, αυτό το πρόγραμμα μπορεί να βλάψει το σύστημα αρχείων εάν δεν ξέρετε πώς να το χρησιμοποιήσετε. Χρησιμοποιώντας αυτό το εργαλείο, μπορείτε απλά να καταστρέψετε το σύστημα αρχείων. Επομένως, το debugfs ανοίγει το σύστημα αρχείων σε λειτουργία μόνο για ανάγνωση από προεπιλογή. Για πρόσβαση σε λειτουργία ανάγνωσης/εγγραφής, καθορίστε την επιλογή -w.

Υπολογισμός απόδοσης

Τα αποτελέσματα της δοκιμής Bonnie φαίνονται από τον παρακάτω πίνακα:

Εγγραφή χαρακτήρα προς χαρακτήρα (Kb/s)

Αποκλεισμός εγγραφής (Kb/s)

Μεταγλώττιση (Kb/s)

Ανάγνωση χαρακτήρα προς χαρακτήρα (Kb/s)

Αποκλεισμός ανάγνωσης (Kb/s)

BSD Async

BSD Sync

Ext2fs

1237

1033

Xia fs

Τα αποτελέσματα είναι αρκετά καλά για μπλοκ I/O: το σύστημα EXT2fs ξεπερνά τα άλλα συστήματα όσον αφορά την απόδοση. Αυτό οφείλεται στις βελτιστοποιήσεις που περιλαμβάνονται στις διαδικασίες τοποθέτησης. Η εγγραφή γίνεται επίσης αρκετά γρήγορα, λόγω του ότι γίνεται σε ομαδική λειτουργία. Η υψηλή ταχύτητα ανάγνωσης οφείλεται στο γεγονός ότι τα μπλοκ έχουν εκχωρηθεί στο αρχείο, έτσι οι κεφαλές μονάδας δίσκου δεν μετακινούνται μεταξύ δύο αναγνώσεων και η βελτιστοποίηση προ-ανάγνωσης είναι πλήρως λειτουργική.

Από την άλλη πλευρά, το σύστημα FreeBSD έχει υψηλότερη απόδοση για συμβολικές εισόδους/εξόδους. Αυτό μπορεί να οφείλεται στο γεγονός ότι το FreeBSD και το Linux χρησιμοποιούν διαφορετικές διαδικασίες για τις αντίστοιχες βιβλιοθήκες C. Επιπλέον, το FreeBSD έχει πιθανότατα μια πιο βελτιστοποιημένη συμβολική βιβλιοθήκη ανάγνωσης και επομένως η απόδοση είναι ελαφρώς καλύτερη εδώ.

Αποτελέσματα δοκιμής Andrew

Τα αποτελέσματα των δοκιμών του Andrew φαίνονται από τον παρακάτω πίνακα:

Απόσπασμα 1 Δημιουργία

Πάσο 2 Αντίγραφο

Πέρασμα 3 Έλεγχος κατάστασης

Περάστε τον έλεγχο 4 byte-by-byte

Απόσπασμα 5 Σύνταξη

2203

7391

6319

17466

75314

BSD Sync

2330

7732

6317

17499

75681

Ext2fs

Τα αποτελέσματα των δύο πρώτων περασμάτων δείχνουν ότι το Linux κερδίζει με την ασύγχρονη ανταλλαγή δεδομένων. Κατά τη δημιουργία καταλόγων και αρχείων, το σύστημα BSD εγγράφει λαβές καταλόγου και καταχωρήσεις καταλόγου συγχρονισμένα. Υπάρχει η εικασία ότι η ασύγχρονη υποστήριξη για το FreeBSD δεν έχει ακόμη υλοποιηθεί πλήρως.

Στο τρίτο πέρασμα, οι τιμές για το Linux και το BSD είναι πολύ παρόμοιες. Ενώ το BSD αποδίδει καλύτερα, η προσθήκη ενός buffer ονόματος αρχείου στο Linux VFS εξαλείφει αυτό το πρόβλημα.

Στο τέταρτο και πέμπτο πέρασμα, το Linux είναι ταχύτερο από το FreeBSD, κυρίως λόγω της χρήσης ενοποιημένης διαχείρισης buffer. Το μέγεθος του buffer μπορεί να αυξηθεί ανάλογα με τις ανάγκες και να καταλαμβάνει περισσότερη μνήμη από το FreeBSD, το οποίο χρησιμοποιεί ένα σταθερό μέγεθος. Μια σύγκριση των αποτελεσμάτων των συστημάτων EXT2fs και Xia fs δείχνει ότι οι βελτιστοποιήσεις που περιλαμβάνονται στο EXT2fs χρησιμοποιούνται στην πραγματικότητα: η διαφορά στην απόδοση αυτών των συστημάτων είναι περίπου 5-10%.

συμπέρασμα

Το σύστημα αρχείων EXT2 είναι το πιο ευρέως χρησιμοποιούμενο μεταξύ των χρηστών Linux. Παρέχει τυπικές δυνατότητες Unix και πρόσθετες δυνατότητες. Επιπλέον, χάρη στη βελτιστοποίηση που περιλαμβάνεται στον πυρήνα, παρουσιάζει εξαιρετικά αποτελέσματα απόδοσης.

Το σύστημα EXT2fs περιλαμβάνει λειτουργίες που σας επιτρέπουν να προσθέσετε νέες δυνατότητες. Μερικοί άνθρωποι εργάζονται για την ανάπτυξη επεκτάσεων στο πραγματικό σύστημα αρχείων: Posix ACL, ανάκτηση διαγραμμένα αρχείακαι συμπίεση αρχείων σε πραγματικό χρόνο.

Αρχικά, το σύστημα EXT2fs ενσωματώθηκε στον πυρήνα του Linux και τώρα μεταφέρεται ενεργά σε άλλα λειτουργικά συστήματα. Το EXT2fs είναι επίσης ένα σημαντικό στοιχείο του λειτουργικού συστήματος Masix, το οποίο αυτή τη στιγμή αναπτύσσεται από έναν από τους συγγραφείς.


Μπλουζα