Περιεχόμενα
Σε όρους γραμμών κώδικα, ο πυρήνας του Linux είναι κυρίως
οδηγοί. Πραγματικά, το μέγεθος της καρδιάς του Linux δεν
έχει μεγαλώσει πολύ κατά τις τελευταίες ανανεώσεις.
Κάποιοι από αυτούς τους οδηγούς είναι ανεξάρτητοι
αρχιτεκτονικής, όπως ο οδηγός ΙDE. Αυτό σημαίνει πως
αυτοί έχουν γραφτεί για να δουλεύουν σε διάφορες
πλατφόρμες. Άλλοι οδηγοί εξαρτώνται από μία συγκεκριμένη
αρχιτεκτονική. Για παράδειγμα, ο οδηγός ποντικιού
ADB (Apple Desktop Bus) δεν μπορεί να δουλέψει
στην πλατφόρμα i386 και έτσι δεν υποστηρίζεται. Οι
προγραμματιστές του πυρήνα του Linux πασχίζουν για να
φτιάξουν οδηγούς όσο γενικούς γίνεται, έτσι ώστε να είναι
δυνατόν να ξαναχρησιμοποιηθούν με μικρή προσπάθεια σε
άλλες πλατφόρμες αν κάποιο εξάρτημα είναι διαθέσιμο. Το
Linux είναι ένα πολυκέφαλο θηρίο με πρόσωπα παρόμοια αλλά
διαφορετικά το ένα από το άλλο, ανάλογα με την πλατφόρμα
που χρησιμοποιούμε.
Αυτό το κείμενο θα ασχοληθεί με υλικό Ιntel. Παρ' ότι δεν
θα μπει σε λεπτομέρειες για κάθε μεταφορά του Linux, θα
πρέπει να αναφερθεί πως το Linux 2.4 θα υποστηρίζει
κάποιες νέες πλατφόρμες: i64 (Itanium), S/390 και SuperH.
H υποστήριξη αυτή θα ωριμάσει με το χρόνο, όπως έγινε και
με το Linux για άλλες πλατφόρμες. Τα ακριβή
χαρακτηριστικά διαφέρουν από πλατφόρμα σε πλατφόρμα και
κάποιοι περιορισμοί του υλικού, μνήμης κλπ θα διαφέρουν
ανάλογα με την αρχιτεκτονική.
Σε ό,τι αφορά στο Linux 2.4 για Intel, αυτό είναι πολύ
παρόμοιο σε υποστήριξη με το Linux2.2. Όλα τα chips της
Intel από τον 386 υποστηρίζονται ακόμα, μέχρι τον Pentium
III. Συμβατά chips όπως αυτά της AMD ή της Cyrix επίσης
υποστηρίζονται. Επιπλέον, το Linux 2.4 θα περιλαμβάνει
υποστήριξη για άλλο υλικό συχνά παρόν σε πιο καινούργια
chips συμπεριλαμβανομένων ποικιλιών MTRRs (Memory Type
Range Registers, επίσης MCRs) μή-Intel που θα
βελτιώσουν την απόδοση σε κάποιες συσκευές μεγάλου
εύρους. Ενώ το Linux 2.2 είχε υποστήριξη για IO-APIC
(Advanced Programmable Interrupt Controller) σε
συστήματα πολλαπλών επεξεργαστών, το Linux 2.4 θα παρέχει
την ίδια υποστήριξη και σε συστήματα ενός επεξεργαστή κι
επίσης θα υποστηρίζει μηχανήματα με πολλαπλούς ΙΟ-ΑPICs.
Η υποστήριξη για πολλαπλούς IO-APICs θα επιτρέψει στο
Linux 2.4 να προσαρμόζεται (scale) πολύ καλύτερα σε
μηχανήματα υψηλών αποδόσεων απ΄ότι πριν.
Αν και δεν έχει ακόμα παραδοθεί στις ανυπομονούσες μάζες,
ο 64μπιτος αντικαταστάτης της Intel για τη σειρά των x86
έρχεται. Αν και δεν υπάρχει πραγματικό υλικό ακόμα, στην
έκδοση του πυρήνα έχει συμπεριληφθεί υποστήριξη (με
patches) γι αυτό το chip και τους διαδόχους του. Η
διαδικασία της μεταφοράς απλουστεύτηκε σίγουρα με την
υπάρχουσα υποστήριξη του Linux για 64μπιτους επεξεργαστές
(συμπεριλαμβανομένων του Alpha της Compaq και του
Sparc64).
Καθώς ο Linus δουλεύει στην Transmetta, ο Crusoe
θα υποστηρίζει οπωσδήποτε το Linux όταν βγουν τα πρώτα
προϊόντα Crusoe στην αγορά. Στην πραγματικότητα, το Linux
στον Crusoe έχει ήδη επιδειχθεί και μάλιστα πειστικά
χρησιμοποιώντας το τεστ του Quake (πιθανώς το πιο
σημαντικό τεστ για κάθε νέο επεξεργαστή). Καθώς ο Crusoe
προσομοιώνει τους i386 δεν θα υπάρξει ειδική μεταφορά γι
αυτή την οικογένεια επεξεργαστών αλλά χαρακτηριστικά
(ειδικά διαχείριση ενέργειας και πιθανώς ένα νέο "virtual
keyboard layer") τα οποία αναμένονται να υπάρχουν στην
έκδοση 2.4 του πυρήνα.
Περιέργως, πολλοί ενδιαφέρονται ακόμα για το Linux για
προ-386 επεξεργαστές. Η απάντηση, τουλάχιστον αυτή τη
στιγμή, είναι πως δεν υπάρχει τέτοιο πράγμα Υπάρχει ένα
αδερφό πρόγραμμα, το ΕLKS (Embedable Linux Kernel
Subset) το οποίο δουλεύει πάνω σε μία παραλλαγή του
Linux για τέτοια μηχανήματα, με υποστήριξη για protected
mode για όσα την υποστηρίζουν. Το πρόγραμμα αυτό είναι
ανεξάρτητο από το κυρίως Linux και δεν αφορά αυτό το
κείμενο.
Υπάρχει επίσης μία διαφορετική μεταφορά του πυρήνα του
Linux, το uLinux, που προσφέρει Linux σε ενσωματωμένους
και παλιότερους επεξεργαστές, συμπεριλαμβανομένων αυτών
χωρίς MMUs. Αυτή η δουλειά προς το παρόν βασίζεται πάνω
στον πυρήνα 2.0 και δεν έχει ενσωματωθεί στο master tree.
To Linux 2.2 ήταν μία μεγάλη βελτίωση του Linux 2.0 και
τη σειρά Linux 1.x. Υποστήριζε πολλά καινούργια συστήματα
αρχείων, ένα νέο σύστημα file caching και ήταν
πολύ καλύτερα κλιμακούμενο. Το Linux 2.4 χτίζει πάνω σε
αυτές και άλλες βάσεις για να είναι το καλύτερο Linux
μέχρι τώρα για πολλά πράγματα.
Ο πυρήνας του Linux είναι μία συλλογή αρθρωμάτων που
περιλαμβάνουν οδηγούς υλικού, πρωτόκολλα και άλλα
στοιχεία. Αυτά είναι 'κολλημένα' στην καρδιά του πυρήνα
με APIs, Programming Interfaces, που παρέχουν μία
στάνταρντ μέθοδο με την οποία ο πυρήνας του Linux μπορεί
να επεκταθεί, και με αυτά θα ασχοληθεί αυτό το κείμενο.
Αυτά είναι τα στοιχεία που οδηγούν τους δίσκους σας,
διαβάζουν τα αρχεία σας και κάνουν όλα τα προφανή
πράγματα. Το Linux 2.4 είναι κάτι παραπάνω από αυτά,
όμως. Αυτοί οι οδηγοί και τα APIs περιστρέφονται γύρω από
ένα κοινό κέντρο του πυρήνα του Linux. Αυτό το κέντρο
περιλαμβάνει πολύ σημαντικά χαρακτηριστικά όπως τον
scheduler, τον διαχειριστή μνήμης, το εικονικό σύστημα
αρχείων και το resource allocator.
Το Linux 2.4 είναι η πρώτη έκδοση του πυρήνα του Linux
που θα περιλαμβάνει ένα πλήρη υποσύστημα resource
allocator management. Οι προηγούμενες εκδόσεις περιείχαν
μία κάποια υποστήριξη αλλά ήταν μάλλον αναξιόπιστη και
δεν παρείχε τη λειτουργικότητα που χρειάζεται στον κόσμο
"Plug and Play". Σε αντίθεση με τις περισσότερες
εσωτερικές αλλαγές, οι χρήστες θα νοιώσουν άμεσα αυτή την
αλλαγή μια που επηρεάζει τον τρόπο που τα resources
κατανέμονται και αναφέρονται στον πυρήνα. Σαν μέρος αυτής
της αλλαγής, η βάση δεδομένων PCI card που ήταν 'ριγμένη'
στο Linux 2.2 τώρα αναβαθμίζεται ούτως ώστε όλα τα
resources να έχουν ένα αντίστοιχο όνομα συσκευής παρά
απλά έναν αντίστοιχο οδηγό.
Η νέα έκδοση του πυρήνα του Linux επίσης διορθώνει κάποια
προβλήματα με τον τρόπο που γινόταν η διαχείριση του
layer του VFS (Virtual FileSystem) και των file
caches. Σε παλαιότερες εκδόσεις του Linux το caching
εξαρτάτο από ένα σύστημα dual-buffer το οποίο απλοποιούσε
κάποια πράγματα, αλλά προκαλούσε πονοκεφάλους στους
προγραμματιστές του πυρήνα που έπρεπε να διασφαλίσουν ότι
δεν ήταν δυνατό για αυτούς τους buffer να είναι
ασυγχρόνιστοι. Επιπροσθέτως, η παρουσία του buffer αύξανε
τη χρήση της μνήμης και καθυστερούσε το σύστημα καθώς ο
πυρήνας έπρεπε να κάνει επιπλέον δουλειά για να κρατάει
τα πράγματα συγχρονισμένα. Το Linux 2.4 λύνει αυτά τα
προβλήματα χρησιμοποιώντας ένα απλούστερο σύστημα με μονό
buffer.
Ένας αριθμος αλλαγών στο Linux 2.4 μπορεί να περιγραφεί
ώς "enterprise level". Αυτό σημαίνει πως δεν θα γίνουν
αντιληπτές και χρήσιμες στους χρήστες desktop άμεσα. Στο
μεγαλύτερο μέρος τους αυτά τα χαρακτηριστικά δεν
υποβιβάζουν το Linux σε πιο "νορμάλ" περιβάλλοντα. Πρώτα
απ' όλα, το Linux 2.4 μπορεί να χειρίζεται περισσότερες
ταυτόχρονες διεργασίες καθώς είναι πιο κλιμακούμενο σε
πολυεπεξεργαστικά μηχανήματα και επίσης προσφέροντας ένα
ρυθμιζόμενο όριο διεργασιών. Δεύτερον, ο scheduler έχει
ξαναφραφεί κάπως για να είναι πιο αποτελεσματικός σε
συστήματα με πολλές ταυτόχρονες διεργασίες. Τρίτον, ο
καινούργιος πυρήνας του Linux μπορεί πλέον να χειρίζεται
ένα απίθανο νούμερο χρηστών και groups -κάπου 4.2
εκατομμύρια (και αυτό είναι *πολλοί* χρήστες!).
Επιπροσθέτως, παρέχεται υποστήριξη για πιο ισχυρό υλικό
με υποστήριξη RAM 4GB σε Intel, μέχρι 16 Ethernet κάρτες,
10 ελεγκτές IDE, πολλαπλά IO-APICs και άλλες καταχρήσεις
καλού υλικού. Το όριο των 2GB για τα αρχεία έχει επίσης
αυξηθεί. Με αυτές και άλλες αλλαγές, οι προγραμματιστές
του πυρήνα του Linux αποδεικνύουν πως το Linux μπορεί να
είναι μία επιλογή σε πολλά νέα περιβάλλοντα.
Ο τρόπος που το Linux χειρίζεται την μοιραζόμενη (shared)
μνήμη έχει επίσης αλλάξει στο 2.4 για να συμμορφωθεί
περισσότερο με τα στανταρντ. Μία παρενέργεια αυτών των
αλλαγών είναι ότι το Linux 2.4 θα απαιτεί να γίνεται
mount ένα ειδικό σύστημα αρχείων μοιραζόμενης μνήμης για
να δουλεύουν τα τμήματά της. Αυτό θα γίνεται από τη
διανομή όταν γίνουν διαθέσιμες για το Linux 2.4.
Το Linux 2.4 επίσης περιέχει μία πολύ μεγαλύτερη συλλογή
οδηγών και υποστηριζόμενου υλικού από οποιαδήποτε άλλη
έκδοση και κάθε κομμάτι υλικού που μπορείτε να ονομάσετε
έχει μία καλή πιθανότητα να δουλεύει κάτω από Linux
(βεβαίως, θα πρέπει να συμβουλευτείτε τα κείμενα πριν να
αγοράσετε καινούργιο υλικό, για κάθε περίπτωση. Ειδικά
καινούργιο υλικό μπορεί να μη δουλεύει ακόμα.)
Μία συχνή ερώτηση για το Linux 2.4 είναι το πόση μνήμη θα
απαιτεί. Πολλά λειτουργικά συστήμτα απαιτούν ολοένα και
περισσότερη μνήμη και πόρους καθώς ωριμάζουν, αλλά το
Linux 2.4 δεν ακολουθεί αυτήν την τάση καθώς απαιτεί
λειγότερη μνήμη σε κάποιες περιπτώσεις. Βεβαίως, το Linux
2.4 περιέχει πολύ περισσότερη λειτουργικότητα από το 2.2
και πολλά από αυτά τα χαρακτηριστικά χρειάζονται χώρο,
οπότε η περίπτωσή σας μπορεί να διαφέρει (να θυμάστε ότι
τα περισσότερα στοιχεία του πυρήνα μπορούν να
απενεργοποιηθούν κατά το compling, σε αντίθεση με άλλα
λειτουργικά).
Πριν να μιλήσουμε για την υποστήριξη υλικού στο Linux
2.4, πρέπει να μιλήσουμε για ένα από τα πιο καιρνούρια
και αμφιλεγόμενα χαρακτηριστικά του: το DevFS (Device
FileSystem). Αυτό είναι ένα (προς το παρόν
προαιρετικό) χαρακτηριστικό το οποίο βασικά ξαναγράφει
τον τρόπο με τον οποίο το Linux χειρίζεται τις διάφορες
συσκευές. Αυτό θα πρωτοπαρουσιαστεί στο χρήστη με δυο
προφανείς τρόπους. Πρώτον, σχεδόν όλα τα ονόματα των
συσκευών έχουν αλλάξει. Για παράδειγμα, το "/dev/had"
μπορεί να ήταν ο σκληρός σας δίσκος, αλλά τώρα θα ήταν
τοποθετημένο στο "/dev/ide0/..." (η ονοματολογία δεν
είναι ακόμη βέβαιη). Αυτό το αλλαγμένο σχήμα αυξάνει τον
διαθέσιμο για ονόματα συσκευών χώρο κι επιτρέπει να
ενσωματωθούν πιο εύκολα συστήματα USB και άλλα "συγχρονα"
πράγματα. Δεύτερον, τα ονόματα των συσκευών τώρα θα
προστίθενται στο /dev/ ώς οδηγοί φορτωμένοι στον πυρήνα
παρά θα έχουμε όλα τα πιθανά ονόματα να προϋπάρχουν σε
αυτό το directory. Τα παλιά ονόματα θα είναι ακόμη
διαθέσιμα χάριν συμβατότητας χρησιμοποιώντας ένα
πρόγραμμα userspace, το "devfsd".
Αν και αυτό μπορεί να επηρεάσει τις εταιρίες διανομών που
θέλουν να εχουν σίγουρο πως όλες οι εφαρμογές θα έχουν
μεταβληθεί κατα τρόπο ώστε να χρησιμοποιούν τα νέα
ονόματα, οι χρήστες δεν θα πρέπει να επηρεασθούν
ιδιαίτερα. Αυτή η αλλαγή θα είναι μία έκπληξη, αν μή τι
άλλο, για πολλούς χρήστες. Αν και σε μερικούς μπορεί να
μην αρέσει η νέα μακριά ονοματολογία, είναι εύκολο να
δούμε πόσο περιοριστική ήταν η παλιά (τί θα γινόταν, για
παράδειγμα, αν είχατε περισσότερους από 26 δίσκους;)
Οι επεξεργαστές είναι μόνο ένα μικρό κομμάτι του κόσμου
του υπολογιστή. Εξίσου σημαντικά είναι η αρχιτεκτονική
του διαύλου, το στοιχείο του συστήματος που είναι συχνά
υπεύθυνο για τις εσωτερικές κι εξωτερικές συσκευές.
Κάποιες αρχιτεκτονικές, όπως η αρχική ISA, είναι
περισσότερο ανεύθυνες απέναντι στο υλικό απ' ότιδήποτε
άλλο -δεν παρέχουν καμμία διαχείριση πόρων, παρά μόνο ένα
μέρος για να βάλουμε κάρτες. Άλλες, όπως η PCI,
υποστηρίζουν πολύ περισσότερο προχωρμένα επίπεδα
παραμετροποίησης και επιτρέπουν την αλλαγή παραμέτρων
συσκευών και άλλα πράγματα. Καθώς όλοι οι αρχικοί
εσωτερικοί δίαυλοι Intel υποστηρίζονταν από το Linux 2.2
((Ε)ISA, VLB, PCI, MCA), δεν υπήρχαν εντυπωσιακές
ανακοινώσεις σε αυτόν τον τομέα. Το Linux 2.4, παρ' όλα
αυτά, βελτιώνει κάποιους από αυτούς τους διάυλους με το
να τους προσδένει στο νέο υποσύστημα πόρων του Linux
Υπάρχουν τώρα δύο μεγάλες βελτιώσεις σε αυτόν τον τομέα.
Το Linux 2.4 περιέχει, για πρώτη φορά στον πυρήνα,
υποστήριξη για ISA Plug 'n' Play συσκευές. Προγηγουμένως,
το Linux μπορούσε να υποστηρίξει τις συσκευές αυτές μόνο
μέσω ενός προγράμματος που έτρεχε ο χρήστης και με πολύ
ιδρώτα. Το Linux 2.4 θα επιτρέπει τη χρησιμοποίηση αυτών
των συσκευών κατά την εκκίνηση (π.χ., την εκκίνηση από
ένα ΙSAPnP IDE ελεγκτή) και την αυτόματη παραμετροποίηση
αυτών. Ακομα το Linux 2.4 θα παρέχει υποστήριξη για I2O
μέσα στον πυρήνα. Το Ι2Ο (Intelligent
Input/Output) είναι ένα υποσύνολο του PCI που
επιχειρεί να επιτρέψει να γραφούν οδηγοί ανεξαρτήτως
λειτουργικού για πολλές συσκευές. Μεταξύ αυτών των δύο
αλλαγών, πολλοί χρήστες θα βρουν ότι το Linux 2.4
υποστηρίζει πολύ περισσότερα κομμάτια υλικου PC.
Παρ' όλα αυτά, το Linux 2.4 δεν θα αυξήσει την υποστήριξη
για εξωτερικές συσκευές. Έχει προστεθεί υποστήριξη για
PCMCIA (ή PC Card). Αυτή η υποστήριξη ήταν διαθέσιμη σε
πολλές διανομές από μία εξωτερική πηγή και οι
περισσότερες διανομές την περιείχαν εξ' ορισμού. Το Linux
2.4 υποστηρίζει καλύτερη ολοκλήρωση με το σύνολο οδηγών
PCMCIA και θα κάνει ευκολότερη την εγκατάσταση και τη
ρύθμιση για τέτοιες συσκευές, για πολλούς χρήστες. Όπως
προηγούμενες εκδόσεις αυτού του οδηγού, πάντως, το Linux
2.4 θα απαιτεί ακόμα έναν εξωτερικό δαίμονα και στοιχεία
(components) για να χρησιμοποιήσει τις συσκευές στο
έπακρο. Ίσως τα πιο ενδιαφέροντα νέα σε αυτό το μέτωπο
έχουν να κάνουν με το Universal Serial Bus (USB), έναν
εξωτερικό δίαυλο που κυριαρχεί σιγά-σιγά σε συσκευές όπως
πληκτρολόγια, ποντίκια, συστήματα ήχου, σαρωτές και
εκτυπωτές. Το USB είναι μία δημοφιλής επιλογή για πολλές
καινούργιες συσκευές, ακόμη και για υλικό μή-Intel. Η
υποστήριξη του Linux γι αυτές τις συσκευές είναια κόμη σε
πρώιμα στάδια αλλά ένα μεγάλο ποσοστό κοινού υλικού USB
(πληκτρολόγια, ποντίκια, ηχεία κλπ) ήδη υποστηρίζεται από
τον πυρήνα.
Πιο πρόσφατα, προστέθηκε υποστήριξη Firewire στον
πυρήνα. Το Firewire είναι μία δημοφιλής επιλογή
για πολλές συσκευές μεγάλου εύρους διαύλου. Δεν υπάρχουν
πολλοί οδηγοί γι αυτήν την αρχιτεκτονική ακόμη, αλλά αυτή
η υποστήριξη σίγουρα θα βελτιωθεί με τον καιρό, καθώς
αυτή ωριμάζει.
Στην πιο απλή του μορφή, ένα block device είναι μία
συσκευή που μπορεί να εκφραστεί ώς μία σειρά bytes που τα
οποία μπορούν να προσπελασθούν σε οποιαδήποτε σειρά. Αυτό
περιλαμβάνει συσκευές όπως οι δίσκοι (μπορούμε να
διαβάσουμε όποιο τομέα θέλουμε) αλλά όχι σειριακές θύρες
(μπορούμε να διαβάσουμε μόνο ότι υπάρχει στην άκρη του
καλωδίου). Επεκτάσεις αυτής της ιδέας (όπως η έξοδος ενός
δίσκου κλπ) χειρίζονται από το Linux μέσω των ioctls (I/O
Controls). Η ιδέα των block devices δεν έχει αλλάξει εδώ
και καιρό και υποστήριξη για συσκευές όπως δίσκοι
IDE/SCSI υπάρχει από τις πρώτες εκδόσεις του
πυρήνα του Linux. Στο Linux 2.4 έχουν ξαναγραφεί κάπως
όλοι οι οδηγοί block devices καθώς το ΑΡΙ των block
devices έχει αλλάξει για να ξεφορτωθεί διάφορα σκουπίδια
και να διαχωρίσει το block ΑΡΙ από το ΑΡΙ αρχείων σε
επίπεδο πυρήνα. Οι αλλαγές που χρειάστηκαν γι αυτό το
ξαναγράψιμο του ΑΡΙ δεν ήταν μεγάλες. Όμως, οι
προγραμματιστές αρθρωμάτων που διατηρούν αρθρώματα έξω
από το main tree μπορεί να χρειαστεί να ανανεώσουν τον
κώδικά τους (δεν θα πρέπει ποτέ να υποθέτουμε πλήρη
συμβατότητα ΑΡΙ για αρθρώματα του πυρήνα μεταξύ μεγάλων
αλλαγών του πυρήνα)
Τουλάχιστον στην επιφάνεια εργασίας, οι συσκευές δίσκων
που χρησιμοποιούν το δίαυλο IDE είναι οι κυρίαρχες. Το
Linux υποστηρίζει το IDE από τους πρώτους πυρήνες αλλά το
Linux 2.4 βελτιώνει αυτή την υποστήριξη με διάφορους
τρόπους. Πρώτα απ' όλα, τα μηχανήματα υψηλής απόδοσης με
πολλαπλούς ελεγκτές IDE θα ωφεληθούν καθώς ο αριθμός των
υποστηριζόμενων ελεγκτών έχει ανέλθει στους 10, ενώ πριν
ήταν 4. Καθώς οι περισσότερες μητρικές έρχονται μόνο με
δύο, αυτό δεν θα επηρρεάσει τους περισσότερους χρήστες.
Δεύτερον, υπήρξαν αλλαγές που ια βελτιώσουν την
υποστήριξη για ελεγκτές PCI και PnP IDE, δισκέττες ΙDE
και tapes, DVDs και CDROM changers. Και τέλος, το Linux
2.4 περιέχει ανανεώσεις οδηγών που θα διορθώνουν λάθη
κάποιοων chipsets IDE και θα παρέχουν βελτιωμένη
υποστήριξη για κάποια χαρακτηριστικά άλλων, όπως το
ΑΤΑ66.
Αν και φαίνεται πως το υποσύστημα SCSI δεν έχει
αλλάξει τόσο όσο το ΙDE, έχει ξαναγραφεί σε μεγάλο βαθμό.
Επιπροσθέτως, υποστηρίζονται πολλοί νέοι ελεγκτές, ενώ
αναμένεται ακόμα ένα ξεκαθάρισμα στον κύκλο ανάπτυξης του
2.5.
Ένα ολοκαίνουργιο χαρακτηριστικό του 2.4 είναι η εφαρμογή
του "raw" Ι/Ο device. Μία συσκευή "raw" είναι
εκείνη η προσπέλαση της οποίας δεν χειρίζεται από το
caching layer, αντί να πηγαίνει κατευθείαν στη
low-level συσκευή καθεαυτή. Μία τέτοια συσκευή μπορεί να
χρησιμοποιηθεί σε περιπτώσεις που μία απαιτητική εφαρμογή
θέλει πλήρη έλεγχο πάνω στο πως αποθηκεύει δεδομένα και
τα μειονεκτήματα του συνηθισμένου caching δεν είναι
επιθυμητά. Εναλλακτικά, μία τέτοια συσκευή θα μπορούσε να
χρησιμοποιηθεί σε κρίσιμες περιπτώσεις όπου θέλουμε να
βεβαιωθούμε ότι τα δεδομένα θα γράφονται αμέσως στο δίσκο
ώστε να μη χαθούν σε καμμία περίπτωση. Η προηγούμενη
υποστήριξη δεν ήταν επαρκής και γι αυτό δεν
συμπεριλαμβανόταν, μια που έπρεπε να διπλασιαστεί ο
αριθμός των nodes ώστε κάθε block device να έχει ένα
raw device node (και αυτή είναι η υποστήριξη που
παρέχουν πολλά εμπορικά Unix). Η παρούσα υποστήριξη
χρησιμοποιεί μία δεξαμενή device nodes που μπορεί
να συσχετισθεί με οποιαδήποτε συσκευή.
Μία μεγάλη περιοχή αλλαγών στο Linux 2.4 υπήρξε η
εισαγωγή του υποσυστήματος LVM (Logical Volume
Manager) μέσα στον πυρήνα. Αυτό είναι ένα σύστημα
ανάλογο των Unix HP-UX και Tru64 UNIX που
επανακαθορίζει πλήρως τον τρόπο που διαχειρίζονται τα
συστήματα αρχείων και volumes. Το LVM επιτρέπει στα
συστήματα αρχείων να εκτείνονται σε πολλούς δίσκους, να
αλλάζουν μέγεθος και να διαχειρίζονται με ένα πιο
ευέλικτο τρόπο απ'ότι με τις παρούσες μεθόδους partition
table. Κάποια από τα νέα χαρακτηριστικά του LVM
αναπαράγονται με τον οδηγό md (multiple device) ή κάποια
εργαλεία userspace. Πάντως, το υποσύστημα LVM προσφέρει
αυτήν την υποστήριξη με ένα εκ των πραγμάτων συμβατό με
στάνταρντ τρόπο που θα είναι οικείος σε χρήστες εμπορικών
UNIX.
Επιπρόσθετα των αλλαγών στα άλλα block devices, το Linux
2.4 ακόμα υποστηρίζει ανανεωμένο loopback και οδηγούς
ramdisk που διορθώνουν ορισμένα λάθη.
Τα Block devices μπορούν να χρησιμοποιηθούν με διάφορους
τρόπους. Ο ποιος συνήθης είναι να ενεργοποιήσουμε (mount)
ένα σύστημα αρχείων πάνω τους (εσωτερικά, ο κώδικας των
συστημάτων αρχείων είναι σαν ένα 'επίστρωμα' του οδηγού
του block device). Άλλοι τρόποι περιλαμβάνουν τη
διαδικασία κατατμήσεων (partitioning) (το οποίο μοιάζει
πολύ με ένα σύστημα αρχείωμ, μόνο που διαχειρίζεται με
τε΄λείως διαφορετικό τρόπο), και η χρησιμοποίησή του ώς
έχει (raw).
To Linux 2.4 περιλαμβάνει όλα τα συστήματα αρχείων του
2.2. Αυτά συμπεριλαμβάνουν το FAT (για τα διάφορα
DOS), το ΝΤFS (Windows NT), VFAT και FAT32 (Windows 9x),
HFS (MacOS), HPFS (OS/2) και άλλα. Έχουν προστεθεί
καινούργια συστήματα αρχείων, κυρίως το σύστημα
UDF που χρησιμοποιείται στα DVD και το
XFS (ή EFS) που χρησιμοποιείται από το
ΙRIX. Όλα τα συστήματα έχουν ξαναγραφεί σε ένα
βαθμό προκειμένου να υποστηρίζουν το καινούργιο σύστημα
page caching και θα είναι πιο αποδοτικά εξαιτίτας αυτής
της αλλαγής. Η μόνη εξαίρεση είναι αυτή του ΝΤFS
που δεν συντηρείται ιδιαίτερα και δεν είναι σταθερό.
Υπάρχει ένας αριθμός αλλαγών που θα βελτιώσουν τη
συμβατότητα με άλλα συστήματα. Οι χρήστες OS/2 θα μπορούν
επιτέλους να γράψουν στα συστήματα αρχείων τους μέσα από
το Linux. Οι χρήστες ΝΤ δεν έχουν αυτήν την πολυτέλεια
ακόμη μια που ο οδηγός είναι ακόμα σε πειραματικό στάδιο.
Οι χρήστες NextStep θα μπορούν να ενεργοποιούν
(mount) τα CD-ROM τους κάτω από Linux, μια και αυτό
υποστηρίζει μία επέκταση του UFS που χρησιμοποιεί το
ΝextStep. Ας σημειωθεί ότι το HFS+, το νέο σύστημα
αρχείων του Macintosh δεν υποστηρίζεται ακόμη από το
Linux.
To Linux 2.4 δεν υποστηρίζει ακόμη ένα journaling
σύστημα αρχείων, αν και διάφορα σχέδια είναι κοντά στο να
παρέχουν αυτή τη λειτουργία με σταθερό τρόπο. Αν και
είναι σχεδόν σίγουρο ότι ένα τέτοιο σύστημα δεν θα
υποστηρίζεται από το Linux 2.4, αναμένεται ότι
τουλάχιστον ένα τέτοιο θα προστεθεί στον κύκλο 2.4.
Επιπροσθέτως, ο κώδικας διαχείρισης του πίνακα
κατατμήσεων έχει ξαναγραφεί και τώρα επιτρέπει να
χρησιμοποιηθεί μία πολύ μεγαλύτερη επιλογή ξένων τύπων
πινάκων. Αυτό θα ήταν χρήσιμο αν έχετε, για παράδειγμα,
ένα εξωτερικό οδηγό SCSI από ένα Macintosh και
θέλετε να τον χρησιμοποιήσετε στο PC σας. Έχει προστεθεί
ένας αριθμός νέων τύπων πινάκων κατατμήσεων,
συμπεριλαμβανομένου του format για μηχανήματα
ΙRIX.
Δεν ενεργοποιούνται όλα τα συστήματα αρχείων πάνω από
block devices. Μερικά, όπως το proc και το devfs
είναι τελείως εικονικά. Άλλα ενεργοποιούνται στο δίκτυο.
Υπάρχει ένας αριθμός τρόπων για να πραγματοποιηθεί αυτό
και πολλά λειτουργικά προσφέρουν τις δικές τους μεθόδους.
Ο κόσμος των Windows χρησιμοποιεί το Server Message
Block (SMB) για τα δικτυακά συστήματα αρχείων. Ο νέος
πυρήνας Linux αφαιρεί την επιλογή του εάν θα
ενεργοποιηθούν δίσκοι από Windows 9x ή NT κατά το
compile. Θα μπορεί να ανιχνεύει αυτόματα τον τύπο του
απομακρυσμένου συστήματος και να ενεργοποιεί διορθώσεις
όταν χρειάζεται. Αυτό θα βελτιώσει σημαντικά την
ικανότητα του Linux να λειτουργεί σε δίκτυα με διάφορες
εκδόσεις Windows.
Στον κόσμο του UNIX, το πρωτόκολλο NFS είναι το
προτιμητέο για διαμοίρασμα (share) αρχείων. Το Linux 2.4
περιλαμβάνει τη δυνατότητα πρόσβασης σε κοινά αρχεία με
την τελευταία έκδοση του ΝFS, NFSv3. Αυτή έχει πολλά
πλεονεκτήματα σε σχέση με προηγούμενες εκδόσεις και είναι
από τα πλέον σητημένα χαρακτηριστικά . Θα πρέπει να
σημειωθεί, πάντως, ότι ο δαίμονας του ΝFS θα εξάγει ακόμη
μόνο NFSv2 από Linux (έχει ανακοινωθεί εξέλιξη
υποστήριξης για NFSv4).
Οι συσκευές που μπορούν να προσπελασθούν σε σειρά είναι
οι συσκευές χαρακτήρων. Αυτές είναι συσκευές, όπως οι
σειριακές, που επιτρέπουν την ανάγνωσημίας αλληλουχίας
δεδομένων ή την εισαγωγή δεδομένων σε αυτή, αλλά όχι και
το 'τρέξιμο' μπροστά ή πίσω. Αυτές περιλαμβάνουν τις
σειριακές και παράλληλες θύρες, τα πληκτρολόγια, τα
ποντίκια και τις τερματικές συσκευές (terminal devices).
Υπάρχουν σημαντικές βελτιώσεις σε αυτόν τον τομέα στον
τελευταίο πυρήνα.
Μία από τις μεγαλύτερες βελτιώσεις είναι στην υποστήριξη
για πληκτρολόγια και ποντίκα. Προηγουμένως υπήρχε
υποστήριξη για σειριακά και PS/2 πληκτρολόγια και
ποντίκια (και ADB, για παράδειγμα, σε Macintosh). Το
Linux 2.4 υποστηρίζει ποντίκια και πληκτρολόγια USB.
Επιπροσθέτως, υποστηρίζει πληκτρολόγια σε συστήματα όπου
το πληκτρολόγιο δεν αρχικοποιείται από το BIOS και
συστήματα με προβλήματα στην ανίχνευση πληκτρολογίου. Και
τέλως, το Linux 2.4 περιλαμβάνει εκτενή υποστήριξη για
digitizer pads και υποστηρίζει προσωμοίωση για να
χρησιμοποιηθούν ώς κανονικά ποντίκια, ακόμη και αν αυτό
δεν υποστηρίζεται ευθέως από το υλικό.
Η υποστήριξη του Linux για σειριακές θύρες δεν έχει
αλλάξει ιδιαίτερα από τις ημέρες του 2.2. Το Linux 2.4
υποστηρίζει διαμοιρασμένα ΙRQ σε PCI. Προηγουμένως, αυτό
το χαρακτηριστικό περιοριζόταν σε ΙSA και on-board
σειριακές πλακέτες. Επιπροσθέτως, το Linux 2.4 προσθέτει
έναν αριθμό νέων οδηγών για σειριακές κάρτες πολλαπλών
θυρών. Ελπίζεται ότι αυτές οι αλλαγές και άλλες θα κάνουν
τη χρήση των σειριακών θυρών ευκολότερη από ποτέ.
Σε ένα ξεχωριστό τομέα, έχει γίνει δουλειά στην
υποστήριξη των αποκαλούμενων WinModems (ή Soft
Modems). Aυτά είναι modem που υλοποιούνται ευρέως
μέσω λογισμικού (συχνά το DSP και άλλα μέρη του υλικού
πρέπει να προσομοιωθούν από λογισμικό). Αν και δεν έχει
επιδοθεί κώδικας στον Linus για την υποστήριξη αυτή,
διάφορα σχέδια είναι στα σκαριά για την υποστήριξη των
modem αυτών και τα πρώτα δείγματα έχουν αρχίσει να
φαίνονται έξω από το main tree. Αν και θα πάρει αρκετό
καιρό πριν να υποστηριχθούν οι περισσότερες από αυτές τις
συσκευές, φαίνεται πως για πρώτη φορά η χιονόμπαλλα του
Οpen Source αρχίζει να κυλάει προς αυτή την κατεύθυνση.
Το Linux 2.4 ακόμη έχει ένα ευρέως ξαναγραμμένο
υποσύστημα παράλληλης θύρας. Μία από τις μεγαλύτερες
αλλαγές σε αυτόν τον τομέα είναι η υποστήριξη για
``generic'' παράλληλες συσκευές. Η λειτουργικότητα αυτή
μπορεί να χρησιμοποιηθεί από προγράμματα που έχουν
πρόσβαση στη θύρα με ασυνήθιστους τρόπους,
περιλαμβανομένης της χρήσης UDMA για γρηγορότερο Ι/Ο αν
αυτό υποστηρίζεται από το υλικό. Με τον νέο πηρήνα, είναι
επίσης δυνατό το να κατευθύνονται όλα τα μηνύματα της
κονσόλας σε μία παράλληλη συσκευή όπως ένας εκτυπωτής.
Αυτό επιτρέπει στο Linux να έχει τη λειτουργικότητα
πολλών εμπορικών UNIX βγάζοντας τα μηνύματα του πυρήνα
και του debugging σε εκτυπωτές.
Η υποστήριξη για υπέρυθρες έχει βελτιωθεί από το 2.2 και
έχουν γίνει πολλές αλλαγές, συμπεριλαμβανομένης καλύτερης
δικτυακής υποστήριξης.
Στην πλευρά των συσκευών χαρακτήρα έχουμε κάποιες από τις
λιγότερο αναγκαίες για υποστήριξη συσκευές. Το Linux, ως
αναδυόμενη λύση για πλατφόρμα desktop προσπαθεί πολύ
σκληρά να υποστηρίξει κάρτες ήχου, τηλεόρασης και
ραδιοφώνου και άλλες συσκευές εισόδου/εξόδου ήχου και
εικόνας. Για να είμαστε ειλικρινείς, το 2.4 δεν έχει
τραγικές αλλαγές από τον 2.2. Όμως περιλαμβάνει
ανανεώσεις και καινούργιους οδηγούς για διάφορες κάρτες
ήχου και εικόνας καθώς και υποστήριξη για full duplex. Το
2.4 ακόμη περιλαμβάνει κώδικα που επιτρέπει σε κάποιες
συσκευές ήχου να διαχειρίζονται ευκολότερα μνήμη στις
αναγκαίες περιοχές. Αυτό θα διευκολύνει πολύ τη ρύθμιση
και τη χρήση των καρτών
Ένα τελείως καινούργιο υποσύστημα ήχου είναι στα σκαριά
και θα χρησιμοποιεί πολλά από τα πιο προχωρημένα
χαρακτηριστικά των σημερινών καρτών ήχου. Αυτή η
υποστήριξη θα ενσωματωθεί στον 2.6.
Μία άλλη, πιο περίπλοκη ποικιλία συσκευών είναι οι
framebuffer. Μία τέτοια συσκευή είναι απλά μία περιοχή
της μνήμης που αντιπροσωπεύει (ή είναι) μνήμη video σε
τέτοιο βαθμό που η εγγραφή σε αυτή τη μνήμη επηρρεάζει τα
χρώματα και τα pixel σε μία ιθόνη. Αυτό είναι πιο
πολύπλοκο από άλλες συσκευές γιατή υποστηρίζει ioctls για
την αλλαγή παλέττας και άλλες λειτουργίες σχετιζόμενες με
το video. Το Linux 2.4 περιλαμβάνει νέους οδηγούς και
βελτιώσεις στους παλιούς. Ιδιαίτερα σημαντηκή είναι η
υποστήριξη για πολύ περισσότερες 'στάνταρντ' κάρτες και
διαρυθμίσεις VGA,τουλάχιστον σε ορισμένα modes (ακόμη και
αν αυτόε ίναι μόνο 16 χρωμάτων). Να θυμάστε ότι αυτό το
χαρακτηριστικό μπορεί να προσπερασθεί και (σε i386) είναι
χρήσιμό μόνο σε συστήματα που δεν μπορούν να
υποστηριχθούν κατ' άλλο τρόπο. Αυτή τη στιγμή, το Χfree
προσφέρει υποστήριξη για πολύ περισσότερες κάρτες απ'
ό,τι ο πυρήνας και έτσι δεν είναι αναγκαία η χρήση αυτής
της λειτουργίας για υποστήριξη για το σύστημα X Window (η
SVGALib και άλλες libraries επιτρέπουν την άμεση
διαχείριση εικόνας σε υποστηριζόμενο υλικό, αν και η
χρήση αυτών πρέπει να γίνεται μετα προσοχής για λόγους
ασφάλειας).
Μία από τις μεγαλύτερες αλλαγές εδώ είναι η προσθήκη του
Direct Rendering Manager στον πυρήνα. Ο DRM
ξεκαθαρίζει την πρόσβαση στο υλικό και δεν επιτρέπει
καταστάσεις όπου πολλές διεργασίες που γράφουν στην κάρτα
εικόνας προκαλλούν κρασάρισμα του συστήματος. Αυτό θα
βελτιώσει την σταθερότητα σε πολλές περιπτώσεις. Ο DRM
επίσης λειτουργεί σαν σημείο εισόδου για την πρόσβαση DMA
καρτών video. Συνολικά, αυτές οι αλλαγές μαζί με τα
Xfree4.x και άλλα συμβατά προγράμματα θα επιτρέψουν στο
Linux να είναι πιο σταθερό και ασφαλές όταν διενεργεί
δουλειά εντατικών γραφικών, όπως και την καλύτερη
υποστήριξη καρτών τηλεόρασης.
Όταν σκεφτόμαστε το Linux οι λέξεις "user friendly"
γενικά δεν έρχονται αμέσως στο μυαλό. Έτσι, κάποιος
μπορεί να εκπλαγεί μαθαίνοντας ότι το Linux 2.4
υποστηρίζει κάρτες σύνθεσης ομιλίας. Αυτός ο οδηγός και
το ανάλογο υλικό θα επιτρέψει σε χρήστες με μειωμένη
ικανότητα όρασης να ακούνε όλα τα μηνύματα του Linux ,
ακόμη και αυτά πολύ νωρίς στη διαδικασία εκκίνησης. Πολύ
λίγα συστήματα μπορούν να περηφανευθούν για τέτοια
υποστήριξη σε τόσο βσαικό επίπεδο (θα υπάρξουν και άλλα
προγράμματα και patches για τη πλήρη χρησιμοποίηση αυτών
των συσκευών, μια που ο οδηγός του πυρήνα είναι μόνο ένα
κομμάτι του συστήματος.)
Η δικτύωση και το υλικό δικτύου είναι ένας από τους
τομείς που το Linux πάντοτε τα πήγαινε περίφημα. Αυτές οι
συσκευές δεν είναι ούτε "character" ούτε "block" αλλά
καταλαμβάνουν έναν ειδικό χώρο που δεν χρειάζεται κόμβους
(nodes)συσκευών. Το Linux 2.4 θα περιλαμβάνει πολλές
βελτιώσεις σε αυτόν τον τομέα, όπως νέους οδηγούς,
διορθώσεις και νέα λειτουργικότητα στους υπάρχοντες
οδηγούς.
Το μοντέλο Linux για sockects δικτύου είναι ένα στανταρντ
στις περισσότερες παραλλαγές Unix. Δυστυχώς όμως, έχει
κάποια διορθώσιμα ελλατώματα. Στο Linux 2.2 και πριν, αν
έχετε έναν αριθμό διεργασιών που περιμένουν για ένα
γεγονός από το δίκτυο (web server, για παράδειγμα) θα
``ξυπνήσουν'' όλες όταν ανιχνευθεί δραστηριότητα. Έτσι,
για κάθε αίτηση για σελίδα web το Linux θα ``ξύπναγε''
έναν αριθμό διεργασιών για την ίδια αίτηση. Μια που δεν
έχει νόημα πολλαπλές διεργασίες να εξυπηρετούν την ίδια
αίτηση, μόνο μία θα φτάσει στα δεδομένα, ενώ οι υπόλοιπες
δεν θα βρουν τίποτα να επεξεργαστούν και θα
ξανακοιμηθούν. Το Linux είναι αρκετά αποτελεσματικό και
γρήγορο σε αυτό, αλλά θα μπορούσε να γίνει καλύτερο αν
δεν γινόντουσαν τα μή απαραίτητα ``ξυπνήματα''. Το Linux
2.4 περιλαμβάνει αλλαγές που επιτρέπουν ακριβώς αυτό,
δηλαδή μέσω του χαρακτηριστικού ``wake one'' να ξυπνάει
μόνο μία διεργασία στην περίπτωση δραστηριότητας. Αυτό θα
επιτρέψει σε εφαρμογές όπως ο Apache να είναι ακόμη πιο
αποδοτικές και να γίνει το Linux ακόμα καλύτερη επιλογή
ώς web server.
To Linux 2.4 ακόμη περιλαμβάνει ένα τελείως ξαναγραμμένο
layer δικτύωσης. Έχει γίνει όσο πιο μή-σειριακό γίνεται
για να προσαρμόζεται (scale) το δυνατόν καλύτερα από
οποιαδήποτε προηγούμενη έκδοση. Επιπροσθέτωςμ ολόκληρο το
υποσύστημα έχει ξανασχεδιασθεί για να είναι όσο πιο
σταθερό γίνεται σε συστήματα πολλαπλών επεξεργαστών.
Ακόμα, περιλαμβάνει πολλές βελτιώσεις που του επιτρέπουν
να λειτουργεί με δικτυακές ιδιομορφίες πολλών
λειτουργικών, όπως τα Windows. Θα πρέπει επίσης να
υπενθυμισθεί εδώ ότι το Linux είναι ακόμα το μόνο
λειτουργικό πλήρως συμβατό με το γράμμα των προδαγραφών
ΙPv4 και το Linux 2.4 έχει να επιδείξει μία εφαρμογή
αυτού πολύ πιο προσαρμόσιμή από αυτή του προκατόχου του.
Ώς μέρος αυτού του ξαναγραψίματος, η λειτουργικότητα του
πυρήνα σε ό,τι αφορά σε firewall και IP
masquerading έχει ξαναγραφτεί, όπως και στον 2.2. Το
νέο υποσύστημα έχει χωριστεί σε δύο μέρη: ένα στρώμα
φιλτραρίσματος πακέτων και ένα στρώμα μετάφρασης
δικτυακών διευθύνσεων (network address translation -
NAT). Αυτά τα νέα υποσυστήματα είναι σημαντικά πιο
γενικά από τους προκατόχους τους, και τώρα είναι δυνατό
να γίνεται και η πιο απαιτητική εργασία routing μέσω
Linux. Προηγουμένως, αυτή η λειτουργικότητα ήταν
διαθέσιμη με ειδικό υλικό. Δυστυχώς αυτό το ξαναγράψιμο
περιλαμβάνει ένα νέο εργαλείο userspace για τη διαχείριση
της υπάρχουσας λειτουργικότητας. Για συμβατότητα,
υπάρχουν αρθρώματα που επιτρέπουν τη χρήση των εργαλείων
είτε του Linux 2.0 (ipfwadm) είτε του Linux 2.2
(ipchains). Αυτό θα κάνει την αναβάθμιση πιο εύκολη.
Για τους χρήστες σε επιχειρήσεις, υπάρχει ένας αριθμός
χαρακτηριστικών που θα επιτρέψουν στο Linux την καλύτερη
ενσωμάτωση σε παλαιότερα και νεότερα στοιχεία υπαρχουσών
δομών δικτύων. Μία σημαντική πρόσθεση εδώ είναι η νέα
υποστήριξη για τα πρωτόκολλα και το υλικό DECnet
και ARCnet. Αυτό επθιτρέπει την καλύτερη
συνεργασίαμε εξειδικευμένα συστήματα, περιλαμβανομένων
παλαιότερων συστημάτων Digital/Compaq. Επίσης
ιδιαίτερα ενδιαφέρουσα θα είναι η υποστήριξη για ATM
network adapters για δικτύωση υψηλών ταχυτήτων.
Για το μέσο χρήστη, το ΡΡΡ είναι σημαντικό μέρος της
καθημερινής χρήσης. Το Linux 2.4 περιλαμβάνει μεγάλες
βελτιώσεις και αρθρωματοποίηση μεγάλου ποσοστού του
κώδικα, περιλαμβάνοντας ένα από καιρό αναμενόμενο
συνδιασμό των στρωμάτων ΡΡΡ από το στρώμα ISDN kai PPP,
όπως για τηλεφωνικές συνδέσεις με μόντεμ. Ακόμα, το ΙSDN
έχει ανανεωθεί για να υποστηρίξει πολλές νέες κάρτες. Το
PLIP (ΡΡΡ σε παράλληλες θύρες) έχει επίσης
βελτιωθεί και χρησιμοποιεί το νέο abstraction
layer της παράλληλης θύρας. Και τέλος, έχει προστεθεί
υποστήριξη για PPP μέσω Ethernet (PPPoE) που
χρησιμοποιείται από κάποιους παροχείς DSL.
Ενα συνήθως παραμελημένο μέρος του πυρήνα είναι ο loader
του προγράμματος: το κομμάτι που παίρνει τα προγράμματα,
τα φορτώνει σωστά και τα τρέχει. Πολλοί δεν γνωρίζουν ότι
στο Linux 2.2 προστέθηκε υποστήριξη για ένα δυαδικό
φορτωτή "διαφόρων", ένα εύκαμπτο άρθρωμα σχεδιασμένο να
επιτρέπει στο χρήστη να συσχετίζει τύπους δυαδικών
αρχείων (βασιζόμενο στην κατάληξη ή σε πληροφορίες του
header) με εφαρμογές "helper" περίπου όπως τα Windows.
Αυτό θα μπορούσε να συσχετίσει, για παράδειγμα, όλες τις
εφαρμογές Windows με τον WINE έτσι ώστε όταν γράψετε
"./notepad.exe" να συμβεί το σωστό πράγμα. Αυτό θεωρήθηκε
μεγάλη νίκη από πολλούς γιατί επιτρέπει σε πολλές ομάδες,
όπως την ομάδα του Wine (Windows non-Emulator) και
Dosemu να δημοσιεύσουν πληροφορίες για να τρέχουν
τα προγράμματά τους 'native' από τον πυρήνα.
Το Linux 2.2 και 2.0 περιλάμβαναν ενσωματωμένη υποστήριξη
για την εκκίνηση ενός Java interpreter όταν εκτελούταν
μία εφαρμογή Java (και ήταν από τα πρώτα λειτουργικά που
το έκαναν αυτό σε επίπεδο πυρήνα). Το Linux 2.4 ακόμα
περιλαμβάνει αυτή την υποστήριξη, αλλά ο ειδικός οδηγός
έχει αφαιρεθεί και οι χρήστες θα πρέπει να ανανεώσουν τα
συστήματά τους για να χρησιμοποιήσουν τον οδηγό "Misc.".
Ένα από τα πιο χτυπητά χαρακτηριστικά στον πυρήνα 2.4
είναι ο the kernel web daemon, ή khttpd. Είναι αλήθεια,
το Linux πραγματικά υποστηρίζει ένα άρθρωμα πυρήνα που
μπορεί να επεξεργαστεί αιτήσεις HTTP χωρίς να χρειαστεί
να επικοινωνήσει με κανέναν user space server (όπως ο
Αpache). Αυτό το χαακτηριστικό συχνά παρερμηνεύεται - δεν
έχει σχεδιαστεί για να αντικαταστήσει τον Apache ή
οποιονδήποτε άλλο εξυπηρέτη και μπορεί να χρησιμοποιηθεί
μόνο για raw αρχεία (όχι CGI). Αν λάβει μία αίτηση για
κάτι που δεν μπορεί να χειρισθεί, θα την περάσει στον
εξυπηρέτη χωρίς αυτός να καταλάβει τη διαφορά. Αυτό το
χαρακτηριστικό θα κάνει το Linux μία ακόμη καλύτερη
επιλογή για γρήγορη εξυπηρέτηση web στατικού περιεχομένου
όπως οι dedicated image servers.
Αν και οι νόμοι εξαγωγής στην Αμερική έχουν αλλάξει από
τον 2.2, το Linux 2.4 μάλλον δεν θα περιλαμβάνει
υποστήριξη για κρυπρογράφηση στην κύρια διανομή. Οι
περιορισμοί στην εισαγωγή/εξαγωγή κρυπρογραφίας είναι
διαφορετικοί σε όλο τον κόσμο. Ήδη όμως, είναι διαθέσιμα
patches για την κρυπτογράφηση σε πολλά υποσυστήματα του
πυρήνα. Μένει να ειδωθεί πόσο επίσημα θα είναι αυτά στο
μέλλον.
Περιεχόμενα