2. Συστήματα Αρχείων
Η δομή των καταλόγων στο σύστημα αρχείων
Φυσική Δομή των Αρχείων, i-nodes
Σύνδεσμοι (hard links, symbolic links)
Εντολές σχετικές με το σύστημα αρχείων
2
3. Το σύστημα αρχείων
στο Linux/Unix έχει την
κωδική ονομασία UFS
(Unix File System)
και έχει δύο όψεις
- την εικονική όψη
(Virtual view)
- και την φυσική όψη
(Physical view)
3
4. Η φυσική όψη του συστήματος αρχείων
αναφέρεται στον τρόπο που υλοποιείται
πάνω σε κάποιο μαγνητικό μέσο το
οποίο είναι συνήθως μια partition
σκληρού δίσκου.
Το σύστημα αρχείων διατηρεί
πληροφορίες σε τέσσερα λογικά τμήματα
της partition.
4
5. Τμήμα 1: Τμήμα Εκκίνησης (Boot Block ή Bootstrap Block)
Το τμήμα αυτό περιέχει εκτελέσιμα αρχεία που εκτελούνται κατά την πρώτη εκκίνηση του
συστήματος (boot)
Τμήμα 2: Υπερ-Τμήμα (SUPER BLOCK)
Περιέχει όλες τις πληροφορίες που περιγράφουν ένα σύστημα αρχείων όπως :
- Το μέγεθος του συστήματος αρχείων
- Το μέγεθος του τμήματος των i- nodes
- Τον αριθμό των ελεύθερων μπλοκ που υπάρχουν στο DATA BLOCK
- Μια λίστα των ελεύθερων μπλοκ.
- Ένα δείκτη για το επόμενο ελεύθερο i- node
- Το χρόνο της τελευταίας εγγραφής του super block στο δίσκο.
Τμήμα 3: Ι-Λίστα (I-LIST)
Περιέχει τη λίστα των i-nodes.
Οι i- nodes είναι δομές δεδομένων οι οποίες στην πρώτη έκδοσή τους είχαν μήκος μήκους 64
bytes και σήμερα 128 bytes. Οι i- nodes περιλαμβάνουν όλες τις πληροφορίες που χρειάζεται το
σύστημα για κάθε αρχείο εκτός από το όνομα του αρχείου. Κάθε i-node αντιστοιχεί σε ένα
μόνο αρχείο.
Τμήμα 4 (Data Blocks)
Περιέχει μπλοκ τα οποία είτε περιέχουν δεδομένα είτε είναι κενά.
Το μέγεθος των μπλοκ συνήθως είναι 512 ή 1024 bytes
5
6. Οι κατάλογοι στο Linux/Unix αποτελούν ένα είδος αρχείου που περιέχει
- ονόματα των αρχείων
- i-number που αντιστοιχεί σε κάθε αρχείο
Οι i- αριθμοί των αρχείων μπορούν να εμφανιστούν με την εντολή:
$ ls –il
6
7. Ένας i-node είναι μια δομή δεδομένων που έχει μέγεθος 128 bytes και περιέχει όλες τις
απαραίτητες πληροφορίες για το αρχείο εκτός από το όνομά του.
Οι πληροφορίες αυτές είναι
- Ένας κωδικός που χαρακτηρίζει το είδος του αρχείου
- Το μέγεθος του αρχείου
- Τον αριθμό των συνδέσμων του αρχείου
- Τον ιδιοκτήτη του αρχείου καθώς και την ομάδα χρηστών
- Τα δικαιώματα των διαφόρων ομάδων χρηστών
- Το χρόνο τελευταίας προσπέλασης
- Το χρόνο τελευταίας τροποποίησης
- 13 δείκτες προς τα μπλοκ (blocks) που περιέχουν τα δεδομένα του αρχείου
Όταν ένα αρχείο δημιουργείται, το UNIX αναλαμβάνει να βρεi έναν ελεύθερο
i-node και να γράψει τις αντίστοιχες πληροφορίες αυτόματα, χωρίς την επέμβαση του χρήστη.
Η αντιστοιχία μεταξύ του ονόματος ενός αρχείου και του σχετικού i-κόμβου καλείται
σύνδεσμος (link).
7
9. Οι σύνδεσμοι χρησιμοποιούνται για την δημιουργία ενός ακόμα τρόπου πρόσβασης σε ένα αρχείο ή την
παροχή ενός ακόμα ονόματος σε ένα αρχείο χωρίς να χρειαστεί να αντιγράψουμε τα περιεχόμενα του
$ ln [ορίσματα] πηγή [στόχος]
πραγματικός σύνδεσμος (hard link) λοιπόν είναι ένα αρχείο που 'δείχνει"
τον ίδιο i-node με ένα άλλο αρχείο (ή και περισσότερα)
$ cd /tmp
$ touch firstlink
$ ln firstlink secondlink
$ ls -i firstlink secondlink
15782 firstlink 15782 secondlink
$ echo "hello world" > firstlink
$ cat secondlink
hello world
Πραγματικοί σύνδεσμοι μπορούν να δημιουργηθούν μόνο με αρχεία και όχι σε καταλόγους
Δεν μπορούν να επεκταθούν σε διαφορετικά συστήματα αρχείων
9
10. Ένας συμβολικός σύνδεσμος είναι ένας ειδικός τύπος αρχείου ενώ οι πραγματικοί σύνδεσμοι ήταν κανονικά
αρχεία
Ένας συμβολικός σύνδεσμος σε ένα αρχείο testfile δεν έχει τον ίδιο i-αριθμό με το testfile αλλά απλά τα
δεδομένα του περιέχουν την ακριβή διαδρομή (μονοπάτι) που βρίσκεται το αρχείο testfile.
Αν διαγραφεί το αρχείο testfile (και ήταν ο μοναδικός σύνδεσμος) τότε το αρχείο διαγράφεται από το σύστημα
αρχείων. Στην περίπτωση αυτή ο συμβολικός σύνδεσμός συνεχίζει να υπάρχει αλλά δεν "δείχνει" πουθενά.
$ ln -s secondlink thirdlink
$ ls -l firstlink secondlink thirdlink
10
11. Η εντολή du εμφανίζει το μέγεθος(σε block) ενός συστήματος αρχείων κάτω από ένα directory
$ du /usr/
Η εντολή df εμφανίζει τον αριθμό των ελεύθερων διαθέσιμων μπλοκ που υπάρχουν στα διαθέσιμα
συστήματα αρχείων
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda3 28847260 22899592 4775568 83% /
/dev/hda1 54416 8941 42666 18% /boot
/home 49282864 26790084 19989512 58% /home
mount /dev/όνομα_συσκευής υπάρχον_κατάλογος
$ mount /dev/dsk02 /usr/disk2
11