Σύστημα αρχείων Unix
Από TeiWiki
Ένα σύστημα αρχείων είναι μια μέθοδος για την αποθήκευση και οργάνωση των αρχείων ενός υπολογιστή και τα δεδομένα τα οποία περιέχονται σε αυτά. Αυτή η μέθοδος είναι αναγκαία γιατί χωρίς αυτή επικρατεί χάος. Όλα τα λειτουργικά συστήματα χρησιμοποιούν ένα ιεραρχικό μοντέλο για το σύστημα αρχείων που χρησιμοποιούν. Μια ιεραρχία είναι ένα σύστημα οργανωμένο σε βαθμίδες.
Ένα παράδειγμα που όλοι μπορούμε να κατανοήσουμε εύκολα είναι αυτό της ιεραρχικής δομής του ΤΕΙ. Πχ στο ΤΕΙ έχουμε τους καθηγητές, που με την σειρά τους αναφέρονται σε προϊσταμένους, κι εκείνοι με την σειρά τους σε διευθυντές, οι οποίοι με την σειρά τους στον αντιπρόεδρο, ο οποίος με την σειρά του λογοδοτεί στον πρόεδρο του ΤΕΙ.
Την ίδια δομή μπορούμε εύκολα να παρατηρήσουμε σε εταιρίες, οργανισμούς και οτιδήποτε γενικά περιλαμβάνει δραστηριότητα. Είναι ένα μοντέλο που κυριαρχεί σε πολλούς τομείς καθώς επίσης και στα συστήματα αρχείων.
Τα Windows περιέχουν επίσης ένα ιεραρχικό μοντέλο αλλά διαφέρει σε ορισμένα καίρια σημεία. Παρακάτω θα παρατηρήσουμε τις βασικές διαφορές ανάμεσα στο σύστημα αρχείων που χρησιμοποιεί το Linux και τις διαφορές με αυτό των Windows.
Σύστημα Αρχείων του Linux
To Linux χρησιμοποιεί ένα αυστηρά ιεραρχικό σύστημα όπου όλα ξεκινούν από την ρίζα (root) το οποίο αναπαρίσταται από μια κάθετο ( / ). Aυτο λέγεται δομή δέντρου[1], γιατί όλα ξεκινούν από την ρίζα του δέντρου και συνεχίζονται με διακλαδώσεις κάτω από αυτή. Πχ για να φτάσω σε ένα αρχείο που έχω αποθηκεύσει στο home μου (αντίστοιχο του φακέλου "Τα έγγραφά μου" των Windows) πρέπει να πάω εδώ : /home/kostas/arxeio.txt Μια έννοια-κλειδί που δίνει την δυνατότητα στο ιεραρχικό σύστημα αρχείων του Unix να είναι τόσο αποτελεσματικό είναι οτιδήποτε δεν αποτελεί φάκελο είναι ένα αρχείο. Τα προγράμματα είναι αρχεία στο Unix, οι μηχανισμοί συσκευών είναι αρχεία, τα έγγραφα και τα υπολογιστικά φύλλα είναι αρχεία, το πληκτρολόγιο σας αναπαρίσταται ως αρχείο, η οθόνη σας είναι ένα αρχείο, ακόμη και το ποντίκι σας είναι αρχείο.
Γραφικό παράδειγμα της δομής του συστήματος αρχείων του Linux:
Βασικοί φάκελοι σε ένα Unix - Βased Λειτουργικό
/bin: O κατάλογος bin (binaries) είναι η θέση όπου φυλάσσονται όλα τα εκτελέσιμα δυαδικά στην πρώιμη έκδοση του Unix. Με τον καιρό όλο και περισσότερα εκτελέσιμα προστίθενται στο Unix, και το να είναι όλα τα εκτελέσιμα σε μια θέση αποδείχτηκε προβληματική τακτική για τη διαχείριση, και ο κατάλογος bin χωρίστηκε σε πολλά μέρη (/bin, /sbin, /usr/bin)
/dev: Ο κατάλογος dev(devices) είναι η θέση οπου υπάρχουν όλες οι συσκευές, είτε είναι πληκτρολόγιο, είτε είναι ποντίκι, είτε είναι οποιαδήποτε εξωτερική συσκευή. Όλοι οι μηχανισμοί συσκευών - συχνά αριθμούνται σε εκατοντάδες - αποθηκεύονται ως ξεχωριστά αρχεία στον τυπικό κατάλογο του Unix dev.
/etc: H διαχείριση του Unix μπορεί να είναι πολύπλοκη, ειδικά αν περιέχει την διαχείριση πολλαπλών λογαριασμών χρηστών, του συστήματος αρχείων, της ασφάλειας κλπ. Για να διευκολυνθείτε, το Unix προορίζει τον κατάλογο etc ως την θέση αποθήκευσης όλων των αρχείων και των πληροφοριών διαχείρισης. Σημαίνει ετσέτερα, που σημαίνει "και άλλα πράγματα" η οτιδήποτε δεν μπορεί να καταταχθεί.
/lib: Ο κατάλογος lib(libraries) είναι η κεντρική θέση αποθήκευσης για τις βιβλιοθήκες συναρτήσεων και διαδικασιών. Δείτε τις βιβλιοθήκες ως χαρακτηριστικά των προγραμμάτων, εκτελέσιμα αρχεία είναι που τρέχουν μαζί με τα προγράμματα, όπως οι βιβλιοθήκες της C για παράδειγμα. Η ιδέα είναι ότι αν θέλετε τα προγράμματα να περιλαμβάνουν ορισμένα χαρακτηριστικά, υπάρχει ένας κοινόχρηστος χώρος όπου όλες οι βιβλιοθήκες είναι μαζί, αντί να είναι σε ξεχωριστό φάκελο για κάθε πρόγραμμα.
/lost+found: Αυτός είναι κατάλογος που κανονικά θα πρέπει να είναι άδειος. Χρησιμοποιείται σε περιπτώσεις που υπάρχει κάποιο πρόβλημα η κάποια αποτυχία όπου τοποθετούνται και ανακτώνται αρχεία. Η λογική είναι όταν κάτι "χαθεί" να τοποθετηθεί εκεί ώστε να "βρεθεί" αργότερα.
/mnt: Εδώ είναι όπου γίνεται το mount. Eδώ φορτώνεις εξωτερικούς δίσκους και εξωτερικές γενικά συσκευές (flashάκια, DVDs κλπ). Η διαφορά με το /dev είναι οτι στον /mnt φορτώνεις τα αρχεία που περιέχονται μέσα στις συσκευές /dev.
/tmp: Αυτός είναι ένας κατάλογος τον οποίο μπορείτε να τον αγνοήσετε. Σημαίνει temporary και χρησιμοποιείται από πολλά προγράμματα που τρέχουν ως προσωρινή θέση αποθήκευσης.
/usr: Σημαίνει user. Aυτός ο κατάλογος εξ αρχής ήταν η κεντρική αποθηκευτική θέση για όλες τις εντολές που σχετίζονται με τον χρήστη. Ωστόσο πολλοί developers δεν χρησιμοποιούν αυτή την πρακτική και δεν ξεκαθαρίζουν τι θα βρίσκετε σε αυτόν τον κατάλογο. Γενικά πάντως, η τυπική πρακτική λέει ότι o usr περιέχει τα δυαδικά του λειτουργικού συστήματος.
/home: Είναι ο αρχικός κατάλογος (home directory) όπου εμπεριέχονται όλοι οι χρήστες ενός λειτουργικού συστήματος που είναι βασισμένο στο Unix. Κάθε λογαριασμός χρήστη που δημιουργείται του δίνεται ένας φάκελος στο /home όπου μπορεί να αποθηκεύσει αρχεία και να κάνει τις καθημερινές του εργασίες.
swap
Μεταφράζεται ως αρχείο ανταλλαγής. To swap χρησιμοποιείται από το λειτουργικό σύστημα όταν υπερβαίνουν οι απαιτήσεις της RAM τη διαθέσιμη καθώς και για caching.
Τα Windows χρησιμοποιούν ένα κρυμμένο αρχείο ως swap. Συγκεκριμένα στα Windows XP αυτό το αρχείο λέγεται pagefile.sys. Στο Linux χρησιμοποιείται συνήθως ως ξεχωριστό partition και το ορίζει ο χρήστης. Το πρόβλημα όταν το swap βρίσκεται στο ίδιο partition με το λειτουργικό είναι ότι αν γεμίσει ο σκληρός με διάφορα δεδομένα και χρειαστεί να χρησιμοποιηθεί το swap, δεν θα βρίσκει τον κατάλληλο χώρο και θα κολλήσει. Οπότε καλύτερη είναι η μέθοδος του swap σε ξεχωριστό partition.

