+++
title = 'O ΥΠΕΡΟΧΟΣ ΚΟΣΜΟΣ ΤΟΥ LINUX 2.4'
date = '0000-09-01T00:00:00Z'
description = ''
author = 'Θέμης Παπασσιλέκας(mailto:panzer@finecon.gr)'
issue = ['Magaz 26']
issue_weight = 4
+++

----------------------------------------------------------------------------------------------------------------------------------------------------------------

*Μια εισαγωγή στον μαγικό κόσμο του καινούριου μας πυρήνα*

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Εν αρχή ήταν ο Linus και ο 386 του. Για λόγους πολύ περίπλοκους για να αναλυθούν εδώ, αποφάσισε να μη χρησιμοποιήσει το κοινώς διαθέσιμο λειτουργικό σύστημα της
εποχής και αποφάσισε να γράψει το δικό του. Κάμποσα χρόνια και πολλές χιλιάδες γραμμές κώδικα αργότερα, κυκλοφόρησε το Linux 2.2 το οποίο ήταν ένα ορόσημο από
μόνο του. Ευτυχώς για τον κόσμο, ο Linus (και η παρέα του) συνέχισαν να πειράζουν το Linux και η έκδοση 2.4 του πυρήνα του είναι σχεδόν έτοιμη. Αυτό το κείμενο
περιγράφει κάποια από τα νέα χαρακτηριστικά στον 2.4, βασιζόμενο στον 2.3.99-pre3.

Αντίθετα με τις ανακοινώσεις προ της εκδόσεως καποιων άλλων λειτουργικών συστημάτων, τα χαρακτηριστικά που περιγράφονται εδώ υπάρχουν ήδη στον πυρήνα 2.3
(developers), αν και πιθανόν να μην είναι όλα τελείως σταθερά και κάποια μπορεί να χαρακτηρίζονται \"πειραματικά\" στην έκδοση 2.4. Καθώς το Linux είναι πιστό
στην φιλοσοφία του Open Source, τα χαρακτηριστικά προστίθενται από ανεξάρτητους προγραμματιστές καθώς ανακαλύπτουν μία συγκεκριμένη ανάγκη ή ένα λάθος στον
υπάρχοντα κώδικα. Αυτές οι αλλαγές ελέγχονται από τον Linux και τους βοηθούς του, και αυτή η διαδικασία φιλτραρίσματος είναι που κρατάει το Linux συνεκτικό
ακόμα και με αυτή την τεράστια βάση ανάπτυξής του.

Ακόμα, στο πνεύμα του κινήματος **Open Source**, τα προϊόντα εκδίδονται \"όταν είναι έτοιμα\" και γενικά δεν έχουν προανακοινωμένες ημερομηνίες διάθεσης. Προς
το παρόν το Linux 2.3 βρίσκεται στην τελικά φάση προ-έκδοσης και δεν θα αλλάξει πολύ εκτός από κάποιες διορθώσεις. Περιμένουμε το Linux 2.4 σε έναν-δύο μήνες
και σε μερικούς μήνες από τότε οι διανομές θα το ενσωματώσουν στα πακέτα τους. Μένει να ειδωθεί πόσα από τα νέα χαρακτηριστικά θα διαλέξουν να υποστηρίξουν
οιδιανομές εξ\' αρχής. Η υποστήριξη για DevFS και LVM, ειδικά, θα είναι ένα μείζον θέμα για τις μελλοντικές διανομές.

Σε αυτό το κείμενο γίνεται προσπάθεια επικέντρωσης στις περιοχές που το Linux 2.4 δεν είναι συμβατό με το Linux 2.2. Να θυμάστε ότι τα binary modules σίγουρα
δεν θα δουλεύουν, καθώς πολλές εσωτερικές δομές έχουν αλλάξει. Η μορφή κάποιων αρχείων στο /proc επίσης έχουν αλλάξει. Τα ονόματα σχεδόν όλων των αρχείων στο
/dev έχουν αλλαχθεί, αλλά παρέχονται συμβατά ονόματα. Οι περισσότερες εφαρμογές ούτε που θα καταλάβουν τις αλλαγές. (Οι low-level εφαρμογές , όπως ο δαίμονας
ppp, ή άλλα προγράμματα που βασίζονται σε στενή επαφή με τον πυρήνα πιθανότατα δεν θα είναι 100% συμβατά μεταξύ μεγάλων αλλαγών του πυρήνα). Αν σας αρέσει να
ενημερώνετε τη διανομή σας με το χέρι, να διαβάσετε οπωσδήποτε το αρχείο CHANGES και να ενημερώσετε όποια πακέτα χρειάζεται πριν να υποβάλετε αναφορά για λάθη.

**1. ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ LINUX 2.4**
--------------------------------------------------------------

