Επόμενο Προηγούμενο Περιεχόμενα
Ένα swap αρχείο είναι ένα κανονικό αρχείο. Δεν είναι με
κανένα τρόπο ειδικό προς τον πυρήνα. Το μόνο πράγμα που
νοιάζει τον πυρήνα είναι να μην έχει καθόλου "τρύπες",
και να είναι έτοιμο για χρήση με την εντολή mkswap.
Πρέπει, πάντως, να διαμένει σε έναν τοπικό δίσκο του
συστήματος. Δεν μπορεί να διαμένει σε ένα σύστημα αρχείων
που έχει προσαρτηθεί μέσω NFS για λόγους υλοποίησης.
Το κομμάτι σχετικά με τις "τρύπες" είναι σημαντικό. Το
αρχείο swap κρατάει τον χώρο του δίσκου έτσι ώστε ο
πυρήνας να μπορεί γρήγορα να swap out μια σελίδα χωρίς να
χρειάζεται να παέι μέσω όλων των πραγμάτων που είναι
χρήσιμα όταν καταχωρεί ένα sector δίσκου σε ένα αρχείο. Ο
πυρήνας απλώς χρησιμοποιεί όποιους τομείς έχουν ήδη
καταχωρηθεί στο αρχείο. Επειδή μια "τρύπα" σε ένα αρχείο
σημαίνει πως δεν υπάρχουν καθόλου τομείς δίσκου
καταχωρημένοι (για αυτό το μέρος μέσα στο αρχείο), δεν
είναι καλό για τον πυρήνα να προσπαθεί να τους
χρησιμοποιεί.
Ένας καλός τρόπος για να δημιουργήσετε το swap αρχείο
χωρίς "τρύπες" είναι μέσω της ακόλουθης εντολής:
dd if=/dev/zero of=<swap αρχείο> bs=<bytes> count=<blocks>
-
if=/dev/zero : input file, διαβάζει από αυτό το αρχείο
-
of=<swap αρχείο> : output file, γράφει σε αυτό το
αρχείο
-
bs=<bytes> : block size, διαβάζει και γράφει
<bytes> bytes κάθε φορά
-
count=<blocks> : αντιγράφει μόνο <blocks>
blocks από αυτά που διαβάζει
Θα εμφανιστεί το μήνυμα:
<blocks>+0 records in
<blocks>+0 records out
Είναι καλύτερα το μέγεθος να είναι πολλαπλάσιο του 4,
επειδή ο πυρήνας γράφει σελίδες μνήμης, που είναι 4ΚΒ σε
μέγεθος. Αν το μέγεθος δεν είναι πολλαπλάσιο του 4, το
τελευταίο ζευγάρι των kilobytes μπορεί να είναι
αχρησιμοποίητο. Ειδικότερα, για swap αρχείο το μέγεθος
είναι καλό να είναι πολλαπλάσιο του inode μεγέθους,
συνήθως 1024 ή 2048 (ή ακόμη και 4096), γιατί
1block=1KB=1024 bytes άρα τιμές πολλαπλάσιες του 1024.
Το /dev/zero είναι ένα ειδικό αρχείο που κατά την
ανάγνωσή του, επιστρέφει \0 χαρακτήρες. Είναι μια συσκευή
που όταν την διαβάζετε παίρνετε άπειρα ASCII 0. Είναι
χρήσιμη ως πηγή "κενών" bytes, όπως ακριβώς και πολλοί
επεξεργαστές RISC έχουν ένα zero καταχωρητή που είναι
πάντα 0.
Δημιουργείται με:
mknod -m 666 /dev/zero c 1 5
chown root.mem /dev/zero
Επόμενο Προηγούμενο Περιεχόμενα