-   [1.1 LINUX 2.4 KAI ia64](#ss1.1)
-   [1.2 LINUX 2.4 KAI CRUSOE](#ss1.2)
-   [1.3 LINUX 2.4 KAI ΠΡΟ-386](#ss1.3)
-   [1.4 TA ΕΣΩΤΕΡΑ ΤΟΥ LINUX](#ss1.4)
-   [1.5 ΥΠΟΣΤΗΡΙΞΗ ΥΛΙΚΟΥ - /dev/\*](#ss1.5)
-   [1.6 ΔΙΑΥΛΟΙ - ISA, PCI, USB, MCA κτλ](#ss1.6)
-   [1.7 Block Devices - LVM, Disk Drives, κλπ.](#ss1.7)
-   [1.8 Συστήματα αρχείων και πίνακες κατατμήσεων](#ss1.8)
-   [1.9 Συσκευές Χαρακτήρων - Πληκτρολόγια, Ποντίκια, Κονσόλες και Θύρες](#ss1.9)
-   [1.10 Πολυμέσα: Ήχος, Τηεόραση, Ραδιόφωνο κλπ](#ss1.10)
-   [1.11 Κάρτες Video και συσκευές Framebuffer](#ss1.11)
-   [1.12 Προσιτότητα - accessibility](#ss1.12)
-   [1.13 Δικτύωση και πρωτόκολλα](#ss1.13)
-   [1.14 Binary Types](#ss1.14)
-   [1.15 O Kernel Web Daemon](#ss1.15)
-   [1.16 Κρυπτογραφία στον Πυρήνα](#ss1.16)


### [1. ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ LINUX 2.4]{#s1}

Σε όρους γραμμών κώδικα, ο πυρήνας του 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) πολύ καλύτερα σε μηχανήματα υψηλών αποδόσεων απ΄ότι πριν.

### [1.1 LINUX 2.4 KAI ia64]{#ss1.1}

Αν και δεν έχει ακόμα παραδοθεί στις ανυπομονούσες μάζες, ο 64μπιτος αντικαταστάτης της Intel για τη σειρά των x86 έρχεται. Αν και δεν υπάρχει πραγματικό υλικό
ακόμα, στην έκδοση του πυρήνα έχει συμπεριληφθεί υποστήριξη (με patches) γι αυτό το chip και τους διαδόχους του. Η διαδικασία της μεταφοράς απλουστεύτηκε
σίγουρα με την υπάρχουσα υποστήριξη του Linux για 64μπιτους επεξεργαστές (συμπεριλαμβανομένων του **Alpha** της Compaq και του **Sparc64**).

### [1.2 LINUX 2.4 KAI CRUSOE]{#ss1.2}

Καθώς ο Linus δουλεύει στην **Transmetta**, ο Crusoe θα υποστηρίζει οπωσδήποτε το Linux όταν βγουν τα πρώτα προϊόντα Crusoe στην αγορά. Στην πραγματικότητα, το
Linux στον Crusoe έχει ήδη επιδειχθεί και μάλιστα πειστικά χρησιμοποιώντας το τεστ του Quake (πιθανώς το πιο σημαντικό τεστ για κάθε νέο επεξεργαστή). Καθώς ο
Crusoe προσομοιώνει τους i386 δεν θα υπάρξει ειδική μεταφορά γι αυτή την οικογένεια επεξεργαστών αλλά χαρακτηριστικά (ειδικά διαχείριση ενέργειας και πιθανώς
ένα νέο \"virtual keyboard layer\") τα οποία αναμένονται να υπάρχουν στην έκδοση 2.4 του πυρήνα.

### [1.3 LINUX 2.4 KAI ΠΡΟ-386]{#ss1.3}

Περιέργως, πολλοί ενδιαφέρονται ακόμα για το Linux για προ-386 επεξεργαστές. Η απάντηση, τουλάχιστον αυτή τη στιγμή, είναι πως δεν υπάρχει τέτοιο πράγμα Υπάρχει
ένα αδερφό πρόγραμμα, το **ΕLKS (Embedable Linux Kernel Subset)** το οποίο δουλεύει πάνω σε μία παραλλαγή του Linux για τέτοια μηχανήματα, με υποστήριξη για
protected mode για όσα την υποστηρίζουν. Το πρόγραμμα αυτό είναι ανεξάρτητο από το κυρίως Linux και δεν αφορά αυτό το κείμενο.

Υπάρχει επίσης μία διαφορετική μεταφορά του πυρήνα του Linux, το uLinux, που προσφέρει Linux σε ενσωματωμένους και παλιότερους επεξεργαστές, συμπεριλαμβανομένων
αυτών χωρίς MMUs. Αυτή η δουλειά προς το παρόν βασίζεται πάνω στον πυρήνα 2.0 και δεν έχει ενσωματωθεί στο master tree.

### [1.4 TA ΕΣΩΤΕΡΑ ΤΟΥ LINUX]{#ss1.4}

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, σε αντίθεση με άλλα λειτουργικά).

### [1.5 ΥΠΟΣΤΗΡΙΞΗ ΥΛΙΚΟΥ - /dev/\*]{#ss1.5}

Πριν να μιλήσουμε για την υποστήριξη υλικού στο Linux 2.4, πρέπει να μιλήσουμε για ένα από τα πιο καιρνούρια και αμφιλεγόμενα χαρακτηριστικά του: το **DevFS
(Device FileSystem)**. Αυτό είναι ένα (προς το παρόν προαιρετικό) χαρακτηριστικό το οποίο βασικά ξαναγράφει τον τρόπο με τον οποίο το Linux χειρίζεται τις
διάφορες συσκευές. Αυτό θα πρωτοπαρουσιαστεί στο χρήστη με δυο προφανείς τρόπους. Πρώτον, σχεδόν όλα τα ονόματα των συσκευών έχουν αλλάξει. Για παράδειγμα, το
\"/dev/had\" μπορεί να ήταν ο σκληρός σας δίσκος, αλλά τώρα θα ήταν τοποθετημένο στο \"/dev/ide0/\...\" (η ονοματολογία δεν είναι ακόμη βέβαιη). Αυτό το
αλλαγμένο σχήμα αυξάνει τον διαθέσιμο για ονόματα συσκευών χώρο κι επιτρέπει να ενσωματωθούν πιο εύκολα συστήματα USB και άλλα \"συγχρονα\" πράγματα. Δεύτερον,
τα ονόματα των συσκευών τώρα θα προστίθενται στο /dev/ ώς οδηγοί φορτωμένοι στον πυρήνα παρά θα έχουμε όλα τα πιθανά ονόματα να προϋπάρχουν σε αυτό το
directory. Τα παλιά ονόματα θα είναι ακόμη διαθέσιμα χάριν συμβατότητας χρησιμοποιώντας ένα πρόγραμμα userspace, το \"devfsd\".

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

### [1.6 ΔΙΑΥΛΟΙ - ISA, PCI, USB, MCA κτλ]{#ss1.6}

Οι επεξεργαστές είναι μόνο ένα μικρό κομμάτι του κόσμου του υπολογιστή. Εξίσου σημαντικά είναι η αρχιτεκτονική του διαύλου, το στοιχείο του συστήματος που είναι
συχνά υπεύθυνο για τις εσωτερικές κι εξωτερικές συσκευές. Κάποιες αρχιτεκτονικές, όπως η αρχική 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** είναι μία δημοφιλής επιλογή για πολλές συσκευές μεγάλου εύρους διαύλου. Δεν
υπάρχουν πολλοί οδηγοί γι αυτήν την αρχιτεκτονική ακόμη, αλλά αυτή η υποστήριξη σίγουρα θα βελτιωθεί με τον καιρό, καθώς αυτή ωριμάζει.

### [1.7 Block Devices - LVM, Disk Drives, κλπ.]{#ss1.7}

Στην πιο απλή του μορφή, ένα 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 που διορθώνουν ορισμένα λάθη.

### [1.8 Συστήματα αρχείων και πίνακες κατατμήσεων]{#ss1.8}

Τα 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).

### [1.9 Συσκευές Χαρακτήρων - Πληκτρολόγια, Ποντίκια, Κονσόλες και Θύρες]{#ss1.9}

Οι συσκευές που μπορούν να προσπελασθούν σε σειρά είναι οι συσκευές χαρακτήρων. Αυτές είναι συσκευές, όπως οι σειριακές, που επιτρέπουν την ανάγνωσημίας
αλληλουχίας δεδομένων ή την εισαγωγή δεδομένων σε αυτή, αλλά όχι και το \'τρέξιμο\' μπροστά ή πίσω. Αυτές περιλαμβάνουν τις σειριακές και παράλληλες θύρες, τα
πληκτρολόγια, τα ποντίκια και τις τερματικές συσκευές (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 και έχουν γίνει πολλές αλλαγές, συμπεριλαμβανομένης καλύτερης δικτυακής υποστήριξης.

### [1.10 Πολυμέσα: Ήχος, Τηεόραση, Ραδιόφωνο κλπ]{#ss1.10}

Στην πλευρά των συσκευών χαρακτήρα έχουμε κάποιες από τις λιγότερο αναγκαίες για υποστήριξη συσκευές. Το Linux, ως αναδυόμενη λύση για πλατφόρμα desktop
προσπαθεί πολύ σκληρά να υποστηρίξει κάρτες ήχου, τηλεόρασης και ραδιοφώνου και άλλες συσκευές εισόδου/εξόδου ήχου και εικόνας. Για να είμαστε ειλικρινείς, το
2.4 δεν έχει τραγικές αλλαγές από τον 2.2. Όμως περιλαμβάνει ανανεώσεις και καινούργιους οδηγούς για διάφορες κάρτες ήχου και εικόνας καθώς και υποστήριξη για
full duplex. Το 2.4 ακόμη περιλαμβάνει κώδικα που επιτρέπει σε κάποιες συσκευές ήχου να διαχειρίζονται ευκολότερα μνήμη στις αναγκαίες περιοχές. Αυτό θα
διευκολύνει πολύ τη ρύθμιση και τη χρήση των καρτών

Ένα τελείως καινούργιο υποσύστημα ήχου είναι στα σκαριά και θα χρησιμοποιεί πολλά από τα πιο προχωρημένα χαρακτηριστικά των σημερινών καρτών ήχου. Αυτή η
υποστήριξη θα ενσωματωθεί στον 2.6.

### [1.11 Κάρτες Video και συσκευές Framebuffer]{#ss1.11}

Μία άλλη, πιο περίπλοκη ποικιλία συσκευών είναι οι 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 να είναι πιο σταθερό και ασφαλές όταν διενεργεί δουλειά εντατικών γραφικών, όπως και την καλύτερη υποστήριξη καρτών
τηλεόρασης.

### [1.12 Προσιτότητα - accessibility]{#ss1.12}

Όταν σκεφτόμαστε το Linux οι λέξεις \"user friendly\" γενικά δεν έρχονται αμέσως στο μυαλό. Έτσι, κάποιος μπορεί να εκπλαγεί μαθαίνοντας ότι το Linux 2.4
υποστηρίζει κάρτες σύνθεσης ομιλίας. Αυτός ο οδηγός και το ανάλογο υλικό θα επιτρέψει σε χρήστες με μειωμένη ικανότητα όρασης να ακούνε όλα τα μηνύματα του
Linux , ακόμη και αυτά πολύ νωρίς στη διαδικασία εκκίνησης. Πολύ λίγα συστήματα μπορούν να περηφανευθούν για τέτοια υποστήριξη σε τόσο βσαικό επίπεδο (θα
υπάρξουν και άλλα προγράμματα και patches για τη πλήρη χρησιμοποίηση αυτών των συσκευών, μια που ο οδηγός του πυρήνα είναι μόνο ένα κομμάτι του συστήματος.)

### [1.13 Δικτύωση και πρωτόκολλα]{#ss1.13}

Η δικτύωση και το υλικό δικτύου είναι ένας από τους τομείς που το 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.

### [1.14 Binary Types]{#ss1.14}

Ενα συνήθως παραμελημένο μέρος του πυρήνα είναι ο 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.\".

### [1.15 O Kernel Web Daemon]{#ss1.15}

Ένα από τα πιο χτυπητά χαρακτηριστικά στον πυρήνα 2.4 είναι ο the kernel web daemon, ή khttpd. Είναι αλήθεια, το Linux πραγματικά υποστηρίζει ένα άρθρωμα πυρήνα
που μπορεί να επεξεργαστεί αιτήσεις HTTP χωρίς να χρειαστεί να επικοινωνήσει με κανέναν user space server (όπως ο Αpache). Αυτό το χαακτηριστικό συχνά
παρερμηνεύεται - δεν έχει σχεδιαστεί για να αντικαταστήσει τον Apache ή οποιονδήποτε άλλο εξυπηρέτη και μπορεί να χρησιμοποιηθεί μόνο για raw αρχεία (όχι CGI).
Αν λάβει μία αίτηση για κάτι που δεν μπορεί να χειρισθεί, θα την περάσει στον εξυπηρέτη χωρίς αυτός να καταλάβει τη διαφορά. Αυτό το χαρακτηριστικό θα κάνει το
Linux μία ακόμη καλύτερη επιλογή για γρήγορη εξυπηρέτηση web στατικού περιεχομένου όπως οι **dedicated image servers**.

### [1.16 Κρυπτογραφία στον Πυρήνα]{#ss1.16}

Αν και οι νόμοι εξαγωγής στην Αμερική έχουν αλλάξει από τον 2.2, το Linux 2.4 μάλλον δεν θα περιλαμβάνει υποστήριξη για κρυπρογράφηση στην κύρια διανομή. Οι
περιορισμοί στην εισαγωγή/εξαγωγή κρυπρογραφίας είναι διαφορετικοί σε όλο τον κόσμο. Ήδη όμως, είναι διαθέσιμα patches για την κρυπτογράφηση σε πολλά
υποσυστήματα του πυρήνα. Μένει να ειδωθεί πόσο επίσημα θα είναι αυτά στο μέλλον.

