diff --git a/el_GR.ISO8859-7/articles/compiz-fusion/article.sgml b/el_GR.ISO8859-7/articles/compiz-fusion/article.sgml index 5893ddedf3..d6b1756911 100644 --- a/el_GR.ISO8859-7/articles/compiz-fusion/article.sgml +++ b/el_GR.ISO8859-7/articles/compiz-fusion/article.sgml @@ -1,439 +1,440 @@ %articles.ent; ]>
Εγκατάσταση και χρήση του Compiz Fusion Μανώλης Κιαγιάς
manolis@FreeBSD.org
2008 Μανώλης Κιαγιάς $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; Η πιο πρόσφατη μόδα στον κόσμο του &linux; είναι αναμφίβολα τα τρισδιάστατα εφέ στο desktop. Αν και η χρησιμότητα τους έχει αμφισβητηθεί, δεν παύουν να εντυπωσιάζουν και να παραμένουν συνέχεια στη δημοσιότητα. Τα εφέ αυτά υλοποιούνται με τη βοήθεια διάφορων προγραμμάτων όπως τα Compiz, Beryl, και το πιο πρόσφατο Compiz Fusion. Δεν χρειάζεται να στερείστε αυτά τα εφέ όταν χρησιμοποιείτε το &os;. Οι οδηγίες που ακολουθούν θα σας βοηθήσουν να εγκαταστήσετε και να ρυθμίσετε στο σύστημα σας τα προγράμματα που απαιτούνται για να έχετε τα πλέον πρόσφατα τρισδιάστατα εφέ που προσφέρει το Compiz Fusion χρησιμοποιώντας (αν χρειάζεται) και την κατάλληλη έκδοση των προγραμμάτων οδήγησης γραφικών της nVidia.
Εισαγωγή H εγκατάσταση του Compiz Fusion από την συλλογή των Ports, είναι μια σχετικά απλή διαδικασία. Χρειάζονται, όμως, και κάποιες επιπλέον ρυθμίσεις, οι οποίες δεν περιγράφονται στην τεκμηρίωση του port. Το άρθρο αυτό θα σας βοηθήσει να ρυθμίσετε τον &xorg; server για τρισδιάστατη λειτουργία, να ρυθμίσετε την nVidia κάρτα γραφικών σας, και τελικά να εγκαταστήσετε και να εκτελέσετε την εφαρμογή compiz. Αφού διαβάσετε αυτό το άρθρο, θα ξέρετε: Πως να ρυθμίσετε το πιο πρόσφατο πρόγραμμα οδήγησης της nVidia (αν απαιτείται) για το σύστημα σας. Πως να ρυθμίσετε το αρχείο xorg.conf για να μπορέσετε να ενεργοποιήσετε τα τρισδιάστατα εφέ. Πως να εγκαταστήσετε και να ρυθμίσετε το Compiz Fusion χρησιμοποιώντας την συλλογή των Ports. Πως να αντιμετωπίσετε συνηθισμένα προβλήματα που αφορούν τα τρισδιάστατα εφέ. Ρύθμιση των προγραμμάτων οδήγησης της nVidia για το &os; Τα τρισδιάστατα εφέ απαιτούν αρκετή ισχύ επεξεργασίας από την κάρτα γραφικών σας. Αν χρησιμοποιείτε κάποια κάρτα γραφικών που βασίζεται σε κυκλώματα της nVidia, θα πρέπει να εγκαταστήσετε και να ρυθμίσετε το πρόγραμμα οδήγησης που παρέχεται από την εταιρία για το &os;, χρησιμοποιώντας την έκδοση που είναι κατάλληλη για το σύστημα σας. Αν χρησιμοποιείτε κάποια άλλη κάρτα, που όμως γνωρίζετε ότι μπορεί να ανταποκριθεί στις απαιτήσεις των εφέ, μπορείτε να παραλείψετε αυτή την ενότητα και να συνεχίσετε με την ρύθμιση του xorg.conf. Προσδιορίστε το σωστό πρόγραμμα οδήγησης Υπάρχουν διάφορες εκδόσεις των προγραμμάτων οδήγησης της nVidia στη συλλογή των ports. Η επιλογή του σωστού προγράμματος για το σύστημα σας, εξαρτάται από το μοντέλο (και την παλαιότητα) της κάρτας γραφικών σας: Οι τελευταίες εκδόσεις των καρτών nVidia, υποστηρίζονται από το port x11/nvidia-driver. Κάρτες της nVidia που ανήκουν στις σειρές GeForce 2MX/3/4 υποστηρίζονται από τα προγράμματα οδήγησης της σειράς 96 τα οποία διατίθενται μέσω του port x11/nvidia-driver-96xx. Ακόμα πιο παλιές κάρτες, όπως οι GeForce και RIVA TNT υποστηρίζονται από τη σειρά 71 των προγραμμάτων οδήγησης, τα οποία διατίθενται μέσω του port x11/nvidia-driver-71xx. Στην πραγματικότητα, η nVidia παρέχει λεπτομερείς πληροφορίες σχετικά με το ποια κάρτα υποστηρίζεται από ποιο πρόγραμμα οδήγησης. Οι πληροφορίες αυτές διατίθενται απευθείας από το δικτυακό τους τόπο: . Εγκατάσταση του προγράμματος οδήγησης της nVidia Αφού καθορίσετε το σωστό πρόγραμμα οδήγησης για την κάρτα σας, η εγκατάσταση είναι το ίδιο απλή με οποιοδήποτε άλλη εφαρμογή της συλλογής των ports. Βεβαιωθείτε ότι έχετε ανανεώσει τη συλλογή των ports, χρησιμοποιώντας τη μέθοδο που προτιμάτε (π.χ. csup, CVSup ή portsnap) πριν εγκαταστήσετε οποιαδήποτε εφαρμογή από τα ports. Τα προγράμματα οδήγησης των καρτών γραφικών, καθώς και τα προγράμματα τρισδιάστατων εφέ, είναι υπό συνεχή εξέλιξη και εμφανίζονται τακτικά νέες εκδόσεις. Για παράδειγμα, για να εγκαταστήσετε το τελευταίο πρόγραμμα οδήγησης: &prompt.root; cd /usr/ports/x11/nvidia-driver &prompt.root; make install clean Το πρόγραμμα οδήγησης θα δημιουργήσει ένα άρθρωμα (module) για τον πυρήνα, το οποίο θα πρέπει να φορτωθεί στην εκκίνηση του συστήματος. Θα χρειαστεί να προσθέσετε την ακόλουθη γραμμή στο αρχείο /boot/loader.conf: nvidia_load="YES" Μπορείτε να φορτώσετε το άρθρωμα απευθείας στον πυρήνα που εκτελείται τη δεδομένη χρονική στιγμή χρησιμοποιώντας την εντολή kldload nvidia, αλλά έχει παρατηρηθεί ότι οι τελευταίες εκδόσεις του &xorg; δεν λειτουργούν σωστά αν το πρόγραμμα οδήγησης δεν φορτωθεί κατά την εκκίνηση του συστήματος. Για το λόγο αυτό, σας συνιστούμε να επανεκκινήσετε το σύστημα σας μετά την προσθήκη της καταχώρησης στο αρχείο /boot/loader.conf. Έχοντας φορτώσει το άρθρωμα στον πυρήνα, χρειάζεται μόνο μια μικρή αλλαγή σε μια γραμμή του αρχείου xorg.conf για να ενεργοποιήσετε το πρόγραμμα οδήγησης. Βρείτε την ακόλουθη γραμμή στο /etc/X11/xorg.conf: Driver "nv" και αλλάξτε την σε: Driver "nvidia" Όταν ξεκινήσετε το γραφικό περιβάλλον με το συνήθη τρόπο, θα δείτε την οθόνη χαιρετισμού της nVidia. Όλα θα πρέπει να λειτουργούν κανονικά. Σημειώστε ωστόσο, ότι στο σημείο αυτό δεν έχει ακόμα ρυθμιστεί το &xorg; για τρισδιάστατα εφέ. Η ρύθμιση αυτή περιγράφεται παρακάτω. Αν και δεν είναι οπωσδήποτε απαραίτητο, μπορείτε επίσης να εγκαταστήσετε τα ports x11/nvidia-xconfig και x11/nvidia-settings. Το πρώτο μπορεί να σας βοηθήσει να ρυθμίσετε το /etc/X11/xorg.conf μέσω της γραμμής εντολών, ενώ το δεύτερο θα σας επιτρέψει να αλλάζετε ρυθμίσεις στην οθόνη μέσα από γραφικό περιβάλλον και ενώ εκτελείται το &xorg;. Ρύθμιση του xorg.conf για τρισδιάστατα εφέ Πριν εγκαταστήσετε και εκτελέσετε το Compiz Fusion, θα πρέπει να προσθέσετε μερικές ρυθμίσεις στο /etc/X11/xorg.conf: Προσθέστε τις ακόλουθες γραμμές για να ενεργοποιηθούν τα εφέ τύπου composite: Section "Extensions" Option "Composite" "Enable" EndSection Εντοπίστε το τμήμα Screen το οποίο θα μοιάζει με το παρακάτω: Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" ... και προσθέστε τις δύο γραμμές που ακολουθούν (μπορείτε να τις βάλετε μετά την καταχώρηση Monitor): DefaultDepth 24 Option "AddARGBGLXVisuals" "True" Εντοπίστε το Subsection το οποίο αναφέρεται στην επιθυμητή ανάλυση οθόνης. Για παράδειγμα, αν θέλετε να χρησιμοποιήσετε ανάλυση 1280x1024, βρείτε την ενότητα που φαίνεται στο παράδειγμα. Αν δεν υπάρχει ενότητα που να αναφέρεται στην επιθυμητή ανάλυση, μπορείτε να την προσθέσετε χειροκίνητα: SubSection "Display" Viewport 0 0 Modes "1280x1024" EndSubSection Για τη λειτουργία των εφέ, απαιτείται βάθος χρώματος 24bits. Αλλάξτε το παραπάνω ώστε να δείχνει: SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024" EndSubSection Τέλος, επιβεβαιώστε ότι φορτώνονται τα αρθρώματα glx και extmod μέσα από το τμήμα Module: Section "Module" Load "extmod" Load "glx" ... Αν έχετε εγκαταστήσει το port x11/nvidia-xconfig, μπορείτε να κάνετε τις περισσότερες από τις παραπάνω ρυθμίσεις δίνοντας τις ακόλουθες εντολές (ως root): &prompt.root; nvidia-xconfig --add-argb-glx-visuals &prompt.root; nvidia-xconfig --composite &prompt.root; nvidia-xconfig --depth=24 Αν θέλετε να δείτε όλες τις δυνατότητες του παραπάνω προγράμματος, δώστε την εντολή nvidia-xconfig -A | more. Εγκατάσταση και ρύθμιση Compiz Fusion Η εγκατάσταση του Compiz Fusion είναι το ίδιο απλή με οποιοδήποτε άλλο πρόγραμμα: &prompt.root; cd /usr/ports/x11-wm/compiz-fusion &prompt.root; make install clean Βεβαιωθείτε ότι επιλέξατε τα EXTRA plugins και το EMERALD window decorator από τη λίστα επιλογών που θα εμφανιστεί. Αν χρησιμοποιείτε GNOME, ή έχετε εγκαταστήσει στο σύστημα σας υποστήριξη gconf, μπορείτε επίσης να επιλέξετε gconf support. Με τον τρόπο αυτό, οι ρυθμίσεις των εφέ θα ενσωματωθούν με τις άλλες ρυθμίσεις που έχετε κάνει στο γραφικό περιβάλλον σας, και θα μπορείτε να τις δείτε χρησιμοποιώντας το gconf-editor. Ωστόσο, το Compiz Fusion μπορεί να αποθηκεύσει τις ρυθμίσεις του και σε απλά αρχεία κειμένου, αν δεν επιθυμείτε τέτοιου είδους ολοκλήρωση. Στην περίπτωση αυτή, θα δημιουργηθεί ο κατάλογος .compizconfig μέσα στον προσωπικό σας κατάλογο. Μετά το τέλος της εγκατάστασης, ξεκινήστε το γραφικό περιβάλλον και σε ένα τερματικό, δώστε (ως απλός χρήστης) τις ακόλουθες εντολές: &prompt.user; compiz --replace --sm-disable --ignore-desktop-hints ccp & &prompt.user; emerald --replace & Η οθόνη σας θα τρεμοπαίξει για λίγα δευτερόλεπτα, καθώς θα γίνεται αντικατάσταση του τρέχοντος διαχειριστή παραθύρων σας (π.χ. Metacity αν χρησιμοποιείτε περιβάλλον GNOME) από το Compiz Fusion. Η εφαρμογή Emerald αναλαμβάνει τις διακοσμήσεις των παραθύρων (π.χ. τα πλήκτρα για κλείσιμο, μεγιστοποίηση, ελαχιστοποίηση, τις μπάρες τίτλων κ.ο.κ.). Μπορείτε να μετατρέψετε το παραπάνω σε ένα απλοϊκό script το οποίο να εκτελείται αυτόματα κατά την εκκίνηση του περιβάλλοντος (π.χ. προσθέτοντας το στο Sessions στο γραφικό περιβάλλον GNOME): #! /bin/sh compiz --replace --sm-disable --ignore-desktop-hints ccp & emerald --replace & Αποθηκεύστε το στον κατάλογο σας, για παράδειγμα με το όνομα start-compiz και δώστε του δικαιώματα εκτέλεσης: &prompt.user; chmod +x ~/start-compiz Χρησιμοποιήστε έπειτα τα γραφικά εργαλεία για να το προσθέσετε στα προγράμματα εκκίνησης, Startup Programs (βρίσκεται στο System, Preferences, Sessions στο περιβάλλον εργασίας GNOME). Για να ρυθμίσετε όπως θέλετε τα εφέ, εκτελέστε (πάλι ως κανονικός χρήστης) την εφαρμογή Compiz Config Settings Manager: &prompt.user; ccsm Στο GNOME, μπορείτε να βρείτε την εφαρμογή αυτή στο μενού System, Preferences. Αν επιλέξατε gconf support κατά τη μεταγλώττιση, θα μπορείτε επίσης να δείτε τις ρυθμίσεις σας μέσω του gconf-editor, στην ενότητα apps/compiz. Αντιμετώπιση προβλημάτων του Compiz Fusion Η ακόλουθη ενότητα καλύπτει συχνές ερωτήσεις που αφορούν προβλήματα κατά την εκτέλεση του Compiz Fusion. Έχω εγκαταστήσει το Compiz Fusion, και μετά την εκτέλεση των εντολών που περιγράφετε, τα παράθυρα μου δεν έχουν πλέον μπάρες τίτλων και πλήκτρα ελέγχου. Που είναι το λάθος; Το πιθανότερο είναι ότι σας λείπει κάποια ρύθμιση στο /etc/X11/xorg.conf. Ελέγξτε προσεκτικά το αρχείο, και ειδικά τις καταχωρήσεις DefaultDepth και AddARGBGLXVisuals. Όταν εκτελώ την εντολή για να ξεκινήσει το Compiz Fusion, ο X server τερματίζεται απότομα και επιστρέφω στην κονσόλα. Που είναι το λάθος; Αν ελέγξετε το αρχείο /var/log/Xorg.0.log, θα δείτε πιθανόν κάποια σφάλματα κατά την εκκίνηση του Χ. Το πιο κοινό σφάλμα είναι: (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X (EE) NVIDIA(0): log file that the GLX module has been loaded in your X (EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If (EE) NVIDIA(0): you continue to encounter problems, Please try (EE) NVIDIA(0): reinstalling the NVIDIA driver. Αυτό συνήθως συμβαίνει μετά από κάποια αναβάθμιση της εφαρμογής &xorg;. Θα πρέπει να επανεγκαταστήσετε το port x11/nvidia-driver ώστε να μεταγλωττιστεί από την αρχή και το άρθρωμα glx.
diff --git a/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml b/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml index af852ea696..e71aec245e 100644 --- a/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml +++ b/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml @@ -1,814 +1,815 @@ %articles.ent; ]>
Εγκατάσταση ενός CVS Repository — ο τρόπος του &os; Stijn Hoop
stijn@win.tue.nl
2001 2002 2003 Stijn Hoop $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; Το άρθρο αυτό περιγράφει τα βήματα που έκανα για να εγκαταστήσω ένα CVS repository που χρησιμοποιεί τα ίδια αρχεία δέσμης εντολών (scripts) με αυτά που χρησιμοποιεί και το &os; project στη δική του εγκατάσταση. Η συγκεκριμένη προσέγγιση έχει αρκετά πλεονεκτήματα έναντι μιας τυποποιημένης CVS εγκατάστασης, όπως πιο λεπτομερή έλεγχο πρόσβασης στο δέντρο του κώδικα καθώς και αυτόματη παραγωγή ευανάγνωστων email με λεπτομέρειες για κάθε αλλαγή στον πηγαίο κώδικα (commit).
Εισαγωγή Τα περισσότερα projects ελεύθερου λογισμικού (free software) και ανοιχτού κώδικα (open source) χρησιμοποιούν το CVS σαν σύστημα ελέγχου του κώδικά τους. Παρόλο που το CVS είναι πολύ καλό σε αυτόν τον τομέα έχει κι αυτό το μερίδιό του σε ελαττώματα και αδυναμίες. Μια από αυτές τις αδυναμίες είναι το ότι η κοινή χρήση κώδικα μπορεί γρήγορα να οδηγήσει σε έναν διαχειριστικό εφιάλτη, ειδικά αν υπάρχει η επιθυμία να προστατευτούν ορισμένα κομμάτια του δέντρου του κώδικα από κοινή πρόσβαση. Η ομάδα ανάπτυξης του &os; χρησιμοποιεί εκτενώς το CVS. Διαθέτει επίσης μια μεγάλη βάση από προγραμματιστές από πολλές διαφορετικές χώρες. Αναπτύχθηκαν λοιπόν μερικά αρχεία δέσμης εντολών για να κάνουν την διαχείριση του repository πιο εύκολη. Πρόσφατα τα αρχεία αυτά αναθεωρήθηκαν και κανονικοποιήθηκαν από τον &a.joe; για να είναι πιο εύκολο να χρησιμοποιηθούν και σε άλλα έργα. Το άρθρο αυτό περιγράφει μια μέθοδο χρήσης αυτών των νέων αρχείων δέσμης εντολών. Για να μπορέσετε να χρησιμοποιήσετε με τον καλύτερο τρόπο τις πληροφορίες αυτού του άρθρου θα πρέπει να γνωρίζετε τις βασικές μεθόδους λειτουργίας του CVS. Πρώτη Εγκατάσταση Είναι καλή ιδέα να εκτελέσετε για πρώτη φορά αυτή τη διαδικασία χρησιμοποιώντας ένα κενό δοκιμαστικό repository, για να είναι βέβαιο ότι θα κατανοήσετε όλες τις συνέπειες. Πριν ξεκινήσετε σιγουρευτείτε ότι έχετε πρόσφατα backups, τα οποία εγγυημένα δουλεύουν! Αρχικοποίηση του repository Το πρώτο πράγμα που θα πρέπει να κάνετε όταν στήνετε ένα νέο repository είναι να πείτε στο CVS να το αρχικοποιήσει: &prompt.user; cvs -d path-to-repository init Αυτό λέει στο CVS να δημιουργήσει τον φάκελο διαχείρισης CVSROOT, όπου συμβαίνουν όλες οι παραμετροποιήσεις. Η ομάδα του repository Τώρα θα δημιουργήσουμε την ομάδα στην οποία θα ανήκει το repository. Όλοι οι committers θα πρέπει να ανήκουν σε αυτή την ομάδα, ώστε να μπορούν να γράφουν στο repository. Για το σκοπό αυτό θα χρησιμοποιήσουμε την ίδια ομάδα που χρησιμοποιεί γι' αυτό το σκοπό και το &os;, την ομάδα ncvs. &prompt.root; pw groupadd ncvs Μετά, θα πρέπει να εκτελέσετε την εντολή &man.chown.8; στον φάκελο με παράμετρο την ομάδα που μόλις προσθέσατε, θέτοντας έτσι την ομάδα στην οποία ανήκει ο κατάλογος: &prompt.root; chown -R :ncvs path-to-your-repository Αυτό εξασφαλίζει ότι κανείς δεν θα μπορεί να γράψει στο repository αν δεν ανήκει στην σωστή ομάδα. Παίρνοντας τον πηγαίο κώδικα Τώρα θα πρέπει να αποκτήσετε τον κατάλογο CVSROOT από το repository του &os;. Αυτό γίνεται εύκολα, κάνοντας check out από ένα ανοιχτής πρόσβασης &os; CVS mirror. Δείτε το σχετικό κεφάλαιο στο εγχειρίδιο για περισσότερες πληροφορίες. Ας υποθέσουμε ότι ο πηγαίος κώδικας θα αποθηκευτεί στον κατάλογο CVSROOT-freebsd που βρίσκεται μέσα στον τρέχοντα κατάλογο. Αντιγράφοντας τα scripts του &os; Ύστερα, αντιγράφουμε τον πηγαίο κώδικα από τον CVSROOT κατάλογο του &os; στο δικό μας repository. Αν είστε συνηθισμένος με το CVS, ίσως να σας περάσει από το μυαλό να προσπαθήσετε να κάνετε import τα scripts, σε μια προσπάθεια να γίνει ύστερα ο συγχρονισμός με τις κατοπινές εκδόσεις ευκολότερος. Ωστόσο, αποδεικνύεται ότι το CVS παρουσιάζει μια δυσλειτουργία στην περιοχή αυτή: Όταν εισάγετε πηγαίο κώδικα μέσα στο CVSROOT φάκελο, δεν θα ενημερωθούν τα απαραίτητα αρχεία διαχείρισης. Για να μπορέσετε να το κάνετε να τα αναγνωρίσει, θα πρέπει να κάνετε checkin ξεχωριστά κάθε αρχείο αφού έχετε τελειώσει με την εισαγωγή, χάνοντας έτσι την αξία του cvs import. Επομένως, η προτεινόμενη μέθοδος είναι απλά να αντιγράψετε τα scripts. Δεν είναι και τόσο σημαντικό το αν η παραπάνω παράγραφος δεν σας φαίνεται πολύ ξεκάθαρη—το τελικό αποτέλέσμα είναι το ίδιο. Απλά ελέγξτε τον CVSROOT φάκελο και αντιγράψτε τα &os; αρχεία πάνω από τα δικά σας τοπικά (απείραχτα) αντίγραφα: &prompt.user; cvs -d path-to-your-repository checkout CVSROOT &prompt.user; cd CVSROOT &prompt.user; cp ../CVSROOT-freebsd/* . &prompt.user; cvs add * Σημειώστε ότι πιθανότατα θα πάρετε μερικές προειδοποιήσεις σχετικά με το ότι μερικοί φάκελοι δεν θα αντιγραφούν. Δεν πειράζει. Δεν τους χρειάζεστε αυτούς τους καταλόγους. Tα scripts Τώρα έχετε στον φάκελο εργασίας σας ένα ακριβές αντίγραφο των scripts που το ίδιο το &os; project χρησιμοποιεί στο δικό του repository. Μια περίληψη του σε τι χρησιμεύει το κάθε αρχείο περιλαμβάνεται παρακάτω. access - το αρχείο αυτό δεν χρησιμοποιείται στις συνηθισμένες εγκαταστάσεις του CVS. Χρησιμοποιείται μόνο στην ειδική εγκατάσταση του &os; project, για να ελέγχεται η πρόσβαση στο repository. Μπορείτε να αφαιρέσετε αυτό το αρχείο αν δεν σας ενδιαφέρει να χρησιμοποιήσετε κάτι τέτοιο στη δική σας εγκατάσταση. avail - το αρχείο αυτό ελέγχει την πρόσβαση στο repository ανά κατάλογο ή αρχείο. Μέσα σε αυτό, μπορείτε να καθορίσετε ομάδες χρηστών στους οποίους θέλετε να δώσετε πρόσβαση στο repository, όπως επίσης και να απαγορέψετε commits σε επίπεδο καταλόγου ή αρχείου. Θα πρέπει να το προσαρμόσετε ώστε να περιέχει τις ομάδες χρηστών και τους φακέλους που θα υπάρχουν στο δικό σας repository. cfg.pm - το αρχείο αυτό ερμηνεύει τις ρυθμίσεις σας και παρέχει τις εξ' ορισμού ρυθμίσεις. Δεν πρέπει να αλλάξετε αυτό το αρχείο. Αντίθετα, θα πρέπει να τοποθετήσετε τις δικές σας αλλαγές στις ρυθμίσεις στο αρχείο cfg_local.pm. cfg_local.pm - το αρχείο αυτό περιέχει όλες τις ρυθμιζόμενες παραμέτρους του συστήματος. Θα πρέπει να κάνετε οποιεσδήποτε ρυθμίσεις σας εδώ, όπως σε ποια διεύθυνση θα στέλνονται τα email από κάθε commit, σε ποιους hosts θα επιτρέπεται να γίνονται commit, κλπ. Περισσότερες πληροφορίες σχετικά με αυτό θα βρείτε παρακάτω. checkoutlist - το αρχείο αυτό περιλαμβάνει όλα τα αρχεία που βρίσκονται κάτω από τον έλεγχο του CVS στον κατάλογο αυτό—όλα εκτός από τα προκαθορισμένα αρχεία που δημιουργεί η εντολή cvs init. Θα πρέπει να το αλλάξετε για να αφαιρέσετε μερικά, σχετικά μόνο με το &os;, αρχεία. commit_prep.pl - το script αυτό εκτελεί διάφορους ελέγχους πριν από κάθε commit, ανάλογα με τις ρυθμίσεις που έχετε κάνει στο αρχείο cfg_local.pm. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. commitcheck - το script αυτό καλείται απευθείας από το CVS. Πρώτα ελέγχει, χρησιμοποιώντας το πρόγραμμα cvs_acls.pl, αν ο committer έχει πρόσβαση στο συγκεκριμένο μέρος του δέντρου του κώδικα, και μετά εκτελεί το commit_prep.pl που εκτελεί τους διάφορους pre-commit ελέγχους. Αν δεν υπάρξει κάποιο πρόβλημα στους ελέγχους αυτούς, τότε το CVS θα επιτρέψει στο commit να συνεχίσει. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. commitinfo - το αρχείο αυτό χρησιμοποιείται από το CVS στο να αποφασίσει ποιο script να εκτελέσει πριν από κάθε commit—στη δική μας περίπτωση αυτό το ρόλο καλύπτει το commitcheck. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. config - το αρχείο ρυθμίσεων γι' αυτό το repository. Θα πρέπει να κάνετε αλλαγές σ' αυτό το αρχείο ανάλογα με τις ανάγκες σας, αλλά οι περισσότεροι διαχειριστές μπορούν να αφήσουν τις εξ' ορισμού ρυθμίσεις. Περισσότερες πληροφορίες για τις διάφορες δυνατότητες επιλογών που έχετε στο αρχείο αυτό μπορείτε να βρείτε στο εγχειρίδιο του CVS. cvs_acls.pl - το script αυτό ελέγχει την ταυτότητα του committer, και αν επιτρέπεται αυτός να έχει πρόσβαση στο δέντρο του κώδικα. Αυτό γίνεται με βάση το αρχείο avail. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. cvsignore - στο αρχείο αυτό καθορίζονται τα αρχεία που το CVS δεν θα πρέπει να επιτρέψει το checkin τους στο repository. Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις δικές σας προτιμήσεις. Περισσότερες πληροφορίες για το αρχείο αυτό θα βρείτε στο εγχειρίδιο του CVS. cvswrappers - το αρχείο αυτό χρησιμοποιείται από το CVS για την ενεργοποίηση ή απενεργοποίηση του keyword expansion, ή για το αν κάποιο αρχείο θα πρέπει να αντιμετωπίζεται ως binary. Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. Περισσότερες πληροφορίες σχετικά με το αρχείο αυτό μπορείτε να βρείτε στο εγχειρίδιο του CVS. Σημειώστε πως οι επιλογές -t και -f δε δουλεύουν σωστά για client/server χρήση του CVS. edithook - το αρχείο αυτό δεν χρησιμοποιείται πια, αλλά εξακολουθεί να υπάρχει για ιστορικούς λόγους. Μπορείτε να σβήσετε αυτό το αρχείο. editinfo - το CVS χρησιμοποιεί αυτό το αρχείο για παράκαμψη των editors. Το &os; δεν χρησιμοποιεί αυτή την λειτουργικότητα γιατί η ερμηνεία του log μηνύματος γίνεται από τα verifymsg και logcheck αρχεία. Επιλέξαμε να γίνεται έτσι αυτό επειδή η χρήση του editinfo έχει κάποια προβλήματα με τα commits από μακριά και με τα commits που χρησιμοποιούν τις επιλογές -F ή -F. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. exclude - το αρχείο αυτό περιέχει κανονικές εκφράσεις (regular expressions) που χρησιμοποιούνται από το πρόγραμμα commit_prep.pl για να προσδιοριστούν τα αρχεία που δεν είναι απαραίτητο να περιέχουν επικεφαλίδα επισκόπησης (revision header). Στην εγκατάσταση του &os;, όλα τα αρχεία κάτω από έλεγχο επισκόπησης (revision control) είναι απαραίτητο να περιέχουν μια επικεφαλίδα επισκόπησης (όπως $FreeBSD$). Όλα τα ονόματα αρχείων που ταιριάζουν με τουλάχιστον μια από τις γραμμές του αρχείου αυτού εξαιρούνται από τον συγκεκριμένο έλεγχο. Θα πρέπει να προσθέσετε τις ανάλογες κανονικές εκφράσεις στο αρχείο αυτό όταν κάνετε checkin αρχεία που δεν είναι απαραίτητο να περιέχουν επικεφαλίδα επισκόπησης. Κατά τη διάρκεια της εγκατάστασης των νέων scripts ελέγχου, ίσως να είναι καλύτερα να εξαιρείται ο κατάλογος CVSROOT/ από τον έλεγχο των headers. log_accum.pl - πρόκειται για ένα script που παίρνει το log μήνυμα όπως αυτό δίνεται από το logcheck script, και το προσθέτει στο τέλος ενός αρχείου log στο repository, έτσι ώστε να υπάρχουν αντίγραφα ασφαλείας από τα commit logs. Επίσης, αναλαμβάνει να στείλει ένα mail στην email διεύθυνση που έχετε δηλώσει (στο cfg_local.pm). Συνεργάζεται με το CVS μέσω του αρχείου loginfo. Δεν θα χρειαστεί να πειράξετε το αρχείο αυτό. logcheck - το αρχείο αυτό ερμηνεύει το commit log μήνυμα που παρέχουν οι committers, και προσπαθεί κατά κάποιο τρόπο να το κανονικοποιήσει. Συνεργάζεται με το CVS μέσω του αρχείου verifymsg. Δεν θα χρειαστεί να πειράξετε το αρχείο αυτό. Το script εξαρτάται από μια τοπική αλλαγή του &os; στο CVS: Η αλλαγή αυτή ξαναδιαβάζει το log μήνυμα αφού αυτό έχει τροποποιηθεί από το script. Η κανονική έκδοση του CVS προφανώς δεν κάνει κάτι τέτοιο, οπότε το logcheck δε μπορεί να κάνει μικροδιορθώσεις στο log μήνυμα, αλλά μπορεί να ελέγξει ότι το μήνυμα δεν έχει συντακτικά λάθη. Απο την έκδοση 1.11.2 και μετά το ίδιο το CVS μπορεί να ρυθμιστεί να έχει την ίδια συμπεριφορά με αυτή που έχει η έκδοση του &os; με την επιλογή RereadLogAfterVerify=always στο αρχείο config. loginfo - το αρχείο αυτό χρησιμοποιείται από το CVS για τον έλεγχο του που θα στέλνονται οι πληροφορίες των logs. Εδώ ενεργοποιείται το πρόγραμμα log_accum.pl. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. modules - το αρχείο αυτό διατηρεί την παραδοσιακή του σημασία στο CVS. Θα πρέπει να αφαιρέσετε τα &os; modules από την κανονική έκδοση. Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες στο εγχειρίδιο του CVS. notify - το αρχείο αυτό χρησιμοποιείται από το CVS στην περίπτωση που κάποιος τοποθετήσει εντολή παρακολούθησης σε κάποιο αρχείο. Δεν χρησιμοποιείται στο repository του &os;. Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες στο εγχειρίδιο του CVS. options - το αρχείο αυτό σχετίζεται άμεσα με την &os; έκδοση του CVS και υποστηρίζεται μόνο από αυτή και την έκδοση του Debian. Περιέχει το keyword που θα γίνεται expand στα revision headers. Θα πρέπει να τροποποιήσετε το αρχείο αυτό για να είναι ίδιο με την έκδοση που έχετε εισάγει στο αρχείο cfg_local.pm (αν αποφασίσετε να χρησιμοποιήσετε αυτή την λειτουργία, που προς το παρόν δουλεύει σωστά μόνο με την έκδοση του CVS που έχει το &os;). rcsinfo - το αρχείο αυτό αντιστοιχεί φακέλους του repository σε αρχεία template, όπως π.χ. το rcstemplate. Εξ' ορισμού, το &os; χρησιμοποιεί ένα template για ολόκληρο το repository. Μπορείτε να προσθέσετε και άλλα στο αρχείο αυτό αν το επιθυμείτε. rcstemplate - το αρχείο αυτό είναι το template που θα δούν τελικά οι committers όταν θα κάνουν checkin. Θα πρέπει να επεξεργαστείτε αυτό το αρχείο ώστε να περιγράφει τις διάφορες επιπλέον παραμέτρους που ορίσατε στο αρχείο cfg_local.pm. tagcheck - το αρχείο αυτό ελέγχει την πρόσβαση στην χρήση των tags στο repository. Η κανονική έκδοση του &os; δεν επιτρέπει tags με ονόματα όπως RELENG*, λόγω της διαδικασίας δημιουργίας των επίσημων εκδόσεων. Θα πρέπει να επεξεργαστείτε το αρχείο αυτό ανάλογα με τις δικές σας ανάλογες προτιμήσεις. taginfo - το αρχείο αυτό αντιστοιχεί λειτουργίες των tags σε φακέλους του repository με προγράμματα ελέγχου, όπως το tagcheck. Δεν θα χρειαστεί να τροποποιήσετε αυτό το αρχείο. unwrap - το αρχείο αυτό μπορεί να χρησιμοποιηθεί για το αυτόματο unwrap των binary αρχείων (δείτε cvswrappers) στο checkout. Δεν χρησιμοποιείται στην τρέχουσα εγκατάσταση του CVS για το &os; επειδή δεν λειτουργεί σωστά με τα απομακρυσμένα commits. Δεν θα χρειαστεί να τροποποιήσετε το αρχείο αυτό. verifymsg - το αρχείο αυτό αντιστοιχεί υποκαταλόγους του repository σε προγράμματα επεξεργασίας των μηνυμάτων του log, όπως π.χ. το logcheck. Δεν θα χρειαστεί να τροποποιήσετε το αρχείο αυτό. wrap - το script αυτό χρειάζεται για το αυτόματο wrap των binary αρχείων (δείτε cvswrappers) κατά το checkin. Δεν χρησιμοποιείται στην τρέχουσα εγκατάσταση του &os; επειδή δεν λειτουργεί σωστά με τα απομακρυσμένα commits. Δεν θα χρειαστεί να τροποποιήσετε το αρχείο αυτό. Τροποποιώντας τα scripts Το επόμενο βήμα είναι η αλλαγή των scripts ώστε να μπορούν να χρησιμοποιηθούν στο δικό σας περιβάλλον. Θα πρέπει να ελέγξετε όλα τα αρχεία μέσα στον φάκελο και να κάνετε τις τροποποιήσεις σας. Πιο συγκεκριμένα, θα θέλετε κατά πάσα πιθανότητα να τροποποιήσετε τα παρακάτω αρχεία: Αν δεν θέλετε να χρησιμοποιήσετε τις λειτουργίες των scripts οι οποίες χρησιμοποιούνται αποκλειστικά από το &os;, μπορείτε να αφαιρέσετε με ασφάλεια το αρχείο access: &prompt.user; cvs rm -f access Διορθώστε το αρχείο avail ώστε να περιέχει τους διάφορους φακέλους του repository στους οποίους θέλετε να ελέγξετε την πρόσβαση. Σιγουρευτείτε ότι θα διατηρήσετε ανέπαφη την avail||CVSROOT γραμμή, ειδάλλως θα αποκλείσετε ακόμα και τον εαυτό σας με το επόμενο βημα. Εκτός αυτού στο συγκεκριμένο αρχείο μπορείτε να εισάγετε και ομάδες από committers. Εξ' ορισμού, το &os; χρησιμοποιεί το αρχείο access για την τοποθέτηση όλων των committers, αλλά μπορείτε να χρησιμοποιήσετε όποιο άλλο επιθυμείτε. Μπορείτε επίσης να προσθέσετε και ομάδες αν το επιθυμείτε (η σύνταξη καθορίζεται στην κορυφή του αρχείου cvs_acls.pl). Διορθώστε το αρχείο cfg_local.pm ώστε να περιέχει τις επιλογές που επιθυμείτε. Πιο συγκεκριμένα, θα πρέπει να ελέγξετε τις παρακάτω τροποποιήσιμες επιλογές: %TEMPLATE_HEADERS - Αυτές οι επικεφαλίδες επεξεργάζονται από τα log scripts, και τοποθετούνται κάτω από το mail του κάθε commit αν υπάρχουν και δεν είναι κενές στο μήνυμα του commit. Γενικά, μπορείτε να αφαιρέσετε τις καταχωρήσεις PR και MFC after—αφού αυτές σχετίζονται με το bug tracking σύστημα του &os; και τον τρόπο που διαχειρίζεται το &os; τα branches του repository του. Και φυσικά μπορείτε να προσθέσετε τις δικές σας. $MAIL_BRANCH_HDR - Αν θέλετε να προστίθεται αυτόματα μια επικεφαλίδα σε κάθε commit μήνυμα mail, η οποία θα περιγράφει το branch στο οποίο έγινε το συγκεκριμένο commit, ορίστε την τιμή αυτή να ταιριάζει με την δική σας εγκατάσταση. Αφήστε την κενή αν δεν επιθυμείτε να προστίθεται αυτόματα μια τέτοια επικεφαλίδα. @COMMIT_HOSTS - Ορίστε την τιμή αυτή σε μια λίστα από συστήματα (hosts), από τα οποία επιτρέπεται να γίνονται commits. $MAILADDRS - Ρυθμίστε αυτή την τιμή στο email του διαχειριστή ή σε μια διεύθυνση λίστας στην οποία θέλετε να πηγαίνουν τα mail των commit μηνυμάτων. @LOG_FILE_MAP - Αλλάξτε αυτό το array όπως επιθυμείτε. Κάθε regexp αντιστοιχεί στο συγκεκριμένο φάκελο στον οποίο γίνεται το commit, και το log μήνυμα του commit αποθηκεύεται κάτω από τον κατάλογο CVSROOT, στον υποκατάλογο commitlogs, στο αρχείο που αναφέρεται στην αντίστοιχη εγγραφή του πίνακα @LOG_FILE_MAP. $COMMITCHECK_EXTRA - Αν δεν θέλετε να χρησιμοποιήσετε τους ίδιους ελέγχους πρόσβασης με το &os;, θα πρέπει να αφαιρέσετε τον ορισμό της τιμής $COMMITCHECK_EXTRA από το αρχείο αυτό. Η αλλαγή της παραμέτρου $IDHEADER είναι εγγυημένο ότι θα δουλέψει μόνο σε πλατφόρμες &os;. Εξαρτάται από ειδικές μετατροπές του &os; στο CVS. Μπορείτε να ελέγξετε το αρχείο cfg.pm για να δείτε ποιές άλλες παραμέτρους μπορείτε να αλλάξετε, αλλά οι παραπάνω είναι οι πιο συνήθεις επιλογές. Επεξεργαστείτε το αρχείο exclude για να αφαιρέσετε τις ειδικές καταχωρήσεις του &os; (όπως όλες τις γραμμές που ξεκινούν με ^ports/ κτλ.). Εκτός αυτού, βάλτε σε σχόλια τις γραμμές που ξεκινούν με ^CVSROOT/, και προσθέστε μια γραμμή που θα περιέχει μόνο το ^CVSROOT/. Αφού εγκατασταθεί ο wrapper, μπορείτε να προσθέσετε το δικό σας header στα αρχεία που βρίσκονται μέσα στον κατάλογο CVSROOT και να επαναφέρετε τις γραμμές αυτές, αλλά προς το παρόν απλά θα σας δημιουργήσουν προβλήματα όταν θα προσπαθήσετε να κάνετε commit αργότερα. Ανοίξτε το αρχείο modules, και αφαιρέστε όλες τις σχετικές με το &os; καταχωρήσεις. Προσθέστε τα δικά σας modules αν το επιθυμείτε. Το βήμα αυτό είναι απαραίτητο μόνο αν έχετε ορίσει κάποια τιμή στην παράμετρο $IDHEADER του αρχείου cfg_local.pm (η οποία δουλεύει μόνο εφόσον χρησιμοποιείτε την τροποποιημένη έκδοση του CVS που έχει το &os;). Διορθώστε το αρχείο options ώστε να ταιριάζει με το tag που ορίσατε στο αρχείο cfg_local.pm. Μια αναζήτηση και αντικατάσταση του FreeBSD σε όλο το αρχείο είναι αρκετή. Επεξεργαστείτε το αρχείο rcstemplate ώστε να περιέχει τα ίδια keywords με αυτά που έχετε ορίσει στο cfg_local.pm. Προαιρετικά, αφαιρέστε τους ελέγχους του &os; από το αρχείο tagcheck. Μπορείτε απλά να προσθέσετε exit 0 στην αρχή του αρχείου για να απενεργοποιήσετε όλους τους ελέγχους στο tagging. Το τελευταίο πράγμα που πρέπει να γίνει, είναι να σιγουρευτείτε ότι τα commitlogs μπορούν να αποθηκευτούν. Τα CVS scripts του &os; αποθηκεύουν αυτά τα logs στον υποκατάλογο commitlogs του καταλόγου CVSROOT. Αυτός ο φάκελος πρέπει να δημιουργηθεί, οπότε κάντε τα ακόλουθα: &prompt.user; mkdir commitlogs &prompt.user; cvs add commitlogs Τώρα, αφού ελέγξετε τα πάντα προσεκτικά, θα πρέπει να κάνετε commit τις αλλαγές σας. Φροντίστε να είστε σίγουροι ότι έχετε δώσει στον εαυτό σας πρόσβαση στον φάκελο CVSROOT μέσα από το αρχείο avail πριν κάνετε οτιδήποτε, εφόσον στην αντίθετη περίπτωση θα κλειδώσετε τον εαυτό σας έξω. Οπότε, φροντίστε τα πάντα να είναι όπως επιθυμείτε, και μόνο τότε δώστε τα ακόλουθα: &prompt.user; cvs commit -m '- Initial FreeBSD scripts commit' Δοκιμάζοντας την Εγκατάσταση Είστε έτοιμοι για την πρώτη σας δοκιμή: Ένα forced commit στο αρχείο avail, για να σιγουρευτείτε ότι όλα δουλεύουν όπως θα έπρεπε. &prompt.user; cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail Άν όλα πάνε καλά, συγχαρητήρια! Έχετε καταφέρει να στήσετε μια πλήρως λειτουργική εγκατάσταση των &os; scripts για το repository σας. Στην περίπτωση που το CVS εξακολουθεί να παραπονιέται για κάτι, επιστρέψτε στις προηγούμενες ενότητες και ελέγξτε ξανά ότι έχετε εκτελέσει σωστά όλα τα προηγούμενα βήματα. Ειδική Εγκατάσταση του &os; Project Το ίδιο το &os; project χρησιμοποιεί μια ελαφρώς διαφορετική εγκατάσταση, η οποία χρησιμοποιεί επίσης αρχεία από τον υποφάκελο freebsd του CVSROOT που χρησιμοποιείται στο &os;. Το project χρειάζεται κάτι τέτοιο λόγω του μεγάλου αριθμού των committers, που διαφορετικά θα έπρεπε να ανήκουν όλοι στο ίδιο group. Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού πρώτα εξασφαλίζει τα σωστά διαπιστευτήρια των committers, αλλάζει μετέπειτα το group id σε αυτό του repository. Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε μια σύντομη επισκόπηση των σχετικών αρχείων. Αρχεία που χρησιμοποιούνται στην ειδική εγκατάσταση του &os; access - το αρχείο αυτό ελέγχει τις πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του project σας. freebsd/commitmail.pl - το αρχείο αυτό δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους. Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο. freebsd/cvswrap.c - πρόκειται για τον πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν. Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε παρακάτω. Θα πρέπει να διορθώσετε τα paths στις ACCESS και REALCVS μακροεντολές ώστε να ταιριάζουν με τη δική σας εγκατάσταση. freebsd/mailsend.c - το αρχείο αυτό χρειάζεται για την σχετική με τις λίστες ταχυδρομείου εγκατάσταση του &os;. Δεν θα χρειαστεί να πειράξετε το αρχείο αυτό. Η διαδικασία Διορθώστε το αρχείο access ώστε να περιέχει μόνο το δικό σας username. Διορθώστε το αρχείο cvswrap.c ώστε να περιέχει το σωστό path για τη δική σας εγκατάσταση. Αυτό ορίζεται ως μια μακροεντολή που ονομάζεται ACCESS. Θα πρέπει επίσης να αλλάξετε και το όνομα αρχείου του πραγματικού cvs binary αν αυτή που υπάρχει δεν είναι η σωστή για τη δική σας περίπτωση. Το κανονικό cvswrap.c θεωρεί πως θα αντικαταστήσετε την εντολή cvs σε επίπεδο συστήματος με το cvwrap, κι η αρχική εντολή cvs θα μεταφερθεί στο αρχείο /usr/bin/ncvs. Το δικό μου αντίτυπο του αρχείου cvswrap.c έχει τα ακόλουθα: #define ACCESS "/local/cvsroot/CVSROOT/access" #define REALCVS "/usr/bin/ncvs" Το επόμενο βήμα είναι να εγκαταστήσουμε τον wrapper για να είμαστε σίγουροι ότι θα γίνεται η μετατροπή στο σωστό group όταν γίνεται commit. Ο πηγαίος κώδικας γι' αυτό βρίσκεται στο αρχείο cvswrap.c στον κατάλογο CVSROOT. Μεταγλωττίστε τον κώδικα που έχετε ήδη διορθώσει ώστε να περιέχει τα σωστά paths: &prompt.user; cc -o cvs cvswrap.c Στη συνέχεια εγκαταστήστε το νέο cvs εκτελέσιμο ακολουθώντας τα ακόλουθα βήματα (θα πρέπει να είστε root για το βήμα αυτό): &prompt.root; mv /usr/bin/cvs /usr/bin/ncvs &prompt.root; mv cvs /usr/bin/cvs &prompt.root; chown root:ncvs /usr/bin/cvs /usr/bin/ncvs &prompt.root; chmod o-rx /usr/bin/ncvs &prompt.root; chmod u-w,g+s /usr/bin/cvs Αυτό εγκαθιστά τον wrapper σαν την εξ' ορισμού cvs εντολή, κάνοντας έτσι σίγουρο ότι οποιοσδήποτε θελήσει να χρησιμοποιήσει το repository, θα πρέπει να έχει τα κατάλληλα επίπεδα πρόσβασης. Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το οποίο θα γίνεται και η τελική πρόσβαση. Ελέγχοντας την εγκατάσταση Ο wrapper πρέπει πλέον να είναι έτοιμος. Μπορείτε φυσικά να το δοκιμάσετε κάνοντας ένα forced commit στο αρχείο access: &prompt.user; cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access Ξανά, αν αυτό αποτύχει, ελέγξτε ότι όλα τα παραπάνω βήματα έχουν εκτελεστεί σωστά.
diff --git a/el_GR.ISO8859-7/articles/dialup-firewall/article.sgml b/el_GR.ISO8859-7/articles/dialup-firewall/article.sgml index 026e6e319b..98991fa8c8 100644 --- a/el_GR.ISO8859-7/articles/dialup-firewall/article.sgml +++ b/el_GR.ISO8859-7/articles/dialup-firewall/article.sgml @@ -1,362 +1,363 @@ %articles.ent; ]>
Σύνδεση Μέσω Τηλεφώνου και Τείχος Προστασίας στο FreeBSD Marc Silver
marcs@draenor.org
$FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; Αυτό το άρθρο περιγράφει πως μπορείτε να ρυθμίσετε ένα τείχος προστασίας (firewall) χρησιμοποιώντας μια PPP σύνδεση μέσω τηλεφώνου στο FreeBSD με το IPFW. Πιο συγκεκριμένα, περιγράφει τη ρύθμιση ενός τείχους προστασίας σε μια σύνδεση μέσω τηλεφώνου που έχει δυναμική IP διεύθυνση. Αυτό το κείμενο δεν ασχολείται με το πως θα ρυθμίσετε την αρχική σας σύνδεση μέσω PPP. Για περισσότερες πληροφορίες σχετικά με τις ρυθμίσεις μιας σύνδεσης μέσω PPP δείτε τη σελίδα βοήθειας &man.ppp.8;.
Πρόλογος Αυτό το κείμενο περιγράφει την διαδικασία που χρειάζεται για να ρυθμίσετε ένα τείχος προστασίας στο FreeBSD όταν η IP διεύθυνση δίνεται δυναμικά από τον ISP σας. Παρόλο που έχω προσπαθήσει να κάνω αυτό το κείμενο όσο το δυνατόν πιο πλήρες και σωστό, είστε ευπρόσδεκτοι να στείλετε τις διορθώσεις, τα σχόλια ή τις προτάσεις σας στη διεύθυνση του συγγραφέα: marcs@draenor.org. Παράμετροι του πυρήνα Για να μπορέσετε να χρησιμοποιήσετε το IPFW, πρέπει να ενσωματώσετε την σχετική υποστήριξη στον πυρήνα σας. Για περισσότερες πληροφορίες σχετικά με τη μεταγλώττιση του πυρήνα, δείτε το τμήμα ρυθμίσεων του πυρήνα στο Εγχειρίδιο. Θα πρέπει να προσθέσετε τις παρακάτω επιλογές στις ρυθμίσεις του πυρήνα σας για να ενεργοποιήσετε την υποστήριξη για το IPFW: options IPFIREWALL Ενεργοποιεί τον κώδικα τείχους προστασίας του πυρήνα. Αυτό το κείμενο θεωρεί ότι έχετε εγκαταστήσει την έκδοση 5.X του FreeBSD ή μια πιο πρόσφατη. Αν χρησιμοποιείτε την έκδοση 4.X, τότε θα πρέπει να ενεργοποιήσετε την επιλογή IPFW2 και να διαβάσετε τη σελίδα βοήθειας &man.ipfw.8; για περισσότερες πληροφορίες σχετικά με την επιλογή IPFW2. Προσέξτε ιδιαίτερα το τμήμα USING IPFW2 IN FreeBSD-STABLE. options IPFIREWALL_VERBOSE Στέλνει τα μηνύματα για τα κατάλληλα πακέτα στο log του συστήματος. options IPFIREWALL_VERBOSE_LIMIT=500 Βάζει κάποιο όριο στις φορές που κάποια εγγραφή θα καταγράφεται. Έτσι μπορείτε να καταγράφετε τα μηνύματα από το τείχος προστασίας χωρίς τον κίνδυνο να γεμίσουν τα αρχεία καταγραφής του συστήματός σας αν δεχτείτε κάποια επίθεση. Το όριο 500 μηνυμάτων είναι μια αρκετά λογική τιμή, αλλά μπορείτε να προσαρμόσετε αυτή την τιμή ανάλογα με τις απαιτήσεις του δικού σας δικτύου. options IPDIVERT Ενεργοποιεί τα divert sockets, που θα δούμε αργότερα τι κάνουν. Μόλις τελειώσετε με τις ρυθμίσεις και την μεταγλώττιση του πυρήνα σας μην κάνετε επανεκκίνηση! Αν κάνετε επανεκκίνηση σε αυτό το σημείο μπορεί να κλειδωθείτε απέξω από το σύστημά σας. Πρέπει να περιμένετε μέχρι να εγκατασταθούν οι κανόνες του τείχους προστασίας και να ενημερωθούν όλα τα σχετικά αρχεία ρυθμίσεων. Αλλαγές στο <filename>/etc/rc.conf</filename> για να φορτώνεται το τείχος προστασίας Για να ενεργοποιείται το τείχος προστασίας κατά την εκκίνηση του συστήματος και για να ορίσετε το αρχείο με τους κανόνες του τείχους προστασίας, πρέπει να ενημερώσετε το αρχείο /etc/rc.conf. Απλά προσθέστε τις παρακάτω γραμμές: firewall_enable="YES" firewall_script="/etc/firewall/fwrules" Για περισσότερες πληροφορίες σχετικά με τη σημασίας καθεμιάς από αυτές τις γραμμές, ρίξτε μια ματιά στο /etc/defaults/rc.conf και διαβάστε την man σελίδα &man.rc.conf.5; Ενεργοποιήστε την Ενσωματωμένη Μετάφραση Διευθύνσεων του PPP Για να επιτρέψετε σε άλλα μηχανήματα του δικτύου σας να συνδέονται με τον έξω κόσμο μέσω του FreeBSD, χρησιμοποιώντας το ως πύλη, θα πρέπει να ενεργοποιήσετε την ενσωματωμένη μετάφραση διευθύνσεων του PPP (NAT). Για να γίνει αυτό, προσθέστε στο αρχείο /etc/rc.conf τις παρακάτω γραμμές: ppp_enable="YES" ppp_mode="auto" ppp_nat="YES" ppp_profile="προφίλ_της_σύνδεσης" Στη θέση του προφίλ_της_σύνδεσης πρέπει να βάλετε το όνομα της σύνδεσής σας, όπως το έχετε αποθηκεύσει στο αρχείο /etc/ppp/ppp.conf. Οι κανόνες του firewall Το μόνο που απομένει τώρα είναι να ορίσουμε τους κανόνες του firewall. Οι κανόνες τους οποίους περιγράφουμε εδώ είναι αρκετά καλοί για τους περισσότερους χρήστες με dialup σύνδεση, αλλά ούτε υποχρεωτικοί είναι, ούτε είναι δυνατόν να ταιριάζουν με τις ανάγκες όλων των χρηστών dialup. Μπορούν, όμως, να χρησιμεύσουν ως ένα καλό παράδειγμα ρυθμίσεων του IPFW και είναι σχετικά εύκολο να τους προσαρμόσετε στις δικές σας ανάγκες. Ας αρχίσουμε όμως με τις βασικές αρχές ενός κλειστού τείχους προστασίας. Ένα κλειστό τείχος προστασίας απαγορεύει κατ' αρχήν κάθε σύνδεση. Ο διαχειριστής μπορεί ύστερα να προσθέσει κανόνες για να επιτρέψει μόνο συγκεκριμένες συνδέσεις να περνάνε από το τείχος προστασίας. Η πιο συνηθισμένη σειρά των κανόνων σε ένα κλειστό τείχος είναι: πρώτα οι κανόνες που επιτρέπουν μερικές συνδέσεις, και τέλος οι κανόνες που απαγορεύουν οποιαδήποτε άλλη σύνδεση. Η λογική πίσω από αυτό είναι ότι πρώτα βάζετε τους κανόνες που επιτρέπουν πράγματα να περάσουν και ύστερα όλα τα άλλα απαγορεύονται αυτόματα. Φτιάξτε, λοιπόν, ένα κατάλογο στον οποίο θα αποθηκεύονται οι κανόνες του τείχους προστασίας. Σε αυτό το άρθρο χρησιμοποιούμε ως παράδειγμα τον κατάλογο /etc/firewall. Αλλάξτε κατάλογο μέσα σε αυτόν και δημιουργήστε το αρχείο fwrules που το όνομά του είχαμε γράψει στο rc.conf. Σημειώστε πως μπορείτε να αλλάξετε το όνομα του αρχείου αυτού σε ότι θέλετε. Αυτός ο οδηγός δίνει αυτό το όνομα σαν παράδειγμα και μόνο. Ας δούμε τώρα ένα παράδειγμα τείχους προστασίας με αρκετά επεξηγηματικά σχόλια. # Define the firewall command (as in /etc/rc.firewall) for easy # reference. Helps to make it easier to read. fwcmd="/sbin/ipfw" # Define our outside interface. With userland-ppp this # defaults to tun0. oif="tun0" # Define our inside interface. This is usually your network # card. Be sure to change this to match your own network # interface. iif="fxp0" # Force a flushing of the current rules before we reload. $fwcmd -f flush # Divert all packets through the tunnel interface. $fwcmd add divert natd all from any to any via tun0 # Check the state of all packets. $fwcmd add check-state # Stop spoofing on the outside interface. $fwcmd add deny ip from any to any in via $oif not verrevpath # Allow all connections that we initiate, and keep their state, # but deny established connections that don't have a dynamic rule. $fwcmd add allow ip from me to any out via $oif keep-state $fwcmd add deny tcp from any to any established in via $oif # Allow all connections within our network. $fwcmd add allow ip from any to any via $iif # Allow all local traffic. $fwcmd add allow all from any to any via lo0 $fwcmd add deny all from any to 127.0.0.0/8 $fwcmd add deny ip from 127.0.0.0/8 to any # Allow internet users to connect to the port 22 and 80. # This example specifically allows connections to the sshd and a # webserver. $fwcmd add allow tcp from any to me dst-port 22,80 in via $oif setup keep-state # Allow ICMP packets: remove type 8 if you don't want your host # to be pingable. $fwcmd add allow icmp from any to any via $oif icmptypes 0,3,8,11,12 # Deny and log all the rest. $fwcmd add deny log ip from any to any Τώρα έχετε ένα ολοκληρωμένο τείχος προστασίας, το οποίο συνδέσεις στις θύρες 22 και 80 και καταγράφει όλες τις άλλες συνδέσεις στο αρχείο καταγραφής του συστήματος. Πλέον είστε έτοιμοι για επανεκκίνηση. Το τείχος προστασίας θα ενεργοποιηθεί αυτόματα και θα φορτώσει τους κανόνες που προσθέσατε. Αν δε γίνει αυτό ή έχετε οποιαδήποτε προβλήματα, ή αν έχετε κάποιες προτάσεις για να διορθωθεί αυτό το άρθρο, επικοινωνήστε μαζί μου με email. Ερωτήσεις Βλέπω μηνύματα όπως limit 500 reached on entry 2800 και μετά από αυτό το σύστημά μου σταματάει να καταγράφει τα πακέτα που εμποδίζονται από το τείχος προστασίας. Δουλεύει ακόμα το firewall μου; Αυτό απλά σημαίνει πως έχει χρησιμοποιηθεί το μέγιστο όριο καταγραφής (logging) για αυτό τον κανόνα. Ο κανόνας ο ίδιος εξακολουθεί να δουλεύει, αλλά δεν θα στέλνει πια μηνύματα στο αρχείο καταγραφής του συστήματος μέχρι να μηδενίσετε πάλι τους μετρητές. Μπορείτε να μηδενίσετε τους μετρητές με την εντολή &prompt.root; ipfw resetlog Εναλλακτικά, μπορείτε να αυξήσετε το όριο καταγραφής στις ρυθμίσεις του πυρήνα σας με την επιλογή όπως περιγράψαμε παραπάνω. Μπορείτε να αλλάξετε αυτό το όριο (χωρίς να μεταγλωττίσετε πάλι τον πυρήνα σας και να κάνετε reboot) χρησιμοποιώντας την &man.sysctl.8; τιμή net.inet.ip.fw.verbose_limit. Κάποιο λάθος πρέπει να έγινε. Ακολούθησα τις εντολές κατά γράμμα και τώρα κλειδώθηκα απέξω. Αυτός ο οδηγός υποθέτει ότι χρησιμοποιείτε το userland-ppp, γι αυτό κι οι κανόνες που δίνονται χρησιμοποιούν το tun0 interface, που αντιστοιχεί στην πρώτη σύνδεση που φτιάχνεται με το &man.ppp.8; (αλλιώς γνωστό και ως user-ppp). Η επόμενη σύνδεση θα χρησιμοποιούσε το tun1, μετά το tun2 και πάει λέγοντας. Θα πρέπει επίσης να θυμάστε ότι το &man.pppd.8; χρησιμοποιεί το interface ppp0, οπότε αν ξεκινήσετε τη σύνδεσή σας με το &man.pppd.8; θα πρέπει να αντικαταστήσετε το tun0 με ppp0. Παρακάτω θα δείξουμε ένα εύκολο τρόπο να αλλάξετε τους κανόνες του firewall κατάλληλα. Οι αρχικοί κανόνες σώζονται σε ένα αρχείο με όνομα fwrules_tun0. &prompt.user; cd /etc/firewall /etc/firewall&prompt.user; su Password: /etc/firewall&prompt.root; mv fwrules fwrules_tun0 /etc/firewall&prompt.root; cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules Για να καταλάβετε αν χρησιμοποιείτε το &man.ppp.8; ή το &man.pppd.8; μπορείτε να εξετάσετε την έξοδο της &man.ifconfig.8; αφού ενεργοποιηθεί η σύνδεσή σας. Π.χ., για μια σύνδεση που ενεργοποιήθηκε από το &man.pppd.8; θα δείτε κάτι σαν αυτό (δείχνονται μόνο οι σχετικές γραμμές): &prompt.user; ifconfig (skipped...) ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524 inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xff000000 (skipped...) Από την άλλη, για μια σύνδεση που ενεργοποιήθηκε με το &man.ppp.8; (user-ppp) θά πρεπε να δείτε κάτι παρόμοιο με το παρακάτω: &prompt.user; ifconfig (skipped...) ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 (skipped...) tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524 (IPv6 stuff skipped...) inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xffffff00 Opened by PID xxxxx (skipped...)
diff --git a/el_GR.ISO8859-7/articles/explaining-bsd/article.sgml b/el_GR.ISO8859-7/articles/explaining-bsd/article.sgml index 17f86eb190..0e23dbb428 100644 --- a/el_GR.ISO8859-7/articles/explaining-bsd/article.sgml +++ b/el_GR.ISO8859-7/articles/explaining-bsd/article.sgml @@ -1,649 +1,650 @@ %articles.ent; ]>
Explaining BSD Greg Lehey
grog@FreeBSD.org
&tm-attrib.freebsd; &tm-attrib.amd; &tm-attrib.apple; &tm-attrib.linux; &tm-attrib.opengroup; &tm-attrib.sun; &tm-attrib.xfree86; &tm-attrib.general; Στον κόσμο του open source, η λέξη Linux είναι σχεδόν συνώνυμη με την έννοια Λειτουργικό Σύστημα, αλλά δεν είναι το μόνο open source &unix; λειτουργικό σύστημα. Σύμφωνα με τον Μετρητή Λειτουργικών Συστημάτων του Internet, από τον Απρίλιο του 1999 το 31.3% των υπολογιστών του κόσμου που είναι συνδεδεμένοι στο δίκτυο τρέχουν Linux. Το 14.6% τρέχουν BSD &unix;. Κάποιες από τις μεγαλύτερες εφαρμογές του παγκόσμιου ιστού, όπως το Yahoo!, τρέχουν BSD. Ο πιο μεγάλος σε φόρτο FTP εξυπηρέτης του κόσμου το 1999 (που δεν υπάρχει πλέον), το ftp.cdrom.com, χρησιμοποιούσε BSD για να μεταφέρει πάνω από 1.4 TB δεδομένων τη μέρα. Είναι προφανές ότι αυτή δεν είναι μια περιορισμένη αγορά: το BSD είναι ένα καλά κρατημένο μυστικό. Λοιπόν, ποιο είναι το μυστικό; Γιατί το BSD δεν είναι πιο ευρέως γνωστό; Αυτό το άρθρο είναι μια προσπάθεια να απαντηθούν αυτές και άλλες ερωτήσεις.
Τί είναι το BSD; BSD σημαίνει Berkeley Software Distribution. Είναι το όνομα από τις διανομές πηγαίου κώδικα που έκανε το Πανεπιστήμιο της Καλιφόρνια, Berkeley (University of California, Berkeley), οι οποίες ήταν αρχικά επεκτάσεις στο UΝΙΧ ερευνητικό λειτουργικό σύστημα της AT&T. Διάφορα open source λειτουργικά συστήματα είναι βασισμένα σε μια έκδοση αυτού του πηγαίου κώδικα γνωστή ως 4.4BSD-Lite. Εκτός από αυτό, περιέχουν και μια ποικιλία από πακέτα από άλλες Open Source πηγές, με την ομάδα GNU να είναι μια από τις πιο σημαντικές. Συνολικά, το λειτουργικό σύστημα περιλαμβάνει: Τον BSD πυρήνα, που διαχειρίζεται την δρομολόγηση των διεργασιών, την μνήμη, την συμμετρική πολυ-επεξεργασία (symmetric multi-processing, SMP) τους οδηγούς συσκευών, κλπ. Σε αντίθεση με τον πυρήνα του Linux, υπάρχουν παραπάνω από ένα διαφορετικοί BSD πυρήνες με ποικίλες δυνατότητες. Η βιβλιοθήκη της C, το βασικό API του συστήματος. Η C βιβλιοθήκη του BSD είναι βασισμένη σε κώδικα από το Berkeley, όχι από την ομάδα GNU. Εργαλεία όπως φλοιοί (shells), προγράμματα διαχείρισης αρχείων, μεταγλωττιστές (compilers, linkers). Κάποια από τα εργαλεία είναι βασισμένα σε κώδικα GNU, κάποια άλλα όχι. Το Σύστημα X Window, που υλοποιεί το γραφικό περιβάλλον. Το σύστημα X Window που χρησιμοποιείται στις πιο πολλές εκδόσεις του BSD συντηρείται από μια διαφορετική ομάδα προγραμματιστών: είτε την ομάδα &xfree86;, είτε την ομάδα X.Org. Αυτός είναι ο ίδιος κώδικας που χρησιμοποιεί και το Linux. Το BSD συνήθως δεν ορίζει ένα συγκεκριμένο γραφικό περιβάλλον, όπως το GNOME ή το KDE, παρόλο που και τα δυο είναι διαθέσιμα. Πολλά άλλα προγράμματα και εργαλεία. Τί, ένα αληθινό &unix;; Τα BSD λειτουργικά συστήματα δεν είναι κλώνοι, αλλά open source προϊόντα που έχουν βγει από το Πειραματικό &unix; λειτουργικό σύστημα της AT&T, που είναι επίσης πρόγονος του μοντέρνου &unix; System V. Αυτό ίσως σας προκαλέσει έκπληξη. Πώς μπορεί κάτι τέτοιο να γίνει, αφού η AT&T δεν έχει διανείμει ποτέ τον κώδικά της σαν open source; Είναι αλήθεια ότι το AT&T &unix; δεν είναι open source, και κατά μια έννοια, αν είμαστε αυστηροί με το θέμα των πνευματικών δικαιωμάτων, το BSD σίγουρα δεν είναι &unix;, αλλά από την άλλη, η ίδια η AT&T έχει ενσωματώσει κώδικα από άλλες ομάδες ανάπτυξης, με μια από τις πιο σημαντικές να είναι η Ομάδα Έρευνας της Επιστήμης των Υπολογιστών του Πανεπιστημίου της California, Berkeley, CA (CSRG: Computer Sciences Research Group, University of California, Berkeley, CA). Ξεκινώντας το 1976, η CSRG ξεκίνησε να διανέμει tapes με το λογισμικό τους, αποκαλώντας το Berkeley Software Distribution or BSD. Οι αρχικές εκδόσεις του BSD αποτελούνταν κυρίως από προγράμματα για χρήστες, αλλά αυτό άλλαξε δραματικά όταν η CSRG έκλεισε ένα συμβόλαιο με την Defense Advanced Projects Research Agency (DARPA) για να αναβαθμίσει τα πρωτόκολα επικοινωνίας του δικτύου της DARPA, του ARPANET. Τα νέα πρωτόκολα ήταν γνωστά ως Internet Protocols, αργότερα TCP/IP παίρνοντας το όνομά τους από τα δύο πιο σημαντικά πρωτόκολα. Η πρώτη ευρέως γνωστή υλοποίηση ήταν μέρος του 4.2BSD, που ανακοινώθηκε το 1982. Κατά τη διάρκεια της δεκαετίας του 80 αναπτύχθηκε ένα πλήθος εταιρειών που διέθεταν σταθμούς εργασίας. Πολλές προτίμησαν να αγοράσουν την άδεια του &unix; αντί να αναπτύξουν δικά τους λειτουργικά συστήματα. Συγκεκριμένα, η Sun Microsystems αγόρασε την άδεια του &unix; και ανέπτυξε μια έκδοση του 4.2BSD την οποία ονόμασε SunOS. Όταν και η ίδια η AT&T μπόρεσε, άρχισε να πουλά το &unix; με μια έκδοση περιορισμένων δυνατοτήτων που λεγόταν System III, την οποία γρήγορα ακολούθησε το System V. Η βάση πηγαίου κώδικα του System V δεν περιείχε κώδικα δικτύωσης, οπότε όλες οι υλοποιήσεις περιείχαν επιπλέον λογισμικό από το BSD, συμπεριλαμβανομένου του λογισμικού TCP/IP, αλλά και προγράμματα όπως τον φλοιό csh και τον επεξεργαστή κειμένου vi. Συνολικά, αυτές οι βελτιώσεις ήταν γνωστές σαν οι Επεκτάσεις Berkeley. Τα tapes του BSD περιείχαν πηγαίο κώδικα της AT&T κι έτσι απαιτούσαν μια άδεια πηγαίου κώδικα του &unix;. Μέχρι το 1990, η χρηματοδότηση της CSRG τέλειωνε, και πήγαινε για κλείσιμο. Κάποια μέλη της ομάδας αποφάσισαν να διανείμουν τον BSD κώδικα, που ήταν Open Source, χωρίς τα κομμάτια του εμπορικού AT&T κώδικα. Αυτό έγινε τελικά με την Networking Tape 2, γνωστή και ως Net/2. Η Net/2 δεν ήταν ένα ολοκληρωμένο λειτουργικό σύστημα. Περίπου 20% από τον κώδικα του πυρήνα έλειπε. Ένα από τα μέλη της CSRG, ο William F. Jolitz, έγραψε τον υπόλοιπο κώδικα που έλειπε και τον έδωσε νωρίς το 1992 με όνομα 386BSD. Την ίδια στιγμή, μια άλλη ομάδα από πρώην μέλη της CSRG ίδρυσε μια εμπορική εταιρεία με όνομα Berkeley Software Design Inc. και εξέδωσε μια πειραματική έκδοση ενός λειτουργικού συστήματος που λεγόταν BSD/386, το οποίο ήταν βασισμένο στον ίδιο πηγαίο κώδικα. Το όνομα του λειτουργικού συστήματος άλλαξε αργότερα σε BSD/OS. Το 386BSD ποτέ δεν έγινε ένα σταθερό λειτουργικό σύστημα. Αντί γι αυτό, δύο άλλες ομάδες ξεπήδησαν από αυτό το 1993. Η ομάδα του NetBSD και η ομάδα του FreeBSD. Οι δυο ομάδες αρχικά ξεχώρισαν επειδή είχαν διαφορετική υπομονή όσον αφορά σε κάποιες βελτιώσεις στο 386BSD. Η ομάδα του NetBSD ξεκίνησε στην αρχή της χρονιάς, και η πρώτη έκδοση του FreeBSD δεν ήταν έτοιμη μέχρι το τέλος της χρονιάς. Στο μεταξύ η βάση του πηγαίου κώδικα είχε πλέον τόσες διαφορές που ήταν δύσκολο να ενωθεί η μια με με την άλλη ομάδα. Επιπλέον, οι δυο ομάδες είχαν και διαφορετικούς στόχους όπως θα δούμε παρακάτω. Το 1996 δημιουργήθηκε το OpenBSD από το NetBSD και το 2003 δημιουργήθηκε το DragonFlyBSD από το FreeBSD. Γιατί δεν είναι το BSD πιο γνωστό; Για διάφορους λόγους, το BSD είναι σχετικά άγνωστο: Αυτοί που αναπτύσσουν το BSD ασχολούνται συχνά περισσότερο με το να διορθώνουν τον κώδικά τους παρά με το να τον διαφημίζουν. Αρκετή από την δημοσιότητα του Linux οφείλεται σε παράγοντες εξωτερικούς (σε σχέση με αυτούς που αναπτύσσουν το Linux), όπως στα μέσα ενημέρωσης, και σε εταιρείες που έχουν φτιαχτεί για να παρέχουν υπηρεσίες βασισμένες σε Linux. Μέχρι πρόσφατα, τα open source BSD δεν είχαν τέτοιους διαφημιστές. Αυτοί που αναπτύσσουν το BSD τείνουν να είναι πιο έμπειροι από τους χρήστες του Linux και δεν τους ενδιαφέρει τόσο πολύ να το κάνουν εύκολο στη χρήση. Οι καινούριοι χρήστες έχουν την τάση να αισθάνονται πιο άνετα με το Linux. Το 1992, η AT&T έκανε μήνυση στην BSDI, την εταιρεία που ανέπτυσσε το BSD/386, κατηγορώντας την ότι το προϊόν περιείχε κώδικα του οποίου τα πνευματικά δικαιώματα ανήκαν στην AT&T. Η υπόθεση κανονίστηκε εκτός δικαστηρίου το 1994, αλλά το φάντασμα της μήνυσης ακόμα συνεχίζει να τρομάζει τον κόσμο. Ακόμα και σχετικά πρόσφατα, τον Μάρτιο του 2000, ένα άρθρο που βγήκε στον παγκόσμιο ιστό υποστηρίζει ότι η υπόθεση έκλεισε με πρόσφατο διακανονισμό. Μια λεπτομέρεια που η μήνυση ξεκαθάρισε είναι η κατάσταση των ονομάτων: κατά τη διάρκεια της δεκαετίας του'80, το BSD ήταν γνωστό ως BSD &unix;. Με την αφαίρεση ακόμα και του τελευταίου κομματιού κώδικα από την AT&T, έχασε και το δικαίωμα στο όνομα &unix;. Έτσι θα δείτε αναφορές σε βιβλία με τίτλους όπως the 4.3BSD &unix; operating system και the 4.4BSD operating system. Υπάρχει η εντύπωση πως τα BSD λειτουργικά συστήματα είναι κομματιασμένα και αντιμαχόμενα. Η Wall Street Journal μιλούσε για balkanization των ομάδων ανάπτυξης του BSD. Ακριβώς όπως και η μήνυση, αυτή η εντύπωση βασίζεται κυρίως σε παλιές ιστορίες. Σύγκριση του BSD με το Linux Τελικά ποια είναι η διαφορά μεταξύ, ας πούμε, του Debian Linux και του FreeBSD; Για τον μέσο χρήστη, η διαφορά είναι στην πραγματικότητα μικρή: και τα δυο είναι λειτουργικά συστήματα που μοιάζουν με το &unix;. Και τα δυο αναπτύσσονται απο μή εμπορικές κοινότητες (αυτό δεν ισχύει για πολλές άλλες διανομές του Linux φυσικά). Στις επόμενες παραγράφους, θα πούμε λίγα πράγματα για το BSD και θα το συγκρίνουμε με το Linux. Η περιγραφή ταιριάζει πιο πολύ στο FreeBSD, το οποίο είναι περίπου το 80% των εγκατεστημένων BSD, αλλά οι διαφορές από το NetBSD, το OpenBSD και το DragonFlyBSD είναι μικρές. Σε ποιον ανήκει το BSD; Δεν υπάρχει ένα άτομο ή οργανισμός στον οποίο να ανήκει το BSD. Αναπτύσσεται και διανέμεται από μια κοινότητα προγραμματιστών από όλο τον κόσμο που έχουν αρκετές γνώσεις και είναι αφοσιωμένοι στην ανάπτυξή του. Κάποια από τα κομμάτια του BSD είναι ανεξάρτητα Open Source projects που συντηρούνται από κάποια διαφορετική ομάδα ή άτομο. Πως αναπτύσσεται και ενημερώνεται το BSD; Οι BSD πυρήνες αναπτύσσονται ακολουθώντας το Open Source μοντέλο ανάπτυξης. Κάθε ομάδα διατηρεί ένα δέντρο πηγαίου κώδικα στο οποίο έχουν όλοι πρόσβαση, χρησιμοποιώντας το Concurrent Versions System (CVS). Το δέντρο πηγαίου κώδικα περιέχει όλο τον πηγαίο κώδικα για τα αρχεία του συστήματος, καθώς και τεκμηρίωση ή άλλα σχετικά αρχεία. Το CVS επιτρέπει στους χρήστες να εξάγουν (με άλλα λόγια να πάρουν ένα αντίγραφο) οποιασδήποτε έκδοσης του συστήματος. Ένας μεγάλος αριθμός προγραμματιστών από όλο τον κόσμο συνεισφέρουν με βελτιώσεις για το BSD. Χωρίζονται σε τρεις κατηγορίες: Οι Contributors γράφουν κώδικα ή τεκμηρίωση. Δεν έχουν δικαίωμα να κάνουν commit (να προσθέσουν κώδικα) απευθείας στον πηγαίο κώδικα. Για να μπει ο κώδικάς τους στο σύστημα πρέπει να περάσει από έλεγχο και να δοκιμαστεί από κάποιον προγραμματιστή που έχει τέτοια δικαιώματα, ο οποίος λέγεται και committer. Οι Committers είναι προγραμματιστές με δικαίωμα να προσθέτουν πράγματα απευθείας στον πηγαίο κώδικα. Για να γίνει κάποιος committer πρέπει να δείξει ότι έχει ικανότητες σε κάποιο συγκεκριμένο τομέα, στον οποίο είναι ενεργός. Αφήνεται στην διακριτικότητα του committer το αν θα πρέπει να πάρει άδεια πριν κάνει αλλαγές σε ένα συγκεκριμένο μέρος του πηγαίου κώδικα. Γενικά, ένας έμπειρος committer μπορεί να κάνει αλλαγές που είναι προφανώς σωστές χωρίς να ζητήσει άδεια. Για παράδειγμα, ένας committer από την ομάδα τεκμηρίωσης μπορεί να διορθώνει ορθογραφικά ή γραμματικά λάθη χωρίς να ζητήσει επιβεβαίωση. Από την άλλη, προγραμματιστές που κάνουν μεγάλες ή περίπλοκες αλλαγές θα πρέπει να δίνουν κάπως τις αλλαγές τους στους άλλους για έλεγχο πριν κάνουν commit. Σε εξαιρετικές περιπτώσεις, ένα μέλος της βασικής ομάδας (core team) με την ιδιότητα του Principal Architect μπορεί να απαιτήσει οι αλλαγές να αφαιρεθούν από τον πηγαίο κώδικα, μια διαδικασία που λέγεται backing out. Όλοι οι committers παίρνουν mail που περιγράφουν κάθε ξεχωριστή αλλαγή που γίνεται commit, οπότε δεν είναι δυνατόν να προστεθεί κάτι κρυφά. Η Core team. Τέλος, το FreeBSD και το NetBSD έχουν το καθένα μια βασική ομάδα (core team) που έχει την διαχείριση του συστήματος. Η βασική ομάδα έχει αναπτυχθεί στην πορεία του project, και ο ρόλος της δεν είναι πάντα σαφώς καθορισμένος. Δεν είναι απαραίτητο να είναι κάποιος προγραμματιστής, αν και συνήθως τα μέλη της βασικής ομάδας είναι από τα άτομα που αναπτύσσουν το BSD. Οι κανόνες για την βασική ομάδα διαφέρουν από το ένα project στο άλλο, αλλά γενικά η γνώμη της βασικής ομάδας μετράει περισσότερο στην κατεύθυνση του project από αυτή των υπόλοιπων. Αυτή η οργάνωση διαφέρει από αυτή του Linux σε διάφορα σημεία: Δεν υπάρχει ένα μοναδικό άτομο που να ελέγχει τα περιεχόμενα του συστήματος. Πρακτικά, αυτή η διαφορά υπερεκτιμάται, αφού ο Principal Architect μπορεί να απαιτήσει κάποιος κώδικας να αφαιρεθεί, και ακόμα και στο Linux υπάρχουν αρκετά άτομα που τους επιτρέπεται να κάνουν αλλαγές. Από την άλλη, υπάρχει ένα κεντρικό repository, ένα μέρος που μπορείτε να βρείτε ολόκληρο το λειτουργικό σύστημα σε μορφή πηγαίου κώδικα, σε οποιαδήποτε έκδοση, ακόμα και παλιότερες. Τα BSD project συντηρούν ολόκληρο το Λειτουργικό Σύστημα, κι όχι μόνο τον πυρήνα. Αυτή η διαφορά είναι μόνο οριακά χρήσιμη. Ούτε το BSD, ούτε το Linux δεν είναι πολύ χρήσιμα χωρίς εφαρμογές. Οι εφαρμογές που χρησιμοποιούνται στο BSD είναι συχνά οι ίδιες εφαρμογές που χρησιμοποιούνται κάτω από το Linux. Σαν αποτέλεσμα της κεντρικής και σαφώς ορισμένης συντήρησης ενός CVS δέντρου πηγαίου κώδικα, η ανάπτυξη του BSD είναι ξεκάθαρη, και είναι έυκολη η πρόσβαση σε οποιαδήποτε έκδοση του συστήματος είτε με αριθμό έκδοσης, είτε με ημερομηνία. Το CVS επίσης επιτρέπει αθροιστικές αλλαγές στο σύστημα. Για παράδειγμα, το repository του FreeBSD ενημερώνεται περίπου 100 φορές τη μέρα. Οι πιο πολλές από αυτές τις αλλαγές είναι μικρές. Εκδόσεις του BSD Οι ομάδες ανάπτυξης των FreeBSD, NetBSD και OpenBSD διαθέτουν το σύστημα σε τρεις διαφορετικές εκδόσεις. Όπως και με το Linux, σε κάθε έκδοση δίνεται ένας αριθμός, π.χ. 1.4.1 ή 3.5. Εκτός από αυτό, ο αριθμός της έκδοσης έχει ένα επίθεμα, το οποίο υποδηλώνει το σκοπό της έκδοσης: Η πειραματική έκδοση του συστήματος λέγεται CURRENT. Το FreeBSD ορίζει ένα αριθμό έκδοσης για το CURRENT, για παράδειγμα FreeBSD 5.0-CURRENT. Το NetBSD χρησιμοποιεί ένα κάπως διαφορετικό τρόπο ονοματολογίας και προσθέτει γράμμα στο τέλος του αριθμού έκδοσης το οποίο αντιστοιχεί σε αλλαγές εσωτερικών λειτουργιών, για παράδειγμα NetBSD 1.4.3G. Το OpenBSD δεν ορίζει κάποιο αριθμό ("OpenBSD-current"). Η ανάπτυξη καινούριων πραγμάτων πάντα γίνεται σε αυτόν τον κλάδο. Σε τακτά χρονικά διαστήματα, από δυο μέχρι και τέσσερεις φορές το χρόνο, τα project ανακοινώνουν μια RELEASE έκδοση του συστήματος, η οποία διατίθεται σε CD-ROM και μπορεί κάποιος να την κατεβάσει από FTP εξυπηρέτες, για παράδειγμα ανακοινώνεται το OpenBSD 2.6-RELEASE ή το NetBSD 1.4-RELEASE. Η RELEASE έκδοση απευθύνεται σε τελικούς χρήστες, και είναι η κανονική μορφή του συστήματος. Το NetBSD διαθέτει επίσης και patch εκδόσεις με ένα τρίτο ψηφίο, όπως για παράδειγμα την NetBSD 1.4.2. Καθώς προβλήματα βρίσκονται σε κάποια RELEASE έκδοση, διορθώνονται, και οι αλλαγές προστίθενται στο CVS. Στο FreeBSD, το αποτέλεσμα ονομάζεται η STABLE έκδοση, ενώ στο NetBSD και στο OpenBSD συνεχίζει να λέγεται η RELEASE έκδοση. Μικρά καινούρια χαρακτηριστικά μπορεί να προστεθούν και σε αυτόν τον κλάδο μετά από μια δοκιμαστική περίοδο στον CURRENT κλάδο. Το Linux, σε αντίθεση, συντηρεί δυο ξεχωριστά δέντρα πηγαίου κώδικα. Την σταθερή και την πειραματική έκδοση. Οι σταθερές εκδόσεις έχουν ένα ζυγό αιρθμό έκδοσης, όπως 2.0, 2.2 ή 2.4. Οι πειραματικές εκδόσεις έχουν περιττό αριθμό έκδοσης, όπως 2.1, 2.3 ή 2.5. Σε κάθε περίπτωση, ο αριθμός ακολουθείται από ένα ακόμα αριθμό που υποδεικνύει την ακριβή έκδοση. Ακόμα, κάθε διανομέας προσθέτει τα δικά του προγράμματα χρήστη και εργαλεία, οπότε το όνομα της διανομής είναι επίσης σημαντικό. Κάθε διανομέας επίσης προσθέτει τον δικό του αριθμό στην διανομή, οπότε μια πλήρης περιγραφή μπορεί να είναι κάτι σαν TurboLinux 6.0 με πυρήνα 2.2.14 Τι εκδόσεις του BSD είναι διαθέσιμες; Σε αντίθεση με τις διανομές του Linux, υπάρχουν μόνο τέσσερα διαφορετικά open source BSD. Κάθε BSD ομάδα συντηρεί τον δικό της πηγαίο κώδικα και τον δικό της πυρήνα. Πρακτικά, φυσικά, υπάρχουν πολύ λιγότερες διαφορές στα προγράμματα χρήστη των BSD ομάδων από ότι υπάρχουν στο Linux. Είναι δύσκολο να κατηγοριοποιηθούν οι σκοποί της κάθε BSD ομάδας. Οι διαφορές είναι πολύ υποκειμενικές. Βασικά, Το FreeBSD έχει ως στόχο την υψηλή απόδοση και την ευκολία χρήσης από τους τελικούς χρήστες. Είναι επίσης το αγαπημένο των υπηρεσιών παροχής περιεχομένου στον παγκόσμιο ιστό. Τρέχει σε αρκετές πλατφόρμες: συστήματα βασισμένα στην i386 αρχιτεκτονική (PC), συστήματα βασισμένα στους AMD 64-bit επεξεργαστές, συστήματα βασισμένα στην ααρχιτεκτονική &ultrasparc;, συστήματα με επεξεργαστές Alpha της Compaq και συστήματα βασισμένα στο πρότυπο PC-98 της NEC. Το FreeBSD έχει σημαντικά περισσότερους χρήστες από τα άλλα projects. Το NetBSD στοχεύει στην μέγιστη μεταφερσιμότητα: μα φυσικά και τρέχει NetBSD. Τρέχει σε μηχανές από υπολογιστές χειρός μέχρι μεγάλους εξυπηρέτες, και έχει χρησιμοποιηθεί ακόμα και σε αποστολές της NASA. Είναι μια πολύ καλή επιλογή για παλιό μη-Intel hardware. Το OpenBSD δίνει μεγάλη σημασία στην ασφάλεια και στην καθαρότητα του κώδικα: χρησιμοποιεί ένα συνδυασμό από ιδέες open source και λεπτομερή έλεγχο του κώδικα για να φτιάξει ένα σύστημα που είναι ολοφάνερα σωστό, κάτι που το κάνει να είναι η επιλογή των οργανισμών που δίνουν σημασία στην ασφάλεια, όπως τράπεζες, χρηματιστήρια και παραρτήματα της κυβέρνησης των ΗΠΑ. Όπως και το NetBSD τρέχει σε αρκετές πλατφόρμες. Το DragonFlyBSD στοχεύει στην ανάπτυξη ενός συστήματος μεγάλης απόδοσης και scalability σε οτιδήποτε από ένα απλό σύστημα ενός επεξεργαστή μέχρι τεράστια clusters συστημάτων. Το DragonFlyBSD έχει αρκετούς στόχους ευρείας εμβέλειας, αλλά μέχρι τώρα οι προσπάθειες της ομάδας ανάπτυξής του επικεντρώνονται στην υλοποίηση μιας SMP πλατφόρμας που είναι εύκολο να κατανοηθεί, να συντηρηθεί και ευνοεί την περαιτέρω ανάπτυξη. Υπάρχουν ακόμη και δύο BSD λειτουργικά συστήματα που δεν είναι open source, το BSD/OS και το &macos; X της Apple: Το BSD/OS είναι το πιο παλιό από τα βασισμένα στο 4.4BSD λειτουργικά συστήματα. Δεν ήταν open source, παρόλο που άδειες πηγαίου κώδικα ήταν διαθέσιμες με σχετικά χαμηλό κόστος. Έμοιαζε πολύ με το FreeBSD. Δυό χρόνια μετά την εξαγορά της BSDi από τη Wind River Systems, το BSD/OS απέτυχε να επιβιώσει σαν ανεξάρτητο προϊόν. Μπορεί ακόμα να είναι διαθέσιμη υποστήριξη και πηγαίος κώδικας από την Wind River, αλλά όλη η ανάπτυξη γίνεται πλέον στο embedded λειτουργικό σύστημα VxWorks. Το &macos; X είναι η πιο πρόσφατη έκδοση του λειτουργικού συστήματος για την γραμμή υπολογιστών &macintosh; της Apple Computer Inc. Ο πυρήνας του λειτουργικού συστήματος, ο οποίος είναι βασισμένος στο BSD και λέγεται Darwin, είναι διαθέσιμος ως ένα πλήρες λειτουργικό σύστημα ανοιχτού κώδικα για υπολογιστές x86 και PPC. Το σύστημα γραφικών Aqua/Quartz και πολλά άλλα εμπορικά μέρη του &macos; X δεν είναι διαθέσιμα σε μορφή πηγαίου κώδικα. Αρκετά μέλη της ομάδας ανάπτυξης του Darwin συμμετέχουν στην ανάπτυξη του FreeBSD κι ανάποδα. Τι διαφορά έχει η άδεια του BSD από την GNU Public άδεια; Το Linux διατίθεται σύμφωνα με τους όρους της GNU General Public License (GPL), η οποία είναι σχεδιασμένη για να αποκλείσει το μη-ελεύθερο λογισμικό. Ειδικότερα, οποιοδήποτε προϊόν βασισμένο σε κάποιο προϊόν διαθέσιμο σύμφωνα με τους όρους της GPL πρέπει κι αυτό να δίνεται σε μορφή πηγαίου κώδικα αν ζητηθεί. Αντίθετα, η BSD άδεια είναι λιγότερο περιοριστική: διανομές μόνο-εκτελέσιμες επιτρέπονται. Αυτό είναι πολύ χρήσιμο σε embedded εφαρμογές. Τί άλλο θά 'πρεπε να ξέρω; Επειδή λιγότερες εφαρμογές είναι διαθέσιμες για BSD από ότι για Linux, οι προγραμματιστές του BSD έγραψαν ένα πακέτο συμβατότητας με το Linux, που επιτρέπει σε προγράμματα για Linux να τρέξουν κάτω από BSD. Το πακέτο περιλαμβάνει τόσο αλλαγές στον πυρήνα, έτσι ώστε να εκτελούνται σωστά οι κλήσεις συστήματος του Linux, όσο και αρχεία συμβατότητας με το Linux όπως η βιβλιοθήκη της C. Δεν υπάρχει πρακτικά διαφορά στην ταχύτητα εκτέλεσης μεταξύ μιας εφαρμογής για Linux που τρέχει σε ένα Linux μηχάνημα και μιας εφαρμογής για Linux που τρέχει σε ένα BSD μηχάνημα ίδιας ταχύτητας. Η λογική του BSD, όλα από μια πηγή, σημαίνει ότι οι αναβαθμίσεις είναι πολύ πιο εύκολες να γίνουν από ότι στο Linux. Το BSD παρέχει επίσης και βιβλιοθήκες συμβατότητας με παλιότερες εκδόσεις, οπότε μπορείτε να τρέχετε εκτελέσιμα που είναι αρκετά χρόνια παλιά χωρίς προβλήματα. Τι προτείνετε να χρησιμοποιήσω, BSD ή Linux; Κι αυτό τι υποτίθεται ότι σημαίνει πρακτικά; Ποιος θά 'πρεπε να χρησιμοποιεί BSD, και ποιος θά 'πρεπε να χρησιμοποιεί Linux; Αυτή είναι μια πολύ δύσκολη ερώτηση να απαντήσει κανείς. Ας δούμε μερικές γενικές οδηγίες: Αν δεν έχει χαλάσει, μην το φτιάξετε: Αν ήδη χρησιμοποιείτε κάποιο open source λειτουργικό σύστημα, και είστε ικανοποιημένοι από αυτό, μάλλον δεν υπάρχει κανένας καλός λόγος να το αλλάξετε. Τα BSD συστήματα, και ειδικά το FreeBSD, μπορούν να έχουν αξιοσημείωτα καλύτερη απόδοση από το Linux. Αλλά αυτό δεν ισχύει πάντα. Σε πολλές περιπτώσεις, δεν υπάρχει διαφορά στην απόδοση ή είναι πολύ μικρή. Σε μερικές περιπτώσεις μπορεί το Linux να αποδίδει καλύτερα από το FreeBSD. Γενικά, τα BSD συστήματα έχουν καλύτερη φήμη όσον αφορά στην αξιοπιστία που έχουν, κυρίως σαν αποτέλεσμα της πιο ώριμης βάσης κώδικα. Τα BSD συστήματα έχουν τη φήμη ότι έχουν πιο ποιοτική και ολοκληρωμένη τεκμηρίωση. Οι διάφορες ομάδες τεκμηρίωσης προσπαθούν να παρέχουν ενημερωμένη τεκμηρίωση σε πολλές γλώσσες, να κρατούν την τεκμηρίωση ενημερωμένη και να καλύπτουν κάθε χαρακτηριστικό του συστήματος σε βάθος. Η BSD άδεια μπορεί να σας αρέσει περισσότερο από την GPL. Το BSD μπορεί να τρέξει ένα μεγάλο ποσοστό από τα εκτελέσιμα των προγραμμάτων για Linux, ενώ το Linux δε μπορεί να τρέξει BSD εκτελέσιμα. Πολλές BSD υλοποιήσεις μπορούν να τρέξουν ακόμη κι εκτελέσιμα από άλλα &unix; συστήματα. Αυτό πιθανόν να έχει ως αποτέλεσμα η μετάβαση από κάποιο άλλο σύστημα σε BSD να είναι πιο εύκολη από ότι σε Linux. Το BSD μπορεί να τρέξει εκτελέσιμα του Linux, ενώ το Linux δεν μπορεί να εκτελέσει προγράμματα για BSD. Σαν αποτέλεσμα, περισσότερο λογισμικό είναι διαθέσιμο για BSD από ότι για Linux. Ποιος παρέχει υποστήριξη, service και εκπαίδευση για το BSD; Η BSDi / FreeBSD Mall, Inc. πάντα παρείχε υποστήριξη για το BSD/OS και πρόσφατα ανακοίνωσε ότι παρέχει συμβόλαια υποστήριξης και για το FreeBSD. Επίσης, κάθε ένα από τα BSD έχει μια λίστα με consultants που μπορείτε να προσλάβετε: για το FreeBSD, το NetBSD, και το OpenBSD.
diff --git a/el_GR.ISO8859-7/articles/formatting-media/article.sgml b/el_GR.ISO8859-7/articles/formatting-media/article.sgml index 0652c20c11..dc3eae9924 100644 --- a/el_GR.ISO8859-7/articles/formatting-media/article.sgml +++ b/el_GR.ISO8859-7/articles/formatting-media/article.sgml @@ -1,674 +1,675 @@ %articles.ent; ]>
Διαμόρφωση Αποθηκευτικών Μέσων για Χρήση με το FreeBSD Ένας σύντομος οδηγός Doug White
dwhite@resnet.uoregon.edu
Μάρτιος 1997 &tm-attrib.freebsd; &tm-attrib.iomega; &tm-attrib.opengroup; &tm-attrib.general; Το παρόν έγγραφο περιγράφει πώς να κόψετε σε τμήματα (slices), κομματιάσετε (partition) και μορφοποιήσετε (format/διαμόρφωση) σκληρούς δίσκους και παρόμοια μέσα που προορίζονται για χρήση με το FreeBSD. Τα παραδείγματα δοκιμάστηκαν στο FreeBSD 2.2 αλλά λογικά δουλεύουν και στις άλλες εκδόσεις. Το κείμενο έχει ενημερωθεί για την έκδοση 4 του FreeBSD.
Εισαγωγή και Ορισμοί Γενικά Το να προσθέτεις δίσκους με επιτυχία σε ένα υπάρχον σύστημα είναι χαρακτηριστικό ενός έμπειρου διαχειριστή συστήματος. Το κόψιμο, το κομμάτιασμα και η προσθήκη δίσκων απαιτεί ιδιαίτερη προσοχή και σωστή σύνταξη εντολών. Ένα πιθανό λάθος μπορεί να εξαφανίσει έναν ολόκληρο δίσκο σε δευτερόλεπτα. Αυτό το έγγραφο γράφτηκε ως προσπάθεια να απλοποιηθεί η διαδικασία και να αποφευχθούν ατυχήματα. Ευτυχώς, ανανεώσεις υπαρχόντων εργαλείων (κυρίως του sysinstall), στις πρόσφατες εκδόσεις του FreeBSD, έχουν βελτιώσει την διαδικασία. Υπάρχουν δύο πιθανοί τρόποι (modes) μορφοποίησης: συμβατή λειτουργία (compatibility mode): Διαμόρφωση του δίσκου ώστε να έχει ένα πίνακα τμήματων (slice table) και να μπορεί να χρησιμοποιηθεί παράλληλα από άλλα λειτουργικά συστήματα. αποκλειστική λειτουργία (dedicated mode), μερικές φορές λέγεται και επικίνδυνα αποκλειστική λειτουργία: Διαμόρφωση ενός δίσκου χωρίς πίνακα partitions. Αυτό κάνει την διαδικασία της πρόσθεσης δίσκου ευκολότερη αλλά ένα μη-FreeBSD λειτουργικό σύστημα πιθανόν να μη μπορεί να δει το δίσκο. Η έκφραση επικίνδυνα αναφέρεται στον κίνδυνο του ότι το σύστημα μπορεί να μην αναγνωρίσει έναν δίσκο μορφοποιημένο κατ' αυτόν τον τρόπο. Στις περισσότερες περιπτώσεις η αποκλειστική λειτουργία είναι ο ευκολότερος τρόπος να στηθεί και να χρησιμοποιηθεί σε υπάρχοντα συστήματα, εφόσον ένας καινούργιος δίσκος συνήθως προορίζεται μόνο για το FreeBSD. Παρόλο που η συμβατή λειτουργία διασφαλίζει μέγιστη διαλειτουργικότητα (interoperability) με μελλοντικές εγκαταστάσεις, είναι πιο πολύπλοκη. Πέρα από την επιλογή τρόπου λειτουργίας υπάρχουν δύο μέθοδοι στησίματος του δίσκου. Ο πρώτος χρησιμοποιεί το εργαλείο εγκατάστασης του συστήματος /stand/sysinstall. Από το 2.1.7-RELEASE και μετά η sysinstall απλοποιεί το στήσιμο των δίσκων επειδή επιτρέπει την απευθείας αλλαγή στο label (τίτλος) και στα τμήματα (partitions) των δίσκων. Επιπλέον σας επιτρέπει να αποθηκεύσετε τις αλλαγές μόνο στον συγκεκριμένο δίσκο χωρίς να επηρεάζει τους υπόλοιπους. Ο δεύτερος τρόπος είναι να εκτελέσετε διάφορες εντολές με το χέρι απο την γραμμή εντολών ως root. Αν επιλέξετε την αποκλειστική λειτουργία χρειάζετε να εκτελέσετε μόνο 2-3 εντολές ενώ με το sysinstall πρέπει δουλέψετε λιγάκι παραπάνω. Ορισμοί Η διαχείριση δίσκων στο &unix; έχει δώσει νέα έννοια σε υπάρχουσες λέξεις. Το παρακάτω λεξιλόγιο εξηγεί την ορολογία που χρησιμοποιούμε σε αυτό το κείμενο και στο FreeBSD γενικά (προφανώς). συμβατή λειτουργία (compatibility mode): η διαμόρφωση του δίσκου ώστε να έχει ένα πίνακα τμήματων (slice table) και να μπορεί να χρησιμοποιηθεί παράλληλα με άλλα λειτουργικά συστήματα. Αντίθετο της αποκλειστικής λειτουργίας. (επικίνδυνα) αποκλειστική λειτουργία: η διαμόρφωση του δίσκου κατά τέτοιον τρόπο ώστε να μην περιέχει πίνακα τμημάτων (slice table). Είναι πιο εύκολη διαδικασία αλλά ο δίσκος μπορεί να μη δουλεύει σε μη-FreeBSD λειτουργικά συστήματα. Αντίθετο της συμβατής λειτουργίας. δίσκος: Οι σκληροί δίσκοι, τα CDROM, οι μαγνητο-οπτικές συσκευές και τα αφαιρούμενα μέσα &iomegazip;/&jaz; είναι μερικές από τις συσκευές μαζικής αποθήκευσης δεδομένων που χρησιμοποιούνται σήμερα. Η βασική αρχή λειτουργίας αυτών των μέσων αποθήκευσης ένας ή περισσότεροι δίσκοι οι οποίοι περιστρέφονται από ένα μοτέρ, ενώ μια κεφαλή κινείται σε ένα μονοπάτι πάνω στην ακτίνα του δίσκου και διαβάζει από το δίσκο ή γράφει δεδομένα σε αυτόν. Το γράψιμο γίνεται με μεταβολή κάποιου φυσικού χαρακτηριστικού του δίσκου (μαγνητική ροή, ανακλαστικότητα, κλπ.) ενώ το διάβασμα γίνεται με ανίχνευση αλλαγών στην ίδια φυσική ιδιότητα του δίσκου. τμήμα (slice): Μία υποδιαίρεση ενός δίσκου. Σύμφωνα με τα πρότυπα των PC μπορούν να υπάρχουν μέχρι 4 τμήματα σε έναν δίσκο. Τα τμήματα αποτελούνται απο συνεχόμενους τομείς (sectors). Υπάρχει ένας πίνακας τμημάτων (slice table) που περιέχει πληροφορίες για τα τμήματα και χρησιμοποιείται από το BIOS για να βρεί από πού μπορεί να ξεκινήσει το σύστημα. Ο πίνακας τμημάτων λέγεται και πίνακας κομματιών (partition table) σε ορολογία DOS που φτιάχνεται απο το πρόγραμμα fdisk. κομμάτι (partition): Μία υποδιαίρεση ενός τμήματος. Συνήθως χρησιμοποιείται για αναφορά στις υποδιαιρέσεις των τμημάτων (slices) του δίσκου στο FreeBSD. Κάθε σύστημα αρχείων (filesystem) ή δευτερεύουσας μνήμης (swap area) στον δίσκο βρίσκεται σε ένα κομμάτι. Τα κομμάτια φτιάχνονται με το εργαλείο disklabel. τομέας (sector): Η μικρότερη υποδιαίρεση ενός δίσκου. Συνήθως έχει μέγεθος 512 bytes. Σημεία που πρέπει να προσέξετε και παγίδες Δώστε μεγάλη προσοχή στη διαδικασία, αν δεν λάβετε τα μέτρα σας και γίνει λάθος μπορεί να καταστρέψετε τα περιεχόμενα άλλων δίσκων του συστήματος. Προσέξτε τι κάνετε. Είναι πολύ εύκολο να καταστρέψετε λάθος δίσκο δουλεύοντας με αυτές τις εντολές. Αν έχετε αμφιβολίες ελέγξτε τα μηνύματα του πυρήνα κατά τη διαδικασία εκκίνησης για να βρείτε τη σωστή συσκευή δίσκου. Φυσικά δεν έχουμε καμία ευθύνη για ζημιές που μπορεί να προκληθούν. Η ευθύνη είναι δική σας! Zip, Jazz, και άλλα αφαιρούμενα μέσα Οι αφαιρούμενοι δίσκοι μπορούν να διαμορφωθούν σαν κανονικοί δίσκοι. Το σημαντικό είναι να είναι συνδεμένος ο οδηγός του δίσκου κατά την εκκίνηση του συστήματος και με δισκέτα μέσα ώστε να μπορέσει ο πυρήνας να δεί σωστά την γεωμετρία του δίσκου. Κοιτάξτε τι λέει η εντολή dmesg για να δείτε αν η συσκευή είναι στην λίστα. Για παράδειγμα αν ο πυρήνας γράψει: Can't get the size τότε δεν υπάρχει δισκέτα στον οδηγό. Αν γίνει αυτό θα πρέπει να επανεκκινήσετε το μηχάνημα πριν δοκιμάσετε να διαμορφώσετε την δισκέτα. Διαμορφώνοντας δίσκους για αποκλειστική λειτουργία Εισαγωγή Αυτή η παράγραφος περιγράφει πώς να φτιάξετε δίσκους μόνο για το FreeBSD. Θυμηθείτε ότι οι δίσκοι αποκλειστικής λειτουργίας δεν μπορούν να διαβαστούν από άλλα λειτουργικά, ούτε να κάνουν boot. Πώς να φτιάξετε δίσκους αποκλειστικής λειτουργίας με το Sysinstall To /stand/sysinstall, το πρόγραμμα εγκατάστασης του συστήματος, έχει επεκταθεί στις τελευταίες του εκδόσεις ώστε να απλοποιεί την διαδικασία χωρισμού των δίσκων και να απαιτεί λιγότερη προσπάθεια. Τα προγράμματα fdisk και disklabel που υπάρχουν στο sysinstall είναι γραφικού περιβάλοντος (GUI - Graphical User Interface) και μειώνουν το μπέρδεμα του κοψίματος των δίσκων. Είναι προφανώς ο ευκολότερος τρόπος να κόψετε δίσκους από την έκδοση 2.1.7 και μετά του FreeBSD. Ξεκινήστε το sysinstall ώς root γράφοντας &prompt.root; /stand/sysinstall στην γραμμή εντολών. Επιλέξτε Index. Επιλέξτε Partition. Επιλέξτε το δίσκο που θέλετε να εγκαταστήσετε χρησιμοποιώντας τα βελάκια και μετά SPACE. Αν θα χρησιμοποιήσετε όλο το δίσκο για το FreeBSD, επιλέξτε A. Μόλις σας ρωτήσει αν όντως θέλετε να το κάνετε αυτό (Do you still want to do this) απαντήστε Yes. Επιλέξτε Write. Θα σας βγάλει μια προειδοποίηση σχετικά με την εγγραφή σε υπάρχοντα συστήματα απαντήστε Yes. Μόλις σας ρωτήσει αν θέλετε να εγκαταστήσετε ένα boot loader, επιλέξτε None για να αποφύγετε οποιαδήποτε αλλαγή στο Master Boot Record. Η εγκατάσταση ενός boot loader χρειάζεται μόνο σε καινούριες εγκαταστάσεις του &os; ή αν σχεδιάζετε να τοποθετήσετε το δίσκο σε κάποιο άλλο μηχάνημα. Πατήστε ENTER στο ενημερωτικό μήνυμα που λέει Wrote FDISK partition information out successfully. Επιλέξτε Quit για να βγείτε από το FDISK Editor και μετά ESCAPE για να επιστρέψετε στο Index menu. Επιλέξτε Label από το Index menu. Ονομάστε το δίσκο σας όπως θέλετε (εδώ ορίζετε τα partitions). Αν θέλετε μόνο ένα partition πατήστε το C για να δημιουργήσετε το partition. Μετά απλώς δεχθείτε τις προεπιλογές για τα προκαθορισμένα size, partition type Filesystem, και mountpoint (το οποίο δεν χρησιμοποιείται). Πατήστε W μόλις τελειώσετε και επικυρώστε τις αλλαγές για να συνεχίσετε. Το filesystem θα περαστεί αυτόματα από την εντολή newfs εκτός αν επιλέξετε το αντίθετο. (Αν βάζετε καινούργιο partition σας συμφέρει να το κάνετε!). Θα σας δώσει το λάθος: Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory Αγνοήστε το. Πατήστε συνεχόμενα το ESCAPE για να βγείτε. Πως να φτιάξετε δίσκους αποκλειστικής λειτουργίας μέσα από την γραμμή εντολών Εκτελέστε τις παρακάτω εντολές αντικαθιστώντας το ad2 με το όνομα της συσκευής του δίσκου (γράψτε dmesg να ελέγξετε αν είναι σωστό). &prompt.root; dd if=/dev/zero of=/dev/ad2 count=2 &prompt.root; disklabel /dev/ad2 | disklabel -B -R -r ad2 /dev/stdin Θέλουμε μόνο ένα partition, οπότε μπορούμε να χρησιμοποιήσουμε το κομμάτι 'c': &prompt.root; newfs /dev/ad2c Αν χρειάζεται να αλλάξετε το disklabel για να χρησιμοποιήσετε πολλαπλά partitions (για παράδειγμα αν θέλετε swap) τότε κάντε: &prompt.root; dd if=/dev/zero of=/dev/ad2 count=2 &prompt.root; disklabel /dev/ad2 > /tmp/label Ανοίξτε το disklabel για να προσθέσετε partitions: &prompt.root; vi /tmp/label &prompt.root; disklabel -B -R -r ad2 /tmp/label εκτελέστε την εντολή newfs στα partitions όπως πρέπει Ο δίσκος σας είναι έτοιμος προς χρήση. Διαμορφώνοντας δίσκους για συμβατή λειτουργία Εισαγωγή Η γραμμή εντολών είναι μεν ο ευκολότερος τρόπος για να φτιάξετε δίσκους αποκλειστικής λειτουργίας αλλά είναι και ο δυσκολότερος για να φτιάξετε συμβατούς δίσκους. Το fdisk από την γραμμή εντολών θέλει περισσότερες γνώσεις μαθηματικών και πολλές γνώσεις σχετικά με τον πίνακα κομματιών, κάτι που προφανώς δεν χρειάζεται να μάθετε. Γι αυτό χρησιμοποιήστε το sysinstall για να φτιάξετε συμβατούς δίσκους ακολουθώντας τις οδηγίες παρακάτω. Πώς να φτιάξετε δίσκους συμβατής λειτουργίας με το Sysinstall Ξεκινήστε το sysinstall ώς root γράφοντας &prompt.root; /stand/sysinstall στην γραμμή εντολών. Επιλέξτε Index. Επιλέξτε Partition. Επιλέξτε το δίσκο που θέλετε να εγκαταστήσετε χρησιμοποιώντας τα βελάκια και μετά SPACE. Αν θα χρησιμοποιήσετε όλο τον δίσκο για το FreeBSD, επιλέξτε A. Όταν σας ζητηθεί: Do you want to do this with a true partition entry so as to remain cooperative with any future possible operating systems on the drive(s)? (Θέλετε να το κάνετε αυτό με πραγματικά κομμάτια για να παραμείνει συμβατός με άλλα λειτουργικά συστήματα?) Απαντήστε Yes. Επιλέξτε Write. Όταν σας ζητηθεί να εγκαταστήσετε τον boot manager, επιλέξτε None με το SPACE και μετά ENTER για OK. Quit (βγείτε) από το FDISK Editor. Θα σας ρωτήσει κάτι σχετικό με τον boot manager πάλι, επιλέξτε None ξανά. Επιλέξτε Label απο το Index menu. Ονομάστε το δίσκο όπως θέλετε (εδώ θα ορίσετε τα partitions). Aν θέλετε μόνο ένα partition απλώς δεχθείτε τις προεπιλογές για τα προκαθορισμένα size, partition type filesystem, και mountpoint (το οποίο δεν χρησιμοποιείται). Το filesystem θα περαστεί αυτόματα από την εντολή newfs εκτός αν επιλέξετε το αντίθετο. Αν βάζετε καινούργιο partition σας συμφέρει να το κάνετε! Θα σας δώσει το λάθος: Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory Αγνοήστε το. Πατήστε συνεχόμενα το ESCAPE για να βγείτε. Ο δίσκος σας είναι έτοιμος προς χρήση. Άλλες λειτουργίες με τους δίσκους Προσθέτοντας swap. Καθώς ένα σύστημα επεκτείνεται, η ανάγκη για μεγαλύτερο swap γίνεται όλο και πιο επιτακτική. Παρόλο που το να προστεθεί swap σε έναν υπάρχοντα δίσκο είναι τρομερά δύσκολο, ένας καινούργιος δίσκος μπορεί να μορφοποιηθεί έτσι ώστε να περιέχει το επιπλέον swap που σας λείπει. Για να προσθέσετε swap καθώς βάζετε ένα δίσκο στο σύστημα: Καθώς κόβετε το δίσκο (partitioning) αλλάξτε το disklabel και ορίστε χώρο για swap στο κομμάτι (partition) `b' και βάλτε τον υπόλοιπο χώρο σε κάποιο άλλο κομμάτι, π.χ. στο `a' ή στο `e'. Το μέγεθος που δίνετε είναι σε blocks των 512 bytes. Όταν κάνετε newfs στον δίσκο, ΜΗΝ το κάνετε στο κομμάτι `c'. Αντίθετα, κάντε το μόνο στο κομμάτι που δεν είναι swap. Προσθέστε στο /etc/fstab το παρακάτω: /dev/ad0b none swap sw 0 0 Αλλάξτε το /dev/ad0b στο όνομα της καινούργιας σας συσκευής. Για να ενεργοποιήσετε άμεσα το νέο swap χρησιμοποιήστε την εντολή swapon &prompt.root; swapon /dev/da0b swapon: added /dev/da0b as swap space Αντιγράφοντας τα περιεχόμενα δίσκων Από τον: Renaud Waldura (renaud@softway.com) Για να μετακινήσετε αρχεία από τον αρχικό σας δίσκο σε έναν καινούργιο, κάντε: &prompt.root; mount /dev/ad2 /mnt &prompt.root; pax -r -w -p e /usr/home /mnt &prompt.root; umount /mnt &prompt.root; rm -rf /usr/home/* &prompt.root; mount /dev/ad2 /usr/home Φτιάξτε ενωμένους δίσκους με το CCD Απο τον: Stan Brown (stanb@awod.com) Με το Concatenated Disk Driver, ή αλλιώς CCD, μπορείτε να έχετε πολλούς όμοιους δίσκους αλλά να συμπεριφέρονται ως ένας. Η διαδικασία λέγεται συγχώνευση (striping). Με την επικόλληση έχετε καλύτερα αποτελέσματα στην ταχύτητα επειδή μοιράζονται οι εγγραφές και οι αναγνώσεις στους δίσκους. Διαβάστε τις manual pages &man.ccd.4; και &man.ccdconfig.8; ή την αρχική σελίδα του CCD για περισσότερες λεπτομέρειες. Για να τρέξετε CCD πλέον δεν χρειάζεστε ειδικό πυρήνα. Με την εντολή ccdconfig, φορτώνεται το κατάλληλο KLD αυτόματα αν ο πυρήνας δεν έχει ήδη υποστήριξη για CCD. Τα CCD φτιάχνονται σε partitions τύπου 4.2BSD. Αν θέλετε να χρησιμοποιήσετε όλο τον δίσκο και πάλι πρέπει να φτιάξετε ένα νέο partition. Για παράδειγμα, η εντολή disklabel -e μπορεί να δείξει: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Δεν μπορείτε να χρησιμοποιήσετε το partition c για CCD, εφόσον είναι τύπου unused. Αντίθετα δημιουργήστε ένα νέο partition ακριβώς ίδιου μεγέθους αλλά τύπου 4.2BSD: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Για να δημιουργήσετε ένα νέο CCD, εκτελέστε τις παρακάτω εντολές. Περιγράφουν πώς να προσθέσετε τρείς δίσκους. Απλώς αλλάξτε τις συσκευές όπου χρειάζεται. Θυμηθείτε ότι οι δίσκοι πρέπει να είναι όμοιοι. &prompt.root; cd /dev ; sh MAKEDEV ccd0 &prompt.root; disklabel -r -w da0 auto &prompt.root; disklabel -r -w da1 auto &prompt.root; disklabel -r -w da2 auto &prompt.root; disklabel -e da0 Προσθέστε το partition e τύπου 4.2BSD &prompt.root; disklabel -e da1 Προσθέστε το partition e τύπου 4.2BSD &prompt.root; disklabel -e da2 Προσθέστε το partition e τύπου 4.2BSD &prompt.root; ccdconfig ccd0 273 0 /dev/da0e /dev/da1e /dev/da2e &prompt.root; newfs /dev/ccd0c Η τιμή 273 είναι το μέγεθος του stripe. Είναι ο αριθμός των sectors (512 bytes ο καθένας) σε κάθε block δεδομένων του CCD. Θα πρέπει να είναι τουλάχιστον 128 kB, και δεν πρέπει να είναι δύναμη του 2. Τώρα μπορείτε να κάνετε mount και να χρησιμοποιήσετε το CCD σας μέσω της συσκευής /dev/ccd0c. Ένα πιό δυνατό και ευέλικτο εναλλακτικό του CCD είναι το Vinum. Περισσότερες πληροφορίες στο Vinum Project home page. Ευχαριστίες Ο συγγραφέας θα ήθελε να ευχαριστήσει τους παρακάτω για την συνεισφορά τους σε αυτή την εργασία τους: Darryl Okahata (darrylo@hpnmhjw.sr.hp.com) για τις απλές οδηγίες εγκατάστασης ενός δίσκου σε αποκλειστικό τρόπο λειτουργίας, τις οποίες έχω πολλές φορές χρησιμοποιήσει στην FreeBSD-questions. &a.jkh; που έκανε το sysinstall χρήσιμο για τέτοιου είδους δουλειές. John Fieber (jfieber@indiana.edu) που έδωσε τις πληροφορίες και τα παραδείγματα για το DocBook DTD πάνω στα οποία αυτό το κείμενο βασίζεται. &a.grog; που έλεγξε την δουλειά μου, ψάχνοντας για ανακρίβειες, και για την υποστήριξη του σε διάφορα θέματα.
diff --git a/el_GR.ISO8859-7/articles/freebsd-questions/article.sgml b/el_GR.ISO8859-7/articles/freebsd-questions/article.sgml index a2d0eade97..f3d79df785 100644 --- a/el_GR.ISO8859-7/articles/freebsd-questions/article.sgml +++ b/el_GR.ISO8859-7/articles/freebsd-questions/article.sgml @@ -1,691 +1,692 @@ %articles.ent; ]>
Πως να χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου FreeBSD-questions Greg Lehey
grog@FreeBSD.org
$FreeBSD$ &tm-attrib.freebsd; &tm-attrib.microsoft; &tm-attrib.netscape; &tm-attrib.opengroup; &tm-attrib.qualcomm; &tm-attrib.general; Αυτό το κείμενο παρέχει χρήσιμες πληροφορίες για όσους προσπαθούν να προετοιμάσουν ένα γράμμα για την λίστα ταχυδρομείου FreeBSD-questions. Δίνονται συμβουλές και οδηγίες που θα μεγιστοποιήσουν την πιθανότητα ο αναγνώστης να πάρει χρήσιμες απαντήσεις. Αυτό το κείμενο (ΣΤΜ: η αγγλική έκδοση) στέλνεται τακτικά στην ίδια τη λίστα FreeBSD-questions.
Εισαγωγή Η FreeBSD-questions είναι μια ταχυδρομική λίστα που συντηρείται από την ομάδα ανάπτυξης του FreeBSD για να βρίσκουν σε αυτή βοήθεια όσοι έχουν απορίες σχετικά με την χρήση του FreeBSD. Μια άλλη λίστα, η FreeBSD-hackers, είναι για πιο προχωρημένες ερωτήσεις, όπως για παράδειγμα συζητήσεις για μελλοντικές εργασίες ανάπτυξης. Ο όρος hacker δεν έχει καμία απολύτως σχέση με την εισβολή στους υπολογιστές άλλων ανθρώπων. Ο σωστός όρος για τέτοιου είδους ενέργειες είναι cracker, αλλά τα δημοφιλή μέσα ενημέρωσης δεν το έχουν ανακαλύψει ακόμα. Οι FreeBSD hackers δεν εγκρίνουν την παραβίαση της ασφάλειας των υπολογιστών (cracking), και δεν έχουν καμία σχέση με τέτοιου είδους ενέργειες. Για να πιο λεπτομερή περιγραφή των hackers, δείτε το How to Become A Hacker του Eric Raymond. Αυτό είναι ένα τακτικό μήνυμα του οποίου σκοπός είναι να βοηθήσει τόσο αυτούς που αναζητούν βοήθεια από την FreeBSD-questions (τους καινούριους) όσο και αυτούς που απαντάνε τις ερωτήσεις (τους hackers). Αναπόφευκτα υπάρχει μια κόντρα, που οφείλεται στην διαφορετική οπτική γωνία που έχει η κάθε ομάδα. Οι καινούριοι κατηγορούν τους hackers ότι είναι εγωιστές, κολλημένοι, και ότι δεν βοηθάνε, ενώ οι hackers κατηγορούν τους καινούριους ότι είναι χαζοί, ανίκανοι να διαβάσουν απλά Αγγλικά, κι ότι περιμένουν τα πάντα να τους δίνονται σε ένα ασημένιο δίσκο. Γεγονός είναι, βέβαια, ότι μια δόση αλήθειας υπάρχει και στις δυο αυτές απόψεις, αλλά κατά κύριο λόγο αυτές οι απόψεις οφείλονται σε αισθήματα οργής. Με αυτό το κείμενο, θα ήθελα να κάνω κάτι να απαλύνω κάπως αυτή την οργή, και να βοηθήσω όσο μπορώ όλους να χρησιμοποιούν με τα καλύτερα δυνατά αποτελέσματα τη λίστα FreeBSD-questions. Παρακάτω περιγράφω πως να στείλει κάποιος μια ερώτηση. Μετά θα δούμε και τρόπους για να δίνονται απαντήσεις. Πως να γραφτείτε στην FreeBSD-questions Η FreeBSD-questions είναι μια λίστα ηλεκτρονικού ταχυδρομείου, οπότε χρειάζεστε πρόσβαση σε κάποια υπηρεσία ηλεκτρονικού ταχυδρομείου. Για να γραφτείτε στη λίστα, επισκεφθείτε με το φυλλομετρητή σας τη Σελίδα Πληροφοριών της FreeBSD-question. Στο τμήμα Subscribing to freebsd-questions συμπληρώστε το πεδίο Your email address κι όποια άλλα προαιρετικά πεδία θέλετε. Τα πεδία κωδικού παρέχουν μέτρια ασφάλεια, αλλά οι κωδικόί αυτός θα εμποδίσουν τον περισσότερο κόσμο από το να κάνει αλλαγές στη συνδρομή σας. Μη χρησιμοποιήσετε όμως κάποιο πολύτιμο κωδικό σε αυτό το πεδίο, γιατί θα σας έρχεται περιοδικά μια υπενθύμιση του κωδικού σε ένα απλό, μη κρυπτογραφημένο μήνυμα ηλεκτρονικού ταχυδρομείου. Λίγο μετά θα λάβετε ένα μήνυμα επιβεβαίωσης της εγγραφής από το mailman. Ακολουθήστε τις οδηγίες του μηνύματος για να ενεργοποιηθεί η συνδρομή σας. Τέλος, μόλις λάβετε το μήνυμα καλωσορίσματος από το mailman, που περιγράφει τη λίστα και τον κωδικό της συνδρομής σας, κρατήστε ένα αντίγραφο. Αν θελήσετε ποτέ να ακυρώσετε την εγγραφή σας στη λίστα, θα χρειαστείτε τις πληροφορίες του μηνύματος. Δείτε και τις επόμενες παραγράφους για περισσότερες λεπτομέρειες. Πως να διαγραφείτε από την FreeBSD-questions Όταν γραφτήκατε στην FreeBSD-questions, πήρατε ένα μήνυμα καλωσορίσματος από το mailman. Σε αυτό το μήνυμα, ανάμεσα σε άλλα πράγματα, εξηγεί και πως μπορείτε να διαγραφείτε από τη λίστα. Ορίστε ένα τυπικό μήνυμα: Welcome to the freebsd-questions@freebsd.org mailing list! To post to this list, send your email to: freebsd-questions@freebsd.org General information about the mailing list is at: http://lists.freebsd.org/mailman/listinfo/freebsd-questions If you ever want to unsubscribe or change your options (eg, switch to or from digest mode, change your password, etc.), visit your subscription page at: http://lists.freebsd.org/mailman/options/freebsd-questions/grog%40lemsi.de You can also make such adjustments via email by sending a message to: freebsd-questions-request@freebsd.org with the word `help' in the subject or body (don't include the quotes), and you will get back a message with instructions. You must know your password to change your options (including changing the password, itself) or to unsubscribe. It is: 12345 Normally, Mailman will remind you of your freebsd.org mailing list passwords once every month, although you can disable this if you prefer. This reminder will also include instructions on how to unsubscribe or change your account options. There is also a button on your options page that will email your current password to you. Χρησιμοποιώντας τη διεύθυνση URL που περιέχει το μήνυμα καλωσορίσματος που λάβατε (με τίτλο Welcome) μπορείτε να επισκεφθείτε τη Σελίδα προσωπικών ρυθμίσεων και να αιτηθείτε τη διαγραφή σας (Unsubscribe) από τη λίστα FreeBSD-questions. Μόλις ζητήσετε τη διαγραφή σας το mailman θα σας στείλει ένα μήνυμα επιβεβαίωσης της διαγραφής. Ακολουθήστε τις οδηγίες του μηνύματος για να ολοκληρώσετε τη διαδικασία διαγραφής. Αν τα έχετε κάνει όλα αυτά και ακόμα δεν μπορείτε να καταλάβετε τι συμβαίνει, στείλτε ένα μήνυμα στη διεύθυνση Postmaster@FreeBSD.org, και αυτός θα σας βοηθήσει να βρείτε μια άκρη. Μην στείλετε κάποιο μήνυμα στην FreeBSD-questions: δεν μπορούν να σας βοηθήσουν. Που να στείλω την ερώτησή μου; Στην <literal>-questions</literal> ή στην <literal>-hackers</literal>; Δύο είναι οι λίστες που μπορεί κάποιος να κάνει ερωτήσεις γενικού περιεχομένου σχετικά με το FreeBSD, η FreeBSD-questions και η FreeBSD-hackers. Σε κάποιες περιπτώσεις, δεν είναι απολύτως ξεκάθαρο σε ποια λίστα πρέπει να ρωτήσετε. Τα παρακάτω κριτήρια θα σας βοηθήσουν να αποφασίσετε στο 99% των περιπτώσεων, όμως: Αν η ερώτηση είναι γενικού περιεχομένου, ρωτήστε στην FreeBSD-questions. Παραδείγματα μπορεί να είναι ερωτήσεις σχετικά με την εγκατάσταση του FreeBSD ή την χρήση ενός συγκεκριμένου &unix; εργαλείου. Αν νομίζετε ότι η ερώτηση έχει σχέση με κάποιο bug, αλλά δεν είστε σίγουροι, ή δεν ξέρετε πως να το ψάξετε περισσότερο, στείλτε το μήνυμα στην FreeBSD-questions. Αν η ερώτηση έχει σχέση με κάποιο bug, και είστε σίγουροι ότι είναι bug (για παράδειγμα, μπορείτε να δείξετε το μέρος στον πηγαίο κώδικα που εμφανίζεται, ή ίσως έχετε και κάποια διόρθωση έτοιμη), τότε στείλτε το μήνυμά σας στην FreeBSD-hackers. Αν η ερώτηση έχει σχέση με βελτιώσεις στο FreeBSD, και μπορείτε να κάνετε προτάσεις σχετικά με την υλοποίησή τους, στείλτε το μήνυμα στην FreeBSD-hackers. Υπάρχουν επίσης κι άλλες λίστες ηλεκτρονικού ταχυδρομείου, για παράδειγμα η FreeBSD-isp, η οποία ασχολείται με τα ενδιαφέροντα των ISP (Παροχείς Υπηρεσιών Internet—Internet Service Providers) που τρέχουν FreeBSD. Αν τυχαίνει να παρέχετε υπηρεσίες Internet, αυτό δεν σημαίνει πως αυτόματα πρέπει να στέλνετε όλες σας τις ερωτήσεις στην FreeBSD-isp. Τα κριτήρια που αναφέραμε παραπάνω πάλι ισχύουν, και μάλλον σας συμφέρει να τα χρησιμοποιήσετε, αφού έτσι είναι πιο πιθανόν να πάρετε καλύτερα αποτελέσματα. Πριν στείλετε μια ερώτηση Μπορείτε (και πρέπει) να κάνετε κάποια πράγματα από μόνοι σας πριν στείλετε μια ερώτηση σε κάποια από τις λίστες ηλεκτρονικού ταχυδρομείου. Προσπαθείστε να λύσετε το πρόβλημα μόνοι σας. Αν στείλετε μια ερώτηση η οποία δείχνει ότι έχετε προσπαθήσει ήδη να λύσετε το πρόβλημα, είναι σχεδόν σίγουρο ότι η ερώτησή σας θα κινήσει το ενδιαφέρον περισσότερο ενδιαφέρον. Η προσπάθεια να λύσετε το πρόβλημα μόνοι σας έχει κι άλλα καλά αποτελέσματα: θα βελτιώσει την κατανόηση που έχετε για τον τρόπο που δουλεύει το FreeBSD, οπότε ύστερα θα μπορείτε ακόμη και να χρησιμοποιήσετε τη γνώση που αποκτήσατε για να βοηθήσετε άλλους, απαντώντας τις ερωτήσεις τους σε κάποια από τις λίστες. Διαβάστε τα manual pages, και την τεκμηρίωση του FreeBSD (είτε το αντίγραφο που διανέμεται μαζί με τις εκδόσεις του FreeBSD κι εγκαθίσταται στον κατάλογο /usr/doc ή μέσω WWW στη διεύθυνση ), ειδικά το Εγχειρίδιο του &os; και τη λίστα συχνών ερωτήσεων. Περιηγηθείτε ή αναζητήστε σχετικά θέματα στα αρχεία της λίστας, για να δείτε αν η ερώτησή σας ή κάποια παρόμοια έχει ήδη εμφανιστεί ή έχει απαντηθεί στο παρελθόν. Μπορείτε να βρείτε τα αρχεία της λίστας στη διεύθυνση και να αναζητήσετε παλιά θέματα στη διεύθυνση . Τέτοιες αναζητήσεις μπορούν να γίνουν και σε άλλους εξυπηρετητές που έχουν το αρχείο της λίστας, π.χ. στη διεύθυνση . Χρησιμοποιήστε μια μηχανή αναζήτησης, όπως το Google ή το Yahoo για να βρείτε απαντήσεις στις ερωτήσεις σας. Το Google έχει ακόμα και ειδικό τμήμα για τα BSD λειτουργικά συστήματα. Πως να στείλετε μια ερώτηση Όταν στέλνετε μια ερώτηση στην FreeBSD-questions, σκεφτείτε πρώτα τα παρακάτω πράγματα: Να θυμάστε πως κανείς δεν πληρώνεται για να απαντήσει μια ερώτηση στην FreeBSD-questions. Απαντούν επειδή οι ίδιοι θέλουν να απαντήσουν. Μπορείτε να επηρεάσετε την θέληση κάποιου να απαντήσει θετικά στέλνοντας μια προσεγμένη ερώτηση και δίνοντας όσο το δυνατόν περισσότερες σχετικές πληροφορίες. Μπορεί να επηρεάσετε αρνητικά την θέληση κάποιου να απαντήσει, στέλνοντας μια ατελή, δύσκολη να διαβαστεί, ή αγενή ερώτηση. Είναι επίσης πολύ πιθανόν να στείλετε ένα μήνυμα στην FreeBSD-questions και να μην πάρετε απάντηση, ακόμα και αν ακολουθήσετε αυτούς τους κανόνες. Είναι όμως ακόμα περισσότερο πιθανό να μην πάρετε μια απάντηση, αν δεν τους ακολουθήσετε. Στο υπόλοιπο αυτού του κειμένου θα δούμε πως θα έχετε τα καλύτερα δυνατά αποτελέσματα από την FreeBSD-questions. Δεν διαβάζουν όλα τα μηνύματα όσοι απαντούν στην FreeBSD-questions: κοιτάζουν την γραμμή θέματος (subject) και αποφασίζουν αν τους ενδιαφέρει ή όχι. Προφανώς, σας συμφέρει να έχετε ορίσει ένα θέμα. Θέματα όμως όπως FreeBSD problem ή Help δεν είναι αρκετά. Αν δεν έχετε βάλει κανένα θέμα, πολλοί ούτε καν που θα κάτσουν να διαβάσουν το μήνυμα. Αν το θέμα είναι κάπως ασαφές και δεν αναφέρει ακριβώς το πρόβλημα, άνθρωποι που μπορούν να απαντήσουν ίσως να μην το διαβάσουν καν. Διαμορφώστε το γράμμα σας ώστε να διαβάζεται εύκολα, και ΜΗΝ ΦΩΝΑΖΕΤΕ ΣΑΣ ΠΑΡΑΚΑΛΩ!!!!! Καταλαβαίνουμε ότι πολύς κόσμος δεν έχει για μητρική του γλώσσα τα Αγγλικά, και προσπαθούμε να είμαστε αρκετά ανεκτικοί σε αυτό το θέμα, αλλά είναι πραγματικά ενοχλητικό να προσπαθεί κανείς να διαβάσει ένα μήνυμα γεμάτο ορθογραφικά λάθη ή όταν είναι όλο γραμμένο σε μια γραμμή. Μην υποτιμάτε την επίδραση που ένα κακογραμμένο μήνυμα μπορεί να έχει, κι αυτό όχι μόνο στην FreeBSD-questions λίστα. Το μήνυμα σας είναι αυτό που θα δουν οι άλλοι, κι αν είναι κακογραμμένο, με το κείμενο ολόκληρων παραγράφων σε μια γραμμή, ή γεμάτο λάθη, θα δώσει άσχημη εντύπωση στους άλλους για σας. Πάρα πολλά κακογραμμένα μηνύματα οφείλονται σε ελλατωματικά ή κακορυθμισμένα προγράμματα ηλεκτρονικής αλληλογραφίας. Τα παρακάτω προγράμματα είναι γνωστό ότι στέλνουν κακογραμμένα μηνύματα χωρίς εσείς να το ξέρετε πως κάτι τέτοιο γίνεται: cc:Mail &eudora; exmh µsoft; Exchange µsoft; Internet Mail µsoft; &outlook; &netscape; Όπως βλέπετε, τα προγράμματα ηλεκτρονικής αλληλογραφίας στον κόσμο της Microsoft είναι αρκετά συχνά στη λίστα. Όταν είναι δυνατόν, χρησιμοποιήστε ένα πρόγραμμα ηλεκτρονικής αλληλογραφίας που τρέχει σε &unix;. Αν είστε υποχρεωμένοι να χρησιμοποιήσετε κάποιο πρόγραμμα ηλεκτρονικής αλληλογραφίας σε Microsoft περιβάλλον, τότε σιγουρευτείτε ότι το έχετε ρυθμίσει σωστά. Προσπαθήστε να μην χρησιμοποιείτε MIME: πολλοί χρησιμοποιούν προγράμματα να διαβάσουν την αλληλογραφία τους που δεν τα πάνε καλά με το MIME. Σιγουρευτείτε ότι η ώρα και η ζώνη ώρας είναι σωστά ρυθμισμένες στο σύστημά σας. Αυτό μπορεί να φαίνεται λίγο χαζό, αφού το μήνυμά σας έτσι κι αλλιώς θα φτάσει, αλλά πολλοί από τους ανθρώπους που προσπαθείτε να επικοινωνήσετε μαζί τους παίρνουν αρκετές εκατοντάδες μηνύματα κάθε μέρα. Πολλές φορές ταξινομούν τα εισερχόμενα μηνύματά τους ανάλογα με το θέμα και την ημερομηνία, και αν το μήνυμά σας δεν φτάσει πριν την πρώτη απάντηση, μπορεί να θεωρήσουν ότι δεν το πήραν καν και να μην ασχοληθούν παραπάνω. Μην συμπεριλαμβάνετε άσχετες ερωτήσεις στο ίδιο μήνυμα. Πρώτα από όλα, ένα τεράστιο μήνυμα μπορεί να φοβίσει τον κόσμο και να μην ασχοληθούν, και δεύτερον, είναι δύσκολο να πετύχετε να διαβάσουν όλες τις ερωτήσεις όλοι όσοι μπορούν να απαντήσουν. Δώστε όσο περισσότερες πληροφορίες γίνεται. Αυτό είναι μια κάπως περίεργη απαίτηση, και πρέπει να αναλύσουμε κάπως τι πληροφορίες χρειάζεται να στείλετε, αλλά για αρχή ας πούμε τα εξής: Σχεδόν σε κάθε περίπτωση, είναι σημαντικό να ξέρει κανείς ποια έκδοση του FreeBSD τρέχετε. Ειδικά με το FreeBSD-CURRENT, θα πρέπει να πείτε ακόμα και ποια είναι η ημερομηνία του πηγαίου κώδικα. Όπως και νά 'χει, δεν πρέπει να στέλνετε όμως ερωτήσεις για το -CURRENT στην FreeBSD-questions. Για οποιοδήποτε πρόβλημα μπορεί να έχει σχέση με το υλικό του υπολογιστή σας (hardware), πείτε μας και για το υλικό που έχει ο υπολογιστής. Αν έχετε αμφιβολίες, υποθέστε ότι μάλλον έχει σχέση με το υλικό. Τι είδος CPU χρησιμοποιείτε; Πόσο γρήγορη; Τι μητρική; Πόσο μνήμη; Τι περιφερειακά; Γενικά πρέπει να χρησιμοποιήσετε και την κρίση σας εδώ, αλλά συνήθως η έξοδος της εντολής &man.dmesg.8; μπορεί να αποδειχθεί χρήσιμη, αφού μας λέει όχι μόνο τι υλικό χρησιμοποιείτε, αλλά και ποια έκδοση του FreeBSD τρέχετε. Αν βλέπετε κάποια μηνύματα λάθους, μην γράφετε Βλέπω κάποια μηνύματα λάθους, αλλά γράψτε (για παράδειγμα) Βλέπω το μήνυμα λάθους 'No route to host'. Αν το σύστημα κάνει panic, μην πείτε Το σύστημά μου έκανε panic, αλλά (για παράδειγμα) το σύστημά μου έκανε panic με το μήνυμα 'free vnode isn't'. Αν έχετε κάποια δυσκολία με την εγκατάσταση του FreeBSD, πείτε μας σίγουρα τι υλικό έχετε. Πιο συγκεκριμένα, είναι σημαντικό να ξέρουμε τα IRQ και τις διευθύνσεις I/O για όλες τις κάρτες που έχετε εγκατεστημένες στο μηχάνημά σας. Αν έχετε κάποιο πρόβλημα με το να καταφέρετε το PPP να δουλέψει, περιγράψτε τις ρυθμίσεις σας. Ποια έκδοση του PPP τρέχετε; Πως συνδέεστε και με ποιο τρόπο ελέγχεται η ταυτότητά σας; Έχετε στατική ή δυναμική IP διεύθυνση; Τι μηνύματα παίρνετε στα log αρχεία σας; Πολλές από τις πληροφορίες που θέλετε συνήθως να στείλετε, περιλαμβάνονται στην έξοδο προγραμμάτων όπως το &man.dmesg.8;, ή στα μηνύματα που βλέπετε στην κονσόλα σας, τα οποία τις πιο πολλές φορές σώζονται και στο αρχείο /var/log/messages. Μην δοκιμάσετε να αντιγράψετε αυτές τις πληροφορίες ξαναγράφοντάς τες. Είναι βαρετό και σχεδόν σίγουρα θα κάνετε κάποιο λάθος. Για να στείλετε τα περιεχόμενα κάποιου log αρχείου, είτε κάντε ένα αντίγραφο του αρχείου και χρησιμοποιήστε κάποιον επεξεργαστή κειμένου να κόψετε όσα κομμάτια δεν είναι σχετικά, ή αντιγράψτε και επικολλήστε ότι έχει σχέση στο μήνυμά σας. Για την έξοδο κάποιου προγράμματος, όπως π.χ. το &man.dmesg.8;, ανακατευθύνετε την έξοδο σε κάποιο αρχείο και χρησιμοποιήστε αυτό το αρχείο. Για παράδειγμα: &prompt.user; dmesg > /tmp/dmesg.out Αυτό θα στείλει την έξοδο της εντολής στο αρχείο /tmp/dmesg.out. Αν τα κάνετε όλα αυτά, και πάλι δεν πάρετε κάποια απάντηση μπορεί να υπάρχουν άλλοι λόγοι. Για παράδειγμα, μπορεί το πρόβλημα να είναι τόσο περίπλοκο που κανείς δεν ξέρει την απάντηση, ή μπορεί το άτομο που ξέρει να απαντήσει να μην ήταν διαθέσιμο. Αν δεν πάρετε απάντηση για π.χ. πάνω από μια βδομάδα, μπορεί να βοηθήσει αν ξαναστείλετε το μήνυμα. Πάντως, αν δεν πάρετε απάντηση ούτε την δεύτερη φορά, μάλλον δεν θα βρείτε βοήθεια σε αυτή τη λίστα. Το να στέλνετε το μήνυμα ξανά και ξανά το μόνο που θα έχει σαν αποτέλεσμα θα είναι να μην θέλει κανείς να ασχοληθεί μαζί του. Για να ανακεφαλαιώσουμε, ας πούμε ότι ξέρετε την απάντηση στην παρακάτω ερώτηση (ναι είναι η ίδια ερώτηση και στις δυο περιπτώσεις). Μπορείτε να διαλέξετε ποια από τις δυο αυτές ερωτήσεις θα προτιμούσατε να απαντήσετε: Message 1 Subject: HELP!!?!?? I just can't get hits damn silly FereBSD system to workd, and Im really good at this tsuff, but I have never seen anythign sho difficult to install, it jst wont work whatever I try so why don't y9ou guys tell me what I doing wrong. Message 2 Subject: Problems installing FreeBSD I've just got the FreeBSD 2.1.5 CDROM from Walnut Creek, and I'm having a lot of difficulty installing it. I have a 66 MHz 486 with 16 MB of memory and an Adaptec 1540A SCSI board, a 1.2GB Quantum Fireball disk and a Toshiba 3501XA CDROM drive. The installation works just fine, but when I try to reboot the system, I get the message ``Missing Operating System''. Πως να συμπληρώσετε μια ερώτηση Συχνά θα θέλετε να στείλετε κάποιες παραπάνω πληροφορίες για μια ερώτηση που έχετε κάνει ήδη. Ο καλύτερος τρόπος να το κάνετε αυτό είναι να απαντήσετε στο ίδιο το αρχικό σας μήνυμα. Αυτό έχει τρία πλεονεκτήματα: Περιλαμβάνετε και το αρχικό σας μήνυμα, κι έτσι κάποιος που διαβάζει θα ξέρει σε τι αναφέρεστε. Βεβαίως, μην ξεχάσετε να κόψετε ότι δεν είναι απαραίτητο. Το κείμενο της γραμμής θέματος παραμένει το ίδιο (θυμηθήκατε να βάλετε κάποιο θέμα, σωστά;). Πολλά προγράμματα ηλεκτρονικής αλληλογραφίας ταξινομούν τα μηνύματα ανάλογα με το θέμα τους. Αυτό βοηθάει τα σχετικά μηνύματα να μένουν μαζί. Οι αριθμοί αναφοράς στην επικεφαλίδα του μηνύματος θα δείχνουν στο προηγούμενο γράμμα. Κάποια προγράμματα ηλεκτρονικής αλληλογραφίας, όπως το mutt, μπορούν να ομαδοποιήσουν τα μηνύματα, δείχνοντας ακριβώς τι σχέση έχουν το ένα με το άλλο. Πως να απαντήσετε μια ερώτηση Πριν απαντήσετε κάποια ερώτηση στην FreeBSD-questions, σκεφτείτε τα εξής: Πολλά πράγματα από αυτά που ισχύουν για τις ερωτήσεις, ισχύουν και για τις απαντήσεις. Διαβάστε τα πρώτα, παραπάνω Μήπως κάποιος άλλος έχει απαντήσει στην ερώτηση; Ο πιο εύκολος τρόπος να το ελέγξετε αυτό είναι να ταξινομήσετε τα εισερχόμενα γράμματά σας ανάλογα με το θέμα τους. Έτσι (ας ελπίσουμε) θα δείτε την ερώτηση να ακολουθείται από τις απαντήσεις (όταν αυτές υπάρχουν) όλες μαζί. Αν κάποιος άλλος έχει ήδη απαντήσει δεν σημαίνει πως εσείς δεν πρέπει να απαντήσετε κάπως διαφορετικά. Αλλά έχει νόημα να διαβάστε πρώτα όλες τις απαντήσεις. Έχετε να προσθέσετε κάτι σε όσα έχουν ήδη γραφτεί; Γενικά, απαντήσεις του στυλ Ναι, κι εγώ δεν βοηθάνε και πολύ. Υπάρχουν βέβαια και εξαιρέσεις, όπως όταν, για παράδειγμα, κάποιος περιγράφει ένα πρόβλημα που έχει και δεν ξέρει αν είναι δικό του φταίξιμο ή κάτι δεν πάει καλά είτε με το υλικό είτε με το λογισμικό του. Αν στείλετε ωστόσο ένα κι εγώ μήνυμα, φροντίστε τουλάχιστον να έχει όλες τις πληροφορίες που χρειάζονται. Είστε σίγουρος ότι καταλαβαίνετε την ερώτηση; Πολύ συχνά, αυτός που ρωτάει έχει μπερδευτεί ή δεν έχει εκφραστεί με αρκετή σαφήνεια. Ακόμα και με την καλύτερη δυνατή γνώση του συστήματος, είναι εύκολο να στείλετε μια απάντηση που δεν απαντά στην ερώτηση. Αυτό δεν βοηθά και πολύ. Θα αφήσετε αυτόν που ρωτάει πιο θυμωμένο και μπερδεμένο από πριν. Αν κανείς άλλος δεν απαντήσει, και δεν είστε ούτε εσείς σίγουρος, μπορείτε πάντα να ζητήσετε πιο πολλές πληροφορίες. Είστε σίγουρος ότι η απάντηση σας είναι σωστή; Αν όχι περιμένετε μια μέρα περίπου. Αν κανείς δεν στείλει κάποια καλύτερη απάντηση, μπορείτε να απαντήσετε εσείς, γράφοντας για παράδειγμα Δεν ξέρω αν αυτό είναι σωστό, αλλά αφού κανείς άλλος δεν έχει απαντήσει, γιατί δεν δοκιμάζεις να αντικαταστήσεις το ATAPI CDROM σου με ένα βάτραχο;. Αν δεν υπάρχει κάποιος καλός λόγος για να κάνετε κάτι διαφορετικό, απαντήστε και στον αποστολέα και στην FreeBSD-questions. Πολύς κόσμος στην FreeBSD-questions είναι παρατηρητές: μαθαίνουν διαβάζοντας τα μηνύματα που στέλνονται σαν απαντήσεις στους άλλους. Αν μεταφέρετε κάποιο μήνυμα γενικού ενδιαφέροντος εκτός λίστας, στερείτε αυτούς τους αναγνώστες από μια πολύτιμη πηγή πληροφοριών. Προσοχή όμως με τις ομαδικές απαντήσεις. Πολύς κόσμος στέλνει απαντήσεις με εκατοντάδες Cc αντίγραφα. Σε αυτή την περίπτωση, κόψτε τις κατάλληλες Cc διευθύνσεις. Συμπεριλάβετε το σχετικό κείμενο από το αρχικό μήνυμα. Αφαιρέστε ότι δεν χρειάζεται, αλλά μην το παρακάνετε. Θα πρέπει να μπορεί κάποιος που δεν διάβασε την αρχική ερώτηση να καταλάβει για τι πράγμα μιλάτε. Χρησιμοποιήστε κάποια τεχνική για να ξεχωρίσετε ποιο κείμενο προέρχεται από το αρχικό μήνυμα, και ποιο έχετε προσθέσει εσείς. Προσωπικά βρίσκω ότι βάζοντας στην αρχή κάθε γραμμής του αρχικού μηνύματος ένα > είναι αρκετά καλός τρόπος να γίνει κάτι τέτοιο. Το να αφήνετε κενά μετά τις γραμμές που αρχίζουν με > και να αφήνετε μια κενή γραμμή μεταξύ του αρχικού κειμένου και του δικού σας επίσης βοηθά στο να είναι πιο εύκολο να διαβαστεί το αποτέλεσμα. Βάλτε τις απαντήσεις σας στο σωστό μέρος (μετά το κείμενο στο οποίο απαντάτε). Είναι πολύ δύσκολο να διαβαστεί μια ομάδα απαντήσεων όπου κάθε απάντηση έρχεται πριν το κείμενο στο οποίο απαντάει. Τα πιο πολλά προγράμματα ηλεκτρονικής αλληλογραφίας αλλάζουν το θέμα προσθέτοντας στην αρχή ένα Re: . Αν το δικό σας πρόγραμμα δεν το κάνει αυτόματα, θα πρέπει να το κάνετε εσείς. Αν ο αποστολέας δεν ακολούθησε τις συμβάσεις μορφοποίησης (γραμμές πολύ μεγάλες, άσχετη ή ασαφής γραμμή θέματος), προτιμήστε να το διορθώσετε. Στην περίπτωση ακατάλληλης γραμμής θέματος (όπως π.χ HELP!!??), αλλάξτε το θέμα σε κάτι όπως Re: Difficulties with sync PPP (was: HELP!!??). Έτσι όσοι προσπαθούν να παρακολουθήσουν αυτή την ομάδα μηνυμάτων θα δυσκολευτούν λιγότερο να την παρακολουθήσουν. Σε τέτοιες περιπτώσεις είναι καλό να λέτε τι κάνατε και γιατί, αλλά προσπαθήστε να μην είστε αγενείς. Αν δείτε ότι δεν μπορείτε να απαντήσετε χωρίς να είστε αγενείς, καλύτερα μην απαντάτε. Αν απλά θέλετε να απαντήσετε σε ένα μήνυμα λόγω της κακής του μορφοποίησης, απαντήστε καλύτερα στον αποστολέα, κι όχι στη λίστα. Μπορείτε απλώς να του στείλετε αυτό το κείμενο σαν απάντηση, αν θέλετε.
diff --git a/el_GR.ISO8859-7/articles/gjournal-desktop/article.sgml b/el_GR.ISO8859-7/articles/gjournal-desktop/article.sgml index cf20d170f9..fcd57b2530 100644 --- a/el_GR.ISO8859-7/articles/gjournal-desktop/article.sgml +++ b/el_GR.ISO8859-7/articles/gjournal-desktop/article.sgml @@ -1,779 +1,780 @@ %articles.ent; ]>
Υλοποίηση του UFS Journaling σε ένα Desktop Υπολογιστή Μανώλης Κιαγιάς
manolis@FreeBSD.org
2008 Μανώλης Κιαγιάς $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; Ένα σύστημα αρχείων που διαθέτει δυνατότητα journaling, χρησιμοποιεί ένα αρχείο καταγραφής (journal ή ημερολόγιο) στο οποίο γίνονται αρχικά οι εγγραφές πριν καταχωρηθούν στο κανονικό σύστημα αρχείων. Με τον τρόπο αυτό μπορεί να εξασφαλιστεί η ακεραιότητα του συστήματος αρχείων στην περίπτωση κατάρρευσης ή απότομης διακοπής της τροφοδοσίας του. Η χρήση του journaling διασφαλίζει την συνολική ακεραιότητα του συστήματος αρχείων, αλλά δεν μπορεί να διασφαλίσει ότι δεν θα έχουμε απώλεια δεδομένων σε μεμονωμένα αρχεία τα οποία ήταν ενδεχομένως σε χρήση την ώρα της κατάρρευσης. Ένα πλεονέκτημα του journaling είναι η ελαχιστοποίηση του χρόνου που απαιτείται για τον έλεγχο του συστήματος αρχείων σε περίπτωση κακού τερματισμού. Το σύστημα αρχείων UFS που χρησιμοποιείται από το &os; δεν διαθέτει δικό του ενσωματωμένο journaling. Ωστόσο, το πλαίσιο λειτουργιών GEOM στο &os; 7.X παρέχει ένα νέο journal class το οποίο δίνει αυτή τη δυνατότητα, και μάλιστα ανεξάρτητα από το σύστημα αρχείων που χρησιμοποιείται. Στο άρθρο αυτό εξετάζουμε πως μπορούμε να χρησιμοποιήσουμε το journaling σε ένα τυπικό desktop μηχάνημα για εργασία γραφείου.
Εισαγωγή Αν και οι περισσότεροι εξυπηρετητές που χρησιμοποιούνται σε περιβάλλοντα παραγωγής είναι καλά προστατευμένοι από μη-αναμενόμενους τερματισμούς, δεν συμβαίνει το ίδιο και με το συνηθισμένο desktop μηχάνημα το οποίο βρίσκεται στα χέρια του τελικού χρήστη. Αυτό συνήθως δεν προστατεύεται από διακοπές ρεύματος, ενώ δεν είναι και οι λίγες οι περιπτώσεις που ο κακός τερματισμός οφείλεται σε λανθασμένο χειρισμό του χρήστη (κατά λάθος πίεση του reset κ.α.). Στις περισσότερες από αυτές τις περιπτώσεις, τα Soft Updates που χρησιμοποιεί το σύστημα αρχείων UFS μπορούν να το προστατεύσουν αρκετά καλά, αν και μετά τον προβληματικό τερματισμό απαιτείται συνήθως έλεγχος του συστήματος αρχείων, ο οποίος ακόμα και όταν γίνεται στο παρασκήνιο, διαρκεί αρκετό χρόνο. Σε σπάνιες περιπτώσεις, το σύστημα αρχείων μπορεί να υποστεί ζημιά η οποία να χρειάζεται χειροκίνητη επέμβαση για να διορθωθεί, ενώ είναι πιθανή και η απώλεια δεδομένων. Η νέα δυνατότητα για journaling που παρέχεται από το GEOM μπορεί να βοηθήσει ιδιαίτερα στις παραπάνω περιπτώσεις, ελαχιστοποιώντας το χρόνο που απαιτείται για τον έλεγχο του συστήματος αρχείων και εξασφαλίζοντας ότι το σύστημα θα επανέλθει πολύ σύντομα σε σταθερή κατάσταση. Το άρθρο αυτό περιγράφει μια διαδικασία για την υλοποίηση του UFS journaling σε ένα τυπικό desktop PC (στο οποίο χρησιμοποιείται ένας σκληρός δίσκος τόσο για το σύστημα όσο και για τα δεδομένα). Θα πρέπει να ακολουθήσετε αυτές τις οδηγίες κατά τη διάρκεια μιας νέας εγκατάστασης του &os;. Τα βήματα είναι αρκετά απλά και δεν απαιτούν ιδιαίτερα πολύπλοκες εντολές. Αφού διαβάσετε αυτό το άρθρο, θα ξέρετε: Πως να δεσμεύσετε κάποιο χώρο στο δίσκο για το journaling κατά τη διάρκεια μιας νέας εγκατάστασης του &os;. Πως να φορτώσετε και να ενεργοποιήσετε το άρθρωμα (module) geom_journal (ή πως να ενσωματώσετε τη λειτουργία του στον προσαρμοσμένο πυρήνα σας). Πως να μετατρέψετε τα υπάρχοντα συστήματα αρχείων σας ώστε να χρησιμοποιούν journaling, και τι παραμέτρους θα πρέπει να δώσετε στο /etc/fstab ώστε να τα προσαρτήσετε. Πως να ενεργοποιήσετε το journaling σε νέες (άδειες) κατατμήσεις. Πως να αντιμετωπίσετε προβλήματα που σχετίζονται με το journaling. Πριν διαβάσετε αυτό το άρθρο, θα πρέπει: Να κατανοείτε βασικές έννοιες του &unix; και του &os;. Να είστε εξοικειωμένος με τη διαδικασία εγκατάστασης του &os; και το βοηθητικό πρόγραμμα sysinstall. Η διαδικασία που περιγράφεται εδώ, προορίζεται για χρήση σε νέες εγκαταστάσεις, όπου δεν υπάρχουν ακόμα αποθηκευμένα δεδομένα χρήστη. Αν και είναι δυνατόν να τροποποιήσετε και να επεκτείνετε τη διαδικασία αυτή σε μηχανήματα που βρίσκονται ήδη σε κανονική χρήση, θα πρέπει οπωσδήποτε να πάρετε αντίγραφα ασφαλείας όλων των σημαντικών δεδομένων πριν επιχειρήσετε οποιαδήποτε αλλαγή. Όταν κάνετε αλλαγές στα συστήματα αρχείων και στις κατατμήσεις των δίσκων σε τέτοιο επίπεδο, είναι πιθανόν να κάνετε λάθη τα οποία θα αποβούν μοιραία για τα δεδομένα σας. Κατανόηση του Journaling στο &os; Το journaling που παρέχεται από το GEOM στο &os; 7.X δεν είναι προσανατολισμένο σε κάποιο συγκεκριμένο σύστημα αρχείων (όπως για παράδειγμα συμβαίνει με το σύστημα αρχείων ext3 στο &linux;) αλλά λειτουργεί σε επίπεδο block. Αν και αυτό σημαίνει ότι μπορεί να χρησιμοποιηθεί σε διαφορετικά συστήματα αρχείων, για το &os; 7.0-RELEASE, είναι δυνατή η χρήση του μόνο στο UFS2. Οι λειτουργίες journaling παρέχονται φορτώνοντας το άρθρωμα geom_journal.ko στον πυρήνα (ή ενσωματώνοντας τη λειτουργία του σε ένα προσαρμοσμένο πυρήνα) και χρησιμοποιώντας την εντολή gjournal για τη ρύθμιση των συστημάτων αρχείων. Η χρήση του journaling είναι γενικά θεμιτή σε μεγάλα συστήματα αρχείων, όπως είναι το /usr. Θα χρειαστεί ωστόσο να έχετε δεσμεύσει από πριν κάποιο ελεύθερο χώρο στο δίσκο. Όταν γίνεται χρήση του journaling σε ένα σύστημα αρχείων, απαιτείται κάποιος ελεύθερος χώρος για να αποθηκεύονται τα δεδομένα του ημερολογίου καταγραφής (journal). Ο χώρος του δίσκου που αποθηκεύονται τα πραγματικά δεδομένα αναφέρεται ως παροχέας δεδομένων (data provider), ενώ ο χώρος στον οποίο αποθηκεύεται το ημερολόγιο ονομάζεται παροχέας ημερολογίου (journal provider). Σε περίπτωση που το journaling γίνεται σε σύστημα αρχείων το οποίο έχει ήδη δεδομένα, οι δύο παροχείς πρέπει να βρίσκονται σε διαφορετικές κατατμήσεις. Σε περίπτωση χρήσης journaling σε νέα κατάτμηση, έχετε την επιλογή να χρησιμοποιήσετε τον ίδιο παροχέα και για τα δεδομένα και για το ημερολόγιο. Σε κάθε περίπτωση, με τη χρήση της εντολής gjournal, οι δύο παροχείς συνδυάζονται για να δημιουργήσουν το τελικό σύστημα αρχείων που υποστηρίζει journaling. Για παράδειγμα: Θέλετε να χρησιμοποιήσετε journaling στο σύστημα αρχείων /usr, το οποίο βρίσκεται στο /dev/ad0s1f (το σύστημα αρχείων περιέχει ήδη δεδομένα). Έχετε κρατήσει κάποιο κενό χώρο στο δίσκο, σε μια κατάτμηση στο /dev/ad0s1g. Με την χρήση της εντολής gjournal, θα δημιουργηθεί μια νέα συσκευή, η /dev/ad0s1f.journal, όπου το /dev/ad0s1f θα είναι ο παροχέας δεδομένων και το /dev/ad0s1g θα είναι ο παροχέας ημερολογίου. Η νέα αυτή συσκευή θα χρησιμοποιείται πλέον για όλες τις εργασίες που θα εκτελούνται στο σύστημα αρχείων. Ο χώρος στο δίσκο που απαιτείται για το ημερολόγιο εξαρτάται από τη χρήση του συστήματος αρχείων, και όχι από το μέγεθος του παροχέα δεδομένων. Για παράδειγμα, σε ένα τυπικό μηχάνημα γραφείου, θα είναι αρκετό να χρησιμοποιήσετε 1 GB για τον παροχέα ημερολογίου του συστήματος αρχείων /usr, ενώ σε ένα μηχάνημα το οποίο χρησιμοποιείται σε εργασίες όπου οι εγγραφές στο δίσκο είναι πολύ συχνές και μεγάλες σε μέγεθος (π.χ. επεξεργασία video) θα χρειαστείτε περισσότερο χώρο. Σε περίπτωση που ο χώρος που έχει δεσμευθεί για το ημερολόγιο εξαντληθεί πριν γίνει δυνατή η εγγραφή δεδομένων στο κανονικό σύστημα αρχείων, το σύστημα θα καταρρεύσει με kernel panic. Τα μεγέθη που προτείνονται εδώ για τον παροχέα ημερολογίου, είναι απίθανο να προκαλέσουν πρόβλημα σε τυπική χρήση γραφείου (περιήγηση στο διαδίκτυο, επεξεργασία κειμένου, αναπαραγωγή πολυμέσων). Αν ωστόσο το είδος της εργασίας σας περιλαμβάνει έντονη χρήση του σκληρού δίσκου, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κανόνα για τη μεγαλύτερη δυνατή αξιοπιστία: όλη η μνήμη RAM του συστήματος σας πρέπει να χωράει στο 30% του χώρου του ημερολογίου. Για παράδειγμα, αν το σύστημα σας έχει 1 GB RAM, θα πρέπει να δημιουργήσετε ημερολόγιο μεγέθους περίπου 3.3 GB. (Πολλαπλασιάστε το μέγεθος της RAM με το 3.3 για να βρείτε το μέγεθος του ημερολογίου.) Για περισσότερες πληροφορίες σχετικά με το journaling, παρακαλούμε διαβάστε τη σελίδα manual του &man.gjournal.8;. Βήματα Κατά την Εγκατάσταση του &os; Δέσμευση Χώρου στο Δίσκο για το Journaling Ένα τυπικό desktop μηχάνημα, έχει συνήθως ένα σκληρό δίσκο στον οποίο αποθηκεύονται τόσο το λειτουργικό όσο και τα δεδομένα του χρήστη. Συνήθως, οι προεπιλεγμένες κατατμήσεις που δημιουργούνται από το sysinstall είναι περίπου σωστές: Ένα desktop μηχάνημα δεν χρειάζεται μεγάλη κατάτμηση /var, ενώ το μεγαλύτερο μέρος του ελεύθερου χώρου αποδίδεται στο /usr, αφού στους υποκαταλόγους του αποθηκεύονται τα δεδομένα του χρήστη και γίνονται και οι εγκαταστάσεις του λογισμικού. Χρησιμοποιώντας τις προεπιλεγμένες κατατμήσεις (αυτές που δημιουργεί ο επεξεργαστής Disklabel όταν πιέσετε το A), δεν μένει καθόλου ελεύθερος χώρος. Ωστόσο κάθε κατάτμηση στην οποία θέλετε να χρησιμοποιήσετε journaling, χρειάζεται ακόμα μία για την αποθήκευση του ημερολογίου. Καθώς η κατάτμηση /usr είναι η μεγαλύτερη, το πλέον λογικό είναι να την μικρύνουμε ελαφρά ώστε να εξασφαλίσουμε το χώρο που απαιτείται για το journaling. Στο παράδειγμα μας, χρησιμοποιείται ένας δίσκος μεγέθους 80 GB. Στην ακόλουθη εικόνα φαίνονται οι προεπιλεγμένες κατατμήσεις όπως δημιουργούνται από τον επεξεργαστή Disklabel κατά την εγκατάσταση: Αν τα παραπάνω μεγέθη είναι περίπου τα επιθυμητά για την εγκατάσταση σας, είναι αρκετά εύκολο να ρυθμιστούν ώστε να γίνει δυνατή η χρήση του journaling. Απλώς χρησιμοποιήστε τα πλήκτρα με τα βελάκια για να μετακινήσετε την μπάρα επιλογής στην κατάτμηση /usr και πιέστε το D για να την διαγράψετε. Τώρα, μετακινήστε την μπάρα επιλογής στο όνομα του σκληρού δίσκου στο άνω μέρος της οθόνης, και πιέστε C για να δημιουργήσετε μια νέα κατάτμηση για το /usr. Η νέα αυτή κατάτμηση θα πρέπει να είναι μικρότερη κατά 1 GB (αν έχετε σκοπό να χρησιμοποιήσετε journaling μόνο στο /usr), ή κατά 2 GB (αν έχετε σκοπό να χρησιμοποιήσετε journaling τόσο στο /usr όσο και στο /var). Στο διάλογο που θα εμφανιστεί, επιλέξτε να δημιουργήσετε σύστημα αρχείων (file system) και γράψτε /usr ως το σημείο προσάρτησης (mount point). Είναι αναγκαία η χρήση journaling στην κατάτμηση /var partition; Φυσιολογικά, το journaling έχει νόημα μόνο σε αρκετά μεγάλες κατατμήσεις. Δεν πρόκειται ωστόσο να δημιουργηθεί κάποιο πρόβλημα αν χρησιμοποιήσετε journaling στο /var. Αν η χρήση του συγκεκριμένου συστήματος αρχείων είναι μικρή (το οποίο είναι και το πιθανότερο σε ένα dekstop μηχάνημα) ίσως είναι καλή ιδέα να χρησιμοποιήσετε λιγότερο χώρο στο δίσκο για το ημερολόγιο του. Στο παράδειγμα μας, θα ενεργοποιήσουμε το journaling τόσο στο /usr όσο και στο /var. Μπορείτε φυσικά να προσαρμόσετε αυτή τη διαδικασία σύμφωνα με τις ανάγκες σας. Για να απλοποιήσουμε, όσο είναι δυνατόν, τη διαδικασία, θα χρησιμοποιήσουμε το sysinstall για να δημιουργήσουμε τις κατατμήσεις που απαιτούνται για το journaling. Ωστόσο, κατά τη διάρκεια της εγκατάστασης, το sysinstall επιμένει να ρωτάει για σημεία προσάρτησης σε κάθε κατάτμηση που δημιουργείται. Στο σημείο αυτό, δεν υπάρχουν σημεία προσάρτησης για τις κατατμήσεις μας, και στην πραγματικότητα δεν τα χρειαζόμαστε καν. Οι κατατμήσεις που χρησιμοποιούνται για τα ημερολόγια, δεν προσαρτώνται κάπου. Για να αποφύγουμε αυτά τα προβλήματα με το sysinstall, θα δημιουργήσουμε αυτές τις κατατμήσεις ως χώρο swap. Στο swap δεν γίνεται ποτέ προσάρτηση, ενώ και το sysinstall δεν έχει κανένα πρόβλημα να δημιουργήσει όσες τέτοιες κατατμήσεις χρειαζόμαστε. Μετά την πρώτη εκκίνηση, θα πρέπει ωστόσο να επεξεργαστούμε το αρχείο /etc/fstab και να αφαιρέσουμε τις έξτρα καταχωρήσεις swap που δημιουργήθηκαν κατά την εγκατάσταση. Για να δημιουργήσετε τους χώρους swap, χρησιμοποιήστε πάλι τα πλήκτρα με τα βελάκια για να μετακινήσετε την μπάρα επιλογής στο άνω μέρος της οθόνης του επεξεργαστή Disklabel, έτσι ώστε να είναι επιλεγμένο το όνομα του σκληρού δίσκου. Κατόπιν, πιέστε N, δώστε το επιθυμητό μέγεθος (1024M), και επιλέξτε swap space από το μενού που εμφανίζεται. Επαναλάβετε για κάθε ημερολόγιο που επιθυμείτε να δημιουργήσετε. Στο παράδειγμα μας, δημιουργούμε δύο κατατμήσεις στις οποίες θα αποθηκεύονται τα ημερολόγια των /usr και /var. Το τελικό αποτέλεσμα φαίνεται στην παρακάτω εικόνα: Μόλις ολοκληρώσετε τη δημιουργία των κατατμήσεων, σας συνιστούμε να σημειώσετε τα ονόματα τους και τα σημεία προσάρτησης για να τα έχετε πρόχειρα κατά τη φάση των ρυθμίσεων. Με τον τρόπο αυτό θα αποφύγετε τυχόν λάθη που μπορεί να καταστρέψουν την εγκατάσταση σας. Ο παρακάτω πίνακας δείχνει τις σημειώσεις μας για το παράδειγμα μας: Κατατμήσεις και Ημερολόγια Κατάτμηση Σημείο Προσάρτησης Ημερολόγιο ad0s1d /var ad0s1h ad0s1f /usr ad0s1g
Συνεχίστε την εγκατάσταση όπως συνήθως. Σας συνιστούμε ωστόσο να μην εγκαταστήσετε εφαρμογές (πακέτα) μέχρι να ολοκληρώσετε τη διαδικασία του journaling.
Πρώτη Εκκίνηση Το σύστημα σας θα ξεκινήσει φυσιολογικά, αλλά θα χρειαστεί να επεξεργαστείτε το /etc/fstab και να διαγράψετε τις καταχωρήσεις για τις κατατμήσεις swap που θα χρησιμοποιηθούν στα ημερολόγια. Φυσιολογικά, η κατάτμηση που χρησιμοποιείται ως κανονικό swap τελειώνει με το γράμμα b (π.χ. ad0s1b στο παράδειγμα μας). Διαγράψτε όλες τις άλλες καταχωρήσεις για το swap και επανεκκινήστε το σύστημα σας, ώστε να σταματήσει το &os; να τις χρησιμοποιεί. Μόλις το σύστημα εκκινήσει ξανά, θα είμαστε έτοιμοι να ρυθμίσουμε το journaling. Ρύθμιση του Journaling Εκτέλεση της Εντολής <command>gjournal</command> Έχοντας προετοιμάσει όλες τις απαραίτητες κατατμήσεις, είναι σχετικά απλό να ρυθμίσουμε το journaling. Θα πρέπει να μεταβούμε σε κατάσταση ενός χρήστη, για το λόγο αυτό εισέλθετε στο σύστημα ως root και γράψτε: &prompt.root; shutdown now Πιέστε Enter για να βγείτε στο προεπιλεγμένο κέλυφος. Θα πρέπει να αποπροσαρτήσουμε τις κατατμήσεις στις οποίες θα γίνει το journaling, στο παράδειγμα μας τις /usr και /var: &prompt.root; umount /usr /var Φορτώστε το άρθρωμα του πυρήνα που απαιτείται για το journaling: &prompt.root; gjournal load Χρησιμοποιήστε τώρα τις σημειώσεις σας για να καθορίσετε ποια κατάτμηση χρησιμοποιείται για κάθε ημερολόγιο. Στο παράδειγμα μας, το /usr βρίσκεται στο ad0s1f και το ημερολόγιο του θα είναι στο ad0s1g, ενώ το /var είναι στο ad0s1d και το ημερολόγιο του θα είναι στο ad0s1h. Θα χρειαστείτε τις παρακάτω εντολές: &prompt.root; gjournal label ad0s1f ad0s1g GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. &prompt.root; gjournal label ad0s1d ad0s1h GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. Αν ο τελευταίος τομέας κάποιας από τις κατατμήσεις είναι σε χρήση, η εντολή gjournal θα σας επιστρέψει ένα μήνυμα λάθους. Θα πρέπει να εκτελέσετε την εντολή χρησιμοποιώντας την παράμετρο με την οποία θα υποχρεώσετε την επανεγγραφή του τομέα, π.χ.: &prompt.root; gjournal label -f ad0s1d ad0s1h Μια που πρόκειται για νέα εγκατάσταση, είναι μάλλον απίθανο να προκαλέσετε κάποιο πρόβλημα. Στο σημείο αυτό δημιουργούνται δύο νέες συσκευές, οι ad0s1d.journal και ad0s1f.journal. Αυτές αντιπροσωπεύουν τις κατατμήσεις /var και /usr που θα πρέπει να προσαρτήσουμε. Πριν τις προσαρτήσουμε ωστόσο, θα πρέπει να θέσουμε την επιλογή journal και να αναιρέσουμε την επιλογή Soft Updates: &prompt.root; tunefs -J enable -n disable ad0s1d.journal tunefs: gjournal set tunefs: soft updates cleared &prompt.root; tunefs -J enable -n disable ad0s1f.journal tunefs: gjournal set tunefs: soft updates cleared Προσαρτήστε τώρα χειροκίνητα τις νέες συσκευές στα αντίστοιχα σημεία προσάρτησης (σημειώστε ότι μπορούμε πλέον να χρησιμοποιήσουμε την επιλογή κατά την προσάρτηση): &prompt.root; mount -o async /dev/ad0s1d.journal /var &prompt.root; mount -o async /dev/ad0s1f.journal /usr Επεξεργαστείτε το αρχείο /etc/fstab και ανανεώστε τις καταχωρήσεις για τις κατατμήσεις /usr και /var: /dev/ad0s1f.journal /usr ufs rw,async 2 2 /dev/ad0s1d.journal /var ufs rw,async 2 2 Βεβαιωθείτε ότι οι παραπάνω καταχωρήσεις είναι σωστές, διαφορετικά θα έχετε πρόβλημα να εκκινήσετε κανονικά στην επόμενη επανεκκίνηση του συστήματος σας. Τέλος, επεξεργαστείτε το αρχείο /boot/loader.conf και προσθέστε την ακόλουθη γραμμή ώστε να φορτώνεται το άρθρωμα &man.gjournal.8; σε κάθε εκκίνηση: geom_journal_load="YES" Συγχαρητήρια! Το σύστημα σας είναι τώρα έτοιμο για journaling. Μπορείτε να γράψετε exit για να επιστρέψετε στην κανονική λειτουργία (πολλαπλών χρηστών) ή να επανεκκινήσετε το σύστημα σας (συνίσταται) για να ελέγξετε τις ρυθμίσεις σας. Κατά την εκκίνηση, θα δείτε μηνύματα όπως το παρακάτω: ad0: 76293MB XEC XE800JD-00HBC0 08.02D08 at ata0-master SATA150 GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal ad0s1d clean. GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal ad0s1f clean. Μετά από ένα προβληματικό τερματισμό θα δείτε μηνύματα όπως το παρακάτω: GEOM_JOURNAL: Journal ad0s1d consistent. Αυτό συνήθως σημαίνει ότι το &man.gjournal.8; χρησιμοποίησε τις πληροφορίες του ημερολογίου για να επιστρέψει το σύστημα αρχείων σε σταθερή κατάσταση. Χρήση του Journaling σε Νέες Κατατμήσεις Αν και η παραπάνω διαδικασία είναι απαραίτητη για να χρησιμοποιήσετε journaling σε κατατμήσεις που έχουν ήδη δεδομένα, η αντίστοιχη διαδικασία για νέες κατατμήσεις είναι πιο απλή. Στην περίπτωση αυτή, μπορεί να χρησιμοποιηθεί ο ίδιος παροχέας τόσο για τα δεδομένα όσο και για το ημερολόγιο. Για παράδειγμα, υποθέστε ότι έχετε προσθέσει ένα νέο δίσκο και έχετε δημιουργήσει την κατάτμηση /dev/ad1s1d. Η δημιουργία του ημερολογίου είναι αρκετά απλή και φαίνεται παρακάτω: &prompt.root; gjournal label ad1s1d Το προεπιλεγμένο μέγεθος του ημερολογίου είναι 1 GB. Μπορείτε ωστόσο να το ρυθμίσετε χρησιμοποιώντας την επιλογή . Μπορείτε να δώσετε τιμές σε bytes, ή να βάλετε μετά την τιμή ένα από τα γράμματα K, M ή G για να δηλώσετε Kilobytes, Megabytes ή Gigabytes αντίστοιχα. Σημειώστε ότι η εντολή gjournal, δεν θα σας επιτρέψει να δημιουργήσετε ημερολόγιο που να είναι ακατάλληλο λόγω μικρού μεγέθους. Για παράδειγμα, για να δημιουργήσετε ένα ημερολόγιο μεγέθους 2 GB, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή: &prompt.root; gjournal label -s 2G ad1s1d Μπορείτε έπειτα να δημιουργήσετε ένα σύστημα αρχείων στη νέα σας κατάτμηση, και ταυτόχρονα να ενεργοποιήσετε το journaling, χρησιμοποιώντας την επιλογή : &prompt.root; newfs -J /dev/ad1s1d.journal Ενσωμάτωση του Journaling σε Προσαρμοσμένο Πυρήνα Αν δεν θέλετε να φορτώσετε το geom_journal ως άρθρωμα, μπορείτε να ενσωματώσετε τις λειτουργίες του στον προσαρμοσμένο πυρήνα σας. Επεξεργαστείτε το αρχείο ρυθμίσεων του πυρήνα, και βεβαιωθείτε ότι περιλαμβάνει τις ακόλουθες δύο γραμμές: options UFS_GJOURNAL # Σημείωση: η επιλογή αυτή υπάρχει στο GENERIC options GEOM_JOURNAL # Θα πρέπει να προσθέσετε αυτή τη γραμμή Μεταγλωττίστε και επανεγκαταστήστε τον πυρήνα σας χρησιμοποιώντας τις σχετικές οδηγίες στο Εγχειρίδιο του &os;. Μην ξεχάσετε να αφαιρέσετε την αντίστοιχη καταχώρηση load από το αρχείο /boot/loader.conf αν την είχατε χρησιμοποιήσει προηγουμένως. Αντιμετώπιση Προβλημάτων Το ακόλουθο τμήμα καλύπτει συχνές ερωτήσεις σχετικά με προβλήματα που μπορείτε να συναντήσετε στην υλοποίηση του jounaling. Κατά τη διάρκεια έντονης χρήσης του δίσκου, το σύστημα μου σταματάει με kernel panic. Υπάρχει περίπτωση αυτό να σχετίζεται με το journaling; Είναι πιθανό το ημερολόγιο να γεμίζει πριν προλάβουν τα προηγούμενα δεδομένα του να μεταφερθούν στο σύστημα αρχείων. Θα πρέπει να θυμάστε ότι το μέγεθος του ημερολογίου δεν εξαρτάται από το μέγεθος του παροχέα δεδομένων, αλλά από το φόρτο εργασίας του. Αν η δραστηριότητα του δίσκου σας είναι υψηλή, θα χρειαστείτε μεγαλύτερο μέγεθος για την κατάτμηση του ημερολογίου. Δείτε τη σχετική σημείωση στην ενότητα Κατανόηση του Journaling. Έκανα κάποιο λάθος στις ρυθμίσεις, και δεν μπορώ πλέον να ξεκινήσω κανονικά το σύστημα μου. Υπάρχει τρόπος να το διορθώσω; Πιθανόν ξεχάσατε να προσθέσετε (ή έχετε κάνει λάθος) την καταχώρηση στο /boot/loader.conf, ή ίσως υπάρχει λάθος στο αρχείο /etc/fstab. Τα λάθη αυτά συνήθως διορθώνονται εύκολα. Πιέστε Enter για να ξεκινήσετε το προεπιλεγμένο κέλυφος λειτουργίας ενός χρήστη. Μετά εντοπίστε την πηγή του προβλήματος: &prompt.root; cat /boot/loader.conf Αν λείπει ή υπάρχει λάθος στην καταχώρηση geom_journal_load, οι αντίστοιχες συσκευές δεν δημιουργούνται καν. Μπορείτε να φορτώσετε το άρθρωμα χειροκίνητα, να προσαρτήσετε όλες τις κατατμήσεις, και να συνεχίσετε με την κανονική εκκίνηση: &prompt.root; gjournal load GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal. GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data. GEOM_JOURNAL: Journal ad0s1d clean. GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data. GEOM_JOURNAL: Journal ad0s1f clean. &prompt.root; mount -a &prompt.root; exit (η εκκίνηση συνεχίζεται) Αν ωστόσο η καταχώρηση αυτή είναι σωστή, ρίξτε μια ματιά στο αρχείο /etc/fstab. Το πιο πιθανό είναι να βρείτε ότι κάποια καταχώρηση λείπει, ή είναι λάθος. Στην περίπτωση αυτή, προσαρτήστε χειροκίνητα όλες τις κατατμήσεις και συνεχίστε την εκκίνηση κανονικά. Μπορώ να καταργήσω το journaling και να επιστρέψω στο κανονικό σύστημα αρχείων με τα Soft Updates; Βέβαια. Χρησιμοποιήστε την ακόλουθη διαδικασία η οποία αναιρεί τις αλλαγές. Μπορείτε έπειτα να χρησιμοποιήσετε τις κατατμήσεις των ημερολογίων για άλλο σκοπό, εφόσον το επιθυμείτε. Εισέλθετε ως root και μεταβείτε σε κατάσταση ενός χρήστη: &prompt.root; shutdown now Συγχρονίστε τα ημερολόγια: &prompt.root; gjournal sync Αποπροσαρτήστε τις κατατμήσεις που χρησιμοποιούν journaling: &prompt.root; umount /usr /var Σταματήστε τους παροχείς ημερολογίου: &prompt.root; gjournal stop ad0s1d.journal &prompt.root; gjournal stop ad0s1f.journal Διαγράψτε τα metadata του journaling από όλες τις συσκευές που χρησιμοποιήσατε: &prompt.root; gjournal clear ad0s1d &prompt.root; gjournal clear ad0s1f &prompt.root; gjournal clear ad0s1g &prompt.root; gjournal clear ad0s1h Αναιρέστε την επιλογή του journaling, και θέστε ξανά την επιλογή για Soft Updates: &prompt.root; tunefs -J disable -n enable ad0s1d tunefs: gjournal cleared tunefs: soft updates set &prompt.root; tunefs-J disable -n enable ad0s1f tunefs: gjournal cleared tunefs: soft updates set Προσαρτήστε χειροκίνητα τις κανονικές κατατμήσεις: &prompt.root; mount -o rw /dev/ad0s1d /var &prompt.root; mount -o rw /dev/ad0s1f /usr Επεξεργαστείτε το /etc/fstab και επαναφέρατε τις προηγούμενες ρυθμίσεις: /dev/ad0s1f /usr ufs rw 2 2 /dev/ad0s1d /var ufs rw 2 2 Τέλος, επεξεργαστείτε το αρχείο /boot/loader.conf, αφαιρέστε την καταχώρηση που φορτώνει το άρθρωμα geom_journal και επανεκκινήστε το σύστημα σας. Επιπλέον Πληροφορίες Το journaling είναι μια σχετικά νέα δυνατότητα του &os;, και έτσι δεν είναι ακόμα καλά τεκμηριωμένη. Ίσως όμως να βρείτε χρήσιμες πληροφορίες στις παρακάτω αναφορές: Υπάρχει ένα νέο τμήμα για το journaling στο Εγχειρίδιο του &os;. Αυτή η δημοσίευση στη λίστα &a.current.name; από τον δημιουργό του &man.gjournal.8;, &a.pjd;. Αυτή η δημοσίευση στη λίστα &a.questions.name; από τον &a.ivoras;. Οι σελίδες manual του &man.gjournal.8; και &man.geom.8;.
diff --git a/el_GR.ISO8859-7/articles/greek-language-support/article.sgml b/el_GR.ISO8859-7/articles/greek-language-support/article.sgml index 3f9cd77acc..8471d57f94 100644 --- a/el_GR.ISO8859-7/articles/greek-language-support/article.sgml +++ b/el_GR.ISO8859-7/articles/greek-language-support/article.sgml @@ -1,425 +1,426 @@ %articles.ent; ]>
Υποστήριξη της Ελληνικής Γλώσσας στο &os; Νικόλαος Κόκκαλης
nickkokkalis@yahoo.co.uk
2006 2007 2008 Νικόλαος Κόκκαλης $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.general; Αυτό το κείμενο δίνει οδηγίες για τις ρυθμίσεις που χρειάζονται, ώστε να μπορούμε να διαβάσουμε και να γράψουμε Ελληνικά στο &os;, τόσο σε κατάσταση κονσόλας όσο και χρησιμοποιώντας το γραφικό περιβάλλον &xorg;.
Εισαγωγή Η ρύθμιση της υποστήριξης του &os; για την Ελληνική γλώσσα είναι αρκετά εύκολη, σε κάθε επίπεδο. Με σχετικά λίγες ρυθμίσεις, μπορεί να γράψει και να διαβάσει κανείς σωστά Ελληνικά με την επίσημη κωδικοποίηση &iso-greek;, τόσο σε κατάσταση κονσόλας όσο και μέσα από το γραφικό περιβάλλον &xorg;. Αν και οι ρυθμίσεις που αφορούν αποκλειστικά στο &os; είναι αυτές της κονσόλας, εδώ θα αναφερθούν και αυτές που αφορούν και τα &xorg; αλλά και τις επιμέρους εφαρμογές. Αφού διαβάσετε αυτό το άρθρο θα ξέρετε: Που θα βρείτε Ελληνικές γραμματοσειρές, τόσο για την κονσόλα του &os; όσο και για &xorg;. Πώς να ορίσετε μια αντιστοιχία πληκτρολογίου (keymap) σε κατάσταση κονσόλας, η οποία να επιτρέπει την εισαγωγή Ελληνικού κειμένου, με την κωδικοποίηση &iso-greek;. Πώς να ορίσετε ότι η προκαθορισμένη γραμματοσειρά σε κατάσταση κονσόλας θα είναι κάποια που έχει Ελληνικούς χαρακτήρες. Πώς να ορίσετε μια αντιστοιχία πληκτρολογίου (keymap) σε κατάσταση γραφικών, η οποία να επιτρέπει την εισαγωγή Ελληνικού κειμένου, με την κωδικοποίηση &iso-greek;. Πώς να στήσετε γραμματοσειρές για το γραφικό περιβάλλον του &os;, οι οποίες θα έχουν υποστήριξη τόσο για UTF-8 όσο και για &iso-greek; Ελληνικά. Ρυθμίσεις για Ελληνικά στην κονσόλα του &os; Στην κονσόλα οι ρυθμίσεις αφορούν δύο στάδια. Το πρώτο στάδιο γίνεται κατά τον ίδιο τρόπο πάντα, ενώ το δεύτερο διαφοροποιείται ανάλογα με το κέλυφος (shell). Ρυθμίσεις για την προκαθορισμένη γραμματοσειρά της κονσόλας και μια αντιστοιχία πληκτρολογίου με υποστήριξη για Ελληνικά. Ρυθμίσεις έτσι ώστε το περιβάλλον του κελύφους να υποστηρίζει την Ελληνική γλώσσα. Ελληνική γραμματοσειρά και αντιστοιχία πληκτρολογίου για την κονσόλα Για να μπορέσουμε να διαβάσουμε και να γράψουμε Ελληνικά με την κωδικοποίηση &iso-greek; στην κονσόλα του &os; χρειαζόμαστε τουλάχιστον δύο αρχεία: μια γραμματοσειρά και μια αντιστοιχία πληκτρολογίου. Ο &a.keramida; έχει φτιάξει μια τέτοια γραμματοσειρά και μια αντιστοιχία πληκτρολογίου. Αυτά τα δύο αρχεία δεν είναι μέρος του βασικού συστήματος του &os; τη στιγμή που γράφονται αυτές οι γραμμές, οπότε θα χρειαστεί να τα κατεβάσετε από το δίκτυο. Για να κατεβάσετε τα δύο αρχεία που χρειάζονται και να τα τοποθετήσετε στον κατάλληλο κατάλογο για τον τύπο του κάθε αρχείου, μπορείτε να τρέξετε τις παρακάτω εντολές: &prompt.root; cd /usr/share/syscons/fonts &prompt.root; fetch 'http://people.freebsd.org/~keramida/files/grfixed-8x16.fnt' &prompt.root; cd /usr/share/syscons/keymaps &prompt.root; fetch 'http://people.freebsd.org/~keramida/files/keramida.el-iso.kbd' Ενεργοποίηση της Ελληνικής υποστήριξης στην κονσόλα Για να ορίσουμε ως προκαθορισμένη γραμματοσειρά και αντιστοιχία πληκτρολογίου αυτές που κατεβάσαμε, αρκεί να βάλουμε στο αρχείο /etc/rc.conf τις παρακάτω ρυθμίσεις: font8x16="grfixed-8x16" keymap="keramida.el-iso" Με αυτές τις ρυθμίσεις, το σύστημά μας θα χρησιμοποιεί τα αρχεία που μόλις κατεβάσαμε από την επόμενη φορά που θα ξεκινήσει. Στο &os; δε χρειάζεται όμως να κάνουμε επανεκκίνηση για μια τέτοια μικρή αλλαγή. Μπορούμε απλά να τρέξουμε σε μια κονσόλα τις εντολές: &prompt.user; vidcontrol -f 8x16 grfixed-8x16 < /dev/ttyv0 &prompt.user; kbdcontrol -l keramida.el-iso < /dev/ttyv0 Αυτές οι εντολές θα φορτώσουν εκείνη τη στιγμή τη νέα γραμματοσειρά κονσόλας, και τη νέα αντιστοιχία πληκτρολογίου. Ρυθμίσεις για το κέλυφος χρήστη Με τις ρυθμίσεις που έχουμε κάνει ως τώρα δεν έχει ενεργοποιηθεί πλήρως η Ελληνική υποστήριξη. Κάθε πρόγραμμα που τρέχει στο &os;, ακόμα και το κέλυφος χρήστη που χρησιμοποιούμε, εξαρτάται από τις τρέχουσες ρυθμίσεις locale, για να ξέρει σε τι γλώσσα δουλεύουμε. Οι προκαθορισμένες ρυθμίσεις locale υποστηρίζουν μόνο την εισαγωγή και ανάγνωση κειμένου σε Αγγλικά, οπότε πρέπει να αλλάζουμε τις ρυθμίσεις αυτές για να μπορεί το κέλυφος μας να δουλέψει σωστά με την Ελληνική γλώσσα. Ρυθμίσεις για το κέλυφος &man.sh.1; Αν το κέλυφος που χρησιμοποιούμε είναι το &man.sh.1;, πρέπει να βάλουμε στο αρχείο .profile του λογαριασμού μας τις εξής ρυθμίσεις: export LANG="el_GR.ISO8859-7" export LC_CTYPE="el_GR.ISO8859-7" export LC_COLLATE="el_GR.ISO8859-7" unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME Ρυθμίσεις για το κέλυφος &man.csh.1; Αν το κέλυφος που χρησιμοποιούμε είναι το &man.csh.1;, πρέπει να βάλουμε στο αρχείο .cshrc του λογαριασμού μας τις εξής ρυθμίσεις: setenv LANG "C" setenv LC_CTYPE "el_GR.ISO8859-7" setenv LC_COLLATE "el_GR.ISO8859-7" unsetenv LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME Ρυθμίσεις για το κέλυφος bash Αν το κέλυφος που χρησιμοποιούμε είναι το bash, πρέπει να βάλουμε στο αρχείο .bashrc του λογαριασμού μας τις εξής ρυθμίσεις: export LANG="el_GR.ISO8859-7" export LC_CTYPE="el_GR.ISO8859-7" export LC_COLLATE="el_GR.ISO8859-7" unset LC_ALL LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME Επίσης, ειδικά για το bash, πρέπει να βάλουμε και τις εξής ρυθμίσεις στο αρχείο .inputrc του λογαριασμού μας: set convert-meta Off set input-meta On set output-meta On Ρυθμίσεις για Ελληνικά στο γραφικό περιβάλλον &xorg; Τα πιο συνηθισμένα γραφικό περιβάλλον εργασίας σε &os; βασίζονται στην πλατφόρμα &xorg;. Οι ρυθμίσεις για υποστήριξη Ελληνικών σε &xorg; είναι εντελώς ίδιες με αυτές που χρησιμοποιεί το περιβάλλον &xorg; και σε άλλα UNIX συστήματα (π.χ. σε GNU/Linux). Αρχικά, πρέπει να ρυθμίσετε το περιβάλλον &xorg; έτσι ώστε να ξεκινά σωστά—ακόμη και χωρίς Ελληνικά. Για πληροφορίες σχετικά με τις πρώτες αυτές ρυθμίσεις, δείτε το αντίστοιχο κεφάλαιο στο Εγχειρίδιο του &os;. Αφού καταφέρετε να ρυθμίσετε τα πάντα για να ξεκινά το γραφικό περιβάλλον &xorg;, πρέπει να τοποθετήσετε τις παρακάτω γραμμές στο αρχείο /etc/x11/xorg.conf: Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us,el" Option "XkbOptions" "grp:alt_shift_toggle" EndSection Αν στο αρχείο /etc/x11/xorg.conf υπάρχει ήδη ένα τέτοιο τμήμα, μπορείτε να τροποποιήσετε το υπάρχον τμήμα. Χρησιμοποιήστε τον χαρακτήρα # για να σχολιάσετε όποιες γραμμές δε θέλετε να κρατήσετε από το αρχικό InputDevice. Γενικά, υπάρχουν τουλάχιστον δύο διαφορετικά InputDevice τμήματα σε ένα συνηθισμένο αρχείο /etc/x11/xorg.conf: ένα για το προκαθορισμένο πληκτρολόγιο κι ένα για το προκαθορισμένο ποντίκι. Προσοχή να κάνετε όποιες τροποποιήσεις έχετε κατά νου στο τμήμα το οποίο αναφέρει το πληκτρολόγιο (αυτό σημαίνει το Identifier "Keyboard1" παραπάνω). Με τις ρυθμίσεις που έχουμε κάνει ως τώρα δεν έχει ενεργοποιηθεί πλήρως η Ελληνική υποστήριξη. Στο &os; κάθε πρόγραμμα, ακόμα και το περιβάλλον &xorg; που χρησιμοποιούμε, εξαρτάται από τις τρέχουσες ρυθμίσεις locale, για να ξέρει σε τι γλώσσα δουλεύουμε. Οι προκαθορισμένες ρυθμίσεις locale υποστηρίζουν μόνο την εισαγωγή και ανάγνωση κειμένου σε Αγγλικά, οπότε πρέπει να αλλάζουμε τις ρυθμίσεις αυτές για να μπορεί το περιβάλλον &xorg; να δουλέψει σωστά με την Ελληνική γλώσσα. Για αυτόν τον λόγο παραμετροποιούμε το αρχείο .xinitrc στο λογαριασμό μας. Πιο συγκεκριμένα θα πρέπει να προσθέσουμε τις παρακάτω γραμμές σε αυτό: export LANG="el_GR.ISO8859-7" export LC_CTYPE="el_GR.ISO8859-7" export LC_COLLATE="el_GR.ISO8859-7" Πριν ξεκινήσετε να χρησιμοποιείτε τα Χ, βεβαιωθείτε επίσης ότι έχετε τις σωστές ρυθμίσεις locale στο κέλυφος σας. Έτσι θα αποφύγετε πιθανά προβλήματα απεικόνισης Ελληνικών σε κάποιες εφαρμογές. Δείτε την ενότητα Ρυθμίσεις για το κέλυφος χρήστη. Με αυτές τις ρυθμίσεις, το περιβάλλον &xorg; θα ξεκινά με το σωστό process environment για να υποστηρίζει την Ελληνική γλώσσα. Πολλές εφαρμογές που τρέχουν σε περιβάλλον &xorg; μπορούν να ρυθμιστούν ορίζοντας μια σειρά από X11 resources. Αυτά τα resources είναι, γενικά, ζευγάρια από τιμές της μορφής: ΌνομαResource: Τιμή του resource Οι τιμές αυτές ορίζονται στο αρχείο .Xresources του λογαριασμού μας. Για το XTerm και αντίστοιχες εφαρμογές τερματικού, μπορεί να ρυθμιστεί η γραμματοσειρά έτσι ώστε να χρησιμοποιείται μια με Ελληνική υποστήριξη, ορίζοντας τις παρακάτω τιμές στο αρχείο .Xresources: XTerm*font: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-7 Μετά από αλλαγές στο αρχείο .Xresources, δε χρειάζεται επανεκκίνηση του περιβάλλοντος &xorg;. Αρκεί απλά να τρέξουμε την εντολή: &prompt.user; xrdb -merge ~/.Xresources Ελληνικές γραμματοσειρές για το περιβάλλον &xorg; Το περιβάλλον &xorg; έρχεται με ένα βασικό σύνολο γραμματοσειρών σε μορφή bitmap. Μερικές από αυτές έχουν υποστήριξη ελληνικών, είτε για την κωδικοποίηση &iso-greek;, είτε για την κωδικοποίηση &iso-ucs; (Universal Character Set). Οι βασικές bitmap γραμματοσειρές που διανέμονται με το &xorg; έχουν στο τέλος από το όνομά τους την κωδικοποίηση, οπότε μπορείτε να τις βρείτε εύκολα με το εργαλείο &man.xlsfonts.1;. Για να δείτε, για παράδειγμα, ποιές βασικές γραμματοσειρές υποστηρίζουν την κωδικοποίηση &iso-greek; μπορείτε να χρησιμοποιήσετε την εντολή: &prompt.user; xlsfonts | fgrep -i iso8859-7 Αντίστοιχα, για να βρείτε ποιές γραμματοσειρές υποστηρίζουν την κωδικοποίηση &iso-ucs;, οπότε μπορούν να χρησιμοποιηθούν για την απεικόνιση κειμένων με κωδικοποίηση UTF-8, μπορείτε να χρησιμοποιήσετε την εντολή: &prompt.user; xlsfonts | fgrep -i iso10646 Ακόμη περισσότερες γραμματοσειρές με υποστήριξη για απεικόνιση Ελληνικών χαρακτήρων μπορείτε να βρείτε στη συλλογή των Ports. Η κατηγορία x11-fonts περιέχει συλλογές γραμματοσειρών όπως οι παρακάτω: x11-fonts/bitstream-vera x11-fonts/dejavu x11-fonts/liberation-fonts-ttf x11-fonts/urwfonts-ttf x11-fonts/webfonts Όλες αυτές οι γραμματοσειρές είναι σε μορφή &truetype;. Έτσι δεν έχουν τους περιορισμούς μεγέθους που έχουν οι βασικές, bitmap γραμματοσειρές, και μπορούν να απεικονίσουν Ελληνικούς χαρακτήρες σχεδόν σε οποιοδήποτε μέγεθος, με αρκετά ικανοποιητικά αποτελέσματα. Αν χρησιμοποιείτε κάποιο από τα δημοφιλή περιβάλλοντα εργασίας για &xorg;, όπως το GNOME ή το KDE, οι &truetype; γραμματοσειρές από αυτές τις συλλογές βελτιώνουν πάρα πολύ την ποιότητα απεικόνισης σε όλες τις εφαρμογές του περιβάλλοντος εργασίας. Οπότε σίγουρα αξίζει τον κόπο να τις δοκιμάσετε. Ρυθμίσεις για Ελληνικά σε διάφορες εφαρμογές. Για να διαβάζουμε και να γράφουμε &iso-greek; Ελληνικά με τον επεξεργαστή κειμένου editors/emacs θα πρέπει να προσθέσουμε στο .emacs του λογαριασμού μας τις εξής ρυθμίσεις: (setq unibyte-display-via-language-environment t) (if (< emacs-major-version 22) (set-language-environment "Greek")) (set-terminal-coding-system 'greek-iso-8bit) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) Για να διαβάζουμε και να γράφουμε ελληνικά με τον επεξεργαστή κειμένου editors/vim σε γραφικό περιβάλλον, θα πρέπει να προσθέσουμε στο αρχείο .vimrc του λογαριασμού μας τις εξής ρυθμίσεις: set gfs=fixedgr Για να διαβάζουμε και να γράφουμε ελληνικά με το πρόγραμμα ηλεκτρονικής αλληλογραφίας mutt θα πρέπει να προσθέσουμε στο .muttrc το παρακάτω κομμάτι: set charset="greek" set send_charset="US-ASCII:ISO-8859-1:ISO-8859-7:UTF-8"
diff --git a/el_GR.ISO8859-7/articles/laptop/article.sgml b/el_GR.ISO8859-7/articles/laptop/article.sgml index ccea48a5b7..bd71c9c9e7 100644 --- a/el_GR.ISO8859-7/articles/laptop/article.sgml +++ b/el_GR.ISO8859-7/articles/laptop/article.sgml @@ -1,362 +1,363 @@ %articles.ent; ]>
Χρησιμοποιώντας το FreeBSD σε Φορητούς $FreeBSD$ Το FreeBSD δουλεύει άψογα στους περισσότερους φορητούς υπολογιστές, με πολύ λίγα σημεία που χρίζουν προσοχής. Μερικά πράγματα που αφορούν το FreeBSD και τους φορητούς, σχετικά με τις διαφορές που υπάρχουν σε απαιτήσεις υλικού από τους υπολογιστές γραφείου, περιγράφονται παρακάτω. &tm-attrib.freebsd; &tm-attrib.linux; &tm-attrib.microsoft; &tm-attrib.general; Συχνά το FreeBSD χρησιμοποιείται σαν λειτουργικό σύστημα σε εξυπηρετητές, αλλά μπορεί το ίδιο καλά να χρησιμοποιηθεί και σε σταθμούς εργασίας, κι αν σκέφτεστε να το χρησιμοποιήσετε στον φορητό υπολογιστή σας μπορείτε να απολαμβάνετε όλα τα συνηθισμένα πλεονεκτήματα που έχει: συστηματική οργάνωση, εύκολη διαχείριση και αναβάθμιση, τα ports και τα πακέτα για εύκολη εγκατάσταση λογισμικού, κοκ. (Τα άλλα πλεονεκτήματά του, όπως η σταθερότητα, η απόδοση σε δικτυακές εφαρμογές, και η απόδοση σε συνθήκες υψηλού φόρτου, μπορεί να μην γίνονται πολύ φανερά σε ένα φορητό υπολογιστή, βέβαια.) Όμως, η εγκατάσταση σε φορητούς υπολογιστές συχνά παρουσιάζει προβλήματα τα οποία δεν εμφανίζονται σε υπολογιστές γραφείου και δεν αποτελούν συχνά θέμα συζήτησης (οι φορητοί, ακόμα περισσότερο από τους υπολογιστές γραφείου, είναι ρυθμισμένοι για να τρέχουν καλά με µsoft.windows;). Αυτό το άρθρο έχει σαν στόχο να παρουσιάσει κάποια από αυτά τα θέματα. Στο διαδίκτυο μπορείτε να βρείτε πολλές σελίδες στις οποίες περιγράφουν τις εμπειρίες τους με ένα συγκεκριμένο μοντέλο φορητού υπολογιστή και το &os; οι συγγραφείς τους. Αυτές οι σελίδες δεν είναι διαθέσιμες ως μέρος της επίσημης τεκμηρίωσης του &os;, αλλά μπορεί να περιέχουν χρήσιμες πληροφορίες. Είναι καλή ιδέα να ψάξετε για τέτοιες σελίδες, γράφοντας το μοντέλο του φορητού σας και τη λέξη &os; σε μερικές μηχανές αναζήτησης. Υπάρχει επίσης και μια βάση πληροφοριών με αναλυτικές περιγραφές από πολλούς φορητούς υπολογιστές στη διεύθυνση The &os; Laptop Compatibility List. Αν θέλετε να επικοινωνήσετε με άλλους χρήστες που τρέχουν &os; στο φορητό τους, μπορείτε να γραφτείτε και στην λίστα &a.mobile.name;. Περισσότερες πληροφορίες για τη συμβατότητα του &os; με φορητύς υπολογιστές θα βρείτε και στη σελίδα . Το γραφικό περιβάλλον &xorg; Οι πρόσφατες εκδόσεις των &xorg; δουλεύουν με τις περισσότερες μοντέρνες κάρτες οθόνης που χρησιμοποιούνται σε φορητούς υπολογιστές. Η επιτάχυνση (acceleration) μπορεί να μην υποστηρίζεται, αλλά μια βασική SVGA κατάσταση θά 'πρεπε να δουλεύει χωρίς προβλήματα. Ελέγξτε την τεκμηρίωση του φορητού σας για να δείτε ποια κάρτα οθόνης έχει και μετά συμβουλευτείτε την τεκμηρίωση του &xorg; για να δείτε αν υπάρχει υποστήριξη για την συγκεκριμένη κάρτα. Αν όχι, τότε χρησιμοποιήστε ένα βασικό οδηγό συσκευής (μην προσπαθήσετε να χρησιμοποιήσετε κάποιο οδηγό που να μοιάζει κάπως στο όνομα). Μπορείτε να δοκιμάσετε την τύχη σας με την εντολή Xorg -configure που βρίσκει αυτόματα πολλές από τις σωστές ρυθμίσεις. Το πρόβλημα είναι πολλές φορές να ρυθμιστεί σωστά η οθόνη. Συχνά η τεκμηρίωση επικεντρώνει στις CRT οθόνες. Το να βρείτε τις κατάλληλες ρυθμίσεις (modelines) για μια LCD οθόνη μπορεί να μην είναι και τόσο εύκολο. Μπορεί να είστε τυχεροί και να μην χρειάζεται να βρείτε κάποια γραμμή ρυθμίσεων για την οθόνη, ή να αρκεί απλώς να δώσετε τις σωστές τιμές στα HorizSync και VertRefresh. Αν αυτό δεν δουλέψει, η καλύτερη επιλογή που έχετε είναι να ψάξετε στο δίκτυο για πηγές σχετικές με ρύθμιση των X σε φορητούς (συχνά οι οδηγίες που υπάρχουν είναι σχετικές με το Linux, αλλά δεν έχει σημασία αφού και τα δυο συστήματα χρησιμοποιούν την ίδια έκδοση των &xorg;) και να αντιγράψετε τις κατάλληλες γραμμές ρυθμίσεων που έχει στείλει κάποιος ο οποίος έχει το ίδιο υλικό. Οι περισσότεροι φορητοί έρχονται με δυο κουμπιά στις συσκευές δείκτη που έχουν, που είναι αρκετά ενοχλητικό όταν κάποιος δουλεύει σε X (αφού το μεσαίο κουμπί είναι αυτό που συχνά χρησιμοποιείται για επικόλληση κειμένου). Μπορείτε να αντιστοιχήσετε το ταυτόχρονο πάτημα του δεξιού και αριστερού κουμπιού στις ρυθμίσεις των X σας να εξομοιώνει το πάτημα του μεσαίου κουμπιού με την γραμμή Option "Emulate3Buttons" στο αρχείο xorg.conf, στο τμήμα InputDevice. Modems Οι φορητοί έρχονται συνήθως με εσωτερικά (on-board) μόντεμ. Δυστυχώς, αυτό σημαίνει πως σχεδόν πάντα είναι win-μόντεμ των οποίων η λειτουργικότητα είναι υλοποιημένη σε λογισμικό, για το οποίο οδηγοί υπάρχουν μόνο για &windows;. (Ορισμένοι οδηγοί για τέτοια μόντεμ έχουν αρχίσει να βγαίνουν και για άλλα λειτουργικά συστήματα. Για παράδειγμα, αν το μόντεμ σας χρησιμοποιεί chipset τύπου Lucent LT μπορεί να υποστηρίζεται από το πακέτο comms/ltmdm.) Αν το μόντεμ που έχει ο φορητός σας δεν υποστηρίζεται, θα χρειαστεί να αγοράσετε ένα εξωτερικό μόντεμ. Η πιο καλή λύση από άποψη χώρου είναι να αγοράσετε ένα PC Card (PCMCIA) μόντεμ, που περιγράφεται παρακάτω, αλλά υπάρχουν και φτηνά USB ή σειριακά μόντεμ που μπορεί να σας κοστίσουν λιγότερο. Γενικά, τα κανονικά (όχι win-μόντεμ) μόντεμ πρέπει να δουλεύουν χωρίς κανένα πρόβλημα. Συσκευές PCMCIA (PC Card) Οι πιο πολλοί φορητοί έρχονται με υποδοχές PCMCIA (γνωστές και ως PC Card). Αυτές υποστηρίζονται αρκετά καλά από το FreeBSD. Κοιτάξτε τα μηνύματα της εκκίνησης του υπολογιστή σας (χρησιμοποιώντας την εντολή &man.dmesg.8;) και δείτε αν το FreeBSD έχει βρει τις θύρες αυτές (πρέπει να εμφανίζονται σαν pccard0, pccard1 κλπ. σε συσκευές όπως ή pcic0). Οι εκδόσεις 4.X του &os; έχουν υποστήριξη για 16-bit PCMCIA κάρτες. Οι εκδόσεις 5.Χ και οι νεότερες υποστηρίζουν τόσο 16-bit όσο και 32-bit (CardBus) κάρτες. Μια λίστα από κάρτες που υποστηρίζονται υπάρχει το αρχείο /etc/defaults/pccard.conf. Κοιτάξτε αυτό το αρχείο, και προτιμήστε να αγοράσετε κάρτες που υπάρχουν σε αυτή τη λίστα. Οι κάρτες που δεν υπάρχουν στη λίστα, μπορεί να υποστηρίζονται σαν generic συσκευές: συγκεκριμένα τα πιο πολλά μόντεμ (16-bit) θα πρέπει να δουλεύουν μια χαρά, αρκεί να μην είναι win-μόντεμ (τέτοια μόντεμ υπάρχουν ακόμη και σαν PC Card συσκευές, γι' αυτό να προσέχετε). Αν η κάρτα σας αναγνωρίζεται σαν generic μόντεμ, σημειώστε πως το αρχείο pccard.conf ορίζει μια καθυστέρηση 10 δευτερολέπτων (για να αποφύγει τα κολλήματα που παθαίνουν κάποια μόντεμ). Αυτός ο χρόνος μπορεί να είναι πολύ μεγάλος για το δικό σας μόντεμ, οπότε αξίζει να πειραματιστείτε, μειώνοντάς τον ή ακόμα κι αφαιρώντας τον τελείως. Μερικά μέρη του pccard.conf μπορεί να χρειάζονται διορθώσεις. Ελέγξτε την γραμμή irq, και βεβαιωθείτε ότι δεν γράφει κάποια irq γραμμή που ήδη χρησιμοποιείται από κάποια άλλη συσκευή. Πιο συγκεκριμένα, αν έχετε κάποια on-board κάρτα ήχου, αφαιρέστε την γραμμή irq 5 (αλλιώς μπορεί να κολλήσει ο φορητός σας μόλις εισάγετε μια PC Card συσκευή). Επίσης ελέγξτε ότι χρησμοποιούνται ελεύθερες περιοχές μνήμης. Αν η κάρτα σας δεν αναγνωρίζεται, τότε προσπαθήστε να αλλάξετε την περιοχή μνήμης σε κάποια άλλη επιτρεπόμενη τιμή (από αυτές που υπάρχουν στην σελίδα τεκμηρίωσης &man.pccardc.8;). Αν δεν τρέχει ήδη, ξεκινήστε τον δαίμονα &man.pccardd.8;. (Για να ξεκινάει όταν ανοίγετε τον υπολογιστή σας, προσθέστε στο αρχείο /etc/rc.conf τη γραμμή pccard_enable="YES".) Τώρα οι κάρτες σας θα πρέπει να αναγνωρίζονται όταν τις βάζετε σε κάποια θύρα ή τις αφαιρείτε, και να βλέπετε μηνύματα για νέες συσκευές που ενεργοποιούνται. Ακριβώς πριν την διανομή της έκδοσης 4.4 του FreeBSD έγιναν αρκετές αλλαγές στον κώδικα για τις PC Card συσκευές (μέσα σε αυτές ήταν και αλλαγές στον κώδικα δρομολόγησης των διακοπών ISA, για εκείνες τις μηχανές που το &os; δεν μπορούσε να χρησιμοποιήσει το PCI BIOS). Αν έχετε προβλήματα με αυτή την έκδοση του &os;, δοκιμάστε να την αναβαθμίσετε σε κάποια πιο καινούρια. Power management Δυστυχώς, το power management δεν υποστηρίζεται πολύ καλά από το FreeBSD. Αν είστε τυχεροί, ίσως κάποιες από τις λειτουργίες να δουλεύουν αξιόπιστα. Συνήθως πάντως, δεν δουλεύουν καθόλου. Κάτι που περιπλέκει λίγο τα πράγματα είναι η ύπαρξη δύο διαφορετικών προτύπων για power management: του APM και του ACPI. Το δεύτερο έχει ως στόχο να αντικαταστήσει το πρώτο, επεκτείνοντας ταυτόχρονα τα χαρακτηριστικά του APM. Σε πολλές περιπτώσεις το ACPI το πετυχαίνει αυτό, αλλά μερικές φορές δημιουργεί και προβλήματα που δεν τα έχει το APM. Ορισμένοι φορητοί υπολογιστές υποστηρίζουν και το APM και το ACPI. Κάποιοι άλλοι φορητοί υπολογιστές υποστηρίζουν μόνο το ένα από τα δύο. Πιθανόν να χρειαστεί να δοκιμάσετε και το APM και το ACPI, για να δείτε πιο από τα δύο υποστηρίζει καλύτερα και με πιο αξιόπιστο τρόπο τα χαρακτηριστικά power management του φορητού σας. Δεν έχει νόημα (και πολλές φορές δε γίνεται καν) να ενεργοποιήσετε ταυτόχρονα και το APM και το ACPI, ακόμη κι αν ο φορητός σας υποστηρίζει και τα δύο πρότυπα. APM Το APM (Advanced Power Management) BIOS παρέχει υποστήριξη για διάφορες λειτουργίες power management, όπως standby, suspend, hibernation, μείωση της ταχύτητας του επεξεργαστή, κλπ. Οι λειτουργίες APM υποστηρίζονται από τις εκδόσεις 4.Χ και 5.Χ του &os;. Για να ενεργοποιήσετε την υποστήριξη APM στον πυρήνα του &os;, πρέπει να μεταγλωττίσετε τον πυρήνα σας με τις επιλογές για power management (device apm0 για το &os; 4.X και device apm για το &os; 5.X). Στο &os; 5.Χ υπάρχει και ξεχωριστό άρθρωμα πυρήνα για το APM, το οποίο μπορείτε να φορτώσετε κατά την εκκίνηση του συστήματος προσθέτοντας στο αρχείο /boot/loader.conf τη γραμμή apm_load="YES". Στο &os; 5.X πρέπει να προσθέσετε και τη γραμμή hint.apm.0.disabled="0" στο αρχείο /boot/device.hints. Για να ενεργοποιούνται αυτόματα οι λειτουργίες APM κατά την εκκίνηση του συστήματος πρέπει να προσθέσετε και τη γραμμή apm_enable="YES" στο αρχείο /etc/rc.conf. Στο βασικό σύστημα του &os; περιλαμβάνεται και η υπηρεσία &man.apmd.8;, που ξεκινάει αυτόματα αν προσθέσετε τη γραμμή apmd_enable="YES" στο αρχείο /etc/rc.conf. Η υπηρεσία αυτή χειρίζεται τα διάφορα μηνύματα APM που στέλνει το BIOS. Μπορεί, για παράδειγμα, να βάλει το φορητό σας σε κατάσταση suspend ή να το ενεργοποιήσει πάλι με το πάτημα ενός πλήκτρου στο πληκτρολόγιο ή όταν ανοιγοκλείνετε την οθόνη του φορητού σας. Οι εντολές APM περιγράφονται στη σελίδα βοήθειας &man.apm.8;. Για παράδειγμα, η εντολή apm -b τυπώνει πληροφορίες για την κατάσταση της μπαταρίας (ή 255 αν δεν υποστηρίζεται), η εντολή apm -Z θέτει τον φορητό σε κατάσταση standby, η εντολή apm -z (ή η εντολή zzz) θέτει τον φορητό σε κατάσταση suspend. Για να κλείσει εντελώς ο φορητός μπορείτε να δώσετε την εντολή shutdown -p. Προσοχή όμως: μερικές από αυτές τις εντολές μπορεί να μη δουλεύουν σωστά ή να μη δουλεύουν καθόλου. Σε μερικούς φορητούς δουλεύει σωστά η αλλαγή κατάστασης σε standby ή suspend μόνο από την κονσόλα, κι όχι μέσα από το περιβάλλον X (μπορεί π.χ. η οθόνη να μην επανέρχεται σωστά). Σε αυτή την περίπτωση κι αν χρησιμοποιείτε την έκδοση 5.Χ του &os; (ή κάποια νεότερη), ίσως έχει νόημα να προσθέσετε την επιλογή options SC_NO_SUSPEND_VTYSWITCH στο αρχείο ρυθμίσεων του πυρήνα σας και να μεταγλωττίσετε πάλι τον πυρήνα. Κάτι άλλο που μπορείτε να δοκιμάσετε είναι να γυρίσετε σε κατάσταση κονσόλας πριν τρέξετε το &man.apm.8; (μπορείτε να γυρίσετε σε κατάσταση κονσόλας από το περιβάλλον Χ γράφοντας CtrlAltF1 ). Το εργαλείο &man.vidcontrol.1; μπορεί να αλλάξει αυτόματα σε κατάσταση κονσόλας. Απλά προσθέστε στο αρχείο /etc/apmd.conf τις παρακάτω ρυθμίσεις: apm_event SUSPENDREQ { exec "vidcontrol -s 1 < /dev/console"; exec "/etc/rc.suspend"; } apm_event USERSUSPENDREQ { exec "vidcontrol -s 1 < /dev/console"; exec "sync && sync && sync"; exec "sleep 1"; exec "apm -z"; } apm_event NORMRESUME, STANDBYRESUME { exec "/etc/rc.resume"; exec "vidcontrol -s 9 < /dev/console"; } ACPI Το ACPI (Advanced Configuration and Power Management Interface) παρέχει λειτουργίες διαχείρισης κατάναλωσης (power management) αλλά και αναγνώρισης συσκευών συστήματος (αντικαθιστώντας το PnP και το PCI BIOS). Το &os; έχει υποστήριξη για λειτουργίες ACPI από την έκδοση 5.Χ κι ύστερα, και η υποστήριξη για λειτουργίες ACPI είναι ενεργοποιημένη εξ' ορισμού. Οπότε δε χρειάζεται να κάνετε κάτι για να λειτουργήσει το ACPI. Μπορείτε να ρυθμίσετε το ACPI με το εργαλείο &man.acpiconf.8;. Δυστυχώς, ορισμένοι κατασκευαστές πουλούν φορητούς υπολογιστές με προβληματικές υλοποιήσεις του προτύπου ACPI, οπότε μπορεί να παρουσιαστούν προβλήματα αν ενεργοποιήσετε το ACPI. Μπορεί ακόμη και να μην ξεκινάει καθόλου to &os; με το ACPI ενεργοποιημένο. Αν το ACPI σας δημιουργεί προβλήματα, κοιτάξτε αν ο κατασκευαστής του φορητού σας έχει βγάλει κάποια καινούρια έκδοση από το BIOS του φορητού σας. Η υλοποίηση του ACPI στο &os; βελτιώνεται κι αυτή συνεχώς, οπότε μπορεί να έχει νόημα να αναβαθμίσετε το σύστημά σας σε πιο καινούρια έκδοση. Μπορεί κάποια από τα προβλήματα να διορθωθούν έτσι. Αν θέλετε να απενεργοποιήσετε το ACPI, μπορείτε να προσθέσετε τη γραμμή hint.acpi.0.disabled="1" στο αρχείο /boot/device.hints. Για λιγότερο μόνιμες αλλαγές, μπορείτε να απενεργοποιήσετε προσωρινά το ACPI τρέχοντας την εντολή unset acpi_load στην προτροπή του boot loader. Στην έκδοση 5.1-RELEASE του &os; και τις νεότερες εκδόσεις υπάρχει ένα μενού επιλογών εκκίνησης. Μία από τις επιλογές επιτρέπει την εκκίνηση χωρίς ACPI. Επιλέγοντας 2. Boot &os; with ACPI disabled μπορείτε να ξεκινήσετε το σύστημά σας με απενεργοποιημένες όλες τις λειτουργίες ACPI. Διαχείριση Κατανάλωσης Ισχύος της Οθόνης Το γραφικό περιβάλλον X έχει επίσης κάποιου είδους υποστήριξη για power management (διαβάστε την τεκμηρίωση της εντολής &man.xset.1;, και ψάξτε για dpms). Είναι καλή ιδέα να δοκιμάσετε να το χρησιμοποιήσετε, αλλά κι αυτό το χαρακτηριστικό των X δεν λειτουργεί πάντα σωστά. Μερικές φορές κλείνει την οθόνη αλλά δεν κλείνει το φως.
diff --git a/el_GR.ISO8859-7/articles/linux-users/article.sgml b/el_GR.ISO8859-7/articles/linux-users/article.sgml index 5c9eeb9e03..c44b32fe7f 100644 --- a/el_GR.ISO8859-7/articles/linux-users/article.sgml +++ b/el_GR.ISO8859-7/articles/linux-users/article.sgml @@ -1,665 +1,666 @@ %articles.ent; ]>
Οδηγός Γρήγορης Εκκίνησης του &os; για Χρήστες &linux; John Ferrell 2008 Η Ομάδα Τεκμηρίωσης του &os; $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.linux; &tm-attrib.intel; &tm-attrib.redhat; &tm-attrib.unix; &tm-attrib.general; Το κείμενο αυτό έχει σκοπό να βοηθήσει στη γρήγορη εξοικείωση χρηστών &linux; μέσου / προχωρημένου επιπέδου με τις βασικές έννοιες του &os; Εισαγωγή Το κείμενο αυτό τονίζει τις διαφορές μεταξύ του &os; και του &linux; ώστε μέσοι ή προχωρημένοι χρήστες του &linux; να μπορούν γρήγορα να προσαρμοστούν στις βασικές έννοιες του &os;. Πρόκειται για μια τεχνική εισαγωγή στο &os;, και δεν θα αναφερθούμε σε τυχόν φιλοσοφικές διαφορές μεταξύ των δύο συστημάτων. Το κείμενο αυτό υποθέτει ότι έχετε ήδη εγκαταστήσει το &os;. Αν δεν έχετε εγκαταστήσει το &os; ή χρειάζεστε βοήθεια με την διαδικασία εγκατάστασης του, παρακαλούμε να διαβάσετε το κεφάλαιο Εγκαθιστώντας το FreeBSD στο Εγχειρίδιο του &os;. Κελύφη: Δεν υπάρχει Bash; Όσοι έρχονται από το &linux; συχνά εκπλήσσονται όταν ανακαλύπτουν ότι το Bash δεν είναι το προεπιλεγμένο κέλυφος στο &os;. Στην πραγματικότητα, το Bash δεν υπάρχει καν στην βασική διανομή του &os;. Αντίθετα, το &os; χρησιμοποιεί το &man.tcsh.1; ως το προεπιλεγμένο κέλυφος. Το Bash καθώς και άλλα κελύφη που ίσως θέλετε να εγκαταστήσετε, είναι διαθέσιμα στη Συλλογή Πακέτων και Ports του &os;. Αν εγκαταστήσετε διαφορετικά κελύφη, μπορείτε να χρησιμοποιήσετε την εντολή &man.chsh.1; για να αλλάξετε το προεπιλεγμένο κέλυφος κάποιου χρήστη. Σας συνιστούμε ωστόσο να αφήσετε το κέλυφος του root στο προεπιλεγμένο. Ο λόγος για αυτό είναι ότι τα κελύφη που δεν περιλαμβάνονται στην βασική διανομή του &os;, εγκαθίστανται στην τοποθεσία /usr/local/bin ή /usr/bin. Σε περίπτωση προβλήματος, είναι πιθανόν τα συστήματα αρχείων όπου βρίσκονται τα /usr/local/bin και /usr/bin να μην μπορούν να προσαρτηθούν. Στην περίπτωση αυτή, ο root δεν θα είχε πρόσβαση στο προεπιλεγμένο του κέλυφος, εμποδίζοντας έτσι και την είσοδο του στο σύστημα. Για το λόγο αυτό, υπάρχει ένας δεύτερος λογαριασμός όμοιος με τον root, ο toor, ο οποίος δημιουργήθηκε ειδικά για να χρησιμοποιείται με κάποιο άλλο κέλυφος. Δείτε τις Συχνές Ερωτήσεις Ασφαλείας σχετικά με τον λογαριασμό toor. Πακέτα και Ports: Προσθέτοντας λογισμικό στο &os; Εκτός από την παραδοσιακή μέθοδο εγκατάστασης λογισμικού του &unix; (κατέβασμα του πηγαίου κώδικα, αποσυμπίεση του αρχείου, επεξεργασία και μεταγλώττιση), το &os; προσφέρει δύο ακόμα μεθόδους για την εγκατάσταση εφαρμογών: τα πακέτα και τα ports. Για μια πλήρη λίστα όλων των διαθέσιμων πακέτων και ports, δείτε εδώ. Πακέτα Τα πακέτα είναι προ-μεταγλωττισμένες εφαρμογές, θα λέγαμε το αντίστοιχο για το &os; των αρχείων .deb σε συστήματα Debian/Ubuntu και των αρχείων .rpm σε συστήματα Red Hat/Fedora. Τα πακέτα εγκαθίστανται χρησιμοποιώντας την εντολή &man.pkg.add.1;. Για παράδειγμα, η ακόλουθη εντολή εγκαθιστά τον Apache 2.2: &prompt.root; pkg_add /tmp/apache-2.2.6_2.tbz Η χρήση της παραμέτρου οδηγεί την &man.pkg.add.1; να κατεβάσει αυτόματα τόσο το πακέτο, όσο και τις εξαρτήσεις του, και να το εγκαταστήσει: &prompt.root; pkg_add -r apache22 Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done. [snip] To run apache www server from startup, add apache22_enable="YES" in your /etc/rc.conf. Extra options can be found in startup script. Αν χρησιμοποιείτε μια επίσημη έκδοση του &os; (6.2, 6.3, 7.0, κλπ. που γενικά μπορείτε να εγκαταστήσετε από CD-ROM) η εντολή pkg_add -r θα κατεβάσει τα πακέτα που φτιάχτηκαν για αυτή τη συγκεκριμένη έκδοση. Τα πακέτα αυτά ίσως δεν περιέχουν τις πλέον τελευταίες εκδόσεις των εφαρμογών. Μπορείτε να χρησιμοποιήσετε την μεταβλητή περιβάλλοντος PACKAGESITE για να παρακάμψετε αυτή την προεπιλεγμένη συμπεριφορά. Για παράδειγμα, θέτοντας την PACKAGESITE στην τιμή θα κατεβάσετε τα πιο πρόσφατα πακέτα που υπάρχουν για τη σειρά 6.X. Μπορείτε να διαβάσετε περισσότερα για τις εκδόσεις του &os; στο άρθρο Επιλέγοντας τη Σωστή για Εσάς Έκδοση του &os;. Για περισσότερες πληροφορίες σχετικά με τα πακέτα, παρακαλούμε διαβάστε την ενότητα 4.4 στο Εγχειρίδιο του &os;: Χρησιμοποιώντας το Σύστημα Packages. Ports Η δεύτερη μέθοδος για την εγκατάσταση εφαρμογών στο &os; είναι η Συλλογή των Ports. Η Συλλογή των Ports είναι ένα πλαίσιο λειτουργιών που αποτελείται από Makefiles και αρχεία διαφορών (patches) τα οποία έχουν δημιουργηθεί ειδικά, ώστε να είναι δυνατή η εγκατάσταση διάφορων εφαρμογών στο &os; από τον πηγαίο κώδικα τους. Όταν εγκαθιστάτε ένα port, το σύστημα θα κατεβάσει τον πηγαίο κώδικα, θα εφαρμόσει όλες τις απαιτούμενες αλλαγές χρησιμοποιώντας τα patches, θα μεταγλωττίσει τον κώδικα, και τέλος θα εγκαταστήσει την εφαρμογή. Θα ακολουθήσει την ίδια διαδικασία και για οποιαδήποτε τυχόν εξαρτώμενα προγράμματα. Μπορείτε να βρείτε την Συλλογή των Ports (η οποία μερικές φορές αναφέρεται και ως δέντρο των ports), στον κατάλογο /usr/ports. Αυτό βέβαια προϋποθέτει ότι εγκαταστήσατε την Συλλογή των Ports κατά τη διάρκεια της εγκατάστασης του &os;. Αν δεν το έχετε κάνει, μπορείτε να την προσθέσετε από το CD εγκατάστασης με την βοήθεια του &man.sysinstall.8; ή να την κατεβάσετε από τους εξυπηρετητές του &os; χρησιμοποιώντας την εντολή &man.csup.1; ή την εντολή &man.portsnap.8;. Μπορείτε να βρείτε λεπτομερείς οδηγίες για την εγκατάσταση της Συλλογής των Ports στην ενότητα 4.5.1 του εγχειριδίου. Η εγκατάσταση ενός port είναι γενικά τόσο απλή όσο το να εισέλθετε στον κατάλογο του και να ξεκινήσετε την διαδικασία μεταγλώττισης. Στο ακόλουθο παράδειγμα γίνεται εγκατάσταση του Apache 2.2 από την Συλλογή των Ports: &prompt.root; cd /usr/ports/www/apache22 &prompt.root; make install clean Ένα σημαντικό πλεονέκτημα της χρήσης ports στην εγκατάσταση λογισμικού είναι η ικανότητα προσαρμογής των επιλογών εγκατάστασης. Για παράδειγμα, όταν εγκαθιστάτε τον Apache 2.2 από τα ports μπορείτε να ενεργοποιήσετε την επιλογή mod_ldap θέτοντας απλώς τιμή στη μεταβλητή WITH_LDAP του &man.make.1;: &prompt.root; cd /usr/ports/www/apache22 &prompt.root; make WITH_LDAP="YES" install clean Διαβάστε την ενότητα 4.5 του Εγχειριδίου του &os;, Χρησιμοποιώντας την Ports Collection, για περισσότερες πληροφορίες σχετικά με τη Συλλογή των Ports. Ports ή πακέτα, τι πρέπει να χρησιμοποιήσω; Τα πακέτα είναι στην πραγματικότητα απλώς προ-μεταγλωττισμένα ports, άρα είναι περισσότερο θέμα επιλογής αν είναι επιθυμητή η εγκατάσταση από τον πηγαίο κώδικα ή από έτοιμα εκτελέσιμα. Κάθε μέθοδος έχει τα πλεονεκτήματα της: Πακέτα (έτοιμα εκτελέσιμα) Πιο γρήγορη εγκατάσταση (η μεταγλώττιση μεγάλων εφαρμογών μπορεί να διαρκέσει αρκετή ώρα). Δεν χρειάζεται να κατανοείτε πως γίνεται η μεταγλώττιση του λογισμικού. Δεν χρειάζεται να εγκαταστήσετε μεταγλωττιστές στο σύστημα σας. Ports (πηγαίος κώδικας) Ικανότητα προσαρμογής των επιλογών εγκατάστασης. (Τα πακέτα συνήθως μεταγλωττίζονται με τις προεπιλεγμένες επιλογές). Με τα ports μπορείτε να προσαρμόσετε διάφορες επιλογές, όπως την μεταγλώττιση πρόσθετων αρθρωμάτων, ή αλλαγή της προεπιλεγμένης θέσης εγκατάστασης. Μπορείτε να βάλετε τις δικές σας αλλαγές (patches) αν το επιθυμείτε. Αν δεν έχετε ειδικές απαιτήσεις, τα πακέτα πιθανόν θα σας καλύψουν μια χαρά. Αν ωστόσο χρειάζεται να προσαρμόσετε κάποιες επιλογές, τότε η μέθοδος των ports είναι η καλύτερη. (Και θυμηθείτε, αν χρειάζεστε προσαρμογή αλλά προτιμάτε τα πακέτα, μπορείτε μέσω της συλλογής των ports να φτιάξετε τα δικά σας προσαρμοσμένα πακέτα χρησιμοποιώντας την εντολή make package και αντιγράφοντας τα πακέτα που δημιουργήσατε σε άλλα μηχανήματα.) Εκκίνηση του Συστήματος: Που είναι τα run-levels; Το &linux; χρησιμοποιεί το σύστημα εκκίνησης SysV, ενώ το &os; χρησιμοποιεί το παραδοσιακό σύστημα εκκίνησης BSD. Στο σύστημα &man.init.8; τύπου BSD, δεν υπάρχουν run-levels, ούτε το αρχείο /etc/inittab. Αντί για αυτά, η εκκίνηση ελέγχεται από ένα script εκκίνησης, το &man.rc.8;. To script /etc/rc διαβάζει το αρχείο /etc/defaults/rc.conf και το αρχείο /etc/rc.conf για να καθορίσει ποιες υπηρεσίες πρόκειται να ξεκινήσουν. Οι υπηρεσίες αυτές ξεκινάνε με την εκτέλεση των αντίστοιχων script εκκίνησης που βρίσκονται στους καταλόγους /etc/rc.d/ και /usr/local/etc/rc.d/. Τα scripts αυτά είναι παρόμοια με τα scripts που βρίσκονται στον κατάλογο /etc/init.d/ σε συστήματα &linux;. Γιατί υπάρχουν δύο τοποθεσίες για τα scripts εκκίνησης των υπηρεσιών; Τα scripts που βρίσκονται στον κατάλογο /etc/rc.d/ είναι για εφαρμογές που ανήκουν στο βασικό σύστημα. (Για παράδειγμα, τις &man.cron.8;, &man.sshd.8;, &man.syslog.3;, και άλλες.) Τα scripts που βρίσκονται στον κατάλογο /usr/local/etc/rc.d/ είναι για εφαρμογές που έχουν εγκατασταθεί από τους χρήστες, όπως για παράδειγμα ο Apache, το Squid, κ.λ.π. Ποια είναι η διαφορά μεταξύ του βασικού συστήματος και των εφαρμογών χρήστη; Το &os; αναπτύσσεται ως ένα πλήρες λειτουργικό σύστημα. Με άλλα λόγια, ο πυρήνας, οι βιβλιοθήκες του συστήματος, οι βασικές εντολές (userland, τα προγράμματα όπως το &man.ls.1;, &man.cat.1;, &man.cp.1; κλπ.), αναπτύσσονται και δημοσιεύονται μαζί, ως σύνολο. Αυτό αναφέρεται και ως βασικό σύστημα. Οι εφαρμογές που εγκαθίστανται από τους χρήστες, δεν ανήκουν στο βασικό σύστημα, και τέτοιες είναι για παράδειγμα ο Apache, το X11, ο Mozilla Firefox, κλπ. Αυτού του είδους οι εφαρμογές, γενικά εγκαθίστανται με τη χρήση της Συλλογής Πακέτων και Ports του &os;. Για να ξεχωρίζουν από το υπόλοιπο βασικό σύστημα, οι εφαρμογές χρήστη συνήθως εγκαθίστανται σε υποκαταλόγους του /usr/local/. Έτσι τα εκτελέσιμα προγράμματα των χρηστών βρίσκονται συνήθως στον κατάλογο /usr/local/bin/, τα αντίστοιχα αρχεία ρυθμίσεων τους στον κατάλογο /usr/local/etc/, κ.ο.κ. Οι υπηρεσίες ενεργοποιούνται με την προσθήκη μιας εγγραφής τύπου ΌνομαΥπηρεσίας_enable="YES" στο αρχείο /etc/rc.conf (&man.rc.conf.5;). Ρίξτε μια ματιά στο αρχείο /etc/defaults/rc.conf για να δείτε τις προεπιλογές του συστήματος. Οι ρυθμίσεις που κάνουμε στο αρχείο /etc/rc.conf υπερισχύουν έναντι των προεπιλογών αυτών. Επίσης, κατά την εγκατάσταση πρόσθετων εφαρμογών, βεβαιωθείτε ότι διαβάσατε την αντίστοιχη τεκμηρίωση για να βρείτε πως να ενεργοποιήσετε τυχόν σχετικές υπηρεσίες. Το ακόλουθο απόσπασμα από το αρχείο /etc/rc.conf ενεργοποιεί την υπηρεσία &man.sshd.8; και τον Apache 2.2. Επίσης καθορίζει ότι ο Apache θα ξεκινήσει με ενεργοποιημένη τη δυνατότητα SSL. # enable SSHD sshd_enable="YES" # enable Apache with SSL apache22_enable="YES" apache22_flags="-DSSL" Από τη στιγμή που μια υπηρεσία ενεργοποιηθεί στο αρχείο /etc/rc.conf, μπορείτε να την ξεκινήσετε απευθείας από τη γραμμή εντολών (χωρίς να χρειάζεται να επανεκκινήσετε το σύστημα σας): &prompt.root; /etc/rc.d/sshd start Αν μια υπηρεσία δεν έχει ενεργοποιηθεί στο αρχείο αυτό, μπορείτε να εξαναγκάσετε την εκκίνηση της από την γραμμή εντολών με την επιλογή : &prompt.root; /etc/rc.d/sshd forcestart Ρύθμιση Δικτύου Διεπαφές Δικτύου Αντί για το γενικό αναγνωριστικό τύπου ethX που χρησιμοποιεί το &linux; για την αναγνώριση μιας διεπαφής δικτύου, το &os; χρησιμοποιεί ως αναγνωριστικό το όνομα του προγράμματος οδήγησης ακολουθούμενο από ένα αριθμό. Η ακόλουθη έξοδος από την εντολή &man.ifconfig.8; δείχνει δύο κάρτες δικτύου &intel Pro 1000 (με αναγνωριστικά em0 and em1): &prompt.user; ifconfig em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=b<RXCSUM,TXCSUM,VLAN_MTU> inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255 ether 00:50:56:a7:70:b2 media: Ethernet autoselect (1000baseTX <full-duplex>) status: active em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=b<RXCSUM,TXCSUM,VLAN_MTU> inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255 ether 00:50:56:a7:03:2b media: Ethernet autoselect (1000baseTX <full-duplex>) status: active Ρυθμίσεις Διευθύνσεων IP Μπορείτε να αναθέσετε μια διεύθυνση IP σε μια διεπαφή δικτύου με τη χρήση της εντολής &man.ifconfig.8;. Για να γίνει μόνιμη ωστόσο αυτή η αλλαγή, και να μην χάνεται σε κάθε επανεκκίνηση, θα πρέπει να την περιλάβετε στο αρχείο /etc/rc.conf. Στο ακόλουθο παράδειγμα φαίνεται η καταχώρηση που περιλαμβάνει το όνομα του υπολογιστή (hostname), την διεύθυνση IP, καθώς και την προεπιλεγμένη πύλη (defaultrouter): hostname="server1.example.com" ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0" defaultrouter="10.10.10.1" Χρησιμοποιήστε την ακόλουθη καταχώρηση για να καθορίσετε ότι μια διεπαφή θα λαμβάνει ρυθμίσεις μέσω DHCP: hostname="server1.example.com" ifconfig_em0="DHCP" Firewall Στο &linux; χρησιμοποιείται το IPTABLES το οποίο παρέχει υπηρεσίες firewall σε επίπεδο πυρήνα. Το &os; παρέχει επίσης firewall μέσω του πυρήνα. Για την ακρίβεια, το &os; παρέχει τρία firewalls: IPFIREWALL IPFILTER PF Το IPFIREWALL ή IPFW (η εντολή χειρισμού των κανόνων του IPFW είναι η &man.ipfw.8;) είναι το firewall που έχει αναπτυχθεί και συντηρείται από την ομάδα ανάπτυξης του &os;. Το IPFW μπορεί να συνδυαστεί με το &man.dummynet.4; για να παρέχει δυνατότητες διαμόρφωσης της κίνησης πακέτων (traffic shaping) και να εξομοιώνει διαφορετικούς τύπους συνδέσεων δικτύου. Παράδειγμα ενός κανόνα του IPFW που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH: ipfw add allow tcp from any to me 22 in via $ext_if Το IPFILTER είναι μια εφαρμογή firewall που αναπτύσσεται από τον Darren Reed. Δεν έχει φτιαχτεί ειδικά για το &os;, και έχει μεταφερθεί και σε άλλα λειτουργικά, συμπεριλαμβανομένων των NetBSD, OpenBSD, SunOS, HP/UX, και Solaris. Παράδειγμα ενός κανόνα για το IPFILTER που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH: pass in on $ext_if proto tcp from any to any port = 22 Η τελευταία εφαρμογή firewall, το PF, αναπτύσσεται από το OpenBSD project. Το PF δημιουργήθηκε ως αντικαταστάτης του IPFILTER, και έτσι η σύνταξη του PF είναι αρκετά παρόμοια με αυτή του IPFILTER. Το PF μπορεί να συνδυαστεί με το &man.altq.4; για να παρέχει υπηρεσίες τύπου QoS. Παράδειγμα κανόνα του PF που επιτρέπει εισερχόμενα δεδομένα προς την υπηρεσία SSH: pass in on $ext_if inet proto tcp from any to ($ext_if) port 22 Αναβαθμίζοντας το &os; Υπάρχουν τρεις μέθοδοι για την αναβάθμιση ενός συστήματος &os;: Μέσω του πηγαίου κώδικα, μέσω έτοιμων (binary) αναβαθμίσεων, και μέσω των CD εγκατάστασης. Η εγκατάσταση μέσω του πηγαίου κώδικα είναι η πιο πολύπλοκη, αλλά προσφέρει και τη μεγαλύτερη δυνατή ευελιξία. Η διαδικασία αυτή περιλαμβάνει το συγχρονισμό του τοπικού αντιγράφου του πηγαίου κώδικα του &os; με τον κώδικα του &os; που βρίσκεται στους εξυπηρετητές CVS (Concurrent Versioning System). Από τη στιγμή που το τοπικό αντίγραφο πηγαίου κώδικα είναι ανανεωμένο, μπορείτε να μεταγλωττίσετε νέες εκδόσεις του πυρήνα και των βασικών προγραμμάτων. Για περισσότερες πληροφορίες σχετικά με το σύστημα αναβάθμισης μέσω πηγαίου κώδικα, δείτε το κεφάλαιο 23 στο Εγχειρίδιο του &os;. Οι έτοιμες (binary) αναβαθμίσεις, είναι παρόμοιες με τη χρήση της εντολής yum ή apt-get για την αναβάθμιση ενός συστήματος &linux;. Η εντολή &man.freebsd-update.8; θα κατεβάσει τις αναβαθμίσεις και θα τις εγκαταστήσει. Μπορείτε να καθορίσετε την αυτόματη, ανά τακτά διαστήματα εκτέλεση της, με τη χρήση του &man.cron.8;. Αν πρόκειται να χρησιμοποιήσετε το &man.cron.8; για προγραμματισμένες αναβαθμίσεις, βεβαιωθείτε ότι χρησιμοποιείτε την εντολή freebsd-update cron στο αρχείο &man.crontab.1; για να ελαχιστοποιηθεί η πιθανότητα να γίνεται ανανέωση την ίδια στιγμή από ένα μεγάλο αριθμό μηχανημάτων. 0 3 * * * root /usr/sbin/freebsd-update cron Η τελευταία επιλογή αναβάθμισης, μέσω των CD εγκατάστασης, είναι αρκετά ξεκάθαρη. Απλώς εκκινήστε από το CD εγκατάστασης και επιλέξτε την αντίστοιχη επιλογή αναβάθμισης (upgrade). procfs: Περασμένο αλλά όχι Ξεχασμένο Στο &linux;, θα χρειαστεί να δείτε το /proc/sys/net/ipv4/ip_forward για να καθορίσετε αν είναι ενεργοποιημένη η προώθηση IP (IP forwarding). Στο &os; θα πρέπει να χρησιμοποιήσετε το &man.sysctl.8; για να δείτε αυτή και άλλες ρυθμίσεις του συστήματος, καθώς το &man.procfs.5; θεωρείται παρωχημένο σε πρόσφατες εκδόσεις του λειτουργικού. (Αν και η εντολή sysctl είναι επίσης διαθέσιμη και στο &linux;). Στο παράδειγμα της προώθησης IP, θα χρησιμοποιούσαμε την ακόλουθη εντολή για να καθορίσουμε αν η δυνατότητα αυτή είναι ενεργοποιημένη σε ένα &os; σύστημα: &prompt.user; sysctl net.inet.ip.forwarding net.inet.ip.forwarding: 0 Η επιλογή χρησιμοποιείται για να πάρουμε μια λίστα με όλες τις ρυθμίσεις του συστήματος: &prompt.user; sysctl -a kern.ostype: FreeBSD kern.osrelease: 6.2-RELEASE-p9 kern.osrevision: 199506 kern.version: FreeBSD 6.2-RELEASE-p9 #0: Thu Nov 29 04:07:33 UTC 2007 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC kern.maxvnodes: 17517 kern.maxproc: 1988 kern.maxfiles: 3976 kern.argmax: 262144 kern.securelevel: -1 kern.hostname: server1 kern.hostid: 0 kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 } kern.posix1version: 200112 ... Κάποιες από τις τιμές που δείχνει η εντολή sysctl είναι μόνο για ανάγνωση. Υπάρχουν περιπτώσεις όπου απαιτείται το procfs, όπως για παράδειγμα όταν εκτελείτε παλιότερο λογισμικό, το οποίο κάνει χρήση της εντολής &man.truss.1; για την ανίχνευση των κλήσεων συστήματος, και για την Συμβατότητα με Εκτελέσιμα του &linux;. (Αν και η Συμβατότητα με Εκτελέσιμα του &linux; χρησιμοποιεί το δικό της procfs, το &man.linprocfs.5;). Αν χρειάζεται να προσαρτήσετε το procfs, μπορείτε να προσθέσετε την ακόλουθη εγγραφή στο αρχείο /etc/fstab: proc /proc procfs rw,noauto 0 0 Η επιλογή θα εμποδίσει την αυτόματη προσάρτηση του /proc κατά την εκκίνηση του συστήματος. Προσαρτήστε κατόπιν την procfs χρησιμοποιώντας την ακόλουθη εντολή: &prompt.root; mount /proc Συνηθισμένες Εντολές Διαχείριση Πακέτων Εντολή του &linux; (Red Hat/Debian) Αντίστοιχη εντολή &os; Σκοπός yum install package / apt-get install package pkg_add -r package Εγκατάσταση πακέτου από απομακρυσμένο εξυπηρετητή rpm -ivh package / dpkg -i package pkg_add -v package Εγκατάσταση πακέτου rpm -qa / dpkg -l pkg_info Λίστα εγκατεστημένων πακέτων Διαχείριση Συστήματος Εντολή &linux; Αντίστοιχη εντολή &os; Σκοπός lspci pciconf Λίστα συσκευών PCI lsmod kldstat Λίστα φορτωμένων αρθρωμάτων πυρήνα modprobe kldload / kldunload Φόρτωση/Αποφόρτωση αρθρωμάτων πυρήνα strace truss Ανίχνευση κλήσεων συστήματος Συμπεράσματα Ευελπιστούμε ότι αυτό το κείμενο σας παρείχε αρκετές πληροφορίες για να ξεκινήσετε με το &os;. Για περισσότερες και πιο λεπτομερείς πληροφορίες, παρακαλούμε να διαβάσετε το Εγχειρίδιο του &os; το οποίο επίσης περιέχει και πολλά θέματα που δεν καλύφθηκαν καθόλου στο παρόν κείμενο.
diff --git a/el_GR.ISO8859-7/articles/problem-reports/article.sgml b/el_GR.ISO8859-7/articles/problem-reports/article.sgml index d901294aec..c4e3ac4e52 100644 --- a/el_GR.ISO8859-7/articles/problem-reports/article.sgml +++ b/el_GR.ISO8859-7/articles/problem-reports/article.sgml @@ -1,958 +1,959 @@ %man; %mailing-lists; %trademarks; %freebsd; ]>
Γράφοντας Αναφορές Προβλημάτων για το &os; $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.cvsup; &tm-attrib.ibm; &tm-attrib.intel; &tm-attrib.sparc; &tm-attrib.sun; &tm-attrib.general; Αυτό το άρθρο περιγράφει πως να μορφοποιήσετε και να στείλετε μια αναφορά προβλήματος στην ομάδα ανάπτυξης του &os;. Dag-Erling Smørgrav Γράφτηκε από αναφορές προβλημάτων
Εισαγωγή Μια από τις πιο αποκαρδιωτικές εμπειρίες που μπορεί κάποιος να έχει σαν χρήστης ενός προγράμματος είναι να στείλει μια αναφορά προβλήματος μόνο και μόνο για να δει να την κλείνουν απότομα με μια σύντομη και απότομη εξήγηση όπως π.χ. αυτό δεν είναι πρόβλημα ή λάθος PR. Κατά παρόμοιο τρόπο, μια από τις πιο αποκαρδιωτικές εμπειρίες σαν προγραμματιστής είναι να κατακλύζεται κανείς από αναφορές προβλημάτων που δεν είναι πραγματικά προβλήματα αλλά αιτήσεις για βοήθεια και υποστήριξη ή αναφορές που περιέχουν λίγες έως καθόλου πληροφορίες σχετικά με το πρόβλημα και πως μπορεί κάποιος να το αναπαράγει. Αυτό το κείμενο είναι μια προσπάθεια να περιγράψω πως μπορείτε να γράφετε καλές αναφορές προβλημάτων. Τι είναι, θα με ρωτήσετε, μια καλή αναφορά προβλήματος; Λοιπόν, για να είμαστε ακριβείς, μια καλή αναφορά προβλήματος είναι αυτή που μπορεί να αναλυθεί και να την χειριστεί κάποιος γρήγορα, με αποτέλεσμα την ευχαρίστηση τόσο του αποστολέα όσο και του προγραμματιστή που την ανέλαβε. Παρόλο που το κυριότερο μέρος αυτού του άρθρου αναφέρεται στις αναφορές προβλημάτων του &os;, τα πιο πολλά από όσα θα πούμε εδώ ισχύουν και γενικότερα, για πολλά άλλα πράγματα. Αυτό το άρθρο είναι οργανωμένο θεματικά κι όχι χρονολογικά, οπότε είναι πιο σωστό να το διαβάσετε ολόκληρο πριν να στείλετε κάποια αναφορά προβλήματος, και όχι να το χρησιμοποιήσετε σαν κάποιο βήμα προς βήμα οδηγό.
Πότε να στείλετε μια αναφορά προβλήματος Υπάρχουν πολλοί τύποι προβλημάτων, και δεν αξίζουν όλοι μια αναφορά προβλήματος. Φυσικά κανείς δεν είναι τέλειος, και θα υπάρξουν φορές που θα έχετε πειστεί ότι βρήκατε κάποιο πρόβλημα σε ένα πρόγραμμα, όταν στην πραγματικότητα θα έχετε καταλάβει λάθος τη σύνταξη μιας εντολής ή θα έχετε κάνει κάποιο τυπογραφικό λάθος σε ένα αρχείο ρυθμίσεων (αν κι αυτό μερικές φορές είναι ενδεικτικό κακής ή λειψής τεκμηρίωσης ή ακόμα και κακής διαχείρισης λαθών από κάποια εφαρμογή). Ακόμα, υπάρχουν περιπτώσεις που το να στείλετε κάποια αναφορά προβλήματος δεν είναι σωστή κίνηση και το μόνο που μπορεί να πετύχει είναι να ενοχλήσει ή εσάς ή τους προγραμματιστές. Από την άλλη όμως, υπάρχουν περιπτώσεις που μπορεί να είναι καλή σκέψη να στείλετε μια αναφορά προβλήματος για κάτι που δεν είναι bug—μια βελτίωση ή μια αίτηση για κάποιο νέο χαρακτηριστικό, για παράδειγμα. Τότε λοιπόν, πώς μπορείτε να αποφασίσετε αν κάτι είναι πρόβλημα ή όχι; Ένας απλός κανόνας είναι ότι το πρόβλημά σας δεν είναι bug αν μπορεί να εκφραστεί σαν ερώτηση (συνήθως της μορφής Πώς κάνω το Χ; ή Πού μπορώ να βρω το Ψ;). Δεν είναι πάντα τόσο άσπρο-μαύρο τα πράγματα βέβαια, αλλά ο κανόνας της ερώτησης καλύπτει την μεγαλύτερη πλειοψηφία των περιπτώσεων. Αν αυτό που ψάχνετε είναι κάποια απάντηση, ίσως είναι καλύτερα να στείλετε την ερώτησή σας στην &a.questions;. Κάποιες περιπτώσεις που πιθανόν να είναι καλή ιδέα να στείλετε μια αναφορά προβλήματος για κάτι που δεν είναι bug, είναι: Αιτήσεις για μελλοντικές βελτιώσεις. Είναι γενικά καλή ιδέα να δοκιμάσετε να συζητήσετε πρώτα τέτοιες ιδέες σε κάποια λίστα ηλεκτρονικού ταχυδρομείου πριν στείλετε μια αναφορά προβλήματος. Ειδοποίηση για ενημερωμένες εκδόσεις προγραμμάτων (κυρίως ports, αλλά και μέρη του βασικού συστήματος που συντηρούνται από τρίτους, όπως το BIND και τα διάφορα GNU εργαλεία). Κάτι άλλο σημαντικό που πρέπει να δώσετε προσοχή είναι αν το σύστημα στο οποίο εμφανίζεται το πρόβλημα που σας απασχολεί είναι σχετικά ενημερωμένο. Πρέπει πάντα να δοκιμάζετε να έχετε ένα όσο το δυνατόν πιο ενημερωμένο σύστημα και να δοκιμάζετε να αναπαράγετε το πρόβλημα σε ένα τέτοιο σύστημα πριν να στείλετε μια αναφορά προβλήματος. Υπάρχουν πολύ λίγα πράγματα που μπορούν να ενοχλήσουν ένα προγραμματιστή περισσότερο από το να παίρνει μια αναφορά προβλήματος για κάποιο bug που έχει ήδη διορθωθεί. Τέλος, ένα bug που δεν μπορεί κανείς να το αναπαράγει είναι πολύ δύσκολο να διορθωθεί. Αν το bug εμφανίστηκε μια φορά μόνο και δεν μπορείτε να το αναπαράγετε εσείς, και φαινομενικά δεν εμφανίζεται σε κανέναν άλλο, είναι πολύ μικρές οι πιθανότητες να μπορεί κάποιος προγραμματιστής να το ανακαλύψει και να καταλάβει τί είναι αυτό που προκαλεί το λάθος. Αυτό δεν σημαίνει πως δεν συμβαίνει, αλλά σημαίνει πως η πιθανότητα να οδηγήσει η αναφορά σας στην λύση του προβλήματος είναι πάρα πολύ μικρή, και μάλλον είναι καλύτερο να σταματήσετε να ασχολείστε με το θέμα. Ακόμα χειρότερα, κάποιες φορές αυτού του είδους τα προβλήματα οφείλονται σε προβλήματα του υλικού (χαλασμένους σκληρούς δίσκους ή επεξεργαστές που υπερθερμαίνονται). Πρέπει πάντοτε πριν στέλνετε μια αναφορά προβλήματος, όταν φυσικά είναι δυνατόν να γίνει κάτι τέτοιο, να προσπαθείτε να αποκλείσετε τέτοιες περιπτώσεις.
Προετοιμασία Είναι καλή ιδέα να κάνετε πάντα μια μικρή έρευνα πριν να στείλετε κάποια αναφορά προβλήματος. Μπορεί το πρόβλημά σας να το έχει ήδη αναφέρει και κάποιος άλλος. Μπορεί να είναι θέμα συζητήσεων σε κάποια λίστα ηλεκτρονικού ταχυδρομείου ή να ήταν πρόσφατα. Μπορεί ακόμα, να είναι ήδη διορθωμένο το πρόβλημα σε κάποια έκδοση νεώτερη από αυτή που τρέχετε. Πρέπει λοιπόν να ελέγχετε όλα τα προφανή σημεία, πριν να στείλετε μια αναφορά προβλήματος. Για το &os; αυτό σημαίνει: Την λίστα με τις πιο συχνές ερωτήσεις (FAQ) για το &os;. Η λίστα αυτή παρέχει απαντήσεις σε μια μεγάλη ποικιλία ερωτήσεων, όπως αυτές που αφορούν το υλικό, τις εφαρμογές και τις ρυθμίσεις του πυρήνα. Οι λίστες ηλεκτρονικού ταχυδρομείου—αν δεν έχετε γραφτεί σε κάποια από αυτές, μπορείτε να χρησιμοποιήσετε το αρχείο στις σελίδες του &os; για να αναζητήσετε πληροφορίες σχετικές με το πρόβλημα. Αν το πρόβλημά σας δεν έχει συζητηθεί στις λίστες είναι, γενικά, καλή ιδέα να στείλετε ένα γράμμα στις λίστες ηλεκτρονικού ταχυδρομείου και να περιμένετε λίγες μέρες μήπως κάποιος βρει κάτι που εσείς δεν προσέξατε. Προαιρετικά, όλο το δίκτυο. Χρησιμοποιήστε την αγαπημένη σας μηχανή αναζήτησης για να βρείτε πληροφορίες σχετικά με το πρόβλημα. Έτσι μπορεί να βρείτε ακόμη και αναφορές από λίστες ηλεκτρονικού ταχυδρομείου ή ομάδες συζητήσεων που δεν ξέρατε ότι υπάρχουν ή δεν σκεφτήκατε να ψάξετε. Ύστερα μπορείτε να αναζητήσετε σχετικές αναφορές στην βάση αναφορών του &os; (GNATS). Αν το πρόβλημά σας δεν είναι πρόσφατο ή αρκετά περίεργο, είναι πολύ πιθανόν να έχει ήδη στείλει κάποιος άλλος μια αναφορά. Το πιο σημαντικό από όλα όμως είναι να δείτε μήπως η τεκμηρίωση του &os; περιέχει κάποια λύση στο πρόβλημά σας. Για το βασικό σύστημα του &os; πρέπει να μελετήσετε προσεκτικά τις οδηγίες που περιέχει το αρχείο /usr/src/UPDATING στο σύστημά σας ή αυτές που περιέχει η τελευταία έκδοση του αρχείου, η οποία είναι διαθέσιμη στη διεύθυνση: . (Αυτό το αρχείο περιέχει κρίσιμες πληροφορίες για αναβάθμιση από μια έκδοση του &os; σε κάποια άλλη—ειδικά για τις εκδόσεις του &os.current;). Αν το πρόβλημα εμφανίζεται σε κάτι που εγκαταστάθηκε ως μέρος της Συλλογής των Ports του &os;, τα αντίστοιχα αρχεία με πληροφορίες είναι τα: /usr/ports/UPDATING (για πληροφορίες σχετικά με συγκεκριμένα πακέτα), /usr/ports/CHANGES (για αλλαγές που αφορούν όλη την Συλλογή των Ports). Κι αυτά τα αρχεία είναι διαθέσιμα μέσω CVSweb, στις διευθύνσεις και αντίστοιχα. Αφού έχετε κάνει όλα αυτά θα πρέπει να βεβαιωθείτε ότι η αναφορά σας θα πάει στα κατάλληλα άτομα. Η πρώτη παγίδα εδώ είναι ότι αν το πρόβλημα αφορά κάποιο πρόγραμμα που γράφεται από τρίτους κι όχι την ομάδα ανάπτυξης του &os; (είναι π.χ. για κάποιο port ή πακέτο που στήσατε), πρέπει να αναφέρετε το πρόβλημα στον αρχικό συγραφέα του προγράμματος, κι όχι στην ομάδα του &os;. Υπάρχουν δυο εξαιρέσεις σε αυτόν τον κανόνα. Η πρώτη είναι όταν το πρόβλημα δεν εμφανίζεται σε άλλες πλατφόρμες, οπότε σε αυτήν την περίπτωση μπορεί το πρόβλημα να σχετίζεται με τον τρόπο που μεταφέρθηκε το πρόγραμμα στο &os;. Η δεύτερη περίπτωση είναι όταν ο αρχικός συγγραφέας έχει ήδη διορθώσει το πρόβλημα και έχει διανείμει κάποιο patch ή μια νέα έκδοση του προγράμματος, αλλά δεν έχει μεταφερθεί ακόμα η νέα έκδοση στο &os;. Η δεύτερη παγίδα είναι ότι το σύστημα που χρησιμοποιεί η ομάδα του &os; για να παρακολουθεί και να καταγράφει προβλήματα καταχωρεί τις αναφορές σε κατηγορίες ανάλογα με τις επιλογές αυτού που στέλνει την αναφορά. Έτσι, αν διαλέξετε λάθος κατηγορία για την αναφορά σας, υπάρχει πάντα η πιθανότητα να περάσει απαρατήρητη για κάποιο χρονικό διάστημα, μέχρι κάποιος να την βάλει στη σωστή κατηγορία χειροκίνητα.
Γράφοντας αναφορές προβλημάτων Τώρα που έχετε αποφασίσει ότι αξίζει να γράψετε κάποια αναφορά προβλήματος, και ότι όντως είναι κάποιο πρόβλημα του &os; αυτό που θέλετε να περιγράψετε, είναι ώρα να γράψετε την αναφορά. Πριν μπούμε σε λεπτομέρειες σχετικά με το πρόγραμμα που χρησιμοποιείται για να γράφονται και να στέλνονται οι αναφορές προβλημάτων, ας δούμε μερικά κόλπα που θα σας βοηθήσουν να στείλετε χρήσιμες αναφορές.
Κόλπα για να γράφετε χρήσιμες αναφορές προβλημάτων Μην αφήνετε κενή την γραμμή Synopsis. Οι αναφορές προβλημάτων στέλνονται σε μια λίστα ηλεκτρονικού ταχυδρομείου, η οποία προωθεί την αναφορά σας σε ανθρώπους σε όλο τον κόσμο (όπου το κείμενο της γραμμής Synopsis χρησιμοποιείται ως θέμα του μηνύματος), αλλά και σε μια βάση δεδομένων. Οποιοσδήποτε προσπαθήσει αργότερα να δει μια λίστα με τις αναφορές προβλημάτων μπορεί να αγνοήσει εντελώς την αναφορά σας αν δεν έχει θέμα. Να έχετε κατα νου σας ότι οι αναφορές μένουν σε αυτή τη βάση μέχρι κάποιος να ασχοληθεί μαζί τους και να τις κλείσει. Μια ανώνυμη αναφορά, χωρίς κανένα θέμα, συνήθως, χάνεται στο θόρυβο. Μη χρησιμοποιείτε αταίριαστες περιγραφές στη γραμμή Synopsis. Μην θεωρείτε ότι οποιοσδήποτε διαβάσει την αναφορά σας θα έχει και το κατάλληλο υπόβαθρο για να καταλάβει τι λέτε, οπότε όσο περισσότερες λεπτομέρειες συμπεριλάβετε τόσο καλύτερα είναι. Για παράδειγμα, η αναφορά και το πρόβλημα που στέλνετε ποιο μέρος του συστήματός σας αφορά; Το πρόβλημα εμφανίζεται μόνο κατά τη διάρκεια της εγκατάστασης ή και μετά; Για παράδειγμα, δείτε πόσο πιο καλά είναι αν αντί να γράψετε Synopsis: portupgrade is broken γίνετε πιο περιγραφικοί Synopsis: port sysutils/portupgrade coredumps on -current. (Ειδικά στην περίπτωση των ports είναι πολύ χρήσιμο να υπάρχει τόσο η κατηγορία όσο και το όνομα του port στη γραμμή της σύνοψης). Αν έχετε κάποιο patch, πείτε το. Είναι πολύ ππιο πιθανό να ασχοληθεί κάποιος με μια αναφορά προβλήματος που περιλαμβάνει και κάποιο patch από ότι με κάποια που απλά αναφέρει το πρόβλημα. Αν η αναφορά σας περιλαμβάνει κάποιο patch τότε είναι καλή ιδέα να προσθέσετε το κείμενο [patch] στην αρχή της Synopsis σας. (Παρόλο που δεν είναι υποχρεωτικό να χρησιμοποιήσετε ακριβώς αυτό το κείμενο, συνήθως αυτό χρησιμοποιούν οι περισσότεροι μέχρι σήμερα.) Αν είστε εσείς ο υπεύθυνος για τη συντήρηση κάποιου μέρους του κώδικα, πείτε το. Αν είναι δική σας ευθύνη η συντήρηση κάποιου μέρους του κώδικα του &os; (για παράδειγμα είστε ο MAINTAINER κάποιου port), δεν είναι άσχημη ιδέα να προσθέσετε το κείμενο [maintainer update] στην αρχή της Synopsis σας. Οπωσδήποτε όμως να θυμηθείτε να θέσετε την τιμή του Class της αναφοράς σας σε maintainer-update. Έτσι όποιο μέλος της ομάδας ανάπτυξης ασχοληθεί με την αναφορά σας δε θα χρειάζεται να ελέγξει αν όντως εσείς είστε ο maintainer. Να είστε ακριβείς & συγκεκριμένοι. Όσο περισσότερες πληροφορίες γράψετε σχετικά με το πρόβλημα που αντιμετωπίζετε, τόσο αυξάνονται οι πιθανότητες να πάρετε μια χρήσιμη και σωστή απάντηση. Συμπεριλάβετε την έκδοση του &os; που χρησιμοποιείτε (παρακάτω θα δούμε πως υπάρχει συγκεκριμένο μέρος που μπορείτε να το γράψετε αυτό) και ποιας αρχιτεκτονικής είναι το μηχάνημά σας. Είναι ιδιαίτερα χρήσιμο να γράψετε αν τρέχετε κάποια επίσημη έκδοση (π.χ. από ένα CDROM ή κάποια που κατεβάσατε από το δίκτυο) ή αν το σύστημα σας το ενημερώνετε με το &man.cvsup.1; (κι αν ναι, πόσο πρόσφατα το ενημερώσατε). Αν χρησιμοποιείτε το &os.current;, αυτό είναι και το πρώτο πράγμα που θα σας ρωτήσει κάποιος, επειδή οι αλλαγές και οι διορθώσεις (ειδικά για τα σημαντικά προβλήματα) γίνονται, γενικά, πολύ γρήγορα και συχνά. Οι χρήστες του &os.current; πρέπει να τις παρακολουθούν με προσοχή και να ενημερώνουν συχνά το σύστημά τους. Συμπεριλάβετε και τις ρυθμίσεις που περιέχει το αρχείο make.conf στο σύστημά σας. Σημειώστε πως η χρήση της επιλογής -O2 του &man.gcc.1; είναι γνωστή πηγή προβλημάτων. Παρόλο που η ομάδα ανάπτυξης του &os; δεν θα 'λεγε όχι σε patches που να διορθώνουν αυτά τα προβλήματα είναι γενικά απρόθυμη στο να αναζητά τις αιτίες τέτοιων προβλημάτων επειδή δεν έχει το χρόνο ή το ανθρώπινο δυναμικό να το κάνει. Αν τα προβλήματά σας οφείλονται σε αυτό το πρόβλημα των optimizations μπορεί να σας απαντήσουν ότι δεν υποστηρίζεται αυτός ο τρόπος χρήσης του &os;. Αν το πρόβλημά σας αφορά τον πυρήνα, τότε να είστε προετοιμασμένοι να δώσετε και τις εξής έξτρα πληροφορίες. (Δεν είναι ανάγκη να τις συμπεριλάβετε έτσι κι αλλιώς, αφού το μόνο που θα καταφέρετε είναι να αυξήσετε χωρίς λόγο το χώρο που απαιτεί η βάση προβλημάτων στο δίσκο, αλλά δεν είναι κακή ιδέα να συμπεριλάβετε μόνο τα μέρη που θεωρείτε σχετικά): τις ρυθμίσεις του πυρήνα σας (και ποιές συσκευές έχετε εγκατεστημένες στο μηχάνημά σας) αν έχετε ενεργοποιημένες επιλογές debugging στον πυρήνα σας (όπως π.χ. την επιλογή WITNESS) κι αν ναι αν το πρόβλημα συνεχίζει να υπάρχει αφαιρώντας αυτές τις επιλογές ένα backtrace, αν μπορέσατε να καταγράψετε κάποιο αν έχετε διαβάσει προσεκτικά το αρχείο src/UPDATING κι αν το πρόβλημά σας αναφέρεται ή όχι σε αυτό (είναι σίγουρο ότι κάποιος θα σας ρωτήσει γι αυτό) αν μπορείτε να τρέξετε κάποιο άλλο πυρήνα σαν προσωρινή λύση (έτσι αποκλείονται προβλήματα με το υλικό, όπως δίσκοι που άρχισαν να χαλάνε ή επεξεργαστές που υπερθερμαίνονται, που μπορεί να σας μπερδέψουν και να νομίσετε ότι έχει πρόβλημα ο πυρήνας) Αν έχετε πρόβλημα με κάποιο port, τότε να έχετε διαθέσιμες τις εξής πληροφορίες. (Δεν είναι ανάγκη να τις συμπεριλάβετε έτσι κι αλλιώς, αλλά δεν είναι κακή ιδέα να συμπεριλάβετε μόνο τα μέρη που θεωρείτε σχετικά): ποια ports έχετε εγκαταστήσει μεταβλητές του περιβάλλοντος που μπορεί να επηρεάζουν τις προκαθορισμένες ρυθμίσεις του συστήματος στο αρχείο bsd.port.mk, όπως π.χ. η μεταβλητή περιβάλλοντος PORTSDIR αν έχετε διαβάσει το αρχείο ports/UPDATING κι αν το πρόβλημά σας αναφέρεται ή όχι σε αυτό (είναι σίγουρο ότι κάποιος θα σας ρωτήσει γι αυτό) Αποφύγετε τις ασαφείς αιτήσεις για νέα χαρακτηριστικά. Οι αναφορές της μορφής στ' αλήθεια, κάποιος πρέπει να υλοποιήσει κάτι που να κάνει το τάδε ή το δείνα δεν είναι πολύ σίγουρο ότι θα τύχουν καλύτερης αντιμετώπισης από τις αναφορές που περιγράφουν συγκεκριμένες αλλαγές. Να θυμάστε ότι ο κώδικας είναι διαθέσιμος σε όλους, οπότε αν θέλετε κάποιο νέο χαρακτηριστικό ο καλύτερος τρόπος να το δείτε να υλοποιείται σαν μέρος του &os; είναι να το φτιάξετε εσείς. Πολλές φορές μάλιστα είναι προτιμότερο να ρωτήσετε στην freebsd-questions παρά να δημιουργήσετε μια καινούρια εγγραφή στη βάση αναφορών προβλημάτων. Σιγουρευτείτε ότι δεν έχει στείλει ήδη κάποιος άλλος μια παρόμοια αναφορά. Παρόλο που το έχουμε ξαναπεί αυτό, αξίζει να το αναφέρουμε πάλι εδώ. Χρειάζεται μόνο ένα λεπτό για να ανοίξετε ένα φυλλομετρητή και να χρησιμοποιήσετε τη μηχανή αναζήτησης αναφορών προβλημάτων του &os; στη διεύθυνση . (Φυσικά, όλοι έχουμε ξεχάσει κάποιες φορές να το κάνουμε αυτό.) Αποφύγετε τις επικίνδυνες αιτήσεις. Αν η αναφορά σας επηρεάζει ένα μέρος του κώδικα για το οποίο υπήρξαν διαφωνίες στο παρελθόν, μάλλον πρέπει εκτός από τα patches που θα ετοιμάσετε να είστε προετοιμασμένοι και για να δικιολογήσετε τις αλλαγές σας, εξηγώντας γιατί είναι Σωστό να Γίνουν. Όπως είπαμε και πιο πριν, μια προσεκτική αναζήτηση στα αρχεία των λιστών ηλεκτρονικού ταχυδρομείου στη διεύθυνση είναι πάντα καλός τρόπος να προετοιμαστείτε για τέτοιες καταστάσεις. Να είστε ευγενικοί. Σχεδόν όλοι όσοι πρόκειται να ασχοληθούν με την αναφορά σας για κάποιο πρόβλημα είναι εθελοντές. Σε κανέναν δεν αρέσει να τους λένε τι να κάνουν όταν ήδη κάνουν το ίδιο πράγμα εδώ και καιρό για λόγους που δεν έχουν σχέση με οικονομικές απολαβές. Είναι καλό να το έχετε κατά νου αυτό όταν ασχολείστε με προγράμματα Ανοιχτού Λογισμικού ή Λογισμικού Ελεύθερου Κώδικα.
Πριν αρχίσετε Πριν τρέξετε το πρόγραμμα &man.send-pr.1;, σιγουρευτείτε ότι η μεταβλητή περιβάλλοντος VISUAL (ή η μεταβλητή περιβάλλοντος EDITOR αν δεν είναι ορισμένη η VISUAL) έχει κάποια λογική τιμή. Ελέγξτε επίσης ότι η αποστολή ηλεκτρονικής αλληλογραφίας λειτουργεί σωστά. Το πρόγραμμα &man.send-pr.1; χρησιμοποιεί μηνύματα ηλεκτρονικής αλληλογραφίας για την αποστολή και την παρακολούθηση των αναφορών προβλημάτων. Αν δε μπορείτε να στείλετε μηνύματα ηλεκτρονικής αλληλογραφίας από το μηχάνημα στο οποίο χρησιμοποιείτε το πρόγραμμα &man.send-pr.1;, το μήνυμά σας και η αναφορά δε θα φτάσει ποτέ στη βάση αναφορών προβλημάτων του &os;. Για λεπτομέρειες σχετικά με τη ρύθμιση της ηλεκτρονικής αλληλογραφίας στο &os; δείτε το κεφάλαιο περί Ηλεκτρονικής Αλληλογραφίας στο Εγχειρίδιο του &os; στη διεύθυνση .
Επισυνάπτοντας patches ή αρχεία Το πρόγραμμα &man.send-pr.1; έχει την δυνατότητα να επισυνάψει αρχεία σε μια αναφορά προβλήματος. Μπορείτε να επισυνάψετε όσα αρχεία θέλετε, αρκεί το καθένα να έχει μοναδικό βασικό όνομα (το όνομα του αρχείου χωρίς την διαδρομή). Απλά χρησιμοποιήστε την παράμετρο στην γραμμή εντολών για να καταδείξετε τα ονόματα των αρχείων που θέλετε να επισυνάψετε: &prompt.user; send-pr -a /var/run/dmesg -a /tmp/errors Δεν χρειάζεται να ανησυχείτε για τα αρχεία που δεν είναι κείμενο. Θα κωδικοποιηθούν κατάλληλα για να μην τα αλλάξει το πρόγραμμα αποστολής ηλεκτρονικής αλληλογραφίας που χρησιμοποιείτε. Αν μαζί με την αναφορά στείλετε και κάποιο patch, φροντίστε να χρησιμοποιήσετε την επιλογή ή την στην εντολή &man.diff.1; για να δημιουργήσετε ένα context ή unified αρχείο διαφορών, και μην ξεχάσετε να σημειώσετε τις ακριβείς εκδόσεις των αρχείων που αλλάξατε έτσι ώστε οι προγραμματιστές που θα διαβάσουν την αναφορά σας να μπορούν να κάνουν τις ίδιες αλλαγές εύκολα. Για τα προβλήματα που αφορούν τον πυρήνα ή τα εργαλεία του βασικού συστήματος είναι προτιμότερο το patch σας να βασίζεται στο &os.current; (το HEAD branch του CVS) αφού όλες οι αλλαγές πρέπει πρώτα να γίνονται σε αυτό το branch για να δοκιμαστούν. Αφού περάσει κάποιος καιρός κι οι αλλαγές δοκιμαστούν αρκετά μόνο τότε ενσωματώνονται/μεταφέρονται οι αλλαγές στο &os.stable; branch. Αν ενσωματώσετε το patch σας στην αναφορά, αντί να το στείλετε σαν επισύναψη, προσέξτε αρκετά γιατί ένα αρκετά συχνό πρόβλημα είναι πως πολλά προγράμματα ηλεκτρονικής αλληλογραφίας έχουν την τάση να μετατρέπουν τους στηλοθέτες σε κενά, κάτι που καταστρέφει εντελώς οτιδήποτε αποτελεί μέρος κάποιου Makefile. Γενικά, πάντως, δεν τρέχει τίποτα αν ενσωματώσετε κάποιο μικρό patch στην αναφορά σας—ειδικά αν είναι φανερό πως διορθώνει το πρόβλημα που περιγράφεται στην αναφορά. Τα πιο μεγάλα patches, κυρίως κώδικας που μπορεί να απαιτεί λεπτομερή ανάλυση και δοκιμές πριν γίνει commit, είναι καλύτερα να τα ανεβάζετε σε κάποιο web ή ftp server και να περιλαμβάνετε στην αναφορά σας το URL για να τα βρίσκει ο αναγνώστης της αναφοράς αντί να ενσωματώνετε το ίδιο το patch. Πολλές φορές τα patches καταστρέφονται όταν είναι μέρος ενός email, ειδικά όταν περνούν από το πρόγραμμα GNATS, κι όσο πιο μεγάλο είναι το patch τόσο πιο δύσκολο θα είναι για όποιον ενδιαφέρεται να το διορθώσει για να το δοκιμάσει. Ένα άλλο καλό που έχει η διανομή ενός patch μέσω web ή ftp είναι ότι μπορείτε να αλλάξετε το patch χωρίς να χρειάζεται να το ξαναστείλετε όλο σαν μέρος μιας απάντησης στην αρχική αναφορά. Μην ξεχνάτε επίσης ότι, αν δεν το δηλώσετε ρητά στην αναφορά που θα στείλετε ή στο ίδιο το patch, οποιεσδήποτε αλλαγές στείλετε θεωρείται αυτόματα ότι είναι διαθέσιμες κάτω από τους ίδιους όρους και με την ίδια άδεια που έχει η έκδοση του κάθε αρχείου που έχετε τροποποιήσει.
Συμπληρώνοντας την φόρμα της αναφοράς Όταν τρέξετε το πρόγραμμα &man.send-pr.1; θα δείτε μια φόρμα αναφοράς. Η φόρμα της αναφοράς αποτελείται από μια σειρά πεδίων. Κάποια από αυτά είναι είναι προσυμπληρωμένα. Κάποια άλλα έχουν σχόλια που εξηγούν τον σκοπό τους ή αναφέρουν τις αποδεκτές τιμές. Μην ανησυχείτε για τα σχόλια, αφού έτσι κι αλλιώς θα αφαιρεθούν αυτόματα αν δεν τα αλλάξετε ή δεν τα σβήσετε. Στην κορυφή της φόρμας, κάτω από τις γραμμές που αρχίζουν με SEND-PR: υπάρχουν οι επικεφαλίδες ενός γράμματος. Συνήθως δεν χρειάζετε να κάνετε κάποια αλλαγή σε αυτές, εκτός κι αν στέλνετε την αναφορά από κάποιο μηχάνημα το οποίο μπορεί να στείλει email αλλά δεν μπορεί να λάβει, που θα πρέπει να προσέξετε οι γραμμές From: και Reply-To: να έχουν την πραγματική σας email διεύθυνση. Μπορείτε φυσικα να στείλετε στον εαυτό σας ή κάποιον άλλο ένα αντίγραφο της αναφοράς προβλήματος προσθέτοντας τις κατάλληλες Cc: γραμμές. Μετά θα δείτε μια σειρά από πεδία μιας γραμμής: Submitter-Id: Μην το αλλάξετε αυτό. Η προκαθορισμένη τιμή του, current-users, είναι σωστή ακόμα κι αν χρησιμοποιείτε το &os.stable;. Originator: Αυτό το πεδίο είναι κανονικά προσυμπληρωμένο με το όνομα του τρέχοντος χρήστη. Αν αυτό δεν είναι σωστό, παρακαλώ συμπληρώστε την τιμή αυτού του πεδίου με το πραγματικό σας όνομα και προαιρετικά την email διεύθυνσή σας μέσα σε < και >. Organization: Αυτό το πεδίο δεν χρησιμοποιείται για τίποτα σημαντικό. Confidential: Αυτό το πεδίο είναι προσυμπληρωμένο με no. Δεν έχει νόημα να το αλλάξετε σε κάτι άλλο, αφού δεν υπάρχουν εμπιστευτικές αναφορές προβλημάτων στο &os;—η συλλογή των προβλημάτων είναι ανοιχτή και διαθέσιμη μέσω CVSup για όλο τον κόσμο. Synopsis: Συμπληρώστε αυτό με μια σύντομη και ακριβή περιγραφή του προβλήματος. Η synopsis χρησιμοποιείται σαν το θέμα στα email τα σχετικά με την αναφορά, καθώς και σε λίστες αναφορών και περιλήψεις. Οι αναφορές προβλήματος με περίεργες περιγραφές στο πεδίο αυτό συνήθως αγνοούνται. Όπως είπαμε παραπάνω, αν η αναφορά σας περιλαμβάνει κάποιο patch καλό είναι να ξεκινήσετε την γραμμή της σύνοψης με το κείμενο [patch]. Αν πάλι είστε ο υπεύθυνος (maintainer) για κάποιο μέρος του κώδικα, καλό είναι να προσθέσετε στη σύνοψη το κείμενο [maintainer update] και να θέσετε την τιμή της επικεφαλίδας Class σε maintainer-update. Severity: Μπορεί να πάρει τιμή non-critical, serious ή critical. Μην αντιδράτε υπερβολικά. Αποφύγετε να χαρακτηρίζετε τις αναφορές σας critical εκτός κι αν είναι όντως μεγάλης σημασίας (π.χ. root exploit, κάποιο panic που μπορεί να αναπαραχθεί εύκολα) ή serious εκτός κι αν είναι κάτι που αφορά πολλούς χρήστες (προβλήματα με συγκεκριμένους οδηγούς συσκευών ή εργαλεία του συστήματος). Δεν είναι απαραίτητο πως οι προγραμματιστές του &os; θα ασχοληθούν πιο νωρίς με το πρόβλημά σας αν υπερβάλλετε για την σημασία του επειδή υπάρχει πολύς κόσμος που το κάνει αυτό—μάλιστα, υπάρχουν προγραμματιστές που αγνοούν εντελώς αυτό το πεδίο και το επόμενο, ακριβώς επειδή αυτοί που στέλνουν τις αναφορές έχουν την τάση να υπερεκτιμούν τα προβλήματά τους. Priority: Μπορεί να πάρει τιμή low, medium ή high. Προτεραιότητα high πρέπει να δίνεται μόνο σε αναφορές προβλημάτων τα οποία επηρεάζουν πρακτικά όλους τους χρήστες του &os; και medium στα προβλήματα που αφορούν ένα μεγάλο αριθμό χρηστών. Category: Επιλέξτε μια από τις ακόλουθες κατηγορίες (από το αρχείο /usr/gnats/gnats-adm/categories): advocacy: αναφορές σχετικές με την δημόσια εικόνα του &os;. Χρησιμοποιείται σπάνια. alpha: αναφορές σχετικές με την πλατφόρμα Alpha platform. amd64: αναφορές σχετικά με προβλήματα της πλατφόρμας AMD64. bin: αναφορές σχετικές με προγράμματα στο βασικό σύστημα. conf: αναφορές σχετικές με αρχεία ρυθμίσεων, προκαθορισμένες τιμές, κλπ. docs: αναφορές σχετικές με τις manual pages ή γενικά την τεκμηρίωση. gnu: αναφορές σχετικές με προγράμματα GNU, όπως π.χ. &man.gcc.1; ή &man.grep.1;. i386: αναφορές σχετικές με την πλατφόρμα i386 platform. ia64: αναφορές σχετικές με την πλατφόρμα ia64. java: αναφορές σχετικές με την Java™. kern: αναφορές για τον πυρήνα. misc: οτιδήποτε δεν ταιριάζει σε κάποια από τις υπόλοιπες κατηγορίες. (Σημειώστε πως είναι εύκολο να χαθεί μια αναφορά σε αυτή την κατηγορία.) ports: αναφορές σχετικές με τα ports. powerpc: αναφορές σχετικές με την πλατφόρμα PowerPC. sparc64: αναφορές σχετικές με την πλατφόρμα SPARC. standards: αναφορές σχετικές με την συμβατότητα με τα διάφορα Πρότυπα. threads: αναφορές σχετικές με την υλοποίηση των threads στο &os; (ειδικά στο &os.current;). www: αλλαγές ή βελτιώσεις στην δικτυακή σελίδα του &os;. Class: Για το πεδίο αυτό, επιλέξτε μια από τις παρακάτω τιμές: sw-bug: software bugs. doc-bug: λάθη στην τεκμηρίωση. change-request: ιδέες και αιτήσεις για πρόσθετα χαρακτηριστικά ή αλλαγές σε υπάρχοντα. update: ενημερώσεις των ports ή άλλων προγραμμάτων που φτιάχνονται από τρίτους. maintainer-update: ενημερώσεις σε ports για τα οποία συντηρείτε εσείς. Release: Η έκδοση του &os; που χρησιμοποιείτε. Αυτό το πεδίο συμπληρώνεται αυτόματα από την &man.send-pr.1; και χρειάζεται να το αλλάξετε μόνο στην περίπτωση που στέλνετε μια αναφορά προβλήματος από άλλο μηχάννημα, κι όχι από αυτό που έχει το πρόβλημα. Τέλος, υπάρχει μια σειρά από πεδία με περισσότερες από μια γραμμές το καθένα: Environment: Εδώ πρέπει να περιγράφεται, με όσο το δυνατόν μεγαλύτερη ακρίβεια, το περιβάλλον στο οποίο παρατηρήσατε το πρόβλημα. Αυτό περιλαμβάνει την έκδοση του λειτουργικού συστήματος, την έκδοση του συγκεκριμένου προγράμματος ή αρχείου που έχει το πρόβλημα και οποιαδήποτε άλλα χαρακτηριστικά από το σύστημα και τις ρυθμίσεις του θεωρείτε σημαντικά, άλλα εγκατεστημένα προγράμματα που πιστεύετε ότι πιθανόν έχουν σχέση με το πρόβλημα, κλπ—πολύ απλά, οτιδήποτε χρειάζεται να ξέρει ένας προγραμματιστής για να εξομοιώσει με ακρίβεια το περιβάλλον στο οποίο εμφανίζεται το πρόβλημα. Description: Μια πλήρης και ακριβής περιγραφή του προβλήματος που αντιμετωπίζετε. Προσπαθείστε να αποφύγετε εικασίες σχετικά με την αιτία του προβλήματος εκτός κι αν είστε σίγουροι ότι βρίσκετε σε σωστό δρόμο, καθώς μπορεί να οδηγήσετε κάποιο προγραμματιστή να κάνει λάθος υποθέτοντας κάποια πράγματα που δεν είναι σωστά. How-To-Repeat: Μια περίληψη των ενεργειών που χρειάζονται για να αναπαράγει κάποιος το πρόβλημα. Fix: Κατά προτίμηση κάποιο patch ή τουλάχιστον κάτι που ξεπερνά/αποφεύγει το πρόβλημα (κάτι που όχι μόνο βοηθά όποιον έχει το ίδιο πρόβλημα να το αποφύγει, αλλά μπορεί ακόμη και να βοηθήσει κάποιον προγραμματιστή να καταλάβει την πραγματική αιτία του προβλήματος). Αν δεν έχετε βέβαια κάποια ιδέα, μπορείτε πάντα να αφήσετε αυτό το πεδίο κενό. Είναι πολύ καλύτερα από το να κάνετε απλώς εικασίες.
Στέλνοντας την αναφορά Όταν τελειώσετε με το γράψιμο, την συμπλήρωση της φόρμας, και σώσετε το κείμενο της αναφοράς σε ένα αρχείο, το πρόγραμμα &man.send-pr.1; θα σας δείξει μια προτροπή s)end, e)dit or a)bort?. Μπορείτε τότε να πατήσετε s για να συνεχίσετε και να σταλεί η αναφορά, e για να ξεκινήσετε πάλι τον κειμενογράφο σας, ή a για να εγκαταλείψετε. Αν επιλέξετε το τελευταίο, το κείμενο της αναφοράς σας θα παραμείνει στο δίσκο (η &man.send-pr.1; θα γράψει το όνομα του αρχείου πριν τερματίσει), οπότε μπορείτε να το επεξεργαστείτε με την ησυχία σας αργότερα ή να το μεταφέρετε σε κάποιο σύστημα με καλύτερη σύνδεση δικτύου, πριν να το στείλετε με την επιλογή της &man.send-pr.1;: &prompt.user; send-pr -f ~/my-problem-report Αυτή η εντολή θα διαβάσει μια αναφορά προβλήματος από το αρχείο, θα κάνει κάποιους ελέγχους στα περιεχόμενα, θα σβήσει τα σχόλια και στείλει την αναφορά.
Απαντήσεις Μόλις η αναφορά σας καταχωρηθεί, θα πάρετε μια απάντηση μέσω email που θα περιλαμβάνει τον αριθμό που έχει σχετιστεί με την αναφορά σας και μια διεύθυνση URL όπου μπορείτε να διαβάσετε την αναφορά και την κατάστασή της. Με λίγη τύχη, κάποιος θα ενδιαφερθεί για την αναφορά σας και θα προσπαθήσει να λύσει το πρόβλημα ή τουλάχιστον, ανάλογα με την περίπτωση, να σας εξηγήσει γιατί δεν είναι πρόβλημα. Θα ειδοποιήστε αυτόματα για κάθε αλλαγή στην κατάσταση της αναφοράς, και θα παίρνετε αντίγραφα μέσω αλληλογραφίας με οποιαδήποτε σχόλια ή patches στέλνει κάποιος σαν απάντηση στην αναφορά σας. Αν κάποιος σας ζητήσει επιπλέον πληροφορίες ή θυμηθείτε κάτι ή ανακαλύψετε κάτι που δεν έχετε αναφέρει στην αρχική σας αναφορά, τότε χρησιμοποιήστε έναν από τους ακόλουθους τρόπους για να στείλετε συμπληρωματικές πληροφορίες: Ο πιο εύκολος τρόπος είναι να ακολουθήσετε το σύνδεσμο στην σελίδα της αναφοράς, την οποία μπορείτε να βρείτε από τη σελίδα αναζήτησης των αναφορών. Αν ακολουθήσετε το σύνδεσμο που έχει στο κάτω μέρος η σελίδα θα ανοίξει το πρόγραμμα αλληλογραφίας σας με το σωστό αποστολέα και το σωστό θέμα (αρκεί ο φυλλομετρητής σας υποστηρίζει την εκτέλεση εξωτερικών προγραμμάτων). Εναλλακτικά μπορείτε να στείλετε απλά ένα μήνυμα στη διεύθυνση bug-followup@FreeBSD.org, προσέχοντας να βάλετε το σωστό αριθμό αναφοράς στο θέμα έτσι ώστε να τον βρει το σύστημα παρακολούθησης αναφορών του &os; και να ξέρει σε ποιά αναφορά πρέπει να επισυνάψει το μήνυμά σας. Αν δεν συμπεριλάβετε το σωστό αριθμό αναφοράς στο θέμα, το πρόγραμμα GNATS που οργανώνει τις αναφορές σε κατηγορίες θα μπερδευτεί και θα ανοίξει μια νέα αναφορά την οποία μετά αναθέτει στον διαχειριστή του συστήματος GNATS. Έτσι η απάντησή σας θα μείνει αφανής μέχρι να ψάξει κάποιος για αναφορές που είναι καταχωρημένες λάθος και να τις ξεκαθαρίσει, κάτι που μπορεί να γίνει μετά από μέρες ή και ολόκληρες εβδομάδες. Λάθος τρόπος: Subject: that PR I sent Σωστός τρόπος: Subject: Re: ports/12345: compilation problem with foo/bar Αν η αναφορά προβλήματος παραμένει στην κατάσταση open παρόλο που το πρόβλημα έχει σταματήσει να εμφανίζεται πλέον, απλώς στείλτε μια απάντηση στην αναφορά (με τον τρόπο που αναφέραμε παραπάνω), εξηγώντας πως ή πότε διορθώθηκε το πρόβλημα.
Αναφορές Παρακάτω θα βρείτε κάποιες πηγές που είναι σχετικές με το θέμα των αναφορών προβλήματος. Δεν είναι μια πλήρης ή επαρκής λίστα, φυσικά. How to Report Bugs Effectively—μια πολύ καλή έκθεση από τον Simon G. Tatham που περιγράφει πως μπορείτε να γράφετε χρήσιμες αναφορές προβλήματων (όχι μόνο για το &os;). Problem Report Handling Guidelines—χρήσιμες πληροφορίες για τον τρόπο με τον οποίο χειρίζεται τις αναφορές προβλημάτων η ομάδα ανάπτυξης του &os;
diff --git a/el_GR.ISO8859-7/articles/releng-packages/article.sgml b/el_GR.ISO8859-7/articles/releng-packages/article.sgml index 7d0fa8116d..5476a45f83 100644 --- a/el_GR.ISO8859-7/articles/releng-packages/article.sgml +++ b/el_GR.ISO8859-7/articles/releng-packages/article.sgml @@ -1,386 +1,387 @@ %man; %teams; %freebsd; %authors; ]>
Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους του FreeBSD Steve Price
steve@FreeBSD.org
$FreeBSD$ Αυτό το άρθρο περιγράφει την προσέγγιση της ομάδας οργάνωσης των επίσημων εκδόσεων του FreeBSD για την παραγωγή μιας υψηλής ποιότητας συλλογής πακέτων για τα επίσημα μέσα εγκατάστασης του FreeBSD (CD-ROM αυτή τη στιγμή). Αυτό το κείμενο αποτελεί μέρος μιας δουλειάς που βρίσκεται σε εξέλιξη, μα όταν τελικά ολοκληρωθεί θα περιγράφει την διαδικασία που χρησιμοποιείται για την μεταγλώττιση της συλλογής των πακέτων στο "Ports Cluster" του FreeBSD.org, πως μπορούν να ρυθμιστούν οποιαδήποτε άλλα μηχανήματα για να χρησιμοποιηθούν με τον ίδιο τρόπο, πως να χωριστούν τα πακέτα σε ομάδες στα μέσα της εγκατάστασης, καθώς και πως μπορούν να γίνουν έλεγχοι στο σύνολο των πακέτων.
Μεταγλώττιση των πακέτων από την Συλλογή των Ports Η Συλλογή των Ports του FreeBSD αποτελείται από περισσότερα από &os.numports; προγράμματα, γραμμένα από τρίτους, που είναι διαθέσιμα για χρήση στο FreeBSD. Οι &a.portmgr; είναι υπεύθυνοι για την συντήρηση ενός ολοκληρωμένου δέντρου πηγαίου κώδικα που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν μεταγλωττισμένα πακέτα, τα οποία θα συνοδεύουν κάθε επίσημη έκδοση του FreeBSD. Το Cluster των Ports Για να είμαστε σίγουροι ότι κάθε πακέτο δεν έχει προβλήματα όταν δίνεται μαζί με κάποια επίσημη έκδοση του FreeBSD, κάθε port μεταγλωττίζεται σε ένα ξεχωριστό περιβάλλον chroot, ξεκινώντας με άδειους τους καταλόγους /usr/local και /usr/X11R6. Τα προαπαιτούμενα πακέτα εγκαθίστανται σαν προμεταγλωττισμένα πακέτα πριν ξεκινήσει η μεταγλώττιση. Αυτές οι προϋποθέσεις είναι που ενισχύουν την ομοιομορφία στην διαδικασία μεταγλώττισης του κάθε πακέτου. Ξεκινώντας τη μεταγλώττιση κάθε πακέτου σε ένα καθαρό περιβάλλον, μπορούμε να ελέγξουμε ότι τα συνοδευτικά δεδομένα κάθε πακέτου (όπως η λίστα με τα προαπαιτούμενα πακέτα) είναι ακριβή, κι έτσι δεν θα δημιουργήσουμε ποτέ πακέτα που μπορεί σε κάποια συστήματα να δουλεύουν και σε άλλα όχι ανάλογα με τα προγράμματα που έχουν εγκατασταθεί πριν. Το Cluster των Ports για την αρχιτεκτονική x86 αποτελείται αυτή τη στιγμή από ένα κύριο κόμβο (Dual Pentium III στα 733MHz) και 8 δευτερεύοντες κόμβους (Pentium III στα 800MHz), οι οποίοι κάνουν την μεταγλώττιση των πακέτων. Με αυτά τα μηχανήματα, μια μεταγλώττιση όλων των ports παίρνει πάνω από 24 ώρες. Αυτά τα μηχανήματα είναι co-located μαζί με τα άλλα μηχανήματα της ομάδας του FreeBSD στον χώρο Exodus του Yahoo, στην Santa Clara, CA. To Cluster των Ports για την αρχιτεκτονική Alpha αποτελείται από 7 PWS 500A μηχανήματα, τα οποία χάρισε η Compaq. Είναι κι αυτά co-located στους χώρους του Yahoo. Ο Διαχωρισμός των Πακέτων Το συνολικό μέγεθος των πακέτων ξεπέρασε τα 4.1 gigabytes για την έκδοση 4.4 του FreeBSD. Αυτό είναι λίγο πρόβλημα όμως για τις διανομές που είναι βασισμένες σε CDROM, γιατί γενικά θέλουμε να μπορούμε να διανέμουμε όσο το δυνατόν περισσότερα πακέτα χωρίς όμως να αναγκάζουμε τον χρήστη να αλλάζει δισκάκια για να ικανοποιήσει τις απαιτήσεις εγκατάστασης των πακέτων. Η λύση είναι φυσικά να φτιάξουμε ομάδες από πακέτα με αντίστοιχη λειτουργικότητα που έχουν παρόμοιες απαιτήσεις, και να βάλουμε όλα τα πακέτα κάθε ομάδας στον ίδιο δίσκο. Αυτό το τμήμα του άρθρου περιγράφει το λογισμικό και τη μεθοδολογία που χρησιμοποιείται για να δημιουργηθούν οι συλλογές από πακέτα που περιέχονται στους δίσκους των επίσημων εκδόσεων του FreeBSD. Τα script και τα υπόλοιπα αρχεία που χρειάζονται για να χωριστούν τα πακέτα σε ομάδες μπορείτε να τα βρείτε στο CVS στον κατάλογο ports/Tools/scripts/release. Αντιγράψτε αυτό τον κατάλογο σε ένα μηχάνημα που έχει αρκετό χώρο για να κρατήσει τουλάχιστον 2 ή 3 φορές το σύνολο των πακέτωνν που θέλετε να χωρίσετε σε ομάδες. Τα παρακάτω scripts υπάρχουν σε αυτό τον κατάλογο: config Αυτό το αρχείο περιέχει το μέγεθος του ελεύθερου χώρου σε κάθε δίσκο, και αν τα πακέτα, τα distfiles, ή και τα δυο επιτρέπεται να πάνε σε κάθε συγκεκριμένο δίσκο. Η πρώτη στήλη είναι το όνομα του δίσκου. Πρέπει να είναι της μορφής disc[0-9a-z]. Τώρα το αρχείο αυτό έχε ρυθμίσεις μέσα για 10 δίσκους (4 για το σετ της εγκατάστασης και 6 για το συμπληρωματικό toolkit). Υπάρχει κι ένας ακόμα δίσκος που λέγεται scratch, όπου καταλήγουν όλα τα πακέτα και distfiles που δεν χωράνε πουθενά αλλού. Η δεύτερη στήλη μπορεί να είναι 1 ή 0, όπου η τιμή 1 σημαίνει ότι μπορούν να τοποθετηθούν πακέτα σε αυτό το δίσκο. Η τρίτη στήλη δουλεύει με παρόμοιο τρόπο, αλλά κανονίζει αν μπορούν να τοποθετηθούν distfiles σε αυτό το δίσκο. Η τελευταία στήλη περιέχει τον αριθμό των ελεύθερων bytes στον δίσκο. doit.sh Αυτό κάνει την περισσότερη δουλειά. Μόλις έχετε βάλει όλα τα αρχεία στη θέση τους και έχετε κάνει τις απαραίτητες ρυθμίσεις, αυτό το script οδηγεί την διαδικασία διαχωρισμού των πακέτων. Έχετε το νου σας όσο τρέχει όμως, γιατί είναι interactive. Περισσότερες λεπτομέρειες σχετικά με αυτό το script υπάρχουν και παρακάτω. checkdeps.pl Ελέγχει αν όλα τα προαπαιτούμενα πακέτα είναι διαθέσιμα, όταν του δοθεί ένα αρχείο INDEX κι ένας κατάλογος με πακέτα. oneshot.pl Αυτό είναι το πρόγραμμα που κάνει όλα τα μαγικά (και χρησιμοποιώ τον όρο πολύ χαλαρά, καθώς χρησιμοποιεί μια brute force προσέγγιση). Με είσοδο μια συλλογή από απαιτούμενα πακέτα για κάθε δίσκο και ένα σετ από πακέτα/distfiles αυτό είναι το script που τοποθετεί ένα πακέτο ή distfile σε ένα δίσκο μαζί με όλα τα πακέτα από τα οποία εξαρτάται. print-cdrom-packages.sh Αυτό το αρχείο είναι ένα αντίγραφο του src/release/scripts/print-cdrom-packages.sh από την έκδοση στην οποία δουλεύετε. scrubindex.pl Αυτό το πρόγραμμα αφαιρεί από ένα INDEX αρχείο τις γραμμές που είναι σχετικές με πακέτα που δεν υπάρχουν. Αφαιρεί επίσης και τα πακέτα που απαιτούν τα XFree86. ΣΗΜΕΙΩΣΗ: θα πρέπει να ρυθμίσετε την τιμή της μεταβλητής xdep για να βεβαιωθείτε ότι ο αριθμός έκδοσης είναι σωστός. setup.sh Αυτό είναι ένα βοηθητικό script που χρησιμοποιείται στο bento cluster για να κατεβάσει ένα αντίγραφο του ports tree και του αντίστοιχου σετ από πακέτα/distfiles. Μια λίστα από ελέγχους που πρέπει να κάνετε και ρυθμίσεις που πρέπει να ελέγξετε πριν συνεχίσετε είναι: Διορθώστε το config για να περιέχει πληροφορίες για όλους τους δίσκους που έχετε, τα μεγέθη τους, και αν θέλετε να περιέχουν πακέτα, distfiles, και τα δύο, ή κανένα από τα δύο. Βεβαιωθείτε ότι έχετε σβήσει τον κατάλογο gen αν υπάρχει κάποιος παλιός κατάλογος με αυτό το όνομα που έχει ξεμείνει από παλιότερα. Αυτός ο κατάλογος περιέχει διάφορα αρχεία που έχουν νόημα μόνο για το τωρινό τρέξιμο των προγραμμάτων. Στα πρώτα τρεξίματα που θα κάνετε για να χωριστούν τα πακέτα είναι καλύτερα να μην κάνετε στα αλήθεια την αντιγραφή των πακέτων και των distfiles. Αυτό θα σας γλιτώσει και χρόνο και χώρο στο δίσκο όσο κάνετε δοκιμές μέχρι να σιγουρευτείτε ότι όλα πάνε καλά. Στο αρχείο oneshot.pl αλλάξτε την τιμή της μεταβλητής fake σε 1 κι αντί να κάνει αντιγραφή των αρχείων θα τα κάνει απλώς &man.touch.1;. Βεβαιωθείτε ότι αλλάξατε την τιμή της fake πάλι σε 0 πριν δώσετε τους δίσκους σε αυτόν που θα κάνει την μαζική παραγωγή βέβαια, γιατί αλλιώς οι δίσκοι θα έχουν ένα κατάλογο με πολλά αρχεία μηδενικού μεγέθους. Βεβαιωθείτε ότι έχετε ένα πρόσφατο αντίγραφο του print-cdrom-packages.sh και ότι είναι από την σωστή έκδοση. Ελέγξτε ότι στο αρχείο scrubindex.pl αναφέρεται η σωστή έκδοση των XFree86. Η ίδια τιμή πρέπει να υπάρχει και στα doit.sh. Το επόμενο βήμα είναι να φτιάξετε ένα αντίγραφο από το ports tree, τα πακέτα και τα distfiles από ένα πρόσφατο τρέξιμο της μεταγλώττισης των πακέτων από το cluster των ports. Δείτε το αρχείο setup.sh για ένα παράδειγμα. Τα βασικά βήματα που πρέπει να κάνετε όμως είναι τα εξής: Αντιγράψτε το ports.tar.gz και αποσυμπιέστε το στον κατάλογο ports μαζί με το doit.sh και τον κατάλογο scripts. Σβήστε τις συντομεύσεις και τους καταλόγους των πακέτων/distfiles. Το bento τα έχει αυτά σαν συντομεύσεις και θα πάρετε λάθος αποτελέσματα αν δεν τα σβήσετε πριν συνεχίσετε. Δημιουργήστε ένα νέο κατάλογο για τα ports/πακέτα και αντιγράψτε το σετ των πακέτων από το cluster μεταγλώττισης των πακέτων. Δημιουργήστε ένα νέο κατάλογο για ports/distfiles και αντιγράψτε τα distfiles από το cluster μεταγλώττισης των πακέτων. ΣΗΜΕΙΩΣΗ: αν δεν θέλετε κανένα distfile απλά δημιουργήστε τον κατάλογο και αφήστε τον άδειο. Αυτός ο κατάλογος πρέπει να υπάρχει ακόμα κι αν δεν περιέχει τίποτα. Τώρα είμαστε πλέον έτοιμοι για το διασκεδαστικό κομμάτι της ομαδοποίησης των πακέτων. Μπορείτε να ξεκινήσετε την διαδικασία τρέχοντας το ./doit.sh. Την πρώτη φορά που το τρέχετε κάνει τα εξής: Δημιουργεί μια λίστα από τα ports που δεν μπορούν να διανέμονται στο FTP master site. Σας ρωτάει αν θέλετε να σβήσετε αυτά τα ports, αφού δεν μπορούν να διανέμονται ελεύθερα. Γενικά εδώ καλύτερα να απαντάτε (y)es. Φτιάχνει μια λίστα από τα πακέτα που δεν μπορούν να μπουν στους δίσκους. Σας ρωτάει αν θέλετε να σβήσετε τα πακέτα/distfiles που δεν μπορούν να μπουν σε CD-ROM. Καλύτερα είναι να απαντήσετε (y)es εδώ. Αντιγράφει το αρχείο INDEX από τον κατάλογο ports στον κατάλογο gen. Καθώς το κάνει, αφαιρεί τις γραμμές που αντιστοιχούν σε ports ή πακέτα που δεν υπάρχουν. Ελέγχει επίσης αν υπάρχουν όλα τα προαπαιτούμενα πακέτα και ικανοποιούνται οι εξαρτήσεις των πακέτων/ports. Δημιουργεί μια λίστα από πακέτα που είναι απαραίτητο να υπάρχουν σε κάθε δίσκο. Σας ρωτάει αν θέλετε να αντιγράψετε τα αρχεία στους δίσκους. Αφού γίνει η αντιγραφή στους δίσκους θα ελέγξει για εξαρτήσεις που λείπουν, θα καθαρίσει το αρχείο INDEX και θα δημιουργήσει ένα αρχείο CHECKSUM.MD5. Ελέγχει ότι όλα τα απαιτούμενα πακέτα είναι όντως σε κάθε δίσκο, και τυπώνει ένα συγκεντρωτικό πίνακα με τα μεγέθη των δίσκων. θα πρέπει να είστε αρκετά τυχεροί για να πετύχει ο διαχωρισμός την πρώτη φορά, όλα τα πακέτα που χρειάζονται να μεταγλωττιστούν σωστά και να χωρέσουν και σε κάθε δίσκο. Το μόνο που χρειάζεται μετά είναι να δώσετε την τιμή 0 στην μεταβλητή fake στο αρχείο oneshot.pl και να ξανατρέξετε το ./doit.sh. Την δεύτερη φορά που θα τρέξει, καθώς και όλες τις υπόλοιπες, δεν θα κάνει τα βήματα 1-5 που αναφέραμε παραπάνω. Αν θέλετε να ξανατρέξετε κάποια από αυτά τα βήματα, κοιτάξτε στο doit.sh για να δείτε ποια αρχεία πρέπει να σβήσετε ώστε να μην αποφύγει το doit.sh αυτά τα βήματα. Αν θέλετε να ξανατρέξουν όλα τα βήματα, ο πιο εύκολος τρόπος είναι με rm -rf gen. Όταν τελειώσει επιτυχώς η διαδικασία, τα πακέτα/distfiles θα έχουν αντιγραφεί σε καταλόγους disc* και όσα έχουν απομείνει θα υπάρχουν στον κατάλογο scratch. Τι να κάνετε αν κάτι δεν πάει καλά; Μερικά από τα πιο συχνά προβλήματα και συμβουλές γι' αυτά φαίνονται παρακάτω: Απαιτούμενα πακέτα που λείπουν Αυτό συμβαίνει πολύ συχνά. Θα χρειαστεί είτε να περιμένετε για ένα νέο σετ από πακέτα να ετοιμαστεί, στο οποίο τα πακέτα που λείπουν θα έχουν μεταγλωττιστεί επιτυχώς, ή να βρείτε κάποιον που μπορεί να ξεκινήσει πάλι την διαδικασία μεταγλώττισης των πακέτων για σας. Μην προσπαθήσετε να μεταγλωττίσετε εσείς τα πακέτα που λείπουν στα δικά σας μηχανήματα και να τα προσθέσετε στο σωρό. Παρόλο που μπορεί να τα καταφέρετε κι έτσι αν είστε εξαιρετικά προσεκτικοί, στη μεγαλύτερη πλειοψηφία των περιπτώσεων θα σας ξεφύγει κάποια λεπτομέρεια και η απλή προσθήκη ενός μόνο πακέτου μπορεί να προκαλέσει προβλήματα σε εκατοντάδες άλλα πακέτα. Απαιτούμενα πακέτα που δεν χωράνε Μερικές φορές συμβαίνει κι αυτό, και είναι σχετικά απλό να διορθωθεί. Απλώς διορθώστε το print-cdrom-packages.sh και μετακινήστε τα πακέτα μέχρι να βρείτε μια διάταξη που να βολεύει. Ναι, αυτό είναι μια χρονοβόρα διαδικασία και ένας από τους σοβαρούς λόγους για τους οποίους θα πρέπει να ενεργοποιήσετε την μεταβλητή fake στο αρχείο oneshot.pl μέχρι να καταφέρετε το αποτέλεσμα που θέλετε. Ξανατρέξτε το ./doit.sh όταν τελειώσετε με τις ρυθμίσεις σας. Απαιτούμενα πακέτα δεν είναι στον σωστό (ή σε κανένα) δίσκο Αυτό συνήθως σημαίνει ότι δεν τα προσθέσατε στο print-cdrom-packages.sh ή τα τοποθετήσατε σε λάθος δίσκο. Αυτό το script είναι ο κανόνας στον οποίο βασίζεται η απόφαση για την τοποθεσία ενός πακέτου. Αν θέλετε οπωσδήποτε να τοποθετηθεί ένα συγκεκριμένο πακέτο σε κάποιο δίσκο, αυτός είναι ο μόνος τρόπος να το κάνετε με σιγουριά. Αν κολλήσετε σε κάποιο σημείο και δεν μπορείτε να βρείτε γιατί κάτι δεν πάει καλά ή πως να το διορθώσετε, στείλτε ένα email στον &a.steve; για βοήθεια.
diff --git a/el_GR.ISO8859-7/articles/releng/article.sgml b/el_GR.ISO8859-7/articles/releng/article.sgml index 9e47bb5727..085f736244 100644 --- a/el_GR.ISO8859-7/articles/releng/article.sgml +++ b/el_GR.ISO8859-7/articles/releng/article.sgml @@ -1,1026 +1,1027 @@ %authors; %teams; %mailing-lists; %man; %freebsd; Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους'> ]>
Η Οργάνωση των Εκδόσεων του FreeBSD Νοέμβρης 2001 BSDCon Europe Murray Stokely Έχω ασχοληθεί με την ανάπτυξη προϊόντων βασισμένων στο FreeBSD από το 1997, στην Walnut Creek CDROM, στην BSDi, και τώρα στην Wind River Systems. Η έκδοση 4.4 του FreeBSD ήταν η πρώτη επίσημη έκδοση του FreeBSD στην οποία έπαιξα σημαντικό ρόλο.
murray@FreeBSD.org
$FreeBSD$ Αυτό το άρθρο περιγράφει την αντιμετώπιση και οργάνωση της ομάδας ανάπτυξης του FreeBSD, όσον αφορά στην προετοιμασία ποιοτικών εκδόσεων του Λειτουργικού Συστήματος FreeBSD. Εξηγεί με λεπτομέρεια την μεθοδολογία που χρησιμοποιείται για τις επίσημες εκδόσεις του FreeBSD και περιγράφει τα εργαλεία που είναι διαθέσιμα σε όσους ενδιαφέρονται να παράγουν παραμετροποιημένες εκδόσεις του FreeBSD για εσωτερική ή εμπορική χρήση και ανάπτυξη προϊόντων.
Εισαγωγή Η ανάπτυξη του FreeBSD είναι μια πολύ ανοιχτή διαδικασία. Το FreeBSD αποτελείται από συνεισφορές χιλιάδων ανθρώπων από όλο τον κόσμο. Η ομάδα του FreeBSD παρέχει πρόσβαση μέσω ανώνυμου CVS[1] σε όλους, έτσι ώστε να μπορεί όποιος θέλει να δει μηνύματα log, διαφορές (patches) που έχουν τα διάφορα development branches, και άλλα χαρακτηριστικά που βοηθούν την ανάπτυξη, τα οποία προκύπτουν από την χρήση ενός αυστηρού συστήματος διαχείρισης κώδικα. Αυτό αποτέλεσε και τον πιο σημαντικό παράγοντα έλξης για ένα μεγάλο αριθμό από ταλαντούχους προγραμματιστές από όλο τον κόσμο στο FreeBSD. Είναι προφανές, βέβαια, πως πολύ σύντομα θα είχε γίνει εντελώς χαοτική η κατάσταση αν είχαν όλοι, από όλο τον κόσμο, πρόσβαση να γράψουν στον κώδικα. Γι' αυτό, μόνο μια επιλεγμένη ομάδα από περίπου 300 άτομα έχουν πρόσβαση να γράψουν στο CVS repository. Αυτοί οι committers[6] είναι υπεύθυνοι για το μεγαλύτερο μέρος της ανάπτυξηςς που γίνεται στο FreeBSD. Μια κεντρική-ομάδα[7] (core team) από διακεκριμένους προγραμματιστές εκλέγεται για να παρέχει κάποιου είδους καθοδήγηση και μια κατεύθυνση στο σύνολο των committers. Οι ταχύτατοι ρυθμοί ανάπτυξης του FreeBSD δεν αφήνουν και πολύ χρόνο για το ξεκαθάρισμα του συστήματος ανάπτυξης σε μια έκδοση με ποιότητα που να αξίζει να χρησιμοποιείται ευρέως. Για να λυθεί αυτό το δίλλημα, η ανάπτυξη γίνεται ταυτόχρονα σε δυο παράλληλα μονοπάτια. Ο κύριος κορμός ανάπτυξης είναι ο HEAD ή trunk στο CVS repository μας, γνωστός και ως FreeBSD-CURRENT, ή -CURRENT εν συντομία. Ένας πιο σταθερός κορμός συντηρείται, γνωστός με το όνομα FreeBSD-STABLE ή πιο σύντομα -STABLE. Και οι δυο κορμοί είναι αποθηκευμένοι στο κύριο CVS repository, στην Καλιφόρνια, και αντιγράφονται μέσω CVSup[2] σε mirrors παντού στον κόσμο. Το FreeBSD-CURRENT[8] είναι η πρώτη σειρά της ανάπτυξης του FreeBSD καθώς σε αυτό γίνονται πρώτα όλες οι καινούριες αλλαγές. Το FreeBSD-STABLE είναι ο κορμός ανάπτυξης από τον οποίο φτιάχνονται οι εκδόσεις. Οι αλλαγές εισέρχονται σε αυτόν, τον δεύτερο κορμό ανάπτυξης, με πιο αργό ρυθμό, αφού πρώτα (σύμφωνα με την πολιτική μας) δοκιμαστούν στο FreeBSD-CURRENT και έχουν εξεταστεί πολύ καλά. Κατά την περίοδο που μεσολαβεί από τη μια έκδοση στην επόμενη, φτιάχνονται καθημερινά snapshots από τα μηχανήματα της ομάδας του FreeBSD και είναι διαθέσιμες από τον εξυπηρετητή ftp://stable.FreeBSD.org/. Η μεγάλη διαθεσιμότητα των εκτελέσιμων snapshots, καθώς και η τάση της κοινότητας των χρηστών μας να ενημερώνουν τα μηχανήματά τους με τις πρόσφατες -STABLE εκδόσεις μέσω CVSup και make world[8] βοηθούν να κρατιέται το FreeBSD-STABLE σε μια πολύ αξιόπιστη κατάσταση ακόμα και πριν αρχίσει ο κύκλος των ελέγχων ποιότητας ακριβώς πριν από την διάθεση μιας έκδοσης του FreeBSD. Συνεχώς στέλνονται από τους χρήστες μας αναφορές προβλημάτων και αιτήσεις για καινούρια χαρακτηριστικά, κατά τη διάρκεια του κύκλου της κάθε έκδοσης. Οι αναφορές προβλημάτων εισάγονται στην βάση GNATS[9] μέσω e-mail, με την εφαρμογή &man.send-pr.1;, ή μέσω του web-interface που παρέχεται στην διεύθυνση . Εκτός από τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου με θέμα τα τεχνικά χαρακτηριστικά του FreeBSD υπάρχει και η λίστα &a.qa;, η οποία παρέχει ένα φόρουμ για συζητήσεις σχετικά με τις λεπτομέρειες της οργάνωσης των εκδόσεων. Για να εξυπηρετηθούν οι πιο συντηρητικοί χρήστες μας, με έκδοση του FreeBSD 4.3 αρχίσαμε να χρησιμοποιούμε ξεχωριστούς κορμούς εκδόσεων. Αυτοί οι κορμοί δημιουργούνται λίγο πρίν φτιαχτεί η τελική έκδοση. Μετά την ανακοίνωση της έκδοσης, μόνο πολύ σημαντικές αλλαγές και προσθήκες σχετικές με την ασφάλεια γίνονται στον κορμό της έκδοσης. Εκτός από την δυνατότητα αναβάθμισης μέσω CVS, εκτελέσιμα patchkits φτιάχνονται για να μπορούν να αναβαθμίσουν τα συστήματά τους όσοι χρησιμοποιούν τις εκδόσεις RELENG_X_Y. Το εξηγεί με λεπτομέρειες τα διάφορα στάδια της διαδικασίας που βρίσκεται πίσω από κάθε έκδοση, μέχρι και τα βήματα που οδηγούν στην μεταγλώττιση του συστήματος και το εξηγεί την ίδια τη διαδικασία της μεταγλώττισης. Το περιγράφει πως μπορεί να επεκταθεί το βασικό σύστημα από τρίτους και το περιγράφει κάποια από τα πράγματα που μάθαμε από την διαδικασία έκδοσης του FreeBSD 4.4. Τέλος, το παρουσιάζει κάποιες από τις κατευθύνσεις που θέλουμε να πάρει η ανάπτυξη στο μέλλον. Η Διαδικασία Δημιουργίας μιας Έκδοσης Οι νέες εκδόσεις του FreeBSD φτιάχνονται από τον -STABLE κορμό ανάπτυξης περίπου κάθε τέσσερεις μήνες. Η διαδικασία προετοιμασίας μιας έκδοσης ξεκινάει σχεδόν 45 μέρες πριν την αναμενόμενη ημερομηνία έκδοσης, όταν ο υπεύθυνος εκδόσεων του FreeBSD στέλνει ένα γράμμα στις λίστες των προγραμματιστών για να υπενθυμίσει στους προγραμματιστές ότι έχουν 15 μέρες καιρό να κάνουν όποιες αλλαγές θέλουν, πριν το πάγωμα του κώδικα. Μέσα σε αυτό τον καιρό, πολλοί προγραμματιστές κάνουν μια σειρά από αλλαγές που έχουν μείνει πλέον γνωστές ως ξεκαθαρίσματα MFC. Ο όρος MFC σημαίνει Merge From CURRENT και περιγράφει την διαδικασία προσαρμογής του κώδικα μιας δοκιμασμένης αλλαγής από τον -CURRENT πειραματικό κορμό ανάπτυξης στον σταθερό -STABLE κορμό. Έλεγχος Κώδικα Τριάντα ημέρες πριν την αναμενόμενη ημερομηνία έκδοσης, ο κώδικας του repository εισέρχεται σε μια περίοδο καθυστέρησης. Κατά τη διάρκεια αυτής της περιόδου, όλες οι αλλαγές στον -STABLE κορμό πρέπει να έχουν την έγκριση της &a.re;. Οι αλλαγές που επιτρέπονται σε αυτή την περίοδο που διαρκεί 15 ημέρες είναι: Διορθώσεις γνωστών προβλημάτων. Ενημερώσεις στην τεκμηρίωση. Αλλαγές σχετικές με την ασφάλεια. Μικρές αλλαγές στους οδηγούς συσκευών, όπως π.χ. η προσθήκη των IDs νέων συσκευών. Οποιαδήποτε άλλη αλλαγή πιστεύει η ομάδα ανάπτυξης ότι πρέπει να γίνει, με το αναμενόμενο πάντα ρίσκο. Μετά τις πρώτες 15 μέρες καθυστέρησης, φτιάχνεται μια δοκιμαστική έκδοση για να χρησιμοποιηθεί σαν δοκιμή της τελικής έκδοσης και ο κώδικας εισέρχεται σε μια περίοδο παγώματος. Πλέον είναι πολύ πιο δύσκολο να γίνουν νέες αλλαγές στο σύστημα, εκτός κι αν διορθώνουν κάποιο πολύ σοβαρό bugή κάποιο πρόβλημα ασφάλειας. Κατά τη διάρκεια του παγώματος του κώδικα, τουλάχιστον μία δοκιμαστική έκδοση φτιάχνεται κάθε εβδομάδα, μέχρι να είναι έτοιμη η τελική έκδοση. Τις ημέρες ακριβώς πριν την τελική έκδοση, η ομάδα που είναι υπεύθυνη για τις εκδόσεις είναι σε συνεχή επικοινωνία με την ομάδα ασφάλειας, την ομάδα συντήρησης της τεκμηρίωσης, και την ομάδα συντήρησης των ports, για να βεβαιωθούν πως όλα τα απαραίτητα κομμάτια για μια πλήρη έκδοση είναι διαθέσιμα. Λίστα Ελέγχου της Τελικής Έκδοσης Όταν αρκετές δοκιμαστικές εκδόσεις έχουν γίνει διαθέσιμες, έχουν δοκιμαστεί από αρκετό κόσμο και όλα τα σοβαρά θέματα έχουν αναλυθεί, η τελική έκδοση μπορεί να αρχίσει. Δημιουργία του Κορμού Έκδοσης Όπως περιγράψαμε στην εισαγωγή, οι κορμοί RELENG_X_Y είναι μια σχετικά νέα προσθήκη στην μεθοδολογία των εκδόσεών μας. Το πρώτο βήμα στην δημιουργία αυτού του κορμού είναι να βεβαιωθείτε ότι δουλεύετε με την τελευταία έκδοση του πηγαίου κώδικα από τον RELENG_X κορμό από τον οποίο θα φτιάξετε το νέο κορμό. /usr/src&prompt.root; cvs update -rRELENG_4 -P -d Το επόμενο βήμα είναι να δημιουργήσετε μια ετικέτα (tag) στο σημείο εκκίνησης του κορμού, ώστε να μπορείτε να δείτε τις διαφορές με την αρχή του κορμού εύκολα στο μέλλον με το CVS: /usr/src&prompt.root; cvs rtag -rRELENG_4 RELENG_4_8_BP src Και τότε μπορείτε να δημιουργήσετε το νέο κορμό με: /usr/src&prompt.root; cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src Οι ετικέτες RELENG_* είναι δεσμευμένες για χρήση από τους CVS-meisters και την ομάδα των εκδόσεων. Ο όρος ετικέτα είναι ορολογία του CVS. Σημαίνει ένα όνομα που καθορίζει μια συγκεκριμένη έκδοση του κώδικα στο χρόνο. Χρησιμοποιώντας ετικέτες στον πηγαίο κώδικα βοηθάμε όποιον φτιάξει στο μέλλον εκδόσεις του FreeBSD να βρίσκει και να χρησιμοποιεί ακριβώς τον ίδιο κώδικα που χρησιμοποιήθηκε για τις επίσημες εκδόσεις της Ομάδας του FreeBSD. Αυξάνοντας τον Αριθμό Έκδοσης Πριν μπει η ετικέτα, μεταγλωττιστεί και ετοιμαστεί η τελική έκδοση, πρέπει να γίνουν αλλαγές στα παρακάτω αρχεία για να περιέχουν τον σωστό αριθμό έκδοσης για το FreeBSD: doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml doc/en_US.ISO8859-1/books/porters-handbook/book.sgml doc/share/sgml/freebsd.ent src/Makefile.inc1 src/UPDATING src/gnu/usr.bin/groff/tmac/mdoc.local src/release/Makefile src/release/doc/en_US.ISO8859-1/share/sgml/release.dsl src/release/doc/share/examples/Makefile.relnotesng src/release/doc/share/sgml/release.ent src/share/examples/cvsup/standard-supfile src/sys/conf/newvers.sh src/sys/sys/param.h src/usr.sbin/pkg_install/add/main.c www/en/docs.sgml www/en/cgi/ports.cgi ports/Tools/scripts/release/config Οι σημειώσεις έκδοσης και τα αρχεία με τις διορθώσεις της τελευταίας στιγμής πρέπει επίσης να προσαρμοστούν στην νέα έκδοση (στον κορμό της έκδοσης) και να επεξεργαστούν κατάλληλα (στους δύο κορμούς stable και current): src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml src/release/doc/en_US.ISO8859-1/errata/article.sgml Η εφαρμογή sysinstall πρέπει επίσης να ενημερωθεί με τον σωστό αριθμό των ports και το χώρο του δίσκου που απαιτείται για την Συλλογή των Ports. Αυτές οι πληροφορίες υπάρχουν στο αρχείο src/release/sysinstall/dist.c. Αφού ολοκληρωθεί η προετοιμασία της νέας επίσημης έκδοσης, πρέπει να ενημερώσετε μερικά αρχεία για να ενημερώσετε τον κόσμο για τη νέα έκδοση του &os;. www/en/includes.xsl www/en/includes.sgml www/es/includes.sgml www/en/releases/* src/share/misc/bsd-family-tree Δημιουργία των Ετικετών της Έκδοσης Όταν η τελική έκδοση είναι έτοιμη, η παρακάτω εντολή θα δημιουργήσει την ετικέτα RELENG_4_8_0_RELEASE. /usr/src&prompt.root; cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src Οι υπεύθυνοι της Τεκμηρίωσης και των Ports είναι αυτοί που πρέπει να δημιουργήσουν τις ετικέτες RELEASE_4_8_0 στα κατάλληλα δέντρα πηγαίου κώδικα. Μερικές φορές, μπορεί να χρειαστεί να γίνουν κάποιες αλλαγές τελευταία στιγμή μετά την τοποθέτηση των ετικετών. Γενικά, δεν είναι δύσκολο να γίνει κάτι τέτοιο αφού το CVS επιτρέπει να μετακινήσει κάποιος τις ετικέτες με εντολές όπως cvs tag -d tagname filename. Είναι πολύ σημαντικό όμως αυτές οι αλλαγές της τελευταίας στιγμής να σημειωθούν με τις σωστές ετικέτες για την συγκεκριμένη έκδοση. Οι επίσημες εκδόσεις του FreeBSD πρέπει να είναι πάντα εύκολο να αναπαραχθούν. Τοπικές αλλαγές στο περιβάλλον του μηχανικού των εκδόσεων δεν επιτρέπονται. Μεταγλώττιση της Έκδοσης Οι εκδόσεις του FreeBSD μπορούν να μεταγλωττιστούν από οποιονδήποτε έχει ένα σχετικά γρήγορο μηχάνημα και πρόσβαση στο repository του πηγαίου κώδικα. (Όλοι έχουν αυτή τη δυνατότητα, αφού παρέχουμε πρόσβαση μέσω ανώνυμου CVS! Δείτε το Εγχειρίδιο του FreeBSD για περισσότερες λεπτομέρειες.) Η μόνη ειδική απαίτηση είναι να υπάρχει υποστήριξη στον πυρήνα σας για την συσκευή &man.vn.4;. (Στο -CURRENT, αυτή η συσκευή έχει αντικατασταθεί από την νέα συσκευή δίσκου βασισμένου σε μνήμη &man.md.4;.) Αν η συσκευή δεν είναι ενσωματωμένη στον πυρήνα σας, τότε ο κατάλληλος οδηγός θα φορτωθεί αυτόματα όταν εκτελεστεί η εντολή &man.vnconfig.8; κατά τη διάρκεια της φάσης ετοιμασίας του μέσου εκκίνησης. Όλα τα εργαλεία που χρειάζονται για να μεταγλωττίσετε μια έκδοση είναι διαθέσιμα σε μορφή πηγαίου κώδικα στον κατάλογο src/release. Αυτά τα εργαλεία έχουν ως σκοπό να παρέχουν ότι χρειάζεται για να χτίζονται οι εκδόσεις του FreeBSD με ένα συνεπή και συγκεκριμένο τρόπο. Μια πλήρης έκδοση μπορεί να μεταγλωττιστεί χρησιμοποιώντας αυτά τα εργαλεία με μια και μόνο εντολή, συμπεριλαμβανομένης και της δημιουργίας ενός ISO αρχείου κατάλληλο για να καεί σε CDROM, οι δισκέττες εκκίνησης, καθώς και ο κατάλληλος εγκατάστασης μέσω FTP. Αυτή η εντολή είναι φυσική η make release. Η εντολή <command>make release</command> Για να μεταγλωττίσετε επιτυχώς μια έκδοση, πρέπει πρώτα να υπάρχουν τα κατάλληλα αρχεία μέσα στον κατάλογο /usr/obj. Μπορείτε να τα δημιουργήσετε είτε με την εντολή make world ή απλά make buildworld. Για να πετύχει επίσης η μεταγλώττιση της έκδοσης πρέπει να δώσετε τις κατάλληλες τιμές και σε κάποιες μεταβλητές: CHROOTDIR - Ο κατάλογος που θα χρησιμοποιηθεί σαν περιβάλλον chroot για όλη την μεταγλώττιση της έκδοσης. BUILDNAME - Το όνομα της έκδοσης που θα μεταγλωττίσετε. CVSROOT - Ο κατάλογος στον οποίο βρίσκεται το CVS repository. RELEASETAG - Η ετικέτα CVS που αντιστοιχεί στην έκδοση την οποία θέλετε να μεταγλωττίσετε. Αν δεν έχετε ήδη πρόσβαση σε κάποιο τοπικό CVS repository με τον κώδικα του FreeBSD, μπορείτε πάντα να φτιάξετε το δικό σας τοπικό CVS mirror με το CVSup. Υπάρχει ένα supfile, στο αρχείο /usr/share/examples/cvsup/cvs-supfile, το οποίο μπορείτε να χρησιμοποιήσετε για να αντιγράψετε το CVS repository του FreeBSD στο δικό σας τοπικό mirrror. Αν παραλείψετε την ετικέτα RELEASETAG, τότε θα μεταγλωττιστεί μια πλήρης έκδοση από την κορυφή του HEAD (δηλ. του -CURRENT) κορμού. Οι εκδόσεις που φτιάχνονται από αυτόν τον κορμό, συνήθως αναφέρονται σαν -CURRENT snapshots. Υπάρχουν και πολλές άλλες μεταβλητές που μπορούν να χρησιμοποιηθούν για να παραμετροποιήσετε την έκδοσή σας. Οι πιο πολλές από αυτές τις μεταβλητές περιγράφονται στην κορυφή του αρχείου src/release/Makefile. Η ακριβής εντολή που χρησιμοποιήθηκε για να φτιαχτεί η επίσημη έκδοση 4.7 του FreeBSD (x86 πλατφόρμα) ήταν: make release CHROOTDIR=/local3/release \ BUILDNAME=4.7-RELEASE \ CVSROOT=/host/cvs/usr/home/ncvs \ RELEASETAG=RELENG_4_7_0_RELEASE Το Makefile που χρησιμοποιείται για να μεταγλωττίζονται οι εκδόσεις μπορεί να χωριστεί σε αρκετά ξεχωριστά μεταξύ τους βήματα. Δημιουργία ενός καθαρού περιβάλλοντος σε μια ξεχωριστή ιεραρχία καταλόγων με την εντολή make installworld. Εξαγωγή από το CVS μιας καινούριας έκδοσης του πηγαίου κώδικα του συστήματος, της τεκμηρίωσης και των ports μέσα στην ιεραρχία καταλόγων μεταγλώττισης της έκδοσης. Ρυθμίσεις των αρχείων στον κατάλογο /etc και /dev μέσα στο περιβάλλον chroot. Εκτέλεση της εντολής chroot μέσα στην ιεραρχία καταλόγων που ετοιμάστηκε, για να μην μπορεί το εξωτερικό περιβάλλον να επηρεάσει τη μεταγλώττιση της έκδοσης. Εκτέλεση της εντολής make world μέσα στο περιβάλλον chroot. Μεταγλώττιση των εκτελέσιμων που είναι σχετικά με το σύστημα Kerberos. Μεταγλώττιση του πυρήνα GENERIC. Δημιουργία ενός τελικού καταλόγου στον οποίο θα μεταγλωττιστούν και θα αποθηκευθούν οι εκτελέσιμες μορφές των τελικών πακέτων. Μεταγλώττιση και εγκατάσταση των εργαλείων που χρειάζονται για την προετοιμασία της έκδοσης και τη μετατροπή της τεκμηρίωσης από τον πηγαίο κώδικα (SGML) σε html και αρχεία κειμένου που θα συνοδεύουν την έκδοση. Μετατροπή και εγκατάσταση της τεκμηρίωσης (εγχειρίδια χρήστη, εισαγωγικά κείμενα, σημειώσεις έκδοσης, λίστες συμβατότηταςς υλικού, κλπ.) Μεταγλώττιση των συμπιεσμένων (crunched) εκτελέσιμων που θα χρησιμοποιηθούν στις δισκέττες εγκατάστασης. Δημιουργία των πακέτων της εγκατάστασης και των πακέτων πηγαίου κώδικα. Δημιουργία των μέσων εκκίνησης και της δισκέττας fixit. Δημιουργία της ιεραρχίας καταλόγων για την εγκατάσταση μέσω FTP. (προαιρετικά) Δημιουργία των ISO αρχείων για μέσα CDROM/DVD media. Για περισσότερες πληροφορίες σχετικά με την διαδικασία δημιουργίας μιας έκδοσης, δείτε την σελίδα τεκμηρίωσης &man.release.7;. Μεταγλώττιση των <application>XFree86</application> Το γραφικό περιβάλλον XFree86 είναι ένα σημαντικό κομμάτι κάθε έκδοσης για πολλούς χρήστες που θέλουν το FreeBSD για σταθμούς εργασίας. Πριν την έκδοση 4.6-RELEASE του FreeBSD, οι επίσημες εκδόσεις του FreeBSD χρησιμοποιούσαν την έκδοση 3.X των XFree86. Ο πιο εύκολος τρόπος να μεταγλωττίσετε αυτές τις εκδόσεις είναι να χρησιμοποιήσετε το πρόγραμμα src/release/scripts/X11/build_x.sh. Αυτό το πρόγραμμα απαιτεί να είναι ήδη στημένα στο σύστημά σας τόσο το περιβάλλον XFree86 όσο και η γλώσσα Tcl/Tk. Μετά την μεταγλώττιση των κατάλληλων X servers, το πρόγραμμα θα πακετάρει όλα τα αρχεία σε συλλογές αρχείων που περιμένει να βρει το &man.sysinstall.8; μέσα στον κατάλογο XF86336 στο μέσο εγκατάστασης. Ξεκινώντας με την έκδοση 4.6-RELEASE του FreeBSD, το &man.sysinstall.8; εγκαθιστά την έκδοση 4.X των XFree86, σαν κανονικά πακέτα. Αυτά μπορεί να είναι είτε τα πακέτα που δημιούργησε το cluster των ports ή οποιαδήποτε άλλα πακέτα που έχουν δημιουργηθεί από ένα ports tree με την κατάλληλη ετικέτα. Είναι πολύ σημαντικό να αφαιρέσετε από το αρχείο /etc/make.conf οποιεσδήποτε τοπικές ρυθμίσεις έχετε κάνει. Για παράδειγμα, δεν είναι καλή ιδέα να διανέμετε εκτελέσιμα που έχουν μεταγλωττιστεί σε κάποιο συγκεκριμένο σύστημα με ορισμένη την τιμή της μεταβλητής CPUTYPE για βελτιστοποίηση των εκτελέσιμων για κάποιο συγκεκριμένο επεξεργαστή. Προγράμματα Τρίτων (<quote>ports</quote>) Η Συλλογή των Ports του FreeBSD είναι μια συλλογή με περισσότερα από &os.numports; προγράμματα από τρίτους, που είναι διαθέσιμα για FreeBSD. Οι &a.portmgr; είναι υπεύθυνοι για την συντήρηση ενός δέντρου από πηγαίο κώδικα για τα ports, που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν τα πακέτα με τα προγράμματα που συνοδεύουν τις επίσημες εκδόσεις του FreeBSD. Η διαδικασία συντήρησης της συλλογής των ports είναι κάτι που δεν μπορούμε να καλύψουμε εδώ. Ένα ξεχωριστό άρθρο, με τίτλο &art.re.pkgs;, καλύπτει αυτό το θέμα. Αρχεία ISO της Έκδοσης Ξεκινώντας με την έκδοση 4.4 του FreeBSD, η Ομάδα Ανάπτυξης του FreeBSD αποφάσισε να διανέμει και τα τέσσερα ISO αρχεία που πρώτα πουλούσαν οι εταιρείες BSDi/Wind River Systems/FreeBSD Mall στις επίσημες διανομές CDROM που έκαναν. Κάθε ένα από τα τέσσερα ISO αρχεία πρέπει να περιέχει ένα αρχείο README.TXT που περιγράφει τα περιεχόμενα του δίσκου, κι ένα αρχείο CDROM.INF που περιέχει μετα-πληροφορίες για να μπορεί το πρόγραμμα &man.sysinstall.8; να ελέγξει και να χρησιμοποιήσει αυτό το δίσκο, καθώς κι ένα αρχείο filename.txt που παρέχει μια λίστα αρχείων του CDROM. Αυτή η λίστα μπορεί να δημιουργηθεί πολύ απλά, ως εξής: /stage/cdrom&prompt.root; find . -type f | sed -e 's/^\.\///' | sort > filename.txt Οι συγκεκριμένες απαιτήσεις για κάθε ένα από αυτά τα CD περιγράφονται παρακάτω: Δίσκος 1 Ο πρώτος δίσκος είναι σχεδόν αποκλειστικά αποτέλεσμα της εντολής make release. Οι μόνες αλλαγές που πρέπει να γίνουν στον κατάλογο disc1 είναι η προσθήκη του κατάλογου tools, των XFree86, και όσο το δυνατόν περισσότερων πακέτων μπορούν να χωρέσουν στο δίσκο. Ο κατάλογος tools περιέχει εργαλεία που επιτρέπουν σε χρήστες άλλων λειτουργικών συστημάτων να φτιάξουν τις δισκέττες εκκίνησης. Αυτός ο πρώτος δίσκος πρέπει να φτιάχνεται bootable έτσι ώστε να μπορούν οι χρήστες των μοντέρνων υπολογιστών να αποφεύγουν το στάδιο δημιουργίας των δισκεττών εκκίνησης. Αν μια διαφορετική έκδοση των XFree86 θα διανέμεται με την έκδοση αυτή, πρέπει να ενημερωθεί το πρόγραμμα &man.sysinstall.8; για την νέα θέση και οι οδηγίες εγκατάστασης. Ο σχετικός κώδικας υπάρχει στον κατάλογο src/release/sysinstall στον -STABLE κορμό ή στον κατάλογο src/usr.sbin/sysinstall στον -CURRENT κορμό. Συγκεκριμένα, τα αρχεία dist.c, menus.c, και config.c θα χρειαστεί να ενημερωθούν. Δίσκος 2 Ο δεύτερος δίσκος είναι επίσης αποτέλεσμα της εντολής make release κατά ένα μεγάλο μέρος. Αυτός ο δίσκος περιέχει ένα live filesystem που μπορεί να χρησιμοποιηθεί από το &man.sysinstall.8; για να εξεταστούν προβλήματα σε μια εγκατάσταση του FreeBSD. Κι αυτός ο δίσκος πρέπει να είναι bootable. Θα πρέπει επίσης να περιέχει ένα συμπιεσμένο αντίγραφο του CVS repository στον κατάλογο CVSROOT και δείγματα από εμπορικά προγράμματα στον κατάλογο commerce. Δίσκοι 3 και 4 Οι υπόλοιποι δυο δίσκοι περιέχουν επιπρόσθετα πακέτα λογισμικού για το FreeBSD. Τα πακέτα θα πρέπει να είναι ομαδοποιημένα, έτσι ώστε κάθε πακέτο να είναι στον ίδιο δίσκο με όλα τα πακέτα από τα οποία εξαρτάται για να εγκατασταθεί και να τρέξει. Περισσότερες πληροφορίες για την δημιουργία αυτών των δίσκων αναφέρονται στο άρθρο &art.re.pkgs;. Διανομή των Εκδόσεων Εξυπηρετητές FTP Όταν η έκδοση είναι έτοιμη, έχει δοκιμαστεί εκτενώς, και έχει πακεταριστεί για διανομή, ο κύριος FTP εξυπηρετητής πρέπει να ενημερωθεί. Οι επίσημοι εξυπηρετητές FTP του FreeBSD είναι όλοι mirrors ενός κύριου εξυπηρετητή στον οποίο έχουν πρόσβαση μόνο άλλοι FTP εξυπηρετητές. Αυτός ο εξυπηρετητής είναι γνωστός ως ftp-master. Όταν η έκδοση είναι έτοιμη, πρέπει να ενημερωθούν τα παρακάτω αρχεία στον ftp-master: /pub/FreeBSD/index.html Μια απλή web σελίδα που περιέχει δείκτες σε διάφορους σημαντικούς FTP καταλόγους για την τρέχουσα έκδοση του FreeBSD. /pub/FreeBSD/releases/arch/X.Y-RELEASE/ Ο κατάλογος από τον οποίο μπορούν να γίνουν εγκαταστάσεις μέσω FTP, όπως τον έχει προετοιμάσει η εντολή make release. /pub/FreeBSD/ports/arch/packages/packages-X.Y-release/ Όλα τα προμεταγλωττισμένα πακέτα για την τρέχουσα έκδοση. /pub/FreeBSD/releases/arch/X.Y-RELEASE/tools Μια συμβολική συντόμευση για τον κατάλογο ../../../tools. /pub/FreeBSD/releases/arch/X.Y-RELEASE/packages Μια συμβολική συντόμευση για τον κατάλογο ../../../ports/i386/packages-X.Y-release. /pub/FreeBSD/releases/arch/ISO-IMAGES/X.Y/X.Y-*.iso Τα αρχεία ISO. Για περισσότερες πληροφορίες σχετικά με την οργάνωση των mirror διανομής FTP του FreeBSD, παρακαλώ δείτε το άρθρο Φτιάχνοντας ένα FreeBSD mirror. Μπορεί να πάρει αρκετές ώρες από την στιγμή που θα ενημερωθεί ο ftp-master μέχρι να ενημερωθούν στην πλειοψηφία τους τα πρώτου επιπέδου FTP mirror με την νέα έκδοση. Επιβάλλεται οι υπεύθυνοι έκδοσης να συνεννοηθούν με την &a.hubs; πριν ανακοινώσουν την γενική διαθεσιμότητα της νέας έκδοσης στους εξυπηρετητές FTP. Μαζική Αναπαραγωγή των CD-ROM Θα συμπληρωθεί σύντομα: Συμβουλές για την αποστολή των ISO αρχείων του FreeBSD σε κάποιον που μπορεί να κάνει μαζική αναπαραγωγή, και μέτρα ελέγχου ποιότητας που μπορούν να παρθούν. Επεκτασιμότητα Παρόλο που το FreeBSD είναι ένα πλήρες λειτουργικό σύστημα, δεν υπάρχει κάτι που να σας αναγκάζει να χρησιμοποιήσετε το σύστημα ακριβώς όπως το έχουμε πακετάρει εμείς για διανομή. Έχουμε προσπαθήσει να σχεδιάσουμε το σύστημα έτσι που να είναι όσο το δυνατόν πιο επεκτάσιμο, για να είναι εύκολο να χρησιμοποιηθεί σαν βάση πάνω στην οποία άλλα εμπορικά προϊόντα να μπορούν να στηριχθούν. Ο μόνος κανόνας που έχουμε σχετικά με αυτό είναι πως αν σχεδιάζετε να διανείμετε το FreeBSD με μεγάλης κλίμακας αλλαγές, σας ενθαρρύνουμε να τεκμηριώσετε τις αλλαγές σας. Η κοινότητα του FreeBSD μπορεί μόνο να βοηθήσει στην υποστήριξη αυτών που χρησιμοποιούν το λογισμικό ακριβώς όπως το διανέμουμε εμείς. Ενθαρρύνουμε και δεχόμαστε κάθε αλλαγή που προωθεί την ανάπτυξη πιο εξελιγμένων εργαλείων εγκατάστασης και διαχείρισης, για παράδειγμα, αλλά δεν θα πρέπει να περιμένει κανείς να μπορούμε να απαντήσουμε και ερωτήσεις σχετικά με κάτι τέτοιο. Δημιουργία Προσαρμοσμένων Δισκεττών Εκκίνησης. Πολλές εγκαταστάσεις έχουν πολύπλοκες απαιτήσεις που μπορεί με τη σειρά τους να απαιτούν την προσθήκη περισσότερων οδηγών ή εργαλείων χρήστη στις δισκέττες εγκατάστασης. Ο μπακάλικος τρόπος να το κάνετε αυτό είναι να κάνετε τις αλλαγές σας στον κατάλογο που έχει ετοιμάσει μετά το τέλος της η διαδικασία make release: Περάστε τα patches σας ή προσθέστε τα επιπλέον αρχεία μέσα στον κατάλογο chroot της έκδοσης. rm ${CHROOTDIR}/usr/obj/usr/src/release/release.[59] Μεταγλωττίστε πάλι το &man.sysinstall.8;, τον πυρήνα, ή όποια άλλα προγράμματα έχουν επηρεαστεί από τις αλλαγές σας. chroot ${CHROOTDIR} ./mk floppies Οι νέες δισκέττες εγκατάστασης θα δημιουργηθούν στον κατάλογο ${CHROOTDIR}/R/stage/floppies. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το make target boot.flp, ή μπορείτε να τρέξετε απευθείας το script που δημιουργεί τα συστήματα αρχείων src/release/scripts/doFS.sh. Μπορείτε επίσης να κανονίσετε ώστε δικές σας αλλαγές να περαστούν με μορφή patch στην έκδοση όπως θα φτιάχνεται, δίνοντας τιμή στην μεταβλητή LOCAL_PATCH όταν τρέξετε την εντολή make release. Προγραμματίζοντας το <command>sysinstall</command> Το εργαλείο εγκατάστασης και ρύθμισης του FreeBSD, το &man.sysinstall.8;, μπορεί να προγραμματιστεί για να κάνει πιο εύκολες τις αυτοματοποιημένες εγκαταστάσεις σε πολλά μηχανήματα. Αυτό το χαρακτηριστικό του προγράμματος μπορεί να χρησιμοποιηθεί σε συνδυασμό με το PXE[13] της Intel για να ξεκινήσει η εγκατάσταση από το δίκτυο, ή σε συνδυασμό με προσαρμοσμένες δισκέττες εκκίνησης κι ένα sysinstall script. Ένα παράδειγμα από τέτοιο sysinstall script μπορείτε να βρείτε στο αρχείο src/release/sysinstall/install.cfg. Μαθήματα που Πήραμε από την Έκδοση 4.4 του FreeBSD Η διαδικασία ετοιμασίας της έκδοσης 4.4 του FreeBSD ξεκίνησε επίσημα την 1η Αυγούστου 2001. Μετά από αυτή την ημερομηνία, όλες οι αλλαγές στον κορμό RELENG_4 του FreeBSD έπρεπε να έχουν έγκριση από την &a.re;. Η πρώτη δοκιμαστική έκδοση για την αρχιτεκτονική x86 έγινε διαθέσιμη στις 16 Αυγούστου, κι ακολουθήθηκε από 4 ακόμα δοκιμαστικές εκδόσεις που οδήγησαν στην τελική έκδοση στις 18 του Σεπτέμβρη. Ο υπεύθυνος ασφάλειας έπαιξε σημαντικό ρόλο κατά την διάρκεια της τελευταίας εβδομάδας καθώς κάποια προβλήματα ασφάλειας βρέθηκαν σε προηγούμενες, δοκιμαστικές εκδόσεις. Συνολικά, πάνω από 500 email στάλθηκαν στην &a.re; σε διάστημα μικρότερο από ένα μήνα. Η κοινότητα των χρηστών μας έκανε σαφές ότι η ασφάλεια και η σταθερότητα μιας έκδοσης δεν θά 'πρεπε να θυσιάζεται για κανενός είδους προθεσμίες ή ημερομηνίες που έχουν τεθεί σαν στόχοι από πριν. Το FreeBSD έχει μεγαλώσει δραματικά κατά τη διάρκεια της ζωής του σαν σύστημα, και η ανάγκη για συγκεκριμένη πολιτική και οργάνωση για την δημιουργία νέων εκδόσεων είναι πλέον φανερή περισσότερο από ποτέ. Αυτή η ανάγκη θα γίνει ακόμα πιο σημαντική καθώς το FreeBSD θα αρχίσει να μεταφέρεται σε νέες πλατφόρμες. Μελλοντικές Κατευθύνσεις Είναι ζωτικής σημασίας οι πρακτικές και η οργάνωση της διαδικασίας δημιουργίας των εκδόσεών μας να συμβαδίζουν με την συνεχώς αυξανόμενη βάση των χρηστών μας. Με βάση αυτή τη σκέψη εργαζόμαστε σκληρά για να τεκμηριώσουμε την διαδικασία παραγωγής των εκδόσεων του FreeBSD. Παράλληλη εκτέλεση - Μερικά μέρη της μεταγλώττισης μιας εγκατάστασης μπορούν να γίνουν πολύ παράλληλα. Τα πιο πολλά από τα στάδια είναι I/O intensive, οπότε η ύπαρξη πολλών υψηλής-ταχύτητας δίσκων είναι πιο σημαντική από τηνν χρήση πολλών επεξεργαστών για να επιταχυνθεί κάπως η διαδικασία του make release. Αν διαφορετικοί δίσκοι χρησιμοποιηθούν για τμήματα της ιεραρχίας του &man.chroot.2; περιβάλλοντος, τότε το CVS checkout των καταλόγων ports και doc μπορεί να γίνει ταυτόχρονα με την εντολή make world στον άλλο δίσκο. Χρησιμοποιώντας μια RAID λύση (hardware ή software) μπορεί να μειώσει δραστικά τον συνολικό χρόνο που χρειάζεται να μεταγλωττιστεί μια πλήρης έκδοση. Μεταγλώττιση εκδόσεων για διαφορετικές αρχιτεκτονικές - Θέλετε να μεταγλωττίσετε μια έκδοση για IA-64 ή Alpha σε κάποιον x86 επεξεργαστή? make TARGET=ia64 release. Δοκιμές για λάθη - Χρειαζόμαστε καλύτερα εργαλεία για αυτόματο έλεγχο ορθότητας στο FreeBSD. Εργαλεία Εγκατάστασης - Το πρόγραμμά μας για την εγκατάσταση του FreeBSD έχει ξεπεράσει προ πολλού τον αναμενόμενο χρόνο ζωής του. Υπάρχουν διάφορες ομάδες που εργάζονται για να υλοποιήσουν κάποιον άλλο, πιο μοντέρνο μηχανισμό εγκατάστασης. Μια από τις πιο υποσχόμενες, είναι η ομάδα libh[5] που στοχεύει στην υλοποίηση ενός έξυπνου, νέου τρόπου πακεταρίσματος λογισμικού και ενός GUI προγράμματος εγκατάστασης. Ευχαριστίες Θα ήθελα να ευχαριστήσω τον Jordan Hubbard, που μου έδωσε την ευκαιρία να πάρω κάποια από την ευθύνη της έκδοσης 4.4 του FreeBSD, καθώς και για όλη την δουλειά που έχει κάνει εδώ και χρόνια για να είναι το FreeBSD αυτό που είναι σήμερα. Φυσικά, η έκδοση δεν θα ήταν ποτέ δυνατόν να ολοκληρωθεί χωρίς όλη την σχετική με την έκδοση δουλειά που έκαναν οι &a.asami;, &a.steve;, &a.bmah;, &a.nik;, &a.obrien;, &a.kris;, &a.jhb; και όλοι οι υπόλοιποι που ασχολούνται με την ανάπτυξη του FreeBSD. Θέλω επίσης να ευχαριστήσω τους &a.rgrimes;, &a.phk;, και όλους τους άλλους που εργάστηκαν για να φτιάξουν τα εργαλεία για τις εκδόσεις στις πρώτες μέρες της δημιουργίας του FreeBSD. Αυτό το άρθρο έχει επηρεαστεί από κείμενα σχετικά με την οργάνωση των εκδόσεων από το CSRG[14], την Ομάδα του NetBSD[11], και την πρόταση για μια διαδικασία οργάνωσης των εκδόσεων του John Baldwin[12]. Αναφορές [1] CVS - Concurrent Versions System [2] CVSup - The CVS-Optimized General Purpose Network File Distribution System [3] [4] FreeBSD Ports Collection [5] The libh Project [6] FreeBSD Committers [7] FreeBSD Core-Team [8] FreeBSD Handbook [9] GNATS: The GNU Bug Tracking System [10] FreeBSD PR Statistics [11] NetBSD Developer Documentation: Release Engineering [12] John Baldwin's FreeBSD Release Engineering Proposal [13] PXE Jumpstart Guide [14] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic: The Release Engineering of 4.3BSD
diff --git a/el_GR.ISO8859-7/books/faq/book.sgml b/el_GR.ISO8859-7/books/faq/book.sgml index 751ed9ca57..79707dfc8d 100644 --- a/el_GR.ISO8859-7/books/faq/book.sgml +++ b/el_GR.ISO8859-7/books/faq/book.sgml @@ -1,11908 +1,11918 @@ %books.ent; ]> Συχνές Ερωτήσεις για το &os; 5.X και 6.X Η Ομάδα Τεκμηρίωσης του &os; $FreeBSD$ 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 Η Ομάδα Τεκμηρίωσης του &os; &bookinfo.legalnotice; &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.adobe; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.iomega; &tm-attrib.linux; &tm-attrib.microsoft; &tm-attrib.mips; &tm-attrib.netscape; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.sgi; &tm-attrib.sparc; &tm-attrib.sun; &tm-attrib.usrobotics; &tm-attrib.xfree86; &tm-attrib.general; Το κείμενο αυτό αποτελεί τις Συχνές Ερωτήσεις (FAQ) για τις εκδόσεις 5.Χ και 6.Χ του &os;. Όλες οι καταχωρήσεις θεωρείται ότι σχετίζονται με την έκδοση &os; 5.X και μεταγενέστερες, εκτός αν αναφέρεται διαφορετικά. Αν ενδιαφέρεστε να μας βοηθήσετε σε αυτό το έργο, στείλτε ένα email στην &a.doc;. Η τελευταία έκδοση αυτού του κειμένου είναι πάντοτε διαθέσιμη στην δικτυακή τοποθεσία του &os;. Μπορείτε επίσης να την κατεβάσετε ως ένα μεγάλο HTML αρχείο μέσω HTTP ή ακόμα και ως απλό κείμενο, &postscript;, PDF, κλπ. από τον εξυπηρετητή FTP του &os;. Μπορείτε ακόμα να ψάξετε στις Συχνές Ερωτήσεις . Εισαγωγή Καλώς ήλθατε στις Συχνές Ερωτήσεις (FAQ) του &os; 5.X-6.X! Όπως συνηθίζεται στα FAQs του Usenet, το κείμενο αυτό έχει σκοπό να καλύψει τις πιο συνηθισμένες ερωτήσεις που αφορούν το λειτουργικό σύστημα &os; (και φυσικά να τις απαντήσει!). Αν και ο αρχικός σκοπός των FAQs ήταν η εξοικονόμηση εύρους ζώνης του διαδικτύου από την επαναλαμβανόμενη απάντηση των ίδιων ερωτήσεων, τα FAQs αναγνωρίστηκαν τελικά ως πολύτιμες πηγές πληροφοριών. Έχει καταβληθεί κάθε προσπάθεια ώστε αυτό το FAQ να γίνει όσο πιο πληροφοριακό γίνεται. Αν θέλετε να κάνετε κάποιες υποδείξεις σχετικά με τρόπους βελτίωσης του, σας παρακαλούμε στείλτε μας ένα email στη &a.doc;. Τι είναι το &os;; Εν συντομία, το &os; είναι ένα λειτουργικό σύστημα τύπου &unix; για τις αρχιτεκτονικές Alpha/AXP, AMD64 και &intel; EM64T, &i386; IA-64, PC-98, και &ultrasparc; και βασίζεται στην έκδοση 4.4BSD-Lite του Πανεπιστημίου του Berkeley, με κάποιες βελτιώσεις από το 4.4BSD-Lite2. Βασίζεται επίσης έμμεσα στην εργασία μεταφοράς (port) του Net/2 (επίσης από το Berkeley) που έγινε από τον William Jolitz, αν και δεν έχει μείνει σχεδόν τίποτα από τον αρχικό κώδικα του 386BSD. Πληρέστερη περιγραφή για το τι είναι το &os; και πως μπορεί να λειτουργήσει για εσάς, μπορείτε να βρείτε στην δικτυακή τοποθεσία του &os;. Το &os; χρησιμοποιείται από εταιρίες, παροχείς υπηρεσιών Internet (ISPs), φοιτητές και οικιακούς χρήστες, ερευνητές, και επαγγελματίες των υπολογιστών σε όλο τον κόσμο, στη δουλειά τους, στην εκπαίδευση και για αναψυχή. Για περισσότερες λεπτομέρειες σχετικά με το &os;, παρακαλούμε διαβάστε το Εγχειρίδιο του &os;. Ποιος είναι ο σκοπός του &os; Project; Ο σκοπός του &os; Project είναι να παρέχει λογισμικό το οποίο να μπορεί να χρησιμοποιηθεί για οποιουσδήποτε σκοπούς και χωρίς περιορισμούς. Πολλοί από εμάς έχουμε επενδύσει σημαντικά στον κώδικα (και στο ίδιο το έργο) και σίγουρα δεν θα μας πείραζε και κάποια χρηματική αποζημίωση που και που, αλλά σίγουρα δεν επιμένουμε σε αυτό. Πιστεύουμε ότι η πρώτη και βασικότερη αποστολή μας είναι να παρέχουμε κώδικα σε όλους, για οποιοδήποτε πιθανό σκοπό, έτσι ώστε ο κώδικας μας να έχει την ευρύτερη δυνατή χρήση και επιτυγχάνει το μεγαλύτερο δυνατό όφελος. Πιστεύουμε ότι αυτός είναι ένας από τους σημαντικότερους σκοπούς του Ελεύθερου Λογισμικού και τον υποστηρίζουμε θερμά. Ο κώδικας, στο δέντρο του πηγαίου μας κώδικα, ο οποίος εμπίπτει στη άδεια χρήσης GNU General Public License (GPL) ή GNU Library General Public License (LGPL) έχει περισσότερους περιορισμούς, αλλά τουλάχιστον όσο αφορά την υποχρέωση ελεύθερης πρόσβασης αντί για το αντίθετο που είναι και το πλέον συνηθισμένο. Λόγω της αυξημένης πολυπλοκότητας που μπορεί να προκύψει από την εμπορική χρήση λογισμικού GPL, προσπαθούμε γενικά να αντικαταστήσουμε αυτό το λογισμικό με αντίστοιχο υπό την πιο χαλαρή άδεια &os;, όπου αυτό είναι δυνατό. Υπάρχουν κάποιοι περιορισμοί στην άδεια του &os;; Ναι. Οι περιορισμοί αυτοί δεν ελέγχουν πως χρησιμοποιείτε τον κώδικα, αλλά μόνο πως μεταχειρίζεστε το ίδιο το &os; Project. Αν σας ενδιαφέρει σοβαρά η άδεια, διαβάστε την εδώ. Για τους απλώς περίεργους, η άδεια περιληπτικά γράφει: Μην ισχυρισθείτε ότι γράψατε αυτό το λογισμικό. Μη μας μηνύσετε αν χαλάσει. Μπορεί το &os; να αντικαταστήσει το τρέχον λειτουργικό μου σύστημα; Για τους περισσότερους ανθρώπους, ναι. Αλλά αυτή η απάντηση δεν μπορεί να δοθεί τόσο ξερά. Οι περισσότεροι άνθρωποι δεν χρησιμοποιούν στην πραγματικότητα κάποιο λειτουργικό. Χρησιμοποιούν εφαρμογές. Το &os; είναι σχεδιασμένο να παρέχει ένα στιβαρό και πλήρων δυνατοτήτων περιβάλλον για εφαρμογές. Υποστηρίζει μεγάλη ποικιλία από φυλλομετρητές, σουίτες γραφείου, προγράμματα ηλεκτρονικού ταχυδρομείου, προγράμματα γραφικών, γλώσσες προγραμματισμού, εξυπηρετητές δικτύου, και ουσιαστικά οτιδήποτε άλλο μπορεί να θελήσετε. Μπορείτε να διαχειριστείτε τις περισσότερες από αυτές τις εφαρμογές μέσω της Συλλογής των Ports. Αν χρειάζεται να χρησιμοποιήσετε μια εφαρμογή που είναι διαθέσιμη σε ένα μόνο λειτουργικό σύστημα, τότε απλά δεν μπορείτε να αντικαταστήσετε το σύστημα αυτό. Υπάρχουν ωστόσο καλές πιθανότητες να βρείτε μια αντίστοιχη εφαρμογή στο &os;. Αν θέλετε ένα εξυπηρετητή για το γραφείο σας ή για το Internet, ένα αξιόπιστο σταθμό εργασίας, ή απλώς την ικανότητα να κάνετε την εργασίας σας χωρίς διακοπές, το &os; είναι σχεδόν σίγουρο ότι θα κάνει ότι χρειάζεστε. Πολλοί χρήστες υπολογιστών σε όλο τον κόσμο, περιλαμβανομένων τόσο αρχάριων όσο και προχωρημένων διαχειριστών συστημάτων &unix;, χρησιμοποιούν το &os; ως το μοναδικό τους desktop σύστημα. Αν έρχεστε στο &os; από κάποιο άλλο &unix; περιβάλλον, ξέρετε ήδη τα περισσότερα από αυτά που χρειάζεστε. Αν ωστόσο η εμπειρία σας προέρχεται από λειτουργικά συστήματα με γραφικό περιβάλλον, όπως τα &windows; και οι παλιότερες εκδόσεις του &macos;, θα πρέπει να επενδύσετε, όπως είναι αναμενόμενο, επιπλέον χρόνο για να εξοικειωθείτε με τον &unix; τρόπο εκτέλεσης των εργασιών. Αυτό το FAQ, καθώς και το Εγχειρίδιο του &os; αποτελούν εξαιρετικά αναγνώσματα για να ξεκινήσετε. Γιατί ονομάζεται &os;; Μπορεί να χρησιμοποιηθεί χωρίς χρέωση, ακόμα και για εμπορικούς σκοπούς. Διατίθεται ο πλήρης πηγαίος κώδικας για το λειτουργικό σύστημα, και με τους ελάχιστους δυνατούς περιορισμούς σχετικά με τη χρήση του, τη διανομή του και την ενσωμάτωση του σε άλλα έργα (εμπορικά ή μη). Οποιοσδήποτε έχει να προτείνει μια βελτίωση ή διόρθωση, είναι ελεύθερος να υποβάλλει τον κώδικα του, ο οποίος και θα προστεθεί στο δέντρο πηγαίου κώδικα (υπό μια-δυο βασικές προφανείς προϋποθέσεις). Αξίζει να αναφέρουμε ότι η λέξη ελεύθερο χρησιμοποιείται εδώ με δύο τρόπους, ο ένας σημαίνει δωρεάν, και ο άλλος σημαίνει μπορείτε να το κάνετε ότι θέλετε. Εκτός από ένα-δύο πράγματα που δεν μπορείτε να κάνετε με τον κώδικα του &os;, για παράδειγμα να ισχυρισθείτε ότι τον γράψατε, μπορείτε στα αλήθεια να τον κάνετε ότι θέλετε. Ποιες είναι οι διαφορές μεταξύ του &os; και του NetBSD, OpenBSD και των άλλων BSD συστημάτων ανοικτού κώδικα; Ο James Howard έχει γράψει μια καλή εξήγηση της ιστορίας και των διαφορών μεταξύ των διάφορων έργων για το DaemonNews, στο άρθρο που ονομάζεται Η Οικογένεια Λειτουργικών BSD και το οποίο εμβαθύνει ιδιαίτερα σε αυτή την ερώτηση. Ποια είναι η τελευταία έκδοση του &os;; Αυτή τη στιγμή στην ανάπτυξη του &os;, υπάρχουν δύο παράλληλοι κλάδοι. Και από τους δύο αυτούς κλάδους, προκύπτουν νέες εκδόσεις. Η σειρά των εκδόσεων 5.Χ δημιουργείται από τον κλάδο 5-STABLE ενώ η σειρά των εκδόσεων 6.Χ από τον 6-STABLE. Μέχρι και την έκδοση της 5.3, η σειρά 4.Χ ήταν γνωστή ως -STABLE. Ωστόσο από την 5.3 και μετά, η σειρά 4.Χ θεωρείται ότι εισέρχεται στη φάση της εκτεταμένης υποστήριξης και θα λαμβάνει μόνο διορθώσεις για σοβαρά προβλήματα, όπως π.χ. αυτά που αναφέρονται σε κενά ασφαλείας. Θα υπάρξουν περισσότερες εκδόσεις από την σειρά 5-STABLE, αλλά και αυτή θεωρείται παρωχημένη και η περισσότερη τρέχουσα εργασία θα αποτελεί τμήμα μόνο της σειράς 6-STABLE. Η έκδοση &rel.current; είναι η πλέον τελευταία της σειράς 6-STABLE και έγινε στις &rel.current.date;. Η έκδοση &rel2.current; είναι η πλέον τελευταία της σειράς 5-STABLE και έγινε στις &rel2.current.date;. Εν συντομία, η σειρά -STABLE προορίζεται για τους ISPs, τους εταιρικούς χρήστες καθώς και οποιοδήποτε χρήστη θέλει σταθερότητα και μίνιμουμ αριθμό αλλαγών σε σχέση με τα νέα (και πιθανόν ασταθή) χαρακτηριστικά που εμφανίζονται στη σειρά -CURRENT. Εκδόσεις μπορεί να γίνονται από οποιοδήποτε κλάδο, αλλά η έκδοση -CURRENT θα πρέπει να χρησιμοποιείται μόνο αν είστε προετοιμασμένοι να χειριστείτε τα ενδεχομένως πιο ασταθή χαρακτηριστικά της (σε σχέση πάντα με την αντίστοιχη -STABLE). Νέες εκδόσεις εμφανίζονται κάθε μερικούς μήνες. Αν και πολλοί επιλέγουν να διατηρούνται ενημερωμένοι και πιο συχνά μέσω του πηγαίου κώδικα του &os; (δείτε τις ερωτήσεις στο &os.current; και &os.stable;), οι εκδόσεις είναι κάτι παραπάνω από υποχρέωση, καθώς ο πηγαίος κώδικας είναι περισσότερο ένας κινούμενος στόχος. Περισσότερες πληροφορίες για τις εκδόσεις του &os; μπορείτε να βρείτε στην Σελίδα Προετοιμασίας Εκδόσεων στην δικτυακή τοποθεσία του &os;. Τι είναι το &os;-CURRENT; Το &os.current; είναι η υπό εξέλιξη έκδοση του λειτουργικού συστήματος, το οποίο με τον καιρό θα εξελιχθεί στο νέο κλάδο &os.stable;. Για το λόγο αυτό, παρουσιάζει συνήθως ενδιαφέρον μόνο σε όσους ασχολούνται με την ανάπτυξη κώδικα του συστήματος και σε σκληροπυρηνικούς χομπίστες. Δείτε το σχετικό τμήμα στο εγχειρίδιο για λεπτομέρειες σχετικά με το -CURRENT. Αν δεν είστε εξοικειωμένος με το λειτουργικό σύστημα, ή δεν είστε ικανός να αναγνωρίσετε τη διαφορά μεταξύ ενός πραγματικού και ενός προσωρινού προβλήματος, μάλλον δεν θα πρέπει να χρησιμοποιήσετε το &os.current;. Ο κλάδος αυτός ορισμένες φορές εξελίσσεται πολύ γρήγορα, και μπορεί ακόμα και η μεταγλώττιση του να μην είναι δυνατή για ολόκληρες μέρες κάθε φορά. Όσοι χρησιμοποιούν το &os.current; αναμένεται να είναι ικανοί να αναλύουν τα όποια προβλήματα και να τα αναφέρουν, μόνο αν θεωρούν ότι πρόκειται για λάθη και όχι για μικροπροβλήματα. Ερωτήσεις του τύπου το make world παράγει κάποια σφάλματα σχετικά με τα groups στη λίστα ταχυδρομείου -CURRENT, μπορεί να αντιμετωπιστούν περιφρονητικά. Κάθε μέρα, παράγονται στιγμιότυπα εκδόσεων που βασίζονται στην τρέχουσα κατάσταση των κλάδων -CURRENT και -STABLE. Γίνονται κατά καιρούς διαθέσιμες οι εκδόσεις κάποιων στιγμιότυπων. Οι στόχοι πίσω από κάθε έκδοση στιγμιότυπου είναι: Ο έλεγχος της τελευταίας έκδοσης του λογισμικού εγκατάστασης. Να δώσει τη δυνατότητα εύκολης εγκατάστασης σε όσους επιθυμούν να εκτελούν το -CURRENT ή το -STABLE αλλά δεν έχουν το χρόνο ή το εύρος ζώνης να το παρακολουθούν μέρα με τη μέρα. Η διατήρηση ενός σταθερού σημείου αναφοράς σχετικά με τον πηγαίο κώδικα, σε περίπτωση που χαλάσουμε κάτι πολύ άσχημα αργότερα. (Αν και λόγω της χρήσης του CVS είναι δύσκολο να συμβεί κάτι πραγματικά τόσο φρικτό :) Να εξασφαλιστεί ότι κάθε νέο χαρακτηριστικό και διόρθωση που χρειάζεται έλεγχο, θα έχει το μεγαλύτερο δυνατό κοινό πιθανών δοκιμαστών. Δεν υπάρχει ποτέ ο ισχυρισμός ότι κάποιο στιγμιότυπο -CURRENT μπορεί να θεωρηθεί τελικής ποιότητας για οποιοδήποτε σκοπό. Αν θέλετε να εκτελείτε ένα πλήρως σταθερό και δοκιμασμένο σύστημα, θα πρέπει να μείνετε στις πλήρεις εκδόσεις ή να χρησιμοποιείτε τα στιγμιότυπα -STABLE. Εκδόσεις στιγμιοτύπων είναι άμεσα διαθέσιμες από εδώ. Κατά μέσο όρο, για κάθε κλάδο που βρίσκεται σε ενεργή ανάπτυξη, παράγεται στιγμιότυπο καθημερινά. Ποια είναι η έννοια του &os;-STABLE; Όταν κυκλοφόρησε το &os; 2.0.5, η ανάπτυξη του &os; χωρίστηκε σε δύο κλάδους. Ο ένας κλάδος ονομάστηκε -STABLE, και ο άλλος -CURRENT. Το &os;-STABLE προορίζεται για Παροχείς Υπηρεσιών Internet (ISPs) και γενικά εμπορικές χρήσεις, όπου οι απότομες αλλαγές και τα τυχόν πειραματικά χαρακτηριστικά είναι γενικά ανεπιθύμητα. Στον κλάδο αυτό ενσωματώνονται μόνο καλά δοκιμασμένες διορθώσεις και άλλες μικρές πρόσθετες αλλαγές. Από την άλλη μεριά, το &os;-CURRENT βρίσκεται σε μια μοναδική αδιάκοπη γραμμή ανάπτυξης από την εποχή της κυκλοφορίας της έκδοσης 2.0, οδηγώντας προς την έκδοση 6.2-RELEASE αλλά και μετά από αυτή. Λίγο πριν τη κυκλοφορία της έκδοσης 6.0-RELEASE, δημιουργήθηκε ο κλάδος 6-STABLE και το &os.current; έγινε 7-CURRENT. Για περισσότερες πληροφορίες δείτε Προετοιμασία Εκδόσεων του &os;: Δημιουργία του Κλάδου Έκδοσης. Ο κλάδος 2.2-STABLE εγκαταλείφθηκε με την κυκλοφορία της έκδοσης 2.2.8. Ο κλάδος 3-STABLE τελείωσε με την κυκλοφορία της έκδοσης 3.5.1, που ήταν και η τελευταία της σειράς εκδόσεων 3.X. Ο κλάδος 4-STABLE τελείωσε με την κυκλοφορία της έκδοσης 4.11, της τελευταίας της σειράς 4.X. Οι μόνες αλλαγές που γίνονται κατά βάση σε κάθε ένα από αυτούς τους κλάδους, έχουν σχέση με διορθώσεις σε κενά ασφαλείας. Η υποστήριξη των κλάδων 5-STABLE θα συνεχιστεί για κάποιο διάστημα, ωστόσο θα επικεντρωθεί περισσότερο σε διορθώσεις κενών ασφαλείας και άλλων σοβαρών προβλημάτων. Το &rel.current;-STABLE είναι ο κλάδος που βρίσκεται υπό ενεργή ανάπτυξη. Η τελευταία κυκλοφορία που βασίζεται στον κλάδο &rel.current;-STABLE είναι η &rel.current;-RELEASE, και έγινε στις &rel.current.date;. Ο κλάδος 7-CURRENT είναι ο κλάδος -CURRENT που αναπτύσσεται αυτή τη στιγμή ενεργά ώστε να δημιουργηθεί η νέα γενιά του &os;. Δείτε Τι είναι το &os;-CURRENT; για περισσότερες πληροφορίες σχετικά με αυτό τον κλάδο. Κάθε πότε γίνονται επίσημες κυκλοφορίες του &os;; H &a.re; δίνει στην κυκλοφορία μια καινούρια έκδοση του &os; κάθε περίπου τέσσερις μήνες, κατά μέσο όρο. Οι ημερομηνίες κυκλοφορίας ανακοινώνονται αρκετό καιρό πριν, ώστε όσοι δουλεύουν πάνω στο σύστημα να ξέρουν πότε οι εργασίες τους πρέπει να έχουν ολοκληρωθεί και δοκιμαστεί. Πριν από κάθε κυκλοφορία, προηγείται μια περίοδος δοκιμών, ώστε να εξασφαλιστεί ότι η προσθήκη νέων χαρακτηριστικών δεν έχει αρνητικές επιπτώσεις στη σταθερότητα της έκδοσης. Πολλοί χρήστες θεωρούν αυτό το είδος της προσοχής ένα από τα καλύτερα πράγματα σχετικά με το &os;, αν και η αναμονή ως ότου φτάσουν όλα τα ωραία νέα χαρακτηριστικά το -STABLE μπορεί να γίνει λίγο εκνευριστική. Περισσότερες πληροφορίες σχετικά με τη διαδικασία κυκλοφορίας (περιλαμβανομένου και ενός χρονοδιαγράμματος επικείμενων κυκλοφοριών) μπορούν να βρεθούν στις σελίδες προετοιμασίας εκδόσεων στη δικτυακή τοποθεσία του &os;. Για τους πιο ενθουσιώδεις, υπάρχουν καθημερινά στιγμιότυπα (binary snapshots) όπως αναφέρθηκε πιο πάνω. Ποιος είναι υπεύθυνος για το &os; Οι βασικές αποφάσεις που αφορούν το &os; Project, όπως η συνολική κατεύθυνση του έργου και ποιος επιτρέπεται να προσθέσει πηγαίο κώδικα στο δέντρο, παίρνονται από την βασική ομάδα (core team) που αποτελείται από 9 άτομα. Υπάρχει μια ακόμα μεγαλύτερη ομάδα με περισσότερα από 350 άτομα που ονομάζονται διαπράκτες (committers) και οι οποίοι έχουν την έγκριση να κάνουν απευθείας αλλαγές στο δέντρο πηγαίου κώδικα του &os;. Ωστόσο οι περισσότερες σημαντικές αλλαγές συζητούνται από πριν στις λίστες ηλεκτρονικού ταχυδρομείου, και δεν υπάρχουν περιορισμοί σχετικά με το ποιοι λαμβάνουν μέρος σε αυτές τις συζητήσεις. Που μπορώ να προμηθευτώ το &os;; Κάθε σημαντική έκδοση του &os; είναι διαθέσιμη μέσω ανώνυμου FTP από τον διακομιστή FTP του &os;: Η τελευταία κυκλοφορία που βασίζεται στο 6-STABLE, &rel.current;-RELEASE μπορεί να βρεθεί στον κατάλογο &rel.current;-RELEASE. Εκδόσεις που βασίζονται σεΣτιγμιότυπα γίνονται καθημερινά από τους κλάδους -CURRENT και -STABLE, και εξυπηρετούν κατά βάση όσους ασχολούνται με την ανάπτυξη και τον έλεγχο των τελευταίας γενιάς προγραμμάτων. Η τελευταία κυκλοφορία που βασίζεται στον κλάδο 5-STABLE, η &rel2.current;-RELEASE, μπορεί να βρεθεί στον κατάλογο &rel2.current;-RELEASE. Πληροφορίες σχετικά με τη διάθεση του &os; σε CD, DVD και άλλα μέσα μπορούν να βρεθούν στο Εγχειρίδιο. Πως μπορώ να έχω πρόσβαση στη Βάση Δεδομένων με τις Αναφορές Προβλημάτων; Μπορείτε να κάνετε αναζητήσεις στη βάση δεδομένων με τις αναφορές προβλημάτων μέσω της διεπαφής αναζητήσεων στο Web. Η εντολή &man.send-pr.1; μπορεί να χρησιμοποιηθεί για την υποβολή αναφορών προβλημάτων, καθώς και αιτήσεων για αλλαγές, μέσω ηλεκτρονικού ταχυδρομείου. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε την αντίστοιχη δυνατότητα υποβολής αναφορών προβλημάτων μέσω της διεπαφής web με τη βοήθεια ενός προγράμματος φυλλομετρητή. Πριν υποβάλετε μια αναφορά προβλήματος, παρακαλούμε διαβάστε το Γράφοντας Αναφορές Προβλημάτων για το &os;, ένα άρθρο για το πως να γράφετε καλές αναφορές προβλημάτων. Τι άλλες πηγές πληροφοριών υπάρχουν; Παρακαλούμε ελέγξτε τη λίστα της Τεκμηρίωσης στην κύρια δικτυακή τοποθεσία του &os;. Τεκμηρίωση και Υποστήριξη Ποια καλά βιβλία υπάρχουν σχετικά με το &os;; Το Project παράγει μια μεγάλη γκάμα τεκμηρίωσης που διατίθεται online από τον παρακάτω σύνδεσμο: . Τα ίδια αυτά έγγραφα είναι διαθέσιμα και ως πακέτα τα οποία μπορείτε να εγκαταστήσετε εύκολα στο &os; σύστημα σας. Περισσότερες λεπτομέρειες σχετικά με τα πακέτα τεκμηρίωσης, θα βρείτε στις ακόλουθες παραγράφους. Επιπρόσθετα, θα βρείτε και άλλα συνιστώμενα βιβλία στην Βιβλιογραφία στο τέλος αυτού του FAQ, και του Εγχειριδίου. Είναι διαθέσιμη η τεκμηρίωση και σε άλλες μορφές, όπως απλό κείμενο (ASCII) ή &postscript;; Ναι. Η τεκμηρίωση είναι διαθέσιμη σε πλήθος διαφορετικών μορφών και τρόπων συμπίεσης, στο διακομιστή FTP του &os;, στον κατάλογο /pub/FreeBSD/doc/. Η τεκμηρίωση είναι κατηγοριοποιημένη με διάφορους τρόπους. Αυτοί περιλαμβάνουν: Το όνομα του εγγράφου, όπως π.χ. faq, ή handbook. H γλώσσα και η κωδικοποίηση του κειμένου. Αυτά βασίζονται στα ονόματα που έχουν δοθεί στις τοπικές ρυθμίσεις και που μπορείτε να βρείτε στον κατάλογο /usr/share/locale στο &os; σύστημά σας. Οι τρέχουσες γλώσσες και κωδικοποιήσεις που έχουμε διαθέσιμες αυτή τη στιγμή στην τεκμηρίωση είναι οι παρακάτω: Όνομα Ερμηνεία en_US.ISO8859-1 Αγγλικά ΗΠΑ bn_BD.ISO10646-1 Bengali (ή Bangla) da_DK.ISO8859-1 Δανέζικα de_DE.ISO8859-1 Γερμανικά es_ES.ISO8859-1 Ισπανικά fr_FR.ISO8859-1 Γαλλικά hu_HU.ISO8859-2 Ουγγαρέζικα it_IT.ISO8859-15 Ιταλικά ja_JP.eucJP Γιαπωνέζικα (κωδικοποίηση EUC) mn_MN.UTF-8 Μογγολικά (κωδικοποίηση UTF-8) nl_NL.ISO8859-1 Ολλανδικά pl_PL.ISO8859-2 Πολωνικά pt_BR.ISO8859-1 Πορτογαλικά (Βραζιλία) ru_RU.KOI8-R Ρώσικα (κωδικοποίηση KOI8-R) sr_YU.ISO8859-2 Σέρβικα tr_TR.ISO8859-9 Τούρκικα zh_CN.GB2312 Απλοποιημένα Κινέζικα (κωδικοποίηση GB2312) zh_TW.Big5 Παραδοσιακά Κινέζικα (κωδικοποίηση Big5) Κάποια έγγραφα μπορεί να μην είναι διαθέσιμα σε όλες τις γλώσσες. Τη μορφή του εγγράφου. Παράγουμε τεκμηρίωση σε πλήθος διαφορετικών μορφών εξόδου. Κάθε μορφή έχει τα δικά της πλεονεκτήματα και μειονεκτήματα. Κάποιες μορφές είναι περισσότερο κατάλληλες για ανάγνωση online, ενώ άλλες δίνουν πιο καλαίσθητο αποτέλεσμα όταν εκτυπωθούν. Η διάθεση της τεκμηρίωσης σε όλες αυτές τις μορφές εξασφαλίζει ότι οι αναγνώστες μας θα μπορούν να διαβάσουν τα τμήματα που τους ενδιαφέρουν, είτε στην οθόνη τους, είτε αφού τα εκτυπώσουν. Οι διαθέσιμες αυτή τη στιγμή μορφές είναι: Μορφή Ερμηνεία html-split Συλλογή μικρών, συνδεμένων μεταξύ τους, αρχείων HTML. html Ένα μεγάλο HTML αρχείο που περιέχει ολόκληρο το έγγραφο. pdb Μορφή βάσης δεδομένων για το Palm Pilot, για χρήση με το πρόγραμμα ανάγνωσης iSilo. pdf Μορφή κειμένου PDF της Adobe. ps &postscript; rtf Μορφή Εμπλουτισμένου Κειμένου της Microsoft Οι αριθμοί σελίδων δεν ανανεώνονται αυτόματα όταν φορτώνετε αυτή τη μορφή εγγράφου στο Word. Πιέστε CTRLA, CTRLEND, F9 μετά τη φόρτωση του κειμένου για την ανανέωση των αριθμών σελίδων. txt Απλό κείμενο Ο τρόπος συμπίεσης και πακεταρίσματος. Υπάρχουν τρεις τρόποι που χρησιμοποιούνται αυτή τη στιγμή. Όταν η μορφή είναι html-split, τα αρχεία συμπιέζονται με χρήση της &man.tar.1;. Το αρχείο .tar που προκύπτει, συμπιέζεται έπειτα με τους τρόπους συμπίεσης που περιγράφονται παρακάτω. Όλες οι άλλες μορφές δημιουργούν ένα αρχείο που ονομάζεται book.μορφή (π.χ., book.pdb, book.html, κ.ο.κ.). Τα αρχεία αυτά συμπιέζονται κατόπιν με δύο τρόπους συμπίεσης. Τρόπος Περιγραφή zip Μορφή συμπίεσης Zip. Αν θέλετε να το αποσυμπιέσετε στο &os; θα πρέπει να εγκαταστήσετε πρώτα το port archivers/unzip. bz2 Η μορφή BZip2. Είναι λιγότερο διαδεδομένη από το Zip, αλλά γενικά δημιουργεί μικρότερα αρχεία. Εγκαταστήστε το port archivers/bzip2 για να αποσυμπιέσετε αρχεία αυτού του τύπου. Με τον τρόπο αυτό, η μορφή &postscript; του Εγχειριδίου, συμπιεσμένη με χρήση του BZip2 θα αποθηκευτεί σε ένα αρχείο με όνομα book.ps.bz2 στον κατάλογο handbook/. Αφού επιλέξετε τη μορφή και το μηχανισμό συμπίεσης που επιθυμείτε να κατεβάσετε, θα πρέπει έπειτα να αποφασίσετε αν θέλετε ή όχι να κατεβάσετε το έγγραφο με τη μορφή πακέτου του &os;. Το πλεονέκτημα στο να κατεβάσετε και να εγκαταστήσετε το πακέτο είναι ότι έπειτα μπορείτε να διαχειριστείτε την τεκμηρίωση χρησιμοποιώντας τα συνηθισμένα εργαλεία διαχείρισης πακέτων του &os; όπως την &man.pkg.add.1; και την &man.pkg.delete.1;. Αν αποφασίσετε να κατεβάσετε και να εγκαταστήσετε την τεκμηρίωση ως πακέτο, θα πρέπει να ξέρετε το ακριβές όνομα αρχείου που θα κατεβάσετε. Τα αρχεία τεκμηρίωσης-ως-πακέτο αποθηκεύονται σε ένα κατάλογο με το όνομα packages. Κάθε πακέτο μοιάζει με όνομα-κειμένου.γλώσσα.κωδικοποίηση.μορφή.tgz. Για παράδειγμα, το FAQ, στα Αγγλικά, σε μορφή PDF, είναι στο πακέτο με όνομα faq.en_US.ISO8859-1.pdf.tgz. Αν το ξέρετε αυτό μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να εγκαταστήσετε το πακέτο του Αγγλικού PDF FAQ: &prompt.root; pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz Αφού το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε την εντολή &man.pkg.info.1; για να βρείτε που έχει εγκατασταθεί το αρχείο. &prompt.root; pkg_info -f faq.en_US.ISO8859-1.pdf Information for faq.en_US.ISO8859-1.pdf: Packing list: Package name: faq.en_US.ISO8859-1.pdf CWD to /usr/share/doc/en_US.ISO8859-1/books/faq File: book.pdf CWD to . File: +COMMENT (ignored) File: +DESC (ignored) Όπως μπορείτε να δείτε, το book.pdf θα έχει εγκατασταθεί στον κατάλογο /usr/share/doc/en_US.ISO8859-1/books/faq. Αν δεν θέλετε να χρησιμοποιήσετε τα πακέτα, θα πρέπει να κατεβάσετε μόνοι σας τα συμπιεσμένα αρχεία, να τα αποσυμπιέσετε και έπειτα να αντιγράψετε τα αντίστοιχα έγγραφα στη θέση τους. Για παράδειγμα, η έκδοση του FAQ σε συνδεδεμένα αρχεία HTML, συμπιεσμένη με χρήση του &man.bzip2.1;, μπορεί να βρεθεί στο αρχείο doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 . Για να κατεβάσετε και να αποσυμπιέσετε αυτό το αρχείο θα πρέπει να κάνετε το παρακάτω: &prompt.root; fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 &prompt.root; bzip2 -d book.html-split.tar.bz2 &prompt.root; tar xvf book.html-split.tar Θα καταλήξετε με μια συλλογή από αρχεία .html. Το βασικό ονομάζεται index.html, και θα περιέχει τον πίνακα περιεχομένων, εισαγωγικό υλικό, και δεσμούς προς τα άλλα τμήματα του εγγράφου. Μπορείτε έπειτα να αντιγράψετε ή να μετακινήσετε τα αρχεία αυτά στις τελικές τους θέσεις, όπως απαιτείται. Που μπορώ να βρω πληροφορίες για λίστες ηλεκτρονικού ταχυδρομείου του &os;; Μπορείτε να βρείτε πλήρεις πληροφορίες στην αντίστοιχη καταχώρηση του Εγχειριδίου για τις λίστες ηλεκτρονικού ταχυδρομείου. Τι ομάδες συζήτησης είναι διαθέσιμες για το &os;; Μπορείτε να βρείτε πλήρεις πληροφορίες στην καταχώρηση του Εγχειριδίου για τις ομάδες συζητήσεων. Υπάρχουν κανάλια στο IRC (Internet Relay Chat) για το &os;; Ναι, τα περισσότερα IRC δίκτυα διαθέτουν κανάλι συζήτησης για το &os;: Το κανάλι #FreeBSD στο EFNet ασχολείται με το &os;, αλλά μην πάτε εκεί για τεχνική υποστήριξη ή για να προσπαθήσετε να πείσετε τους θαμώνες να σας βοηθήσουν για να απαλλαγείτε από τον κόπο να διαβάσετε τις σελίδες βοήθειας ή να ερευνήσετε μόνος σας. Είναι απλώς ένα κανάλι συζήτησης, πρώτα από όλα, και τα θέματα εκεί μπορεί να κυμαίνονται ανάμεσα στο σεξ, τον αθλητισμό, τα πυρηνικά όπλα ως και το &os;. Σας έχουμε προειδοποιήσει! Είναι διαθέσιμο στον εξυπηρετητή irc.chat.org. Το κανάλι #FreeBSDhelp στο EFNet είναι αφιερωμένο στη βοήθεια των χρηστών του &os;. Έχετε πολύ μεγαλύτερη πιθανότητα να βρείτε απαντήσεις στις ερωτήσεις σας σε αυτό, παρά στο #FreeBSD. Το κανάλι ##FreeBSD στο Freenode είναι ένα γενικό κανάλι βοήθειας με περίπου 300 χρήστες κάθε φορά. Οι συζητήσεις μερικές φορές ξεφεύγουν από το θέμα, αλλά δίνεται προτεραιότητα στους χρήστες με ερωτήσεις για το &os;. Είμαστε καλοί στο να σας βοηθήσουμε να καταλάβετε τα βασικά, να σας δείξουμε που να ανατρέξετε στο Εγχειρίδιο όποτε χρειάζεται, και να σας κατευθύνουμε εκεί όπου μπορείτε να μάθετε περισσότερα για θέμα που σας απασχολεί. Είμαστε κατά βάση Αγγλόφωνο κανάλι, αν και έχουμε χρήστες από όλο τον κόσμο. Αν θέλετε να ρωτήσετε στη μητρική σας γλώσσα, προσπαθήστε να κάνετε την ερώτηση στα Αγγλικά και έπειτα μετακινηθείτε σε κάποιο άλλο κανάλι ##freebsd-lang αν χρειάζεται. Το κανάλι #FreeBSD στο DALNET είναι διαθέσιμο στο irc.dal.net στις ΗΠΑ και στο irc.eu.dal.net στην Ευρώπη. Το κανάλι #FreeBSDHelp στο DALNET είναι διαθέσιμο στο irc.dal.net στις ΗΠΑ και στο irc.eu.dal.net στην Ευρώπη. Το κανάλι #FreeBSD στο UNDERNET είναι διαθέσιμο στο us.undernet.org στις ΗΠΑ και στο eu.undernet.org στην Ευρώπη. Καθώς είναι κανάλι βοήθειας, θα πρέπει να είστε προετοιμασμένοι να διαβάσετε τα έγγραφα στα οποία θα σας παραπέμψουν. Το κανάλι #FreeBSD στο RUSNET είναι προσανατολισμένο στη βοήθεια χρηστών του &os; που μιλούν τη Ρωσική γλώσσα. Είναι επίσης ένα καλό μέρος για μη-τεχνικές συζητήσεις. Το κανάλι #BSDChat στο IRCNET είναι ένα κανάλι σε παραδοσιακή Κινεζική γλώσσα, αφιερωμένο στη βοήθεια χρηστών του &os;. Είναι επίσης ένα καλό μέρος για μη-τεχνικές συζητήσεις. Κάθε ένα από αυτά τα κανάλια, είναι χωριστό, και δεν διασυνδέεται με τα υπόλοιπα. Τα στυλ της συζήτησης διαφέρουν, και ίσως θα θέλετε να δοκιμάσετε καθένα για να βρείτε κάποιο που να ταιριάζει στο δικό σας. Όπως με κάθε τύπο συζήτησης στο IRC, αν είστε από αυτούς που προσβάλλονται εύκολα, ή δεν μπορείτε να αντιμετωπίσετε πολλούς νέους ανθρώπους (και αρκετούς πιο μεγάλους) να επιδίδονται στο λεκτικό αντίστοιχο της πυγμαχίας, μην ασχοληθείτε καθόλου. Που μπορώ να βρω επί πληρωμή υποστήριξη και εκπαίδευση για το &os;; Το DaemonNews παρέχει επί πληρωμή εκπαίδευση και υποστήριξη για το &os;. Περισσότερες πληροφορίες μπορείτε να βρείτε στην δικτυακή τους τοποθεσία BSD Mall. Το &os; Mall παρέχει επίσης επί πληρωμή υποστήριξη για το &os;. Μπορείτε να βρείτε περισσότερες πληροφορίες στην δικτυακή τους τοποθεσία. Οποιοσδήποτε άλλος οργανισμός παρέχει εκπαίδευση και υποστήριξη, θα πρέπει να επικοινωνήσει με το Project για να καταχωρηθεί σε αυτή τη λίστα. Nik Clayton
nik@FreeBSD.org
Εγκατάσταση Ποιο αρχείο πρέπει να κατεβάσω για να πάρω το &os;; Χρειάζεστε τρία images δισκετών: floppies/boot.flp, floppies/kern1.flp, και floppies/kern2.flp. Τα images αυτά πρέπει να να τα γράψετε σε δισκέτες χρησιμοποιώντας κάποιο εργαλείο όπως το fdimage ή το &man.dd.1;. Αν πρέπει να κατεβάσετε μόνοι σας τα σετ διανομών (distributions — για παράδειγμα για μια εγκατάσταση μέσω συστήματος αρχείων DOS), θα βρείτε παρακάτω μερικές συστάσεις σχετικά με το ποιες διανομές να κατεβάσετε: base/ manpages/ compat*/ doc/ src/ssys.* Πλήρεις οδηγίες σχετικά με τη διαδικασία καθώς και περισσότερες πληροφορίες σχετικά με γενικά προβλήματα κατά την εγκατάσταση μπορείτε να βρείτε στο Κεφάλαιο του Εγχειριδίου σχετικά με την εγκατάσταση του &os;. Τι μπορώ να κάνω αν το image της δισκέτας δεν χωράει σε μια μόνο δισκέτα; Μια δισκέτα των 3.5 ιντσών (1.44MB) μπορεί να χωρέσει ως 1474560 bytes δεδομένων. Το αρχείο image της δισκέτας εκκίνησης είναι ακριβώς αυτό το μέγεθος. Συνηθισμένα λάθη κατά την προετοιμασία της δισκέτας εκκίνησης: Κατέβασμα της δισκέτας χωρίς τη χρήση του δυαδικού (binary) τρόπου όταν χρησιμοποιείται εξυπηρετητής FTP. Κάποια προγράμματα-πελάτες για FTP, χρησιμοποιούν από προεπιλογή τον ascii (κειμένου) τρόπο μεταφοράς δεδομένων και προσπαθούν να αλλάξουν τους χαρακτήρες τέλους γραμμής ώστε να ταιριάζουν με τις συμβάσεις που χρησιμοποιούνται από το σύστημα στο οποίο γίνεται η λήψη. Αυτό σχεδόν σίγουρα θα καταστρέψει το image εκκίνησης. Ελέγξτε το μέγεθος του image εκκίνησης που κατεβάσατε: Αν δεν είναι ακριβώς αυτό που φαίνεται στον εξυπηρετητή, η διαδικασία του κατεβάσματος θα πρέπει να θεωρηθεί ύποπτη. Για να παρακάμψετε το πρόβλημα: γράψτε binary στην γραμμή εντολών του FTP, μετά που θα συνδεθείτε στον εξυπηρετητή, και πριν ξεκινήσετε να κατεβάζετε το image. Χρήση της εντολής copy του DOS (η αντίστοιχου γραφικού εργαλείου) για τη μεταφορά του αρχείου image στη δισκέτα. Προγράμματα όπως το copy, δεν θα λειτουργήσουν σωστά καθώς το image εκκίνησης έχει φτιαχτεί ώστε να εκκινεί άμεσα. Το image έχει τα πλήρη περιεχόμενα της δισκέτας, τροχιά προς τροχιά, και δεν πρέπει να γραφεί στη δισκέτα ως κανονικό αρχείο. Θα πρέπει να το μεταφέρετε στη δισκέτα με ωμό τρόπο, χρησιμοποιώντας εργαλεία χαμηλού επιπέδου (low-level) (όπως π.χ. το fdimage ή το rawrite) που περιγράφονται στον οδηγό εγκατάστασης του &os;. Που βρίσκονται οι οδηγίες για την εγκατάσταση του &os;; Μπορείτε να βρείτε τις οδηγίες στην καταχώρηση του Εγχειριδίου σχετικά με την εγκατάσταση του &os;. Τι χρειάζομαι για να εκτελέσω το &os;; Για εκδόσεις του &os; από το 5.X και μετά χρειάζεστε ένα PC με επεξεργαστή 486 ή καλύτερο, με 24 MB ή περισσότερη RAM, και τουλάχιστον 150 MB χώρου στο σκληρό σας δίσκο. Μπορείτε να εκτελέσετε όλες τις εκδόσεις του &os; με μια χαμηλών προδιαγραφών, μονόχρωμη (MDA) κάρτα γραφικών, αλλά για να χρησιμοποιήσετε το &xorg;, θα χρειαστείτε κάρτα VGA ή καλύτερη. Δείτε επίσης και το . Πως μπορώ να δημιουργήσω τη δική μου, προσαρμοσμένη δισκέτα εγκατάστασης; Τη δεδομένη στιγμή, δεν υπάρχει τρόπος να φτιάξετε απλώς μια προσαρμοσμένη δισκέτα εγκατάστασης. Θα πρέπει να δημιουργήσετε ολόκληρη νέα έκδοση, η οποία θα περιλαμβάνει και την προσαρμοσμένη δισκέτα εγκατάστασης σας. Για να δημιουργήσετε μια προσαρμοσμένη έκδοση, ακολουθήστε τις οδηγίες στο άρθρο σχετικά με την Οργάνωση Εκδόσεων. Μπορώ να έχω περισσότερα από ένα λειτουργικά συστήματα στον υπολογιστή μου; Ρίξτε μια ματιά στην σελίδα πολλαπλών λειτουργικών. Μπορούν να συνυπάρξουν τα &windows; με το &os;; Εγκαταστήστε πρώτα τα &windows;, και μετά το &os;. Ο διαχειριστής εκκίνησης του &os; θα σας επιτρέπει έπειτα να επιλέξετε την εκκίνηση είτε των &windows; είτε του &os;. Αν εγκαταστήσετε τα &windows; μετά το &os;, θα σας σβήσουν τον διαχειριστή εκκίνησης, χωρίς καν να σας ρωτήσουν. Αν σας συμβεί, αυτό δείτε το επόμενο τμήμα. Τα &windows; κατέστρεψαν το διαχειριστή εκκίνησης μου! Πως θα τον επαναφέρω; Μπορείτε να επανεγκαταστήσετε το διαχειριστή εκκίνησης του &os; χρησιμοποιώντας έναν από τους τρεις παρακάτω τρόπους: Εκτελώντας το DOS, μετακινηθείτε στον κατάλογο tools/ της &os; διανομής σας, και ψάξτε για το αρχείο bootinst.exe. Εκτελέστε το όπως φαίνεται παρακάτω: ...\TOOLS> bootinst.exe boot.bin και ο διαχειριστής εκκίνησης θα επανεγκατασταθεί. Ξεκινήστε ξανά χρησιμοποιώντας τη δισκέτα εκκίνησης του &os; και πηγαίνετε στην επιλογή Custom Installation του μενού. Επιλέξτε Partition. Επιλέξτε τον οδηγό που κανονικά θα περιείχε τον διαχειριστή εκκίνησης σας (φυσιολογικά τον πρώτο) και όταν φτάσετε στον επεξεργαστή κατατμήσεων (partition editor) για τον οδηγό αυτό, το πρώτο πράγμα που θα κάνετε (χωρίς άλλες αλλαγές), είναι να επιλέξετε (W)rite. Επιλέξτε yes στην επιβεβαίωση που θα εμφανιστεί και όταν φτάσετε στην προτροπή επιλογής Διαχειριστή Εκκίνησης, επιλέξτε Boot Manager. Με τον τρόπο αυτό ο διαχειριστής εκκίνησης θα γραφεί ξανά στο δίσκο. Μπορείτε τώρα να βγείτε από το μενού της εγκατάστασης και να επανεκκινήσετε από το σκληρό δίσκο, όπως συνήθως. Ξεκινήστε με τη βοήθεια της δισκέτας εκκίνησης (ή του CD) του &os; και επιλέξτε Fixit από το μενού. Επιλέξτε είτε τη δισκέτα Fixit είτε το CD #2 (το live σύστημα αρχείων) και θα εισέλθετε στο κέλυφος fixit. Εκτελέστε έπειτα την ακόλουθη εντολή: Fixit# fdisk -B -b /boot/boot0 bootdevice αντικαθιστώντας το bootdevice με τον πραγματικό σας δίσκο εκκίνησης, όπως π.χ. ad0 (πρώτος δίσκος IDE), ad4 (πρώτος δίσκος IDE στον βοηθητικό ελεγκτή), da0 (πρώτος δίσκος SCSI), κ.λ.π. Ο φορητός μου υπολογιστής σειράς IBM Thinkpad, σειράς Α, Τ ή Χ, σταματάει να αποκρίνεται όταν προσπαθώ να εκκινήσω το &os; μετά την εγκατάσταση. Πως μπορώ να επιλύσω αυτό το πρόβλημα; Πρόκειται για ένα πρόβλημα στις αρχικές εκδόσεις του BIOS της ΙΒΜ στα συγκεκριμένα μηχανήματα, το οποίο αναγνωρίζει την κατάτμηση του &os; ως πιθανό διαμέρισμα FAT για τη λειτουργία αδρανοποίησης στο δίσκο (suspend-to-disk). Το BIOS σταματάει να αποκρίνεται καθώς προσπαθεί να αναλύσει το διαμέρισμα του &os;. Σύμφωνα με την IBMΣε ένα e-mail από τον Keith Frechette kfrechet@us.ibm.com., τα ακόλουθα μοντέλα και εκδόσεις BIOS περιλαμβάνουν τις απαραίτητες διορθώσεις. Μοντέλο Έκδοση BIOS T20 IYET49WW ή μεταγενέστερο T21 KZET22WW ή μεταγενέστερο A20p IVET62WW ή μεταγενέστερο A20m IWET54WW ή μεταγενέστερο A21p KYET27WW ή μεταγενέστερο A21m KXET24WW ή μεταγενέστερο A21e KUET30WW Έχει αναφερθεί ότι μεταγενέστερες εκδόσεις του BIOS της ΙΒΜ, ίσως παρουσιάζουν ξανά το πρόβλημα. To μήνυμα αυτό από τον Jacques Vidrine στην &a.mobile; περιγράφει μια διαδικασία η οποία ίσως δουλέψει σε νεότερα μοντέλα φορητών της IBM τα οποία δεν εκκινούν κανονικά το &os;, και στα οποία μπορείτε να αναβαθμίσετε το BIOS ή και να επιστρέψετε σε προηγούμενη έκδοση του. Αν έχετε παλιότερο BIOS, αλλά δεν έχετε την επιλογή να το αναβαθμίσετε, ένας τρόπος να ξεπεράσετε το πρόβλημα είναι να εγκαταστήσετε το &os;, να αλλάξετε τον αναγνωριστικό αριθμό (partition id) της κατάτμησης, και να εγκαταστήσετε νέα boot blocks τα οποία να μπορούν να χειριστούν το διαφορετικό αναγνωριστικό της κατάτμησης. Αρχικά, θα πρέπει να επαναφέρετε το μηχάνημα σε μια κατάσταση ώστε να περνάει από την αρχική διαγνωστική οθόνη. Αυτό απαιτεί να ενεργοποιήσετε το μηχάνημα χωρίς να το αφήσετε να βρει την κατάτμηση του &os; στον κύριο δίσκο του. Ένας τρόπος είναι να απομακρύνετε τον σκληρό δίσκο και να τον μετακινήσετε προσωρινά σε ένα παλιότερο ThinkPad (όπως το ThinkPad 600) ή κάποιο επιτραπέζιο μηχάνημα, χρησιμοποιώντας το κατάλληλο καλώδιο μετατροπής. Στο μηχάνημα αυτό μπορείτε πλέον να διαγράψετε την κατάτμηση του &os; και έπειτα να μετακινήσετε τον δίσκο στο αρχικό μηχάνημα. Το ThinkPad θα πρέπει τώρα να εκκινεί κανονικά. Με το μηχάνημα σε λειτουργική κατάσταση, μπορείτε τώρα να χρησιμοποιήσετε την διαδικασία που περιγράφεται εδώ ώστε να έχετε τελικά μια εγκατάσταση του &os; που να λειτουργεί. Κατεβάστε τις δισκέτες boot1 και boot2 από . Αποθηκεύστε τα αρχεία αυτά κάπου που θα μπορείτε να τα ξαναβρείτε αργότερα. Εγκαταστήστε κανονικά το &os; στο ThinkPad. Μην χρησιμοποιήσετε την κατάσταση Dangerously Dedicated. Μην κάνετε επανεκκίνηση όταν τελειώσει η εγκατάσταση. Χρησιμοποιήστε είτε το Emergency Holographic Shell (ALT F4) είτε το κέλυφος fixit. Χρησιμοποιήστε την &man.fdisk.8; για να αλλάξετε τον αναγνωριστικό αριθμό της κατάτμησης του &os; από 165 σε 166 (αυτός είναι ο τύπος που χρησιμοποιείται από το OpenBSD). Γράψτε τα αρχεία boot1 και boot2 στο τοπικό σύστημα αρχείων. Χρησιμοποιήστε το &man.disklabel.8; για να γράψετε τα boot1 και boot2 στο slice του &os;. &prompt.root; disklabel -B -b boot1 -s boot2 ad0sn Το n είναι ο αριθμός του slice που έχετε εγκαταστήσει το &os;. Κάντε επανεκκίνηση. Στην προτροπή εκκίνησης θα δείτε την επιλογή να ξεκινήσετε το OpenBSD. Στην πραγματικότητα, με αυτό τον τρόπο θα ξεκινήσετε το &os;. Το να κάνετε το παραπάνω να λειτουργήσει στην περίπτωση που θέλετε να έχετε διπλή εκκίνηση OpenBSD και &os; στον ίδιο φορητό υπολογιστή, το αφήνουμε ως άσκηση στον αναγνώστη. Μπορώ να κάνω εγκατάσταση σε ένα δίσκο με χαλασμένους τομείς; Μπορείτε, αλλά είναι κακή ιδέα. Αν δείτε χαλασμένους τομείς σε ένα σύγχρονο οδηγό IDE, υπάρχει μεγάλη πιθανότητα ο οδηγός αυτός, πολύ σύντομα, να σταματήσει να λειτουργεί εντελώς (ο οδηγός δεν έχει άλλους εναλλακτικούς κυλίνδρους που να μπορούν να αντικαταστήσουν τους χαλασμένους μέσω της εσωτερικής λειτουργίας επανατοποθέτησης των δεδομένων, κάτι το οποίο σημαίνει ότι ο δίσκος έχει σημαντική φθορά). Σας συνιστούμε να αγοράσετε καινούριο δίσκο. Αν έχετε οδηγό SCSI με χαλασμένους τομείς δείτε αυτή την απάντηση. Διάφορα περίεργα πράγματα συμβαίνουν όταν εκκινώ με τη δισκέτα εκκίνησης! Τι συμβαίνει; Αν βλέπετε καταστάσεις όπως το μηχάνημα να μην αποκρίνεται ή να κάνει επανεκκίνηση μόνο του όταν προσπαθείτε να εκκινήσετε με την δισκέτα εκκίνησης, θα πρέπει να κάνετε στον εαυτό σας τρεις ερωτήσεις: Χρησιμοποιήσατε καινούριες, φρεσκο-διαμορφωμένες, και χωρίς λάθη δισκέτες (κατά προτίμηση καλής εταιρίας τις οποίες μόλις βγάλατε καινούριες από το κουτί τους, σε αντίθεση με τη δισκέτα που πήρατε μαζί με κάποιο περιοδικό και η οποία βρίσκονταν κάτω από το κρεβάτι τα τρία τελευταία χρόνια); Κατεβάσατε το image της δισκέτας με δυαδικό (binary ή image) τρόπο μεταφοράς; (μη ντρέπεστε, ακόμα και οι καλύτεροι από μας έχουν κατά λάθος κατεβάσει κάποιο δυαδικό αρχείο σε κατάσταση ASCII (κειμένου), τουλάχιστον μια φορά!) Αν χρησιμοποιείτε &windows; 95 ή 98, εκτελέστε το fdimage ή το rawrite σε καθαρή κατάσταση DOS; Τα λειτουργικά αυτά μπορεί να παρεμβληθούν σε προγράμματα τα οποία γράφουν απευθείας στο υλικό, κάτι το οποίο συμβαίνει και με τα προγράμματα δημιουργίας των δισκετών. Μπορεί να δημιουργηθεί πρόβλημα, ακόμα και αν τα εκτελείτε σε παράθυρο DOS μέσα από το γραφικό περιβάλλον. Έχουν επίσης αναφερθεί περιπτώσεις όπου το &netscape; δημιουργεί προβλήματα στο κατέβασμα της δισκέτας εκκίνησης, έτσι είναι καλύτερα να χρησιμοποιήσετε κάποιο άλλο πρόγραμμα FTP, αν αυτό είναι δυνατόν. Ξεκίνησα από το ATAPI CDROM μου, αλλά το πρόγραμμα εγκατάστασης λέει ότι δεν βρίσκει CDROM. Που πήγε; Η συνήθης αιτία αυτού του προβλήματος είναι ένας κακορυθμισμένος οδηγός CDROM. Πολλά PC έρχονται πλέον με το CDROM ως slave συσκευή στο δευτερεύοντα ελεγκτή, χωρίς να υπάρχει στο ίδιο κανάλι συσκευή master. Αυτό, σύμφωνα με τις προδιαγραφές του ATAPI, δεν είναι έγκυρο, αλλά τα &windows; τηρούν τις προδιαγραφές χαλαρά, ενώ το BIOS το αγνοεί κατά την εκκίνηση. Αυτός είναι και ο λόγος που το BIOS κατάφερε να δει το CDROM και να το χρησιμοποιήσει, αλλά και ο λόγος που το &os; δεν μπόρεσε να το δει για να συνεχίσει την εγκατάσταση. Ρυθμίστε ξανά το σύστημα σας, ώστε το CDROM είτε να είναι η master συσκευή στον ελεγκτή που είναι συνδεμένη, ή βεβαιωθείτε ότι είναι slave σε ένα ελεγκτή IDE ο οποίος όμως έχει άλλη συσκευή συνδεμένη ως master. Μπορώ να εγκαταστήσω το &os; στο φορητό μου χρησιμοποιώντας PLIP (Parallel Line IP, IP μέσω Παράλληλης Θύρας); Ναι. Χρησιμοποιήστε τυποποιημένο καλώδιο τύπου Laplink. Αν χρειάζεται, διαβάστε το τμήμα PLIP του Εγχειριδίου για λεπτομέρειες σχετικές με δικτύωση μέσω παράλληλης θύρας. Τι γεωμετρία να χρησιμοποιήσω για το σκληρό μου δίσκο; Με τον όρο γεωμετρία, εννοούμε τον αριθμό των κυλίνδρων, κεφαλών και τομέων ανά τροχιά ενός δίσκου. Για ευκολία, θα αναφερόμαστε στον όρο αυτό ως C/H/S (Cylinders / Heads / Sectors). Αυτός είναι και ο τρόπος με τον οποίο το BIOS βρίσκει σε ποια περιοχή του δίσκου να γράψει. Το παραπάνω προκαλεί σύγχυση στου νέους διαχειριστές συστημάτων. Καταρχήν, η φυσική γεωμετρία ενός οδηγού SCSI είναι συνολικά άσχετη, αφού το &os; λειτουργεί με βάση τα μπλοκ δίσκου. Στην πραγματικότητα, δεν υπάρχει καν αληθινή φυσική γεωμετρία, καθώς η πυκνότητα των τομέων μεταβάλλεται από περιοχή σε περιοχή του δίσκου. Αυτό που οι κατασκευαστές αναφέρουν συχνά ως φυσική γεωμετρία είναι συνήθως η γεωμετρία με την όποια έχουν ανακαλύψει ότι γίνεται η μικρότερη σπατάλη ελεύθερου χώρου. Για δίσκους IDE, το &os; χρησιμοποιεί πράγματι το C/H/S, αλλά όλοι οι μοντέρνοι οδηγοί μετατρέπουν εσωτερικά αυτές τις αναφορές σε αντίστοιχα μπλοκ. Το μόνο που έχει πραγματική σημασία είναι η λογική γεωμετρία. Αυτή είναι και η απάντηση που δέχεται το BIOS όταν ρωτάει το δίσκο ποια είναι η γεωμετρία σου; Έπειτα, χρησιμοποιεί αυτή τη γεωμετρία για να αποκτήσει πρόσβαση στο δίσκο. Καθώς το &os; χρησιμοποιεί το BIOS κατά την εκκίνηση, είναι πολύ σημαντικό η γεωμετρία αυτή να είναι σωστή. Ειδικότερα, αν έχετε περισσότερα από ένα λειτουργικά συστήματα στο δίσκο, πρέπει όλα να συμφωνούν όσο αφορά τη γεωμετρία. Διαφορετικά θα έχετε σοβαρά προβλήματα κατά την εκκίνηση! Για δίσκους SCSI, η γεωμετρία που πρέπει να χρησιμοποιηθεί, εξαρτάται από το αν είναι ενεργοποιημένη η υποστήριξη εκτεταμένης μετάφρασης (αυτό συχνά αναφέρεται ως υποστήριξη για δίσκους DOS >1GB ή κάτι αντίστοιχο). Αν είναι απενεργοποιημένη, χρησιμοποιήστε N κυλίνδρους, 64 κεφαλές και 32 τομείς/τροχιά, όπου το N είναι η χωρητικότητα του δίσκου σε ΜΒ. Για παράδειγμα, για ένα δίσκο 2GB, θα πρέπει να έχετε 2048 κυλίνδρους, 64 κεφαλές, και 32 τομείς/τροχιά. Αν είναι ενεργοποιημένη (και συχνά παρέχεται έτσι ώστε να ξεπερνιούνται κάποιοι περιορισμοί στο &ms-dos;) και η χωρητικότητα του δίσκου είναι μεγαλύτερη από 1GB, χρησιμοποιήστε M κυλίνδρους, 63 τομείς ανά τροχιά (όχι 64) και 255 κεφαλές, όπου M είναι η χωρητικότητα του δίσκου σε MB, διαιρεμένη με το 7.844238 (!). Έτσι, στο παράδειγμα μας, ο δίσκος των 2GB θα είχε 261 κυλίνδρους, 63 τομείς ανά τροχιά και 255 κεφαλές. Αν δεν είστε σίγουρος για το παραπάνω, ή αν το &os; αποτύχει στην ανίχνευση της σωστής γεωμετρίας κατά την εγκατάσταση, ο απλούστερος τρόπος για να το παρακάμψετε, είναι συνήθως να δημιουργήσετε ένα μικρό διαμέρισμα DOS στο δίσκο. Το BIOS έπειτα θα ανιχνεύσει τη σωστή γεωμετρία, και μπορείτε πάντα να διαγράψετε το διαμέρισμα DOS μέσα από τον επεξεργαστή κατατμήσεων, αν δε θέλετε να το κρατήσετε. Μπορεί ωστόσο να θελήσετε να το αφήσετε, για να προγραμματίζετε κάρτες δικτύου και για άλλες, αντίστοιχες, εργασίες. Εναλλακτικά, υπάρχει ένα ελεύθερα διαθέσιμο βοηθητικό πρόγραμμα το οποίο διανέμεται με το &os; και λέγεται pfdisk.exe. Μπορείτε να το βρείτε στον υποκατάλογο tools στο CDROM του &os; ή στις δικτυακές τοποθεσίες FTP του &os;. Το πρόγραμμα αυτό μπορεί να χρησιμοποιηθεί για να ανακαλύψει τι γεωμετρία χρησιμοποιείται από τα άλλα λειτουργικά συστήματα στο δίσκο που χρησιμοποιείται. Μπορείτε να εισάγετε απευθείας αυτή τη γεωμετρία στον επεξεργαστή κατατμήσεων. Υπάρχουν κάποιοι περιορισμοί στο πως πρέπει να χωρίσω το δίσκο; Ναι. Πρέπει να βεβαιωθείτε ότι η ριζική (root) κατάτμηση βρίσκεται κάτω από τους 1024 κυλίνδρους, ώστε το BIOS να μπορεί να εκκινήσει τον πυρήνα από αυτή. (Σημειώστε ότι αυτός είναι ένας περιορισμός στο BIOS του PC, και όχι στο &os;). Για ένα δίσκο SCSI, συνήθως αυτό σημαίνει ότι η ριζική κατάτμηση θα βρίσκεται στα πρώτα 1024MB (ή στα πρώτα 4096ΜΒ αν χρησιμοποιείται η εκτεταμένη μετάφραση - δείτε την προηγούμενη ερώτηση). Για δίσκους IDE, το αντίστοιχο όριο είναι τα 504MB. Είναι συμβατό το &os; με προγράμματα διαχείρισης δίσκων (disk managers); To &os; αναγνωρίζει και επιτρέπει τη χρήση του Ontrack Disk Manager. Δεν υποστηρίζονται άλλοι διαχειριστές δίσκων. Αν θέλετε απλώς να χρησιμοποιήσετε το δίσκο με το &os;, δεν χρειάζεστε διαχειριστή δίσκου. Απλώς ρυθμίστε το δίσκο για όσο περισσότερο χώρο μπορεί να δει το BIOS (συνήθως 504ΜΒ), και το &os; θα ανακαλύψει πόσο ελεύθερο χώρο έχετε στην πραγματικότητα. Αν χρησιμοποιείτε κάποιο παλιό δίσκο σε ελεγκτή MFM, ίσως να πρέπει να πείτε στο &os; πόσους κυλίνδρους να χρησιμοποιήσει. Αν θέλετε να χρησιμοποιήσετε το δίσκο τόσο με το &os; όσο και με κάποιο άλλο λειτουργικό σύστημα, θα πρέπει να μπορείτε να το κάνετε χωρίς διαχειριστή δίσκου: απλώς βεβαιωθείτε ότι το διαμέρισμα εκκίνησης του &os; καθώς και η κατάτμηση του άλλου λειτουργικού συστήματος βρίσκονται μέσα στους πρώτους 1024 κυλίνδρους. Αν είστε αρκετά προσεκτικός, ένα διαμέρισμα εκκίνησης (boot) μεγέθους 20MB θα είναι αρκετό. Όταν εκκινώ το &os; για πρώτη φορά, παίρνω το μήνυμα Missing Operating System. Τι συμβαίνει; Αυτή είναι μια κλασική περίπτωση διένεξης μεταξύ του &os; και του DOS ή κάποιου άλλου λειτουργικού σχετικά με την ιδέα που έχει το καθένα για την γεωμετρία του δίσκου. Θα πρέπει να επανεγκαταστήσετε το &os; αλλά τηρώντας προσεκτικά τις οδηγίες που δώσαμε πιο πάνω, είναι σχεδόν σίγουρο ότι θα τα καταφέρετε. Γιατί δεν μπορώ να συνεχίσω πέρα από την προτροπή F? του διαχειριστή εκκίνησης; Αυτό είναι άλλο ένα σύμπτωμα του προβλήματος που περιγράφεται στην προηγούμενη ερώτηση. Δεν συμπίπτει η γεωμετρία του BIOS με αυτή του &os;! Αν ο ελεγκτής ή το BIOS σας υποστηρίζει μετάφραση κυλίνδρων (συχνά αναφέρεται ως >1GB drive support), δοκιμάστε να αλλάξετε αυτή τη τιμή και να επανεγκαταστήσετε το &os;. Πρέπει να εγκαταστήσω όλο τον πηγαίο κώδικα; Γενικά, όχι. Ωστόσο σας συνιστούμε να εγκαταστήσετε, ως ελάχιστο, τον πηγαίο κώδικα της διανομής base, ο οποίος περιλαμβάνει αρκετά από τα αρχεία που αναφέρονται εδώ, καθώς και τον πηγαίο κώδικα της διανομής sys, η οποία περιλαμβάνει τον πηγαίο κώδικα του πυρήνα. Δεν υπάρχει ωστόσο κάτι στο σύστημα το οποίο να απαιτεί την ύπαρξη του πηγαίου κώδικα για να λειτουργήσει, εκτός από το πρόγραμμα ρύθμισης πυρήνα &man.config.8;. Με εξαίρεση τον πηγαίο κώδικα του πυρήνα, η δομή του συστήματος μεταγλώττισης μας είναι τέτοια, ώστε μπορείτε πάντα να προσαρτήσετε το δέντρο πηγαίου κώδικα μέσω NFS (και με δικαιώματα μόνο ανάγνωσης) και πάλι να μπορείτε να δημιουργήσετε νέα εκτελέσιμα (λόγω του περιορισμού που υπάρχει στον πηγαίο κώδικα του πυρήνα, σας συνιστούμε να μην κάνετε την προσάρτηση απευθείας στον κατάλογο /usr/src, αλλά να χρησιμοποιήσετε κάποια άλλη τοποθεσία και να δημιουργήσετε τους κατάλληλους συμβολικούς δεσμούς που να αντιγράφουν τη δομή της κεντρικής ιεραρχίας του δέντρου πηγαίου κώδικα). Αν έχετε άμεσα διαθέσιμο τον πηγαίο κώδικα, και γνωρίζετε πως να μεταγλωττίσετε ένα ολόκληρο σύστημα από αυτόν, θα διευκολυνθείτε πάρα πολύ όταν αναβαθμίζετε το σύστημα σας σε μελλοντικές εκδόσεις του &os;. Για να επιλέξετε ένα υποσύνολο του πηγαίου κώδικα, από την επιλογή Distributions του εργαλείου εγκατάστασης συστήματος, επιλέξτε το μενού Custom. Χρειάζεται να φτιάξω προσαρμοσμένο πυρήνα; Η δημιουργία ενός νέου πυρήνα ήταν αρχικά σχεδόν υποχρεωτικό βήμα σε μια εγκατάσταση &os;, αλλά οι πιο πρόσφατες εκδόσεις έχουν ωφεληθεί από την εισαγωγή αισθητά φιλικότερων προγραμμάτων ρύθμισης του πυρήνα. Από το &os; 5.X και μετά, είναι αρκετά εύκολο να ρυθμίσετε τον πυρήνα χρησιμοποιώντας το πολύ πιο ευέλικτο σύστημα των "hints" τα οποία μπορείτε να ρυθμίσετε στην προτροπή του loader. Ενδεχομένως να αξίζει ακόμα να δημιουργήσετε ένα νέο πυρήνα ο οποίος να περιέχει μόνο τα προγράμματα οδήγησης που χρειάζεστε, για να γλυτώσετε κάποια μικρή ποσότητα μνήμης RAM, αλλά αυτό δεν είναι πλέον απαραίτητο για τα περισσότερα συστήματα. Για τους κωδικούς πρόσβασης των χρηστών, να χρησιμοποιήσω DES, Blowfish, ή MD5 κωδικοποίηση, και πως θα καθορίσω τι θα χρησιμοποιούν οι χρήστες μου; Η προεπιλεγμένη μορφή κρυπτογράφησης για κωδικούς στο &os; είναι το MD5. Η γενική αντίληψη είναι ότι παρέχουν καλύτερη ασφάλεια σε σχέση με την παραδοσιακή μορφή του &unix; που βασίζεται στον αλγόριθμο DES. Οι κωδικοί DES είναι ακόμα διαθέσιμοι, αν χρειάζεται να διαμοιράσετε το αρχείο των κωδικών σας με παλιότερα λειτουργικά συστήματα, τα οποία χρησιμοποιούν ακόμα το παλιότερο και λιγότερο ασφαλές σύστημα (είναι διαθέσιμα αν εγκαταστήσετε τη διανομή crypto μέσω του sysinstall ή εγκαθιστώντας τον αντίστοιχο πηγαίο κώδικα αν κάνετε εγκατάσταση μέσω πηγαίου κώδικα). Αν εγκαταστήσετε τις βιβλιοθήκες crypto θα μπορέσετε επίσης να χρησιμοποιήσετε κρυπτογράφηση Blowfish η οποία είναι ακόμα πιο ασφαλής. Το ποια μορφή κωδικών χρησιμοποιείται για τους νέους κωδικούς, ελέγχεται από την δυνατότητα εισόδου passwd_format στο /etc/login.conf, το οποίο παίρνει τις τιμές des, blf (αν είναι διαθέσιμη) ή md5. Δείτε τη σελίδα manual του &man.login.conf.5; για περισσότερες πληροφορίες σχετικά με τις δυνατότητες εισόδου. Γιατί ενώ η δισκέτα εκκίνησης ξεκινάει κανονικά, κρεμάει στην οθόνη Probing Devices...; Αν έχετε εγκατεστημένο οδηγό IDE &iomegazip; ή &jaz;, αφαιρέστε τον και ξαναπροσπαθήστε. Η δισκέτα εκκίνησης μπορεί να μπερδευτεί από αυτούς τους οδηγούς. Μετά την εγκατάσταση του συστήματος, μπορείτε να ξανασυνδέσετε τον οδηγό. Ευελπιστούμε ότι το πρόβλημα αυτό θα διορθωθεί σε επόμενη έκδοση. Γιατί παίρνω το μήνυμα λάθους panic: can't mount root όταν εκκινώ το σύστημα για πρώτη φορά μετά την εγκατάσταση; Το σφάλμα αυτό προέρχεται από την σύγχυση που προκαλείται εξαιτίας του διαφορετικού τρόπου με τον οποίο το BIOS και το boot block αντιλαμβάνονται τους σκληρούς δίσκους. Το πρόβλημα συνήθως εμφανίζεται σε συστήματα με δύο δίσκους IDE, ειδικά όταν οι δίσκοι είναι master (ή μόνοι τους) ο καθένας στο δικό του ελεγκτή IDE και με το &os; να είναι εγκαταστημένος στο δίσκο που βρίσκεται στο δευτερεύοντα ελεγκτή. Το boot block νομίζει ότι το σύστημα είναι εγκατεστημένο στον ad0 (το δεύτερο δίσκο του BIOS) ενώ ο πυρήνας αναθέτει τον πρώτο δίσκο στο δευτερεύοντα ελεγκτή, ad2. Μετά την ανίχνευση των συσκευών, ο πυρήνας προσπαθεί να προσαρτήσει αυτό που το boot block πιστεύει ότι είναι ο δίσκος εκκίνησης, ad0 ενώ στην πραγματικότητα είναι ο ad2 και φυσικά αποτυγχάνει. Για να διορθώσετε το πρόβλημα, κάντε ένα από τα παρακάτω: Επανεκκινήστε το σύστημα και πιέστε Enter στην προτροπή Booting kernel in 10 seconds; hit [Enter] to interrupt. Με τον τρόπο αυτό θα βγείτε στο πρόγραμμα του φορτωτή εκκίνησης. Κατόπιν γράψτε set root_disk_unit="disk_number" . Το disk_number θα είναι 0 αν το &os; είναι εγκατεστημένο στο master δίσκο του πρώτου ελεγκτή IDE, 1 αν είναι εγκατεστημένο στο slave δίσκο του πρώτου ελεγκτή, 2 αν είναι εγκατεστημένος στον master δίσκο του δευτερεύοντος IDE καναλιού και τέλος, 3 αν είναι εγκατεστημένο στο slave δίσκο του δευτερεύοντος IDE καναλιού. Έπειτα γράψτε boot, και το σύστημα σας θα πρέπει να εκκινήσει κανονικά. Για να κάνετε μόνιμη αυτή την αλλαγή (ώστε να μην χρειάζεται να κάνετε το παραπάνω κάθε φορά που επανεκκινείτε ή ενεργοποιείτε το &os; μηχάνημα σας), βάλτε τη γραμμή root_disk_unit="disk_number " στο αρχείο /boot/loader.conf.local. Μετακινήστε το δίσκο του &os; στον πρωτεύοντα ελεγκτή IDE, ώστε οι σκληροί δίσκοι να είναι συνεχόμενοι. Ποια είναι τα όρια της μνήμης; Το όριο είναι τα 4 gigabytes σε μια συνηθισμένη εγκατάσταση σε αρχιτεκτονική &i386;. Ξεκινώντας από τις εκδόσεις &os; 4.9 και 5.1, υποστηρίζεται και περισσότερη μνήμη μέσω του &man.pae.4;. Χρειάζεται ωστόσο να μεταγλωττιστεί ξανά ο πυρήνας περιλαμβάνοντας και μια έξτρα επιλογή για την ενεργοποίηση του PAE: options PAE Το &os;/pc98 έχει όριο τα 4 GB μνήμης, και δεν μπορεί να χρησιμοποιηθεί PAE σε αυτή την αρχιτεκτονική. Στο &os;/alpha, το όριο της μνήμης εξαρτάται από τον τύπο του υλικού που χρησιμοποιείται - για λεπτομέρειες δείτε τις Σημειώσεις Έκδοσης Υλικού για Alpha. Άλλες αρχιτεκτονικές που υποστηρίζονται από το &os;, έχουν αρκετά μεγαλύτερα θεωρητικά όρια σχετικά με τη μέγιστη ποσότητα μνήμης (πολλά terabytes). Ποια είναι τα όρια του συστήματος αρχείων ffs; Για συστήματα αρχείων ffs, το μέγιστο θεωρητικό όριο είναι τα 8 terabytes (2G blocks), ή 16ΤΒ για προεπιλεγμένο μέγεθος block των 8Κ. Στην πραγματικότητα, υπάρχει ένα αρχικό όριο 1 terabyte, αλλά με κάποιες μετατροπές, είναι δυνατόν να δημιουργηθούν (και υπάρχουν) συστήματα αρχείων μεγέθους 4 terabytes. Το μέγιστο μέγεθος ενός αρχείου σε ένα σύστημα ffs είναι περίπου 1G blocks, ή 4TB με μέγεθος block των 4K. Μέγιστα μεγέθη αρχείων Μέγεθος block fs λειτουργεί πρέπει να λειτουργεί 4K 4T-1 >4T 8K >32G 32T-1 16K >128G 32T-1 32K >512G 64T-1 64K >2048G 128T-1
Όταν το μέγεθος block του fs είναι 4K, λειτουργούν τα τριπλά έμμεσα blocks (triple indirect blocks) και τα πάντα θα έπρεπε να περιορίζονται μόνο από το μέγιστο αριθμό block που μπορεί να αναπαρασταθεί με τη χρήση τριπλών έμμεσων blocks (περίπου 1K^3 + 1K^2 + 1K), αλλά τελικά ο περιορισμός οφείλεται σε ένα (λάθος) όριο 1G-1 στους αριθμούς των blocks. Το όριο στους αριθμούς των block θα έπρεπε να είναι 2G-1. Υπάρχουν κάποια προβλήματα όταν οι αριθμοί των block του fs πλησιάζουν το 2G-1, αλλά τέτοιοι αριθμοί block δεν μπορούν να προσεγγιστούν όταν το μέγεθος block fs είναι 4Κ. Για μεγέθη block 8Κ και μεγαλύτερα, τα πάντα θα έπρεπε να περιορίζονται από το όριο 2G-1 στους αριθμούς των block του fs, αλλά στην πραγματικότητα ο περιορισμός οφείλεται στο λάθος όριο 1G-1 στους αριθμούς των block του fs. H χρήση του σωστού ορίου των 2G-1 blocks, δημιουργεί πράγματι προβλήματα.
Γιατί παίρνω το μήνυμα λάθος, archsw.readin.failed μετά την μεταγλώττιση και εκκίνηση νέου πυρήνα; Γιατί ο πυρήνας σας και το υπόλοιπο του βασικού συστήματος (world) είναι εκτός συγχρονισμού. Η λειτουργία σε αυτή την κατάσταση δεν υποστηρίζεται. Βεβαιωθείτε ότι χρησιμοποιείτε τις εντολές make buildworld και make buildkernel για να αναβαθμίσετε τον πυρήνα σας. Μπορείτε να εκκινήσετε ορίζοντας τον πυρήνα απευθείας από το δεύτερο στάδιο, πιέζοντας οποιοδήποτε πλήκτρο μόλις δείτε το | και πριν ξεκινήσει ο loader. Η εγκατάσταση καταρρέει κατά την εκκίνηση. Τι μπορώ να κάνω; Δοκιμάστε να απενεργοποιήσετε την υποστήριξη ACPI. Μόλις ξεκινήσει ο φορτωτής εκκίνησης, πιέστε το πλήκτρο space. To σύστημα σας θα εμφανίσει OK. Γράψτε unset acpi_load και κατόπιν boot.
Συμβατότητα Υλικού Γενικά Θέλω να αγοράσω υλικό για το &os; σύστημα μου. Ποιο μοντέλο / μάρκα / τύπος είναι το καλύτερο; Υπάρχουν συνέχεια συζητήσεις για το θέμα αυτό στις λίστες ηλεκτρονικού ταχυδρομείου του &os;. Αυτό ωστόσο είναι αναμενόμενο, καθώς το υλικό των υπολογιστών αλλάζει πολύ γρήγορα. Εμείς εξακολουθούμε να συνιστούμε με έμφαση, να διαβάσετε τις Σημειώσεις Υλικού του &os; &rel.current; ή &rel2.current; και να ψάξετε στα αρχεία των λιστών ηλεκτρονικού ταχυδρομείου, πριν αρχίσετε να ρωτάτε σχετικά με το τελευταίο και καλύτερο υλικό. Είναι αρκετά πιθανό να διαπιστώσετε, ότι για το υλικό που αναζητάτε, υπήρξε σχετική συζήτηση μόλις πριν μια εβδομάδα. Αν ψάχνετε για φορητό υπολογιστή, ελέγξτε τα αρχεία τής λίστας ηλεκτρονικού ταχυδρομείου &a.mobile.name;. Διαφορετικά, μάλλον θα θέλετε να δείτε τα αρχεία της &a.questions.name; ή πιθανόν μια λίστα που να εξειδικεύεται στον τύπο του υλικού που ψάχνετε. Αρχιτεκτονικές και Επεξεργαστές Υποστηρίζει το &os; αρχιτεκτονικές διαφορετικές από την x86; Ναι. Αυτή τη στιγμή το &os; μπορεί να εκτελεστεί σε αρχιτεκτονικές x86 και DEC (τώρα πλέον Compaq) Alpha. Από το &os; 5.0 και μετά, υποστηρίζονται επίσης οι αρχιτεκτονικές AMD64 και Intel EM64T, η IA-64 καθώς και η &sparc64;. Αρχιτεκτονικές που θα υποστηρίζονται μελλοντικά, περιλαμβάνουν την &mips; και &powerpc;. Μπορείτε να εγγραφείτε στις λίστες ταχυδρομείου &a.ppc.name; και &a.mips.name; αντίστοιχα για πληροφορίες σχετικά με την πρόοδο των εργασιών σε αυτές τις αρχιτεκτονικές. Για γενικές πληροφορίες σχετικά με νέες αρχιτεκτονικές, εγγραφείτε στην &a.platforms;. Αν το μηχάνημα σας είναι διαφορετικής αρχιτεκτονικής και χρειάζεστε λειτουργικό άμεσα, σας συνιστούμε να ρίξετε μια ματιά στα NetBSD ή OpenBSD. Υποστηρίζει το &os; Συμμετρική Πολυεπεξεργασία (SMP); Ναι. Το SMP ήταν ενεργοποιημένο από προεπιλογή στον πυρήνα GENERIC ήδη από το &os; 5.2. Η αρχική πρόθεση ήταν να είναι ενεργοποιημένο επίσης από προεπιλογή και στον πυρήνα τής έκδοσης 5.3 του &os;, αλλά λόγω κάποιων προβλημάτων στην εκτέλεση του πυρήνα SMP σε μηχανήματα χωρίς πολλαπλούς επεξεργαστές, αποφασίστηκε να μείνει ανενεργό μέχρι την αντιμετώπιση τους. Αυτό ωστόσο αποτελεί προτεραιότητα για την έκδοση 5.4 του &os;. Σκληροί δίσκοι, μονάδες ταινίας, οδηγοί CD και DVD Ποια είδη σκληρών δίσκων υποστηρίζονται από το &os;; Το &os; υποστηρίζει μονάδες δίσκου των τύπων EIDE, SATA, SCSI, και SAS (με τον κατάλληλο συμβατό ελεγκτή — δείτε την επόμενη ενότητα), καθώς και όλους τους οδηγούς που χρησιμοποιούν το αρχικό interface της Western Digital (δηλ. MFM, RLL, ESDI και φυσικά IDE). Ίσως να μη λειτουργήσουν κάποιοι ελεγκτές ESDI που χρησιμοποιούν μη-τυποποιημένο interface. Καλύτερα να παραμείνετε σε interfaces τύπου WD1002/3/6/7 και αντίστοιχα τους. Ποιοι ελεγκτές SCSI ή SAS υποστηρίζονται; Δείτε την πλήρη λίστα στις Σημειώσεις Υλικού του &os; &rel.current; ή &rel2.current;. Τι τύποι οδηγών ταινίας υποστηρίζονται; Το &os; υποστηρίζει οδηγούς SCSI και QIC-36 (με interface QIC-02). Περιλαμβάνονται οδηγοί 8-mm (γνωστοί ως Exabyte) καθώς και οδηγοί DAT. Ορισμένοι από τους πρώτους οδηγούς 8-mm δεν είναι ιδιαίτερα συμβατοί με SCSI-2, και μπορεί να μην λειτουργούν ικανοποιητικά με το &os;. Υποστηρίζει το &os; μονάδες εναλλαγής ταινιών (tape changers); Το &os; υποστηρίζει μονάδες εναλλαγής τύπου SCSI με την χρήση της συσκευής &man.ch.4; και της εντολής &man.chio.1;. Μπορείτε να βρείτε τις λεπτομέρειες σχετικά με τον τρόπο ελέγχου της μονάδας εναλλαγής στη σελίδα manual του &man.chio.1;. Αν δεν χρησιμοποιείτε το AMANDA ή κάποιο άλλο προϊόν που να γνωρίζει πως να χειριστεί την μονάδα εναλλαγής ταινιών, θα πρέπει να θυμάστε ότι γενικά τα προγράμματα γνωρίζουν μόνο πως να κινήσουν μια ταινία από ένα σημείο σε ένα άλλο, και θα πρέπει εσείς να σημειώσετε σε ποια θέση (slot) βρίσκεται η ταινία, και σε ποια θέση πρέπει να πάει η ταινία που βρίσκεται αυτή τη στιγμή μέσα στον οδηγό. Ποιοι οδηγοί CDROM υποστηρίζονται από το &os;; Υποστηρίζεται οποιοσδήποτε οδηγός SCSI που είναι συνδεμένος σε αντίστοιχα υποστηριζόμενο ελεγκτή. Υποστηρίζονται ακόμα τα ακόλουθα μη-τυποποιημένα CDROM interfaces: Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit ταχύτητας 2x ). Sony CDU 31/33A Sound Blaster μη-SCSI CDROM Matsushita/Panasonic CDROM IDE CDROM συμβατά με ATAPI Όλες οι κάρτες που δεν είναι SCSI είναι γενικά εξαιρετικά πιο αργές όταν συγκρίνονται με αντίστοιχους SCSI οδηγούς, και κάποιοι οδηγοί τύπου ATAPI ίσως να μη λειτουργήσουν. Τα επίσημα &os; CDROM ISO, καθώς και τα CDROM από το Daemon News και το FreeBSD Mall, υποστηρίζουν εκκίνηση απευθείας από το CD. Ποιοι οδηγοί CD-RW υποστηρίζονται από το &os;; Το &os; υποστηρίζει οποιοδήποτε οδηγό IDE CD-R ή CD-RW συμβατό με ATAPI. Δείτε το &man.burncd.8; για λεπτομέρειες. Το &os; υποστηρίζει επίσης οποιοδήποτε οδηγό SCSI CD-R ή CD-RW. Εγκαταστήστε και χρησιμοποιήστε την εντολή cdrecord από την συλλογή των ports ή από πακέτο, και βεβαιωθείτε ότι έχετε ενσωματώσει στον πυρήνα σας τη συσκευή pass. Υποστηρίζει το &os; οδηγούς &iomegazip;; Το &os; υποστηρίζει εγγενώς οδηγούς &iomegazip; SCSI και ATAPI. Οι οδηγοί SCSI ZIP μπορούν να λειτουργήσουν μόνο αν έχουν ρυθμιστεί σε SCSI IDs 5 ή 6, αλλά αν το υποστηρίζει ο ελεγκτής SCSI που χρησιμοποιείτε, μπορείτε ακόμα και να εκκινήσετε από αυτούς. Δεν είναι ξεκάθαρο ποιοι ελεγκτές SCSI υποστηρίζουν εκκίνηση από συσκευές με ID διαφορετικό από 0 ή 1, έτσι θα πρέπει να συμβουλευθείτε την τεκμηρίωση του ελεγκτή σας, αν θέλετε να χρησιμοποιήσετε αυτή τη δυνατότητα. Το &os; υποστηρίζει επίσης οδηγούς Zip παράλληλης θύρας. Βεβαιωθείτε ότι ο πυρήνας σας περιέχει τα προγράμματα οδήγησης για τις συσκευές scbus0, da0, ppbus0, και vp0 (ο πυρήνας GENERIC περιέχει τα πάντα εκτός από το vp0). Με χρήση αυτών των προγραμμάτων οδήγησης, ο οδηγός της παράλληλης θύρας θα πρέπει να είναι διαθέσιμος ως συσκευή /dev/da0s4. Μπορείτε να προσαρτήσετε δίσκους χρησιμοποιώντας την εντολή mount /dev/da0s4 /mnt ή (για δίσκους που έχουν διαμορφωθεί μέσω dos) την mount_msdos /dev/da0s4 /mnt. Διαβάστε επίσης το FAQ σχετικά με αφαιρούμενους οδηγούς σε επόμενο σημείο αυτού του κεφαλαίου, καθώς και τις σημειώσεις σχετικά με την διαμόρφωση στο κεφάλαιο Διαχείρισης. Υποστηρίζει το &os; &jaz;, EZ και άλλους αφαιρούμενους οδηγούς; Απλώς λειτουργούν. Οι περισσότερες από τις συσκευές αυτές είναι SCSI, και έτσι δείχνουν σαν SCSI δίσκοι στο &os;. Το IDE EZ εμφανίζεται σαν οδηγός IDE. Βεβαιωθείτε ότι έχετε ενεργοποιήσει τυχόν εξωτερικές συσκευές πριν εκκινήσετε το σύστημα σας. Για να αλλάξετε μέσο αποθήκευσης εν ώρα λειτουργίας, ελέγξτε τις &man.mount.8;, &man.umount.8;, και την &man.camcontrol.8; (για συσκευές SCSI) ή &man.atacontrol.8; (για συσκευές IDE), και επίσης τις συζητήσεις σχετικά με τη χρήση αφαιρούμενων οδηγών σε επόμενο τμήμα του FAQ. Πληκτρολόγια και ποντίκια Υποστηρίζει το &os; το USB πληκτρολόγιο μου; Το &os; υποστηρίζει εγγενώς USB πληκτρολόγια. Ενεργοποιήστε την υποστήριξη USB στο /etc/rc.conf. Μόλις ενεργοποιηθεί η υποστήριξη USB πληκτρολογίου στο σύστημα σας, το πληκτρολόγιο τύπου AT αναγνωρίζεται ως /dev/kbd0 και το USB πληκτρολόγιο γίνεται /dev/kbd1, αν είναι και τα δύο συνδεμένα στο σύστημα. Αν υπάρχει μόνο το USB πληκτρολόγιο, θα αναγνωριστεί ως /dev/ukbd0. Αν θέλετε να χρησιμοποιήσετε το USB πληκτρολόγιο στην κονσόλα, θα πρέπει να δηλώσετε συγκεκριμένα στον οδηγό της κονσόλας να χρησιμοποιήσει το υπάρχον USB πληκτρολόγιο. Αυτό μπορεί να γίνει εκτελώντας την ακόλουθη εντολή ως μέρος της διαδικασίας αρχικοποίησης του συστήματος: &prompt.root; kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null Παρατηρήστε ότι αν το πληκτρολόγιο USB είναι το μοναδικό πληκτρολόγιο, θα είναι διαθέσιμο ως /dev/ukbd0, και η εντολή θα δείχνει όπως παρακάτω: &prompt.root; kbdcontrol -k /dev/ukbd0 < /dev/ttyv0 > /dev/null Ένα καλό μέρος για να προσθέσετε την παραπάνω εντολή, είναι το αρχείο /etc/rc.i386. Μόλις γίνει αυτό, το USB πληκτρολόγιο θα πρέπει να λειτουργεί και στο Χ περιβάλλον, χωρίς ανάγκη ειδικών ρυθμίσεων. Η εν θερμώ σύνδεση και αποσύνδεση USB πληκτρολογίου, ίσως να μη λειτουργεί ακόμα σωστά. Σας συνιστούμε να συνδέσετε το πληκτρολόγιο πριν την εκκίνηση του συστήματος, και να το αφήσετε συνδεμένο μέχρι τον τερματισμό, για να αποφύγετε τυχόν προβλήματα. Δείτε τη σελίδα manual &man.ukbd.4; για περισσότερες πληροφορίες. Έχω ένα μη-τυπικό ποντίκι τύπου bus. Πως θα το ρυθμίσω; Το &os; υποστηρίζει ποντίκια τύπου bus και τον τύπο InPort bus από κατασκευαστές όπως Microsoft, Logitech και ATI. Ο πυρήνας GENERIC δεν περιέχει τον απαραίτητο οδηγό συσκευής. Για να περιλάβετε το πρόγραμμα οδήγησης στο δικό σας προσαρμοσμένο πυρήνα, προσθέστε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων πυρήνα: device mse0 at isa? port 0x23c irq5 Τα ποντίκια τύπου bus συνήθως έρχονται με δικές τους κάρτες επέκτασης. Ενδεχομένως να έχετε δυνατότητα να ρυθμίσετε την κάρτα σε διαφορετική διεύθυνση θύρας και IRQ από αυτά που φαίνονται παραπάνω. Συμβουλευθείτε το εγχειρίδιο του ποντικιού σας και τη σελίδα manual &man.mse.4; για περισσότερες πληροφορίες. Πως μπορώ να χρησιμοποιήσω το ποντίκι μου τύπου PS/2 (πόρτας ποντικιού ή πληκτρολογίου); Το ποντίκι τύπου PS/2 υποστηρίζεται εγγενώς. Το απαραίτητο πρόγραμμα οδήγησης, psm, περιλαμβάνεται στον πυρήνα. Αν ο προσαρμοσμένος πυρήνας σας δεν τον περιέχει, προσθέστε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων πυρήνα, και μεταγλωττίστε ξανά τον πυρήνα σας. device psm0 at atkbdc? irq 12 Μόλις ο πυρήνας ανιχνεύσει σωστά τη συσκευή psm0 κατά την εκκίνηση, βεβαιωθείτε ότι υπάρχει η αντίστοιχη καταχώρηση για το psm0 στον κατάλογο /dev. Μπορείτε να το δημιουργήσετε γράφοντας: &prompt.root; cd /dev; sh MAKEDEV psm0 όταν έχετε εισέλθει ως χρήστης root. Μπορείτε να παραλείψετε αυτό το βήμα αν χρησιμοποιείτε &os; 5.0-RELEASE ή νεώτερο με ενεργοποιημένο το &man.devfs.5;, καθώς τα απαραίτητα αρχεία συσκευών θα δημιουργηθούν αυτόματα κάτω από τον κατάλογο /dev. Είναι δυνατόν να χρησιμοποιηθεί το ποντίκι με κάποιο τρόπο έξω από το περιβάλλον του συστήματος X Window; Αν χρησιμοποιείτε το προεπιλεγμένο πρόγραμμα οδήγησης κονσόλας, &man.syscons.4;, μπορείτε να χρησιμοποιήσετε το δείκτη του ποντικιού σας σε κονσόλες κειμένου για να κάνετε αποκοπή και επικόλληση κειμένου. Εκτελέστε τον δαίμονα του ποντικιού, &man.moused.8;, και ενεργοποιήστε το δείκτη του ποντικιού στην εικονική κονσόλα: &prompt.root; moused -p /dev/xxxx -t yyyy &prompt.root; vidcontrol -m on Όπου το xxxx είναι το όνομα συσκευής του ποντικιού και το yyyy είναι ο τύπος του πρωτοκόλλου του. Ο δαίμονας του ποντικιού μπορεί να αναγνωρίσει αυτόματα το είδος του πρωτοκόλλου για τα περισσότερα ποντίκια, εκτός από παλιά σειριακά μοντέλα. Καθορίστε το πρωτόκολλο auto για να χρησιμοποιήσετε την αυτόματη ανίχνευση. Αν αυτή δεν δουλέψει, δείτε τη σελίδα manual &man.moused.8; για μια λίστα με υποστηριζόμενους τύπους πρωτοκόλλων. Αν έχετε ποντίκι τύπου PS/2, απλώς προσθέστε moused_enable="YES" στο αρχείο /etc/rc.conf για να εκκινεί ο δαίμονας του ποντικιού κατά την εκκίνηση. Επιπρόσθετα, αν επιθυμείτε να χρησιμοποιείτε το δαίμονα του ποντικιού σε όλες τις εικονικές κονσόλες, και όχι μόνο στην κονσόλα συστήματος, προσθέστε τη γραμμή allscreens_flags="-m on" στο /etc/rc.conf. Όταν εκτελείται ο δαίμονας του ποντικιού, η πρόσβαση στο ποντίκι πρέπει να συντονίζεται μεταξύ του δαίμονα και άλλων προγραμμάτων, όπως τα X Windows. Κοιτάξτε στο FAQ την ερώτηση Γιατί το ποντίκι μου δεν δουλεύει στα Χ; για περισσότερες πληροφορίες σχετικά με αυτό το πρόβλημα. Πως μπορώ να κάνω αποκοπή και επικόλληση κειμένου με το ποντίκι σε μια κονσόλα κειμένου; Μόλις ενεργοποιήσετε το δαίμονα του ποντικιού (δείτε την προηγούμενη ενότητα), κρατήστε πιεσμένο το πλήκτρο 1 (το αριστερό πλήκτρο) και κινήστε το ποντίκι για να επιλέξετε μια περιοχή κειμένου. Κατόπιν, πιέστε το πλήκτρο 2 (το μεσαίο πλήκτρο) για να το επικολλήσετε στην περιοχή του δρομέα. Με την πίεση του πλήκτρου 3 (δεξιού πλήκτρου) μπορείτε να επεκτείνετε την επιλεγμένη περιοχή κειμένου. Αν το ποντίκι σας δεν έχει μεσαίο πλήκτρο, μπορεί να θέλετε να το εξομοιώσετε ή να αλλάξετε τις λειτουργίες των πλήκτρων χρησιμοποιώντας τις επιλογές που παρέχονται από τον δαίμονα του ποντικιού Δείτε τη σελίδα manual &man.moused.8; για τις λεπτομέρειες. Το ποντίκι μου έχει διάφορα έξυπνα πλήκτρα και ροδέλα κύλισης. Μπορώ να τα χρησιμοποιήσω στο &os;; Η απάντηση, δυστυχώς, είναι εξαρτάται. Τα ποντίκια με έξτρα δυνατότητες συνήθως απαιτούν εξειδικευμένα προγράμματα οδήγησης. Αν το πρόγραμμα οδήγησης του ποντικιού ή το αντίστοιχο πρόγραμμα του χρήστη δεν παρέχουν συγκεκριμένη υποστήριξη για το ποντίκι, θα λειτουργεί ως ένα απλό ποντίκι δύο ή τριών πλήκτρων. Για πιθανή χρήση της ροδέλας σε περιβάλλον X Window, δείτε την αντίστοιχη ενότητα. Πως μπορώ να χρησιμοποιήσω το ποντίκι / trackball / touchpad στον φορητό μου υπολογιστή; Δείτε την απάντηση στην προηγούμενη ερώτηση. Πως μπορώ να χρησιμοποιήσω το πλήκτρο delete στο sh και csh; Για το Κέλυφος Bourne, προσθέστε τις ακόλουθες γραμμές στο αρχείο σας .shrc. Δείτε επίσης τις σελίδες manual &man.sh.1; και &man.editrc.5;. bind ^? ed-delete-next-char # for console bind ^[[3~ ed-delete-next-char # for xterm Για το Κέλυφος C, προσθέστε τις ακόλουθες γραμμές στο αρχείο σας .cshrc. Δείτε επίσης τη σελίδα manual του &man.csh.1;. bindkey ^? delete-char # for console bindkey ^[[3~ delete-char # for xterm Για περισσότερες πληροφορίες, δείτε αυτή τη σελίδα. Συσκευές σειριακής επικοινωνίας και Δικτύωσης Ποιες κάρτες δικτύου υποστηρίζει το &os;; Για την πλήρη λίστα, δείτε τις Σημειώσεις Υλικού που παρέχονται με κάθε έκδοση του &os;. Υποστηρίζει το &os; modems που λειτουργούν με τη βοήθεια λογισμικού όπως τα Winmodems; To &os; υποστηρίζει αρκετά software modems με την βοήθεια επιπρόσθετου λογισμικού. Το port comms/ltmdm προσθέτει υποστήριξη για modems που βασίζονται στο δημοφιλές κύκλωμα Lucent LT. Το port comms/mwavem υποστηρίζει το modem που διαθέτουν οι φορητοί υπολογιστές Thinkpad 600 και 700 της IBM. Δεν μπορείτε να εγκαταστήσετε το &os; μέσω software modem. Το λογισμικό αυτό πρέπει να εγκατασταθεί μετά την εγκατάσταση του &os;. Υπάρχει εγγενές πρόγραμμα οδήγησης για τις κάρτες Broadcom 43xx; Όχι, και μάλλον δεν θα υπάρξει. Η Broadcom αρνείται να δώσει δημόσια πληροφορίες σχετικά με τον προγραμματισμό των ολοκληρωμένων της που χρησιμοποιούνται σε εφαρμογές ασύρματων δικτύων, πιθανόν επειδή και το τμήμα του πομποδέκτη της κάρτας ελέγχεται με τη βοήθεια λογισμικού. Για να αποκτήσουν έγκριση για τις κάρτες τους από το FCC, πρέπει να εξασφαλίσουν ότι οι τελικοί χρήστες δεν θα είναι σε θέση να κάνουν ρυθμίσεις όπως αλλαγή της συχνότητας λειτουργίας, των παραμέτρων διαμόρφωσης και της ισχύος εκπομπής. Αλλά χωρίς τις πληροφορίες προγραμματισμού, είναι σχεδόν αδύνατο να γραφεί πρόγραμμα οδήγησης. Ποιες κάρτες πολλαπλών σειριακών θυρών υποστηρίζονται από το &os;; Υπάρχει μια λίστα για αυτές στην ενότητα διάφορων συσκευών του Εγχειριδίου. Ακόμα φαίνεται ότι λειτουργούν και κάποιες κάρτες που είναι αντιγραφές επώνυμων μοντέλων, ειδικά όσες υποστηρίζουν ότι είναι συμβατές με τις αντίστοιχες τις AST. Δείτε τη σελίδα manual &man.sio.4; για περισσότερες πληροφορίες σχετικά με τη ρύθμιση τέτοιων καρτών. Πως μπορώ να εμφανίσω την προτροπή boot: σε μια σειριακή κονσόλα; Δημιουργήστε πυρήνα που να περιέχει την επιλογή options COMCONSOLE. Δημιουργήστε το /boot.config και γράψτε μέσα σε αυτό μόνο την επιλογή . Αποσυνδέστε το πληκτρολόγιο από το σύστημα. Δείτε το αρχείο /usr/src/sys/i386/boot/biosboot/README.serial για περισσότερες πληροφορίες. Συσκευές ήχου Ποιες κάρτες ήχου υποστηρίζονται από το &os;; Το &os; υποστηρίζει διάφορες κάρτες ήχου, συμπεριλαμβανομένων των &soundblaster;, &soundblaster; Pro, &soundblaster; 16, Pro Audio Spectrum 16, AdLib, και Gravis UltraSound (για περισσότερες πληροφορίες, δείτε τις Πληροφορίες Έκδοσης του &os; και τη σελίδα manual &man.snd.4;). Υπάρχει επίσης περιορισμένη υποστήριξη για κάρτες MIDI που είναι συμβατές με το πρότυπο MPU-401. Επίσης υποστηρίζονται οι κάρτες που είναι συμβατές με το πρότυπο µsoft; Sound System. Το παραπάνω ισχύει μόνο για τον ήχο! Το πρόγραμμα οδήγησης δεν υποστηρίζει τυχόν CDROM, SCSI ή joysticks που συνδέονται πάνω σε αυτές τις κάρτες, εκτός από την &soundblaster;. Αν και η διεπαφή SCSI της &soundblaster; καθώς και κάποια μη-SCSI CDROM υποστηρίζονται, δεν μπορούν ωστόσο να χρησιμοποιηθούν για τη διαδικασία εκκίνησης. Υπάρχει κάποια λύση για το πρόβλημα του ήχου στην κάρτα μου που υποστηρίζεται από το &man.pcm.4;; Κάποιες κάρτες ήχου, όπως η es1370, μηδενίζουν την ένταση του ήχου σε κάθε εκκίνηση. Πρέπει να εκτελείτε την ακόλουθη εντολή κάθε φορά που ξεκινά το μηχάνημα: &prompt.root; mixer pcm 100 vol 100 cd 100 Άλλο υλικό Ποιες άλλες συσκευές υποστηρίζονται από το &os;; Δείτε το Εγχειρίδιο για τη λίστα των υπόλοιπων συσκευών που υποστηρίζονται. Υποστηρίζει το &os; διαχείριση ενέργειας για το φορητό μου υπολογιστή; Από το &os; 4.X και μετά, υποστηρίζεται το APM σε συγκεκριμένα μηχανήματα. Περισσότερες πληροφορίες μπορείτε να βρείτε στο &man.apm.4;. Από το &os; 5.X και μετά, υποστηρίζεται η δυνατότητα ACPI η οποία υπάρχει σε όλους τους σύγχρονους υπολογιστές. Μπορείτε να βρείτε περισσότερες πληροφορίες στο &man.acpi.4;. Αν ένα σύστημα υποστηρίζει τόσο APM όσο και ACPI, μπορείτε να χρησιμοποιήσετε όποιο θέλετε. Σας συνιστούμε να δοκιμάσετε και τα δύο και να επιλέξετε αυτό που καλύπτει καλύτερα τις ανάγκες σας. Πως μπορώ να απενεργοποιήσω το ACPI; Προσθέστε τη γραμμή hint.acpi.0.disabled="1" στο αρχείο /boot/device.hints. Γιατί το Micron σύστημα μου κρεμάει κατά την εκκίνηση; Ορισμένες μητρικές Micron υλοποιούν το PCI BIOS με μη τυποποιημένο τρόπο, προκαλώντας προβλήματα στην εκκίνηση του &os;, καθώς οι PCI συσκευές δεν ρυθμίζονται στις διευθύνσεις που αναφέρονται. Για να παρακάμψετε το πρόβλημα, απενεργοποιήστε την επιλογή Plug and Play Operating System από το BIOS. Η δισκέτα εκκίνησης κρεμάει στη μητρική ASUS K7V. Πως μπορώ να το διορθώσω αυτό; Στις ρυθμίσεις του BIOS, απενεργοποιήστε την επιλογή boot virus protection. Γιατί η PCI κάρτα δικτύου μου της &tm.3com; δεν λειτουργεί με το Micron υπολογιστή μου; Ορισμένες μητρικές της Micron έχουν μη-τυποποιημένο PCI BIOS το οποίο δεν ρυθμίζει τις συσκευές PCI στις διευθύνσεις που αναφέρονται. Αυτό δημιουργεί προβλήματα κατά την εκκίνηση του &os;. Για να παρακάμψετε το πρόβλημα, απενεργοποιήστε την επιλογή Plug and Play Operating System από το BIOS. Η PCMCIA κάρτα μου δεν λειτουργεί. Βλέπω το εξής μήνυμα: cbb0: unsupported card type detected. Τι μπορώ να κάνω; Μπορείτε να δοκιμάσετε να χρησιμοποιήσετε την αρχική υλοποίηση OLDCARD. Τροποποιήστε το αρχείο ρύθμισης του πυρήνα σας, και αφαιρέστε τις ακόλουθες γραμμές: device cbb device pccard device cardbus Μετά προσθέστε: device pcic device card 1 Μεταγλωττίστε ξανά και εγκαταστήστε το νέο πυρήνα όπως περιγράφεται στην Ρύθμιση Πυρήνα του &os;. Αντιμετώπιση Προβλημάτων Γιατί το &os; βρίσκει λάθος ποσότητα μνήμης; Αυτό οφείλεται στη διαφορά μεταξύ φυσικών και εικονικών διευθύνσεων μνήμης. Η σύμβαση που κατά βάση ακολουθείται στο υλικό του PC, είναι να χρησιμοποιείται η μνήμη μεταξύ 3.5G και 4G για ειδικό σκοπό, συνήθως για την πρόσβαση σε κάρτες PCI. Αυτό έχει ως αποτέλεσμα να μην μπορεί να αντιστοιχηθεί φυσική μνήμη σε αυτή την περιοχή διευθύνσεων. Το υλικό του υπολογιστή σας θα καθορίσει τι γίνεται με την μνήμη που κανονικά εμφανίζεται σε αυτή τη θέση. Δυστυχώς, σε κάποιες περιπτώσεις το υλικό δεν κάνει τίποτα, και χάνεται η δυνατότητα χρήσης των τελευταίων 500Μ μνήμης RAM. Ευτυχώς, στις περισσότερες περιπτώσεις το υλικό ανακατευθύνει τη μνήμη σε υψηλότερη θέση, ώστε να είναι ακόμα δυνατή η χρήση της. Αυτό μπορεί ωστόσο να σας προκαλέσει κάποια σύγχυση αν παρακολουθείτε τα μηνύματα εκκίνησης. Στην 32 bit έκδοση του &os;, η μνήμη φαίνεται να έχει χαθεί καθώς ανακατευθύνεται πάνω από τα 4G, τα οποία δεν είναι προσβάσιμα από 32 bit πυρήνα. Στην περίπτωση αυτή η λύση είναι να φτιάξετε ένα πυρήνα τύπου PAE. Δείτε αυτήν την καταχώρηση στο FAQ για περισσότερες πληροφορίες. Στην 64 bit έκδοση του &os;, ή όταν χρησιμοποιείται πυρήνας τύπου PAE, το &os; θα ανιχνεύσει και θα ανακατευθύνει σωστά τη μνήμη ώστε να είναι χρησιμοποιήσιμη. Κατά την εκκίνηση ωστόσο, μπορεί να φαίνεται ότι το &os; ανιχνεύει περισσότερη μνήμη από αυτή που έχει στην πραγματικότητα το σύστημα. Αυτό είναι φυσιολογικό και η διαθέσιμη μνήμη θα διορθωθεί καθώς ολοκληρώνεται η διαδικασία της εκκίνησης. Ο σκληρός μου δίσκος έχει χαλασμένους τομείς. Τι μπορώ να κάνω; Στους δίσκους SCSI, ο οδηγός μπορεί συνήθως να επανατοποθετήσει αυτόματα τα δεδομένα σε εναλλακτικούς τομείς. Ωστόσο οι περισσότεροι δίσκοι έρχονται με την δυνατότητα αυτή απενεργοποιημένη. Για να ενεργοποιήσετε την επανατοποθέτηση χαλασμένων τομέων, επεξεργαστείτε την πρώτη σελίδα κατάστασης της συσκευής (modepage), δίνοντας την παρακάτω εντολή (ως root): &prompt.root; camcontrol modepage sd0 -m 1 -e -P 3 και αλλάξτε τις τιμές των AWRE και ARRE από 0 σε 1: AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1 Οι σύγχρονοι οδηγοί τύπου IDE έχουν επίσης ενεργοποιημένη από το εργοστάσιο τη δυνατότητα επανατοποθέτησης χαλασμένων τομέων. Αν δείτε προειδοποιήσεις σχετικά με χαλασμένους τομείς (σε οποιοδήποτε είδος δίσκου), είναι ώρα να σκεφτείτε να αλλάξετε τον οδηγό. Ίσως μπορέσετε να χρησιμοποιήσετε το διαγνωστικό πρόγραμμα που δίνει ο κατασκευαστής του δίσκου για να απομονώσετε τους χαλασμένους τομείς, αλλά στην καλύτερη περίπτωση απλώς θα κερδίσετε λίγο περισσότερο χρόνο. Γιατι το &os; δεν ανιχνεύει τον ελεγκτή SCSI στον HP Netserver; Το πρόβλημα αυτό είναι γνωστό. Ο ενσωματωμένος στη μητρική ελεγκτής SCSI του HP Netserver, χρησιμοποιεί σύνδεση τύπου EISA και καταλαμβάνει τη θέση EISA με αριθμό 11. Με τον τρόπο αυτό, όλες οι πραγματικές υποδοχές τύπου EISA βρίσκονται πριν από αυτή. Ωστόσο, η περιοχή διευθύνσεων των υποδοχών EISA με αριθμό >= 10, συγκρούεται με την περιοχή διευθύνσεων του PCI, και το &os; στη σημερινή του μορφή, δεν μπορεί να χειριστεί σωστά αυτή την κατάσταση. Έτσι, για την ώρα, το καλύτερο που μπορείτε να κάνετε είναι να παριστάνετε ότι δεν υπάρχει σύγκρουση διευθύνσεων :) και να ανεβάσετε την επιλογή EISA_SLOTS του πυρήνα στην τιμή 12. Μεταγλωττίστε έπειτα ξανά τον πυρήνα, όπως περιγράφεται στην σχετική καταχώρηση του Εγχειριδίου. Φυσικά αυτό είναι ένα πρόβλημα αντίστοιχο με το αυγό και την κότα, όσο αφορά την εγκατάσταση ενός τέτοιου μηχανήματος. Για να προσπεράσετε το πρόβλημα, υπάρχει ειδική πρόβλεψη στο UserConfig. Μη χρησιμοποιήσετε το visual interface, αλλά την γραμμή εντολών. Απλώς γράψτε: eisa 12 quit στην προτροπή, και εγκαταστήστε το σύστημα σας όπως συνήθως. Σας συνιστούμε ωστόσο να μεταγλωττίσετε και να εγκαταστήσετε το δικό σας προσαρμοσμένο πυρήνα. Ευελπιστούμε ότι σε μελλοντικές εκδόσεις, θα υπάρχει καλύτερη διόρθωση για το πρόβλημα αυτό. Δεν μπορείτε να χρησιμοποιήσετε δίσκο σε κατάσταση dangerously dedicated (επικίνδυνα αφοσιωμένη) με τον HP Netserver. Δείτε αυτή τη σημείωση για περισσότερες πληροφορίες. Βλέπω συνέχεια μηνύματα του τύπου ed1: timeout. Τι σημαίνουν; Τα μηνύματα αυτά προκαλούνται συνήθως από διενέξεις στα interrupts (π.χ. δύο κάρτες που χρησιμοποιούν το ίδιο IRQ). Εκκινήστε με την επιλογή -c και αλλάξτε την καταχώρηση ed0/de0/... ώστε να συμβαδίζει με το υλικό σας. Αν χρησιμοποιείτε την σύνδεση BNC της κάρτας δικτύου σας, ίσως να δείτε επίσης αντίστοιχα μηνύματα σε περίπτωση προβληματικού τερματισμού. Για να ελέγξετε την περίπτωση αυτή, συνδέστε ένα τερματιστή απευθείας στην κάρτα (χωρίς καλώδιο) και δείτε αν σταματήσουν τα μηνύματα. Κάποιες κάρτες συμβατές με NE2000, δίνουν αυτό το μήνυμα αν δεν υπάρχει σύνδεση στη θύρα UTP ή αν το καλώδιο είναι αποσυνδεμένο. Γιατί σταμάτησε να λειτουργεί η κάρτα μου &tm.3com; 3C509 χωρίς να υπάρχει εμφανής λόγος; Η κάρτα αυτή έχει την κακή συνήθεια να χάνει τις ρυθμίσεις της. Ανανεώστε τις, χρησιμοποιώντας το βοηθητικό πρόγραμμα DOS 3c5x9.exe. Ο εκτυπωτής μου στην παράλληλη θύρα είναι απελπιστικά αργός. Τι μπορώ να κάνω; Αν το μόνο πρόβλημα είναι ο υπερβολικά αργός εκτυπωτής, μπορείτε να δοκιμάσετε να αλλάξετε την κατάσταση λειτουργίας της παράλληλης θύρας όπως περιγράφεται στο κεφάλαιο του Εγχειριδίου σχετικά με την Εγκατάσταση Εκτυπωτή. Γιατί τα προγράμματα μου περιστασιακά τερματίζουν με σφάλμα Signal 11; Τα σφάλματα τύπου Signal 11 δημιουργούνται όταν μια διεργασία προσπαθεί να προσπελάσει περιοχή μνήμης για την οποία δεν έχει πάρει άδεια από το λειτουργικό σύστημα. Αν συμβαίνει κάτι τέτοιο σε φαινομενικά τυχαία χρονικά διαστήματα, θα πρέπει να αρχίσετε να το ερευνάτε πολύ προσεκτικά. Τα προβλήματα αυτά συνήθως οφείλονται σε κάποιον από τους παρακάτω λόγους: Αν το πρόβλημα εμφανίζεται μόνο σε μια συγκεκριμένη εφαρμογή την οποία αναπτύσσετε εσείς, είναι πιθανώς λάθος στον δικό σας κώδικα. Αν το πρόβλημα βρίσκεται σε τμήμα του βασικού συστήματος του &os;, μπορεί επίσης να είναι προβληματικός κώδικας, αλλά τις περισσότερες φορές, τα προβλήματα αυτά βρίσκονται και διορθώνονται πριν διανεμηθούν στους περισσότερους από εσάς που διαβάζετε το FAQ (για το λόγο αυτό άλλωστε υπάρχει και η γραμμή ανάπτυξης -current). Για παράδειγμα, ένας γρήγορος τρόπος να διαπιστώσετε ότι δεν πρόκειται για πρόβλημα του &os;, είναι αν το πρόβλημα εμφανίζεται κατά τη μεταγλώττιση κάποιου προγράμματος, αλλά κάθε φορά και σε διαφορετικό σημείο. Για παράδειγμα, υποθέστε ότι εκτελείτε ένα make buildworld, και η μεταγλώττιση αποτυγχάνει κατά την επεξεργασία του αρχείου ls.c σε ls.o. Αν εκτελέσετε ξανά make buildworld, και η μεταγλώττιση σταματήσει στο ίδιο σημείο, πρόκειται πράγματι για πρόβλημα στα αρχεία του build -- δοκιμάστε να ανανεώσετε τον πηγαίο κώδικα και να ξαναπροσπαθήσετε. Αν η μεταγλώττιση αποτυγχάνει αλλού, αυτό σχεδόν σίγουρα οφείλεται σε προβληματικό υλικό. Τι πρέπει να κάνετε: Στην πρώτη περίπτωση μπορείτε να χρησιμοποιήσετε κάποιο debugger όπως το gdb για να βρείτε το σημείο στο πρόγραμμα με την προβληματική διεύθυνση και να το διορθώσετε. Στη δεύτερη περίπτωση, θα πρέπει να επαληθεύσετε ότι δεν φταίει το υλικό σας. Στις συνηθισμένες αιτίες αυτού του προβλήματος, περιλαμβάνονται: Οι σκληροί σας δίσκοι μπορεί να υπερθερμαίνονται. Ελέγξτε ότι λειτουργούν οι ανεμιστήρες στο κουτί σας. Αν δεν λειτουργούν, είναι πιθανό οι δίσκοι σας (και ίσως και άλλα εξαρτήματα) να υπερθερμαίνονται. Ο επεξεργαστής σας έχει υπερθερμανθεί: Αυτό μπορεί να συμβεί σε περίπτωση που τον λειτουργείτε σε μεγαλύτερη συχνότητα από την κανονική (overclocking) ή αν το ανεμιστηράκι του επεξεργαστή έχει σταματήσει να λειτουργεί. Σε κάθε περίπτωση, θα πρέπει να εξασφαλίσετε ότι χρησιμοποιείτε το υλικό σας σύμφωνα με τις προδιαγραφές του, τουλάχιστον για όσο διάστημα χρειάζεται για να επιλύσετε το πρόβλημα. Για παράδειγμα, αν έχετε κάνει overclocking, επιστρέψτε τον επεξεργαστή στην κανονική του συχνότητα. Σχετικά με το overclocking, σημειώστε επίσης ότι είναι φτηνότερο να έχετε ένα πιο αργό σύστημα από ένα κατεστραμμένο που χρειάζεται αντικατάσταση! Επίσης η κοινότητα γενικά δεν θα σας αντιμετωπίσει με κατανόηση αν αναφέρετε προβλήματα που παρουσιάζονται σε συστήματα που λειτουργούν εκτός προδιαγραφών, είτε εσείς πιστεύετε ότι η λειτουργία τους είναι ασφαλής, είτε όχι. Προβληματική μνήμη: Αν έχετε εγκατεστημένα περισσότερα από ένα SIMMS / DIMMS, αφαιρέστε τα και προσπαθήστε να λειτουργήσετε το μηχάνημα με ένα-ένα χωριστά ώστε να εντοπίσετε το πρόβλημα σε επίπεδο ενός SIMM / DIMM, ή ίσως σε ένα συνδυασμό τους. Υπερ-αισιόδοξες ρυθμίσεις μητρικής: Στις ρυθμίσεις του BIOS, και σε κάποιες περιπτώσεις σε ρυθμίσεις στη μητρική μέσω βραχυκυκλωτήρων (jumpers), υπάρχει η δυνατότητα μεταβολής διάφορων χρονισμών. Στις περισσότερες περιπτώσεις οι προεπιλεγμένες ρυθμίσεις είναι επαρκείς, και ίσως δημιουργήσετε προβλήματα αν ρυθμίσετε πολύ χαμηλά τις καταστάσεις αναμονής (wait states) της RAM ή θέσετε στο BIOS την επιλογή RAM Speed: Turbo. Μια καλή ιδέα είναι να επιστρέψετε τις ρυθμίσεις του BIOS στις προεπιλεγμένες, αλλά πριν το κάνετε, σημειώστε κάπου τις δικές σας. Ανεπαρκής ή κακής ποιότητας τροφοδοσία στη μητρική. Αν έχετε κάρτες I/O, σκληρούς δίσκους ή CDROM στο σύστημα σας που δεν χρησιμοποιείτε, δοκιμάστε να τα αφαιρέσετε ή να αποσυνδέσετε προσωρινά την παροχή τροφοδοσίας τους, για να διαπιστώσετε αν το τροφοδοτικό σας μπορεί να διαχειριστεί μικρότερο φορτίο. Ή απλώς δοκιμάστε ένα άλλο τροφοδοτικό, κατά προτίμηση ένα με λίγο μεγαλύτερη ισχύ (για παράδειγμα αν το τρέχον σας τροφοδοτικό είναι ονομαστικής ισχύος 250W, δοκιμάστε ένα ισχύος 300W). Θα πρέπει επίσης να διαβάσετε το SIG11 FAQ (το οποίο φαίνεται παρακάτω) το οποίο περιλαμβάνει εξαιρετικές επεξηγήσεις για όλα αυτά τα προβλήματα, αν και πολλές από αυτές είναι γραμμένες από την σκοπιά του &linux;. Ένα ενδιαφέρον τμήμα του SIG11 FAQ είναι και αυτό που αναφέρεται στην πιθανότητα να μην ανιχνεύεται προβληματική μνήμη από διαγνωστικά προγράμματα ή συσκευές ελέγχου. Τέλος, αν τίποτα από τα παραπάνω δεν βοηθήσει, είναι πιθανόν να έχετε εντοπίσει ένα πρόβλημα (bug) στο &os; και θα πρέπει να ακολουθήσετε τις οδηγίες για να στείλετε αναφορά προβλήματος. Μπορείτε να βρείτε εκτεταμένη ανάλυση στο FAQ σχετικά με το πρόβλημα SIG11. Το σύστημα μου σταματάει είτε με Fatal trap 12: page fault in kernel mode, ή με panic:, δείχνοντας και μια σειρά από πληροφορίες. Τι πρέπει να κάνω; Η ομάδα ανάπτυξης του &os; ενδιαφέρεται ιδιαίτερα για αυτά τα λάθη, αλλά χρειάζεται περισσότερες πληροφορίες εκτός από το μήνυμα λάθους που βλέπετε. Αντιγράψτε το πλήρες μήνυμα και έπειτα συμβουλευθείτε την ενότητα του FAQ σχετικά με τα kernel panics, δημιουργήστε ένα πυρήνα με δυνατότητα εκσφαλμάτωσης (debugging kernel) και εκτελέστε ένα backtrace. Αυτό μπορεί να ακούγεται δύσκολο, αλλά δεν χρειάζεστε στην πραγματικότητα γνώσεις προγραμματισμού. Αρκεί να ακολουθήσετε τις οδηγίες. Γιατί η οθόνη μου μαυρίζει και χάνει το συγχρονισμό της κατά την εκκίνηση; Πρόκειται για γνωστό πρόβλημα με την κάρτα γραφικών ATI Mach64. Το πρόβλημα είναι ότι η κάρτα αυτή χρησιμοποιεί την διεύθυνση 2e8, η οποία χρησιμοποιείται επίσης και από την τέταρτη σειριακή θύρα. Λόγω κάποιου προβλήματος (ή της σχεδίασης) του προγράμματος οδήγησης &man.sio.4;, το πρόγραμμα όχι μόνο θα προσπαθήσει να ανιχνεύσει αυτή τη διεύθυνση ακόμα και αν δεν έχετε τέταρτη σειριακή θύρα, αλλά ακόμα και στην περίπτωση που έχετε απενεργοποιήσει τη σειριακή θύρα sio3 (δηλ. την τέταρτη) η οποία φυσιολογικά χρησιμοποιεί αυτή τη διεύθυνση. Μέχρι να διορθωθεί το πρόβλημα αυτό, μπορείτε να χρησιμοποιήσετε το παρακάτω τέχνασμα για να το παρακάμψετε: Γράψτε στην προτροπή εκκίνησης. (Με τον τρόπο αυτό θα βάλετε τον πυρήνα σε κατάσταση ρύθμισης). Απενεργοποιήστε τις sio0, sio1, sio2 και sio3 (όλες). Με τον τρόπο αυτό το πρόγραμμα οδήγησης δεν ενεργοποιείται καν, άρα δεν δημιουργείται πρόβλημα. Γράψτε exit για να συνεχίσετε την εκκίνηση. Αν θέλετε να χρησιμοποιήσετε τις σειριακές θύρες, θα πρέπει να δημιουργήσετε νέο πυρήνα, με την ακόλουθη μετατροπή: Στο αρχείο /usr/src/sys/i386/isa/sio.c βρείτε το πρώτο σημείο που εμφανίζεται το αλφαριθμητικό 0x2e8 και αφαιρέστε αυτό το αλφαριθμητικό και το κόμμα που βρίσκεται πριν από αυτό (κρατήστε το κόμμα που βρίσκεται μετά). Ακολουθήστε τώρα τη συνηθισμένη διαδικασία δημιουργίας νέου πυρήνα. Ακόμα και μετά την εφαρμογή αυτών των διορθώσεων, ίσως ανακαλύψετε ότι το σύστημα X Window δεν λειτουργεί σωστά. Αν συμβαίνει αυτό, βεβαιωθείτε ότι χρησιμοποιείτε έκδοση 3.3.3 ή μεγαλύτερη του &xfree86;. Από την έκδοση αυτή και μετά, υπάρχει ενσωματωμένη υποστήριξη για κάρτες Mach64 και επίσης διατίθεται εξειδικευμένος εξυπηρετητής X για την κάρτα αυτή. Γιατί το &os; σύστημα μου χρησιμοποιεί μόνο 64MB RAM, ενώ ο υπολογιστής μου έχει εγκατεστημένα 128MB; Εξαιτίας του τρόπου με τον οποίο το &os; διαβάζει το μέγεθος της μνήμης από το BIOS, μπορεί να ανιχνεύσει μόνο 16 bits μέγεθος σε Kbytes (65536 Kbytes = 64MB) (ή και λιγότερο... ορισμένα BIOS δίνουν προκαθορισμένο μέγεθος μνήμης 16Μ). Αν έχετε περισσότερα από 64MB, το &os; θα προσπαθήσει να τα ανιχνεύσει. Η ανίχνευση ωστόσο μπορεί να αποτύχει. Για να παρακάμψετε το πρόβλημα, θα πρέπει να χρησιμοποιήσετε την επιλογή του πυρήνα που φαίνεται παρακάτω. Υπάρχει τρόπος να ληφθούν πλήρεις πληροφορίες σχετικά με τη μνήμη από το BIOS, αλλά στο bootblock δεν υπάρχει αρκετός χώρος για να γίνει αυτό. Κάποια μέρα, όταν διορθωθεί το πρόβλημα της έλλειψης χώρου στα bootblocks, θα χρησιμοποιήσουμε τις εκτεταμένες λειτουργίες του BIOS για να ανακτήσουμε πλήρεις πληροφορίες σχετικά με τη μνήμη. Για την ώρα, πρέπει να περιοριστούμε στην ρύθμιση της αντίστοιχης επιλογής του πυρήνα. options "MAXMEM=n" Όπου το n είναι το μέγεθος της μνήμης σε kilobytes. Για μηχάνημα με 128 MB, θα πρέπει να χρησιμοποιήσετε το 131072. Το σύστημα μου έχει περισσότερο από 1 GB RAM, και παίρνω panics με μηνύματα kmem_map too small. Που είναι το πρόβλημα; Φυσιολογικά, το &os; χρησιμοποιεί το μέγεθος της εγκατεστημένης μνήμης για να καθορίσει μια σειρά από παραμέτρους του πυρήνα, όπως το μέγιστο αριθμό αρχείων που μπορεί να είναι ταυτόχρονα ανοιχτά. Σε συστήματα με περισσότερη από 1GB μνήμη, αυτός ο μηχανισμός αυτόματης ρύθμισης μεγεθών ίσως επιλέξει τιμές οι οποίες να είναι πολύ υψηλές. Κατά την εκκίνηση, ο πυρήνας εκχωρεί διάφορους πίνακες και άλλες δομές, οι οποίες καταλαμβάνουν τον περισσότερο διαθέσιμο χώρο του. Αργότερα, καθώς το σύστημα λειτουργεί, ο πυρήνας δεν έχει άλλο χώρο για δυναμικές εκχωρήσεις μνήμης, και δημιουργείται panic. Δημιουργήστε το δικό σας πυρήνα, και προσθέστε την επιλογή στο αρχείο ρυθμίσεων του, ώστε να αυξήσετε το μέγιστο μέγεθος σε 400 MB (). Τα 400 MB φαίνεται να επαρκούν για μηχανήματα με μέγεθος μνήμης ως 6 GB. Το σύστημα μου δεν έχει 1GB RAM, και πάλι όμως το &os; δημιουργεί panic με το μήνυμα kmem_map too small! Το panic δείχνει ότι το σύστημα έχει μείνει από εικονική μνήμη για προσωρινή αποθήκευση δεδομένων δικτύου (network buffers, και ειδικότερα mbuf clusters). Μπορείτε να αυξήσετε το μέγεθος της εικονικής μνήμης που διατίθεται για mbuf clusters, ακολουθώντας τις οδηγίες στην ενότητα Όρια Δικτύου του Εγχειριδίου. Γιατί παίρνω το μήνυμα λάθους /kernel: proc: table is full; Ο πυρήνας του &os; επιτρέπει κάθε χρονική στιγμή την ύπαρξη ενός συγκεκριμένου αριθμού διεργασιών. Ο αριθμός αυτός βασίζεται στην επιλογή MAXUSERS του πυρήνα. Το MAXUSERS επηρεάζει επίσης και άλλα όρια μέσα στον πυρήνα, όπως η προσωρινή μνήμη του δικτύου (network buffers) (δείτε την προηγούμενη ερώτηση). Αν το μηχάνημα σας λειτουργεί σε υψηλό φορτίο, ίσως έχει νόημα να αυξήσετε την επιλογή MAXUSERS. Με τον τρόπο αυτό, μαζί με το μέγιστο αριθμό διεργασιών, θα αυξηθούν και άλλα όρια του συστήματος. Για να ρυθμίσετε την τιμή του MAXUSERS, δείτε την ενότητα Όρια Αρχείων/Διεργασιών του Εγχειριδίου. (Αν και η ενότητα αυτή αναφέρεται σε ανοιχτά αρχεία, τα ίδια όρια ισχύουν και για τις διεργασίες.) Αν το μηχάνημα σας λειτουργεί σε χαμηλό φορτίο, αλλά εκτελεί μεγάλο αριθμό διεργασιών, μπορείτε απλώς να ρυθμίσετε τον αριθμό τους αλλάζοντας την τιμή της μεταβλητής kern.maxproc. Αν πρέπει να ρυθμίσετε αυτή τη μεταβλητή, θα πρέπει να την ορίσετε στο αρχείο /boot/loader.conf. Η ρύθμιση δεν θα ισχύσει μέχρι να επανεκκινήσετε το σύστημα. Για περισσότερες πληροφορίες σχετικά με τις μεταβλητές του πυρήνα, δείτε τις σελίδες manual &man.loader.conf.5; και &man.sysctl.conf.5;. Αν όλες αυτές οι διεργασίες εκτελούνται από ένα μόνο χρήστη, θα πρέπει επίσης να ρυθμίσετε την τιμή της μεταβλητής kern.maxprocperuid ώστε να είναι κατά ένα μικρότερη από την νέα τιμή της kern.maxproc. (Πρέπει να είναι κατά ένα μικρότερη, γιατί υπάρχει πάντα ένα πρόγραμμα συστήματος, το &man.init.8;, που πρέπει να εκτελείται συνέχεια.). Για να γίνει μόνιμη μια αλλαγή ενός sysctl, τοποθετήστε την κατάλληλη τιμή στο αρχείο /etc/sysctl.conf. Περισσότερες πληροφορίες για τη ρύθμιση του συστήματος με την χρήση του &man.sysctl.8;, μπορείτε να βρείτε στην ενότητα Ρυθμίσεις μέσω sysctl του Εγχειριδίου. Γιατί παίρνω το μήνυμα λάθους CMAP busy όταν επανεκκινώ με νέο πυρήνα; Η λογική του συστήματος που προσπαθεί να ανιχνεύσει τυχόν παλιές εκδόσεις των αρχείων /var/db/kvm_*.db κάποιες φορές αποτυγχάνει, και η χρήση ανόμοιων εκδόσεων μπορεί σε ορισμένες περιπτώσεις να οδηγήσει σε panic. Αν σας συμβεί αυτό, επανεκκινήστε σε κατάσταση ενός χρήστη (single user) και γράψτε: &prompt.root; rm /var/db/kvm_*.db Τι σημαίνει το μήνυμα ahc0: brkadrint, Illegal Host Access at seqaddr 0x0; Υπάρχει μια διένεξη με την κάρτα Ultrastor SCSI Host Adapter. Κατά τη διάρκεια της διαδικασίας εκκίνησης, εισέλθετε στο μενού ρυθμίσεων του πυρήνα και απενεργοποιήστε τη συσκευή uha0, η οποία είναι αυτή που προκαλεί το πρόβλημα. Όταν ξεκινώ το σύστημα μου παίρνω το λάθος ahc0: illegal cable configuration. Η καλωδίωση μου είναι σωστή. Τι συμβαίνει; Η μητρική πλακέτα σας δεν έχει τα απαιτούμενα εξωτερικά κυκλώματα ώστε να υποστηρίζει αυτόματο τερματισμό του διαύλου SCSI. Αντί να βασίζεστε στον αυτόματο τερματισμό, δηλώστε στο SCSI BIOS τον σωστό τερματισμό για τη διάταξη συσκευών που έχετε. Το πρόγραμμα οδήγησης του AIC7XXX δεν μπορεί να καθορίσει αν είναι διαθέσιμο το κύκλωμα που χρησιμοποιείται για την ανίχνευση του καλωδίου (άρα και του αυτόματου τερματισμού). Το πρόγραμμα οδήγησης υποθέτει ότι υπάρχει υποστήριξη, εφόσον οι ρυθμίσεις που περιέχονται στη σειριακή EEPROM αναφέρουν "αυτόματο τερματισμό". Συχνά, χωρίς το εξωτερικό κύκλωμα ανίχνευσης του καλωδίου, το πρόγραμμα οδήγησης θα ρυθμίζει λανθασμένα τον τερματισμό, κάτι που μπορεί να δημιουργήσει πρόβλημα στην αξιοπιστία του διαύλου SCSI. Γιατί το Sendmail δίνει το μήνυμα λάθους mail loops back to myself; Αυτό περιγράφεται στο sendmail FAQ όπως φαίνεται παρακάτω: * Παίρνω μηνύματα λάθους "Local configuration error" όπως το: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Πως μπορώ να επιλύσω το πρόβλημα; Έχετε ζητήσει να κατευθύνετε το mail προς το domain (π.χ. domain.net) προς κάποιο συγκεκριμένο μηχάνημα (στην περίπτωση αυτή, το relay.domain.net) χρησιμοποιώντας μια εγγραφή MX, αλλά το μηχάνημα που κάνει την ανακατεύθυνση δεν αναγνωρίζει τον εαυτό του ως domain.net. Προσθέστε το domain.net στο /etc/mail/local-host-names (αν χρησιμοποιείτε το FEATURE(use_cw_file)) ή προσθέστε "Cw domain.net" στο /etc/mail/sendmail.cf. Η τρέχουσα έκδοση του sendmail FAQ δεν συντηρείται πλέον με κάθε έκδοση του sendmail. Ωστόσο, δημοσιεύεται ανά τακτά διαστήματα στις λίστες comp.mail.sendmail, comp.mail.misc, comp.mail.smail, comp.answers, και news.answers. Μπορείτε επίσης να λάβετε αντίγραφο μέσω email, στέλνοντας ένα μήνυμα στο mail-server@rtfm.mit.edu με την εντολή send usenet/news.answers/mail/sendmail-faq στο κύριο μέρος του μηνύματος. Γιατί δεν συμπεριφέρονται σωστά οι εφαρμογές πλήρους οθόνης σε απομακρυσμένα μηχανήματα; Είναι πιθανόν το απομακρυσμένο μηχάνημα να ρυθμίζει τον τύπο του τερματικού σας σε κάτι διαφορετικό από τον τύπο cons25 που απαιτείται από την κονσόλα του &os;. Υπάρχουν διάφοροι τρόποι για να παρακάμψετε αυτό το πρόβλημα: Μετά την είσοδο σας στο απομακρυσμένο μηχάνημα, ορίστε την μεταβλητή TERM του κελύφους σε ansi ή sco, εφόσον το απομακρυσμένο μηχάνημα μπορεί να λειτουργήσει με αυτά τα είδη τερματικών. Στην κονσόλα του &os;, χρησιμοποιήστε κάποιο εξομοιωτή τερματικού VT100, όπως το screen. Το screen σας δίνει τη δυνατότητα να έχετε πολλαπλές συνεδρίες από ένα μόνο τερματικό, και είναι έτσι και αλλιώς χρήσιμο πρόγραμμα. Κάθε παράθυρο του screen συμπεριφέρεται ως τερματικό του VT100, έτσι η μεταβλητή TERM στον απομακρυσμένο υπολογιστή θα πρέπει να ρυθμιστεί σε vt100. Εγκαταστήστε την καταχώρηση cons25 στη βάση δεδομένων τερματικών του απομακρυσμένου υπολογιστή. Ο τρόπος για να γίνει αυτό, εξαρτάται από το λειτουργικό σύστημα του απομακρυσμένου υπολογιστή. Φυσιολογικά, θα βρείτε αυτές τις πληροφορίες στα εγχειρίδια διαχείρισης συστήματος του απομακρυσμένου μηχανήματος. Στο τοπικό σας &os; μηχάνημα, χρησιμοποιήστε τον X server και κάντε login στο απομακρυσμένο μηχάνημα χρησιμοποιώντας κάποιο εξομοιωτή τερματικού όπως το xterm ή το rxvt. Στην περίπτωση αυτή, θα πρέπει στο απομακρυσμένο μηχάνημα να ρυθμίσετε την μεταβλητή TERM σε xterm ή vt100. Γιατί το μηχάνημα μου δείχνει το μήνυμα calcru: negative time...; Αυτό μπορεί να συμβεί από διάφορες αιτίες που σχετίζονται με interrupts, τόσο στο υλικό όσο και στο λογισμικό. Μπορεί να οφείλεται σε προβλήματα (bugs) αλλά μπορεί επίσης να προκληθεί εξαιτίας της φύσης κάποιων συσκευών. Ένας συνηθισμένος τρόπος πρόκλησης του προβλήματος, είναι η εκτέλεση εφαρμογών TCP/IP με μεγάλο MTU μέσω της παράλληλης θύρας. Μπορεί επίσης να προκληθεί από κάποιους επιταχυντές γραφικών, και στην περίπτωση αυτή το πρώτο πράγμα που θα πρέπει να ελέγξετε είναι η ρύθμιση interrupt της αντίστοιχης κάρτας. Παρενέργεια αυτού του προβλήματος είναι ο απότομος τερματισμός διεργασιών με το μήνυμα SIGXCPU exceeded cpu time limit. Αν το πρόβλημα δεν μπορεί να λυθεί με διαφορετικό τρόπο, η λύση είναι να ορίσετε την παρακάτω μεταβλητή του sysctl: &prompt.root; sysctl -w kern.timecounter.method=1 Η επιλογή του &man.sysctl.8; θεωρείται παρωχημένη και αγνοείται σιωπηλά από το &os; 4.4-RELEASE και μετά. Μπορείτε με ασφάλεια να το παραλείψετε κατά τη ρύθμιση των επιλογών με την sysctl όπως φαίνεται παραπάνω. Το παραπάνω θα έχει επίδραση στην απόδοση, αλλά σε σχέση με την αιτία του προβλήματος, μάλλον δεν θα το παρατηρήσετε. Αν το πρόβλημα επιμένει, διατηρήστε την τιμή του sysctl στο ένα, και ρυθμίστε την επιλογή NTIMECOUNTER στον πυρήνα σας, σε ολοένα αυξανόμενες τιμές. Αν φτάσετε την τιμή NTIMECOUNTER=20 και το πρόβλημα δεν έχει λυθεί, τα interrupts στο μηχάνημα σας είναι πολύ προβληματικά και ακατάλληλα για ακριβή ρύθμιση της ώρας. Γιατί η PnP κάρτα μου δεν ανιχνεύεται πλέον (ή ανιχνεύεται ως unknown) μετά την αναβάθμιση σε &os; 4.X; Το &os; 4.X ακολουθεί πλέον αρκετά πιο πιστά το πρότυπο PnP και αυτό δημιουργεί ορισμένες φορές την παρενέργεια να μη λειτουργούν κάποιες συσκευές PnP (π.χ. κάρτες ήχου και εσωτερικά modems) οι οποίες ωστόσο λειτουργούσαν στο &os; 3.Χ. Οι λόγοι για την συμπεριφορά αυτή, εξηγούνται στο ακόλουθο e-mail, το οποίο στάλθηκε στη λίστα &a.questions.name; από τον Peter Wemm, ως απάντηση σε ερώτηση σχετικά με ένα εσωτερικό modem το οποίο δεν ήταν ανιχνεύσιμο από το σύστημα μετά από αναβάθμιση σε &os; 4.X (τα σχόλια μέσα σε [] έχουν προστεθεί για να γίνει πιο κατανοητό το αντικείμενο της συζήτησης). Το περιεχόμενο αυτής της παράθεσης έχει ανανεωθεί σε σχέση με το αρχικό κείμενο.
Το PNP bios το προ-ρύθμισε [το modem] και το άφησε στην περιοχή διευθύνσεων των θυρών, και έτσι [στην έκδοση 3.Χ] η παλαιού τύπου ανίχνευση ISA το βρήκε εκεί. Στην έκδοση 4.0, ο κώδικας διαχείρισης του ISA, είναι πολύ περισσότερο προσανατολισμένος στο PnP μοντέλο. Στο 3.Χ ήταν δυνατόν η ανίχνευση ISA να εντοπίσει μια χαμένη συσκευή και έπειτα η PNP συσκευή να ταιριάξει και να αποτύχει η ρύθμιση της λόγω διένεξης πόρων. Έτσι, απενεργοποιούνται αρχικά οι προγραμματιζόμενες κάρτες, ώστε να μη συμβεί αυτή η διπλή ανίχνευση. Αυτό επίσης σημαίνει ότι η ανίχνευση πρέπει να γνωρίζει τα PnP ids των υποστηριζόμενων συσκευών. Είναι στις προθέσεις μας να κάνουμε τη διαδικασία αυτή περισσότερη προσβάσιμη στους χρήστες.
Για να λειτουργήσει ξανά η συσκευή, πρέπει να βρεθεί το PNP id της και να προστεθεί στη λίστα των ανιχνεύσεων ISA που χρησιμοποιούνται για την αναγνώριση PnP συσκευών. Αυτό μπορεί να γίνει με τη χρήση της &man.pnpinfo.8; για την ανίχνευση της συσκευής, για παράδειγμα αυτή είναι η έξοδος της &man.pnpinfo.8; για ένα εσωτερικό modem: &prompt.root; pnpinfo Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge) [παραλείπονται οι υπόλοιπες γραμμές TAG] TAG End DF End Tag Successfully got 31 resources, 1 logical fdevs -- card select # 0x0001 CSN PMC2430 (0x3024a341), Serial Number 0xffffffff Logical device #0 IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 IRQ 5 0 DMA 4 0 IO range check 0x00 activate 0x01 Οι πληροφορίες που απαιτούνται, βρίσκονται στη γραμμή Vendor ID, στην αρχή της εξόδου. Ο δεκαεξαδικός αριθμός στις παρενθέσεις (στο παράδειγμα μας 0x3024a341) είναι το PnP id ενώ το αλφαριθμητικό που βρίσκεται ακριβώς πριν από αυτόν είναι ένα μοναδικό ASCII αναγνωριστικό. Εναλλακτικά, αν το &man.pnpinfo.8; δεν δείχνει την ζητούμενη κάρτα, μπορείτε να χρησιμοποιήσετε το &man.pciconf.8;. Παρακάτω φαίνεται ένα μέρος της εξόδου της pciconf -vl για ένα κύκλωμα ήχου ενσωματωμένου στη μητρική: &prompt.root; pciconf -vl chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801AA 8xx Chipset AC'97 Audio Controller' class = multimedia subclass = audio Εδώ, θα χρησιμοποιούσαμε την τιμή του chip, 0x24158086. Η πληροφορία αυτή (Vendor ID ή τιμή chip) θα πρέπει να προστεθεί στο αρχείο /usr/src/sys/isa/sio.c. Θα πρέπει πρώτα να κρατήσετε ένα αντίγραφο ασφαλείας του sio.c, για την περίπτωση που κάτι πάει στραβά. Επίσης, θα χρειαστείτε το αντίγραφο για να δημιουργήσετε ένα patch το οποίο θα καταθέσετε με την αναφορά προβλήματος (PR) που θα μας στείλετε (και θα μας στείλετε PR, έτσι;). Κατόπιν επεξεργαστείτε το sio.c και ψάξτε για τη γραμμή static struct isa_pnp_id sio_ids[] = { έπειτα μετακινηθείτε προς τα κάτω για να βρείτε το σωστό μέρος να προσθέσετε την καταχώρηση της συσκευής σας. Οι καταχωρήσεις φαίνονται όπως παρακάτω και είναι ταξινομημένες κατά το αλφαριθμητικό ASCII Vendor ID το οποίο θα πρέπει να περιληφθεί στο σχόλιο στο δεξιό μέρος της γραμμής μαζί με όλη την περιγραφή Device Description (αν χωράει, αλλιώς μέρος της) από την έξοδο της &man.pnpinfo.8;: {0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */ {0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */ {0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */ {0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */ {0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */ Προσθέστε το δεκαεξαδικό Vendor ID για τη συσκευή σας στο σωστό μέρος, αποθηκεύστε το αρχείο, αναδημιουργήστε τον πυρήνα σας, και επανεκκινήστε. Θα πρέπει τώρα η συσκευή σας να βρεθεί ως συσκευή sio όπως συνέβαινε και με το &os; 3.X
Γιατί παίρνω το λάθος nlist failed όταν εκτελώ, για παράδειγμα, το top ή το systat; Το πρόβλημα είναι ότι η εφαρμογή που προσπαθείτε να εκτελέσετε ψάχνει για ένα συγκεκριμένο σύμβολο στον πυρήνα, αλλά για κάποιο λόγο δεν μπορεί να το εντοπίσει. Το σφάλμα αυτό μπορεί να οφείλεται σε δύο προβλήματα: Ο πυρήνας σας και τα υπόλοιπα βασικά προγράμματα (userland) δεν είναι σε συγχρονισμό (π.χ. έχετε δημιουργήσει νέο πυρήνα, αλλά δεν εκτελέσατε installworld, ή αντίστροφα), με αποτέλεσμα ο πίνακας συμβόλων να είναι διαφορετικός από αυτόν που πιστεύει η εφαρμογή. Αν πρόκειται για αυτή την περίπτωση, απλώς ολοκληρώστε τη διαδικασία αναβάθμισης (δείτε το /usr/src/UPDATING για τη σωστή ακολουθία εντολών). Δεν χρησιμοποιείτε το /boot/loader για να φορτώσετε τον πυρήνα σας, αλλά τον φορτώνετε απευθείας από το boot2 (δείτε το &man.boot.8;). Αν και δεν είναι λάθος να παρακάμψετε τον /boot/loader, σε γενικές γραμμές το πρόγραμμα αυτό τα καταφέρνει καλύτερα στο να διαθέτει τα σύμβολα του πυρήνα στις εφαρμογές χρήστη. Γιατί παίρνει τόσο χρόνο να συνδεθώ με τον υπολογιστή μου μέσω ssh ή telnet; Το σύμπτωμα: Υπάρχει μεγάλη καθυστέρηση μεταξύ της στιγμής που αποκαθίσταται η TCP σύνδεση και της στιγμής που το πρόγραμμα στη μεριά του πελάτη ζητάει τον κωδικό πρόσβασης (ή στην περίπτωση του &man.telnet.1;, της στιγμής που εμφανίζεται η προτροπή login). Το πρόβλημα: Το πιο πιθανό είναι ότι η καθυστέρηση οφείλεται στην προσπάθεια που καταβάλλει το λογισμικό στη μεριά του εξυπηρετητή να βρει το όνομα του μηχανήματος - πελάτη από την IP διεύθυνση του. Οι περισσότεροι εξυπηρετητές, συμπεριλαμβανομένων του Telnet και SSH που έρχονται με το &os;, λειτουργούν με αυτό τον τρόπο, ώστε μεταξύ άλλων, να αποθηκεύσουν το όνομα του μηχανήματος σε ένα αρχείο καταγραφής για μελλοντική αναφορά από τον διαχειριστή. Η θεραπεία: Αν το πρόβλημα προκύπτει κάθε φορά που συνδέεστε από τον υπολογιστή σας (τον πελάτη) σε οποιοδήποτε εξυπηρετητή, το πρόβλημα βρίσκεται στον πελάτη. Με τον ίδιο τρόπο, αν το πρόβλημα συμβαίνει μόνο όταν κάποιος συνδέεται στον υπολογιστή σας (τον εξυπηρετητή), το πρόβλημα βρίσκεται στον εξυπηρετητή. Αν το πρόβλημα είναι στον πελάτη, η μόνη θεραπεία είναι να διορθώσετε το DNS, ώστε ο εξυπηρετητής να μπορεί να το βρει. Αν το πρόβλημα εμφανίζεται στο τοπικό σας δίκτυο, θεωρείστε το πρόβλημα στον εξυπηρετητή και συνεχίστε την ανάγνωση. Αντίθετα, αν το πρόβλημα εμφανίζεται σε συνδέσεις μέσω Internet, κατά πάσα πιθανότητα θα χρειαστεί να επικοινωνήσετε με τον ISP σας και να ζητήσετε να σας το διορθώσει. Αν το πρόβλημα είναι με τον εξυπηρετητή, και εμφανίζεται στο τοπικό σας δίκτυο, θα πρέπει να τον ρυθμίσετε ώστε να μπορεί να εκτελεί αναζητήσεις τύπου διεύθυνση σε όνομα, για την τοπική περιοχή διευθύνσεων σας. Δείτε τις σελίδες manual των &man.hosts.5; και &man.named.8; για περισσότερες πληροφορίες. Αν το πρόβλημα εμφανίζεται στις συνδέσεις μέσω Internet, μπορεί να οφείλεται σε κακή λειτουργία του resolver στον εξυπηρετητή σας. Για να το ελέγξετε, δοκιμάστε να βρείτε κάποιο άλλο μηχάνημα, για παράδειγμα το www.yahoo.com. Αν ούτε αυτό δουλεύει, εκεί βρίσκεται το πρόβλημα σας. Μετά από μια νέα εγκατάσταση του &os; είναι επίσης πιθανό να λείπουν οι πληροφορίες για τον τομέα (domain) και τον εξυπηρετητή ονομάτων (nameserver) από το αρχείο /etc/resolv.conf. Αυτό επίσης θα προκαλέσει καθυστέρηση στο SSH, καθώς η επιλογή UseDNS έχει ως προεπιλεγμένη την τιμή yes στο αρχείο ρυθμίσεων sshd_config στον κατάλογο /etc/ssh. Αν είναι αυτή η αιτία του προβλήματος, θα πρέπει είτε να συμπληρώσετε τις απαιτούμενες πληροφορίες στο /etc/resolv.conf ή να θέσετε το UseDNS στο no στο αρχείο sshd_config ως προσωρινή λύση. Ποια είναι η έννοια του stray (περιπλανώμενου) IRQ; Τα stray IRQs είναι σημάδια προβλημάτων υλικού που χρησιμοποιεί IRQs, ειδικότερα σχετίζεται με υλικό που κατά τη μέση του κύκλου αναγνώρισης (acknowledge cycle) του interrupt, σταματάει να μεταδίδει την αντίστοιχη αίτηση διακοπής. Έχετε τρεις επιλογές για να αντιμετωπίσετε αυτό το πρόβλημα: Ανεχθείτε τις προειδοποιήσεις. Έτσι και αλλιώς, μετά τις 5 πρώτες, δεν θα δείτε άλλες. Σταματήστε εντελώς τις προειδοποιήσεις, αλλάζοντας το 5 σε 0 στην isa_strayintr(). Σταματήστε τις προειδοποιήσεις εγκαθιστώντας υλικό για την παράλληλη πόρτα που να χρησιμοποιεί το IRQ 7 και το αντίστοιχο για αυτό πρόγραμμα οδήγησης PPP (αυτό συμβαίνει στα περισσότερα συστήματα) και εγκαταστήστε ένα οδηγό IDE ή άλλο υλικό που να χρησιμοποιεί το irq 15 μαζί με το κατάλληλο πρόγραμμα οδήγησης του. Γιατί βλέπω συνέχεια το μήνυμα file: table is full στο dmesg; Το μήνυμα αυτό σημαίνει ότι έχετε εξαντλήσει τον αριθμό των διαθέσιμων περιγραφέων αρχείων (file descriptors) στο σύστημα σας. Παρακαλούμε δείτε το kern.maxfiles τμήμα στο κεφάλαιο Ρύθμιση Ορίων Πυρήνα του Εγχειριδίου, για ερμηνεία και επίλυση του προβλήματος. Γιατί το ρολόι στο φορητό μου υπολογιστή δεν κρατάει την σωστή ώρα; Ο φορητός υπολογιστής σας έχει δύο ή περισσότερα ρολόγια, και το &os; έχει επιλέξει να χρησιμοποιήσει το λάθος. Εκτελέστε την &man.dmesg.8;, και ελέγξτε για γραμμές που περιέχουν την λέξη Timecounter. Η τελευταία από τις γραμμές που θα εκτυπωθεί δείχνει το ρολόι που επιλέχθηκε από το &os; και σχεδόν σίγουρα θα είναι το TSC. &prompt.root; dmesg | grep Timecounter Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 595573479 Hz Μπορείτε να το επιβεβαιώσετε αυτό, ελέγχοντας την τιμή του kern.timecounter.hardware &man.sysctl.3;. &prompt.root; sysctl kern.timecounter.hardware kern.timecounter.hardware: TSC Το BIOS ίσως να τροποποιεί την τιμή του ρολογιού TSC— ενδεχομένως για να αλλάξει την ταχύτητα του επεξεργαστή όταν λειτουργεί με μπαταρίες, ή όταν εισέρχεται σε κατάσταση χαμηλής κατανάλωσης, αλλά το &os; δεν γνωρίζει για αυτές τις αλλαγές και φαίνεται να κερδίζει ή να χάνει χρόνο. Στο παράδειγμα μας, είναι επίσης διαθέσιμο το ρολόι i8254 και μπορείτε να το επιλέξετε γράφοντας το όνομα του στο &man.sysctl.3; kern.timecounter.hardware. &prompt.root; sysctl -w kern.timecounter.hardware=i8254 kern.timecounter.hardware: TSC -> i8254 Ο φορητός υπολογιστής σας θα πρέπει τώρα να είναι πιο ακριβής στην τήρηση του χρόνου. Για να παραμείνει η αλλαγή αυτή σε κάθε εκκίνηση, προσθέστε την παρακάτω γραμμή στο /etc/sysctl.conf. kern.timecounter.hardware=i8254 Γιατί ο φορητός μου υπολογιστής δεν αναγνωρίζει σωστά τις κάρτες τύπου PC card; Το πρόβλημα είναι κοινό σε φορητά που εκκινούν περισσότερα από ένα λειτουργικά συστήματα. Ορισμένα μη-BSD λειτουργικά συστήματα αφήνουν τις PC cards σε μη-προβλέψιμη κατάσταση. Η εντολή pccardd σε αυτή την περίπτωση, ανιχνεύει την κάρτα ως "(null)""(null)" αντί για το πραγματικό της μοντέλο. Πρέπει να αποσυνδέσετε εντελώς την τροφοδοσία από την θύρα PC card ώστε το υλικό να επανέλθει στην αρχική του κατάσταση. Απενεργοποιήστε πλήρως τον φορητό υπολογιστή σας. (Μην τον βάλετε σε κατάσταση αναμονής ή ύπνου, θα πρέπει να απενεργοποιηθεί εντελώς.) Περιμένετε για λίγα λεπτά και επανεκκινήστε. Θα πρέπει τώρα η PC card να λειτουργεί κανονικά. Το υλικό κάποιων φορητών υπολογιστών στην πραγματικότητα παραμένει ενεργό, ακόμα και όταν υποτίθεται ότι ο υπολογιστής είναι ανενεργός. Αν το παραπάνω δεν έχει το επιθυμητό αποτέλεσμα, τερματίστε τη λειτουργία του υπολογιστή σας, αφαιρέστε την μπαταρία, περιμένετε λίγο, τοποθετήστε ξανά την μπαταρία και επανεκκινήστε. Γιατί ο φορτωτής εκκίνησης του &os; δείχνει το μήνυμα λάθους Read error και σταματάει μετά την οθόνη του BIOS; Ο φορτωτής εκκίνησης του &os; δεν αναγνωρίζει σωστά την γεωμετρία του σκληρού δίσκου. Μπορείτε να την ρυθμίσετε χειροκίνητα μέσα από την fdisk κατά την δημιουργία ή τροποποίηση του slice του &os;. Μπορείτε να βρείτε τις σωστές τιμές για την γεωμετρία του οδηγού στο BIOS του μηχανήματος. Ψάξτε για τον αριθμό των κυλίνδρων, κεφαλών και τομέων για τον οδηγό που θέλετε. Μέσα από την fdisk του &man.sysinstall.8;, πιέστε το G για να ορίσετε την γεωμετρία του οδηγού. Θα εμφανιστεί ένας διάλογος που θα ζητάει τον αριθμό των κυλίνδρων, κεφαλών και τομέων. Πληκτρολογήστε τους αριθμούς που βρήκατε από το BIOS, χωρίζοντας τους με κανονικές καθέτους. Για παράδειγμα, για 5000 κυλίνδρους, 250 κεφαλές και 60 τομείς, θα γράφαμε 5000/250/60. Πιέστε enter για να ορίσετε τις τιμές, και έπειτα το W για να γράψετε το νέο πίνακα κατατμήσεων στον οδηγό. Ένα άλλο λειτουργικό σύστημα κατέστρεψε τον διαχειριστή εκκίνησης μου. Πως μπορώ να τον αποκαταστήσω; Θα πρέπει να εισέλθετε στο &man.sysinstall.8; και να επιλέξετε Configure και κατόπιν Fdisk. Επιλέξτε το δίσκο στον οποίο βρίσκεται κανονικά ο Φορτωτής Εκκίνησης χρησιμοποιώντας το πλήκτρο space. Πιέστε το W για να γράψετε τις αλλαγές στον οδηγό. Θα εμφανιστεί μια προτροπή που θα σας ρωτάει ποιο φορτωτή εκκίνησης να εγκαταστήσει. Κάντε την αντίστοιχη επιλογή και ο φορτωτής εκκίνησης θα αποκατασταθεί. Τι σημαίνει το μήνυμα λάθους swap_pager: indefinite wait buffer:; Σημαίνει ότι μια διαδικασία προσπαθεί να γράψει μια σελίδα μνήμης στο δίσκο, και η απόπειρα αυτή έχει κολλήσει προσπαθώντας να αποκτήσει πρόσβαση στο δίσκο για περισσότερο από 20 δευτερόλεπτα. Αυτό μπορεί να συμβεί από χαλασμένους τομείς στο σκληρό δίσκο, προβληματικά καλώδια, ή άλλο υλικό το οποίο να σχετίζεται με I/O. Αν πρόκειται για προβληματικό δίσκο, θα δείτε επίσης και αντίστοιχα μηνύματα στο /var/log/messages και στην έξοδο της εντολής dmesg. Διαφορετικά, ελέγξτε τις συνδέσεις και τα καλώδια σας. Τι είναι τα σφάλματα UDMA ICRC, και πως μπορώ να τα διορθώσω; Το πρόγραμμα οδήγησης &man.ata.4; αναφέρει σφάλματα τύπου UDMA ICRC όταν εντοπίσει πρόβλημα στην ορθότητα των δεδομένων σε μια μεταφορά DMA από ή προς τον οδηγό. Το πρόγραμμα οδήγησης θα προσπαθήσει να επαναλάβει τη μεταφορά μερικές φορές. Αν όλες οι απόπειρες αποτύχουν, θα αλλάξει την κατάσταση επικοινωνίας της συσκευής από DMA σε PIO, η οποία είναι πιο αργή. Το πρόβλημα μπορεί να προκληθεί από πολλούς παράγοντες, αν και ο πιο συνηθισμένος είναι η προβληματική ή λανθασμένη καλωδίωση. Ελέγξτε ότι τα καλώδια ΑΤΑ δεν έχουν υποστεί ζημιά, και ότι είναι κατάλληλων προδιαγραφών για την κατάσταση λειτουργίας Ultra DMA που χρησιμοποιείτε. Αν χρησιμοποιείτε αφαιρούμενα συρτάρια δίσκων, θα πρέπει επίσης να είναι συμβατά. Βεβαιωθείτε ότι υπάρχει καλή επαφή σε όλες τις συνδέσεις. Έχουν επίσης αναφερθεί προβλήματα όταν γίνεται εγκατάσταση ενός παλιού οδηγού στο ίδιο κανάλι DMA με ένα δίσκο Ultra DMA 66 (ή πιο γρήγορο). Τέλος, τα λάθη αυτά μπορεί να σημαίνουν ότι ο δίσκος πρόκειται σύντομα να χαλάσει. Οι περισσότεροι κατασκευαστές δίσκων παρέχουν λογισμικό ελέγχου για τους οδηγούς τους, ελέγξτε λοιπόν το δίσκο σας, και αν χρειάζεται, πάρτε αντίγραφο των δεδομένων σας και αντικαταστήστε τον. Μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα &man.atacontrol.8; για να δείτε και να επιλέξετε την κατάσταση λειτουργίας DMA ή PIO που χρησιμοποιείται από κάθε συσκευή ATA. Πιο συγκεκριμένα, η εντολή atacontrol mode channel θα σας δείξει την κατάσταση λειτουργίας των συσκευών ενός συγκεκριμένου καναλιού ΑΤΑ, όπου το πρωτεύον κανάλι έχει την αρίθμηση 0 κ.ο.κ. Τι είναι το lock order reversal; Ο &a.rwatson; απάντησε με σαφήνεια αυτή την ερώτηση στην λίστα &a.current.name;, σε μια συζήτηση με τίτλο lock order reversals - τι σημαίνουν;
Από τον &a.rwatson; στη λίστα &a.current.name;, στις 14 Δεκεμβρίου 2003 Οι προειδοποιήσεις αυτές προέρχονται από το Witness, ένα διαγνωστικό σύστημα για κλειδώματα κατά τη λειτουργία (run-time lock) το οποίο βρίσκεται στους πυρήνες -CURRENT του &os; (αλλά αφαιρείται στις επίσημες εκδόσεις). Μπορείτε να διαβάσετε περισσότερα για το Witness και τις δυνατότητες του, στη σελίδα manual &man.witness.4;. Μεταξύ άλλων το Witness επαληθεύει τη σειρά των run-time locks χρησιμοποιώντας ένα συνδυασμό από ενσωματωμένες σειρές κλειδωμάτων καθώς και από τη σειρά που ανιχνεύεται κατά την εκτέλεση, και παράγει προειδοποιήσεις στην κονσόλα όταν παραβιάζονται. Σκοπός αυτής της λειτουργίας είναι να ανιχνεύονται πιθανά deadlocks τα οποία μπορεί να οφείλονται σε παραβιάσεις της σειράς των κλειδωμάτων. Είναι αξιοσημείωτο ότι το Witness είναι κάπως συντηρητικό, και είναι πιθανόν να δώσει λάθος προειδοποιήσεις. Στην περίπτωση που το Witness αναφέρει ένα πραγματικό πρόβλημα με την σειρά των κλειδωμάτων, είναι σαν να λέει "αν ήσασταν άτυχος, θα σας είχε συμβεί deadlock σε αυτό το σημείο". Υπάρχουν κάποιες γνωστές περιπτώσεις "λανθασμένης διάγνωσης" για τις οποίες χρειάζεται να δημιουργήσουμε καλύτερη τεκμηρίωση ώστε να αποφύγουμε και τις περιττές αναφορές σφαλμάτων. Οι λιγότερο γνωστές περιπτώσεις οφείλονται περισσότερο σε νέα κλειδώματα, καθώς οι αντιστροφές στη σειρά των κλειδωμάτων διορθώνονται γρήγορα επειδή το Witness είναι πάντα απασχολημένο και δημιουργεί συνέχεια νέες προειδοποιήσεις :-).
Αυτό που αποκαλούμε "λανθασμένη διάγνωση" δημιουργείται στην πραγματικότητα όταν το Witness βρίσκει κάποιο πολύ πιο σοβαρό λάθος. Τέτοια λάθη είναι τυπικά το σφάλμα σελίδας (page fault) ή λανθασμένα δεδομένα στη μνήμη μέσα στον πυρήνα, ή τέλος σύγκρουση ονομασίας με κάποια mutexes. Δείτε την σελίδα του Bjoern Zeeb σχετικά με τις αντιστροφές κλειδωμάτων για την κατάσταση των γνωστών αντιστροφών.
Τι σημαίνει το μήνυμα Called ... with the following non-sleepable locks held; Σημαίνει ότι κλήθηκε μια συνάρτηση με δυνατότητα sleep ενώ την ίδια στιγμή ήταν ενεργό κάποιο κλείδωμα mutex (ή αντίστοιχο χωρίς δυνατότητα sleep). Ο λόγος για τον οποίο αυτό είναι λάθος είναι επειδή τα mutexes δεν προορίζονται να κρατούνται για μεγάλα χρονικά διαστήματα. Είναι μόνο για τη συντήρηση μικρών περιόδων συγχρονισμού. Αυτή η προγραμματιστική συμφωνία επιτρέπει στους οδηγούς συσκευών να χρησιμοποιούν mutexes για να συγχρονίζονται με τα υπόλοιπα προγράμματα του πυρήνα κατά την διάρκεια των interrupts. Τα interrupts (στο &os;) δεν μπορούν να περιέλθουν σε κατάσταση sleep. Για το λόγο αυτό είναι απαραίτητο να μην μπλοκάρεται ο πυρήνας για μεγάλο διάστημα από κάποιο υποσύστημα που κρατάει ένα mutex. Για να εντοπιστούν αυτά τα λάθη, μπορούν να προστεθούν υποθέσεις (assertions) στον πυρήνα οι οποίες αλληλεπιδρούν με το υποσύστημα witness για να δώσουν ένα προειδοποιητικό μήνυμα (ή μήνυμα λάθους, ανάλογα με τις ρυθμίσεις του συστήματος) όταν γίνεται μια κλήση η οποία πιθανώς να δημιουργεί μπλοκάρισμα την στιγμή που κρατιέται ένα mutex. Εν συντομία, αυτού του είδους οι προειδοποιήσεις δεν είναι συνήθως μοιραίες, αλλά υπό ορισμένες ατυχείς προϋποθέσεις, μπορεί να προκαλέσουν ανεπιθύμητα φαινόμενα τα οποία κυμαίνονται από μια στιγμιαία πτώση στην απόκριση του συστήματος, μέχρι πλήρης κατάρρευση. Γιατί η διαδικασία buildworld/installworld σταματάει με το μήνυμα touch: not found; Το μήνυμα αυτό δεν σημαίνει ότι σας λείπει το βοηθητικό πρόγραμμα &man.touch.1;. Το λάθος αυτό προκαλείται συνήθως από λανθασμένη, μελλοντική, σήμανση ημερομηνίας των αρχείων. Αν το ρολόι CMOS του υπολογιστή σας είναι ρυθμισμένο για τοπική ώρα, πρέπει να εκτελέσετε την εντολή adjkerntz -i για να ρυθμίσετε το ρολόι του πυρήνα όταν εκκινείτε σε κατάσταση λειτουργίας ενός χρήστη.
Εμπορικές Εφαρμογές This section is still very sparse, though we are hoping, of course, that companies will add to it! :) The FreeBSD group has no financial interest in any of the companies listed here but simply lists them as a public service (and feels that commercial interest in FreeBSD can have very positive effects on FreeBSD's long-term viability). We encourage commercial software vendors to send their entries here for inclusion. See the Vendors page for a longer list. Where can I get an Office Suite for FreeBSD? The open-source OpenOffice.org office suite works natively on FreeBSD. The &linux; version of StarOffice, the value-added closed-source version of OpenOffice.org, also works on FreeBSD. FreeBSD also includes a variety of text editors, spreadsheets, and drawing programs in the Ports Collection. Where can I get &motif; for FreeBSD? The Open Group has released the source code to &motif; 2.2.2. You can install the open-motif package, or compile it from ports. Refer to the ports section of the Handbook for more information on how to do this. The Open &motif; distribution only allows redistribution if it is running on an open source operating system. In addition, there are commercial distributions of the &motif; software available. These, however, are not for free, but their license allows them to be used in closed-source software. Contact Apps2go for the least expensive ELF &motif; 2.1.20 distribution for FreeBSD (either &i386; or Alpha). There are two distributions, the development edition and the runtime edition (for much less). These distributions includes: OSF/&motif; manager, xmbind, panner, wsm. Development kit with uil, mrm, xm, xmcxx, include and Imake files. Static and dynamic ELF libraries. Demonstration applets. Be sure to specify that you want the FreeBSD version of &motif; when ordering (do not forget to mention the architecture you want too)! Versions for NetBSD and OpenBSD are also sold by Apps2go. This is currently a FTP only download. More info Apps2go WWW page or sales@apps2go.com or support@apps2go.com or phone (817) 431 8775 or +1 817 431-8775 Contact Xi Graphics for an a.out &motif; 2.0 distribution for FreeBSD. This distribution includes: OSF/&motif; manager, xmbind, panner, wsm. Development kit with uil, mrm, xm, xmcxx, include and Imake files. Static and dynamic libraries (for use with FreeBSD 2.2.8 and earlier). Demonstration applets. Preformatted manual pages. Be sure to specify that you want the FreeBSD version of &motif; when ordering! Versions for BSDI and &linux; are also sold by Xi Graphics. This is currently a 4 diskette set... in the future this will change to a unified CD distribution like their CDE. Where can I get CDE for FreeBSD? Xi Graphics used to sell CDE for FreeBSD, but no longer do. KDE is an open source X11 desktop which is similar to CDE in many respects. You might also like the look and feel of xfce. KDE and xfce are both in the ports system. Are there any commercial high-performance X servers? Yes, Xi Graphics sells Accelerated-X products for FreeBSD and other Intel based systems. The Xi Graphics offering is a high performance X Server that offers easy configuration, support for multiple concurrent video boards and is distributed in binary form only, in a unified diskette distribution for FreeBSD and &linux;. Xi Graphics also offers a high performance X Server tailored for laptop support. There is a free compatibility demo of version 5.0 available. Xi Graphics also sells &motif; and CDE for FreeBSD (see above). More info Xi Graphics WWW page or sales@xig.com or support@xig.com or phone (800) 946 7433 or +1 303 298-7478. Are there any Database systems for FreeBSD? Yes! See the Commercial Vendors section of FreeBSD's Web site. Also see the Databases section of the Ports collection. Can I run &oracle; on FreeBSD? Yes. The following pages tell you exactly how to set up &linux;-&oracle; on FreeBSD: http://www.unixcities.com/oracle/index.html http://www.shadowcom.net/freebsd-oracle9i/ Εφαρμογές Τελικού Χρήστη So, where are all the user applications? Please take a look at the ports page for info on software packages ported to FreeBSD. The list currently tops &os.numports; and is growing daily, so come back to check often or subscribe to the freebsd-announce mailing list for periodic updates on new entries. Most ports should work on the 4.X, 5.X, and 6.X branches. Each time a FreeBSD release is made, a snapshot of the ports tree at the time of release in also included in the ports/ directory. We also support the concept of a package, essentially no more than a compressed binary distribution with a little extra intelligence embedded in it for doing whatever custom installation work is required. A package can be installed and uninstalled again easily without having to know the gory details of which files it includes. Use the package installation menu in /stand/sysinstall (under the post-configuration menu item) or invoke the &man.pkg.add.1; command on the specific package files you are interested in installing. Package files can usually be identified by their .tgz or .tbz suffix and CDROM distribution people will have a packages/All directory on their CD which contains such files. They can also be downloaded over the net for various versions of FreeBSD at the following locations: for 4.X-RELEASE/4-STABLE ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/ for 5.X-RELEASE/5-STABLE ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable for 6.X-RELEASE/6-STABLE ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable for 7-CURRENT ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current or your nearest local mirror site. Note that all ports may not be available as packages since new ones are constantly being added. It is always a good idea to check back periodically to see which packages are available at the ftp.FreeBSD.org master site. How do I configure INN (Internet News) for my machine? After installing the news/inn package or port, an excellent place to start is Dave Barr's INN Page where you will find the INN FAQ. Does FreeBSD support &java;? Yes. Please see http://www.FreeBSD.org/java/. Why can I not build this port on my 4.X-STABLE machine? If you are running a FreeBSD version that lags significantly behind -CURRENT or -STABLE, you may need to update your ports collection; see the Keeping Up section of the Porter's Handbook for further information on how to do this. If you are up to date, then someone might have committed a change to the port which works for -CURRENT but which broke the port for -STABLE. Please submit a bug report on this with the &man.send-pr.1; command, since the ports collection is supposed to work for both the -CURRENT and -STABLE branches. I just tried to build INDEX using make index, and it failed. Why? First, always make sure that you have a completely up-to-date Ports Collection. Errors that affect building INDEX from an up-to-date copy of the Ports Collection are high-visibility and are thus almost always fixed immediately. However, if you are up-to-date, perhaps you are seeing another problem. make index has a known bug in dealing with incomplete copies of the Ports Collection. It assumes that you have a local copy of every single port that every other port that you have a local copy of depends on. To explain, if you have a copy of foo/bar on your disk, and foo/bar depends on baz/quux, then you must also have a copy of baz/quux on your disk, and the ports baz/quux depends on, and so on. Otherwise, make index has insufficient information to create its dependency tree. This is particularly a problem for &os; users who utilize &man.cvsup.1; to track the Ports Collection but choose not to install certain categories by specifying them in refuse. In theory, one should be able to refuse categories, but in practice there are too many ports that depend on ports in other categories. Until someone comes up with a solution for this problem, the general rule is is that if you want to build INDEX, you must have a complete copy of the Ports Collection. There are rare cases where INDEX will not build due to odd cases involving WITH_* or WITHOUT_* variables being set in make.conf. If you suspect that this is the case, please try to make INDEX with those Makevars turned off before reporting it to &a.ports;. Why is CVSup not integrated in the main FreeBSD tree? The FreeBSD base system is designed as self-hosting - it should be possible to build the whole operating system starting with a very limited set of tools. Thus, the actual build tools needed to compile the FreeBSD sources are bundled with the sources themselves. This includes a C compiler (&man.gcc.1;), &man.make.1;, &man.awk.1;, and similar tools. Since CVSup is written in Modula-3, adding it to the FreeBSD base system would also require adding and maintaining a Modula-3 compiler. This would lead to both an increase in the disk space consumed by the FreeBSD sources and additional maintenance work. Thus, it is much easier for both the developers and users to keep CVSup as a separate port, which can be easily installed as a package bundled on the FreeBSD installation CDs. I updated the sources, now how do I update my installed ports? FreeBSD does not include a port upgrading tool, but it does have some tools to make the upgrade process somewhat easier. You can also install additional tools to simplify port handling. The &man.pkg.version.1; command can generate a script that will update installed ports to the latest version in the ports tree. &prompt.root; pkg_version -c > /tmp/myscript The output script must be edited by hand before you use it. Recent versions of &man.pkg.version.1; force this by inserting an &man.exit.1; at the beginning of the script. You should save the output of the script, as it will note packages that depend on the one that has been updated. These may or may not need to be updated as well. The usual case where they need to be updated is that a shared library has changed version numbers, so the ports that used that library need to be rebuilt to use the new version. Beginning with FreeBSD 5.0 (and higher revisions), &man.pkg.version.1; no longer supports the option. If you have the disk space, you can use the portupgrade tool to automate all of this. portupgrade includes various tools to simplify package handling. It is available under ports-mgmt/portupgrade. Since it is written in Ruby, portupgrade is an unlikely candidate for integration with the main FreeBSD tree. That should not stop anyone from using it, however. If your system is up full time, the &man.periodic.8; system can be used to generate a weekly list of ports that might need updating by setting weekly_status_pkg_enable="YES" in /etc/periodic.conf. Why is /bin/sh so minimal? Why does FreeBSD not use bash or another shell? Because &posix; says that there shall be such a shell. The more complicated answer: many people need to write shell scripts which will be portable across many systems. That is why &posix; specifies the shell and utility commands in great detail. Most scripts are written in Bourne shell, and because several important programming interfaces (&man.make.1;, &man.system.3;, &man.popen.3;, and analogues in higher-level scripting languages like Perl and Tcl) are specified to use the Bourne shell to interpret commands. Because the Bourne shell is so often and widely used, it is important for it to be quick to start, be deterministic in its behavior, and have a small memory footprint. The existing implementation is our best effort at meeting as many of these requirements simultaneously as we can. In order to keep /bin/sh small, we have not provided many of the convenience features that other shells have. That is why the Ports Collection includes more featureful shells like bash, scsh, tcsh, and zsh. (You can compare for yourself the memory utilization of all these shells by looking at the VSZ and RSS columns in a ps -u listing.) Why do &netscape; and Opera take so long to start? The usual answer is that DNS on your system is misconfigured. Both &netscape; and Opera perform DNS checks when starting up. The browser will not appear on your desktop until the program either gets a response or determines that the system has no network connection. I updated parts of the Ports Collection using CVSup, and now many ports fail to build with mysterious error messages! What happened? Is the Ports Collection broken in some major way? If you only update parts of the Ports Collection, using one of its CVSup subcollections and not the ports-all CVSup collection, you should always update the ports-base subcollection too! The reasons are described in the Handbook. How do I create audio CDs from my MIDI files? To create audio CDs from MIDI files, first install audio/timidity++ from ports then install manually the GUS patches set by Eric A. Welsh, available at . After timidity++ has been installed properly, midi files may be converted to wav files with the following command line: &prompt.user; timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid The wav files can then be converted to other formats or burned onto audio CDs, as described in the FreeBSD Handbook. Ρύθμιση Πυρήνα I would like to customize my kernel. Is it difficult? Not at all! Check out the kernel config section of the Handbook. We recommend that you make a dated snapshot of your new /kernel called /kernel.YYMMDD after you get it working properly. Also back up your new /modules directory to /modules.YYMMDD. That way, if you make a mistake the next time you play with your configuration you can boot the backup kernel instead of having to fall back to kernel.GENERIC. This is particularly important if you are now booting from a controller that GENERIC does not support. My kernel compiles fail because _hw_float is missing. How do I solve this problem? You probably removed npx0 (see &man.npx.4;) from your kernel configuration file because you do not have a math co-processor. The npx0 device is MANDATORY. Somewhere inside your hardware lies a device that provides hardware floating-point support, even if it is no longer a separate device as used in the good old 386 days. You must include the npx0 device. Even if you manage to build a kernel without npx0 support, it will not boot anyway. Why is my kernel so big (over 10MB)? Chances are, you compiled your kernel in debug mode. Kernels built in debug mode contain many symbols that are used for debugging, thus greatly increasing the size of the kernel. Note that there will be little or no performance decrease from running a debug kernel, and it is useful to keep one around in case of a system panic. However, if you are running low on disk space, or you simply do not want to run a debug kernel, make sure that both of the following are true: You do not have a line in your kernel configuration file that reads: makeoptions DEBUG=-g You are not running &man.config.8; with the option. Either of the above settings will cause your kernel to be built in debug mode. As long as you make sure you follow the steps above, you can build your kernel normally, and you should notice a fairly large size decrease; most kernels tend to be around 1.5MB to 2MB. Why do I get interrupt conflicts with multi-port serial code? When I compile a kernel with multi-port serial code, it tells me that only the first port is probed and the rest skipped due to interrupt conflicts. How do I fix this? The problem here is that FreeBSD has code built-in to keep the kernel from getting trashed due to hardware or software conflicts. The way to fix this is to leave out the IRQ settings on all but one port. Here is an example: # # Multiport high-speed serial line - 16550 UARTS # device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr Why does every kernel I try to build fail to compile, even GENERIC? There are a number of possible causes for this problem. They are, in no particular order: You are not using the new make buildkernel and make installkernel targets, and your source tree is different from the one used to build the currently running system (e.g., you are compiling 4.3-RELEASE on a 4.0-RELEASE system). If you are attempting an upgrade, please read the /usr/src/UPDATING file, paying particular attention to the COMMON ITEMS section at the end. You are using the new make buildkernel and make installkernel targets, but you failed to assert the completion of the make buildworld target. The make buildkernel target relies on files generated by the make buildworld target to complete its job correctly. Even if you are trying to build FreeBSD-STABLE, it is possible that you fetched the source tree at a time when it was either being modified, or broken for other reasons; only releases are absolutely guaranteed to be buildable, although FreeBSD-STABLE builds fine the majority of the time. If you have not already done so, try re-fetching the source tree and see if the problem goes away. Try using a different server in case the one you are using is having problems. How can I verify which scheduler is in use on a running system? If you are running &os; version 5.2.1 or earlier, check for the existence of the kern.quantum sysctl. If you have it, you should see something like this: &prompt.user; sysctl kern.quantum kern.sched.quantum: 99960 If the kern.quantum sysctl exists, you are using the 4BSD scheduler. If not, you will get an error printed by &man.sysctl.8; (which you can safely ignore): &prompt.user; sysctl kern.sched.quantum sysctl: unknown oid 'kern.sched.quantum' In &os; version 5.3-RELEASE and later, the name of the scheduler currently being used is directly available as the value of the kern.sched.name sysctl: &prompt.user; sysctl kern.sched.name kern.sched.name: 4BSD What is kern.quantum? kern.quantum is the maximum number of ticks a process can run without being preempted. It is specific to the 4BSD scheduler, so you can use its presence or absence to determine which scheduler is in use. In &os; 5.X or later kern.quantum has been renamed to kern.sched.quantum. What is kern.sched.quantum? See Δίσκοι, Συστήματα Αρχείων και Φορτωτές Εκκίνησης How can I add my new hard disk to my FreeBSD system? See the Disk Formatting Tutorial at www.FreeBSD.org. How do I move my system over to my huge new disk? The best way is to reinstall the OS on the new disk, then move the user data over. This is highly recommended if you have been tracking -STABLE for more than one release, or have updated a release instead of installing a new one. You can install booteasy on both disks with &man.boot0cfg.8;, and dual boot them until you are happy with the new configuration. Skip the next paragraph to find out how to move the data after doing this. Should you decide not to do a fresh install, you need to partition and label the new disk with either /stand/sysinstall, or &man.fdisk.8; and &man.disklabel.8;. You should also install booteasy on both disks with &man.boot0cfg.8;, so that you can dual boot to the old or new system after the copying is done. See the formatting-media article for details on this process. Now you have the new disk set up, and are ready to move the data. Unfortunately, you cannot just blindly copy the data. Things like device files (in /dev), flags, and links tend to screw that up. You need to use tools that understand these things, which means &man.dump.8;. Although it is suggested that you move the data in single user mode, it is not required. You should never use anything but &man.dump.8; and &man.restore.8; to move the root filesystem. The &man.tar.1; command may work - then again, it may not. You should also use &man.dump.8; and &man.restore.8; if you are moving a single partition to another empty partition. The sequence of steps to use dump to move a partitions data to a new partition is: newfs the new partition. mount it on a temporary mount point. cd to that directory. dump the old partition, piping output to the new one. For example, if you are going to move root to /dev/ad1s1a, with /mnt as the temporary mount point, it is: &prompt.root; newfs /dev/ad1s1a &prompt.root; mount /dev/ad1s1a /mnt &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore xf - Rearranging your partitions with dump takes a bit more work. To merge a partition like /var into its parent, create the new partition large enough for both, move the parent partition as described above, then move the child partition into the empty directory that the first move created: &prompt.root; newfs /dev/ad1s1a &prompt.root; mount /dev/ad1s1a /mnt &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore xf - &prompt.root; cd var &prompt.root; dump 0af - /var | restore xf - To split a directory from its parent, say putting /var on its own partition when it was not before, create both partitions, then mount the child partition on the appropriate directory in the temporary mount point, then move the old single partition: &prompt.root; newfs /dev/ad1s1a &prompt.root; newfs /dev/ad1s1d &prompt.root; mount /dev/ad1s1a /mnt &prompt.root; mkdir /mnt/var &prompt.root; mount /dev/ad1s1d /mnt/var &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore xf - You might prefer &man.cpio.1;, &man.pax.1;, &man.tar.1; to &man.dump.8; for user data. At the time of this writing, these are known to lose file flag information, so use them with caution. Will a dangerously dedicated disk endanger my health? The installation procedure allows you to chose two different methods in partitioning your hard disk(s). The default way makes it compatible with other operating systems on the same machine, by using fdisk table entries (called slices in FreeBSD), with a FreeBSD slice that employs partitions of its own. Optionally, one can chose to install a boot-selector to switch between the possible operating systems on the disk(s). The alternative uses the entire disk for FreeBSD, and makes no attempt to be compatible with other operating systems. So why it is called dangerous? A disk in this mode does not contain what normal PC utilities would consider a valid fdisk table. Depending on how well they have been designed, they might complain at you once they are getting in contact with such a disk, or even worse, they might damage the BSD bootstrap without even asking or notifying you. In addition, the dangerously dedicated disk's layout is known to confuse many BIOSes, including those from AWARD (e.g. as found in HP Netserver and Micronics systems as well as many others) and Symbios/NCR (for the popular 53C8xx range of SCSI controllers). This is not a complete list, there are more. Symptoms of this confusion include the read error message printed by the FreeBSD bootstrap when it cannot find itself, as well as system lockups when booting. Why have this mode at all then? It only saves a few kbytes of disk space, and it can cause real problems for a new installation. Dangerously dedicated mode's origins lie in a desire to avoid one of the most common problems plaguing new FreeBSD installers - matching the BIOS geometry numbers for a disk to the disk itself. Geometry is an outdated concept, but one still at the heart of the PC's BIOS and its interaction with disks. When the FreeBSD installer creates slices, it has to record the location of these slices on the disk in a fashion that corresponds with the way the BIOS expects to find them. If it gets it wrong, you will not be able to boot. Dangerously dedicated mode tries to work around this by making the problem simpler. In some cases, it gets it right. But it is meant to be used as a last-ditch alternative - there are better ways to solve the problem 99 times out of 100. So, how do you avoid the need for DD mode when you are installing? Start by making a note of the geometry that your BIOS claims to be using for your disks. You can arrange to have the kernel print this as it boots by specifying at the boot: prompt, or using boot -v in the loader. Just before the installer starts, the kernel will print a list of BIOS geometries. Do not panic - wait for the installer to start and then use scrollback to read the numbers. Typically the BIOS disk units will be in the same order that FreeBSD lists your disks, first IDE, then SCSI. When you are slicing up your disk, check that the disk geometry displayed in the FDISK screen is correct (ie. it matches the BIOS numbers); if it is wrong, use the g key to fix it. You may have to do this if there is absolutely nothing on the disk, or if the disk has been moved from another system. Note that this is only an issue with the disk that you are going to boot from; FreeBSD will sort itself out just fine with any other disks you may have. Once you have got the BIOS and FreeBSD agreeing about the geometry of the disk, your problems are almost guaranteed to be over, and with no need for DD mode at all. If, however, you are still greeted with the dreaded read error message when you try to boot, it is time to cross your fingers and go for it - there is nothing left to lose. To return a dangerously dedicated disk for normal PC use, there are basically two options. The first is, you write enough NULL bytes over the MBR to make any subsequent installation believe this to be a blank disk. You can do this for example with &prompt.root; dd if=/dev/zero of=/dev/rda0 count=15 Alternatively, the undocumented DOS feature C:\> fdisk /mbr will to install a new master boot record as well, thus clobbering the BSD bootstrap. Which partitions can safely use Soft Updates? I have heard that Soft Updates on / can cause problems. Short answer: you can usually use Soft Updates safely on all partitions. Long answer: There used to be some concern over using Soft Updates on the root partition. Soft Updates has two characteristics that caused this. First, a Soft Updates partition has a small chance of losing data during a system crash. (The partition will not be corrupted; the data will simply be lost.) Also, Soft Updates can cause temporary space shortages. When using Soft Updates, the kernel can take up to thirty seconds to actually write changes to the physical disk. If you delete a large file, the file still resides on disk until the kernel actually performs the deletion. This can cause a very simple race condition. Suppose you delete one large file and immediately create another large file. The first large file is not yet actually removed from the physical disk, so the disk might not have enough room for the second large file. You get an error that the partition does not have enough space, although you know perfectly well that you just released a large chunk of space! When you try again mere seconds later, the file creation works as you expect. This has left more than one user scratching his head and doubting his sanity, the FreeBSD filesystem, or both. If a system should crash after the kernel accepts a chunk of data for writing to disk, but before that data is actually written out, data could be lost or corrupted. This risk is extremely small, but generally manageable. Use of IDE write caching greatly increases this risk; it is strongly recommended that you disable IDE write caching when using Soft Updates. These issues affect all partitions using Soft Updates. So, what does this mean for the root partition? Vital information on the root partition changes very rarely. Files such as /kernel and the contents of /etc only change during system maintenance, or when users change their passwords. If the system crashed during the thirty-second window after such a change is made, it is possible that data could be lost. This risk is negligible for most applications, but you should be aware that it exists. If your system cannot tolerate this much risk, do not use Soft Updates on the root filesystem! / is traditionally one of the smallest partitions. By default, FreeBSD puts the /tmp directory on /. If you have a busy /tmp, you might see intermittent space problems. Symlinking /tmp to /var/tmp will solve this problem. What is inappropriate about my ccd? The symptom of this is: &prompt.root; ccdconfig -C ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format This usually happens when you are trying to concatenate the c partitions, which default to type unused. The ccd driver requires the underlying partition type to be FS_BSDFFS. Edit the disklabel of the disks you are trying to concatenate and change the types of partitions to 4.2BSD. Why can I not edit the disklabel on my ccd? The symptom of this is: &prompt.root; disklabel ccd0 (it prints something sensible here, so let us try to edit it) &prompt.root; disklabel -e ccd0 (edit, save, quit) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label This is because the disklabel returned by ccd is actually a fake one that is not really on the disk. You can solve this problem by writing it back explicitly, as in: &prompt.root; disklabel ccd0 > /tmp/disklabel.tmp &prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp &prompt.root; disklabel -e ccd0 (this will work now) Can I mount other foreign filesystems under FreeBSD? FreeBSD supports a variety of other filesystems. Digital UNIX UFS CDROMs can be mounted directly on FreeBSD. Mounting disk partitions from Digital UNIX and other systems that support UFS may be more complex, depending on the details of the disk partitioning for the operating system in question. &linux; FreeBSD supports ext2fs partitions. See &man.mount.ext2fs.8; for more information. &windowsnt; FreeBSD includes a read-only NTFS driver. For more information, see &man.mount.ntfs.8;. FAT FreeBSD includes a read-write FAT driver. For more information, see &man.mount.msdosfs.8;. ReiserFS FreeBSD includes a read-only ReiserFS driver. For more information, see &man.mount.reiserfs.8;. FreeBSD also supports network filesystems such as NFS (see &man.mount.nfs.8;), NetWare (see &man.mount.nwfs.8;), and Microsoft-style SMB filesystems (see &man.mount.smbfs.8;). How do I mount a secondary DOS partition? The secondary DOS partitions are found after ALL the primary partitions. For example, if you have an E partition as the second DOS partition on the second SCSI drive, you need to create the special files for slice 5 in /dev, then mount /dev/da1s5: &prompt.root; cd /dev &prompt.root; sh MAKEDEV da1s5 &prompt.root; mount -t msdos /dev/da1s5 /dos/e You can omit this step if you are running FreeBSD 5.0-RELEASE or newer with &man.devfs.5; enabled. Is there a cryptographic filesystem for &os;? Yes. FreeBSD 5.0 includes &man.gbde.8;, and FreeBSD 6.0 added &man.geli.8;. For earlier releases, see the security/cfs port. How can I use the &windowsnt; loader to boot FreeBSD? The general idea is that you copy the first sector of your native root FreeBSD partition into a file in the DOS/&windowsnt; partition. Assuming you name that file something like c:\bootsect.bsd (inspired by c:\bootsect.dos), you can then edit the c:\boot.ini file to come up with something like this: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS" If FreeBSD is installed on the same disk as the &windowsnt; boot partition simply copy /boot/boot1 to C:\BOOTSECT.BSD. However, if FreeBSD is installed on a different disk /boot/boot1 will not work, /boot/boot0 is needed. /boot/boot0 needs to be installed using sysinstall by selecting the FreeBSD boot manager on the screen which asks if you wish to use a boot manager. This is because /boot/boot0 has the partition table area filled with NULL characters but sysinstall copies the partition table before copying /boot/boot0 to the MBR. Do not simply copy /boot/boot0 instead of /boot/boot1; you will overwrite your partition table and render your computer un-bootable! When the FreeBSD boot manager runs it records the last OS booted by setting the active flag on the partition table entry for that OS and then writes the whole 512-bytes of itself back to the MBR so if you just copy /boot/boot0 to C:\BOOTSECT.BSD then it writes an empty partition table, with the active flag set on one entry, to the MBR. How do I boot FreeBSD and &linux; from LILO? If you have FreeBSD and &linux; on the same disk, just follow LILO's installation instructions for booting a non-&linux; operating system. Very briefly, these are: Boot &linux;, and add the following lines to /etc/lilo.conf: other=/dev/hda2 table=/dev/hda label=FreeBSD (the above assumes that your FreeBSD slice is known to &linux; as /dev/hda2; tailor to suit your setup). Then, run lilo as root and you should be done. If FreeBSD resides on another disk, you need to add loader=/boot/chain.b to the LILO entry. For example: other=/dev/dab4 table=/dev/dab loader=/boot/chain.b label=FreeBSD In some cases you may need to specify the BIOS drive number to the FreeBSD boot loader to successfully boot off the second disk. For example, if your FreeBSD SCSI disk is probed by BIOS as BIOS disk 1, at the FreeBSD boot loader prompt you need to specify: Boot: 1:da(0,a)/kernel You can configure &man.boot.8; to automatically do this for you at boot time. The &linux;+FreeBSD mini-HOWTO is a good reference for FreeBSD and &linux; interoperability issues. How do I boot &os; and &linux; using GRUB Booting &os; using GRUB is very simple. Just add the following to your configuration file /boot/grub/grub.conf. title FreeBSD 6.1 root (hd0,a) kernel /boot/loader Where hd0,a points to your root partition on the first disk. If you need to specify which slice number should be used, use something like this (hd0,2,a). By default, if the slice number is omitted, GRUB searches the first slice which has 'a' partition. How do I boot FreeBSD and &linux; using BootEasy? Install LILO at the start of your &linux; boot partition instead of in the Master Boot Record. You can then boot LILO from BootEasy. If you are running &windows; 95 and &linux; this is recommended anyway, to make it simpler to get &linux; booting again if you should need to reinstall &windows; 95 (which is a Jealous Operating System, and will bear no other Operating Systems in the Master Boot Record). How do I change the boot prompt from ??? to something more meaningful? You can not do that with the standard boot manager without rewriting it. There are a number of other boot managers in the sysutils ports category that provide this functionality. I have a new removable drive, how do I use it? Whether it is a removable drive like a &iomegazip; or an EZ drive (or even a floppy, if you want to use it that way), or a new hard disk, once it is installed and recognized by the system, and you have your cartridge/floppy/whatever slotted in, things are pretty much the same for all devices. (this section is based on Mark Mayo's ZIP FAQ) If it is a ZIP drive or a floppy, you have already got a DOS filesystem on it, you can use a command like this: &prompt.root; mount -t msdos /dev/fd0c /floppy if it is a floppy, or this: &prompt.root; mount -t msdos /dev/da2s4 /zip for a ZIP disk with the factory configuration. For other disks, see how they are laid out using &man.fdisk.8; or &man.sysinstall.8;. The rest of the examples will be for a ZIP drive on da2, the third SCSI disk. Unless it is a floppy, or a removable you plan on sharing with other people, it is probably a better idea to stick a BSD filesystem on it. You will get long filename support, at least a 2X improvement in performance, and a lot more stability. First, you need to redo the DOS-level partitions/filesystems. You can either use &man.fdisk.8; or /stand/sysinstall, or for a small drive that you do not want to bother with multiple operating system support on, just blow away the whole FAT partition table (slices) and just use the BSD partitioning: &prompt.root; dd if=/dev/zero of=/dev/rda2 count=2 &prompt.root; disklabel -Brw da2 auto You can use disklabel or /stand/sysinstall to create multiple BSD partitions. You will certainly want to do this if you are adding swap space on a fixed disk, but it is probably irrelevant on a removable drive like a ZIP. Finally, create a new filesystem, this one is on our ZIP drive using the whole disk: &prompt.root; newfs /dev/rda2c and mount it: &prompt.root; mount /dev/da2c /zip and it is probably a good idea to add a line like this to /etc/fstab (see &man.fstab.5;) so you can just type mount /zip in the future: /dev/da2c /zip ffs rw,noauto 0 0 Why do I get Incorrect super block when mounting a CDROM? You have to tell &man.mount.8; the type of the device that you want to mount. This is described in the Handbook section on optical media, specifically the section Using Data CDs. Why do I get Device not configured when mounting a CDROM? This generally means that there is no CDROM in the CDROM drive, or the drive is not visible on the bus. Please see the Using Data CDs section of the Handbook for a detailed discussion of this issue. Why do all non-English characters in filenames show up as ? on my CDs when mounted in FreeBSD? Your CDROM probably uses the Joliet extension for storing information about files and directories. This is discussed in the Handbook chapter on creating and using CDROMs, specifically the section on Using Data CDROMs. I burned a CD under FreeBSD and now I can not read it under any other operating system. Why? You most likely burned a raw file to your CD, rather than creating an ISO 9660 filesystem. Take a look at the Handbook chapter on creating CDROMs, particularly the section on burning raw data CDs. How can I create an image of a data CD? This is discussed in the Handbook section on duplicating data CDs. For more on working with CDROMs, see the Creating CDs Section in the Storage chapter in the Handbook. Why can I not mount an audio CD? If you try to mount an audio CD, you will get an error like cd9660: /dev/acd0c: Invalid argument. This is because mount only works on filesystems. Audio CDs do not have filesystems; they just have data. You need a program that reads audio CDs, such as the audio/xmcd port. How do I mount a multi-session CD? By default, &man.mount.8; will attempt to mount the last data track (session) of a CD. If you would like to load an earlier session, you must use the command line argument. Please see &man.mount.cd9660.8; for specific examples. How do I let ordinary users mount floppies, CDROMs and other removable media? Ordinary users can be permitted to mount devices. Here is how: As root set the sysctl variable vfs.usermount to 1. &prompt.root; sysctl -w vfs.usermount=1 As root assign the appropriate permissions to the block device associated with the removable media. For example, to allow users to mount the first floppy drive, use: &prompt.root; chmod 666 /dev/fd0 To allow users in the group operator to mount the CDROM drive, use: &prompt.root; chgrp operator /dev/acd0c &prompt.root; chmod 640 /dev/acd0c If you are running &os; 5.X or later, you will need to alter /etc/devfs.conf to make these changes permanent across reboots. As root, add the necessary lines to /etc/devfs.conf. For example, to allow users to mount the first floppy drive add: # Allow all users to mount the floppy disk. own /dev/fd0 root:operator perm /dev/fd0 0666 To allow users in the group operator to mount the CD-ROM drive add: # Allow members of the group operator to mount CD-ROMs. own /dev/acd0 root:operator perm /dev/acd0 0660 Finally, add the line vfs.usermount=1 to the file /etc/sysctl.conf so that it is reset at system boot time. All users can now mount the floppy /dev/fd0 onto a directory that they own: &prompt.user; mkdir ~/my-mount-point &prompt.user; mount -t msdos /dev/fd0 ~/my-mount-point Users in group operator can now mount the CDROM /dev/acd0c onto a directory that they own: &prompt.user; mkdir ~/my-mount-point &prompt.user; mount -t cd9660 /dev/acd0c ~/my-mount-point Unmounting the device is simple: &prompt.user; umount ~/my-mount-point Enabling vfs.usermount, however, has negative security implications. A better way to access &ms-dos; formatted media is to use the emulators/mtools package in the ports collection. The device name used in the previous examples must be changed according to your configuration. The du and df commands show different amounts of disk space available. What is going on? You need to understand what du and df really do. du goes through the directory tree, measures how large each file is, and presents the totals. df just asks the filesystem how much space it has left. They seem to be the same thing, but a file without a directory entry will affect df but not du. When a program is using a file, and you delete the file, the file is not really removed from the filesystem until the program stops using it. The file is immediately deleted from the directory listing, however. You can see this easily enough with a program such as more. Assume you have a file large enough that its presence affects the output of du and df. (Since disks can be so large today, this might be a very large file!) If you delete this file while using more on it, more does not immediately choke and complain that it cannot view the file. The entry is simply removed from the directory so no other program or user can access it. du shows that it is gone — it has walked the directory tree and the file is not listed. df shows that it is still there, as the filesystem knows that more is still using that space. Once you end the more session, du and df will agree. Note that Soft Updates can delay the freeing of disk space; you might need to wait up to 30 seconds for the change to be visible! This situation is common on web servers. Many people set up a FreeBSD web server and forget to rotate the log files. The access log fills up /var. The new administrator deletes the file, but the system still complains that the partition is full. Stopping and restarting the web server program would free the file, allowing the system to release the disk space. To prevent this from happening, set up &man.newsyslog.8;. How can I add more swap space? In the Configuration and Tuning section of the Handbook, you will find a section describing how to do this. Why does &os; see my disk as smaller than the manufacturer says it is? Disk manufacturers calculate gigabytes as a billion bytes each, whereas &os; calculates them as 1,073,741,824 bytes each. This explains why, for example, &os;'s boot messages will report a disk that supposedly has 80GB as holding 76319MB. Also note that &os; will (by default) reserve 8% of the disk space. How is it possible for a partition to be more than 100% full? A portion of each UFS partition (8%, by default) is reserved for use by the operating system and the root user. &man.df.1; does not count that space when calculating the Capacity column, so it can exceed 100%. Also, you will notice that the Blocks column is always greater than the sum of the Used and Avail columns, usually by a factor of 8%. For more details, look up the option in &man.tunefs.8;. Διαχείριση Συστήματος Where are the system start-up configuration files? The primary configuration file is /etc/defaults/rc.conf (see &man.rc.conf.5;) System startup scripts such as /etc/rc and /etc/rc.d (see &man.rc.8;) just include this file. Do not edit this file! Instead, if there is any entry in /etc/defaults/rc.conf that you want to change, you should copy the line into /etc/rc.conf and change it there. For example, if you wish to start named, the included DNS server, all you need to do is: &prompt.root; echo named_enable="YES" >> /etc/rc.conf To start up local services, place shell scripts in the /usr/local/etc/rc.d directory. These shell scripts should be set executable, and end with a .sh. How do I add a user easily? Use the &man.adduser.8; command, or the &man.pw.8; command for more complicated situations. To remove the user, use the &man.rmuser.8; command or, if necessary, &man.pw.8;. Why do I keep getting messages like root: not found after editing my crontab file? This is normally caused by editing the system crontab (/etc/crontab) and then using &man.crontab.1; to install it: &prompt.root; crontab /etc/crontab This is not the correct way to do things. The system crontab has a different format to the per-user crontabs which &man.crontab.1; updates (the &man.crontab.5; manual page explains the differences in more detail). If this is what you did, the extra crontab is simply a copy of /etc/crontab in the wrong format it. Delete it with the command: &prompt.root; crontab -r Next time, when you edit /etc/crontab, you should not do anything to inform &man.cron.8; of the changes, since it will notice them automatically. If you want something to be run once per day, week, or month, it is probably better to add shell scripts /usr/local/etc/periodic, and let the &man.periodic.8; command run from the system cron schedule it with the other periodic system tasks. The actual reason for the error is that the system crontab has an extra field, specifying which user to run the command as. In the default system crontab provided with FreeBSD, this is root for all entries. When this crontab is used as the root user's crontab (which is not the same as the system crontab), &man.cron.8; assumes the string root is the first word of the command to execute, but no such command exists. Why do I get the error, you are not in the correct group to su root when I try to su to root? This is a security feature. In order to su to root (or any other account with superuser privileges), you must be in the wheel group. If this feature were not there, anybody with an account on a system who also found out root's password would be able to gain superuser level access to the system. With this feature, this is not strictly true; &man.su.1; will prevent them from even trying to enter the password if they are not in wheel. To allow someone to su to root, simply put them in the wheel group. I made a mistake in rc.conf, or another startup file, and now I cannot edit it because the filesystem is read-only. What should I do? When you get the prompt to enter the shell pathname, simply press ENTER, and run mount / to re-mount the root filesystem in read/write mode. You may also need to run mount -a -t ufs to mount the filesystem where your favorite editor is defined. If your favorite editor is on a network filesystem, you will need to either configure the network manually before you can mount network filesystems, or use an editor which resides on a local filesystem, such as &man.ed.1;. If you intend to use a full screen editor such as &man.vi.1; or &man.emacs.1;, you may also need to run export TERM=cons25 so that these editors can load the correct data from the &man.termcap.5; database. Once you have performed these steps, you can edit /etc/rc.conf as you usually would to fix the syntax error. The error message displayed immediately after the kernel boot messages should tell you the number of the line in the file which is at fault. Why am I having trouble setting up my printer? Please have a look at the Handbook entry on printing. It should cover most of your problem. See the Handbook entry on printing. Some printers require a host-based driver to do any kind of printing. These so-called WinPrinters are not natively supported by FreeBSD. If your printer does not work in DOS or &windowsnt; 4.0, it is probably a WinPrinter. Your only hope of getting one of these to work is to check if the print/pnm2ppa port supports it. How can I correct the keyboard mappings for my system? Please see the Handbook section on using localization, specifically the section on console setup. Why do I get messages like: unknown: <PNP0303> can't assign resources on boot? The following is an excerpt from a post to the freebsd-current mailing list.
&a.wollman;, 24 April 2001 The can't assign resources messages indicate that the devices are legacy ISA devices for which a non-PnP-aware driver is compiled into the kernel. These include devices such as keyboard controllers, the programmable interrupt controller chip, and several other bits of standard infrastructure. The resources cannot be assigned because there is already a driver using those addresses.
Why can I not get user quotas to work properly? It is possible that your kernel is not configured to use quotas. If this is the case, you will need to add the following line to your kernel configuration file and recompile: options QUOTA Please read the Handbook entry on quotas for full details. Do not turn on quotas on /. Put the quota file on the filesystem that the quotas are to be enforced on, i.e.: Filesystem Quota file /usr /usr/admin/quotas /home /home/admin/quotas Does FreeBSD support System V IPC primitives? Yes, FreeBSD supports System V-style IPC, including shared memory, messages and semaphores, in the GENERIC kernel. In a custom kernel, enable this support by adding the following lines to your kernel config. options SYSVSHM # enable shared memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging Recompile and install your kernel. What other mail-server software can I use instead of Sendmail? Sendmail is the default mail-server software for FreeBSD, but you can easily replace it with one of the other MTA (for instance, an MTA installed from the ports). There are various alternative MTAs in the ports tree already, with mail/exim, mail/postfix, mail/qmail, and mail/zmailer being some of the most popular choices. Diversity is nice, and the fact that you have many different mail-servers to chose from is considered a good thing; therefore try to avoid asking questions like Is Sendmail better than Qmail? in the mailing lists. If you do feel like asking, first check the mailing list archives. The advantages and disadvantages of each and every one of the available MTAs have already been discussed a few times. I have forgotten the root password! What do I do? Do not panic! Restart the system, type boot -s at the Boot: prompt to enter Single User mode. At the question about the shell to use, hit ENTER. You will be dropped to a &prompt.root; prompt. Enter mount -u / to remount your root filesystem read/write, then run mount -a to remount all the filesystems. Run passwd root to change the root password then run &man.exit.1; to continue booting. How do I keep ControlAltDelete from rebooting the system? If you are using syscons (the default console driver) build and install a new kernel with the line: options SC_DISABLE_REBOOT in the configuration file. If you use the PCVT console driver, use the following kernel configuration line instead. This can also be done by setting the following sysctl which does not require a reboot or kernel recompile: &prompt.root; sysctl hw.syscons.kbd_reboot=0 options PCVT_CTRL_ALT_DEL How do I reformat DOS text files to &unix; ones? Use this perl command: &prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file ... file is the file(s) to process. The modification is done in-place, with the original file stored with a .bak extension. Alternatively you can use the &man.tr.1; command: &prompt.user; tr -d '\r' < dos-text-file > unix-file dos-text-file is the file containing DOS text while unix-file will contain the converted output. This can be quite a bit faster than using perl. How do I kill processes by name? Use &man.killall.1;. Why is su bugging me about not being in root's ACL? The error comes from the Kerberos distributed authentication system. The problem is not fatal but annoying. You can either run su with the -K option, or uninstall Kerberos as described in the next question. How do I uninstall Kerberos? To remove Kerberos from the system, reinstall the bin distribution for the release you are running. If you have the CDROM, you can mount the cd (we will assume on /cdrom) and run &prompt.root; cd /cdrom/bin &prompt.root; ./install.sh Alternately, you can remove all MAKE_KERBEROS options from /etc/make.conf and rebuild world. What happened to /dev/MAKEDEV? FreeBSD 5.X and beyond use the &man.devfs.8; device-on-demand system. Device drivers automatically create new device nodes as they are needed, obsoleting /dev/MAKEDEV. If you are running FreeBSD 4.X or earlier and /dev/MAKEDEV is missing, then you really do have a problem. Grab a copy from the system source code, probably in /usr/src/etc/MAKEDEV. How do I add pseudoterminals to the system? If you have lots of telnet, ssh, X, or screen users, you will probably run out of pseudoterminals. Here is how to add more: Build and install a new kernel with the line pseudo-device pty 256 in the configuration file. Run the commands &prompt.root; cd /dev &prompt.root; sh MAKEDEV pty{1,2,3,4,5,6,7} to make 256 device nodes for the new terminals. Edit /etc/ttys and add lines for each of the 256 terminals. They should match the form of the existing entries, i.e. they look like ttyqc none network The order of the letter designations is tty[pqrsPQRS][0-9a-v], using a regular expression. Reboot the system with the new kernel and you are ready to go. Why can I not create the snd0 device? There is no snd device. The name is used as a shorthand for the various devices that make up the FreeBSD sound driver, such as mixer, sequencer, and dsp. To create these devices you should &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 You can omit this step if you are running FreeBSD 5.0-RELEASE or newer with &man.devfs.5; enabled. How do I re-read /etc/rc.conf and re-start /etc/rc without a reboot? Go into single user mode and then back to multi user mode. On the console do: &prompt.root; shutdown now (Note: without -r or -h) &prompt.root; return &prompt.root; exit I tried to update my system to the latest -STABLE, but got -BETAx, -RC or -PRERELEASE! What is going on? Short answer: it is just a name. RC stands for Release Candidate. It signifies that a release is imminent. In FreeBSD, -PRERELEASE is typically synonymous with the code freeze before a release. (For some releases, the -BETA label was used in the same way as -PRERELEASE.) Long answer: FreeBSD derives its releases from one of two places. Major, dot-zero, releases, such as 4.0-RELEASE and 5.0-RELEASE, are branched from the head of the development stream, commonly referred to as -CURRENT. Minor releases, such as 4.1-RELEASE or 5.2-RELEASE, have been snapshots of the active -STABLE branch. Starting with 4.3-RELEASE, each release also now has its own branch which can be tracked by people requiring an extremely conservative rate of development (typically only security advisories). When a release is about to be made, the branch from which it will be derived from has to undergo a certain process. Part of this process is a code freeze. When a code freeze is initiated, the name of the branch is changed to reflect that it is about to become a release. For example, if the branch used to be called 4.5-STABLE, its name will be changed to 4.6-PRERELEASE to signify the code freeze and signify that extra pre-release testing should be happening. Bug fixes can still be committed to be part of the release. When the source code is in shape for the release the name will be changed to 4.6-RC to signify that a release is about to be made from it. Once in the RC stage, only the most critical bugs found can be fixed. Once the release (4.6-RELEASE in this example) and release branch have been made, the branch will be renamed to 4.6-STABLE. For more information on version numbers and the various CVS branches, refer to the Release Engineering article. I tried to install a new kernel, and the chflags failed. How do I get around this? Short answer: You are probably at security level greater than 0. Reboot directly to single user mode to install the kernel. Long answer: FreeBSD disallows changing system flags at security levels greater than 0. You can check your security level with the command: &prompt.root; sysctl kern.securelevel You cannot lower the security level; you have to boot to single mode to install the kernel, or change the security level in /etc/rc.conf then reboot. See the &man.init.8; manual page for details on securelevel, and see /etc/defaults/rc.conf and the &man.rc.conf.5; manual page for more information on rc.conf. I cannot change the time on my system by more than one second! How do I get around this? Short answer: You are probably at security level greater than 1. Reboot directly to single user mode to change the date. Long answer: FreeBSD disallows changing the time by more that one second at security levels greater than 1. You can check your security level with the command: &prompt.root; sysctl kern.securelevel You cannot lower the security level; you have to boot to single mode to change the date, or change the security level in /etc/rc.conf then reboot. See the &man.init.8; manual page for details on securelevel, and see /etc/defaults/rc.conf and the &man.rc.conf.5; manual page for more information on rc.conf. Why is rpc.statd using 256 megabytes of memory? No, there is no memory leak, and it is not using 256 Mbytes of memory. For convenience, rpc.statd maps an obscene amount of memory into its address space. There is nothing terribly wrong with this from a technical standpoint; it just throws off things like &man.top.1; and &man.ps.1;. &man.rpc.statd.8; maps its status file (resident on /var) into its address space; to save worrying about remapping it later when it needs to grow, it maps it with a generous size. This is very evident from the source code, where one can see that the length argument to &man.mmap.2; is 0x10000000, or one sixteenth of the address space on an IA32, or exactly 256MB. Why can I not unset the schg file flag? You are running at an elevated (i.e., greater than 0) securelevel. Lower the securelevel and try again. For more information, see the FAQ entry on securelevel and the &man.init.8; manual page. Why does SSH authentication through .shosts not work by default in recent versions of FreeBSD? The reason why .shosts authentication does not work by default in more recent versions of FreeBSD is because &man.ssh.1; is not installed suid root by default. To fix this, you can do one of the following: As a permanent fix, set ENABLE_SUID_SSH to true in /etc/make.conf and rebuild ssh (or run make world). As a temporary fix, change the mode on /usr/bin/ssh to 4555 by running chmod 4555 /usr/bin/ssh as root. Then add ENABLE_SUID_SSH= true to /etc/make.conf so the change takes effect the next time make world is run. What is vnlru? vnlru flushes and frees vnodes when the system hits the kern.maxvnodes limit. This kernel thread sits mostly idle, and only activates if you have a huge amount of RAM and are accessing tens of thousands of tiny files. What do the various memory states displayed by top mean? Active: pages recently statistically used. Inactive: pages recently statistically unused. Cache: (most often) pages that have percolated from inactive to a status where they maintain their data, but can often be immediately reused (either with their old association, or reused with a new association.) There can be certain immediate transitions from active to cache state if the page is known to be clean (unmodified), but that transition is a matter of policy, depending upon the algorithm choice of the VM system maintainer. Free: pages without data content, and can be immediately used in certain circumstances where cache pages might be ineligible. Free pages can be reused at interrupt or process state. Wired: pages that are fixed into memory, usually for kernel purposes, but also sometimes for special use in processes. Pages are most often written to disk (sort of a VM sync) when they are in the inactive state, but active pages can also be synced (but requires the availability of certain CPU features.) This depends upon the CPU tracking of the modified bit being available, and in certain situations there can be an advantage for a block of VM pages to be synced, whether they are active or inactive. In most common cases, it is best to think of the inactive queue to be a queue of relatively unused pages that might or might not be in the process of being written to disk. Cached pages are already synced, not mapped, but available for immediate process use with their old association or with a new association. Free pages are available at interrupt level, but cached or free pages can be used at process state for reuse. Cache pages are not adequately locked to be available at interrupt level. There are some other flags (e.g., busy flag or busy count) that might modify some of the rules that I described. How much free memory is available? There are a couple of kinds of free memory. One kind is the amount of memory immediately available without paging anything else out. That is approximately the size of cache queue + size of free queue (with a derating factor, depending upon system tuning.) Another kind of free memory is the total amount of VM space. That can be complex, but is dependent upon the amount of swap space and memory. Other kinds of free memory descriptions are also possible, but it is relatively useless to define these, but rather it is important to make sure that the paging rate is kept low, and to avoid running out of swap space. What is /var/empty? I can not delete it! /var/empty is a directory that the &man.sshd.8; program uses when performing privilege separation. The /var/empty directory is empty, owned by root and has the schg flag set. Although it is not recommended to delete this directory, to do so you will need to unset the schg flag first. See the &man.chflags.1; manual page for more information (and bear in mind the answer to the question on unsetting the schg flag).
Το Σύστημα X Windows και οι Εικονικές Κονσόλες What is the X Window System? The X Window System (commonly X11) is the most widely available windowing system capable of running on &unix; or &unix; like systems, including &os;. The X.Org Foundation administers the X protocol standards, with the current reference implementation, version 11 release &xorg.version;, so you will often see references shortened to X11. Many implementations are available for different architectures and operating systems. An implementation of the server-side code is properly known as an X server. Which X implementations are available for &os;? Historically, the default implementation of X on &os; has been &xfree86; which is maintained by The XFree86 Project, Inc. This software was installed by default on &os; versions up until 4.10 and 5.2. Although &xorg; itself maintained an implementation during that time period, it was basically only provided as a reference platform, as it had suffered greatly from bitrot over the years. However, early in 2004, some XFree86 developers left that project over issues including the pace of code changes, future directions, and interpersonal conflicts, and are now contributing code directly to &xorg; instead. At that time, &xorg; updated its source tree to the last &xfree86; release before its subsequent licensing change (XFree86 version 4.3.99.903), incorporated many changes that had previously been maintained separately, and has released that software as X11R6.7.0. A separate but related project, freedesktop.org (or fd.o for short), is working on rearchitecting the original &xfree86; code to offload more work onto the graphics cards (with the goal of increased performance) and make it more modular (with the goal of increased maintainability, and thus faster releases as well as easier configuration). &xorg; intends to incorporate the freedesktop.org changes in its future releases. As of July 2004, in &os.current;, &xfree86; has been replaced with &xorg; as the default implementation. The &xfree86; ports (x11/XFree86-4 and subports) remain in the ports collection. But &xorg; is the default X11 implementation for &os; 5.3 and later. For further information, read the X11 section of the FreeBSD Handbook. The above describes the default X implementation installed. It is still possible to install either implementation by following the instructions in the entry for 20040723 in /usr/ports/UPDATING. It is not currently possible to mix-and-match pieces of each implementation; one must choose one or the other. Will my existing applications run with the &xorg; suite? The &xorg; software is written to the same X11R6 specification that &xfree86; is, so basic applications should work unchanged. A few lesser-used protocols have been deprecated (XIE, PEX, and lbxproxy), but in the first two cases, the &os; port of &xfree86; did not support them either. Why did the X projects split, anyway? The answer to this question is outside the scope of this FAQ. Note that there are voluminous postings in various mailing list archives on the Internet; please use your favorite search engine to investigate the history instead of asking this question on the &os; mailing lists. It may even be the case that only the participants will ever know for certain. Why did &os; choose to go with the &xorg; ports by default? The &xorg; developers claim that their goal is to release more often and incorporate new features more quickly. If they are able to do so, this will be very attractive. Also, their software still uses the traditional X license, while &xfree86; is now using their modified one. This decision is still controversial. Only time will tell which implementation proves technically superior. Each &os; user should decide which they prefer. I want to run X, how do I go about it? If you would like to add X to an existing installation, you should use the x11/xorg meta-port, which will build and install all the necessary components. Then read and follow the documentation on the &man.xorgconfig.1; tool, which assists you in configuring &xorg; for your particular graphics card/mouse/etc. You may also wish to examine the &man.xorgcfg.1; tool, which provides a graphical interface to the X configuration process. For further information, read the X11 section of the FreeBSD Handbook. You may also wish to investigate the Xaccel server. See the section on Xi Graphics for more details. I tried to run X, but I get an KDENABIO failed (Operation not permitted) error when I type startx. What do I do now? Your system is probably running at a raised securelevel. It is not possible to start X at a raised securelevel because X requires write access to /dev/io. For more information, see at the &man.init.8; manual page. So the question is what else you should do instead, and you basically have two choices: set your securelevel back down to zero (usually from /etc/rc.conf), or run &man.xdm.1; at boot time (before the securelevel is raised). See for more information about running &man.xdm.1; at boot time. Why does my mouse not work with X? If you are using syscons (the default console driver), you can configure FreeBSD to support a mouse pointer on each virtual screen. In order to avoid conflicting with X, syscons supports a virtual device called /dev/sysmouse. All mouse events received from the real mouse device are written to the sysmouse device via moused. If you wish to use your mouse on one or more virtual consoles, and use X, see and set up moused. Then edit /etc/X11/xorg.conf and make sure you have the following lines: Section "InputDevice" Option "Protocol" "SysMouse" Option "Device" "/dev/sysmouse" ..... Some people prefer to use /dev/mouse under X. To make this work, /dev/mouse should be linked to /dev/sysmouse (see &man.sysmouse.4;): &prompt.root; cd /dev &prompt.root; rm -f mouse &prompt.root; ln -s sysmouse mouse My mouse has a fancy wheel. Can I use it in X? Yes. You need to tell X that you have a 5 button mouse. To do this, simply add the lines Buttons 5 and ZAxisMapping 4 5 to the InputDevice section of /etc/X11/xorg.conf. For example, you might have the following InputDevice section in /etc/X11/xorg.conf. <quote>InputDevice</quote> Section for Wheeled Mouse in &xorg; configuration file Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection <quote>.emacs</quote> example for naive page scrolling with Wheeled Mouse (optional) ;; wheel mouse (global-set-key [mouse-4] 'scroll-down) (global-set-key [mouse-5] 'scroll-up) How do I use remote X displays? For security reasons, the default setting is to not allow a machine to remotely open a window. To enable this feature, simply start X with the optional argument: &prompt.user; startx -listen_tcp Why do X Window menus and dialog boxes not work right? Try turning off the Num Lock key. If your Num Lock key is on by default at boot-time, you may add the following line in the Keyboard section of the /etc/X11/xorg.conf file. # Let the server do the NumLock processing. This should only be # required when using pre-R6 clients ServerNumLock What is a virtual console and how do I make more? Virtual consoles, put simply, enable you to have several simultaneous sessions on the same machine without doing anything complicated like setting up a network or running X. When the system starts, it will display a login prompt on the monitor after displaying all the boot messages. You can then type in your login name and password and start working (or playing!) on the first virtual console. At some point, you will probably wish to start another session, perhaps to look at documentation for a program you are running or to read your mail while waiting for an FTP transfer to finish. Just do AltF2 (hold down the Alt key and press the F2 key), and you will find a login prompt waiting for you on the second virtual console! When you want to go back to the original session, do AltF1. The default FreeBSD installation has eight virtual consoles enabled. AltF1, AltF2, AltF3, and so on will switch between these virtual consoles. To enable more of them, edit /etc/ttys (see &man.ttys.5;) and add entries for ttyv4 to ttyvc after the comment on Virtual terminals: # Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure ttyvb "/usr/libexec/getty Pc" cons25 on secure Use as many or as few as you want. The more virtual terminals you have, the more resources that are used; this can be important if you have 8MB RAM or less. You may also want to change the secure to insecure. If you want to run an X server you must leave at least one virtual terminal unused (or turned off) for it to use. That is to say that if you want to have a login prompt pop up for all twelve of your Alt-function keys, you are out of luck - you can only do this for eleven of them if you also want to run an X server on the same machine. The easiest way to disable a console is by turning it off. For example, if you had the full 12 terminal allocation mentioned above and you wanted to run X, you would change settings for virtual terminal 12 from: ttyvb "/usr/libexec/getty Pc" cons25 on secure to: ttyvb "/usr/libexec/getty Pc" cons25 off secure If your keyboard has only ten function keys, you would end up with: ttyv9 "/usr/libexec/getty Pc" cons25 off secure ttyva "/usr/libexec/getty Pc" cons25 off secure ttyvb "/usr/libexec/getty Pc" cons25 off secure (You could also just delete these lines.) Next, the easiest (and cleanest) way to activate the virtual consoles is to reboot. However, if you really do not want to reboot, you can just shut down the X Window system and execute (as root): &prompt.root; kill -HUP 1 It is imperative that you completely shut down X Window if it is running, before running this command. If you do not, your system will probably appear to hang/lock up after executing the kill command. How do I access the virtual consoles from X? Use Ctrl Alt Fn to switch back to a virtual console. Ctrl Alt F1 would return you to the first virtual console. Once you are back to a text console, you can then use Alt Fn as normal to move between them. To return to the X session, you must switch to the virtual console running X. If you invoked X from the command line, (e.g., using startx) then the X session will attach to the next unused virtual console, not the text console from which it was invoked. If you have eight active virtual terminals then X will be running on the ninth, and you would use Alt F9 to return. How do I start XDM on boot? There are two schools of thought on how to start &man.xdm.1;. One school starts xdm from /etc/ttys (see &man.ttys.5;) using the supplied example, while the other simply runs xdm from rc.local (see &man.rc.8;) or from a X.sh script in /usr/local/etc/rc.d. Both are equally valid, and one may work in situations where the other does not. In both cases the result is the same: X will pop up a graphical login: prompt. The ttys method has the advantage of documenting which vty X will start on and passing the responsibility of restarting the X server on logout to init. The rc.local method makes it easy to kill xdm if there is a problem starting the X server. If loaded from rc.local, xdm should be started without any arguments (i.e., as a daemon). xdm must start AFTER getty runs, or else getty and xdm will conflict, locking out the console. The best way around this is to have the script sleep 10 seconds or so then launch xdm. If you are to start xdm from /etc/ttys, there still is a chance of conflict between xdm and &man.getty.8;. One way to avoid this is to add the vt number in the /usr/local/lib/X11/xdm/Xservers file. :0 local /usr/local/bin/X vt4 The above example will direct the X server to run in /dev/ttyv3. Note the number is offset by one. The X server counts the vty from one, whereas the FreeBSD kernel numbers the vty from zero. Why do I get Couldn't open console when I run xconsole? If you start X with startx, the permissions on /dev/console will not get changed, resulting in things like xterm -C and xconsole not working. This is because of the way console permissions are set by default. On a multi-user system, one does not necessarily want just any user to be able to write on the system console. For users who are logging directly onto a machine with a VTY, the &man.fbtab.5; file exists to solve such problems. In a nutshell, make sure an uncommented line of the form /dev/ttyv0 0600 /dev/console is in /etc/fbtab (see &man.fbtab.5;) and it will ensure that whomever logs in on /dev/ttyv0 will own the console. Before, I was able to run &xfree86; as a regular user. Why does it now say that I must be root? All X servers need to be run as root in order to get direct access to your video hardware. Older versions of &xfree86; (<= 3.3.6) installed all bundled servers to be automatically run as root (setuid to root). This is obviously a security hazard because X servers are large, complicated programs. Newer versions of &xfree86; do not install the servers setuid to root for just this reason. Obviously, running an X server as the root user is not acceptable, nor a good idea security-wise. There are two ways to be able to use X as a regular user. The first is to use xdm or another display manager (e.g., kdm); the second is to use the Xwrapper. xdm is a daemon that handles graphical logins. It is usually started at boot time, and is responsible for authenticating users and starting their sessions; it is essentially the graphical counterpart of &man.getty.8; and &man.login.1;. For more information on xdm see the &xfree86; documentation, and the the FAQ entry on it. Xwrapper is the X server wrapper; it is a small utility to enable one to manually run an X server while maintaining reasonable safety. It performs some sanity checks on the command line arguments given, and if they pass, runs the appropriate X server. If you do not want to run a display manager for whatever reason, this is for you. If you have installed the complete ports collection, you can find the port in /usr/ports/x11/wrapper. Why does my PS/2 mouse misbehave under X? Your mouse and the mouse driver may have somewhat become out of synchronization. In rare cases the driver may erroneously report synchronization problem and you may see the kernel message: psmintr: out of sync (xxxx != yyyy) and notice that your mouse does not work properly. If this happens, disable the synchronization check code by setting the driver flags for the PS/2 mouse driver to 0x100. Enter UserConfig by giving the option at the boot prompt: boot: -c Then, in the UserConfig command line, type: UserConfig> flags psm0 0x100 UserConfig> quit Why does my PS/2 mouse from MouseSystems not work? There have been some reports that certain model of PS/2 mouse from MouseSystems works only if it is put into the high resolution mode. Otherwise, the mouse cursor may jump to the upper-left corner of the screen every so often. Specify the flags 0x04 to the PS/2 mouse driver to put the mouse into the high resolution mode. Enter UserConfig by giving the option at the boot prompt: boot: -c Then, in the UserConfig command line, type: UserConfig> flags psm0 0x04 UserConfig> quit See the previous section for another possible cause of mouse problems. I want to install different X server. &os; versions prior 5.3 will use the default &xfree86; 4.X, while latter versions will default to &xorg;. If you want to run a different X11 implementation than the default one, add the following line to /etc/make.conf, (if you do not have this file, create it): X_WINDOW_SYSTEM= xorg This variable may be set to xorg, xfree86-4, or xfree86-3. How do I reverse the mouse buttons? Run the command xmodmap -e "pointer = 3 2 1" from your .xinitrc or .xsession. How do I install a splash screen and where do I find them? &os; have a feature to allow the display of splash screens during the boot messages. The splash screens currently must be a 256 color bitmap (*.BMP) or ZSoft PCX (*.PCX) file. In addition, they must have a resolution of 320x200 or less to work on standard VGA adapters. If you compile VESA support into your kernel, then you can use larger bitmaps up to 1024x768. The actual VESA support can either be compiled directly into the kernel with the VESA kernel config option or by loading the VESA kld module during bootup. To use a splash screen, you need to modify the startup files that control the boot process for &os;. You need to create a /boot/loader.rc file that contains the following lines: include /boot/loader.4th start and a /boot/loader.conf that contains the following: splash_bmp_load="YES" bitmap_load="YES" This assumes you are using /boot/splash.bmp for your splash screen. If you would rather use a PCX file, copy it to /boot/splash.pcx, create a /boot/loader.rc as instructed above, and create a /boot/loader.conf that contains: splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx" Now all you need is a splash screen. For that you can surf on over to the gallery at . Can I use the &windows; keys on my keyboard in X? Yes. All you need to do is use &man.xmodmap.1; to define what function you wish them to perform. Assuming all &windows; keyboards are standard then the keycodes for the 3 keys are 115 - &windows; key, between the left-hand Ctrl and Alt keys 116 - &windows; key, to the right of the AltGr key 117 - Menu key, to the left of the right-hand Ctrl key To have the left &windows; key print a comma, try this. &prompt.root; xmodmap -e "keycode 115 = comma" You will probably have to re-start your window manager to see the result. To have the &windows; key-mappings enabled automatically every time you start X either put the xmodmap commands in your ~/.xinitrc file or, preferably, create a file ~/.xmodmaprc and include the xmodmap options, one per line, then add the line xmodmap $HOME/.xmodmaprc to your ~/.xinitrc. For example, you could map the 3 keys to be F13, F14, and F15, respectively. This would make it easy to map them to useful functions within applications or your window manager, as demonstrated further down. To do this put the following in ~/.xmodmaprc. keycode 115 = F13 keycode 116 = F14 keycode 117 = F15 If you use fvwm2, for example, you could map the keys so that F13 iconifies (or de-iconifies) the window the cursor is in, F14 brings the window the cursor is in to the front or, if it is already at the front, pushes it to the back, and F15 pops up the main Workplace (application) menu even if the cursor is not on the desktop, which is useful if you do not have any part of the desktop visible (and the logo on the key matches its functionality). The following entries in ~/.fvwmrc implement the aforementioned setup: Key F13 FTIWS A Iconify Key F14 FTIWS A RaiseLower Key F15 A A Menu Workplace Nop How can I get 3D hardware acceleration for &opengl;? The availability of 3D acceleration depends on the version of &xfree86; or &xorg; that you are using and the type of video chip you have. If you have an NVIDIA chip, you can use the binary drivers provided for FreeBSD on the Drivers section of their website. For other cards with &xfree86;-4 or &xorg;, including the Matrox G200/G400, ATI Rage 128/Radeon, and 3dfx Voodoo 3, 4, 5, and Banshee, information on hardware acceleration is available on the XFree86-4 Direct Rendering on FreeBSD page. Δικτύωση Where can I get information on diskless booting? Diskless booting means that the FreeBSD box is booted over a network, and reads the necessary files from a server instead of its hard disk. For full details, please read the Handbook entry on diskless booting Can a FreeBSD box be used as a dedicated network router? Yes. Please see the Handbook entry on advanced networking, specifically the section on routing and gateways. Can I connect my &windows; box to the Internet via FreeBSD? Typically, people who ask this question have two PCs at home, one with FreeBSD and one with some version of &windows; the idea is to use the FreeBSD box to connect to the Internet and then be able to access the Internet from the &windows; box through the FreeBSD box. This is really just a special case of the previous question and works perfectly well. If you are using dialup to connect to the Internet user-mode &man.ppp.8; contains a option. If you run &man.ppp.8; with the option, set gateway_enable to YES in /etc/rc.conf, and configure your &windows; machine correctly, this should work fine. For more information, please see the &man.ppp.8; manual page or the Handbook entry on user PPP. If you are using kernel-mode PPP or have an Ethernet connection to the Internet, you need to use &man.natd.8;. Please look at the natd section of the Handbook for a tutorial. Does FreeBSD support SLIP and PPP? Yes. See the manual pages for &man.slattach.8;, &man.sliplogin.8;, &man.ppp.8;, and &man.pppd.8;. &man.ppp.8; and &man.pppd.8; provide support for both incoming and outgoing connections, while &man.sliplogin.8; deals exclusively with incoming connections, and &man.slattach.8; deals exclusively with outgoing connections. For more information on how to use these, please see the Handbook chapter on PPP and SLIP. If you only have access to the Internet through a shell account, you may want to have a look at the net/slirp package. It can provide you with (limited) access to services such as ftp and http direct from your local machine. Does FreeBSD support NAT or Masquerading? Yes. If you want to use NAT over a user PPP connection, please see the Handbook entry on user PPP. If you want to use NAT over some other sort of network connection, please look at the natd section of the Handbook. How do I connect two FreeBSD systems over a parallel line using PLIP? Please see the PLIP section of the Handbook. Why can I not create a /dev/ed0 device? Because they are not necessary. In the Berkeley networking framework, network interfaces are only directly accessible by kernel code. Please see the /etc/rc.network file and the manual pages for the various network programs mentioned there for more information. If this leaves you totally confused, then you should pick up a book describing network administration on another BSD-related operating system; with few significant exceptions, administering networking on FreeBSD is basically the same as on &sunos; 4.0 or Ultrix. How can I set up Ethernet aliases? If the alias is on the same subnet as an address already configured on the interface, then add netmask 0xffffffff to your &man.ifconfig.8; command-line, as in the following: &prompt.root; ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff Otherwise, just specify the network address and netmask as usual: &prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00 How do I get my 3C503 to use the other network port? If you want to use the other ports, you will have to specify an additional parameter on the &man.ifconfig.8; command line. The default port is link0. To use the AUI port instead of the BNC one, use link2. These flags should be specified using the ifconfig_* variables in /etc/rc.conf (see &man.rc.conf.5;). Why am I having trouble with NFS and FreeBSD? Certain PC network cards are better than others (to put it mildly) and can sometimes cause problems with network intensive applications like NFS. See the Handbook entry on NFS for more information on this topic. Why can I not NFS-mount from a &linux; box? Some versions of the &linux; NFS code only accept mount requests from a privileged port; try &prompt.root; mount -o -P linuxbox:/blah /mnt Why can I not NFS-mount from a Sun box? &sun; workstations running &sunos; 4.X only accept mount requests from a privileged port; try &prompt.root; mount -o -P sunbox:/blah /mnt Why does mountd keep telling me it can't change attributes and that I have a bad exports list on my FreeBSD NFS server? The most frequent problem is not understanding the correct format of /etc/exports. Please review &man.exports.5; and the NFS entry in the Handbook, especially the section on configuring NFS. Why am I having problems talking PPP to NeXTStep machines? Try disabling the TCP extensions in /etc/rc.conf (see &man.rc.conf.5;) by changing the following variable to NO: tcp_extensions=NO Xylogic's Annex boxes are also broken in this regard and you must use the above change to connect through them. How do I enable IP multicast support? FreeBSD supports multicast host operations by default. If you want your box to run as a multicast router, you need to recompile your kernel with the MROUTING option and run &man.mrouted.8;. FreeBSD will start &man.mrouted.8; at boot time if the flag mrouted_enable is set to "YES" in /etc/rc.conf. MBONE tools are available in their own ports category, mbone. If you are looking for the conference tools vic and vat, look there! Which network cards are based on the DEC PCI chipset? Here is a list compiled by Glen Foster gfoster@driver.nsta.org, with some more modern additions: Network cards based on the DEC PCI chipset Vendor Model ASUS PCI-L101-TB Accton ENI1203 Cogent EM960PCI Compex ENET32-PCI D-Link DE-530 Dayna DP1203, DP2100 DEC DE435, DE450 Danpex EN-9400P3 JCIS Condor JC1260 Linksys EtherPCI Mylex LNP101 SMC EtherPower 10/100 (Model 9332) SMC EtherPower (Model 8432) TopWare TE-3500P Znyx (2.2.x) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348 Znyx (3.x) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)
Why do I have to use the FQDN for hosts on my site? You will probably find that the host is actually in a different domain; for example, if you are in foo.example.org and you wish to reach a host called mumble in the example.org domain, you will have to refer to it by the fully-qualified domain name, mumble.example.org, instead of just mumble. Traditionally, this was allowed by BSD BIND resolvers. However the current version of bind (see &man.named.8;) that ships with FreeBSD no longer provides default abbreviations for non-fully qualified domain names other than the domain you are in. So an unqualified host mumble must either be found as mumble.foo.example.org, or it will be searched for in the root domain. This is different from the previous behavior, where the search continued across mumble.example.org, and mumble.edu. Have a look at RFC 1535 for why this was considered bad practice, or even a security hole. As a good workaround, you can place the line search foo.example.org example.org instead of the previous domain foo.example.org into your /etc/resolv.conf file (see &man.resolv.conf.5;). However, make sure that the search order does not go beyond the boundary between local and public administration, as RFC 1535 calls it. Why do I get an error, Permission denied, for all networking operations? If you have compiled your kernel with the IPFIREWALL option, you need to be aware that the default policy is to deny all packets that are not explicitly allowed. If you had unintentionally misconfigured your system for firewalling, you can restore network operability by typing the following while logged in as root: &prompt.root; ipfw add 65534 allow all from any to any You can also set firewall_type="open" in /etc/rc.conf. For further information on configuring a FreeBSD firewall, see the Handbook chapter. How much overhead does IPFW incur? Please see the Handbook's Firewalls section, specifically the section on IPFW Overhead & Optimization. Why is my ipfw fwd rule to redirect a service to another machine not working? Possibly because you want to do network address translation (NAT) and not just forward packets. A fwd rule does exactly what it says; it forwards packets. It does not actually change the data inside the packet. Say we have a rule like: 01000 fwd 10.0.0.1 from any to foo 21 When a packet with a destination address of foo arrives at the machine with this rule, the packet is forwarded to 10.0.0.1, but it still has the destination address of foo! The destination address of the packet is not changed to 10.0.0.1. Most machines would probably drop a packet that they receive with a destination address that is not their own. Therefore, using a fwd rule does not often work the way the user expects. This behavior is a feature and not a bug. See the FAQ about redirecting services, the &man.natd.8; manual, or one of the several port redirecting utilities in the ports collection for a correct way to do this. How can I redirect service requests from one machine to another? You can redirect FTP (and other service) request with the socket package, available in the ports tree in category sysutils. Simply replace the service's command line to call socket instead, like so: ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp where ftp.example.com and ftp are the host and port to redirect to, respectively. Where can I get a bandwidth management tool? There are three bandwidth management tools available for FreeBSD. &man.dummynet.4; is integrated into FreeBSD as part of &man.ipfw.4;. ALTQ is available for free on FreeBSD 4.X and has been integrated into FreeBSD 5.X as part of &man.pf.4;. Bandwidth Manager from Emerging Technologies is a commercial product. Why do I get /dev/bpf0: device not configured? You are running a program that requires the Berkeley Packet Filter (&man.bpf.4;), but it is not in your kernel. Add this to your kernel config file and build a new kernel: pseudo-device bpf # Berkeley Packet Filter On FreeBSD 4.X and earlier, you must also create the device node. After rebooting, go to the /dev directory and run: &prompt.root; sh MAKEDEV bpf0 Please see the Handbook entry on device nodes for more information on managing devices. How do I mount a disk from a &windows; machine that is on my network, like smbmount in &linux;? Use the SMBFS toolset. It includes a set of kernel modifications and a set of userland programs. The programs and information are available as net/smbfs in the ports collection, or in the base system as of 4.5-RELEASE and later. What are these messages about icmp-response bandwidth limit 300/200 pps in my log files? This is the kernel telling you that some activity is provoking it to send more ICMP or TCP reset (RST) responses than it thinks it should. ICMP responses are often generated as a result of attempted connections to unused UDP ports. TCP resets are generated as a result of attempted connections to unopened TCP ports. Among others, these are the kinds of activities which may cause these messages: Brute-force denial of service (DoS) attacks (as opposed to single-packet attacks which exploit a specific vulnerability). Port scans which attempt to connect to a large number of ports (as opposed to only trying a few well-known ports). The first number in the message tells you how many packets the kernel would have sent if the limit was not in place, and the second number tells you the limit. You can control the limit using the net.inet.icmp.icmplim sysctl variable like this, where 300 is the limit in packets per second: &prompt.root; sysctl -w net.inet.icmp.icmplim=300 If you do not want to see messages about this in your log files, but you still want the kernel to do response limiting, you can use the net.inet.icmp.icmplim_output sysctl variable to disable the output like this: &prompt.root; sysctl -w net.inet.icmp.icmplim_output=0 Finally, if you want to disable response limiting, you can set the net.inet.icmp.icmplim sysctl variable (see above for an example) to 0. Disabling response limiting is discouraged for the reasons listed above. What are these arp: unknown hardware address format error messages? This means that some device on your local Ethernet is using a MAC address in a format that FreeBSD does not recognize. This is probably caused by someone experimenting with an Ethernet card somewhere else on the network. You will see this most commonly on cable modem networks. It is harmless, and should not affect the performance of your FreeBSD machine. I have just installed CVSup but trying to execute it produces errors. What is wrong? First, see if the error message you are receiving is like the one shown below. /usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found Errors like these are caused by installing the net/cvsup port on a machine which does not have the &xfree86; suite. If you want to use the GUI included with CVSup you will need to install &xfree86; now. Alternatively if you just wish to use CVSup from a command line you should delete the package previously installed. Then install the net/cvsup-without-gui port. This is covered in more detail in the CVSup section of the Handbook.
Ασφάλεια What is a sandbox? Sandbox is a security term. It can mean two things: A process which is placed inside a set of virtual walls that are designed to prevent someone who breaks into the process from being able to break into the wider system. The process is said to be able to play inside the walls. That is, nothing the process does in regards to executing code is supposed to be able to breech the walls so you do not have to do a detailed audit of its code to be able to say certain things about its security. The walls might be a userid, for example. This is the definition used in the &man.security.7; and &man.named.8; man pages. Take the ntalk service, for example (see /etc/inetd.conf). This service used to run as userid root. Now it runs as userid tty. The tty user is a sandbox designed to make it more difficult for someone who has successfully hacked into the system via ntalk from being able to hack beyond that user id. A process which is placed inside a simulation of the machine. This is more hard-core. Basically it means that someone who is able to break into the process may believe that he can break into the wider machine but is, in fact, only breaking into a simulation of that machine and not modifying any real data. The most common way to accomplish this is to build a simulated environment in a subdirectory and then run the processes in that directory chroot'd (i.e. / for that process is this directory, not the real / of the system). Another common use is to mount an underlying filesystem read-only and then create a filesystem layer on top of it that gives a process a seemingly writeable view into that filesystem. The process may believe it is able to write to those files, but only the process sees the effects - other processes in the system do not, necessarily. An attempt is made to make this sort of sandbox so transparent that the user (or hacker) does not realize that he is sitting in it. &unix; implements two core sandboxes. One is at the process level, and one is at the userid level. Every &unix; process is completely firewalled off from every other &unix; process. One process cannot modify the address space of another. This is unlike &windows; where a process can easily overwrite the address space of any other, leading to a crash. A &unix; process is owned by a particular userid. If the userid is not the root user, it serves to firewall the process off from processes owned by other users. The userid is also used to firewall off on-disk data. What is securelevel? The securelevel is a security mechanism implemented in the kernel. Basically, when the securelevel is positive, the kernel restricts certain tasks; not even the superuser (i.e., root) is allowed to do them. At the time of this writing, the securelevel mechanism is capable of, among other things, limiting the ability to, unset certain file flags, such as schg (the system immutable flag), write to kernel memory via /dev/mem and /dev/kmem, load kernel modules, and alter firewall rules. To check the status of the securelevel on a running system, simply execute the following command: &prompt.root; sysctl kern.securelevel The output will contain the name of the &man.sysctl.8; variable (in this case, kern.securelevel) and a number. The latter is the current value of the securelevel. If it is positive (i.e., greater than 0), at least some of the securelevel's protections are enabled. You cannot lower the securelevel of a running system; being able to do that would defeat its purpose. If you need to do a task that requires that the securelevel be non-positive (e.g., an installworld or changing the date), you will have to change the securelevel setting in /etc/rc.conf (you want to look for the kern_securelevel and kern_securelevel_enable variables) and reboot. For more information on securelevel and the specific things all the levels do, please consult the &man.init.8; manual page. Securelevel is not a silver bullet; it has many known deficiencies. More often than not, it provides a false sense of security. One of its biggest problems is that in order for it to be at all effective, all files used in the boot process up until the securelevel is set must be protected. If an attacker can get the system to execute their code prior to the securelevel being set (which happens quite late in the boot process since some things the system must do at start-up cannot be done at an elevated securelevel), its protections are invalidated. While this task of protecting all files used in the boot process is not technically impossible, if it is achieved, system maintenance will become a nightmare since one would have to take the system down, at least to single-user mode, to modify a configuration file. This point and others are often discussed on the mailing lists, particularly the &a.security;. Please search the archives here for an extensive discussion. Some people are hopeful that securelevel will soon go away in favor of a more fine-grained mechanism, but things are still hazy in this respect. Consider yourself warned. BIND (named) is listening on port 53 and some other high-numbered port. What is going on? BIND uses a random high-numbered port for outgoing queries. If you want to use port 53 for outgoing queries, either to get past a firewall or to make yourself feel better, you can try the following in /etc/namedb/named.conf: options { query-source address * port 53; }; You can replace the * with a single IP address if you want to tighten things further. Congratulations, by the way. It is good practice to read your &man.sockstat.1; output and notice odd things! Sendmail is listening on port 587 as well as the standard port 25! What is going on? Recent versions of Sendmail support a mail submission feature that runs over port 587. This is not yet widely supported, but is growing in popularity. What is this UID 0 toor account? Have I been compromised? Do not worry. toor is an alternative superuser account (toor is root spelt backwards). Previously it was created when the &man.bash.1; shell was installed but now it is created by default. It is intended to be used with a non-standard shell so you do not have to change root's default shell. This is important as shells which are not part of the base distribution (for example a shell installed from ports or packages) are likely to be installed in /usr/local/bin which, by default, resides on a different filesystem. If root's shell is located in /usr/local/bin and /usr (or whatever filesystem contains /usr/local/bin) is not mounted for some reason, root will not be able to log in to fix a problem (although if you reboot into single user mode you will be prompted for the path to a shell). Some people use toor for day-to-day root tasks with a non-standard shell, leaving root, with a standard shell, for single user mode or emergencies. By default you cannot log in using toor as it does not have a password, so log in as root and set a password for toor if you want to use it. Why is suidperl not working properly? For security reasons, suidperl is installed without the suid bit by default. The system administrator can enable suid behavior with the following command. &prompt.root; chmod u+s /usr/bin/suidperl If you want suidperl to be built suid during upgrades from source, edit /etc/make.conf and add ENABLE_SUIDPERL=true before you run make buildworld. PPP I cannot make &man.ppp.8; work. What am I doing wrong? You should first read the &man.ppp.8; manual page and the PPP section of the handbook. Enable logging with the command set log Phase Chat Connect Carrier lcp ipcp ccp command This command may be typed at the &man.ppp.8; command prompt or it may be entered in the /etc/ppp/ppp.conf configuration file (the start of the default section is the best place to put it). Make sure that /etc/syslog.conf (see &man.syslog.conf.5;) contains the lines !ppp *.* /var/log/ppp.log and that the file /var/log/ppp.log exists. You can now find out a lot about what is going on from the log file. Do not worry if it does not all make sense. If you need to get help from someone, it may make sense to them. Why does &man.ppp.8; hang when I run it? This is usually because your hostname will not resolve. The best way to fix this is to make sure that /etc/hosts is consulted by your resolver first by editing /etc/host.conf and putting the hosts line first. Then, simply put an entry in /etc/hosts for your local machine. If you have no local network, change your localhost line: 127.0.0.1 foo.example.com foo localhost Otherwise, simply add another entry for your host. Consult the relevant manual pages for more details. You should be able to successfully ping -c1 `hostname` when you are done. Why will &man.ppp.8; not dial in -auto mode? First, check that you have got a default route. By running netstat -rn (see &man.netstat.1;), you should see two entries like this: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.2 UGSc 0 0 tun0 10.0.0.2 10.0.0.1 UH 0 0 tun0 This is assuming that you have used the addresses from the handbook, the manual page or from the ppp.conf.sample file. If you do not have a default route, it may be because you are running an old version of &man.ppp.8; that does not understand the word HISADDR in the ppp.conf file. Another reason for the default route line being missing is that you have mistakenly set up a default router in your /etc/rc.conf (see &man.rc.conf.5;) file and you have omitted the line saying delete ALL from ppp.conf. If this is the case, go back to the Final system configuration section of the handbook. What does No route to host mean? This error is usually due to a missing MYADDR: delete ALL add 0 0 HISADDR section in your /etc/ppp/ppp.linkup file. This is only necessary if you have a dynamic IP address or do not know the address of your gateway. If you are using interactive mode, you can type the following after entering packet mode (packet mode is indicated by the capitalized PPP in the prompt): delete ALL add 0 0 HISADDR Refer to the PPP and Dynamic IP addresses section of the handbook for further details. Why does my connection drop after about 3 minutes? The default PPP timeout is 3 minutes. This can be adjusted with the line set timeout NNN where NNN is the number of seconds of inactivity before the connection is closed. If NNN is zero, the connection is never closed due to a timeout. It is possible to put this command in the ppp.conf file, or to type it at the prompt in interactive mode. It is also possible to adjust it on the fly while the line is active by connecting to ppp's server socket using &man.telnet.1; or &man.pppctl.8;. Refer to the &man.ppp.8; man page for further details. Why does my connection drop under heavy load? If you have Link Quality Reporting (LQR) configured, it is possible that too many LQR packets are lost between your machine and the peer. Ppp deduces that the line must therefore be bad, and disconnects. Prior to FreeBSD version 2.2.5, LQR was enabled by default. It is now disabled by default. LQR can be disabled with the line disable lqr Why does my connection drop after a random amount of time? Sometimes, on a noisy phone line or even on a line with call waiting enabled, your modem may hang up because it thinks (incorrectly) that it lost carrier. There is a setting on most modems for determining how tolerant it should be to temporary losses of carrier. On a USR &sportster; for example, this is measured by the S10 register in tenths of a second. To make your modem more forgiving, you could add the following send-expect sequence to your dial string: set dial "...... ATS10=10 OK ......" Refer to your modem manual for details. Why does my connection hang after a random amount of time? Many people experience hung connections with no apparent explanation. The first thing to establish is which side of the link is hung. If you are using an external modem, you can simply try using &man.ping.8; to see if the TD light is flashing when you transmit data. If it flashes (and the RD light does not), the problem is with the remote end. If TD does not flash, the problem is local. With an internal modem, you will need to use the set server command in your ppp.conf file. When the hang occurs, connect to &man.ppp.8; using &man.pppctl.8;. If your network connection suddenly revives (PPP was revived due to the activity on the diagnostic socket) or if you cannot connect (assuming the set socket command succeeded at startup time), the problem is local. If you can connect and things are still hung, enable local async logging with set log local async and use &man.ping.8; from another window or terminal to make use of the link. The async logging will show you the data being transmitted and received on the link. If data is going out and not coming back, the problem is remote. Having established whether the problem is local or remote, you now have two possibilities: If the problem is remote, read on entry . If the problem is local, read on entry . The remote end is not responding. What can I do? There is very little you can do about this. Most ISPs will refuse to help if you are not running a Microsoft OS. You can enable lqr in your ppp.conf file, allowing &man.ppp.8; to detect the remote failure and hang up, but this detection is relatively slow and therefore not that useful. You may want to avoid telling your ISP that you are running user-PPP... First, try disabling all local compression by adding the following to your configuration: disable pred1 deflate deflate24 protocomp acfcomp shortseq vj deny pred1 deflate deflate24 protocomp acfcomp shortseq vj Then reconnect to ensure that this makes no difference. If things improve or if the problem is solved completely, determine which setting makes the difference through trial and error. This will provide good ammunition when you contact your ISP (although it may make it apparent that you are not running a Microsoft product). Before contacting your ISP, enable async logging locally and wait until the connection hangs again. This may use up quite a bit of disk space. The last data read from the port may be of interest. It is usually ascii data, and may even describe the problem (Memory fault, core dumped?). If your ISP is helpful, they should be able to enable logging on their end, then when the next link drop occurs, they may be able to tell you why their side is having a problem. Feel free to send the details to &a.brian;, or even to ask your ISP to contact me directly. &man.ppp.8; has hung. What can I do? Your best bet here is to rebuild &man.ppp.8; by adding CFLAGS+=-g and STRIP= to the end of the Makefile, then doing a make clean && make && make install. When &man.ppp.8; hangs, find the &man.ppp.8; process id with ps ajxww | fgrep ppp and run gdb ppp PID. From the gdb prompt, you can then use bt to get a stack trace. Send the results to &a.brian;. Why does nothing happen after the Login OK! message? Prior to FreeBSD version 2.2.5, once the link was established, &man.ppp.8; would wait for the peer to initiate the Line Control Protocol (LCP). Many ISPs will not initiate negotiations and expect the client to do so. To force &man.ppp.8; to initiate the LCP, use the following line: set openmode active It usually does no harm if both sides initiate negotiation, so openmode is now active by default. However, the next section explains when it does do some harm. I keep seeing errors about magic being the same. What does it mean? Occasionally, just after connecting, you may see messages in the log that say magic is the same. Sometimes, these messages are harmless, and sometimes one side or the other exits. Most PPP implementations cannot survive this problem, and even if the link seems to come up, you will see repeated configure requests and configure acknowledgments in the log file until &man.ppp.8; eventually gives up and closes the connection. This normally happens on server machines with slow disks that are spawning a getty on the port, and executing &man.ppp.8; from a login script or program after login. I have also heard reports of it happening consistently when using slirp. The reason is that in the time taken between &man.getty.8; exiting and &man.ppp.8; starting, the client-side &man.ppp.8; starts sending Line Control Protocol (LCP) packets. Because ECHO is still switched on for the port on the server, the client &man.ppp.8; sees these packets reflect back. One part of the LCP negotiation is to establish a magic number for each side of the link so that reflections can be detected. The protocol says that when the peer tries to negotiate the same magic number, a NAK should be sent and a new magic number should be chosen. During the period that the server port has ECHO turned on, the client &man.ppp.8; sends LCP packets, sees the same magic in the reflected packet and NAKs it. It also sees the NAK reflect (which also means &man.ppp.8; must change its magic). This produces a potentially enormous number of magic number changes, all of which are happily piling into the server's tty buffer. As soon as &man.ppp.8; starts on the server, it is flooded with magic number changes and almost immediately decides it has tried enough to negotiate LCP and gives up. Meanwhile, the client, who no longer sees the reflections, becomes happy just in time to see a hangup from the server. This can be avoided by allowing the peer to start negotiating with the following line in your ppp.conf file: set openmode passive This tells &man.ppp.8; to wait for the server to initiate LCP negotiations. Some servers however may never initiate negotiations. If this is the case, you can do something like: set openmode active 3 This tells &man.ppp.8; to be passive for 3 seconds, and then to start sending LCP requests. If the peer starts sending requests during this period, &man.ppp.8; will immediately respond rather than waiting for the full 3 second period. LCP negotiations continue until the connection is closed. What is wrong? There is currently an implementation mis-feature in &man.ppp.8; where it does not associate LCP, CCP & IPCP responses with their original requests. As a result, if one PPP implementation is more than 6 seconds slower than the other side, the other side will send two additional LCP configuration requests. This is fatal. Consider two implementations, A and B. A starts sending LCP requests immediately after connecting and B takes 7 seconds to start. When B starts, A has sent 3 LCP REQs. We are assuming the line has ECHO switched off, otherwise we would see magic number problems as described in the previous section. B sends a REQ, then an ACK to the first of A's REQs. This results in A entering the OPENED state and sending and ACK (the first) back to B. In the meantime, B sends back two more ACKs in response to the two additional REQs sent by A before B started up. B then receives the first ACK from A and enters the OPENED state. A receives the second ACK from B and goes back to the REQ-SENT state, sending another (forth) REQ as per the RFC. It then receives the third ACK and enters the OPENED state. In the meantime, B receives the forth REQ from A, resulting in it reverting to the ACK-SENT state and sending another (second) REQ and (forth) ACK as per the RFC. A gets the REQ, goes into REQ-SENT and sends another REQ. It immediately receives the following ACK and enters OPENED. This goes on until one side figures out that they are getting nowhere and gives up. The best way to avoid this is to configure one side to be passive - that is, make one side wait for the other to start negotiating. This can be done with the set openmode passive command. Care should be taken with this option. You should also use the set stopped N command to limit the amount of time that &man.ppp.8; waits for the peer to begin negotiations. Alternatively, the set openmode active N command (where N is the number of seconds to wait before starting negotiations) can be used. Check the manual page for details. Why does &man.ppp.8; lock up when I shell out to test it? When you execute the shell or ! command, &man.ppp.8; executes a shell (or if you have passed any arguments, &man.ppp.8; will execute those arguments). Ppp will wait for the command to complete before continuing. If you attempt to use the PPP link while running the command, the link will appear to have frozen. This is because &man.ppp.8; is waiting for the command to complete. If you wish to execute commands like this, use the !bg command instead. This will execute the given command in the background, and &man.ppp.8; can continue to service the link. Why does &man.ppp.8; over a null-modem cable never exit? There is no way for &man.ppp.8; to automatically determine that a direct connection has been dropped. This is due to the lines that are used in a null-modem serial cable. When using this sort of connection, LQR should always be enabled with the line enable lqr LQR is accepted by default if negotiated by the peer. Why does &man.ppp.8; dial for no reason in -auto mode? If &man.ppp.8; is dialing unexpectedly, you must determine the cause, and set up Dial filters (dfilters) to prevent such dialing. To determine the cause, use the following line: set log +tcp/ip This will log all traffic through the connection. The next time the line comes up unexpectedly, you will see the reason logged with a convenient timestamp next to it. You can now disable dialing under these circumstances. Usually, this sort of problem arises due to DNS lookups. To prevent DNS lookups from establishing a connection (this will not prevent &man.ppp.8; from passing the packets through an established connection), use the following: set dfilter 1 deny udp src eq 53 set dfilter 2 deny udp dst eq 53 set dfilter 3 permit 0/0 0/0 This is not always suitable, as it will effectively break your demand-dial capabilities - most programs will need a DNS lookup before doing any other network related things. In the DNS case, you should try to determine what is actually trying to resolve a host name. A lot of the time, &man.sendmail.8; is the culprit. You should make sure that you tell sendmail not to do any DNS lookups in its configuration file. See the section on using email with a dialup connection in the FreeBSD Handbook for details on how to create your own configuration file and what should go into it. You may also want to add the following line to your .mc file: define(`confDELIVERY_MODE', `d')dnl This will make sendmail queue everything until the queue is run (usually, sendmail is invoked with , telling it to run the queue every 30 minutes) or until a sendmail -q is done (perhaps from your ppp.linkup file). What do these CCP errors mean? I keep seeing the following errors in my log file: CCP: CcpSendConfigReq CCP: Received Terminate Ack (1) state = Req-Sent (6) This is because &man.ppp.8; is trying to negotiate Predictor1 compression, and the peer does not want to negotiate any compression at all. The messages are harmless, but if you wish to remove them, you can disable Predictor1 compression locally too: disable pred1 Why does &man.ppp.8; not log my connection speed? In order to log all lines of your modem conversation, you must enable the following: set log +connect This will make &man.ppp.8; log everything up until the last requested expect string. If you wish to see your connect speed and are using PAP or CHAP (and therefore do not have anything to chat after the CONNECT in the dial script - no set login script), you must make sure that you instruct &man.ppp.8; to expect the whole CONNECT line, something like this: set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \ \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" Here, we get our CONNECT, send nothing, then expect a line-feed, forcing &man.ppp.8; to read the whole CONNECT response. Why does &man.ppp.8; ignore the \ character in my chat script? Ppp parses each line in your config files so that it can interpret strings such as set phone "123 456 789" correctly and realize that the number is actually only one argument. In order to specify a " character, you must escape it using a backslash (\). When the chat interpreter parses each argument, it re-interprets the argument in order to find any special escape sequences such as \P or \T (see the manual page). As a result of this double-parsing, you must remember to use the correct number of escapes. If you wish to actually send a \ character to (say) your modem, you would need something like: set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" resulting in the following sequence: ATZ OK AT\X OK or set phone 1234567 set dial "\"\" ATZ OK ATDT\\T" resulting in the following sequence: ATZ OK ATDT1234567 Why does &man.ppp.8; get a seg-fault, but I see no ppp.core file? Ppp (or any other program for that matter) should never dump core. Because &man.ppp.8; runs with an effective user id of 0, the operating system will not write &man.ppp.8;'s core image to disk before terminating it. If, however &man.ppp.8; is actually terminating due to a segmentation violation or some other signal that normally causes core to be dumped, and you are sure you are using the latest version (see the start of this section), then you should do the following: &prompt.user; tar xfz ppp-*.src.tar.gz &prompt.user; cd ppp*/ppp &prompt.user; echo STRIP= >>Makefile &prompt.user; echo CFLAGS+=-g >>Makefile &prompt.user; make clean all &prompt.user; su &prompt.root; make install &prompt.root; chmod 555 /usr/sbin/ppp You will now have a debuggable version of &man.ppp.8; installed. You will have to be root to run &man.ppp.8; as all of its privileges have been revoked. When you start &man.ppp.8;, take a careful note of what your current directory was at the time. Now, if and when &man.ppp.8; receives the segmentation violation, it will dump a core file called ppp.core. You should then do the following: &prompt.user; su &prompt.root; gdb /usr/sbin/ppp ppp.core (gdb) bt ..... (gdb) f 0 .... (gdb) i args .... (gdb) l ..... All of this information should be given alongside your question, making it possible to diagnose the problem. If you are familiar with gdb, you may wish to find out some other bits and pieces such as what actually caused the dump and the addresses & values of the relevant variables. Why does the process that forces a dial in auto mode never connect? This was a known problem with &man.ppp.8; set up to negotiate a dynamic local IP number with the peer in auto mode. It is fixed in the latest version - search the manual page for iface. The problem was that when that initial program calls &man.connect.2;, the IP number of the tun interface is assigned to the socket endpoint. The kernel creates the first outgoing packet and writes it to the tun device. &man.ppp.8; then reads the packet and establishes a connection. If, as a result of &man.ppp.8;'s dynamic IP assignment, the interface address is changed, the original socket endpoint will be invalid. Any subsequent packets sent to the peer will usually be dropped. Even if they are not, any responses will not route back to the originating machine as the IP number is no longer owned by that machine. There are several theoretical ways to approach this problem. It would be nicest if the peer would re-assign the same IP number if possible :-) The current version of &man.ppp.8; does this, but most other implementations do not. The easiest method from our side would be to never change the tun interface IP number, but instead to change all outgoing packets so that the source IP number is changed from the interface IP to the negotiated IP on the fly. This is essentially what the iface-alias option in the latest version of &man.ppp.8; is doing (with the help of &man.libalias.3; and &man.ppp.8;'s switch) - it is maintaining all previous interface addresses and NATing them to the last negotiated address. Another alternative (and probably the most reliable) would be to implement a system call that changes all bound sockets from one IP to another. &man.ppp.8; would use this call to modify the sockets of all existing programs when a new IP number is negotiated. The same system call could be used by dhcp clients when they are forced to re-bind() their sockets. Yet another possibility is to allow an interface to be brought up without an IP number. Outgoing packets would be given an IP number of 255.255.255.255 up until the first SIOCAIFADDR ioctl is done. This would result in fully binding the socket. It would be up to &man.ppp.8; to change the source IP number, but only if it is set to 255.255.255.255, and only the IP number and IP checksum would need to change. This, however is a bit of a hack as the kernel would be sending bad packets to an improperly configured interface, on the assumption that some other mechanism is capable of fixing things retrospectively. Why do most games not work with the -nat switch? The reason games and the like do not work when libalias is in use is that the machine on the outside will try to open a connection or send (unsolicited) UDP packets to the machine on the inside. The NAT software does not know that it should send these packets to the interior machine. To make things work, make sure that the only thing running is the software that you are having problems with, then either run tcpdump on the tun interface of the gateway or enable &man.ppp.8; tcp/ip logging (set log +tcp/ip) on the gateway. When you start the offending software, you should see packets passing through the gateway machine. When something comes back from the outside, it will be dropped (that is the problem). Note the port number of these packets then shut down the offending software. Do this a few times to see if the port numbers are consistent. If they are, then the following line in the relevant section of /etc/ppp/ppp.conf will make the software functional: nat port proto internalmachine:port port where proto is either tcp or udp, internalmachine is the machine that you want the packets to be sent to and port is the destination port number of the packets. You will not be able to use the software on other machines without changing the above command, and running the software on two internal machines at the same time is out of the question - after all, the outside world is seeing your entire internal network as being just a single machine. If the port numbers are not consistent, there are three more options: Submit support in libalias. Examples of special cases can be found in /usr/src/lib/libalias/alias_*.c (alias_ftp.c is a good prototype). This usually involves reading certain recognised outgoing packets, identifying the instruction that tells the outside machine to initiate a connection back to the internal machine on a specific (random) port and setting up a route in the alias table so that the subsequent packets know where to go. This is the most difficult solution, but it is the best and will make the software work with multiple machines. Use a proxy. The application may support socks5 for example, or (as in the cvsup case) may have a passive option that avoids ever requesting that the peer open connections back to the local machine. Redirect everything to the internal machine using nat addr. This is the sledge-hammer approach. Has anybody made a list of useful port numbers? Not yet, but this is intended to grow into such a list (if any interest is shown). In each example, internal should be replaced with the IP number of the machine playing the game. Asheron's Call nat port udp internal :65000 65000 Manually change the port number within the game to 65000. If you have got a number of machines that you wish to play on assign a unique port number for each (i.e. 65001, 65002, etc) and add a nat port line for each one. Half Life nat port udp internal:27005 27015 PCAnywhere 8.0 nat port udp internal:5632 5632 nat port tcp internal:5631 5631 Quake nat port udp internal:6112 6112 Quake 2 nat port udp internal:27901 27910 nat port udp internal:60021 60021 nat port udp internal:60040 60040 Red Alert nat port udp internal:8675 8675 nat port udp internal:5009 5009 What are FCS errors? FCS stands for Frame Check Sequence. Each PPP packet has a checksum attached to ensure that the data being received is the data being sent. If the FCS of an incoming packet is incorrect, the packet is dropped and the HDLC FCS count is increased. The HDLC error values can be displayed using the show hdlc command. If your link is bad (or if your serial driver is dropping packets), you will see the occasional FCS error. This is not usually worth worrying about although it does slow down the compression protocols substantially. If you have an external modem, make sure your cable is properly shielded from interference - this may eradicate the problem. If your link freezes as soon as you have connected and you see a large number of FCS errors, this may be because your link is not 8 bit clean. Make sure your modem is not using software flow control (XON/XOFF). If your datalink must use software flow control, use the command set accmap 0x000a0000 to tell &man.ppp.8; to escape the ^Q and ^S characters. Another reason for seeing too many FCS errors may be that the remote end has stopped talking PPP. You may want to enable async logging at this point to determine if the incoming data is actually a login or shell prompt. If you have a shell prompt at the remote end, it is possible to terminate &man.ppp.8; without dropping the line by using the close lcp command (a following term command will reconnect you to the shell on the remote machine. If nothing in your log file indicates why the link might have been terminated, you should ask the remote administrator (your ISP?) why the session was terminated. Why do &macos; and &windows; 98 connections freeze when running PPPoE on the gateway? Thanks to Michael Wozniak mwozniak@netcom.ca for figuring this out and Dan Flemming danflemming@mac.com for the Mac solution: This is due to what is called a Black Hole router. &macos; and &windows; 98 (and maybe other Microsoft OSs) send TCP packets with a requested segment size too big to fit into a PPPoE frame (MTU is 1500 by default for Ethernet) and have the do not fragment bit set (default of TCP) and the Telco router is not sending ICMP must fragment back to the www site you are trying to load. (Alternatively, the router is sending the ICMP packet correctly, but the firewall at the www site is dropping it.) When the www server is sending you frames that do not fit into the PPPoE pipe the Telco router drops them on the floor and your page does not load (some pages/graphics do as they are smaller than a MSS.) This seems to be the default of most Telco PPPoE configurations (if only they knew how to program a router... sigh...) One fix is to use regedit on your 95/98 boxes to add the following registry entry... HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU It should be a string with a value 1436, as some ADSL routers are reported to be unable to deal with packets larger than this. This registry key has been changed to Tcpip\Parameters\Interfaces\ID for adapter\MTU in &windows; 2000 and becomes a DWORD. Refer to the Microsoft Knowledge Base documents Q158474 - Windows TCPIP Registry Entries and Q120642 - TCPIP & NBT Configuration Parameters for &windowsnt; for more information on changing &windows; MTU to work with a NAT router. Another regedit possibility under &windows; 2000 is to set the Tcpip\Parameters\Interfaces\ID for adapter\EnablePMTUBHDetect DWORD to 1 as mentioned in the Microsoft document 120642 mentioned above. Unfortunately, &macos; does not provide an interface for changing TCP/IP settings. However, there is commercial software available, such as OTAdvancedTuner (OT for OpenTransport, the &macos; TCP/IP stack) by Sustainable Softworks, that will allow users to customize TCP/IP settings. &macos; NAT users should select ip_interface_MTU from the drop-down menu, enter 1450 instead of 1500 in the box, click the box next to Save as Auto Configure, and click Make Active. The latest version of &man.ppp.8; (2.3 or greater) has an enable tcpmssfixup command that will automatically adjust the MSS to an appropriate value. This facility is enabled by default. If you are stuck with an older version of &man.ppp.8;, you may want to look at the tcpmssd port. None of this helps - I am desperate! What can I do? If all else fails, send as much information as you can, including your config files, how you are starting &man.ppp.8;, the relevant parts of your log file and the output of the netstat -rn command (before and after connecting) to the &a.questions; or the comp.unix.bsd.freebsd.misc news group, and someone should point you in the right direction. Σειριακές Επικοινωνίες This section answers common questions about serial communications with FreeBSD. PPP and SLIP are covered in the Networking section. How do I tell if FreeBSD found my serial ports? As the FreeBSD kernel boots, it will probe for the serial ports in your system for which the kernel was configured. You can either watch your system closely for the messages it prints or run the command &prompt.user; dmesg | grep sio after your system is up and running. Here is some example output from the above command: sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A This shows two serial ports. The first is on irq 4, is using port address 0x3f8, and has a 16550A-type UART chip. The second uses the same kind of chip but is on irq 3 and is at port address 0x2f8. Internal modem cards are treated just like serial ports---except that they always have a modem attached to the port. The GENERIC kernel includes support for two serial ports using the same irq and port address settings in the above example. If these settings are not right for your system, or if you have added modem cards or have more serial ports than your kernel is configured for, just reconfigure your kernel. See section about building a kernel for more details. How do I tell if FreeBSD found my modem cards? Refer to the answer to the previous question. How do I access the serial ports on FreeBSD? The third serial port, sio2 (see &man.sio.4;, known as COM3 in DOS), is on /dev/cuaa2 for dial-out devices, and on /dev/ttyd2 for dial-in devices. What is the difference between these two classes of devices? You use ttydX for dial-ins. When opening /dev/ttydX in blocking mode, a process will wait for the corresponding cuaaX device to become inactive, and then wait for the carrier detect line to go active. When you open the cuaaX device, it makes sure the serial port is not already in use by the ttydX device. If the port is available, it steals it from the ttydX device. Also, the cuaaX device does not care about carrier detect. With this scheme and an auto-answer modem, you can have remote users log in and you can still dial out with the same modem and the system will take care of all the conflicts. How do I enable support for a multiport serial card? Again, the section on kernel configuration provides information about configuring your kernel. For a multiport serial card, place an &man.sio.4; line for each serial port on the card in the kernel configuration file. But place the irq and vector specifiers on only one of the entries. All of the ports on the card should share one irq. For consistency, use the last serial port to specify the irq. Also, specify the COM_MULTIPORT option. The following example is for an AST 4-port serial card on irq 7: options "COM_MULTIPORT" device sio4 at isa? port 0x2a0 tty flags 0x781 device sio5 at isa? port 0x2a8 tty flags 0x781 device sio6 at isa? port 0x2b0 tty flags 0x781 device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr The flags indicate that the master port has minor number 7 (0x700), diagnostics enabled during probe (0x080), and all the ports share an irq (0x001). Can FreeBSD handle multiport serial cards sharing irqs? Not yet. You will have to use a different irq for each card. Can I set the default serial parameters for a port? The ttydX (or cuaaX) device is the regular device you will want to open for your applications. When a process opens the device, it will have a default set of terminal I/O settings. You can see these settings with the command &prompt.root; stty -a -f /dev/ttyd1 When you change the settings to this device, the settings are in effect until the device is closed. When it is reopened, it goes back to the default set. To make changes to the default set, you can open and adjust the settings of the initial state device. For example, to turn on CLOCAL mode, 8 bits, and XON/XOFF flow control by default for ttyd5, do: &prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoff A good place to do this is in /etc/rc.serial. Now, an application will have these settings by default when it opens ttyd5. It can still change these settings to its liking, though. You can also prevent certain settings from being changed by an application by making adjustments to the lock state device. For example, to lock the speed of ttyd5 to 57600 bps, do &prompt.root; stty -f /dev/ttyld5 57600 Now, an application that opens ttyd5 and tries to change the speed of the port will be stuck with 57600 bps. Naturally, you should make the initial state and lock state devices writable only by root. The &man.MAKEDEV.8; script does NOT do this when it creates the device entries. How can I enable dialup logins on my modem? So you want to become an Internet service provider, eh? First, you will need one or more modems that can auto-answer. Your modem will need to assert carrier-detect when it detects a carrier and not assert it all the time. It will need to hang up the phone and reset itself when the data terminal ready (DTR) line goes from on to off. It should probably use RTS/CTS flow control or no local flow control at all. Finally, it must use a constant speed between the computer and itself, but (to be nice to your callers) it should negotiate a speed between itself and the remote modem. For many Hayes command-set--compatible modems, this command will make these settings and store them in nonvolatile memory: AT &C1 &D3 &K3 &Q6 S0=1 &W See the section on sending AT commands below for information on how to make these settings without resorting to an &ms-dos; terminal program. Next, make an entry in /etc/ttys (see &man.ttys.5;) for the modem. This file lists all the ports on which the operating system will await logins. Add a line that looks something like this: ttyd1 "/usr/libexec/getty std.57600" dialup on insecure This line indicates that the second serial port (/dev/ttyd1) has a modem connected running at 57600 bps and no parity (std.57600, which comes from the file /etc/gettytab, see &man.gettytab.5;). The terminal type for this port is dialup. The port is on and is insecure---meaning root logins on the port are not allowed. For dialin ports like this one, use the ttydX entry. It is common practice to use dialup as the terminal type. Many users set up in their .profile or .login files a prompt for the actual terminal type if the starting type is dialup. The example shows the port as insecure. To become root on this port, you have to login as a regular user, then &man.su.1; to become root. If you use secure then root can login in directly. After making modifications to /etc/ttys, you need to send a hangup or HUP signal to the &man.init.8; process: &prompt.root; kill -HUP 1 This forces the &man.init.8; process to reread /etc/ttys. The init process will then start getty processes on all on ports. You can find out if logins are available for your port by typing &prompt.user; ps -ax | grep '[t]tyd1' You should see something like: 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 How can I connect a dumb terminal to my FreeBSD box? If you are using another computer as a terminal into your FreeBSD system, get a null-modem cable to go between the two serial ports. If you are using an actual terminal, see its accompanying instructions. Then, modify /etc/ttys (see &man.ttys.5;), like above. For example, if you are hooking up a WYSE-50 terminal to the fifth serial port, use an entry like this: ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure This example shows that the port on /dev/ttyd4 has a wyse50 terminal connected at 38400 bps with no parity (std.38400 from /etc/gettytab, see &man.gettytab.5;) and root logins are allowed (secure). Why can I not run tip or cu? On your system, the programs &man.tip.1; and &man.cu.1; are probably executable only by uucp and group dialer. You can use the group dialer to control who has access to your modem or remote systems. Just add yourself to group dialer. Alternatively, you can let everyone on your system run &man.tip.1; and &man.cu.1; by typing: &prompt.root; chmod 4511 /usr/bin/cu &prompt.root; chmod 4511 /usr/bin/tip My stock Hayes modem is not supported---what can I do? Actually, the manual page for &man.tip.1; is out of date. There is a generic Hayes dialer already built in. Just use at=hayes in your /etc/remote (see &man.remote.5;) file. The Hayes driver is not smart enough to recognize some of the advanced features of newer modems---messages like BUSY, NO DIALTONE, or CONNECT 115200 will just confuse it. You should turn those messages off when you use &man.tip.1; (using ATX0&W). Also, the dial timeout for &man.tip.1; is 60 seconds. Your modem should use something less, or else tip will think there is a communication problem. Try ATS7=45&W. Actually, as shipped &man.tip.1; does not yet support it fully. The solution is to edit the file tipconf.h in the directory /usr/src/usr.bin/tip/tip. Obviously you need the source distribution to do this. Edit the line #define HAYES 0 to #define HAYES 1. Then make and make install. Everything works nicely after that. How am I expected to enter these AT commands? Make what is called a direct entry in your /etc/remote file (see &man.remote.5;). For example, if your modem is hooked up to the first serial port, /dev/cuaa0, then put in the following line: cuaa0:dv=/dev/cuaa0:br#19200:pa=none Use the highest bps rate your modem supports in the br capability. Then, type tip cuaa0 (see &man.tip.1;) and you will be connected to your modem. If there is no /dev/cuaa0 on your system, do this: &prompt.root; cd /dev &prompt.root; sh MAKEDEV cuaa0 Or use cu as root with the following command: &prompt.root; cu -lline -sspeed with line being the serial port (e.g. /dev/cuaa0) and speed being the speed (e.g.57600). When you are done entering the AT commands hit ~. to exit. Why does the <@> sign for the pn capability not work? The <@> sign in the phone number capability tells tip to look in /etc/phones for a phone number. But the <@> sign is also a special character in capability files like /etc/remote. Escape it with a backslash: pn=\@ How can I dial a phone number on the command line? Put what is called a generic entry in your /etc/remote file (see &man.remote.5;). For example: tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: Then you can do something like tip -115200 5551234. If you prefer &man.cu.1; over &man.tip.1;, use a generic cu entry: cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: and type cu 5551234 -s 115200. Do I have to type in the bps rate every time I do that? Put in an entry for tip1200 or cu1200, but go ahead and use whatever bps rate is appropriate with the br capability. &man.tip.1; thinks a good default is 1200 bps which is why it looks for a tip1200 entry. You do not have to use 1200 bps, though. How can I more easily access a number of hosts through a terminal server? Rather than waiting until you are connected and typing CONNECT host each time, use tip's cm capability. For example, these entries in /etc/remote (see &man.remote.5;): pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: will let you type tip pain or tip muffin to connect to the hosts pain or muffin; and tip deep13 to get to the terminal server. Can tip try more than one line for each site? This is often a problem where a university has several modem lines and several thousand students trying to use them... Make an entry for your university in /etc/remote (see &man.remote.5;) and use <\@> for the pn capability: big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: Then, list the phone numbers for the university in /etc/phones (see &man.phones.5;): big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114 &man.tip.1; will try each one in the listed order, then give up. If you want to keep retrying, run &man.tip.1; in a while loop. Why do I have to hit CTRLP twice to send CTRLP once? CTRLP is the default force character, used to tell &man.tip.1; that the next character is literal data. You can set the force character to any other character with the ~s escape, which means set a variable. Type ~sforce=single-char followed by a newline. single-char is any single character. If you leave out single-char, then the force character is the nul character, which you can get by typing CTRL2 or CTRLSPACE. A pretty good value for single-char is SHIFTCTRL6, which I have seen only used on some terminal servers. You can have the force character be whatever you want by specifying the following in your $HOME/.tiprc file: force=single-char Why is everything I type suddenly in UPPER CASE? You must have pressed CTRLA, &man.tip.1; raise character, specially designed for people with broken Caps Lock keys. Use ~s as above and set the variable raisechar to something reasonable. In fact, you can set it to the same as the force character, if you never expect to use either of these features. Here is a sample .tiprc file perfect for Emacs users who need to type CTRL2 and CTRLA a lot: force=^^ raisechar=^^ The ^^ is SHIFTCTRL6. How can I do file transfers with tip? If you are talking to another &unix; system, you can send and receive files with ~p (put) and ~t (take). These commands run &man.cat.1; and &man.echo.1; on the remote system to accept and send files. The syntax is: ~p <local-file> [<remote-file>] ~t <remote-file> [<local-file>] There is no error checking, so you probably should use another protocol, like zmodem. How can I run zmodem with tip? First, install one of the zmodem programs from the ports collection (such as one of the two from the comms category, lrzsz or rzsz. To receive files, start the sending program on the remote end. Then, press enter and type ~C rz (or ~C lrz if you installed lrzsz) to begin receiving them locally. To send files, start the receiving program on the remote end. Then, press enter and type ~C sz files (or ~C lsz files) to send them to the remote system. Διάφορες Ερωτήσεις FreeBSD uses far more swap space than &linux;. Why? FreeBSD only appears to use more swap than &linux;. In actual fact, it does not. The main difference between FreeBSD and &linux; in this regard is that FreeBSD will proactively move entirely idle, unused pages of main memory into swap in order to make more main memory available for active use. &linux; tends to only move pages to swap as a last resort. The perceived heavier use of swap is balanced by the more efficient use of main memory. Note that while FreeBSD is proactive in this regard, it does not arbitrarily decide to swap pages when the system is truly idle. Thus you will not find your system all paged out when you get up in the morning after leaving it idle overnight. Why does top show very little free memory even when I have very few programs running? The simple answer is that free memory is wasted memory. Any memory that your programs do not actively allocate is used within the FreeBSD kernel as disk cache. The values shown by &man.top.1; labeled as Inact, Cache, and Buf are all cached data at different aging levels. This cached data means the system does not have to access a slow disk again for data it has accessed recently, thus increasing overall performance. In general, a low value shown for Free memory in &man.top.1; is good, provided it is not very low. Why will chmod not change the permissions on symlinks? Symlinks do not have permissions, and by default, &man.chmod.1; will not follow symlinks to change the permissions on the target file. So if you have a file, foo, and a symlink to that file, bar, then this command will always succeed. &prompt.user; chmod g-w bar However, the permissions on foo will not have changed. You have to use either or together with the option to make this work. See the &man.chmod.1; and &man.symlink.7; manual pages for more info. The option does a RECURSIVE &man.chmod.1;. Be careful about specifying directories or symlinks to directories to &man.chmod.1;. If you want to change the permissions of a directory referenced by a symlink, use &man.chmod.1; without any options and follow the symlink with a trailing slash (/). For example, if foo is a symlink to directory bar, and you want to change the permissions of foo (actually bar), you would do something like: &prompt.user; chmod 555 foo/ With the trailing slash, &man.chmod.1; will follow the symlink, foo, to change the permissions of the directory, bar. Can I run DOS binaries under FreeBSD? Yes, you can use emulators/doscmd, a DOS emulation program, available in the &os; Ports Collection. The doscmd program used to be an integrated part of &os;, but was removed before the release of &os; 5.3. If doscmd will not suffice, the add-on utility emulators/pcemu emulates an 8088 and enough BIOS services to run many DOS text mode applications. It requires the X Window System. What do I need to do to translate a FreeBSD document into my native language? See the Translation FAQ in the FreeBSD Documentation Project Primer. Why does my email to any address at FreeBSD.org bounce? The FreeBSD.org mail system implements some of the stricter Postfix checks on incoming mail and rejects mail that is either misconfigured or is potential spam. Your mail might bounce for one of the following reasons: The email is being sent from a known spam domain or IP block. The FreeBSD mail servers reject email from known spam sources. If you have service through a company or domain who generates or relays spam, please switch to a service provider who does not. The body of the email only contains HTML. Mail should be sent in plain text only. Please configure your mail user agent to send plain text. The mailer at FreeBSD.org cannot resolve the IP address of the connecting host back to a symbolic name. Working reverse DNS is a standard requirement for accepting mail from a host. Set up reverse DNS for your mail server's IP address. Many home services (DSL, cable, dialup, etc.) will not give you this option. In this case, relay your email through your service provider's mail server. The hostname given in the EHLO/HELO part of the SMTP exchange cannot be resolved to an IP address. A fully qualified, resolvable host name is necessary in this part of the SMTP dialogue before mail will be accepted. If you do not have a host name that is registered in the DNS, then you should use your service provider's mail server to relay your mail. Your message had a message ID ending with the string localhost. Some mail user agents generate bad message IDs which will not be accepted. You will need to persuade your mail user agent to generate a valid message ID or else configure your mail transfer agent to rewrite them. Where can I find a free FreeBSD account? While FreeBSD does not provide open access to any of their servers, others do provide open access &unix; systems. The charge varies and limited services may be available. Arbornet, Inc, also known as M-Net, has been providing open access to &unix; systems since 1983. Starting on an Altos running System III, the site switched to BSD/OS in 1991. In June of 2000, the site switched again to FreeBSD. M-Net can be accessed via telnet and SSH and provides basic access to the entire FreeBSD software suite. However, network access is limited to members and patrons who donate to the system, which is run as a non-profit organization. M-Net also provides an bulletin board system and interactive chat. Grex provides a site very similar to M-Net including the same bulletin board and interactive chat software. However, the machine is a &sun; 4M and is running &sunos;. What is sup, and how do I use it? SUP stands for Software Update Protocol, and was developed by CMU for keeping their development trees in sync. We used it to keep remote sites in sync with our central development sources. SUP is not bandwidth friendly, and has been retired. The current recommended method to keep your sources up to date is CVSup What is the cute little red guy's name? He does not have one, and is just called the BSD daemon. If you insist upon using a name, call him beastie. Note that beastie is pronounced BSD. You can learn more about the BSD daemon on his home page. Can I use the BSD daemon image? Perhaps. The BSD daemon is copyrighted by Marshall Kirk McKusick. You will want to check his Statement on the Use of the BSD Daemon Figure for detailed usage terms. In summary, you are free to use the image in a tasteful manner, for personal use, so long as appropriate credit is given. If you want to use him commercially, you must contact Kirk McKusick. More details are available on the BSD Daemon's home page. Do you have any BSD daemon images I could use? You will find eps and Xfig drawings under /usr/share/examples/BSD_daemon/. I have seen an acronym or other term on the mailing lists and I do not understand what it means. Where should I look? Please see the &os Glossary. Why should I care what color the bikeshed is? The really, really short answer is that you should not. The somewhat longer answer is that just because you are capable of building a bikeshed does not mean you should stop others from building one just because you do not like the color they plan to paint it. This is a metaphor indicating that you need not argue about every little feature just because you know enough to do so. Some people have commented that the amount of noise generated by a change is inversely proportional to the complexity of the change. The longer and more complete answer is that after a very long argument about whether &man.sleep.1; should take fractional second arguments, &a.phk; posted a long message entitled A bike shed (any color will do) on greener grass.... The appropriate portions of that message are quoted below.
&a.phk; on freebsd-hackers, October 2, 1999 What is it about this bike shed? Some of you have asked me. It is a long story, or rather it is an old story, but it is quite short actually. C. Northcote Parkinson wrote a book in the early 1960s, called Parkinson's Law, which contains a lot of insight into the dynamics of management. [snip a bit of commentary on the book] In the specific example involving the bike shed, the other vital component is an atomic power-plant, I guess that illustrates the age of the book. Parkinson shows how you can go into the board of directors and get approval for building a multi-million or even billion dollar atomic power plant, but if you want to build a bike shed you will be tangled up in endless discussions. Parkinson explains that this is because an atomic plant is so vast, so expensive and so complicated that people cannot grasp it, and rather than try, they fall back on the assumption that somebody else checked all the details before it got this far. Richard P. Feynmann gives a couple of interesting, and very much to the point, examples relating to Los Alamos in his books. A bike shed on the other hand. Anyone can build one of those over a weekend, and still have time to watch the game on TV. So no matter how well prepared, no matter how reasonable you are with your proposal, somebody will seize the chance to show that he is doing his job, that he is paying attention, that he is here. In Denmark we call it setting your fingerprint. It is about personal pride and prestige, it is about being able to point somewhere and say There! I did that. It is a strong trait in politicians, but present in most people given the chance. Just think about footsteps in wet cement.
Χιούμορ και FreeBSD How cool is FreeBSD? Q. Has anyone done any temperature testing while running FreeBSD? I know &linux; runs cooler than DOS, but have never seen a mention of FreeBSD. It seems to run really hot. A. No, but we have done numerous taste tests on blindfolded volunteers who have also had 250 micrograms of LSD-25 administered beforehand. 35% of the volunteers said that FreeBSD tasted sort of orange, whereas &linux; tasted like purple haze. Neither group mentioned any significant variances in temperature. We eventually had to throw the results of this survey out entirely anyway when we found that too many volunteers were wandering out of the room during the tests, thus skewing the results. We think most of the volunteers are at Apple now, working on their new scratch and sniff GUI. It is a funny old business we are in! Seriously, both FreeBSD and &linux; use the HLT (halt) instruction when the system is idle thus lowering its energy consumption and therefore the heat it generates. Also if you have APM (advanced power management) configured, then FreeBSD can also put the CPU into a low power mode. Who is scratching in my memory banks?? Q. Is there anything odd that FreeBSD does when compiling the kernel which would cause the memory to make a scratchy sound? When compiling (and for a brief moment after recognizing the floppy drive upon startup, as well), a strange scratchy sound emanates from what appears to be the memory banks. A. Yes! You will see frequent references to daemons in the BSD documentation, and what most people do not know is that this refers to genuine, non-corporeal entities that now possess your computer. The scratchy sound coming from your memory is actually high-pitched whispering exchanged among the daemons as they best decide how to deal with various system administration tasks. If the noise gets to you, a good fdisk /mbr from DOS will get rid of them, but do not be surprised if they react adversely and try to stop you. In fact, if at any point during the exercise you hear the satanic voice of Bill Gates coming from the built-in speaker, take off running and do not ever look back! Freed from the counterbalancing influence of the BSD daemons, the twin demons of DOS and &windows; are often able to re-assert total control over your machine to the eternal damnation of your soul. Now that you know, given a choice you would probably prefer to get used to the scratchy noises, no? How many FreeBSD hackers does it take to change a lightbulb? One thousand, one hundred and sixty-nine: Twenty-three to complain to -CURRENT about the lights being out; Four to claim that it is a configuration problem, and that such matters really belong on -questions; Three to submit PRs about it, one of which is misfiled under doc and consists only of it's dark; One to commit an untested lightbulb which breaks buildworld, then back it out five minutes later; Eight to flame the PR originators for not including patches in their PRs; Five to complain about buildworld being broken; Thirty-one to answer that it works for them, and they must have cvsupped at a bad time; One to post a patch for a new lightbulb to -hackers; One to complain that he had patches for this three years ago, but when he sent them to -CURRENT they were just ignored, and he has had bad experiences with the PR system; besides, the proposed new lightbulb is non-reflexive; Thirty-seven to scream that lightbulbs do not belong in the base system, that committers have no right to do things like this without consulting the Community, and WHAT IS -CORE DOING ABOUT IT!? Two hundred to complain about the color of the bicycle shed; Three to point out that the patch breaks &man.style.9;; Seventeen to complain that the proposed new lightbulb is under GPL; Five hundred and eighty-six to engage in a flame war about the comparative advantages of the GPL, the BSD license, the MIT license, the NPL, and the personal hygiene of unnamed FSF founders; Seven to move various portions of the thread to -chat and -advocacy; One to commit the suggested lightbulb, even though it shines dimmer than the old one; Two to back it out with a furious flame of a commit message, arguing that FreeBSD is better off in the dark than with a dim lightbulb; Forty-six to argue vociferously about the backing out of the dim lightbulb and demanding a statement from -core; Eleven to request a smaller lightbulb so it will fit their Tamagotchi if we ever decide to port FreeBSD to that platform; Seventy-three to complain about the SNR on -hackers and -chat and unsubscribe in protest; Thirteen to post unsubscribe, How do I unsubscribe?, or Please remove me from the list, followed by the usual footer; One to commit a working lightbulb while everybody is too busy flaming everybody else to notice; Thirty-one to point out that the new lightbulb would shine 0.364% brighter if compiled with TenDRA (although it will have to be reshaped into a cube), and that FreeBSD should therefore switch to TenDRA instead of GCC; One to complain that the new lightbulb lacks fairings; Nine (including the PR originators) to ask what is MFC?; Fifty-seven to complain about the lights being out two weeks after the bulb has been changed. &a.nik; adds: I was laughing quite hard at this. And then I thought, Hang on, shouldn't there be '1 to document it.' in that list somewhere? And then I was enlightened :-) Where does data written to /dev/null go? It goes into a special data sink in the CPU where it is converted to heat which is vented through the heatsink / fan assembly. This is why CPU cooling is increasingly important; as people get used to faster processors, they become careless with their data and more and more of it ends up in /dev/null, overheating their CPUs. If you delete /dev/null (which effectively disables the CPU data sink) your CPU may run cooler but your system will quickly become constipated with all that excess data and start to behave erratically. If you have a fast network connection you can cool down your CPU by reading data out of /dev/random and sending it off somewhere; however you run the risk of overheating your network connection and / or angering your ISP, as most of the data will end up getting converted to heat by their equipment, but they generally have good cooling, so if you do not overdo it you should be OK. Paul Robinson adds: There are other methods. As every good sysadmin knows, it is part of standard practice to send data to the screen of interesting variety to keep all the pixies that make up your picture happy. Screen pixies (commonly mis-typed or re-named as pixels are categorized by the type of hat they wear (red, green or blue) and will hide or appear (thereby showing the color of their hat) whenever they receive a little piece of food. Video cards turn data into pixie-food, and then send them to the pixies - the more expensive the card, the better the food, so the better behaved the pixies are. They also need constant stimulation - this is why screen savers exist. To take your suggestions further, you could just throw the random data to console, thereby letting the pixies consume it. This causes no heat to be produced at all, keeps the pixies happy and gets rid of your data quite quickly, even if it does make things look a bit messy on your screen. Incidentally, as an ex-admin of a large ISP who experienced many problems attempting to maintain a stable temperature in a server room, I would strongly discourage people sending the data they do not want out to the network. The fairies who do the packet switching and routing get annoyed by it as well. Προχωρημένα Θέματα How can I learn more about FreeBSD's internals? At this time, there is only one book on FreeBSD-specific OS internals, namely The Design and Implementation of the FreeBSD Operating System by Marshall Kirk McKusick and George V. Neville-Neil, ISBN 0-201-70245-2, which focuses on version 5.X of FreeBSD. Additionally, much general &unix; knowledge is directly applicable to FreeBSD. For a list of relevant books, please check the Handbook's Operating System Internals Bibliography. How can I contribute to FreeBSD? Please see the article on Contributing to FreeBSD for specific advice on how to do this. Assistance is more than welcome! What are SNAPs and RELEASEs? There are currently three active/semi-active branches in the FreeBSD CVS Repository. (Earlier branches are only changed very rarely, which is why there are only three active branches of development): RELENG_5 AKA 5-STABLE RELENG_6 AKA 6-STABLE HEAD AKA -CURRENT AKA 7.X-CURRENT HEAD is not an actual branch tag, like the other two; it is simply a symbolic constant for the current, non-branched development stream which we simply refer to as -CURRENT. Right now, -CURRENT is the 7.X development stream; the 5-STABLE branch, RELENG_5, forked off from -CURRENT in October 2004, and the 6-STABLE branch, RELENG_6, forked off from -CURRENT in November 2005. How do I make my own custom release? Please see the Release Engineering article. Why does make world clobber my existing installed binaries? Yes, this is the general idea; as its name might suggest, make world rebuilds every system binary from scratch, so you can be certain of having a clean and consistent environment at the end (which is why it takes so long). If the environment variable DESTDIR is defined while running make world or make install, the newly-created binaries will be deposited in a directory tree identical to the installed one, rooted at ${DESTDIR}. Some random combination of shared libraries modifications and program rebuilds can cause this to fail in make world however. Why isn't cvsup.FreeBSD.org a round robin DNS entry to share the load amongst the various CVSup servers? While CVSup mirrors update from the master CVSup server hourly, this update might happen at any time during the hour. This means that some servers have newer code than others, even though all servers have code that is less than an hour old. If cvsup.FreeBSD.org was a round robin DNS entry that simply redirected users to a random CVSup server, running CVSup twice in a row could download code older than the code already on the system. Why does my system say (bus speed defaulted) when it boots? The Adaptec 1542 SCSI host adapters allow the user to configure their bus access speed in software. Previous versions of the 1542 driver tried to determine the fastest usable speed and set the adapter to that. We found that this breaks some users' systems, so you now have to define the TUNE_1542 kernel configuration option in order to have this take place. Using it on those systems where it works may make your disks run faster, but on those systems where it does not, your data could be corrupted. Can I follow -CURRENT with limited Internet access? Yes, you can do this without downloading the whole source tree by using the CTM facility. How did you split the distribution into 240k files? Newer BSD based systems have a option to &man.split.1; that allows them to split files on arbitrary byte boundaries. Here is an example from /usr/src/Makefile. bin-tarball: (cd ${DISTDIR}; \ tar cf - . \ gzip --no-name -9 -c | \ split -b 240640 - \ ${RELEASEDIR}/tarballs/bindist/bin_tgz.) I have written a kernel extension, who do I send it to? Please take a look at the article on Contributing to FreeBSD to learn how to submit code. And thanks for the thought! How are Plug N Play ISA cards detected and initialized? By: Frank Durda IV uhclem@nemesis.lonestar.org In a nutshell, there a few I/O ports that all of the PnP boards respond to when the host asks if anyone is out there. So when the PnP probe routine starts, it asks if there are any PnP boards present, and all the PnP boards respond with their model # to a I/O read of the same port, so the probe routine gets a wired-OR yes to that question. At least one bit will be on in that reply. Then the probe code is able to cause boards with board model IDs (assigned by Microsoft/Intel) lower than X to go off-line. It then looks to see if any boards are still responding to the query. If the answer was 0, then there are no boards with IDs above X. Now probe asks if there are any boards below X. If so, probe knows there are boards with a model numbers below X. Probe then asks for boards greater than X-(limit/4) to go off-line. If repeats the query. By repeating this semi-binary search of IDs-in-range enough times, the probing code will eventually identify all PnP boards present in a given machine with a number of iterations that is much lower than what 2^64 would take. The IDs are two 32-bit fields (hence 2ˆ64) + 8 bit checksum. The first 32 bits are a vendor identifier. They never come out and say it, but it appears to be assumed that different types of boards from the same vendor could have different 32-bit vendor ids. The idea of needing 32 bits just for unique manufacturers is a bit excessive. The lower 32 bits are a serial #, Ethernet address, something that makes this one board unique. The vendor must never produce a second board that has the same lower 32 bits unless the upper 32 bits are also different. So you can have multiple boards of the same type in the machine and the full 64 bits will still be unique. The 32 bit groups can never be all zero. This allows the wired-OR to show non-zero bits during the initial binary search. Once the system has identified all the board IDs present, it will reactivate each board, one at a time (via the same I/O ports), and find out what resources the given board needs, what interrupt choices are available, etc. A scan is made over all the boards to collect this information. This info is then combined with info from any ECU files on the hard disk or wired into the MLB BIOS. The ECU and BIOS PnP support for hardware on the MLB is usually synthetic, and the peripherals do not really do genuine PnP. However by examining the BIOS info plus the ECU info, the probe routines can cause the devices that are PnP to avoid those devices the probe code cannot relocate. Then the PnP devices are visited once more and given their I/O, DMA, IRQ and Memory-map address assignments. The devices will then appear at those locations and remain there until the next reboot, although there is nothing that says you cannot move them around whenever you want. There is a lot of oversimplification above, but you should get the general idea. Microsoft took over some of the primary printer status ports to do PnP, on the logic that no boards decoded those addresses for the opposing I/O cycles. I found a genuine IBM printer board that did decode writes of the status port during the early PnP proposal review period, but MS said tough. So they do a write to the printer status port for setting addresses, plus that use that address + 0x800, and a third I/O port for reading that can be located anywhere between 0x200 and 0x3ff. Can you assign a major number for a device driver I have written? &os.current; after February 2003 has a facility for dynamically and automatically allocating major numbers for device drivers at runtime. This mechanism is highly preferred to the older procedure of statically allocating device numbers. Some comments on this subject can be found in src/sys/conf/majors. If you are forced for some reason to use a static major number, the procedure for obtaining one depends on whether or not you plan on making the driver publicly available. If you do, then please send us a copy of the driver source code, plus the appropriate modifications to files.i386, a sample configuration file entry, and the appropriate &man.MAKEDEV.8; code to create any special files your device uses. If you do not, or are unable to because of licensing restrictions, then character major number 32 and block major number 8 have been reserved specifically for this purpose; please use them. In any case, we would appreciate hearing about your driver on the &a.hackers;. What about alternative layout policies for directories? In answer to the question of alternative layout policies for directories, the scheme that is currently in use is unchanged from what I wrote in 1983. I wrote that policy for the original fast filesystem, and never revisited it. It works well at keeping cylinder groups from filling up. As several of you have noted, it works poorly for find. Most filesystems are created from archives that were created by a depth first search (aka ftw). These directories end up being striped across the cylinder groups thus creating a worst possible scenario for future depth first searches. If one knew the total number of directories to be created, the solution would be to create (total / fs_ncg) per cylinder group before moving on. Obviously, one would have to create some heuristic to guess at this number. Even using a small fixed number like say 10 would make an order of magnitude improvement. To differentiate restores from normal operation (when the current algorithm is probably more sensible), you could use the clustering of up to 10 if they were all done within a ten second window. Anyway, my conclusion is that this is an area ripe for experimentation. Kirk McKusick, September 1998 How can I make the most of the data I see when my kernel panics? [This section was extracted from a mail written by &a.wpaul; on the freebsd-current mailing list by &a.des;, who fixed a few typos and added the bracketed comments] From: Bill Paul <wpaul@skynet.ctr.columbia.edu> Subject: Re: the fs fun never stops To: Ben Rosengart Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) Cc: current@FreeBSD.org Ben Rosengart posted the following panic message] > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x40 > fault code = supervisor read, page not present > instruction pointer = 0x8:0xf014a7e5 ^^^^^^^^^^ > stack pointer = 0x10:0xf4ed6f24 > frame pointer = 0x10:0xf4ed6f28 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 80 (mount) > interrupt mask = > trap number = 12 > panic: page fault [When] you see a message like this, it is not enough to just reproduce it and send it in. The instruction pointer value that I highlighted up there is important; unfortunately, it is also configuration dependent. In other words, the value varies depending on the exact kernel image that you are using. If you are using a GENERIC kernel image from one of the snapshots, then it is possible for somebody else to track down the offending function, but if you are running a custom kernel then only you can tell us where the fault occurred. What you should do is this: Write down the instruction pointer value. Note that the 0x8: part at the beginning is not significant in this case: it is the 0xf0xxxxxx part that we want. When the system reboots, do the following: &prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxx where f0xxxxxx is the instruction pointer value. The odds are you will not get an exact match since the symbols in the kernel symbol table are for the entry points of functions and the instruction pointer address will be somewhere inside a function, not at the start. If you do not get an exact match, omit the last digit from the instruction pointer value and try again, i.e.: &prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxx If that does not yield any results, chop off another digit. Repeat until you get some sort of output. The result will be a possible list of functions which caused the panic. This is a less than exact mechanism for tracking down the point of failure, but it is better than nothing. I see people constantly show panic messages like this but rarely do I see someone take the time to match up the instruction pointer with a function in the kernel symbol table. The best way to track down the cause of a panic is by capturing a crash dump, then using &man.gdb.1; to generate a stack trace on the crash dump. In any case, the method I normally use is this: Set up a kernel config file, optionally adding options DDB if you think you need the kernel debugger for something. (I use this mainly for setting breakpoints if I suspect an infinite loop condition of some kind.) Use config -g KERNELCONFIG to set up the build directory. cd /sys/compile/KERNELCONFIG; make Wait for kernel to finish compiling. make install reboot The &man.make.1; process will have built two kernels. kernel and kernel.debug. kernel was installed as /kernel, while kernel.debug can be used as the source of debugging symbols for &man.gdb.1;. To make sure you capture a crash dump, you need edit /etc/rc.conf and set dumpdev to point to your swap partition. This will cause the &man.rc.8; scripts to use the &man.dumpon.8; command to enable crash dumps. You can also run &man.dumpon.8; manually. After a panic, the crash dump can be recovered using &man.savecore.8;; if dumpdev is set in /etc/rc.conf, the &man.rc.8; scripts will run &man.savecore.8; automatically and put the crash dump in /var/crash. FreeBSD crash dumps are usually the same size as the physical RAM size of your machine. That is, if you have 64MB of RAM, you will get a 64MB crash dump. Therefore you must make sure there is enough space in /var/crash to hold the dump. Alternatively, you run &man.savecore.8; manually and have it recover the crash dump to another directory where you have more room. It is possible to limit the size of the crash dump by using options MAXMEM=(foo) to set the amount of memory the kernel will use to something a little more sensible. For example, if you have 128MB of RAM, you can limit the kernel's memory usage to 16MB so that your crash dump size will be 16MB instead of 128MB. Once you have recovered the crash dump, you can get a stack trace with &man.gdb.1; as follows: &prompt.user; gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 (gdb) where Note that there may be several screens worth of information; ideally you should use &man.script.1; to capture all of them. Using the unstripped kernel image with all the debug symbols should show the exact line of kernel source code where the panic occurred. Usually you have to read the stack trace from the bottom up in order to trace the exact sequence of events that lead to the crash. You can also use &man.gdb.1; to print out the contents of various variables or structures in order to examine the system state at the time of the crash. Now, if you are really insane and have a second computer, you can also configure &man.gdb.1; to do remote debugging such that you can use &man.gdb.1; on one system to debug the kernel on another system, including setting breakpoints, single-stepping through the kernel code, just like you can do with a normal user-mode program. I have not played with this yet as I do not often have the chance to set up two machines side by side for debugging purposes. [Bill adds: "I forgot to mention one thing: if you have DDB enabled and the kernel drops into the debugger, you can force a panic (and a crash dump) just by typing 'panic' at the ddb prompt. It may stop in the debugger again during the panic phase. If it does, type 'continue' and it will finish the crash dump." -ed] Why has dlsym() stopped working for ELF executables? The ELF toolchain does not, by default, make the symbols defined in an executable visible to the dynamic linker. Consequently dlsym() searches on handles obtained from calls to dlopen(NULL, flags) will fail to find such symbols. If you want to search, using dlsym(), for symbols present in the main executable of a process, you need to link the executable using the option to the ELF linker (&man.ld.1;). How can I increase or reduce the kernel address space? By default, the kernel address space is 256 MB on FreeBSD 3.X and 1 GB on FreeBSD 4.X. If you run a network-intensive server (e.g. a large FTP or HTTP server), you might find that 256 MB is not enough. So how do you increase the address space? There are two aspects to this. First, you need to tell the kernel to reserve a larger portion of the address space for itself. Second, since the kernel is loaded at the top of the address space, you need to lower the load address so it does not bump its head against the ceiling. The first goal is achieved by increasing the value of NKPDE in src/sys/i386/include/pmap.h. Here is what it looks like for a 1 GB address space: #ifndef NKPDE #ifdef SMP #define NKPDE 254 /* addressable number of page tables/pde's */ #else #define NKPDE 255 /* addressable number of page tables/pde's */ #endif /* SMP */ #endif To find the correct value of NKPDE, divide the desired address space size (in megabytes) by four, then subtract one for UP and two for SMP. To achieve the second goal, you need to compute the correct load address: simply subtract the address space size (in bytes) from 0x100100000; the result is 0xc0100000 for a 1 GB address space. Set LOAD_ADDRESS in src/sys/i386/conf/Makefile.i386 to that value; then set the location counter in the beginning of the section listing in src/sys/i386/conf/kernel.script to the same value, as follows: OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(btext) SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0xc0100000 + SIZEOF_HEADERS; .interp : { *(.interp) } Then reconfig and rebuild your kernel. You will probably have problems with &man.ps.1; &man.top.1; and the like; make world should take care of it (or a manual rebuild of libkvm, &man.ps.1; and &man.top.1; after copying the patched pmap.h to /usr/include/vm/. NOTE: the size of the kernel address space must be a multiple of four megabytes. [&a.dg; adds: I think the kernel address space needs to be a power of two, but I am not certain about that. The old(er) boot code used to monkey with the high order address bits and I think expected at least 256MB granularity.] Ευχαριστίες This innocent little Frequently Asked Questions document has been written, rewritten, edited, folded, spindled, mutilated, eviscerated, contemplated, discombobulated, cogitated, regurgitated, rebuilt, castigated, and reinvigorated over the last decade, by a cast of hundreds if not thousands. Repeatedly. We wish to thank every one of the people responsible, and we encourage you to to join them in making this FAQ even better. &bibliography;
+ + diff --git a/el_GR.ISO8859-7/books/handbook/Makefile b/el_GR.ISO8859-7/books/handbook/Makefile index eb4d2fd851..cd8ed8df49 100644 --- a/el_GR.ISO8859-7/books/handbook/Makefile +++ b/el_GR.ISO8859-7/books/handbook/Makefile @@ -1,313 +1,318 @@ # # $FreeBSD$ # # Μορφοποίηση του Εγχειριδίου του FreeBSD # # %SOURCE% en_US.ISO8859-1/books/handbook/Makefile # %SRCID% 1.111 # # ------------------------------------------------------------------------ # # Μεταβλητές σχετικές με το Εγχειρίδιο # # WITH_PGPKEYS Η εκτυπώσιμη μορφή του εγχειριδίου περιέχει κανονικά # μόνο τα fingerprints από τα PGP κλειδιά. Αν θέλετε # να εκτυπώνονται ολόκληρα τα κλειδιά, τότε αυτή η # μεταβλητή πρέπει να είναι 'defined'. Αυτή η επιλογή # δεν επηρεάζει σε τίποτα τις μορφές HTML. # # Make targets μόνο για το Εγχειρίδιο # # pgpkeyring This target will read the contents of # pgpkeys/chapter.sgml and will extract all of # the pgpkeys to standard out. This output can then # be redirected into a file and distributed as a # public keyring of FreeBSD developers that can # easily be imported into PGP/GPG. # # ------------------------------------------------------------------------ # # Για να προσθέσετε ένα νέο κεφάλαιο στο Εγχειρίδιο: # # - Ενημερώστε αυτό το Makefile, το chapters.ent και το book.sgml # - Προσθέστε μια σύντομη περιγραφή του κεφαλαίου στο preface/preface.sgml # # ------------------------------------------------------------------------ .PATH: ${.CURDIR}/../../share/sgml/glossary MAINTAINER= doc@FreeBSD.org DOC?= book FORMATS?= html-split HAS_INDEX= true USE_PS2PDF= yes INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= IMAGES_EN = advanced-networking/isdn-bus.eps IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps IMAGES_EN+= advanced-networking/natd.eps IMAGES_EN+= advanced-networking/net-routing.pic IMAGES_EN+= advanced-networking/static-routes.pic IMAGES_EN+= geom/striping.pic IMAGES_EN+= install/adduser1.scr IMAGES_EN+= install/adduser2.scr IMAGES_EN+= install/adduser3.scr IMAGES_EN+= install/boot-loader-menu.scr IMAGES_EN+= install/boot-mgr.scr IMAGES_EN+= install/config-country.scr IMAGES_EN+= install/console-saver1.scr IMAGES_EN+= install/console-saver2.scr IMAGES_EN+= install/console-saver3.scr IMAGES_EN+= install/console-saver4.scr IMAGES_EN+= install/disklabel-auto.scr IMAGES_EN+= install/disklabel-ed1.scr IMAGES_EN+= install/disklabel-ed2.scr IMAGES_EN+= install/disklabel-fs.scr IMAGES_EN+= install/disklabel-root1.scr IMAGES_EN+= install/disklabel-root2.scr IMAGES_EN+= install/disklabel-root3.scr IMAGES_EN+= install/disk-layout.eps IMAGES_EN+= install/dist-set.scr IMAGES_EN+= install/dist-set2.scr IMAGES_EN+= install/docmenu1.scr IMAGES_EN+= install/ed0-conf.scr IMAGES_EN+= install/ed0-conf2.scr IMAGES_EN+= install/edit-inetd-conf.scr IMAGES_EN+= install/fdisk-drive1.scr IMAGES_EN+= install/fdisk-drive2.scr IMAGES_EN+= install/fdisk-edit1.scr IMAGES_EN+= install/fdisk-edit2.scr IMAGES_EN+= install/ftp-anon1.scr IMAGES_EN+= install/ftp-anon2.scr IMAGES_EN+= install/hdwrconf.scr IMAGES_EN+= install/keymap.scr IMAGES_EN+= install/main1.scr IMAGES_EN+= install/mainexit.scr IMAGES_EN+= install/main-std.scr IMAGES_EN+= install/main-options.scr IMAGES_EN+= install/main-doc.scr IMAGES_EN+= install/main-keymap.scr IMAGES_EN+= install/media.scr IMAGES_EN+= install/mouse1.scr IMAGES_EN+= install/mouse2.scr IMAGES_EN+= install/mouse3.scr IMAGES_EN+= install/mouse4.scr IMAGES_EN+= install/mouse5.scr IMAGES_EN+= install/mouse6.scr IMAGES_EN+= install/mta-main.scr IMAGES_EN+= install/net-config-menu1.scr IMAGES_EN+= install/net-config-menu2.scr IMAGES_EN+= install/nfs-server-edit.scr IMAGES_EN+= install/ntp-config.scr IMAGES_EN+= install/options.scr IMAGES_EN+= install/pkg-cat.scr IMAGES_EN+= install/pkg-confirm.scr IMAGES_EN+= install/pkg-install.scr IMAGES_EN+= install/pkg-sel.scr IMAGES_EN+= install/probstart.scr IMAGES_EN+= install/routed.scr IMAGES_EN+= install/security.scr IMAGES_EN+= install/sysinstall-exit.scr IMAGES_EN+= install/timezone1.scr IMAGES_EN+= install/timezone2.scr IMAGES_EN+= install/timezone3.scr IMAGES_EN+= install/userconfig.scr IMAGES_EN+= install/userconfig2.scr IMAGES_EN+= mail/mutt1.scr IMAGES_EN+= mail/mutt2.scr IMAGES_EN+= mail/mutt3.scr IMAGES_EN+= mail/pine1.scr IMAGES_EN+= mail/pine2.scr IMAGES_EN+= mail/pine3.scr IMAGES_EN+= mail/pine4.scr IMAGES_EN+= mail/pine5.scr IMAGES_EN+= install/example-dir1.eps IMAGES_EN+= install/example-dir2.eps IMAGES_EN+= install/example-dir3.eps IMAGES_EN+= install/example-dir4.eps IMAGES_EN+= install/example-dir5.eps IMAGES_EN+= security/ipsec-network.pic IMAGES_EN+= security/ipsec-crypt-pkt.pic IMAGES_EN+= security/ipsec-encap-pkt.pic IMAGES_EN+= security/ipsec-out-pkt.pic IMAGES_EN+= vinum/vinum-concat.pic IMAGES_EN+= vinum/vinum-mirrored-vol.pic IMAGES_EN+= vinum/vinum-raid10-vol.pic IMAGES_EN+= vinum/vinum-raid5-org.pic IMAGES_EN+= vinum/vinum-simple-vol.pic IMAGES_EN+= vinum/vinum-striped-vol.pic IMAGES_EN+= vinum/vinum-striped.pic IMAGES_EN+= virtualization/parallels-freebsd1.png IMAGES_EN+= virtualization/parallels-freebsd2.png IMAGES_EN+= virtualization/parallels-freebsd3.png IMAGES_EN+= virtualization/parallels-freebsd4.png IMAGES_EN+= virtualization/parallels-freebsd5.png IMAGES_EN+= virtualization/parallels-freebsd6.png IMAGES_EN+= virtualization/parallels-freebsd7.png IMAGES_EN+= virtualization/parallels-freebsd8.png IMAGES_EN+= virtualization/parallels-freebsd9.png IMAGES_EN+= virtualization/parallels-freebsd10.png IMAGES_EN+= virtualization/parallels-freebsd11.png IMAGES_EN+= virtualization/parallels-freebsd12.png IMAGES_EN+= virtualization/parallels-freebsd13.png IMAGES_EN+= virtualization/virtualpc-freebsd1.png IMAGES_EN+= virtualization/virtualpc-freebsd2.png IMAGES_EN+= virtualization/virtualpc-freebsd3.png IMAGES_EN+= virtualization/virtualpc-freebsd4.png IMAGES_EN+= virtualization/virtualpc-freebsd5.png IMAGES_EN+= virtualization/virtualpc-freebsd6.png IMAGES_EN+= virtualization/virtualpc-freebsd7.png IMAGES_EN+= virtualization/virtualpc-freebsd8.png IMAGES_EN+= virtualization/virtualpc-freebsd9.png IMAGES_EN+= virtualization/virtualpc-freebsd10.png IMAGES_EN+= virtualization/virtualpc-freebsd11.png IMAGES_EN+= virtualization/virtualpc-freebsd12.png IMAGES_EN+= virtualization/virtualpc-freebsd13.png IMAGES_EN+= virtualization/vmware-freebsd01.png IMAGES_EN+= virtualization/vmware-freebsd02.png IMAGES_EN+= virtualization/vmware-freebsd03.png IMAGES_EN+= virtualization/vmware-freebsd04.png IMAGES_EN+= virtualization/vmware-freebsd05.png IMAGES_EN+= virtualization/vmware-freebsd06.png IMAGES_EN+= virtualization/vmware-freebsd07.png IMAGES_EN+= virtualization/vmware-freebsd08.png IMAGES_EN+= virtualization/vmware-freebsd09.png IMAGES_EN+= virtualization/vmware-freebsd10.png IMAGES_EN+= virtualization/vmware-freebsd11.png IMAGES_EN+= virtualization/vmware-freebsd12.png # Images from the cross-document image library IMAGES_LIB= callouts/1.png IMAGES_LIB+= callouts/2.png IMAGES_LIB+= callouts/3.png IMAGES_LIB+= callouts/4.png IMAGES_LIB+= callouts/5.png IMAGES_LIB+= callouts/6.png IMAGES_LIB+= callouts/7.png IMAGES_LIB+= callouts/8.png IMAGES_LIB+= callouts/9.png IMAGES_LIB+= callouts/10.png IMAGES_LIB+= callouts/11.png IMAGES_LIB+= callouts/12.png IMAGES_LIB+= callouts/13.png IMAGES_LIB+= callouts/14.png IMAGES_LIB+= callouts/15.png # # Η λίστα SRCS περιέχει όλα τα SGML αρχεία που αποτελούν μέρη του κειμένου. # Αλλαγές σε οποιοδήποτε από αυτά τα αρχεία προκαλούν rebuild. # # SGML content SRCS+= audit/chapter.sgml SRCS+= book.sgml SRCS+= colophon.sgml SRCS+= dtrace/chapter.sgml SRCS+= freebsd-glossary.sgml SRCS+= advanced-networking/chapter.sgml SRCS+= basics/chapter.sgml SRCS+= bibliography/chapter.sgml SRCS+= boot/chapter.sgml SRCS+= config/chapter.sgml SRCS+= cutting-edge/chapter.sgml SRCS+= desktop/chapter.sgml SRCS+= disks/chapter.sgml SRCS+= eresources/chapter.sgml SRCS+= firewalls/chapter.sgml SRCS+= filesystems/chapter.sgml SRCS+= geom/chapter.sgml SRCS+= install/chapter.sgml SRCS+= introduction/chapter.sgml SRCS+= jails/chapter.sgml SRCS+= kernelconfig/chapter.sgml SRCS+= l10n/chapter.sgml SRCS+= linuxemu/chapter.sgml SRCS+= mac/chapter.sgml SRCS+= mail/chapter.sgml SRCS+= mirrors/chapter.sgml SRCS+= multimedia/chapter.sgml SRCS+= network-servers/chapter.sgml SRCS+= pgpkeys/chapter.sgml SRCS+= ports/chapter.sgml SRCS+= ppp-and-slip/chapter.sgml SRCS+= preface/preface.sgml SRCS+= printing/chapter.sgml SRCS+= security/chapter.sgml SRCS+= serialcomms/chapter.sgml SRCS+= updating/chapter.sgml SRCS+= users/chapter.sgml SRCS+= vinum/chapter.sgml SRCS+= virtualization/chapter.sgml SRCS+= x11/chapter.sgml # Entities SRCS+= chapters.ent SYMLINKS= ${DESTDIR} index.html handbook.html # Turn on all the chapters. CHAPTERS?= ${SRCS:M*chapter.sgml} SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./} SGMLFLAGS+= -i chap.freebsd-glossary pgpkeyring: pgpkeys/chapter.sgml @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC} # # Handbook-specific variables # .if defined(WITH_PGPKEYS) JADEFLAGS+= -V withpgpkeys .endif URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. # # rules generating lists of mirror site from XML database. # XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \ mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \ eresources:::eresources.sgml.www.inc.tmp DEPENDSET.DEFAULT= transtable mirror XSLT.DEFAULT= ${XSL_MIRRORS} XML.DEFAULT= ${XML_MIRRORS} NO_TIDY.DEFAULT= yes PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \ --param 'proto' "'ftp'" \ --param 'target' "'handbook/mirrors/chapter.sgml'" PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \ --param 'proto' "'cvsup'" \ --param 'target' "'handbook/mirrors/chapter.sgml'" PARAMS.eresources+= --param 'type' "'www'" \ --param 'proto' "'http'" \ --param 'target' "'handbook/eresources/chapter.sgml'" SRCS+= mirrors.sgml.ftp.inc \ mirrors.sgml.cvsup.inc \ eresources.sgml.www.inc CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \ mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \ eresources.sgml.www.inc eresources.sgml.www.inc.tmp .include "${DOC_PREFIX}/share/mk/doc.project.mk" .for p in ftp cvsup mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,'\ < $@.tmp > $@ || (${RM} -f $@ && false) .endfor eresources.sgml.www.inc: eresources.sgml.www.inc.tmp ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>,;s,,,'\ < $@.tmp > $@ || (${RM} -f $@ && false) + +# Local variables: +# mode: makefile-bsdmake +# coding: iso-8859-7 +# End: diff --git a/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml index 3aa4fdd3bf..7aacabe3ed 100644 --- a/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml @@ -1,699 +1,700 @@ Βιβλιογραφία Αν και τα manual pages παρέχουν μία επίσημη αναφορά για ξεχωριστά τμήματα του FreeBSD λειτουργικού συστήματος, έχουν κακή φήμη για το ότι δεν επεξηγούν πως να ενώσεις τα τμήματα μαζί για να κάνεις όλο το λειτουργικό σύστημα να λειτουργεί ομαλά. Για αυτό, δεν υπάρχει υποκατάστατο από ένα καλό βιβλίο στην διαχείριση συστημάτων &unix; και ένα καλό εγχειρίδιο χρήστη. Βιβλία & Περιοδικά σχετικά με το FreeBSD Διεθνή βιβλία & περιοδικά: Using FreeBSD (σε Παραδοσιακά Κινέζικα). FreeBSD Unleashed (Μετάφραση σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Machine Press. ISBN 7-111-10201-0. FreeBSD From Scratch First Edition (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Machine Press. ISBN 7-111-07482-3. FreeBSD From Scratch Second Edition (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Machine Press. ISBN 7-111-10286-X. FreeBSD Handbook Second Edition (Μετάφραση σε Απλοποιημένα Κινέζικα), εκδόθηκε από την Posts & Telecom Press. ISBN 7-115-10541-3. FreeBSD 3.x Internet (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την Tsinghua University Press. ISBN 7-900625-66-6. FreeBSD & Windows (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Railway Publishing House. ISBN 7-113-03845-X FreeBSD Internet Services HOWTO (σε Απλοποιημένα Κινέζικα), εκδόθηκε από την China Railway Publishing House. ISBN 7-113-03423-3 FreeBSD for PC 98'ers (στα Γιαπωνέζικα), εκδόθηκε από την SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την CUTT. ISBN 4-906391-22-2 C3055 P2400E. Complete Introduction to FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E. Personal UNIX Starter Kit FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την ASCII. ISBN 4-7561-1733-3 P3000E. FreeBSD Handbook (Γιαπωνέζικη μετάφραση), εκδόθηκε από την ASCII. ISBN 4-7561-1580-2 P3800E. FreeBSD mit Methode (στα Γερμανικά), εκδόθηκε από την Computer und Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. FreeBSD 4 - Installieren, Konfigurieren, Administrieren (στα Γερμανικά), εκδόθηκε από την Computer und Literatur Verlag, 2001. ISBN 3-932311-88-4. FreeBSD 5 - Installieren, Konfigurieren, Administrieren (στα Γερμανικά), εκδόθηκε από την Computer und Literatur Verlag, 2003. ISBN 3-936546-06-1. FreeBSD de Luxe (στα Γερμανικά), εκδόθηκε από την Verlag Modere Industrie, 2003. ISBN 3-8266-1343-0. FreeBSD Install and Utilization Manual (στα Γιαπωνέζικα), εκδόθηκε από την Mainichi Communications Inc.. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo Building Internet Server with FreeBSD (στην Ινδονησιακή γλώσσα), εκδόθηκε από την Elex Media Komputindo. Absolute BSD: The Ultimate Guide to FreeBSD (Μετάφραση σε Παραδοσιακά Κινέζικα), εκδόθηκε από την GrandTech Press, 2003. ISBN 986-7944-92-5. The FreeBSD 6.0 Book (σε Παραδοσιακά Κινέζικα), εκδόθηκε από την Drmaster, 2006. ISBN 9-575-27878-X. Βιβλία & περιοδικά στην Αγγλική γλώσσα: Absolute BSD: The Ultimate Guide to FreeBSD, εκδόθηκε από την No Starch Press, 2002. ISBN: 1886411743 The Complete FreeBSD, εκδόθηκε από την O'Reilly, 2003. ISBN: 0596005164 The FreeBSD Corporate Networker's Guide, εκδόθηκε από την Addison-Wesley, 2000. ISBN: 0201704811 FreeBSD: An Open-Source Operating System for Your Personal Computer, εκδόθηκε από την The Bit Tree Press, 2001. ISBN: 0971204500 Teach Yourself FreeBSD in 24 Hours, εκδόθηκε από την Sams, 2002. ISBN: 0672324245 FreeBSD 6 Unleashed, εκδόθηκε από την Sams, 2006. ISBN: 0672328755 FreeBSD: The Complete Reference, εκδόθηκε από την McGrawHill, 2003. ISBN: 0072224096 Οδηγοί χρήστη Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9 Computer Systems Research Group, UC Berkeley. 4.4BSD User's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-076-7 UNIX in a Nutshell. O'Reilly & Associates, Inc., 1990. ISBN 093717520X Mui, Linda. What You Need To Know When You Can't Find Your UNIX System Administrator. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-104-6 Το Ohio State University έγραψε τα Εισαγωγικά μαθήματα UNIX που διατίθενται σε HTML και σε μορφή PostScript. Μια Ιταλική μετάφραση αυτού του κειμένου διατίθεται ως μέρος του FreeBSD Italian Documentation Project. Jpman Project, Japan FreeBSD Users Group. FreeBSD User's Reference Manual (Japanese translation). Mainichi Communications Inc., 1998. ISBN4-8399-0088-4 P3800E. Το Edinburgh University έγραψε ένα Online οδηγό για νέους στο περιβάλλον του UNIX. Οδηγοί διαχειριστή Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. O'Reilly & Associates, Inc., 2001. ISBN 1-59600-158-4 Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5 Costales, Brian, et al. Sendmail, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0 Frisch, Æleen. Essential System Administration, 2nd Ed. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5 Hunt, Craig. TCP/IP Network Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-322-7 Nemeth, Evi. UNIX System Administration Handbook. 3rd Ed. Prentice Hall, 2000. ISBN 0-13-020601-6 Stern, Hal Managing NFS and NIS O'Reilly & Associates, Inc., 1991. ISBN 0-937175-75-7 Jpman Project, Japan FreeBSD Users Group. FreeBSD System Administrator's Manual (Γιαπωνέζικη μετάφραση). Mainichi Communications Inc., 1998. ISBN4-8399-0109-0 P3300E. Dreyfus, Emmanuel. Cahiers de l'Admin: BSD 2nd Ed. (στα Γαλλικά), Eyrolles, 2004. ISBN 2-212-11463-X Οδηγοί προγραμματιστών Asente, Paul, Converse, Diana, and Swick, Ralph. X Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-078-3 Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-079-1 Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3 Kernighan, Brian and Dennis M. Ritchie. The C Programming Language. 2nd Ed. PTR Prentice Hall, 1988. ISBN 0-13-110362-8 Lehey, Greg. Porting UNIX Software. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7 Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN 0-13-131509-9 Spinellis, Diomidis. Code Reading: The Open Source Perspective. Addison-Wesley, 2003. ISBN 0-201-79940-5 Spinellis, Diomidis. Code Quality: The Open Source Perspective. Addison-Wesley, 2006. ISBN 0-321-16607-8 Stevens, W. Richard and Stephen A. Rago. Advanced Programming in the UNIX Environment. 2nd Ed. Reading, Mass. : Addison-Wesley, 2005. ISBN 0-201-43307-9 Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X Wells, Bill. Writing Serial Drivers for UNIX. Dr. Dobb's Journal. 19(15), December 1994. pp68-71, 97-99. Το εσωτερικό του λειτουργικού συστήματος Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 Jolitz, William. Porting UNIX to the 386. Dr. Dobb's Journal. January 1991-July 1992. Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 Leffler, Samuel J., Marshall Kirk McKusick, The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 (Το κεφάλαιο 2 από αυτό το βιβλίο διατίθεται online ως μέρος του FreeBSD Documentation Project, και το κεφάλαιο 9 εδώ.) Marshall Kirk McKusick, George V. Neville-Neil The Design and Implementation of the FreeBSD Operating System. Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2 Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall, 1996. ISBN 0-13-101908-2 Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2: The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X Αναφορές ασφαλείας Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 Garfinkel, Simson and Gene Spafford. Practical UNIX & Internet Security. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN 1-56592-148-8 Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly & Associates, Inc., 1995. ISBN 1-56592-098-8 Αναφορές υλικού Anderson, Don and Tom Shanley. Pentium Processor System Architecture. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and Super VGA Cards. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 Η Intel Corporation δημοσιεύει τεκμηρίωση για τις CPUs, τα chipsets και πρότυπα στο developer web site, συνήθως ως αρχεία PDF. Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2 Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4 Ιστορία του &unix; Lion, John Lion's Commentary on UNIX, 6th Ed. With Source Code. ITP Media Group, 1996. ISBN 1573980137 Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT Press, 1996. ISBN 0-262-68092-0. Γνωστό και ως το Jargon File Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Εκτός κυκλοφορίας, αλλά διατίθεται online. Don Libes, Sandy Ressler Life with UNIX — special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 The BSD family tree. η το /usr/share/misc/bsd-family-tree σε ένα FreeBSD μηχάνημα. The BSD Release Announcements collection. 1997. Networked Computer Science Technical Reports Library. Παλαιές BSD εκδόσεις από το Computer Systems Research group (CSRG). : Το 4CD set έχει όλες τις BSD εκδόσεις από την 1BSD μέχρι την 4.4BSD και την 4.4BSD-Lite2 (αλλά όχι την 2.11BSD, δυστυχώς). Το τελευταίο δισκάκι περιέχει επίσης τον τελικό πηγαίο κώδικα συν τα αρχεία SCCS. Περιοδικά και εφημερίδες The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838 Sys Admin — The Journal for UNIX System Administrators Miller Freeman, Inc., ISSN 1061-2688 freeX — Das Magazin für Linux - BSD - UNIX (στα Γερμανικά) Computer- und Literaturverlag GmbH, ISSN 1436-7033 diff --git a/el_GR.ISO8859-7/books/handbook/book.sgml b/el_GR.ISO8859-7/books/handbook/book.sgml index c645987560..ee07e78eef 100644 --- a/el_GR.ISO8859-7/books/handbook/book.sgml +++ b/el_GR.ISO8859-7/books/handbook/book.sgml @@ -1,374 +1,375 @@ %books.ent; %chapters; %txtfiles; %pgpkeys; ]> Εγχειρίδιο του FreeBSD Ομάδα Τεκμηρίωσης του FreeBSD Φεβρουάριος 1999 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 Ομάδα Τεκμηρίωσης του FreeBSD &bookinfo.legalnotice; &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.3ware; &tm-attrib.arm; &tm-attrib.adaptec; &tm-attrib.adobe; &tm-attrib.apple; &tm-attrib.corel; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.heidelberger; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.intuit; &tm-attrib.linux; &tm-attrib.lsilogic; &tm-attrib.m-systems; &tm-attrib.macromedia; &tm-attrib.microsoft; &tm-attrib.netscape; &tm-attrib.nexthop; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.powerquest; &tm-attrib.realnetworks; &tm-attrib.redhat; &tm-attrib.sap; &tm-attrib.sun; &tm-attrib.symantec; &tm-attrib.themathworks; &tm-attrib.thomson; &tm-attrib.usrobotics; &tm-attrib.vmware; &tm-attrib.waterloomaple; &tm-attrib.wolframresearch; &tm-attrib.xfree86; &tm-attrib.xiph; &tm-attrib.general; Καλώς ήρθατε στο FreeBSD! Αυτό το εγχειρίδιο καλύπτει την εγκατάσταση και την καθημερινή χρήση του FreeBSD &rel2.current;-RELEASE και του FreeBSD &rel.current;-RELEASE. Το βιβλίο αυτό είναι μόνιμα υπό βελτίωση και ανάπτυξη και αποτελεί το αποτέλεσμα της δουλειάς πολλών ατόμων, οπότε κάποια τμήματα μπορεί να περιέχουν σχετικά ξεπερασμένες πληροφορίες και να χρειάζονται ανανέωση. Αν ενδιαφέρεστε να μας βοηθήσετε σε αυτό το έργο, επικοινωνήστε μαζί μας μέσω της διεύθυνσης &a.doc;. Η τελευταία έκδοση αυτού του κειμένου είναι πάντα διαθέσιμη από την ιστοσελίδα του &os; (παλιότερες εκδόσεις μπορείτε να βρείτε στη διεύθυνση ). Μπορείτε επίσης να μεταφορτώσετε στον υπολογιστή σας το ίδιο βιβλίο σε άλλες μορφές αρχείου και με διάφορες μορφές συμπίεσης από τον εξυπηρετητή FTP του &os; ή ένα από τα πολλά mirror sites. Αν προτιμάτε ένα τυπωμένο αντίτυπο, μπορείτε να αγοράσετε ένα αντίγραφο του Εγχειριδίου, από το FreeBSD Mall. Μπορείτε επίσης να ψάξετε σε όλο το βιβλίο. &chap.preface; Ξεκινώντας με το FreeBSD Αυτό το μέρος του Εγχειριδίου του &os; είναι για τους χρήστες και τους διαχειριστές συστημάτων που δεν έχουν ήδη μεγάλη εμπειρία με το &os;. Τα κεφάλαια που ακολουθούν: Είναι εισαγωγικά για το &os; Σας καθοδηγούν κατά τη διάρκεια της διαδικασίας εγκατάστασης Σας εισάγουν στις βασικές έννοιες του &unix; Περιγράφουν τη διαδικασία εγκατάστασης της πληθώρας εφαρμογών που είναι διαθέσιμες στο &os; Σας εισάγουν στο γραφικό περιβάλλον του &unix;, το σύστημα Χ, και σας καθοδηγούν σχετικά με τις αρχικές ρυθμίσεις ενός γραφικού περιβάλλοντος εργασίας, με το οποίο μπορείτε να είστε ακόμα πιο παραγωγικοί Σε αυτό το τμήμα του βιβλίου, έχουμε προσπαθήσει να μειώσουμε στο ελάχιστο τις αναφορές σε τμήματα ή κεφάλαια του Εγχειριδίου τα οποία δεν έχετε ήδη διαβάσει. Αυτό αποσκοπεί στο να γίνει πιο εύκολη η ανάγνωση του τμήματος αυτού του Εγχειριδίου από την αρχή μέχρι και το τέλος, χωρίς να απαιτείται να ψάχνετε συνεχώς τα επόμενα ή προηγούμενα τμήματα. Βασικές Εργασίες Τώρα που έχουμε καλύψει πλέον τα βασικά θέματα, αυτό το τμήμα του Εγχειριδίου του &os; περιγράφει τις πιο βασικές εργασίες και τα πιο δημοφιλή χαρακτηριστικά του &os;. Τα κεφάλαια αυτού του τμήματος: Παρουσιάζουν τις πιο δημοφιλείς και χρήσιμες εφαρμογές και περιβάλλοντα εργασίας: φυλλομετρητές (browsers), γραφικά περιβάλλοντα εργασίας, εργαλεία προβολής διαφόρων μορφών αρχείων, κλπ. Παρουσιάζουν ορισμένα από τα εργαλεία πολυμέσων (multimedia) που είναι διαθέσιμα για το &os; Εξηγούν τη διαδικασία μεταγλώττισης και εγκατάστασης ενός προσαρμοσμένου πυρήνα για το &os;, έτσι ώστε να ενεργοποιηθούν έξτρα χαρακτηριστικά για το σύστημά σας. Περιγράφουν σε βάθος το σύστημα εκτυπώσεων, τόσο για εκτυπωτές που είναι απευθείας συνδεδεμένοι με το σταθμό εργασίας σας, όσο και για δικτυακούς εκτυπωτές. Περιγράφουν πώς μπορείτε να τρέξετε εφαρμογές Linux στο &os; σύστημά σας. Μερικά από αυτά τα κεφάλαια απαιτούν να έχετε μελετήσει πιο πριν κάποιο άλλο κεφάλαιο. Όπου είναι απαραίτητο κάτι τέτοιο, αναφέρεται στη σύνοψη του κάθε κεφαλαίου. Διαχείριση Συστήματος Τα κεφάλαια του &os; Handbook που ακολουθούν αναφέρονται σε θέματα που έχουν σχέση με τη διαχείριση του συστήματος. Κάθε κεφάλαιο ξεκινά περιγράφοντας τι θα μάθετε διαβάζοντας το συγκεκριμένο κεφάλαιο, καθώς και τι προαπαιτούμενα έχει το κεφάλαιο αυτό: τι πρέπει να έχετε ήδη διαβάσει και κατανοήσει πριν ασχοληθείτε με αυτό το κεφάλαιο. Αυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά, ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε με το &os;. Δικτυακές Επικοινωνίες Το &os; είναι ένα από τα πιο ευρέως διαδεδομένα λειτουργικά συστήματα για υψηλής απόδοσης δικτυακές εφαρμογές και εξυπηρετητές. Τα κεφάλαια σε αυτό το τμήμα περιγράφουν: Τις επικοινωνίες με σειραϊκή σύνδεση (serial) Τα πρωτόκολλα PPP και PPP πάνω από Ethernet Την Ηλεκτρονική Αλληλογραφία Την Εγκατάσταση Δικτυακών Υπηρεσιών Τη Ρύθμιση και Λειτουργία των Firewalls Άλλα Προχωρημένα Θέματα Δικτύων Αυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά, ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε με το &os;. Παραρτήματα &chap.colophon; diff --git a/el_GR.ISO8859-7/books/handbook/chapters.ent b/el_GR.ISO8859-7/books/handbook/chapters.ent index 2550145b4b..efa6fcc66c 100644 --- a/el_GR.ISO8859-7/books/handbook/chapters.ent +++ b/el_GR.ISO8859-7/books/handbook/chapters.ent @@ -1,71 +1,78 @@ - + + diff --git a/el_GR.ISO8859-7/books/handbook/colophon.sgml b/el_GR.ISO8859-7/books/handbook/colophon.sgml index ac9bd440e4..05b00d2272 100644 --- a/el_GR.ISO8859-7/books/handbook/colophon.sgml +++ b/el_GR.ISO8859-7/books/handbook/colophon.sgml @@ -1,38 +1,39 @@ Αυτό το βιβλίο είναι το αποτέλεσμα της ομαδικής εργασίας εκατοντάδων εθελοντών της Ομάδας Τεκμηρίωσης του &os;. Αυτό το κείμενο γράφτηκε σε μορφή SGML, σύμφωνα με το DocBook DTD και έχει μορφοποιηθεί από την SGML σε πολλές διαφορετικές μορφές παρουσίασης χρησιμοποιώντας την εφαρμογή Jade, μια μηχανή DSSSL ανοιχτού κώδικα. Χρησιμοποιήθηκαν τα DSSSL stylesheets του Norm Walsh με ένα επιπλέον επίπεδο τροποποίησης για να δώσουν τις οδηγίες παρουσίασης στην Jade. Η έντυπη μορφή αυτού του κειμένου δεν θα υπήρχε χωρίς την γλώσσα στοιχειοθεσίας &tex; του Donald Knuth, το LaTeX του Leslie Lamport, ή το macro package JadeTeX του Sebastian Rahtz. diff --git a/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml b/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml index 12ca7fddae..1c91cd6233 100644 --- a/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml @@ -1,2052 +1,2053 @@ Πηγές Πληροφόρησης στο Διαδίκτυο Η ραγδαία εξέλιξη του &os; καθιστά τα έντυπα μέσα ανίκανα να ακολουθήσουν τις τελευταίες εξελίξεις. Οι ηλεκτρονικές πηγές είναι ο καλύτερος (αν όχι ο μόνος) τρόπος για να παραμείνετε ενήμερος για τις τελευταίες εξελίξεις. Καθώς το &os; είναι μια εθελοντική προσπάθεια, η κοινότητα των χρηστών λειτουργεί και ως τμήμα τεχνικής υποστήριξης, με το ηλεκτρονικό ταχυδρομείο και τα USENET news να είναι οι πλέον αποτελεσματικοί τρόποι για να έλθετε σε επαφή με αυτή την κοινότητα. Στις παρακάτω ενότητες, θα βρείτε τα σημαντικότερα σημεία επικοινωνίας με την κοινότητα χρηστών του &os;. Αν γνωρίζετε και άλλες πηγές, οι οποίες δεν αναφέρονται εδώ, παρακαλούμε να τις στείλετε στην &a.doc; ώστε να ενταχθούν και αυτές. Λίστες Ηλεκτρονικού Ταχυδρομείου Πολλά από τα μέλη της ομάδας ανάπτυξης του &os; διαβάζουν το USENET. Ωστόσο, αν στέλνετε τις ερωτήσεις σας μόνο σε κάποια από τις ομάδες comp.unix.bsd.freebsd.*, δεν μπορούμε να εγγυηθούμε ότι θα απαντηθούν γρήγορα (ή και καθόλου). Στέλνοντας τις ερωτήσεις σας στην κατάλληλη λίστα θα προσεγγίσετε τόσο εμάς, όσο και κοινό εξειδικευμένο στο &os;, επιτυγχάνοντας έτσι καλύτερη (ή τουλάχιστον ταχύτερη) ανταπόκριση. Στο τέλος αυτού του κειμένου θα βρείτε ένα πίνακα με τη θεματολογία της κάθε λίστας. Παρακαλούμε να τον διαβάσετε πριν αρχίσετε να συμμετέχετε ή να στέλνετε μηνύματα σε οποιαδήποτε λίστα. Οι περισσότεροι από τους συνδρομητές μας δέχονται καθημερινά εκατοντάδες μηνύματα σχετικά με το &os;. Οι κανόνες που έχουμε καθιερώσει, βοηθάνε να γίνεται σωστή χρήση και να διατηρείται σε υψηλό επίπεδο η αναλογία σήματος προς θόρυβο της κάθε λίστας. Εάν ήμασταν πιο χαλαροί, οι λίστες μας θα έχαναν την αποτελεσματικότητα τους ως μέσο επικοινωνίας για το Project. Αν θέλετε να δοκιμάσετε την ικανότητα σας να στέλνετε μηνύματα στις λίστες του &os;, στείλτε ένα δοκιμαστικό μήνυμα στην λίστα &a.test.name;. Παρακαλούμε μη στέλνετε δοκιμαστικά μηνύματα σε οποιαδήποτε άλλη λίστα. Αν βρίσκεστε σε δίλημμα σχετικά με το ποια λίστα να στείλετε μια ερώτηση, δείτε το Πως να χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου &os;-questions. Πριν στείλετε κάτι σε οποιαδήποτε λίστα, μάθετε πως να χρησιμοποιείτε καλύτερα τις λίστες ηλεκτρονικού ταχυδρομείου. Για παράδειγμα, δείτε πως μπορείτε να βοηθήσετε ώστε να αποφεύγονται συχνά επαναλαμβανόμενες συζητήσεις, διαβάζοντας το κείμενο Συχνές Ερωτήσεις Σχετικά με τις Λίστες Ταχυδρομείου (FAQ). Για όλες τις λίστες ηλεκτρονικού ταχυδρομείου διατηρείται αρχείο με τις παλιές δημοσιεύσεις, στο οποίο μπορεί να γίνει αναζήτηση χρησιμοποιώντας την Δικτυακή Τοποθεσία του &os;. Είναι δυνατή η αναζήτηση στο αρχείο μέσω λέξεων-κλειδιών, το οποίο αποτελεί ένα άριστο τρόπο για να βρείτε απαντήσεις σε συχνές ερωτήσεις. Πριν στείλετε μια ερώτηση, καλό θα είναι να πραγματοποιήσετε μια τέτοια αναζήτηση. Σύνοψη Λιστών Γενικές λίστες: Οι ακόλουθες είναι γενικές λίστες όπου ο καθένας είναι ελεύθερος (και ενθαρρύνεται) να συμμετέχει: Λίστα Σκοπός &a.advocacy.name; Διαφήμιση και προώθηση του &os; &a.announce.name; Σημαντικά γεγονότα και ανακοινώσεις &a.arch.name; Συζητήσεις αρχιτεκτονικής και σχεδιασμού &a.bugbusters.name; Συζητήσεις που αναφέρονται στην συντήρηση της βάσης δεδομένων αναφοράς προβλημάτων του &os;, και των σχετικών εργαλείων της &a.bugs.name; Αναφορές σφαλμάτων &a.chat.name; Μη-τεχνικά θέματα που σχετίζονται με την κοινότητα του &os; &a.current.name; Συζητήσεις που σχετίζονται με τη χρήση &os.current; &a.isp.name; Θέματα για Παροχείς Υπηρεσιών Διαδικτύου που χρησιμοποιούν το &os; &a.jobs.name; Συμβουλευτικές υπηρεσίες και θέσεις εργασίας σχετικές με &os; &a.policy.name; Κατευθυντήριες αποφάσεις (policy) της ομάδας &os; Core. Λίστα με μικρή κίνηση, και μόνο για ανάγνωση &a.questions.name; Απορίες χρηστών και τεχνική υποστήριξη &a.security-notifications.name; Ειδοποιήσεις ασφαλείας &a.stable.name; Συζητήσεις που σχετίζονται με την χρήση του &os.stable; &a.test.name; Στείλτε εδώ τα δοκιμαστικά σας μηνύματα αντί για μια από τις πραγματικές λίστες Τεχνικές λίστες: Οι ακόλουθες λίστες είναι για τεχνικές συζητήσεις. Πριν αρχίσετε να συμμετέχετε και να στέλνετε μηνύματα σε αυτές, θα πρέπει να διαβάσετε προσεκτικά την περιγραφή τους. Υπάρχουν αυστηρές οδηγίες για τη χρήση και το περιεχόμενο τους. Λίστα Σκοπός &a.acpi.name; Ανάπτυξη της διαχείρισης ενέργειας και του ACPI &a.afs.name; Μεταφορά του AFS στο &os; &a.aic7xxx.name; Ανάπτυξη οδηγών για κάρτες &adaptec; AIC 7xxx &a.alpha.name; Μεταφορά του &os; στον Alpha &a.amd64.name; Μεταφορά του &os; σε συστήματα AMD64 &a.apache.name; Συζήτηση για ports σχετικά με τον Apache &a.arm.name; Μεταφορά του &os; σε επεξεργαστές &arm; &a.atm.name; Χρήση δικτύωσης ATM στο &os; &a.audit.name; Project ελέγχου πηγαίου κώδικα &a.binup.name; Σχεδίαση και ανάπτυξη του συστήματος έτοιμων ενημερώσεων (binary updates) &a.bluetooth.name; Χρήση της τεχνολογίας &bluetooth; στο &os; &a.cluster.name; Χρήση του &os; σε παράλληλα συστήματα &a.cvsweb.name; Συντήρηση του CVSweb &a.database.name; Συζήτηση για την χρήση και ανάπτυξη βάσεων δεδομένων στο &os; &a.doc.name; Δημιουργία τεκμηρίωσης για το &os; &a.drivers.name; Δημιουργία οδηγών συσκευών για το &os; &a.eclipse.name; Συζήτηση για τη χρήση του Eclipse IDE, των εργαλείων του, καθώς και rich client εφαρμογών και ports στο &os;. &a.embedded.name; Χρήση του &os; σε embedded εφαρμογές &a.eol.name; Ομότιμη υποστήριξη για λογισμικό σχετικό με &os;, που δεν υποστηρίζεται πλέον από το &os; Project. &a.emulation.name; Εξομοίωση άλλων συστημάτων, όπως είναι τα Linux/&ms-dos;/&windows; &a.firewire.name; Τεχνική συζήτηση για &os; &firewire; (iLink, IEEE 1394) &a.fs.name; Συστήματα αρχείων &a.geom.name; Συζητήσεις σχετικές με το GEOM και τις υλοποιήσεις του &a.gnome.name; Μεταφορά του GNOME και των εφαρμογών του &a.hackers.name; Γενικές τεχνικές συζητήσεις &a.hardware.name; Γενική συζήτηση για συμβατότητα υλικού με το &os; &a.i18n.name; Διεθνοποίηση του &os; &a.ia32.name; Το &os; στην αρχιτεκτονική IA-32 (&intel; x86) &a.ia64.name; Μεταφορά του &os; στα νέα συστήματα IA64 της &intel; &a.ipfw.name; Τεχνική συζήτηση που επικεντρώνεται στον επανασχεδιασμό του κώδικα IP του firewall &a.isdn.name; Ομάδα ανάπτυξης του ISDN &a.jail.name; Συζήτηση σχετικά με τις δυνατότητες του &man.jail.8; &a.java.name; Ομάδα ανάπτυξης &java; και άτομα που μεταφέρουν τα &jdk;s στο &os; &a.kde.name; Μεταφορά του KDE και των εφαρμογών του &a.lfs.name; Μεταφορά του LFS στο &os; &a.libh.name; Το σύστημα εγκατάστασης και διαχείρισης πακέτων δεύτερης γενιάς &a.mips.name; Μεταφορά του &os; σε επεξεργαστές &mips; &a.mobile.name; Συζητήσεις σχετικές με φορητά υπολογιστικά συστήματα &a.mozilla.name; Μεταφορά του Mozilla στο &os; &a.multimedia.name; Εφαρμογές πολυμέσων &a.newbus.name; Τεχνικές συζητήσεις σχετικές με την αρχιτεκτονική διαύλων &a.net.name; Συζητήσεις δικτύωσης και πηγαίος κώδικας TCP/IP &a.openoffice.name; Μεταφορά του OpenOffice.org και του &staroffice; στο &os; &a.performance.name; Ερωτήσεις σχετικές με βελτιστοποίηση απόδοσης για εγκαταστάσεις υψηλής απόδοσης και μεγάλου φορτίου &a.perl.name; Υποστήριξη ενός αριθμού από ports σχετικά με Perl &a.pf.name; Συζήτηση και ερωτήσεις σχετικές με το σύστημα packet filter firewall &a.platforms.name; Συζήτηση για μεταφορά σε μη-&intel; αρχιτεκτονικές &a.ports.name; Συζήτηση για την Συλλογή των Ports &a.ports-bugs.name; Συζήτηση για σφάλματα και αναφορές σφαλμάτων (PRs) που αφορούν ports &a.ppc.name; Μεταφορά του &os; στο &powerpc; &a.proliant.name; Τεχνική συζήτηση για χρήση του &os; σε διακομιστές HP ProLiant &a.python.name; Θέματα σχετικά με Python στο &os; &a.qa.name; Συζήτηση σχετικά με Έλεγχο και Διασφάλιση Ποιότητας (Quality Assurance), συνήθως πριν από μια επίσημη έκδοση του &os; &a.rc.name; Συζήτηση σχετικά με το σύστημα rc.d και την ανάπτυξή του &a.realtime.name; Ανάπτυξη επεκτάσεων πραγματικού χρόνου του &os; &a.ruby.name; Συζήτηση σχετικά με τη Ruby στο &os; &a.scsi.name; Το υποσύστημα SCSI &a.security.name; Θέματα ασφαλείας που επηρεάζουν το &os; &a.small.name; Χρήση του &os; σε embedded συστήματα (Δεν χρησιμοποιείται πλέον: αντί για αυτή τη λίστα, χρησιμοποιήστε την &a.embedded.name;) &a.smp.name; Συζητήσεις ανάπτυξης για την [α]συμμετρική πολυεπεξεργασία &a.sparc.name; Μεταφορά του &os; σε &sparc; συστήματα &a.standards.name; Συμμόρφωση του &os; με τα πρότυπα C99 και &posix; &a.sun4v.name; Μεταφορά του &os; σε &ultrasparc; T1 συστήματα &a.threads.name; Πολυνηματική επεξεργασία στο &os; &a.testing.name; Δοκιμές απόδοσης και σταθερότητας του &os; &a.tokenring.name; Υποστήριξη του Token Ring στο &os; &a.usb.name; Συζήτηση υποστήριξης του USB στο &os; &a.virtualization.name; Συζήτηση σχετικά με διάφορες τεχνικές εικονικοποίησης που υποστηρίζονται από το &os; &a.vuxml.name; Συζήτηση για την υποδομή VuXML &a.x11.name; Συντήρηση και υποστήριξη του X11 στο &os; &a.xen.name; Συζήτηση για τη μεταφορά του &os; στο &xen; — υλοποίηση και χρήση Περιορισμένες λίστες: Οι ακόλουθες λίστες είναι για πιο ειδικό (και απαιτητικό) κοινό και πιθανώς δεν ενδιαφέρουν το γενικό κοινό. Πριν αρχίσετε να συμμετέχετε σε κάποια από αυτές, καλό θα είναι να έχετε παρακολουθήσει τις τεχνικές λίστες, ώστε να αντιλαμβάνεστε τον κώδικα επικοινωνίας και συμπεριφοράς που ισχύει σε αυτές. Λίστα Σκοπός &a.hubs.name; Άτομα που διατηρούν mirror sites (υποστήριξη υποδομών) &a.usergroups.name; Οργάνωση των συλλόγων χρηστών &a.vendors.name; Οργάνωση μεταπωλητών πριν από επίσημες εκδόσεις &a.wip-status.name; Κατάσταση εργασιών του &os; που βρίσκονται σε εξέλιξη (Work-in-Progress). &a.www.name; Συντηρητές του www.FreeBSD.org Λίστες digest: Όλες οι παραπάνω λίστες διατίθενται και σε μορφή digest (περίληψης). Μόλις εγγραφείτε σε μία λίστα, μπορείτε να αλλάξετε τις επιλογές digest στο τμήμα ρυθμίσεων του λογαριασμού σας. Λίστες CVS & SVN: Οι ακόλουθες λίστες είναι για όσους ενδιαφέρονται να βλέπουν τα μηνύματα (log) που δείχνουν τις αλλαγές σε διάφορες περιοχές του πηγαίου κώδικα. Είναι λίστες μόνο για ανάγνωση και δεν πρέπει να στέλνετε μηνύματα σε αυτές. Λίστα Περιοχή πηγαίου κώδικα Περιγραφή περιοχής (κώδικας για) &a.cvsall.name; /usr/(CVSROOT|doc|ports) Όλες οι αλλαγές σε κάθε μέρος του δέντρου (περιέχει όλες τις άλλες λίστες CVS) &a.cvs-doc.name; /usr/(doc|www) Όλες οι αλλαγές στα δέντρα doc και www &a.cvs-ports.name; /usr/ports Όλες οι αλλαγές στο δέντρο των ports &a.cvs-projects.name; /usr/projects Όλες οι αλλαγές στο δέντρο των projects &a.cvs-src.name; /usr/src Όλες οι αλλαγές στο δέντρο src (δημιουργείται από τα commit του προγράμματος μετατροπής svn-to-cvs) &a.svn-src-all.name; /usr/src Όλες οι αλλαγές στο Subversion repository (εκτός από τις περιοχές user και projects) &a.svn-src-head.name; /usr/src Όλες οι αλλαγές στον κλάδο head του Subversion repository (πρόκειται για τον κλάδο &os;-CURRENT) &a.svn-src-projects.name; /usr/projects Όλες οι αλλαγές στην περιοχή πηγαίου κώδικα projects του Subversion repository &a.svn-src-release.name; /usr/src Όλες οι αλλαγές στην περιοχή πηγαίου κώδικα releases του Subversion repository &a.svn-src-releng.name; /usr/src Όλες οι αλλαγές σε όλους τους κλάδους πηγαίου κώδικα releng του Subversion repository (πρόκειται για τους κλάδους security / release engineering) &a.svn-src-stable.name; /usr/src Όλες οι αλλαγές σε όλους τους κλάδους πηγαίου κώδικα stable του Subversion repository &a.svn-src-stable-6.name; /usr/src Όλες οι αλλαγές στον κλάδο πηγαίου κώδικα stable/6 του Subversion repository &a.svn-src-stable-7.name; /usr/src Όλες οι αλλαγές στον κλάδο πηγαίου κώδικα stable/7 του Subversion repository &a.svn-src-stable-other.name; /usr/src Όλες οι αλλαγές στους παλιούς stable κλάδους πηγαίου κώδικα του Subversion repository &a.svn-src-svnadmin.name; /usr/src Όλες οι αλλαγές στα scripts διαχείρισης, τα hooks, και άλλα δεδομένα που αφορούν τις ρυθμίσεις του Subversion repository &a.svn-src-user.name; /usr/src Όλες οι αλλαγές στην πειραματική περιοχή πηγαίου κώδικα user του Subversion repository &a.svn-src-vendor.name; /usr/src Όλες οι αλλαγές στην περιοχή εργασίας πηγαίου κώδικα vendor του Subversion repository Πως να Εγγραφείτε Για να εγγραφείτε σε μία λίστα, επιλέξτε το όνομα της από τους παραπάνω δεσμούς ή πηγαίνετε στο &a.mailman.lists.link; και επιλέξτε την λίστα για την οποία ενδιαφέρεστε. Η σελίδα της λίστας πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες εγγραφής. Για να γράψετε σε μια λίστα, απλώς στείλτε το μήνυμα σας στο όνομα-λίστας@FreeBSD.org. Το μήνυμα σας θα διανεμηθεί σε όλα τα μέλη της λίστας, σε οποιοδήποτε σημείο του κόσμου και αν βρίσκονται. Για να διαγραφείτε από μια λίστα, επιλέξτε το URL που βρίσκεται στο τέλος κάθε μηνύματος που λαμβάνετε από την λίστα. Μπορείτε επίσης να στείλετε ένα μήνυμα στο όνομα-λίστας-unsubscribe@FreeBSD.org για να διαγραφείτε μόνος σας. Για ακόμα μια φορά, θα θέλαμε να σας ζητήσουμε να διατηρήσετε τη συζήτηση των τεχνικών λιστών στα αντίστοιχα τεχνικά θέματα. Αν ενδιαφέρεστε μόνο για σημαντικές ανακοινώσεις, τότε προτείνουμε να εγγραφείτε στην &a.announce;, η οποία έχει μικρή κίνηση. Πίνακες Λιστών Όλες οι &os; λίστες έχουν συγκεκριμένους βασικούς κανόνες οι οποίοι πρέπει να ακολουθούνται από οποιονδήποτε τις χρησιμοποιεί. Όποιος αποτύχει να ακολουθήσει αυτούς τους κανόνες θα λάβει δύο (2) γραπτές προειδοποιήσεις από τον &os; Postmaster postmaster@FreeBSD.org. Σε περίπτωση τρίτης παραβίασης, το άτομο αυτό θα απομακρυνθεί από όλες τις λίστες του &os; και τα μηνύματα του προς αυτές θα φιλτράρονται. Λυπόμαστε που χρειάζεται να επιβάλλουμε αυτούς τους κανόνες και μέτρα, αλλά το σημερινό Διαδίκτυο είναι καθώς φαίνεται ένα πολύ σκληρό περιβάλλον, και πολλοί δεν εκτιμούν πόσο εύθραυστοι είναι μερικοί μηχανισμοί του. Κανόνες: Το θέμα κάθε μηνύματος πρέπει να είναι σχετικό με τον βασικό σκοπό της λίστας που στάλθηκε, π.χ. αν η λίστα σχετίζεται με τεχνικά θέματα τότε το μήνυμα σας πρέπει να περιέχει τεχνικό περιεχόμενο. Η άσχετη φλυαρία ή το flaming μειώνει την αξία της λίστας για όλους που την παρακολουθούν και δεν μπορούμε να ανεχτούμε αυτή τη συμπεριφορά. Για ελεύθερες συζητήσεις χωρίς κάποιο συγκεκριμένο θέμα, διατίθεται η &a.chat; την οποία και θα πρέπει να χρησιμοποιείτε. Κανένα μήνυμα δεν θα πρέπει να σταλεί σε περισσότερες από 2 λίστες, και σε 2 μόνο όταν υπάρχει ξεκάθαρος και προφανής λόγος για κάτι τέτοιο. Πολλοί συνδρομητές είναι έτσι και αλλιώς γραμμένοι σε περισσότερες από μία λίστες. Έτσι, αν δεν πρόκειται να κάνετε κάποιο περίεργο συνδυασμό (π.χ. -stable & -scsi), δεν υπάρχει λόγος να στείλετε μήνυμα σε περισσότερες από μία λίστα κάθε φορά. Αν λάβετε κάποιο μήνυμα στο οποίο φαίνονται πολλαπλές λίστες στην γραμμή Cc, καλό θα είναι να περικόψετε κάποιες από αυτές πριν στείλετε απάντηση. Θεωρείστε υπεύθυνος για τα δικά σας cross-postings, ανεξάρτητα ποιος είναι ο δημιουργός τους. Προσωπικές επιθέσεις και ασέβεια (στο περιεχόμενο μιας αντιπαράθεσης) δεν επιτρέπονται, και αυτό αφορά τόσο τους χρήστες όσο και τους developers. Μεγάλες παραβάσεις των κανόνων (netiquette), όπως χρήση τμημάτων ή ολόκληρων προσωπικών μηνυμάτων όταν δεν έχει δοθεί άδεια για να γίνει αυτό και δεν ήταν αναμενόμενο, αποδοκιμάζονται αλλά δεν απαγορεύονται ρητά. Όμως, υπάρχουν μερικές περιπτώσεις όπου τέτοιο περιεχόμενο εμπίπτει στους κανονισμούς κάποιας λίστας και μπορεί να οδηγήσει σε προειδοποίηση (ή ακόμα και αποκλεισμό) από αυτήν. Διαφήμιση προϊόντων ή υπηρεσιών που δεν σχετίζονται με το &os; απαγορεύεται αυστηρά και θα οδηγήσει σε άμεσο αποκλεισμό αν είναι φανερό ότι ο πταίστης διαφημίζεται με spam. Ατομικοί πίνακες λιστών: &a.acpi.name; Ανάπτυξη της διαχείρισης ενέργειας και του ACPI &a.afs.name; Andrew File System Αυτή η λίστα είναι για συζήτηση της μεταφοράς και της χρήσης του AFS από το CMU/Transarc &a.announce.name; Σημαντικά γεγονότα και ανακοινώσεις Αυτή η λίστα είναι για άτομα που ενδιαφέρονται μόνο για περιστασιακές ανακοινώσεις σημαντικών γεγονότων του &os;. Περιλαμβάνει ανακοινώσεις σχετικά με snapshots και άλλα releases. Επίσης δημοσιεύονται σε αυτήν ανακοινώσεις για νέες ικανότητες του &os;. Μπορεί να περιέχει εκκλήσεις για εθελοντές κτλ. Πρόκειται για μία λίστα με μικρή κίνηση, και οι δημοσιεύσεις ελέγχονται αυστηρά. &a.arch.name; Συζητήσεις αρχιτεκτονικής και σχεδιασμού Σε αυτή την λίστα συζητείται η αρχιτεκτονική του &os;. Τα μηνύματα είναι κατά κύριο λόγο αρκετά τεχνικά. Παραδείγματα σχετικών θεμάτων είναι: Πως να επανασχεδιαστεί το σύστημα μεταγλώττισης ώστε να εκτελεί ταυτόχρονα πολλές προσαρμοσμένες μεταγλωττίσεις. Τι πρέπει να επισκευαστεί στο VFS ώστε να λειτουργούν τα Heidemann layers. Πώς πρέπει να μετατρέψουμε τη διεπαφή (interface) των οδηγών συσκευών ώστε να μπορούμε να χρησιμοποιήσουμε τα ίδια προγράμματα οδήγησης σε πολλούς διαύλους και αρχιτεκτονικές. Πως να γράψετε ένα οδηγό δικτύου. &a.audit.name; Project ελέγχου πηγαίου κώδικα Αυτή η λίστα χρησιμοποιείται για το project ελέγχου του πηγαίου κώδικα του &os;. Αν και αρχικά προορίζονταν για συζητήσεις αλλαγών που σχετίζονταν με την ασφάλεια, διευρύνθηκε ώστε να ασχολείται με οποιαδήποτε αλλαγή κώδικα. Η λίστα είναι γεμάτη με patches, και πιθανότατα δεν θα ενδιαφέρει έναν απλό χρήστη του &os;. Συζητήσεις ασφαλείας που δεν σχετίζονται με συγκεκριμένη αλλαγή στον κώδικα, γίνονται στην λίστα freebsd-security. Αντίθετα, όλοι οι developers παροτρύνονται να στέλνουν εδώ τα patches τους για έλεγχο, ειδικά αν σχετίζονται με ένα μέρος του συστήματος όπου ένα σφάλμα μπορεί να επηρεάσει ολόκληρη την ακεραιότητα του. &a.binup.name; Project αναβάθμισης του &os; μέσω έτοιμων (δυαδικών) αρχείων Σε αυτή την λίστα συζητείται το σύστημα αναβάθμισης μέσω έτοιμων (binary) αρχείων, ή binup. Σε αυτή τη λίστα ανήκουν θέματα σχεδιασμού, λεπτομέρειες υλοποίησης, patches, αναφορές σφαλμάτων, αναφορές κατάστασης, αιτήσεις για πρόσθετα χαρακτηριστικά, commit logs, και ότι άλλο σχετίζεται με το binup. &a.bluetooth.name; Χρήση της τεχνολογίας &bluetooth; στο &os; Σε αυτή τη λίστα συναθροίζονται οι χρήστες του &bluetooth; στο &os;. Η λίστα ασχολείται με θέματα σχεδιασμού, λεπτομέρειες υλοποίησης, patches, αναφορές σφαλμάτων, αναφορές κατάστασης, αιτήσεις για πρόσθετα χαρακτηριστικά, και ότι άλλο σχετίζεται με το &bluetooth;. &a.bugbusters.name; Προσπάθεια οργάνωσης του χειρισμού των αναφορών προβλημάτων Σκοπός αυτής της λίστας είναι να λειτουργεί ως χώρος οργάνωσης και συζήτησης για τον Bugmeister, τους Bugbusters, και όσους άλλους ενδιαφέρονται για την βάση δεδομένων PR. Αυτή ή λίστα δεν είναι για συζητήσεις σχετικά με ιδιαίτερα σφάλματα, patches ή PRs. &a.bugs.name; Αναφορές σφαλμάτων Αυτή η λίστα είναι για αναφορές σφαλμάτων του &os;. Όποτε είναι δυνατό, τα σφάλματα πρέπει να στέλνονται με την εντολή &man.send-pr.1; ή μέσω της αντίστοιχης διεπαφή WEB. &a.chat.name; Μη τεχνικά θέματα που σχετίζονται με την κοινότητα του &os; Αυτή η λίστα περιέχει κοινωνικές συζητήσεις, και γενικότερα ότι δεν σχετίζεται με τεχνικές πληροφορίες με τις οποίες ασχολούνται οι υπόλοιπες λίστες. Περιέχει συζητήσεις για το αν ο Jordan μοιάζει με μικρό κουνάβι ή όχι, για το αν πρέπει ή όχι να γράφουμε με κεφαλαία, ποιος πίνει πολύ καφέ, που φτιάχνεται η καλύτερη μπύρα, ποιος φτιάχνει μπύρα στο υπόγειο του, και άλλα. Περιστασιακές ανακοινώσεις σημαντικών γεγονότων (όπως πάρτυ, γάμοι, γεννήσεις, καινούργιες δουλειές κλπ) μπορούν να γίνουν στις τεχνικές λίστες, αλλά οι απαντήσεις τους πρέπει να στέλνονται στην λίστα -chat. &a.core.name; Ομάδα core του &os; Αυτή είναι μία εσωτερική λίστα για χρήση από τα μέλη του core. Σε αυτή τη λίστα μπορείτε να στείλετε μηνύματα, όταν προκύψει κάποιο θέμα σχετικό με το &os; το οποίο απαιτεί διαιτησία ή λεπτομερή εξέταση. &a.current.name; Συζητήσεις σχετικά με την χρήση του &os.current; Αυτή η λίστα είναι για χρήστες του &os.current;. Περιέχει προειδοποιήσεις για νέα χαρακτηριστικά που πρόκειται να προστεθούν στο -CURRENT και τα οποία θα επηρεάσουν τους χρήστες, και οδηγίες για τις κινήσεις που πρέπει να γίνουν ώστε να παραμείνετε στο -CURRENT. Όποιος εκτελεί το CURRENT πρέπει να εγγραφεί σε αυτήν την λίστα. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.cvsweb.name; &os; CVSweb Project Τεχνικές συζητήσεις για την χρήση, την ανάπτυξη και την συντήρηση του &os;-CVSweb. &a.doc.name; Project τεκμηρίωσης του &os; Αυτή η λίστα είναι για συζήτηση θεμάτων και projects που σχετίζονται με την δημιουργία τεκμηρίωσης για το &os;. Τα μέλη αυτής της λίστας αποκαλούνται συνολικά ως The &os; Documentation Project. Είναι μια ανοικτή λίστα και είστε ελεύθερος να συμμετέχετε και να συνεισφέρετε! &a.drivers.name; Δημιουργία οδηγών συσκευών για το &os; Αυτή η λίστα προορίζεται για τεχνικές συζητήσεις σχετικές με οδηγούς συσκευών στο &os;. Χρησιμοποιείται κυρίως από τους δημιουργούς οδηγών συσκευών για ερωτήσεις σχετικές με τη συγγραφή οδηγών, χρησιμοποιώντας τα APIs που παρέχει ο πυρήνας του &os;. &a.eclipse.name; &os; χρήστες του Eclipse IDE, των εργαλείων του, rich client εφαρμογών, και ports. Πρόθεση της λίστας αυτής είναι να προσφέρει αμοιβαία υποστήριξη για ότι έχει να κάνει με την επιλογή, εγκατάσταση, χρήση, ανάπτυξη και συντήρηση του Eclipse IDE, των εργαλείων του, εφαρμογών rich client στην πλατφόρμα του &os; και για βοήθεια σχετικά με την μεταφορά του Eclipse IDE και των πρόσθετων του στο περιβάλλον του &os;. Πρόθεση της είναι επίσης να διευκολύνει την ανταλλαγή πληροφοριών ανάμεσα στην κοινότητα του Eclipse και στην κοινότητα του &os;, προς όφελος και των δύο. Αν και η λίστα επικεντρώνεται κυρίως στις ανάγκες των χρηστών του Eclipse, προσφέρει επίσης ένα χώρο συζήτησης για όσους θέλουν να αναπτύξουν εφαρμογές σχετικές με το &os; χρησιμοποιώντας το Eclipse. &a.embedded.name; Χρήση του &os; σε embedded εφαρμογές Η λίστα συζητά θέματα σχετικά με την χρήση του &os; σε embedded συστήματα. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. Για τον σκοπό της λίστας αυτής, ορίζουμε ως embedded συστήματα τις υπολογιστικές συσκευές που δεν προορίζονται για desktop εφαρμογές, και που συνήθως καλύπτουν μια μόνο ανάγκη, αντίθετα με τα γενικά υπολογιστικά περιβάλλοντα. Συμπεριλαμβάνονται, εκτός των άλλων, όλα τα τηλέφωνα, δικτυακός εξοπλισμός όπως routers, switches και PBXs, εξοπλισμός μετρήσεων από απόσταση, PDAs, συστήματα Point Of Sale, και πάει λέγοντας. &a.emulation.name; Εξομοίωση άλλων συστημάτων όπως είναι τα Linux/&ms-dos;/&windows; Είναι μια λίστα για τεχνικές συζητήσεις, σχετικές με την εκτέλεση στο &os; προγραμμάτων που δημιουργήθηκαν για άλλα λειτουργικά. &a.eol.name; Ομότιμη υποστήριξη για λογισμικό σχετικό με το &os; που δεν υποστηρίζεται πλέον από το &os; Project. Αυτή η λίστα είναι για όσους ενδιαφέρονται να παρέχουν ή να χρησιμοποιήσουν την ομότιμη υποστήριξη για λογισμικό σχετικό με το &os; που δεν υποστηρίζεται πλέον από το &os; Project (π.χ., με την μορφή patches και ανακοινώσεων ασφαλείας). &a.firewire.name; &firewire; (iLink, IEEE 1394) Αυτή η λίστα είναι για την συζήτηση της σχεδίασης και υλοποίησης ενός υποσυστήματος &firewire; (γνωστό και ως IEEE 1394 ή iLink) για το &os;. Σχετικά θέματα είναι τα πρότυπα, οι συσκευές διαύλου και τα πρωτόκολλά τους, κάρτες, προσαρμογείς και chipsets, και η αρχιτεκτονική και η υλοποίηση του κώδικα για την σωστή υποστήριξη τους. &a.fs.name; Συστήματα αρχείων Συζητήσεις σχετικές με τα συστήματα αρχείων του &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.geom.name; GEOM Συζητήσεις σχετικές με το GEOM και παρόμοιες υλοποιήσεις. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.gnome.name; GNOME Συζητήσεις σχετικές με το περιβάλλον GNOME για συστήματα &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.ipfw.name; IP Firewall Αυτή η λίστα είναι για τεχνικές συζητήσεις που αφορούν τον επανασχεδιασμό του κώδικα IP firewall στο &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.ia64.name; Μεταφορά του &os; στην αρχιτεκτονική IA64 Πρόκειται για μια τεχνική λίστα, για άτομα που δουλεύουν ενεργά στην μεταφορά του &os; στην πλατφόρμα IA-64 της &intel;, για να αναφέρουν προβλήματα ή να συζητήσουν εναλλακτικές λύσεις. Άτομα που ενδιαφέρονται να παρακολουθήσουν την τεχνική συζήτηση είναι επίσης ευπρόσδεκτα. &a.isdn.name; Ανάπτυξη του ISDN Αυτή η λίστα είναι για άτομα που συζητούν την ανάπτυξη της υποστήριξης ISDN στο &os;. &a.java.name; Ανάπτυξη της &java; Αυτή η λίστα είναι για άτομα που συζητούν την ανάπτυξη σημαντικών εφαρμογών &java; για το &os; και την μεταφορά και συντήρηση των &jdk;s. &a.jobs.name; Ζήτηση και προσφορά εργασίας Αυτός είναι ένας χώρος για δημοσίευση ανακοινώσεων για προσφορά και ζήτηση εργασίας που σχετίζεται με το &os;, καθώς και βιογραφικών σχετικών με το &os;. Αν για παράδειγμα αναζητάτε εργασία σχετική με το &os;, ή προσφέρετε μια θέση εργασίας σχετική με το &os;, αυτό είναι το σωστό μέρος για να τη διαφημίσετε. Η λίστα αυτή δεν είναι για γενικά θέματα εργασίας, για τα οποία υπάρχει πληθώρα από άλλες λίστες στο Διαδίκτυο. Αυτή η λίστα, όπως και οι υπόλοιπες λίστες του FreeBSD.org, διανέμονται παγκόσμια. Έτσι, πρέπει να είστε σαφής για την τοποθεσία και την δυνατότητα τηλεργασίας ή βοήθειας στην μετοίκηση. Το μήνυμα σας θα πρέπει να χρησιμοποιεί μόνο ανοιχτά πρότυπα — κατά προτίμηση απλό κείμενο, αν και βασικής μορφής Portable Document Format (PDF), HTML, και μερικά άλλα είναι αποδεκτά από πολλούς χρήστες. Κλειστά πρότυπα όπως το µsoft; Word (.doc) θα απορριφθούν από τον διακομιστή της λίστας. &a.kde.name; KDE Συζητήσεις που αφορούν το KDE σε συστήματα &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.hackers.name; Τεχνικές συζητήσεις Είναι ένας χώρος για τεχνικές συζητήσεις σχετικές με το &os;. Αυτή είναι η κύρια τεχνική λίστα. Είναι για άτομα που αναπτύσσουν ενεργά το &os;, για να αναφέρουν προβλήματα ή να συζητήσουν εναλλακτικές λύσεις. Άτομα που ενδιαφέρονται να παρακολουθήσουν την τεχνική συζήτηση είναι ευπρόσδεκτα. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.hardware.name; Γενική συζήτηση για υλικό κι εξαρτήματα υπολογιστών στο &os; Γενικές συζητήσεις για τύπους υλικού που λειτουργούν στο &os;, διάφορα προβλήματα και προτάσεις σχετικά με το τι να αγοράσετε ή να αποφύγετε. &a.hubs.name; Mirror sites Ανακοινώσεις και συζητήσεις για άτομα που συντηρούν mirror sites του &os;. &a.isp.name; Θέματα για Παροχείς Υπηρεσιών Διαδικτύου Αυτή η λίστα είναι για συζήτηση θεμάτων σχετικών με Παροχείς Υπηρεσιών Διαδικτύου (ISPs) που χρησιμοποιούν &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.openoffice.name; OpenOffice.org Συζητήσεις σχετικές με την μεταφορά και συντήρηση του OpenOffice.org και του &staroffice;. &a.performance.name; Συζητήσεις για την ρύθμιση και την βελτιστοποίηση του &os; Αυτή η λίστα υπάρχει για να παρέχει ένα μέρος όπου οι hackers, οι διαχειριστές, και όσοι άλλοι ενδιαφέρονται, να συζητούν θέματα σχετικά με την απόδοση του &os;. Αποδεκτά θέματα είναι οι συζητήσεις που αναφέρονται σε εγκαταστάσεις &os; που υπόκεινται σε μεγάλο φόρτο, έχουν προβλήματα απόδοσης, ή φτάνουν το &os; στα όρια του. Συνιστούμε ανεπιφύλακτα να γραφούν στη λίστα όσοι ενδιαφέρονται να βελτιώσουν την απόδοση του &os;. Είναι μία τεχνική λίστα που απευθύνεται σε έμπειρους χρήστες του &os;, hackers, ή διαχειριστές που ενδιαφέρονται να κάνουν το &os; γρήγορο και αξιόπιστο. Δεν πρόκειται για μια λίστα ερωτήσεων και απαντήσεων που μπορεί να αντικαταστήσει την μελέτη της τεκμηρίωσης, αλλά ένα μέρος για συνεισφορές ή για απαντήσεις σε αναπάντητα θέματα σχετικά με την απόδοση. &a.pf.name; Συζητήσεις και ερωτήσεις για το σύστημα packet filter firewall Συζητήσεις σχετικές με το packet filter (pf) firewall system στο &os;. Τεχνικές συζητήσεις και ερωτήσεις χρηστών είναι ευπρόσδεκτες. Η λίστα είναι επίσης ένα μέρος για συζήτηση του ALTQ QoS framework. &a.platforms.name; Μεταφορά του &os; σε μη-&intel; πλατφόρμες Προβλήματα του &os; που εμφανίζονται σε περισσότερες από μία πλατφόρμες, καθώς και γενικές συζητήσεις και προτάσεις για μεταφορά του &os; σε μη-&intel; πλατφόρμες. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.policy.name; Κατευθυντήριες αποφάσεις (policy) της ομάδας Core του &os; Αυτή είναι μία λίστα με μικρή κίνηση, μόνο για ανάγνωση, για τις αποφάσεις της Core ομάδας του &os; σχετικά με κάποια θέματα κατεύθυνσης του Project (policies). &a.ports.name; Συζήτηση για τα ports Συζητήσεις σχετικές με την Συλλογή των Ports του &os; (/usr/ports), την υποδομή των ports, και γενικά τις προσπάθειες συντονισμού των ports. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.ports-bugs.name; Συζήτηση για τα σφάλματα των ports Συζητήσεις που σχετίζονται με τις αναφορές προβλημάτων της Συλλογής των Ports (/usr/ports) του &os;, προτάσεις για νέα ports ή για αλλαγές σε υπάρχοντα ports. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.proliant.name; Τεχνική συζήτηση για το &os; σε διακομιστές HP ProLiant Αυτή η λίστα είναι για τεχνικές συζητήσεις σχετικά με την χρήση του &os; σε διακομιστές HP ProLiant. Η συζήτηση περιλαμβάνει θέματα προγραμμάτων οδήγησης για ProLiant, λογισμικό διαχείρισης, εργαλεία ρυθμίσεων, και ανανεώσεις του BIOS. Η λίστα αυτή είναι το καταλληλότερο μέρος για συζήτηση σχετικά με τα αρθρώματα hpasmd, hpasmcli, και hpacucli. &a.python.name; Η Python στο &os; Αυτή η λίστα είναι για συζητήσεις σχετικές με την βελτιστοποίηση της υποστήριξης της Python στο &os;. Είναι μια τεχνική λίστα. Προορίζεται για άτομα που ασχολούνται με την μεταφορά της Python, των αρθρωμάτων της (modules) και του Zope στο &os;. Όσοι ενδιαφέρονται να παρακολουθήσουν την τεχνική συζήτηση, είναι ευπρόσδεκτοι. &a.questions.name; Ερωτήσεις χρηστών Αυτή η λίστα είναι για ερωτήσεις σχετικές με το &os;. Δεν πρέπει να στέλνετε ερωτήσεις τύπου how to σε τεχνικές λίστες εκτός αν πιστεύετε ότι η ερώτηση σας είναι πολύ εξειδικευμένη. &a.ruby.name; Συζήτηση σχετικά με τη Ruby στο &os; Η λίστα αυτή είναι για συζητήσεις που σχετίζονται με την υποστήριξη της Ruby στο &os;. Πρόκειται για μια λίστα τεχνικών ερωτήσεων. Απευθύνεται σε άτομα που δουλεύουν σε Ports της Ruby, σε βιβλιοθήκες τρίτων κατασκευαστών, και σε άλλα πλαίσια λειτουργιών. Είναι επίσης ευπρόσδεκτοι όσοι ενδιαφέρονται για αυτού του είδους την τεχνική συζήτηση. &a.scsi.name; Το υποσύστημα SCSI Αυτή η λίστα είναι για άτομα που εργάζονται στο SCSI υποσύστημα του &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.security.name; Θέματα ασφαλείας Αφορά θέματα ασφαλείας υπολογιστών που εκτελούν &os; (DES, Kerberos, γνωστά θέματα ασφαλείας και διορθώσεις, κτλ). Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. Σημειώστε ότι δεν πρόκειται για λίστα ερωτήσεων και απαντήσεων, αλλά η συνεισφορά (τόσο ερωτήσεων όσο ΚΑΙ απαντήσεων) στο FAQ είναι ευπρόσδεκτη. &a.security-notifications.name; Ειδοποιήσεις ασφαλείας Ειδοποιήσεις για προβλήματα ασφαλείας και διορθώσεις στο &os;. Δεν πρόκειται για λίστα συζητήσεων. Η λίστα συζητήσεων είναι η &os;-security. &a.small.name; Χρήση του &os; σε embedded εφαρμογές Αυτή η λίστα συζητά θέματα σχετικά με ασυνήθιστα μικρές και embedded εγκαταστάσεις του &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. Η λίστα αυτή έχει αντικατασταθεί από την &a.embedded.name;. &a.stable.name; Συζητήσεις σχετικές με την χρήση του &os.stable; Αυτή η λίστα είναι για τους χρήστες του &os.stable;. Περιέχει προειδοποιήσεις για νέα χαρακτηριστικά που πρόκειται να ενσωματωθούν στο -STABLE και τα οποία ενδεχομένως να επηρεάσουν τους χρήστες του. Επίσης περιέχει οδηγίες για τα βήματα που πρέπει να ακολουθήσετε ώστε να παραμείνετε στο -STABLE. Θα πρέπει να εγγραφείτε σε αυτή τη λίστα, αν ακολουθείτε το STABLE. Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα. &a.standards.name; Συμμόρφωση με τα πρότυπα C99 & POSIX Αυτή η λίστα είναι για τεχνικές συζητήσεις σχετικά με την συμμόρφωση του &os; με τα πρότυπα C99 και POSIX. &a.usb.name; Συζήτηση για την υποστήριξη του διαύλου USB στο &os; Αυτή η λίστα είναι για τεχνικές συζητήσεις σχετικά με την υποστήριξη του διαύλου USB στο &os;. &a.usergroups.name; Οργάνωση των συλλόγων χρηστών Αυτή η λίστα είναι για τους συντονιστές των επιμέρους τοπικών συλλόγων χρηστών για συζήτηση θεμάτων μεταξύ τους και με κάποιο μέλος της ομάδας Core. Αυτή η λίστα θα πρέπει να αναφέρει μόνο τις συναντήσεις και την οργάνωση projects που αναφέρονται σε περισσότερους από ένα συλλόγους χρηστών. &a.vendors.name; Πωλητές Οργάνωση συζητήσεων μεταξύ του &os; Project και των πωλητών λογισμικού και υλικού σχετικού με το &os;. &a.virtualization.name; Συζήτηση διάφορων τεχνικών εικονικοποίησης που υποστηρίζονται από το &os;. Μια λίστα για τη συζήτηση των διάφορων τεχνικών εικονικοποίησης που υποστηρίζονται από το &os;. Από τη μια μεριά εστιάζει στην υλοποίηση των βασικών λειτουργιών αλλά και την προσθήκη νέων δυνατοτήτων. Από την άλλη, οι χρήστες θα έχουν μια ομάδα συζητήσεων όπου μπορούν να ζητούν βοήθεια σε περίπτωση προβλημάτων, ή να συζητούν τις δικές τους χρήσεις. &a.wip-status.name; Κατάσταση εργασιών σε εξέλιξη στο &os; Στη λίστα αυτή μπορείτε να ανακοινώσετε την έναρξη και την πρόοδο κάποιας εργασίας σας που σχετίζεται με το &os;. Τα μηνύματα σε αυτή τη λίστα ελέγχονται. Συνίσταται να στείλετε το μήνυμα σας με παραλήπτη μια πιο τοπική σας λίστα του &os;, και απλώς να κοινοποιήσετε το μήνυμα σας σε αυτή τη λίστα. Με τον τρόπο αυτό, μπορείτε επίσης να συζητήσετε για την εργασία σας στην τοπική λίστα, καθώς η συζήτηση σε αυτή τη λίστα δεν επιτρέπεται. Δείτε τα αρχεία της λίστας για να πάρετε μια ιδέα της μορφής των μηνυμάτων που μπορείτε να στείλετε. Μια περίληψη των περιεχομένων της λίστας ενδέχεται να δημοσιεύεται κατά τακτά διαστήματα στη δικτυακή τοποθεσία του &os;, ως μέρος των Αναφορών Κατάστασης (Status Reports) . Στην ίδια τοποθεσία, μπορείτε επίσης να βρείτε περισσότερα παραδείγματα και προηγούμενες αναφορές. &a.xen.name; Συζήτηση για τη μεταφορά του &os; στο &xen; — υλοποίηση και χρήση Πρόκειται για μια λίστα που εστιάζει στην μεταφορά του &os; στο &xen;. Η κίνηση σε αυτή τη λίστα αναμένεται να είναι μικρή, και έτσι θα χρησιμοποιηθεί τόσο για τεχνικές συζητήσεις σχετικά με το σχεδιασμό και την υλοποίηση, όσο και με προβλήματα εγκατάστασης και διαχείρισης. Φιλτράρισμα στις Λίστες Ηλεκτρονικού Ταχυδρομείου Οι λίστες ηλεκτρονικού ταχυδρομείου του &os; φιλτράρονται με πολλαπλούς τρόπους για να αποφύγουμε την διανομή spam, ιών, και άλλων ανεπιθύμητων μηνυμάτων. Το φιλτράρισμα που περιγράφεται σε αυτή την ενότητα, αποτελεί ένα μόνο μέρος των συνολικών μέτρων που λαμβάνουμε για την προστασία των λιστών ηλεκτρονικού ταχυδρομείου. Στις λίστες επιτρέπονται μόνο συγκεκριμένοι τύποι συνημμένων αρχείων. Όλα τα συνημμένα αρχεία με τύπο MIME που δεν βρίσκεται στην παρακάτω λίστα, διαγράφονται πριν διανεμηθεί το μήνυμα στις λίστες. application/octet-stream application/pdf application/pgp-signature application/x-pkcs7-signature message/rfc822 multipart/alternative multipart/related multipart/signed text/html text/plain text/x-diff text/x-patch Μερικές λίστες μπορεί να επιτρέπουν συνημμένα αρχεία και άλλων τύπων MIME, αλλά οι παραπάνω τύποι ισχύουν στις περισσότερες λίστες. Εάν το κείμενο ενός μηνύματος περιέχεται τόσο σε μορφή HTML όσο και απλού κειμένου, το τμήμα HTML θα αφαιρεθεί. Εάν ένα μήνυμα περιέχει μόνο HTML, θα μετατραπεί σε απλό κείμενο. Usenet Newsgroups Εκτός από δύο newsgroups που ασχολούνται με το &os;, υπάρχουν πολλά ακόμα στα οποία γίνεται συζήτηση για το &os; ή άλλα θέματα που ενδεχομένως ενδιαφέρουν τους χρήστες του. Για κάποια από αυτά τα newsgroups, μπορείτε να κάνετε αναζήτηση με λέξεις-κλειδιά στις παλιές δημοσιεύσεις, χάρη στην υπηρεσία που προσφέρει ο Warren Toomey wkt@cs.adfa.edu.au. Newsgroups Σχετικά με το BSD comp.unix.bsd.freebsd.announce comp.unix.bsd.freebsd.misc de.comp.os.unix.bsd (Στα Γερμανικά) fr.comp.os.bsd (Στα Γαλλικά) it.comp.os.freebsd (Στα Ιταλικά) tw.bbs.comp.386bsd (Σε Παραδοσιακά Κινέζικα) Άλλα Ενδιαφέροντα &unix; Newsgroups comp.unix comp.unix.questions comp.unix.admin comp.unix.programmer comp.unix.shell comp.unix.user-friendly comp.security.unix comp.sources.unix comp.unix.advocacy comp.unix.misc comp.bugs.4bsd comp.bugs.4bsd.ucb-fixes comp.unix.bsd Σύστημα X Window comp.windows.x.i386unix comp.windows.x comp.windows.x.apps comp.windows.x.announce comp.windows.x.intrinsics comp.windows.x.motif comp.windows.x.pex comp.emulators.ms-windows.wine Διακομιστές Ιστοσελίδων &chap.eresources.www.inc; Διευθύνσεις Ηλεκτρονικού Ταχυδρομείου Οι ακόλουθες ενώσεις χρηστών παρέχουν στα μέλη τους διευθύνσεις ηλεκτρονικού ταχυδρομείου που σχετίζονται με το &os;. Ο διαχειριστής που αναφέρεται παρακάτω, διατηρεί το δικαίωμα να ανακαλέσει την διεύθυνση, αν γίνει κατάχρηση της με οποιοδήποτε τρόπο. Τομέας Υπηρεσίες Ένωση Χρηστών Διαχειριστής ukug.uk.FreeBSD.org Μόνο προώθηση ukfreebsd@uk.FreeBSD.org Lee Johnston lee@uk.FreeBSD.org diff --git a/el_GR.ISO8859-7/books/handbook/install/chapter.sgml b/el_GR.ISO8859-7/books/handbook/install/chapter.sgml index 2f221ee010..70c287a1b6 100644 --- a/el_GR.ISO8859-7/books/handbook/install/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/install/chapter.sgml @@ -1,5130 +1,5131 @@ Jim Mock Ανασχηματισμένο, αναδιοργανωμένο, και μερικώς ξαναγραμμένο από τον Randy Pratt Η βήμα προς βήμα διαδικασία του sysinstall, οι εικόνες, και γενικές διορθώσεις κειμένου από τον Εγκαθιστώντας το &os; Σύνοψη εγκατάσταση Το &os; διανέμεται με ένα εύχρηστο πρόγραμμα εγκατάστασης, το οποίο τρέχει σε κατάσταση κειμένου: το sysinstall. Είναι το προεπιλεγμένο πρόγραμμα εγκατάστασης για το &os;, αλλά όποιος διανέμει το &os; είναι ελεύθερος να παρέχει δικό του πρόγραμμα εγκατάστασης. Το κεφάλαιο αυτό περιγράφει πως μπορείτε να χρησιμοποιήσετε το sysinstall για να εγκαταστήσετε το &os;. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Πως να δημιουργήσετε δισκέτες εγκατάστασης για το &os;. Πως αναφέρεται στους σκληρούς δίσκους σας το &os; και πως τους χωρίζει σε κατατμήσεις. Πως να ξεκινήσετε το sysinstall. Τις ερωτήσεις που θα σας κάνει το sysinstall, τι σημαίνουν, και πως να τις απαντήσετε. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να διαβάσετε τη λίστα του υποστηριζόμενου υλικού που έρχεται με την έκδοση του &os; την οποία θα εγκαταστήσετε, και να επαληθεύσετε ότι το υλικό που έχετε υποστηρίζεται από το &os;. Σε γενικές γραμμές αυτές οι οδηγίες εγκατάστασης είναι γραμμένες για τους &i386; (PC συμβατούς) αρχιτεκτονικής υπολογιστές. Όπου χρειάζεται, θα εμφανίζονται συγκεκριμένες οδηγίες για άλλες πλατφόρμες (για παράδειγμα, Alpha). Αν και αυτός ο οδηγός διατηρείται όσο το δυνατόν πιο ενημερωμένος, είναι πιθανόν να βρείτε μικρές διαφορές μεταξύ του προγράμματος εγκατάστασης και αυτού που φαίνεται εδώ. Σας προτείνουμε να χρησιμοποιήσετε το κεφάλαιο αυτό περισσότερο σαν γενικό οδηγό παρά σαν ένα κατά γράμμα εγχειρίδιο εγκατάστασης. Απαιτήσεις Υλικού Ελάχιστες Απαιτήσεις Οι ελάχιστες απαιτήσεις για την εγκατάσταση του &os; ποικίλουν ανάλογα με την έκδοση του &os; και την αρχιτεκτονική του υλικού. Πληροφορίες για τις ελάχιστες απαιτήσεις είναι διαθέσιμες στις Σημειώσεις Εγκατάστασης, στην σελίδα Πληροφορίες Έκδοσης στο δικτυακό τόπο του &os;. Στα παρακάτω τμήματα δίνεται μια περίληψη των πληροφοριών αυτών. Ανάλογα με τον τρόπο που θα επιλέξετε να εγκαταστήσετε το &os;, μπορεί να χρειαστείτε μονάδα δισκέτας, ένα υποστηριζόμενο οδηγό CD-ROM, και σε ορισμένες περιπτώσεις, κάρτα δικτύου. Τα παραπάνω καλύπτονται στο . Αρχιτεκτονικές &os;/&arch.i386; και &os;/&arch.pc98; Οι εκδόσεις &os;/&i386; και &os;/&arch.pc98; απαιτούν 486 ή καλύτερο επεξεργαστή και τουλάχιστον 24 MB RAM. Θα χρειαστείτε τουλάχιστον 150 MB ελεύθερου χώρου στο σκληρό δίσκο για την πλέον ελάχιστη εγκατάσταση. Σε περιπτώσεις παλιών μηχανημάτων, τις περισσότερες φορές, η ύπαρξη περισσότερης μνήμης RAM και ελεύθερου χώρου στο δίσκο είναι πιο σημαντική από ένα ταχύτερο επεξεργαστή. Αρχιτεκτονική &os;/&arch.alpha; Για να εγκαταστήσετε το &os;/&arch.alpha;, θα χρειαστείτε μια υποστηριζόμενη πλατφόρμα (δείτε ) και ένα δίσκο αποκλειστικά για χρήση από το &os;. Τη δεδομένη στιγμή, δεν είναι δυνατόν να μοιράζεται τον ίδιο δίσκο το &os; με ένα άλλο λειτουργικό. Ο δίσκος αυτός θα πρέπει να είναι προσαρμοσμένος σε ένα ελεγκτή SCSI ο οποίος να υποστηρίζεται από το SRM firmware, ή ακόμα και ένα ελεγκτή IDE εφόσον το SRM στο μηχάνημα σας υποστηρίζει εκκίνηση από δίσκους IDE. Θα χρειαστείτε το firmware της κονσόλας SRM για την πλατφόρμα σας. Σε κάποιες περιπτώσεις, είναι δυνατή η εναλλαγή μεταξύ AlphaBIOS (ή ARC) firmware και SRM. Σε άλλες, θα πρέπει να κατεβάσετε νέο firmware από το δικτυακό τόπο του κατασκευαστή. Η υποστήριξη της αρχιτεκτονικής Alpha διακόπτεται από την έκδοση &os; 7.0 και μετά. Η σειρά εκδόσεων &os; 6.X είναι η τελευταία που υποστηρίζει την αρχιτεκτονική αυτή. Αρχιτεκτονική &os;/&arch.amd64; Υπάρχουν δύο κλάσεις επεξεργαστών ικανές να εκτελέσουν το &os;/&arch.amd64;. Η πρώτη, είναι οι επεξεργαστές AMD64, περιλαμβανομένου του &amd.athlon;64, του &amd.athlon;64-FX, του &amd.opteron; ή καλύτερων. Η δεύτερη κλάση επεξεργαστών που μπορούν να χρησιμοποιήσουν &os;/&arch.amd64;, περιλαμβάνει όσους χρησιμοποιούν την αρχιτεκτονική &intel; EM64T. Παραδείγματα των επεξεργαστών αυτών περιλαμβάνουν τις οικογένειες &intel; &core; 2 Duo, Quad, και Extreme καθώς και τη σειρά επεξεργαστών &intel; &xeon; 3000, 5000, και 7000. Αν το μηχάνημα σας είναι βασισμένο σε nVidia nForce3 Pro-150, θα πρέπει να χρησιμοποιήσετε την κατάλληλη επιλογή στο BIOS για να απενεργοποιήσετε το IO APIC. Αν η επιλογή αυτή δεν υπάρχει, θα πρέπει να απενεργοποιήσετε αντί αυτού το ACPI. Υπάρχουν προβλήματα στο Pro-150 για τα οποία μέχρι στιγμής δεν έχει βρεθεί λύση που να τα παρακάμπτει. Αρχιτεκτονική &os;/&arch.sparc64; Για να εγκαταστήσετε το &os;/&arch.sparc64;, θα χρειαστείτε μια υποστηριζόμενη πλατφόρμα (δείτε ). Θα χρειαστείτε ένα δίσκο για αποκλειστική χρήση από το &os;/&arch.sparc64;. Τη δεδομένη στιγμή, δεν είναι δυνατόν να μοιράζεται τον ίδιο δίσκο το &os; με ένα άλλο λειτουργικό σύστημα. Υποστηριζόμενο Υλικό Η λίστα με το υποστηριζόμενο υλικό, παρέχεται στις Σημειώσεις Υλικού (Hardware Notes) με κάθε έκδοση του &os;. Το έγγραφο αυτό μπορεί συνήθως να βρεθεί με όνομα αρχείου HARDWARE.TXT, στον ριζικό κατάλογο μια διανομής CDROM ή FTP, ή και στο μενού documentation του sysinstall. Για κάθε αρχιτεκτονική, θα βρείτε μια λίστα συσκευών οι οποίες επιβεβαιωμένα υποστηρίζονται από το &os;. Αντίγραφα του καταλόγου υποστηριζόμενου υλικού για διάφορες εκδόσεις και αρχιτεκτονικές μπορούν επίσης να βρεθούν στη σελίδα Πληροφοριών Έκδοσης στο δικτυακό τόπο του &os;. Εργασίες πριν την Εγκατάσταση Απογραφή Υλικού του Υπολογιστή σας Πριν εγκαταστήσετε το &os; πρέπει να επιχειρήσετε να απογράψετε τα εξαρτήματα του υπολογιστή σας. Οι ρουτίνες εγκατάστασης του &os; θα σας δείξουν τα εξαρτήματα (σκληρούς δίσκους, κάρτες δικτύου, οδηγούς CDROM κλπ.) με τα ονόματα των μοντέλων και των κατασκευαστών τους. Το &os; θα επιχειρήσει επίσης να προσδιορίσει τις σωστές ρυθμίσεις για τις συσκευές αυτές, συμπεριλαμβανομένων και των πληροφοριών για τη χρήση IRQ και θυρών IO. Λόγω των ιδιομορφιών του υλικού των PC, η διαδικασία αυτή δεν είναι πάντα επιτυχής, και ίσως χρειαστεί να διορθώσετε τις ρυθμίσεις που ανίχνευσε το &os;. Αν έχετε ήδη άλλο λειτουργικό σύστημα εγκατεστημένο, όπως &windows; ή Linux, είναι γενικά καλή ιδέα να χρησιμοποιήσετε τις δυνατότητες που σας παρέχει για να δείτε τις ρυθμίσεις του υλικού σας. Αν δεν είστε σίγουροι για τις ρυθμίσεις μιας κάρτας επέκτασης, ίσως να τις βρείτε τυπωμένες πάνω στην ίδια την κάρτα. Συνηθισμένα IRQ είναι τα 3, 5 και 7 ενώ οι θύρες IO συνήθως γράφονται ως δεκαεξαδικοί αριθμοί, π.χ. 0x330. Σας συνιστούμε να γράψετε ή να εκτυπώσετε τις πληροφορίες αυτές πριν την εγκατάσταση του &os;. Σαν υπόδειγμα, μπορείτε να χρησιμοποιήσετε ένα πίνακα όπως τον παρακάτω: Υπόδειγμα Απογραφής Συσκευών Όνομα Συσκευής IRQ IO θύρες Σημειώσεις Πρώτος Σκληρός Δίσκος N/A N/A 40 GB, της Seagate, master στο πρώτο IDE CDROM N/A N/A slave στο πρώτο IDE Δεύτερος Σκληρός Δίσκος N/A N/A 20 GB, της IBM, master στο δεύτερο IDE Πρώτος Ελεγκτής IDE 14 0x1f0 Κάρτα Δικτύου N/A N/A &intel; 10/100 Modem N/A N/A &tm.3com; 56K faxmodem, στην COM1
Όταν τελειώσετε την απογραφή εξαρτημάτων του υπολογιστή σας, θα πρέπει να ελέγξετε αν ταιριάζουν με τις απαιτήσεις υλικού της έκδοσης &os; που σκοπεύετε να εγκαταστήσετε.
Κρατήστε Αντίγραφα Ασφαλείας των Δεδομένων σας Αν ο υπολογιστής στον οποίο θα εγκαταστήσετε το &os; περιέχει πολύτιμα δεδομένα, βεβαιωθείτε ότι έχετε κρατήσει αντίγραφα ασφαλείας τα οποία μάλιστα έχετε ελέγξει ότι δουλεύουν, πριν εγκαταστήσετε το &os;. Το πρόγραμμα εγκατάστασης του &os; θα σας ρωτήσει πριν γράψει οτιδήποτε στο δίσκο σας, αλλά από τη στιγμή που η διαδικασία αυτή ξεκινήσει, δεν υπάρχει δυνατότητα επιστροφής. Αποφασίστε που θα Εγκαταστήσετε το &os; Αν θέλετε το &os; να χρησιμοποιήσει ολόκληρο το σκληρό σας δίσκο, δεν υπάρχει κάτι άλλο που πρέπει να κάνετε αυτή τη στιγμή — μπορείτε να παραλείψετε αυτό το τμήμα. Αν ωστόσο θέλετε το &os; να συνυπάρχει με άλλα λειτουργικά συστήματα, πρέπει να κατανοείτε χονδρικά τον τρόπο διάταξης των δεδομένων στο δίσκο, και τις επιδράσεις που μπορεί προκαλέσει. Κατατμήσεις Δίσκων για Αρχιτεκτονική &os/&arch.i386; Ένας σκληρός δίσκος PC μπορεί να χωριστεί σε διακριτά τμήματα. Τα τμήματα αυτά καλούνται κατατμήσεις (partitions). Επειδή το &os; έχει επίσης εσωτερικές κατατμήσεις, η ονομασία γρήγορα μπορεί να οδηγήσει σε σύγχυση, και για το λόγο αυτό οι εξωτερικές κατατμήσεις αναφέρονται ως disk slices (φέτες) ή απλώς slices στο &os;. Για παράδειγμα το πρόγραμμα fdisk του &os;, το οποίο χειρίζεται τις κατατμήσεις δίσκων του PC, τις αναφέρει ως slices αντί για partitions. Από τη σχεδίαση του, το PC υποστηρίζει μόνο τέσσερις κατατμήσεις ανά δίσκο. Οι κατατμήσεις αυτές ονομάζονται πρωτεύουσες (primary partitions). Για να ξεπεραστεί αυτός ο περιορισμός και να δημιουργήσουμε περισσότερες κατατμήσεις, δημιουργήθηκε ένα νέο είδος κατάτμησης, η εκτεταμένη κατάτμηση (extended partition). Ένας δίσκος μπορεί να περιέχει μόνο μια εκτεταμένη κατάτμηση. Μέσα στην εκτεταμένη κατάτμηση μπορούν να δημιουργηθούν ειδικές λογικές κατατμήσεις. Κάθε κατάτμηση διαθέτει ένα partition ID, ένα αριθμό που χρησιμοποιείται για να αναγνωρίζει τον τύπο δεδομένων της κατάτμησης. Οι κατατμήσεις του &os; έχουν για partition ID το 165. Γενικά, κάθε λειτουργικό σύστημα που χρησιμοποιείτε έχει κάποιο τρόπο για να αναγνωρίζει τις κατατμήσεις. Για παράδειγμα το DOS και τα παράγωγα του, όπως τα &windows;, αναθέτουν γράμματα οδηγών σε κάθε πρωτεύουσα και λογική κατάτμηση, ξεκινώντας από το γράμμα C:. Το &os; πρέπει να εγκατασταθεί σε πρωτεύουσα κατάτμηση. Το &os; μπορεί να κρατήσει όλα τα δεδομένα του, συμπεριλαμβανομένων και των αρχείων που θα δημιουργήσετε εσείς, σε αυτή τη μοναδική κατάτμηση. Παρόλα αυτά, αν έχετε περισσότερους από ένα δίσκους, μπορείτε να δημιουργήσετε κατατμήσεις &os; σε όλους ή μερικούς από αυτούς. Όταν εγκαθιστάτε το &os; πρέπει να έχετε μια κατάτμηση διαθέσιμη. Μπορεί να είναι μια κενή κατάτμηση που έχετε προετοιμάσει από πριν, ή μια υπάρχουσα που περιέχει δεδομένα που δεν σας ενδιαφέρουν πλέον. Αν χρησιμοποιείτε ήδη όλες τις κατατμήσεις σε όλους τους δίσκους σας, τότε πρέπει να ελευθερώσετε μία για το &os; χρησιμοποιώντας τα εργαλεία που παρέχονται από τα άλλα λειτουργικά συστήματα που χρησιμοποιείτε (για παράδειγμα, την fdisk στο DOS ή &windows;). Αν έχετε μια διαθέσιμη κατάτμηση, μπορείτε να την χρησιμοποιήσετε. Ίσως όμως χρειαστεί να συρρικνώσετε πρώτα μία ή περισσότερες από τις υπάρχουσες κατατμήσεις σας. Μια ελάχιστη εγκατάσταση του &os; μπορεί να καταλάβει μόλις 100 MB χώρου στο δίσκο. Ωστόσο αυτή είναι μια πολύ ελάχιστη εγκατάσταση η οποία δεν θα αφήσει καθόλου σχεδόν χώρο για δικά σας αρχεία. Ένα πιο ρεαλιστικό ελάχιστο είναι τα 250 MB για χρήση χωρίς γραφικό περιβάλλον και 350 MB ή περισσότερα αν θέλετε γραφικό περιβάλλον εργασίας. Αν έχετε σκοπό να εγκαταστήσετε αρκετά προγράμματα τρίτων κατασκευαστών, θα χρειαστείτε ακόμα περισσότερο χώρο. Μπορείτε να χρησιμοποιήσετε κάποιο εμπορικά διαθέσιμο εργαλείο όπως το &partitionmagic;, ή κάποιο ελεύθερο εργαλείο όπως το GParted, για να αλλάξετε μεγέθη στις κατατμήσεις σας και να δημιουργήσετε χώρο για το &os;. Ο κατάλογος tools στο CDROM περιέχει δύο τέτοια ελεύθερα εργαλεία, τα οποία μπορούν να εκτελέσουν αυτή τη λειτουργία, το FIPS και το PResizer. Η τεκμηρίωση για τις δύο αυτές εφαρμογές βρίσκεται επίσης στον ίδιο κατάλογο. Το FIPS, το PResizer και το &partitionmagic; μπορούν να αλλάξουν το μέγεθος σε κατατμήσεις FAT16 και FAT32 που χρησιμοποιούνται στο &ms-dos; ως και τα &windows; ME. Τόσο το &partitionmagic; όσο και το GParted μπορούν να χρησιμοποιηθούν σε κατατμήσεις NTFS. Το GParted είναι διαθέσιμο σε αρκετές διανομές Linux Live CD, όπως για παράδειγμα το SystemRescueCD. Έχουν αναφερθεί προβλήματα κατά την αλλαγή μεγέθους κατατμήσεων των µsoft; Vista. Συνίσταται να έχετε πρόχειρο ένα CDROM εγκατάστασης των Vista πριν επιχειρήσετε αυτή τη διαδικασία. Όπως και με όλες τις αντίστοιχες διαδικασίες δίσκων, συνίσταται επίσης να έχετε ένα ενημερωμένο σετ αντιγράφων ασφαλείας. Λανθασμένη χρήση των εργαλείων αυτών μπορεί να οδηγήσει σε διαγραφή των δεδομένων του δίσκου σας. Πριν τα χρησιμοποιήσετε, βεβαιωθείτε ότι έχετε πρόσφατα αντίγραφα ασφαλείας τα οποία δουλεύουν. Χρησιμοποιώντας μια Υπάρχουσα Κατάτμηση χωρίς να την Αλλάξετε Υποθέστε ότι έχετε ένα υπολογιστή με ένα μόνο σκληρό δίσκο 4 GB στον οποίο έχετε ήδη εγκατεστημένη μια έκδοση των &windows; και τον έχετε χωρίσει σε δύο οδηγούς με γράμματα C: και D:, καθένα με μέγεθος 2 GB. Έχετε 1 GB δεδομένων στο C: και 0.5 GB δεδομένων στο D:. Αυτό σημαίνει ότι ο δίσκος σας έχει δύο κατατμήσεις, μία ανά γράμμα οδηγού. Μπορείτε να αντιγράψετε όλα τα υπάρχοντα δεδομένα σας από τον D: στο C: και να ελευθερώσετε έτσι την δεύτερη κατάτμηση, ώστε να είναι έτοιμη για το &os;. Συρρικνώνοντας μια Υπάρχουσα Κατάτμηση Υποθέστε ότι έχετε ένα υπολογιστή με ένα μόνο δίσκο 4  GB στον οποίο έχετε ήδη εγκαταστήσει μια έκδοση των &windows;. Όταν εγκαταστήσατε τα &windows;, δημιουργήσατε μια μεγάλη κατάτμηση με το γράμμα C: και μέγεθος 4 GB. Αυτή τη στιγμή χρησιμοποιείται 1.5 GB χώρου και θέλετε να δώσετε στο &os; 2 GB χώρο. Για να εγκαταστήσετε το &os; θα πρέπει είτε: Να πάρετε αντίγραφο ασφαλείας των δεδομένων σας των &windows; και έπειτα να τα εγκαταστήσετε ξανά, δημιουργώντας αυτή τη φορά μια κατάτμηση μεγέθους 2 GB κατά την εγκατάσταση. Να χρησιμοποιήσετε κάποιο από τα εργαλεία όπως το &partitionmagic; που περιγράψαμε παραπάνω ώστε να συρρικνώσετε την κατάτμηση των &windows;. Κατάτμηση Δίσκου για την Αρχιτεκτονική &os;/&arch.alpha; Alpha Θα χρειαστείτε ένα σκληρό δίσκο αποκλειστικά για χρήση από το &os; στον Alpha. Δεν είναι δυνατόν αυτή τη στιγμή να χρησιμοποιήσετε τον ίδιο δίσκο με κάποιο άλλο λειτουργικό σύστημα. Ανάλογα με το μηχάνημα Alpha που έχετε, ο δίσκος αυτός μπορεί να είναι είτε SCSI είτε IDE, εφόσον το μηχάνημα σας μπορεί να εκκινήσει από αυτόν. Σύμφωνα με τις συμβάσεις που ακολουθούνται στα εγχειρίδια της Digital / Compaq, όλες οι εντολές SRM δείχνονται με κεφαλαία γράμματα. Ωστόσο το SRM δεν κάνει διάκριση μικρών / κεφαλαίων. Για να βρείτε τα ονόματα και τους τύπους των δίσκων του μηχανήματος σας χρησιμοποιήστε την εντολή SHOW DEVICE στην προτροπή εντολών του SRM: >>>SHOW DEVICE dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 dva0.0.0.0.1 DVA0 ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 pqa0.0.0.4.0 PQA0 PCI EIDE pqb0.0.1.4.0 PQB0 PCI EIDE Το παράδειγμα είναι από ένα Digital Personal Workstation 433au και δείχνει τρεις συσκευές συνδεδεμένες στο μηχάνημα. Η πρώτη είναι ένα CDROM με όνομα DKA0 και οι άλλες δύο είναι δίσκοι με ονόματα DKC0 και DKC100 αντίστοιχα. Δίσκοι με ονόματα της μορφής DKx είναι τύπου SCSI. Για παράδειγμα, ο DKA100 αναφέρεται σε ένα δίσκο SCSI με SCSI target ID 1 στον πρώτο (Α) δίαυλο SCSI, ενώ ο DKC300 αναφέρεται σε ένα δίσκο SCSI με SCSI ID 3 στον τρίτο (C) δίαυλο SCSI. Η συσκευή PKx αναφέρεται στον ελεγκτή (κάρτα) SCSI. Όπως φαίνεται από τα αποτελέσματα της εντολής SHOW DEVICE, οι οδηγοί CDROM αντιμετωπίζονται όπως και οποιαδήποτε άλλη SCSI συσκευή σκληρού δίσκου. Οι σκληροί δίσκοι τύπου IDE έχουν ονόματα του τύπου DQx, ενώ οι αντίστοιχοι IDE ελεγκτές του τύπου PQx. Συλλέξτε Πληροφορίες για τη Ρύθμιση του Δικτύου σας Αν σκοπεύετε να συνδεθείτε σε ένα δίκτυο κατά τη διάρκεια της εγκατάστασης του &os; (για παράδειγμα αν πρόκειται να κάνετε εγκατάσταση μέσω κάποιας τοποθεσίας FTP ή μέσω διακομιστή NFS), τότε πρέπει να γνωρίζετε τις ρυθμίσεις του δικτύου σας. Κατά τη διάρκεια της εγκατάστασης, θα ερωτηθείτε για αυτές τις ρυθμίσεις ώστε το &os; να μπορέσει να συνδεθεί στο δίκτυο και να ολοκληρώσει την εγκατάσταση. Σύνδεση με Δίκτυο Ethernet ή Modem Cable/DSL Αν συνδέεστε σε δίκτυο Ethernet ή αν έχετε σύνδεση Internet με χρήση ελεγκτή Ethernet μέσω καλωδιακής ή DSL σύνδεσης, θα χρειαστείτε τις ακόλουθες πληροφορίες: Διεύθυνση IP (IP Address) Διεύθυνση IP της προεπιλεγμένης πύλης (default gateway) Όνομα υπολογιστή (hostname) Διευθύνσεις IP του διακομιστή DNS (DNS server IP addresses) Μάσκα Υποδικτύου (Subnet Mask) Αν δεν γνωρίζετε αυτές τις πληροφορίες, ρωτήστε το διαχειριστή συστήματος ή τον παροχέα υπηρεσιών Internet που σας εξυπηρετεί. Η απάντηση μπορεί να είναι ότι οι πληροφορίες αυτές εκχωρούνται αυτόματα με χρήση DHCP. Σημειώστε την πληροφορία αυτή. Σύνδεση μέσω Modem Αν χρησιμοποιείτε επιλογική (dial up) σύνδεση με κάποιο παροχέα Internet (ISP) με χρήση απλού modem, μπορείτε και πάλι να εγκαταστήσετε το &os; μέσω Internet, αλλά θα χρειαστείτε πάρα πολύ χρόνο. Θα χρειαστεί να ξέρετε: Τον αριθμό κλήσης του ISP σας Τη σειριακή θύρα (COM:) στην οποία είναι συνδεμένο το modem σας Το όνομα χρήστη (username) και κωδικό (password) για το λογαριασμό σας στον ISP Ελέγξτε για Παροράματα (Errata) στο &os; Αν και το &os; project πασχίζει για να εξασφαλίσει ότι κάθε έκδοση του &os; θα είναι όσο πιο σταθερή γίνεται, ορισμένες φορές στη διαδικασία αυτή εισέρχονται λάθη. Σε πολύ σπάνιες περιπτώσεις, τα λάθη αυτά επηρεάζουν τη διαδικασία εγκατάστασης. Καθώς τα προβλήματα αυτά γίνονται αντιληπτά και επιδιορθώνονται, σημειώνονται στα Παροράματα &os; (&os; Errata) τα οποία βρίσκονται στην δικτυακή τοποθεσία του &os;. Πριν ξεκινήσετε την εγκατάσταση, Θα πρέπει να ελέγξετε τα Παροράματα για να βεβαιωθείτε ότι δεν υπάρχουν προβλήματα της τελευταίας στιγμής τα οποία θα έπρεπε να γνωρίζετε. Πληροφορίες για όλες τις εκδόσεις, περιλαμβανομένων και των παροραμάτων για κάθε μία, μπορούν να βρεθούν στη σελίδα πληροφοριών έκδοσης της δικτυακής τοποθεσίας του &os;. Ανακτήστε τα Αρχεία Εγκατάστασης του &os; Η διαδικασία εγκατάστασης του &os; μπορεί να εγκαταστήσει το λειτουργικό σύστημα χρησιμοποιώντας αρχεία από τις παρακάτω τοποθεσίες: Τοπικά Μέσα CDROM ή DVD Μια κατάτμηση DOS που βρίσκεται στον ίδιο υπολογιστή Μια ταινία SCSI ή QIC Δισκέτες Δίκτυο Μια τοποθεσία FTP, μέσω firewall ή με χρήση διακομιστή μεσολάβησης (HTTP proxy) αν είναι αναγκαίο. Ένα εξυπηρετητή NFS Μια αποκλειστική παράλληλη ή σειριακή σύνδεση Αν έχετε αγοράσει το &os; σε CD ή DVD, τότε έχετε ήδη ότι χρειάζεστε και μπορείτε να πάτε στο επόμενο τμήμα (). Αν δεν έχετε ακόμα ανακτήσει τα αρχεία εγκατάστασης του &os; θα πρέπει να δείτε το το οποίο εξηγεί πως να προετοιμαστείτε για την εγκατάσταση του &os; με οποιοδήποτε από τους παραπάνω τρόπους. Αφού διαβάσετε το τμήμα αυτό, θα πρέπει να γυρίσετε ξανά εδώ και να διαβάσετε από το . Ετοιμάστε τα Μέσα Εκκίνησης Η διαδικασία εκκίνησης του &os; ξεκινάει με την εκκίνηση του υπολογιστή σας στο πρόγραμμα εγκατάστασης του &os;—δεν πρόκειται για πρόγραμμα το οποίο μπορείτε να εκτελέσετε μέσα από κάποιο άλλο λειτουργικό σύστημα. Ο υπολογιστής σας φυσιολογικά εκκινεί χρησιμοποιώντας το λειτουργικό σύστημα που είναι εγκατεστημένο στο σκληρό δίσκο σας, αλλά μπορεί επίσης να ρυθμιστεί να χρησιμοποιεί μια δισκέτα εκκίνησης. Οι περισσότεροι σύγχρονοι υπολογιστές μπορούν επίσης να εκκινήσουν από ένα CDROM στον αντίστοιχο οδηγό ανάγνωσης. Αν έχετε το &os; σε CDROM ή DVD (είτε που αγοράσατε, είτε που ετοιμάσατε ο ίδιος), και ο υπολογιστής σας επιτρέπει εκκίνηση από CDROM ή DVD (τυπικά μέσω της επιλογής Boot Order ή αντίστοιχης του BIOS), μπορείτε να παραλείψετε αυτό το τμήμα. Τα CD ή DVD του &os; είναι εκκινήσιμα και μπορούν να χρησιμοποιηθούν για την εγκατάσταση του &os; χωρίς καμιά άλλη ιδιαίτερη προετοιμασία. Για να δημιουργήσετε δισκέτες εκκίνησης, ακολουθήστε αυτά τα βήματα: Ανακτήστε τα Images (Αρχεία Εικόνων) των Δισκετών Οι δισκέτες εκκίνησης είναι διαθέσιμες στο μέσο εγκατάστασης που έχετε, στον κατάλογο floppies/ και μπορείτε επίσης να τις κατεβάσετε από τον αντίστοιχο κατάλογο ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<version>-RELEASE/floppies/. Αντικαταστήστε τα <arch> και <version> με την αρχιτεκτονική και τον αριθμό της έκδοσης που θέλετε να εγκαταστήσετε αντίστοιχα. Για παράδειγμα τα images των δισκετών εκκίνησης για &os;/&arch.i386; &rel.current;-RELEASE είναι διαθέσιμα από την τοποθεσία . Τα images έχουν κατάληξη .flp. O κατάλογος floppies/ περιέχει αρκετά διαφορετικά images, και το ποια θα χρειαστείτε εξαρτάται από την έκδοση του &os; που θα εγκαταστήσετε, και σε ορισμένες περιπτώσεις, και από το υλικό (hardware) στο οποίο κάνετε εγκατάσταση. Στις περισσότερες περιπτώσεις θα χρειαστείτε τέσσερις δισκέτες, τις boot.flp, kern1.flp, kern2.flp και kern3.flp. Ελέγξτε το αρχείο README.TXT που βρίσκεται στον ίδιο κατάλογο για τις τελευταίες πληροφορίες σχετικά με τα αρχεία αυτά. Το FTP πρόγραμμα που θα χρησιμοποιήσετε πρέπει να χρησιμοποιεί δυαδικό τρόπο μεταφοράς (binary mode) για να κατεβάσετε τα images των δισκετών. Ορισμένοι φυλλομετρητές είναι γνωστό ότι χρησιμοποιούν ASCII τρόπο (κειμένου), το οποίο θα το καταλάβετε αν δεν μπορείτε να κάνετε εκκίνηση από τις δισκέτες. Προετοιμάστε τις Δισκέτες Από κάθε αρχείο image που κατεβάσατε, πρέπει να δημιουργήσετε μια δισκέτα. Είναι επιβεβλημένο, οι δισκέτες αυτές να μην έχουν ελαττώματα. Ο ευκολότερος τρόπος για να το ελέγξετε είναι να τις διαμορφώσετε εσείς. Μην εμπιστεύεστε προ-διαμορφωμένες δισκέτες. Το πρόγραμμα διαμόρφωσης των &windows; δεν θα σας ειδοποιήσει για την παρουσία χαλασμένων τομέων, απλώς θα τους μαρκάρει ως χαλασμένους και θα τους αγνοήσει. Σας συμβουλεύουμε να χρησιμοποιήσετε καινούριες δισκέτες αν επιλέξετε αυτή τη μέθοδο εγκατάστασης. Αν προσπαθήσετε να εγκαταστήσετε το &os; και το πρόγραμμα εγκατάστασης κολλήσει, παγώσει ή με κάποιο τρόπο συμπεριφέρεται περίεργα, ο πρώτος σας ύποπτος πρέπει να είναι οι δισκέτες. Δοκιμάστε να γράψετε τα images σε νέες δισκέτες και προσπαθήστε ξανά. Γράψτε τα Αρχεία Image σε Δισκέτες Τα αρχεία .flp δεν είναι κανονικά αρχεία που μπορείτε να αντιγράψετε σε δισκέτα. Είναι images που έχουν όλο το περιεχόμενο της δισκέτας σε ένα αρχείο. Αυτό σημαίνει ότι δεν μπορείτε απλώς να αντιγράψετε τα αρχεία αυτά σε δισκέτες. Αντίθετα, πρέπει να χρησιμοποιήσετε ειδικά εργαλεία για να γράψετε τα images αυτά απευθείας στις δισκέτες. DOS Αν πρόκειται να δημιουργήσετε τις δισκέτες σε ένα υπολογιστή που εκτελεί &ms-dos;/&windows;, σας παρέχουμε ένα εργαλείο για αυτή την εργασία, το fdimage. Αν χρησιμοποιείτε τα images των δισκετών από το CDROM και ο οδηγός σας CDROM είναι στο γράμμα E:, θα εκτελέσετε την εξής εντολή: E:\> tools\fdimage floppies\boot.flp A: Επαναλάβετε την εντολή αυτή για κάθε αρχείο .flp, αντικαθιστώντας κάθε φορά τη δισκέτα. Βεβαιωθείτε ότι σημειώνετε στην ετικέτα κάθε δισκέτας το όνομα του αρχείου που αντιγράψατε. Ρυθμίστε κατάλληλα την εντολή ανάλογα με την τοποθεσία των image αρχείων .flp. Αν δεν έχετε το CDROM, μπορείτε να κατεβάσετε το fdimage από την τοποθεσία FTP tools directoryτου &os;. Αν γράφετε τις δισκέτες σε ένα σύστημα &unix; (όπως κάποιο σύστημα &os;) μπορείτε να χρησιμοποιήσετε την εντολή &man.dd.1; για να γράψετε τα image αρχεία απευθείας στις δισκέτες. Στο &os; θα γράφατε: &prompt.root; dd if=boot.flp of=/dev/fd0 Στο &os; η συσκευή, /dev/fd0 αναφέρεται στην πρώτη μονάδα δισκέτας (τον οδηγό A:). Η συσκευή /dev/fd1 θα ήταν ο οδηγός B:, κ.ο.κ. Άλλες παραλλαγές του &unix; μπορεί να χρησιμοποιούν διαφορετικά ονόματα για τους οδηγούς δισκέτας και θα χρειαστεί να ελέγξετε την τεκμηρίωση του συστήματος σας κατά περίπτωση. Είστε τώρα έτοιμοι να ξεκινήσετε την εγκατάσταση του &os;.
Ξεκινώντας την Εγκατάσταση Το πρόγραμμα εγκατάστασης δεν θα κάνει καμιά αλλαγή στους δίσκους σας μέχρι να δείτε το ακόλουθο μήνυμα: Last Chance: Are you SURE you want continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! Η εγκατάσταση μπορεί να ακυρωθεί οποιαδήποτε στιγμή μέχρι να δείτε την τελική προειδοποίηση χωρίς να γίνει καμιά αλλαγή στα περιεχόμενα του σκληρού δίσκου. Αν ανησυχείτε ότι έχετε κάνει κάποια λάθος ρύθμιση μπορείτε απλώς να σβήσετε τον υπολογιστή πριν από το σημείο αυτό, και δεν θα δημιουργηθεί κανένα πρόβλημα. Εκκίνηση Εκκίνηση στην Αρχιτεκτονική &i386; Ξεκινήστε με τον υπολογιστή σας απενεργοποιημένο. Εκκινήστε τον υπολογιστή σας. Καθώς ξεκινάει θα πρέπει να δείχνει κάποια επιλογή για να εισέλθετε στο πρόγραμμα ρυθμίσεων του BIOS (BIOS setup), συνήθως με την πίεση κάποιου πλήκτρου όπως το F2, το F10, το Del ή το συνδυασμό Alt S . Χρησιμοποιήστε το συνδυασμό που φαίνεται στην οθόνη. Σε κάποιες περιπτώσεις, κατά την εκκίνηση μπορεί στην οθόνη σας να φαίνεται κάποιο γραφικό λογότυπο. Τυπικά, πιέζοντας το Esc το γραφικό αυτό εξαφανίζεται και μπορείτε πλέον να δείτε τα απαραίτητα μηνύματα. Βρείτε τη ρύθμιση που ελέγχει από ποιες συσκευές εκκινεί το σύστημα. Συνήθως αναφέρεται ως Boot Order και εμφανίζεται ως λίστα συσκευών, όπως για παράδειγμα Floppy, CDROM, First Hard Disk, κ.ο.κ. Αν πρόκειται να χρησιμοποιήσετε δισκέτες εκκίνησης, βεβαιωθείτε ότι επιλέξατε την μονάδα δισκέτας. Αν θα εκκινήσετε από το CDROM, βεβαιωθείτε ότι έχετε κάνει την αντίστοιχη επιλογή. Αν δεν είστε σίγουροι, συμβουλευτείτε το εγχειρίδιο του υπολογιστή ή / και της μητρικής πλακέτας. Κάντε την αλλαγή, αποθηκεύστε και βγείτε από το πρόγραμμα ρυθμίσεων. Ο υπολογιστής σας θα επανεκκινήσει. Αν χρειάστηκε να προετοιμάσετε δισκέτες, όπως περιγράφεται στο , μία από αυτές θα είναι η πρώτη δισκέτα εκκίνησης, πιθανώς αυτή που περιέχει το boot.flp. Τοποθετήστε την στον οδηγό δισκέτας. Αν θα εκκινήσετε από το CDROM, θα χρειαστεί να ενεργοποιήσετε τον υπολογιστή και να εισάγετε το CDROM στον οδηγό με την πρώτη δυνατή ευκαιρία. Αν ο υπολογιστής σας ξεκινήσει κανονικά και φορτώσει το υπάρχον λειτουργικό σας σύστημα, τότε είτε: Δεν βάλατε τη δισκέτα ή το CD αρκετά νωρίς κατά τη διαδικασία εκκίνησης. Αφήστε την στον οδηγό και δοκιμάστε να επανεκκινήσετε τον υπολογιστή σας. Οι προηγούμενες αλλαγές που κάνετε στις ρυθμίσεις του BIOS δεν λειτούργησαν. Θα πρέπει να επαναλάβετε το βήμα αυτό μέχρι να πετύχετε τη σωστή επιλογή. Το συγκεκριμένο BIOS που διαθέτετε δεν υποστηρίζει εκκίνηση από το επιλεγμένο μέσο. Θα αρχίσει η εκκίνηση του &os;. Αν ξεκινάτε από το CDROM θα δείτε μια εικόνα όπως την επόμενη (έχουν παραλειφθεί οι πληροφορίες έκδοσης): Booting from CD-Rom... CD Loader 1.2 Building the boot loader arguments Looking up /BOOT/LOADER... Found Relocating the loader and the BTX Starting the BTX loader BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS CD is cd0 BIOS drive C: is disk0 BIOS drive D: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+00 x88e9d] \ Αν κάνετε εκκίνηση από μονάδα δισκέτας, θα δείτε μια οθόνη όμοια με την παρακάτω (έχουν παραλειφθεί οι πληροφορίες έκδοσης): Booting from Floppy... Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 Loading /boot/defaults/loader.conf /kernel text=0x277391 data=0x3268c+0x332a8 | Insert disk labelled "Kernel floppy 1" and press any key... Ακολουθήστε τις οδηγίες, αφαιρώντας την δισκέτα boot.flp, εισάγοντας την δισκέτα kern1.flp και πιέζοντας Enter. Ξεκινήστε από την πρώτη δισκέτα, και όταν σας ζητηθεί, βάλτε τις άλλες δισκέτες όπως απαιτείται. Είτε ξεκινήσατε από δισκέτα, είτε από CDROM, η διαδικασία εκκίνησης θα φτάσει στο μενού του &os; boot loader:
Μενού Εκκίνησης (&os; Boot Loader)
Περιμένετε δέκα δευτερόλεπτα, ή απλώς πιέστε Enter
Εκκίνηση στην Αρχιτεκτονική Alpha Alpha Ξεκινήστε με τον υπολογιστή σας απενεργοποιημένο. Ξεκινήστε τον υπολογιστή σας και περιμένετε για την προτροπή του boot monitor. Αν χρειάστηκε να προετοιμάσετε δισκέτες εκκίνησης, όπως περιγράφεται στο μία από αυτές θα είναι εκκίνησης, πιθανώς αυτή που περιέχει το boot.flp. Τοποθετήστε τη δισκέτα αυτή στον οδηγό και γράψτε την ακόλουθη εντολή για να ξεκινήσετε από τη δισκέτα (αντικαθιστώντας το όνομα της μονάδας δισκέτας αν χρειάζεται): >>>BOOT DVA0 -FLAGS '' -FILE '' Αν ξεκινάτε από CDROM, τοποθετήστε το CDROM στον οδηγό και γράψτε την ακόλουθη εντολή για να ξεκινήσετε την εγκατάσταση (αντικαθιστώντας το όνομα του οδηγού CDROM αν χρειάζεται): >>>BOOT DKA0 -FLAGS '' -FILE '' Θα αρχίσει η εκκίνηση του &os;. Αν ξεκινάτε από την δισκέτα, σε κάποιο σημείο θα δείτε το ακόλουθο μήνυμα: Insert disk labelled "Kernel floppy 1" and press any key... Ακολουθήστε τις οδηγίες αυτές, βγάζοντας τη δισκέτα boot.flp, βάζοντας τη δισκέτα kern1.flp και πιέζοντας Enter. Είτε ξεκινήσατε από δισκέτα, είτε από CDROM, η διαδικασία εκκίνησης θα φτάσει στο ακόλουθο σημείο: Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Περιμένετε δέκα δευτερόλεπτα, ή απλώς πιέστε Enter. Έτσι θα ξεκινήσετε το μενού ρύθμισης πυρήνα. Εκκίνηση στον &sparc64; Τα περισσότερα συστήματα &sparc64; είναι ρυθμισμένα να ξεκινάνε αυτόματα από το σκληρό δίσκο. Για να εγκαταστήσετε το &os;, θα πρέπει να ξεκινήσετε είτε από το δίκτυο, είτε από το CDROM, κάτι το οποίο απαιτεί να εισέλθετε στην PROM (OpenFirmware). Για το σκοπό αυτό, επανεκκινήστε το σύστημα και περιμένετε μέχρι να εμφανιστεί το μήνυμα εκκίνησης (boot). Αυτό εξαρτάται από το μοντέλο, αλλά γενικά μοιάζει με: Sun Blade 100 (UltraSPARC-IIe), Keyboard Present Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. OpenBoot 4.2, 128 MB memory installed, Serial #51090132. Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4. Αν το σύστημα σας συνεχίζει με εκκίνηση από το σκληρό δίσκο, πρέπει να πιέσετε: L1A ή StopA στο πληκτρολόγιο, ή να στείλετε BREAK μέσω της σειριακής κονσόλας (χρησιμοποιώντας για παράδειγμα ~# στο &man.tip.1; ή στο &man.cu.1;) για να φτάσετε στην προτροπή της PROM. Φαίνεται όπως παρακάτω: ok ok {0} Αυτή είναι η προτροπή που χρησιμοποιείται σε συστήματα με μία CPU. Αυτή είναι η προτροπή που χρησιμοποιείται σε συστήματα SMP, το ψηφίο δείχνει τον αριθμό της ενεργής CPU. Στο σημείο αυτό, τοποθετήστε το CDROM στον οδηγό, και από την προτροπή της PROM, γράψτε boot cdrom.
Επισκόπηση των Αποτελεσμάτων Ανίχνευσης Συσκευών Οι τελευταίες εκατοντάδες γραμμές που πέρασαν από την οθόνη σας, αποθηκεύονται, και μπορείτε να τις ξαναδείτε. Για να δείτε τα περιεχόμενα της προσωρινής μνήμης (buffer) πιέστε το πλήκτρο Scroll Lock. Με τον τρόπο αυτό ενεργοποιείται η κύλιση της οθόνης. Μπορείτε να χρησιμοποιήσετε τα πλήκτρα με τα βελάκια, ή τα PageUp και PageDown για να δείτε τα αποτελέσματα. Πιέστε ξανά το πλήκτρο Scroll Lock για να τερματίσετε την κύλιση. Κάντε το αυτό τώρα για να δείτε το κείμενο που κύλησε εκτός οθόνης την ώρα που ο πυρήνας ανίχνευε το υλικό του υπολογιστή σας. Θα δείτε ένα κείμενο αντίστοιχο με το , αν και το ακριβές κείμενο θα διαφέρει ανάλογα με τις συσκευές που έχετε στον υπολογιστή σας.
Τυπικά Αποτελέσματα Ανίχνευσης Συσκευών avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5” drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0
Ελέγξτε προσεκτικά τα αποτελέσματα της ανίχνευσης για να βεβαιωθείτε ότι το &os; ανίχνευσε όλες τις συσκευές που αναμένατε. Αν μια συσκευή δεν βρέθηκε, τότε δεν θα τη δείτε στη λίστα. Με τη βοήθεια εξειδικευμένου πυρήνα μπορείτε να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν περιλαμβάνονται στον πυρήνα GENERIC, όπως τις κάρτες ήχου. Από το &os; 6.2 και μετά, στο τέλος της διαδικασίας ανίχνευσης συσκευών, θα δείτε το . Χρησιμοποιήστε τα βελάκια για να επιλέξετε περιοχή ή χώρα. Έπειτα πιέστε Enter, για να ρυθμίσετε εύκολα τη χώρα και τη διάταξη πληκτρολογίου. Είναι επίσης εύκολο να βγείτε από το sysinstall και να ξεκινήσετε από την αρχή.
Επιλέγοντας το Μενού Χώρας
Επιλέξτε Έξοδο από το Sysinstall
Χρησιμοποιήστε τα βελάκια για να επιλέξετε Exit Install από το μενού Main Install. Θα δείτε το ακόλουθο μήνυμα: User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No Το πρόγραμμα εγκατάστασης θα ξεκινήσει ξανά, αν αφήσετε το CDROM στον οδηγό και επιλέξετε &gui.yes;. Αν ξεκινάτε από δισκέτες θα χρειαστεί να βγάλετε την δισκέτα boot.flp πριν την επανεκκίνηση.
Εισαγωγή στο Sysinstall Το πρόγραμμα sysinstall είναι η εφαρμογή εγκατάστασης που παρέχεται από το &os; Project. Βασίζεται σε περιβάλλον κειμένου και χωρίζεται σε μια σειρά από μενού και οθόνες που μπορείτε να χρησιμοποιήσετε για να ρυθμίσετε και να ελέγξετε την διαδικασία εγκατάστασης. Το σύστημα μενού του sysinstall ελέγχεται με τα βελάκια, το Enter, το Space και άλλα πλήκτρα. Λεπτομερή περιγραφή των πλήκτρων αυτών και των λειτουργιών τους περιέχεται στις οδηγίες χρήσης του sysinstall. Για να δείτε τις πληροφορίες αυτές, βεβαιωθείτε ότι είναι φωτισμένη η επιλογή Usage και ότι είναι επιλεγμένο το πλήκτρο [Select] όπως φαίνεται στο , και πιέστε Enter. Θα δείτε τις οδηγίες χρήσης του συστήματος μενού. Κατόπιν πιέστε Enter για να επιστρέψετε στο κύριο μενού (Main Menu).
Επιλέγοντας Usage από το Main Menu του SysInstall
Επιλέγοντας το Μενού Documentation (Τεκμηρίωσης) Από το Main Menu, επιλέξτε Doc με τα βελάκια και πιέστε Enter.
Επιλέγοντας το Μενού Documentation
Αυτό θα δείξει το Μενού Documentation.
Το Μενού Documentation του Sysinstall
Είναι σημαντικό να διαβάσετε την παρεχόμενη τεκμηρίωση. Για να δείτε ένα έγγραφο, επιλέξτε το με τα βελάκια και πιέστε Enter. Όταν τελειώσετε την ανάγνωση ενός εγγράφου, πιέζοντας Enter θα επιστρέψετε στο μενού Documentation. Για να επιστρέψετε στο Κυρίως Μενού Εγκατάστασης, επιλέξτε Exit με τα βελάκια και πιέστε Enter.
Επιλέγοντας το Μενού Keymap (Διάταξη Πληκτρολογίου) Για να αλλάξετε τη διάταξη του πληκτρολογίου, χρησιμοποιήστε τα βελάκια για να επιλέξετε Keymap από το μενού και πιέστε Enter. Αυτό απαιτείται μόνο αν χρησιμοποιείτε διάταξη πληκτρολογίου που δεν είναι στάνταρ και επίσης για διατάξεις εκτός της Αγγλικής ΗΠΑ.
Κύριο Μενού Εγκατάστασης (Sysinstall Main Menu)
Μπορείτε να επιλέξετε διαφορετική διάταξη πληκτρολογίου κάνοντας την αντίστοιχη επιλογή από το μενού χρησιμοποιώντας τα βελάκια, και πιέζοντας Space. Πιέζοντας ξανά Space θα καταργήσετε την επιλογή. Όταν τελειώσετε, επιλέξτε &gui.ok; με τα βελάκια και πιέστε Enter. Στην παρακάτω απεικόνιση της οθόνης φαίνεται μόνο μέρος της λίστας. Αν επιλέξετε &gui.cancel; πιέζοντας το Tab θα χρησιμοποιήσετε την προεπιλεγμένη διάταξη πληκτρολογίου και θα επιστρέψετε στο Κύριο Μενού Εγκατάστασης.
Το Μενού Keymap του Sysinstall
Η Οθόνη Installation Options (Επιλογών Εγκατάστασης) Επιλέξτε Options και πιέστε Enter.
Το Κύριο Μενού του Sysinstall
Επιλογές του Sysinstall (Options)
Οι προεπιλεγμένες τιμές είναι συνήθως σωστές για τους περισσότερους χρήστες και δεν χρειάζεται να αλλαχθούν. Το όνομα της έκδοσης (Release Name) αλλάζει ανάλογα με την έκδοση που εγκαθίσταται. Στο κάτω μέρος της οθόνης, εμφανίζεται με τονισμένο μπλε χρώμα η περιγραφή του επιλεγμένου αντικειμένου. Παρατηρήστε ότι μια από τις επιλογές είναι η Use Defaults η οποία επαναφέρει όλες τις τιμές στις αρχικές προεπιλεγμένες τους ρυθμίσεις. Πιέστε το F1 για να διαβάσετε την οθόνη βοήθειας σχετικά με τις διάφορες επιλογές. Πιέζοντας το Q θα επιστρέψετε στο Κύριο Μενού Εγκατάστασης.
Ξεκινήστε μια Τυπική Εγκατάσταση (Standard Installation) Η Standard εγκατάσταση είναι η επιλογή που συνίσταται για τους νέους χρήστες του &unix; ή του &os;. Χρησιμοποιήστε τα βελάκια για να επιλέξετε Standard από το μενού, και πιέστε Enter για να ξεκινήσετε την εγκατάσταση.
Εκκίνηση της Τυπικής Εγκατάστασης (Standard Installation)
Εκχώρηση Χώρου στο Δίσκο Το πρώτο σας βήμα είναι να εκχωρήσετε χώρο δίσκου για το &os; και να δημιουργήσετε μια ετικέτα (label) στο χώρο αυτό ώστε να μπορέσει να τον προετοιμάσει το sysinstall. Για το σκοπό αυτό πρέπει να γνωρίζετε τον τρόπο με τον οποίο περιμένει το &os; να βρει τις πληροφορίες στο δίσκο. Αρίθμηση των Δίσκων με βάση το BIOS Πριν εγκαταστήσετε και ρυθμίσετε το &os; στο σύστημα σας, υπάρχει ένα σημαντικό θέμα το οποίο πρέπει να γνωρίζετε, ειδικά αν έχετε πολλούς σκληρούς δίσκους. DOS Microsoft Windows Σε ένα PC το οποίο χρησιμοποιεί λειτουργικό σύστημα το οποίο εξαρτάται από το BIOS, όπως είναι το &ms-dos; ή τα µsoft.windows;, το BIOS είναι σε θέση να συμπεράνει τη σειρά προτεραιότητας των δίσκων και το λειτουργικό σύστημα απλώς συμβαδίζει με αυτή. Αυτό επιτρέπει στο χρήστη να εκκινήσει από ένα δίσκο διαφορετικό από αυτόν που συχνά καλούμε primary master. Αυτό είναι ιδιαίτερα βολικό για κάποιους χρήστες που έχουν ανακαλύψει ότι ο ευκολότερος και φτηνότερος τρόπος να έχουν ένα αντίγραφο ασφαλείας του συστήματος τους, είναι να αγοράσουν ένα δεύτερο όμοιο σκληρό δίσκο, και να αντιγράφουν ανά τακτά διαστήματα τον πρώτο τους δίσκο στο δεύτερο χρησιμοποιώντας προγράμματα όπως το Ghost ή το XCOPY. Έτσι, αν ο πρώτος δίσκος χαλάσει, ή δεχθεί επίθεση από ιό, ή παρουσιάσει πρόβλημα εξαιτίας κάποιου ελαττώματος του λειτουργικού συστήματος, ο χρήστης μπορεί εύκολα να επαναφέρει το σύστημα ρυθμίζοντας το BIOS να αντιστρέψει τη λογική σειρά των δίσκων. Είναι σαν να αντιμεταθέτουμε τη σειρά των καλωδίων στους δίσκους αλλά χωρίς να χρειάζεται να ανοίξουμε το κουτί. SCSI BIOS Τα πιο ακριβά συστήματα με ελεγκτές SCSI, συχνά περιλαμβάνουν επεκτάσεις στο BIOS που επιτρέπουν την αλλαγή της αρίθμησης μέχρι επτά δίσκων SCSI, με παρόμοιο τρόπο. Ένας χρήστης εξοικειωμένος με την παραπάνω δυνατότητα, μπορεί να βρεθεί προ εκπλήξεως όταν τα αποτελέσματα με το &os; δεν είναι τα αναμενόμενα. Το &os; δεν χρησιμοποιεί το BIOS και δεν γνωρίζει την κατά το BIOS λογική διάταξη των οδηγών. Αυτό μπορεί να οδηγήσει σε ιδιαίτερα περίπλοκες καταστάσεις, ειδικά αν οι δίσκοι έχουν παρόμοια γεωμετρία και έχουν επίσης τα ίδια δεδομένα (είναι ο ένας κλώνος του άλλου). Όταν χρησιμοποιείτε το &os; επιστρέψτε την σειρά των οδηγών στο BIOS στην φυσιολογική τους πριν εγκαταστήσετε το &os; και αφήστε την έτσι. Αν πρέπει να εναλλάξετε τους δίσκους μεταξύ τους, κάντε το αλλά με το δύσκολο τρόπο: ανοίξτε το κουτί και αλλάξτε θέσεις στα jumpers (βραχυκυκλωτήρες) και στα καλώδια. Μια Ιστορία από τα Αρχεία των Εξαιρετικών Περιπετειών του Bill και Fred: O Bill διαλύει ένα παλιό μηχάνημα Wintel για να φτιάξει ένα ακόμα &os; μηχάνημα για το Fred. Ο Bill εγκαθιστά ένα σκληρό δίσκο SCSI ως συσκευή με αριθμό μηδέν και εγκαθιστά σε αυτή το &os;. Ο Fred ξεκινά να χρησιμοποιεί το σύστημα, αλλά μετά από αρκετές μέρες παρατηρεί ότι ο παλιός SCSI δίσκος αναφέρει αρκετά μη καταστροφικά λάθη (soft errors) και αναφέρει το γεγονός αυτό στον Bill. Μετά από μερικές ακόμα μέρες, ο Bill αποφασίζει ότι έχει έρθει η ώρα να αντιμετωπίσει το πρόβλημα, και έτσι πιάνει ένα αντίστοιχο SCSI δίσκο από το αρχείο στο πίσω δωμάτιο. Ένας αρχικός έλεγχος επιφάνειας δείχνει ότι ο δίσκος λειτουργεί κανονικά, και έτσι ο Bill εγκαθιστά το δίσκο αυτό ως SCSI μονάδα τέσσερα και αντιγράφει (μέσω image) πλήρως τα δεδομένα από το δίσκο μηδέν στο δίσκο τέσσερα. Τώρα που ο νέος δίσκος είναι εγκατεστημένος και λειτουργεί σωστά, ο Bill αποφασίζει ότι είναι καλή ιδέα να αρχίσει να τον χρησιμοποιεί, και έτσι βάζει σε εφαρμογή τη δυνατότητα του BIOS να αλλάζει την αρίθμηση των δίσκων ώστε το σύστημα να ξεκινάει από το δίσκο τέσσερα. Το &os; ξεκινάει και εκτελείται κανονικά. Ο Fred συνεχίζει τη δουλειά του για αρκετές ακόμα μέρες, και σύντομα ο Bill και o Fred αποφασίζουν ότι έχει έρθει η ώρα για μια ακόμα περιπέτεια — ώρα να αναβαθμίσουν στην νέα έκδοση του &os;. Ο Bill αφαιρεί το δίσκο μηδέν μια και ήταν ελαφρώς προβληματικός και τον αντικαθιστά με ένα άλλο όμοιο δίσκο από το αρχείο. Ο Bill κατόπιν εγκαθιστά τη νέα έκδοση του &os; στον νέο δίσκο μηδέν χρησιμοποιώντας τις μαγικές Internet FTP δισκέτες του Fred. Η εγκατάσταση γίνεται χωρίς προβλήματα. Ο Fred χρησιμοποιεί την νέα έκδοση του &os; για μερικές μέρες, και πιστοποιεί ότι είναι αρκετά καλή για χρήση στο τμήμα μηχανικής. Έχει έρθει η ώρα να αντιγράψει όλη τη δουλειά του από την παλιά έκδοση. Έτσι ο Fred προσαρτεί το δίσκο με αριθμό τέσσερα (το τελευταίο αντίγραφο της παλιάς έκδοσης του &os;). Ο Fred απογοητεύεται όταν ανακαλύπτει ότι δεν υπάρχει τίποτα από την πολύτιμη εργασία του στο δίσκο με αριθμό τέσσερα. Που πήγαν τα δεδομένα; Όταν ο Bill έκανε φωτογραφική αντιγραφή του αρχικού SCSI δίσκου μηδέν στο SCSI δίσκο τέσσερα, ο δίσκος τέσσερα έγινε ο νέος κλώνος. Όταν ο Bill άλλαξε την αρίθμηση στο SCSI BIOS ώστε να μπορέσει να ξεκινήσει από τη μονάδα SCSI τέσσερα, απλώς κορόιδευε τον εαυτό του. To &os; χρησιμοποιούσε ακόμα τη μονάδα SCSI μηδέν. Ίσως αυτή η αλλαγή στο BIOS να προκαλέσει την μερική ή ολική φόρτωση του κώδικα Boot ή και του Loader από τον επιλεγμένο από το BIOS δίσκο, αλλά όταν αναλάβουν τα προγράμματα οδήγησης του πυρήνα του &os; η αρίθμηση του BIOS θα αγνοηθεί, και το &os; θα επανέλθει στη φυσιολογική αρίθμηση των δίσκων. Στο παράδειγμα μας, το σύστημα συνέχισε να λειτουργεί στον αρχικό SCSI δίσκο μηδέν, και όλα τα δεδομένα του Fred ήταν εκεί, και όχι στον SCSI δίσκο τέσσερα. Το γεγονός ότι το σύστημα φαινόταν να λειτουργεί από το SCSI δίσκο τέσσερα ήταν απλώς ένα κατασκεύασμα της ανθρώπινης προσδοκίας. Είμαστε ευτυχείς να ανακοινώσουμε ότι δεν χάθηκαν καθόλου δεδομένα κατά την ανακάλυψη του φαινομένου αυτού. Ο παλιός SCSI δίσκος μηδέν ανακτήθηκε από το σωρό, και όλη η εργασία του Fred επιστράφηκε σε αυτόν (και τώρα ο Bill ξέρει ότι μπορεί να μετράει ως το μηδέν). Αν και στην ιστορία αυτή χρησιμοποιήθηκαν οδηγοί SCSI, οι αρχές ισχύουν εξίσου και για οδηγούς IDE. Δημιουργώντας Slices με Χρήση της FDisk Καμιά αλλαγή που θα κάνετε σε αυτό το σημείο δεν θα γραφεί στο δίσκο. Αν νομίζετε ότι κάνατε κάποιο λάθος και θέλετε να ξεκινήσετε ξανά από την αρχή, μπορείτε να χρησιμοποιήσετε τα μενού για να βγείτε από το sysinstall και να δοκιμάσετε ξανά ή πιέστε το U για να χρησιμοποιήσετε την επιλογή Undo. Αν μπερδευτείτε και δεν μπορείτε να δείτε πως να βγείτε, μπορείτε πάντα απλά να απενεργοποιήσετε τον υπολογιστή σας. Αφού επιλέξετε να ξεκινήσετε μια τυπική εγκατάσταση (standard installation) στο sysinstall θα δείτε το παρακάτω μήνυμα: Message In the next menu, you will need to set up a DOS-style ("fdisk") partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD (overwriting anything else that might be on the disk(s) selected) then use the (A)ll command to select the default partitioning scheme followed by a (Q)uit. If you wish to allocate only free space to FreeBSD, move to a partition marked "unused" and use the (C)reate command. [ OK ] [ Press enter or space ] Πιέστε Enter σύμφωνα με τις οδηγίες. Θα δείτε τότε μια λίστα με όλους τους σκληρούς δίσκους που ανίχνευσε ο πυρήνας κατά τη διάρκεια της ανίχνευσης συσκευών. Το δείχνει ένα παράδειγμα από ένα σύστημα με δύο δίσκους IDE. Έχουν τα ονόματα ad0 και ad2.
Επιλέξτε Δίσκο για την FDisk
Ίσως να αναρωτιέστε γιατί δεν υπάρχει εδώ συσκευή με όνομα ad1. Τι είναι αυτό που λείπει; Σκεφτείτε τι θα γινόταν αν είχατε δύο IDE δίσκους, ένα ως master στο πρώτο IDE ελεγκτή, και ένα ως master στο δεύτερο IDE ελεγκτή. Αν το &os; τους αριθμούσε όπως τους έβρισκε, δηλ. ως ad0 και ad1 όλα θα λειτουργούσαν κανονικά. Αν όμως προσθέταμε μετά ένα τρίτο δίσκο, ως συσκευή slave στον πρώτο IDE ελεγκτή, αυτή θα γινόταν πλέον ad1, και η προηγούμενη ad1 θα γινόταν ad2. Επειδή τα ονόματα των συσκευών (όπως ad1s1a) χρησιμοποιούνται για την εύρεση των συστημάτων αρχείων, μπορεί να ανακαλύπτατε ξαφνικά ότι κάποια από τα συστήματα αρχείων σας δεν εμφανίζονται κανονικά και πρέπει να αλλάξετε την ρύθμιση του &os; σας. Για να ξεπεραστεί το πρόβλημα αυτό, ο πυρήνας μπορεί να ρυθμιστεί να ονομάζει τους δίσκους IDE ανάλογα με την θέση τους, και όχι με τη σειρά με την οποία ανιχνεύονται. Με τον τρόπο αυτό, ο master δίσκος στο δεύτερο IDE ελεγκτή θα είναι πάντα, ad2, ακόμα και αν δεν υπάρχει συσκευή ad0 ή ad1. Η ρύθμιση αυτή είναι και η προεπιλεγμένη για τον πυρήνα του &os;, και για το λόγο αυτό η οθόνη δείχνει ad0 και ad2. Το μηχάνημα από το οποίο λήφθηκε η εικόνα είχε δίσκους master και στους δύο ελεγκτές IDE, ενώ δεν είχε κανένα δίσκο slave. Πρέπει να επιλέξετε το δίσκο στον οποίο θα γίνει η εγκατάσταση του &os; και να πιέσετε &gui.ok;. Το FDisk θα ξεκινήσει, με οθόνη αντίστοιχη με αυτή που φαίνεται στο . Η οθόνη του FDisk είναι χωρισμένη σε τρία τμήματα. Το πρώτο τμήμα, το οποίο καλύπτει τις δύο πρώτες γραμμές της οθόνης, δείχνει λεπτομέρειες για τον επιλεγμένο δίσκο, που περιλαμβάνουν το όνομα του στο &os;, τη γεωμετρία του, και το συνολικό μέγεθος του. Το δεύτερο τμήμα δείχνει τα slices τα οποία υπάρχουν στο δίσκο τη δεδομένη στιγμή, τα σημεία στα οποία ξεκινούν και τελειώνουν, πόσο μεγάλα είναι, την ονομασία που έχουν στο &os; και την περιγραφή τους και τον τύπο τους. Το παράδειγμα αυτό δείχνει δύο μικρά αχρησιμοποίητα slices, τα οποία είναι παρενέργειες του τρόπου διάταξης των δίσκων στα PC. Δείχνει επίσης ένα μεγάλο FAT slice, το οποίο σίγουρα εμφανίζεται ως C: στα &ms-dos; και &windows;, καθώς και μια εκτεταμένη κατάτμηση η οποία μπορεί να περιέχει και άλλα γράμματα οδηγών για το &ms-dos; ή τα &windows;. Το τρίτο τμήμα, δείχνει τις εντολές που είναι διαθέσιμες στην FDisk.
Τυπικές Fdisk Κατατμήσεις πριν την Επεξεργασία
Το τι θα κάνετε τώρα εξαρτάται από το πως θέλετε να χωρίσετε το δίσκο σας. Αν θέλετε το &os; να χρησιμοποιήσει όλο το δίσκο σας (σβήνοντας έτσι όλα τα άλλα δεδομένα από αυτόν, όταν επιβεβαιώσετε αργότερα στην εγκατάσταση ότι θέλετε το sysinstall να προχωρήσει) μπορείτε απλώς να πιέσετε A το οποίο αντιστοιχεί με την επιλογή Use Entire Disk (Χρήση ολόκληρου του δίσκου). Οι υπάρχουσες κατατμήσεις θα διαγραφούν, και θα αντικατασταθούν με μια μικρή περιοχή μαρκαρισμένη ως unused (αχρησιμοποίητη) (ξανά, μια παρενέργεια των διατάξεων δίσκου στο PC) και με ένα μεγάλο slice για το &os;. Αν το κάνετε αυτό, θα πρέπει να επιλέξετε με τα βελάκια το νέο &os; slice και να το μαρκάρετε ως εκκινήσιμο (bootable) πιέζοντας το πλήκτρο S. Η οθόνη σας θα είναι αρκετά παρόμοια με την . Παρατηρήστε το A στην στήλη Flags, το οποίο δείχνει ότι το slice είναι active (ενεργό), και πρόκειται να γίνει εκκίνηση από αυτό. Αν πρόκειται να διαγράψετε ένα υπάρχον slice για να δημιουργήσετε χώρο για το &os;, θα πρέπει να επιλέξετε το slice με τα βελάκια, και να πιέσετε D. Μπορείτε κατόπιν να πιέσετε C, και θα ερωτηθείτε για το μέγεθος του slice που θέλετε να δημιουργήσετε. Η προεπιλεγμένη τιμή στο διάλογο αντιπροσωπεύει το μέγιστο δυνατό slice που μπορείτε να δημιουργήσετε, το οποίο μπορεί να είναι το μέγιστο συνεχόμενο μπλοκ ελεύθερου χώρου ή το μέγεθος ολόκληρου του δίσκου. Αν έχετε ήδη δημιουργήσει χώρο για το &os; (ίσως με τη χρήση κάποιου εργαλείου όπως το &partitionmagic;) μπορείτε να πιέσετε C για να δημιουργήσετε νέο slice. Θα ερωτηθείτε και πάλι για το μέγεθος του slice που θέλετε να δημιουργήσετε.
Κατάτμηση Fdisk που Χρησιμοποιεί Ολόκληρο το Δίσκο
Όταν τελειώσετε, πιέστε Q. Οι αλλαγές σας θα αποθηκευτούν στο sysinstall, αλλά δεν θα γραφτούν ακόμα στο δίσκο.
Εγκατάσταση Διαχειριστή Εκκίνησης (Boot Manager) Έχετε τώρα την επιλογή να εγκαταστήσετε διαχειριστή εκκίνησης (boot manager). Σε γενικές γραμμές θα πρέπει να επιλέξετε να εγκαταστήσετε το διαχειριστή εκκίνησης του &os; αν: Έχετε περισσότερους από ένα δίσκους, και έχετε επιλέξει να εγκαταστήσετε το &os; σε δίσκο που δεν είναι ο πρώτος. Έχετε εγκαταστήσει το &os; μαζί με ένα άλλο λειτουργικό σύστημα στον ίδιο δίσκο, και θέλετε να μπορείτε να επιλέγετε αν θα ξεκινήσετε το &os; ή το άλλο λειτουργικό, όταν ξεκινάτε τον υπολογιστή σας. Αν το &os; πρόκειται να είναι το μοναδικό λειτουργικό σύστημα στον υπολογιστή σας, και είναι εγκατεστημένο στον πρώτο σκληρό δίσκο, τότε είναι επαρκής ο Standard διαχειριστής εκκίνησης. Επιλέξτε None αν πρόκειται να χρησιμοποιήσετε διαχειριστή εκκίνησης τρίτου κατασκευαστή, ο οποίος είναι ικανός να εκκινήσει το &os;. Κάντε την επιλογή σας και πιέστε Enter.
Το μενού Boot Manager του Sysinstall
Η οθόνη βοήθειας, στην οποία έχετε πρόσβαση πιέζοντας το F1, συζητά τα προβλήματα τα οποία ενδεχομένως θα αντιμετωπίσετε όταν επιχειρήσετε να χρησιμοποιήσετε τον ίδιο δίσκο σε περισσότερα από ένα λειτουργικά συστήματα.
Δημιουργώντας Slices σε Ένα Άλλο Δίσκο Αν υπάρχουν περισσότεροι από ένας δίσκοι, θα επιστρέψετε στην οθόνη επιλογής δίσκων (Select Driver) αμέσως μετά την επιλογή του διαχειριστή εκκίνησης. Αν θέλετε να εγκαταστήσετε το &os; σε περισσότερους από ένα δίσκους, μπορείτε εδώ να επιλέξετε ένα άλλο δίσκο και να επαναλάβετε την διαδικασία κατάτμησης με την χρήση του FDisk. Αν εγκαθιστάτε το &os; σε οποιοδήποτε δίσκο εκτός από τον πρώτο θα πρέπει να εγκαταστήσετε το διαχειριστή εκκίνησης του &os; και στους δύο δίσκους.
Έξοδος από την Επιλογή Δίσκων (Select Drive)
Το πλήκτρο Tab εναλλάσσει μεταξύ του τελευταίου επιλεγμένου δίσκου, του &gui.ok;, και του &gui.cancel;. Πιέστε μια φορά το Tab για να μεταφερθείτε στο &gui.ok;, πιέστε Enter για να συνεχίσετε την εγκατάσταση.
Δημιουργώντας Κατατμήσεις (Partitions) με Χρήση του <application>Disklabel</application> Πρέπει τώρα να δημιουργήσετε κατατμήσεις μέσα σε κάθε slice που δημιουργήσατε. Θυμηθείτε ότι οι κατατμήσεις χαρακτηρίζονται από γράμματα από a ως h, και ότι οι κατατμήσεις b, c, και d έχουν τυποποιημένη σημασία την οποία πρέπει να ακολουθήσετε. Κάποιες εφαρμογές μπορεί να ωφεληθούν από συγκεκριμένο τρόπο κατάτμησης, ειδικά αν πρόκειται να δημιουργήσετε κατατμήσεις σε περισσότερους από ένα δίσκους. Ωστόσο, για αυτή την πρώτη σας εγκατάσταση του &os; δεν χρειάζεται να είστε τόσο σχολαστικοί στην κατάτμηση του δίσκου σας. Είναι πιο σημαντικό να εγκαταστήσετε το &os; και να μάθετε να το χρησιμοποιείτε. Μπορείτε πάντα να επανεγκαταστήσετε το &os; αλλάζοντας τον τρόπο κατάτμησης, όταν πλέον θα είστε πιο εξοικειωμένος με το λειτουργικό σύστημα. Ο τρόπος αυτός χρησιμοποιεί τέσσερις κατατμήσεις—μια για χώρο swap, και τρεις για συστήματα αρχείων. Διάταξη Κατατμήσεων για τον Πρώτο Δίσκο Κατάτμηση Σύστημα Αρχείων Μέγεθος Περιγραφή a / 512 MB Πρόκειται για το root σύστημα αρχείων (root filesystem). Όλα τα άλλα συστήματα αρχείων προσαρτώνται σε κάποιο σημείο κάτω από αυτό. Τα 512 MB θεωρούνται μια φυσιολογική τιμή για αυτό το σύστημα αρχείων. Δεν πρόκειται να βάλετε ιδιαίτερα δεδομένα σε αυτό, καθώς μια συνηθισμένη εγκατάσταση &os; θα βάλει εδώ περίπου 128 MB δεδομένων. Ο χώρος που απομένει προορίζεται για προσωρινά δεδομένα, και επίσης αφήνει χώρο επέκτασης στην περίπτωση που οι μελλοντικές εκδόσεις του &os; απαιτούν περισσότερο χώρο στο /. b N/A 2-3 x RAM Σε αυτή την κατάτμηση βρίσκεται ο χώρος swap του συστήματος. Η επιλογή σωστού μεγέθους swap μπορεί να θεωρηθεί ένα είδος τέχνης. Ένας καλός γενικός κανόνας είναι ο χώρος αυτός να είναι δύο ως τρεις φορές το μέγεθος της διαθέσιμης φυσικής μνήμης (RAM). Επίσης θα πρέπει να έχετε τουλάχιστον 64 MB swap, έτσι αν έχετε λιγότερα από 32 MB RAM στον υπολογιστή σας, ορίστε το swap στα 64 MB. Αν έχετε περισσότερους από ένα δίσκους μπορείτε να ορίσετε χώρο swap σε κάθε δίσκο. Το &os; θα χρησιμοποιεί τότε κάθε δίσκο για swap, το οποίο επιταχύνει τη διαδικασία. Στην περίπτωση αυτή, υπολογίστε το συνολικό μέγεθος του swap που χρειάζεστε (π.χ. 128 MB) και μοιράστε το με το πλήθος των δίσκων που έχετε (π.χ., δύο δίσκοι) για να βρείτε το μέγεθος του swap που θα δημιουργήσετε σε κάθε δίσκο, σε αυτό το παράδειγμα, 64 MB ανά δίσκο. e /var 256 ως 1024 MB Ο κατάλογος /var περιέχει αρχεία τα οποία συνεχώς μεταβάλλονται, όπως αρχεία καταγραφής (log files) και άλλα αρχεία που έχουν να κάνουν με διαχειριστικές εργασίες. Πολλά από τα αρχεία αυτά διαβάζονται και γράφονται συνέχεια κατά την καθημερινή χρήση του &os;. Η τοποθέτηση των αρχείων αυτών σε χωριστό σύστημα αρχείων επιτρέπει στο &os; να βελτιστοποιεί την πρόσβαση σε αυτά χωρίς να επηρεάζονται αρχεία σε άλλους καταλόγους που δεν έχουν παρόμοια συχνή πρόσβαση. f /usr Υπόλοιπος Χώρος Δίσκου (τουλάχιστον 2 GB) Όλα τα υπόλοιπα αρχεία σας θα είναι τυπικά αποθηκευμένα στο /usr και τους υποκαταλόγους του.
Οι παραπάνω τιμές δίνονται μόνο ως υποδείγματα και προορίζονται για εγκαταστάσεις από προχωρημένους χρήστες. Σας συνιστούμε να χρησιμοποιήσετε τη δυνατότητα αυτόματης κατάτμησης, η οποία αναφέρεται ως Auto Defaults στον επεξεργαστή κατατμήσεων του &os;. Αν πρόκειται να εγκαταστήσετε το &os; σε περισσότερους από ένα δίσκους, θα πρέπει να δημιουργήσετε κατατμήσεις και στα άλλα slices που έχετε δημιουργήσει. Ο ευκολότερος τρόπος είναι να δημιουργήσετε δύο κατατμήσεις σε κάθε δίσκο, μια για το swap, και μια για ένα σύστημα αρχείων. Διάταξη Κατατμήσεων για τους Υπόλοιπους Δίσκους Κατάτμηση Σύστημα Αρχείων Μέγεθος Περιγραφή b N/A Δείτε την περιγραφή Όπως έχει ήδη συζητηθεί, μπορείτε να χωρίσετε το χώρο swap ανάμεσα σε πολλούς δίσκους. Αν και η κατάτμηση a είναι ελεύθερη, η σύμβαση επιβάλλει τη χρήση της κατάτμησης b για το χώρο swap. e /diskn Υπόλοιπο Τμήμα του Δίσκου Το υπόλοιπο κομμάτι του δίσκου καταλαμβάνεται από μια μεγάλη κατάτμηση. Μπορείτε εύκολα να την βάλετε στην κατάτμηση a αντί για την e. Ωστόσο, η σύμβαση ορίζει ότι η κατάτμηση a σε ένα slice δεσμεύεται για το σύστημα αρχείων root (/). Δεν είστε υποχρεωμένοι να ακολουθήσετε αυτή τη σύμβαση, αλλά το sysinstall την ακολουθεί, οπότε αν την ακολουθήσετε και εσείς η εγκατάσταση θα είναι πιο καθαρή. Μπορείτε να προσαρτήσετε αυτό το σύστημα αρχείων όπου θέλετε. Στο παράδειγμα μας, η προσάρτηση γίνεται στους καταλόγους /diskn , όπου το n είναι ένας αριθμός που αλλάζει για κάθε δίσκο. Αλλά μπορείτε, αν προτιμάτε, να ορίσετε δική σας διάταξη.
Έχοντας αποφασίσει την διάταξη των κατατμήσεων σας, μπορείτε τώρα να την δημιουργήσετε χρησιμοποιώντας το sysinstall. Θα δείτε το παρακάτω μήνυμα: Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (200MB or more) and don't have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just don't care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ] Πιέστε Enter για να ξεκινήσετε τον επεξεργαστή κατατμήσεων του &os;, που ονομάζεται Disklabel. Το δείχνει την οθόνη όταν ξεκινήσετε για πρώτη φορά το Disklabel. Η οθόνη χωρίζεται σε τρία τμήματα. Οι πρώτες γραμμές δείχνουν το όνομα του δίσκου στον οποίο δουλεύετε, και το slice που περιέχει τις κατατμήσεις που δημιουργείτε (στο σημείο αυτό το Disklabel τις ονομάζει Partition name αντί για το όνομα του slice). Η οθόνη επίσης δείχνει την ποσότητα ελεύθερου χώρου μέσα στο slice, δηλ. το χώρο που έχει κρατηθεί μέσα στο slice αλλά δεν έχει αποδοθεί ακόμα σε κάποια κατάτμηση. Το μέσο της οθόνης δείχνει τις κατατμήσεις που έχουν δημιουργηθεί, το όνομα του συστήματος αρχείων που περιέχει κάθε κατάτμηση, το μέγεθος τους, και κάποιες επιλογές που σχετίζονται με τη δημιουργία του συστήματος αρχείων. Το κάτω μέρος της οθόνης δείχνει τα πλήκτρα που μπορείτε να χρησιμοποιήσετε στο Disklabel.
Επεξεργαστής Disklabel του Sysinstall
Το Disklabel μπορεί να δημιουργήσει αυτόματα κατατμήσεις για εσάς, και να τους αποδώσει προεπιλεγμένες τιμές. Οι προεπιλεγμένες τιμές υπολογίζονται με την βοήθεια ενός ενσωματωμένου αλγορίθμου καθορισμού μεγεθών, ο οποίος αποφασίζει με βάση το μέγεθος του δίσκου. Δοκιμάστε το τώρα πιέζοντας το A. Θα δείτε μια οθόνη όμοια με αυτήν στο . Ανάλογα με το μέγεθος του δίσκου που χρησιμοποιείτε, οι προεπιλεγμένες τιμές μπορεί να είναι ή και να μην είναι κατάλληλες. Αυτό δεν έχει σημασία, γιατί δεν χρειάζεται να τις αποδεχθείτε. Ο προεπιλεγμένος τρόπος κατάτμησης αποδίδει στον κατάλογο /tmp την δική του κατάτμηση αντί να τον καθιστά μέρος της κατάτμησης /. Αυτό βοηθάει στην αποφυγή πλήρωσης της κατάτμησης / με προσωρινά αρχεία.
Ο Επεξεργαστής Κατατμήσεων Disklabel του Sysinstall με τις Αυτόματες Προεπιλογές
Αν επιλέξετε να μη χρησιμοποιήσετε τις προεπιλεγμένες κατατμήσεις και θέλετε να τις αντικαταστήσετε με τις δικές σας, χρησιμοποιήστε τα βελάκια για να επιλέξετε την πρώτη κατάτμηση και πιέστε D για να τη σβήσετε. Επαναλάβετε για να σβήσετε όλες τις προτεινόμενες κατατμήσεις. Για να δημιουργήσετε την πρώτη κατάτμηση (a, (η οποία προσαρτάται ως / — root), βεβαιωθείτε ότι έχετε επιλέξει το σωστό slice στο πάνω μέρος της οθόνης, και πιέστε C. Θα εμφανιστεί ένα πλαίσιο διαλόγου για να εισάγετε το μέγεθος της νέας κατάτμησης (όπως φαίνεται στο ). Μπορείτε να εισάγετε το μέγεθος ως τον αριθμό μπλοκ του δίσκου που θέλετε να χρησιμοποιήσετε ή ως αριθμό ακολουθούμενο από M για megabytes, G για gigabytes, ή C για κυλίνδρους.
Ελεύθερος Χώρος για την Κατάτμηση Root
Το προεπιλεγμένο μέγεθος που φαίνεται θα δημιουργήσει μια κατάτμηση που καταλαμβάνει όλο τον υπόλοιπο ελεύθερο χώρο του slice. Αν χρησιμοποιείτε τα μεγέθη των κατατμήσεων που περιγράψαμε στο προηγούμενο παράδειγμα, σβήστε τον αριθμό που φαίνεται με το Backspace, και πληκτρολογήστε 512M, όπως φαίνεται στο . Κατόπιν πιέστε &gui.ok;.
Επεξεργασία Μεγέθους της Κατάτμησης Root
Έχοντας επιλέξει το μέγεθος της κατάτμησης, θα ερωτηθείτε κατόπιν για το αν η κατάτμηση θα περιέχει κάποιο σύστημα αρχείων, ή θα γίνει χώρος swap. Ο διάλογος αυτός φαίνεται στο . Η πρώτη αυτή κατάτμηση θα περιέχει σύστημα αρχείων, για αυτό ελέγξτε ότι είναι επιλεγμένο το FS και πιέστε Enter.
Επιλέξτε τον Τύπο της Κατάτμησης Root
Τέλος, επειδή δημιουργείτε σύστημα αρχείων, πρέπει να δηλώσετε στο Disklabel που θέλετε να γίνει η προσάρτηση του. Ο αντίστοιχος διάλογος φαίνεται στο . Το σημείο προσάρτησης της κατάτμησης root είναι το /, για αυτό γράψτε /, και πιέστε Enter.
Επιλέξτε το Σημείο Προσάρτησης του Root
Η οθόνη κατόπιν θα ανανεωθεί για να σας δείξει την κατάτμηση που μόλις δημιουργήσατε. Θα πρέπει να επαναλάβετε αυτή την διαδικασία για τις άλλες κατατμήσεις. Όταν δημιουργήσετε την κατάτμηση swap, δεν θα σας ζητηθεί να επιλέξετε σημείο προσάρτησης, καθώς οι κατατμήσεις swap δεν προσαρτώνται ποτέ. Όταν δημιουργήσετε την τελευταία κατάτμηση, την /usr, μπορείτε να αφήσετε το προτεινόμενο μέγεθος, για να χρησιμοποιήσετε όλο τον υπόλοιπο χώρο του slice. Η τελευταία οθόνη του &os; Επεξεργαστή DiskLabel, θα δείχνει όμοια με την , αν και οι δικές σας τιμές θα είναι διαφορετικές. Πιέστε Q για τέλος.
Ο Επεξεργαστής Disklabel του Sysinstall
Επιλέγοντας τι θα Εγκαταστήσετε Επιλέξτε Distribution Set (Σετ Εγκατάστασης) Η απόφαση για το ποιο distribution set θα χρησιμοποιήσετε, εξαρτάται κατά κύριο λόγο από το είδος χρήσης του μηχανήματος και τον διαθέσιμο χώρο στο δίσκο. Οι προκαθορισμένες επιλογές κυμαίνονται από την ελάχιστη δυνατή διαμόρφωση μέχρι την πλήρη. Όσοι είναι καινούριοι στο &unix; ή / και &os; θα πρέπει σχεδόν σίγουρα να επιλέξουν μια από τις τυποποιημένες επιλογές. Η διαμόρφωση εξειδικευμένου distribution set συνίσταται συνήθως στον πιο έμπειρο χρήστη. Πιέστε το F1 για περισσότερες πληροφορίες για τις επιλογές κάθε distribution set καθώς και για τα περιεχόμενα τους. Όταν τελειώσετε με την ανάγνωση της βοήθειας, με την πίεση του Enter θα επιστρέψετε στο μενού Select Distributions. Αν επιθυμείτε γραφικό περιβάλλον εργασίας, θα πρέπει να επιλέξετε ένα distribution set το οποίο ξεκινάει με X. H ρύθμιση του X server και η επιλογή γραφικού περιβάλλοντος (desktop) πρέπει να γίνει μετά την εγκατάσταση του &os;. Περισσότερες πληροφορίες σχετικά με την ρύθμιση του X server μπορείτε να δείτε στο . Το &xorg; είναι η προεπιλεγμένη προς εγκατάσταση έκδοση του X11. Αν αναμένετε ότι θα μεταγλωττίσετε δικό σας εξειδικευμένο πυρήνα, διαλέξτε κάποια από τις επιλογές που περιέχουν τον πηγαίο κώδικα. Για περισσότερες πληροφορίες σχετικά με το γιατί να μεταγλωττίσετε δικό σας πυρήνα ή για το πως γίνεται, δείτε το . Προφανώς το πιο ευέλικτο σύστημα είναι αυτό που τα περιέχει όλα. Αν έχετε αρκετό χώρο στο δίσκο, επιλέξτε All όπως φαίνεται στο χρησιμοποιώντας τα βελάκια και πιέστε Enter. Αν σας προβληματίζει ο διαθέσιμος χώρος στο δίσκο, κάντε μια κατάλληλη επιλογή για την περίπτωση. Μην προβληματίζεστε ιδιαίτερα σχετικά με την τέλεια επιλογή, καθώς μπορείτε να εγκαταστήσετε πρόσθετα σετ και μετά το τέλος της βασικής εγκατάστασης.
Επιλέξτε Distributions (Σετ Εγκατάστασης)
Εγκατάσταση της Συλλογής Ports Μετά την επιλογή του επιθυμητού distribution set, θα έχετε την ευκαιρία να εγκαταστήσετε την συλλογή ports του &os;. Η συλλογή ports είναι μια εύκολη και βολική μέθοδος για να εγκαταστήσετε λογισμικό. Η συλλογή των ports δεν περιέχει τον πηγαίο κώδικα που απαιτείται για να μεταγλωττίσετε το λογισμικό. Απλά είναι μια συλλογή αρχείων που αυτοματοποιεί το κατέβασμα, τη μεταγλώττιση και την εγκατάσταση πακέτων λογισμικού τρίτου κατασκευαστή. Το περιγράφει πως να χρησιμοποιήσετε την συλλογή των ports. Το πρόγραμμα εγκατάστασης δεν ελέγχει αν υπάρχει αρκετός ελεύθερος χώρος. Κάντε την επιλογή αυτή μόνο αν υπάρχει αρκετός χώρος. Από την έκδοση του &os; &rel.current;, η συλλογή ports του &os; καταλαμβάνει περίπου &ports.size; χώρο στο δίσκο. Μπορείτε με ασφάλεια να θεωρήσετε ότι ο χώρος αυτός θα είναι μεγαλύτερος για πιο καινούριες εκδόσεις του &os;. User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over &os.numports; ported software packages, at a cost of around &ports.size; of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The Ports Collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the Ports Collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No Επιλέξτε &gui.yes; με τα βελάκια για να εγκαταστήσετε τη συλλογή των ports ή &gui.no; για να την παραλείψετε. Πιέστε Enter για να συνεχίσετε. Θα εμφανιστεί ξανά το μενού Choose Distributions (επιλογής Σετ Εγκατάστασης).
Επιβεβαίωση Distribution Set
Αν είστε ικανοποιημένοι από τις επιλογές σας, επιλέξτε Exit με τα βελάκια, επιβεβαιώστε ότι είναι φωτισμένη η επιλογή &gui.ok; και πιέστε Enter για να συνεχίσετε.
Επιλέγοντας το Μέσο Εγκατάστασης Αν εγκαθιστάτε από CDROM ή DVD, χρησιμοποιήστε τα βελάκια για να φωτίσετε την επιλογή Install from a FreeBSD CD/DVD. Βεβαιωθείτε ότι είναι φωτισμένη η επιλογή &gui.ok; και πιέστε Enter για να προχωρήσετε με την εγκατάσταση. Για άλλες μεθόδους εγκατάστασης, κάντε την κατάλληλη επιλογή και ακολουθήστε τις οδηγίες. Πιέστε το F1 για να δείτε την ενσωματωμένη βοήθεια για τα μέσα εγκατάστασης. Πιέστε Enter για να επιστρέψετε στο μενού επιλογής μέσου εγκατάστασης.
Επιλέξτε Μέσο Εγκατάστασης (Installation Media)
Τρόποι Εγκατάστασης μέσω FTP installation network FTP Υπάρχουν τρεις μέθοδοι εγκατάστασης μέσω FTP για να επιλέξετε: ενεργό (Active) FTP, παθητικό (Passive) FTP, ή μέσω διακομιστή μεσολάβησης (proxy) HTTP. Ενεργό FTP: Install from an FTP server Με την επιλογή αυτή οι μεταφορές γίνονται μέσω Ενεργού (Active) FTP. Η επιλογή αυτή δεν θα λειτουργήσει μέσω firewalls αλλά συχνά λειτουργεί με παλιότερους διακομιστές FTP που δεν υποστηρίζουν παθητική μεταφορά. Αν η σύνδεση σας κολλήσει με παθητικό FTP (το οποίο είναι η προεπιλογή), δοκιμάστε το ενεργό! Παθητικό FTP: Install from an FTP server through a firewall FTP passive mode H επιλογή αυτή οδηγεί το sysinstall να χρησιμοποιήσει Παθητική (Passive) μεταφορά για όλες τις FTP λειτουργίες. Αυτό επιτρέπει στο χρήστη να περνάει μέσω firewalls τα οποία δεν επιτρέπουν εισερχόμενες συνδέσεις σε τυχαίες TCP πόρτες. FTP μέσω HTTP μεσολάβησης: Install from an FTP server through a http proxy FTP via a HTTP proxy Η επιλογή αυτή οδηγεί το sysinstall στη χρήση HTTP πρωτοκόλλου (όπως οι φυλλομετρητές) για να συνδεθεί με ένα διακομιστή μεσολάβησης για όλες τις λειτουργίες του FTP. Ο διακομιστής μεσολάβησης αναλαμβάνει να μεταφράσει όλες τις εντολές και να τις στείλει στον διακομιστή FTP. Αυτό επιτρέπει στο χρήστη να περάσει μέσω firewalls που δεν επιτρέπουν καθόλου FTP, αλλά προσφέρουν λειτουργία διαμεσολάβησης μέσω HTTP. Στην περίπτωση αυτή πρέπει να ορίσετε εκτός από τον διακομιστή FTP, και το διακομιστή μεσολάβησης. Για διακομιστή μεσολάβησης FTP server, πρέπει συνήθως να δώσετε το όνομα του διακομιστή με τον οποίο θέλετε στην πραγματικότητα να συνδεθείτε, ως μέρος του username, μετά από το σύμβολο @. Ο διακομιστής μεσολάβησης μιμείται τότε τον πραγματικό διακομιστή. Για παράδειγμα, υποθέστε ότι θέλετε να κάνετε εγκατάσταση από το ftp.FreeBSD.org, χρησιμοποιώντας FTP μεσολαβητή τον foo.example.com, ο οποίος χρησιμοποιεί την πόρτα 1234. Στην περίπτωση αυτή, πηγαίνετε στο μενού επιλογών (options), θέτετε ως FTP username το ftp@ftp.FreeBSD.org, και ως κωδικό (password) την διεύθυνση email σας. Σαν μέσο εγκατάστασης (installation media) ορίζετε FTP (ή παθητικό FTP αν το υποστηρίζει ο μεσολαβητής) και το URL ftp://foo.example.com:1234/pub/FreeBSD. Καθώς το /pub/FreeBSD από ftp.FreeBSD.org γίνεται ορατό μέσω του foo.example.com, μπορείτε να εγκαταστήσετε από εκείνο το μηχάνημα (το οποίο θα φέρει τα αρχεία από το ftp.FreeBSD.org όπως απαιτούνται από την εγκατάσταση σας.
Επιβεβαίωση της Εγκατάστασης Η εγκατάσταση μπορεί τώρα να προχωρήσει, εφόσον το επιθυμείτε. Αυτή είναι επίσης η τελευταία σας ευκαιρία να την ακυρώσετε εμποδίζοντας έτσι και τις αλλαγές που πρόκειται να γίνουν στο σκληρό σας δίσκο. User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! [ Yes ] No Επιλέξτε &gui.yes; και πιέστε Enter για να προχωρήσετε. Ο χρόνος εγκατάστασης διαφέρει ανάλογα με το distribution set που έχετε επιλέξει, το μέσο εγκατάστασης, και την ταχύτητα του υπολογιστή σας. Θα δείτε μια σειρά από μηνύματα τα οποία δείχνουν την κατάσταση της εγκατάστασης. Η εγκατάσταση θα έχει ολοκληρωθεί όταν δείτε το ακόλουθο μήνυμα: Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: /usr/sbin/sysinstall. [ OK ] [ Press enter or space ] ΠιέστεEnter για να προχωρήσετε με τις ρυθμίσεις μετά την εγκατάσταση. Αν επιλέξετε &gui.no; και πιέσετε Enter θα ακυρώσετε την εγκατάσταση και δεν θα γίνει καμιά αλλαγή στο σύστημα σας. Θα εμφανιστεί το ακόλουθο μήνυμα: Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose "No" at the next prompt and go back into the installation menus to retry whichever operations have failed. [ OK ] Το μήνυμα αυτό εμφανίζεται επειδή δεν έγινε καμιά εγκατάσταση. Πιέζοντας Enter θα επιστρέψετε στο Κυρίως Μενού Εγκατάστασης (Main Installation Menu) για να βγείτε από την εγκατάσταση. Μετά την Εγκατάσταση Μετά από μια επιτυχημένη εγκατάσταση, ακολουθεί η ρύθμιση διάφορων προαιρετικών επιλογών. Οι ρυθμίσεις μπορούν να γίνουν αν εισέλθετε ξανά στο αντίστοιχο μενού (configuration options) πριν επανεκκινήσετε το νέο &os; σύστημα σας ή μετά την εγκατάσταση, χρησιμοποιώντας το sysinstall και επιλέγοντας Configure. Ρύθμιση Συσκευών Δικτύου Αν έχετε ρυθμίσει προηγουμένως το PPP για να κάνετε εγκατάσταση μέσω FTP, η οθόνη αυτή δεν θα εμφανιστεί, αλλά μπορείτε να την ρυθμίσετε αργότερα με τον τρόπο που περιγράψαμε παραπάνω. Για λεπτομερείς πληροφορίες σχετικά με Τοπικά Δίκτυα (LAN) και για ρύθμιση του &os; ως πύλη / δρομολογητή (gateway/router), ανατρέξτε στο κεφάλαιο Advanced Networking. User Confirmation Requested Would you like to configure any Ethernet or SLIP/PPP network devices? [ Yes ] No Για να ρυθμίσετε μια συσκευή δικτύου, επιλέξτε &gui.yes; και πιέστε Enter. Διαφορετικά, επιλέξτε &gui.no; για να συνεχίσετε.
Επιλέγοντας μια Συσκευή Ethernet
Επιλέξτε το interface που θα ρυθμίσετε με τα βελάκια, και πιέστε Enter. User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ] Στο συγκεκριμένο ιδιωτικό τοπικό δίκτυο, το τρέχον Internet πρωτόκολλο (IPv4) ήταν αρκετό. Επιλέξαμε το &gui.no; με τα βελάκια και πιέσαμε Enter. Αν είστε συνδεμένοι σε ένα υπάρχον IPv6 δίκτυο με ένα διακομιστή RA, επιλέξτε &gui.yes; και πιέστε Enter. Θα χρειαστούν αρκετά δευτερόλεπτα για την ανίχνευση διακομιστών RA. User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ] Αν δεν χρειάζεστε DHCP (Πρωτόκολλο Δυναμικής Απόδοσης Ρυθμίσεων, Dynamic Host Configuration Protocol) επιλέξτε &gui.no; με τα βελάκια και πιέστε Enter. Αν επιλέξετε &gui.yes; θα εκτελεστεί η εφαρμογή dhclient, και αν είναι επιτυχής, θα γίνει αυτόματη ρύθμιση των παραμέτρων του δικτύου. Ανατρέξτε στο για περισσότερες πληροφορίες. Η ακόλουθη οθόνη Ρυθμίσεων Δικτύου δείχνει τη ρύθμιση μιας συσκευής Ethernet για ένα σύστημα το οποίο θα λειτουργεί ως πύλη για ένα Τοπικό Δίκτυο (LAN).
Ρύθμιση Παραμέτρων Συσκευής ed0
Χρησιμοποιήστε το Tab για να επιλέξετε ανάμεσα στα διάφορα πεδία και να συμπληρώσετε τις κατάλληλες πληροφορίες. Host (Όνομα μηχανήματος) Το πλήρες όνομα του μηχανήματος, π.χ. k6-2.example.com σε αυτή την περίπτωση. Domain (Τομέας) Το όνομα του τομέα στον οποίο βρίσκεται το μηχάνημα, όπως example.com σε αυτή την περίπτωση. IPv4 Gateway (Πύλη) Πρόκειται για την διεύθυνση IP στην οποία προωθούνται τα πακέτα τα οποία δεν προορίζονται για τοπικούς προορισμούς. Θα πρέπει να συμπληρώσετε το πεδίο αυτό αν ο υπολογιστής είναι κόμβος στο συγκεκριμένο δίκτυο. Αφήστε αυτό το πεδίο κενό αν ο υπολογιστής είναι η πύλη για το Internet στο συγκεκριμένο δίκτυο. Η πύλη IPv4 είναι επίσης γνωστή ως προεπιλεγμένη πύλη ή προεπιλεγμένη διαδρομή (default gateway / default route). Name server (Διακομιστής Ονομάτων) Είναι η IP διεύθυνση του τοπικού σας διακομιστή DNS. Στο συγκεκριμένο ιδιωτικό τοπικό δίκτυο, δεν υπάρχει διακομιστής DNS και έτσι χρησιμοποιήθηκε η IP διεύθυνση του διακομιστή DNS που δίνει ο παροχέας Internet (208.163.10.2). IPv4 address (Διεύθυνση) Η IP διεύθυνση που θα χρησιμοποιηθεί σε αυτό το interface είναι 192.168.0.1 Netmask (Μάσκα Υποδικτύου) Το μπλοκ διευθύνσεων που χρησιμοποιούνται σε αυτό το δίκτυο είναι 192.168.0.0 - 192.168.0.255 με μάσκα υποδικτύου (netmask) 255.255.255.0. Extra options to ifconfig (Επιπλέον επιλογές για την ifconfig) Προσθέστε εδώ επιπλέον επιλογές για την ifconfig και το συγκεκριμένο interface. Στην συγκεκριμένη περίπτωση δεν υπάρχει καμία. Χρησιμοποιήστε το Tab για να επιλέξετε &gui.ok; όταν τελειώσετε, και πιέστε Enter. User Confirmation Requested Would you like to Bring Up the ed0 interface right now? [ Yes ] No Επιλέγοντας &gui.yes; και πιέζοντας Enter θα ενεργοποιήσετε το δίκτυο, έτοιμο προς χρήση στο μηχάνημα σας. Ωστόσο αυτό δεν επιτυγχάνει και πολλά κατά τη διάρκεια της εγκατάστασης, ούτως ή άλλως θα χρειαστεί να κάνετε επανεκκίνηση.
Ρύθμισης Πύλης (Gateway) User Confirmation Requested Do you want this machine to function as a network gateway? [ Yes ] No Αν το μηχάνημα πρόκειται να λειτουργεί ως πύλη για ένα τόπικο δίκτυο και να προωθεί πακέτα μεταξύ άλλων μηχανημάτων, επιλέξτε &gui.yes; και πιέστε Enter. Αν το μηχάνημα είναι ένας κόμβος του δικτύου, επιλέξτε &gui.no; και πιέστε Enter. Ρύθμιση Υπηρεσιών Internet (Internet Services) User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes [ No ] Αν επιλέξετε &gui.no;, κάποιες υπηρεσίες όπως το telnetd δεν θα ενεργοποιηθούν. Αυτό σημαίνει ότι απομακρυσμένοι χρήστες δεν θα μπορούν να χρησιμοποιήσουν το telnet για να εισέλθουν στο μηχάνημα. Οι τοπικοί χρήστες θα μπορούν ωστόσο να έχουν πρόσβαση σε απομακρυσμένα μηχανήματα μέσω του telnet. Οι υπηρεσίες αυτές μπορούν να ενεργοποιηθούν μετά την εγκατάσταση με την επεξεργασία του αρχείου /etc/inetd.conf με τον προτιμώμενο σας επεξεργαστή κειμένου. Δείτε το για περισσότερες πληροφορίες. Επιλέξτε &gui.yes; αν θέλετε να ρυθμίσετε τις υπηρεσίες αυτές κατά την εγκατάσταση. Θα ερωτηθείτε για μια ακόμα επιβεβαίωση: User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No Επιλέξτε &gui.yes; για να συνεχίσετε. User Confirmation Requested inetd(8) relies on its configuration file, /etc/inetd.conf, to determine which of its Internet services will be available. The default FreeBSD inetd.conf(5) leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd(8) is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to use the current settings. [ Yes ] No Επιλέγοντας &gui.yes; θα μπορέσετε να προσθέσετε υπηρεσίες σβήνοντας το # από την αρχή μιας γραμμής.
Επεξεργασία του <filename>inetd.conf</filename>
Μετά την προσθήκη των επιθυμητών υπηρεσιών, και με την πίεση του Esc θα εμφανιστεί ένα μενού το οποίο σας επιτρέπει να βγείτε από το πρόγραμμα, αποθηκεύοντας και τις αλλαγές σας.
Ενεργοποίηση Εισόδου μέσω SSH SSH sshd User Confirmation Requested Would you like to enable SSH login? Yes [ No ] Αν επιλέξετε &gui.yes; θα ενεργοποιηθεί ο &man.sshd.8;, ο δαίμονας του OpenSSH. Με τον τρόπο αυτό θα επιτρέψετε ασφαλή απομακρυσμένη πρόσβαση στο μηχάνημα σας. Για περισσότερες πληροφορίες σχετικά με το OpenSSH δείτε το . Ανώνυμο FTP FTP anonymous User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes [ No ] Άρνηση Ανώνυμου FTP Επιλέγοντας το προεπιλεγμένο &gui.no; και πιέζοντας Enter θα επιτρέπεται μόνος στους χρήστες που έχουν λογαριασμούς με κωδικούς να έχουν FTP πρόσβαση στο μηχάνημα. Επιτρέποντας το Ανώνυμο FTP Οποιοσδήποτε μπορεί να έχει πρόσβαση στο μηχάνημα σας, αν επιλέξετε να επιτρέψετε τις ανώνυμες συνδέσεις FTP. Θα πρέπει να λάβετε υπόψιν σας τις επιπλοκές ασφαλείας που θα επιφέρει μια τέτοια ρύθμιση. Για περισσότερες πληροφορίες σχετικά με την ασφάλεια, δείτε το . Για να επιτρέψετε το ανώνυμο FTP, χρησιμοποιήστε τα βελάκια για να επιλέξετε &gui.yes; και να πιέσετε Enter. Θα χρειαστεί να επιβεβαιώσετε ξανά την επιλογή σας: User Confirmation Requested Anonymous FTP permits un-authenticated users to connect to the system FTP server, if FTP service is enabled. Anonymous users are restricted to a specific subset of the file system, and the default configuration provides a drop-box incoming directory to which uploads are permitted. You must separately enable both inetd(8), and enable ftpd(8) in inetd.conf(5) for FTP services to be available. If you did not do so earlier, you will have the opportunity to enable inetd(8) again later. If you want the server to be read-only you should leave the upload directory option empty and add the -r command-line option to ftpd(8) in inetd.conf(5) Do you wish to continue configuring anonymous FTP? [ Yes ] No Το μήνυμα αυτό σας ειδοποιεί επίσης ότι η υπηρεσία FTP θα πρέπει επίσης να ενεργοποιηθεί στο /etc/inetd.conf σε περίπτωση που θέλετε να ενεργοποιηθούν οι ανώνυμες συνδέσεις FTP (δείτε το ). Επιλέξτε &gui.yes; και πιέστε Enter για να συνεχίσετε. Θα δείτε την ακόλουθη οθόνη:
Προεπιλεγμένες Ρυθμίσεις Ανώνυμου FTP
Χρησιμοποιήστε το Tab για να επιλέξετε και να συμπληρώσετε τα απαραίτητα πεδία πληροφοριών: UID Ο αναγνωριστικός αριθμός (user ID) που θέλετε να αποδώσετε στον ανώνυμο FTP χρήστη. Όλα τα αρχεία που θα ανεβαίνουν στον διακομιστή FTP θα ανήκουν σε αυτό το ID. Group Σε ποια ομάδα χρηστών (group) θέλετε να ανήκει ο ανώνυμος FTP χρήστης. Comment Κείμενο που περιέχει περιγραφή του χρήστη στο αρχείο /etc/passwd. FTP Root Directory Η τοποθεσία που περιέχει τα αρχεία που είναι διαθέσιμα στο ανώνυμο FTP. Upload Subdirectory Η τοποθεσία που θα ανεβαίνουν τα αρχεία από ανώνυμους FTP χρήστες. Ο ριζικός (root) κατάλογος του FTP, από προεπιλογή, δημιουργείται στο /var. Αν δεν υπάρχει εκεί αρκετός χώρος για την αναμενόμενη χρήση του FTP, μπορείτε να χρησιμοποιήσετε τον κατάλογο /usr αλλάζοντας τον ριζικό κατάλογο (FTP Root Directory) σε /usr/ftp. Όταν είστε ικανοποιημένος με τις τιμές, πιέστε Enter για να συνεχίσετε. User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No Αν επιλέξετε &gui.yes; και πιέσετε Enter, θα ξεκινήσει αυτόματα ένας επεξεργαστής κειμένου ώστε να μπορέσετε να επεξεργαστείτε το μήνυμα.
Επεξεργασία του Μηνύματος Καλοσωρίσματος (Welcome Message) του FTP
Πρόκειται για τον επεξεργαστή κειμένου ee. Χρησιμοποιήστε τις οδηγίες για να αλλάξετε το μήνυμα ή αν θέλετε αλλάξτε το μήνυμα αργότερα, χρησιμοποιώντας ένα επεξεργαστή κειμένου της επιλογής σας. Δείτε το όνομα του αρχείου και τη θέση του στην τελευταία γραμμή της οθόνης του επεξεργαστή κειμένου. Πιέζοντας Esc θα εμφανιστεί ένα αναδυόμενο μενού με προεπιλεγμένη την επιλογή a) leave editor. Πιέστε Enter για έξοδο και συνέχεια. Πιέστε ξανά Enter για να αποθηκεύσετε τυχόν αλλαγές που έχετε κάνει.
Ρύθμιση Συστήματος Αρχείων Δικτύου (Network File System) Το Σύστημα Αρχείων Δικτύου (NFS) επιτρέπει το διαμοιρασμό αρχείων σε ένα δίκτυο. Ένα μηχάνημα μπορεί να ρυθμιστεί ως εξυπηρετητής, πελάτης ή και τα δύο. Ανατρέξτε στο για περισσότερες πληροφορίες. Διακομιστής NFS User Confirmation Requested Do you want to configure this machine as an NFS server? Yes [ No ] Αν δεν υπάρχει ανάγκη για εξυπηρετητή Συστήματος Αρχείων Δικτύου, επιλέξτε &gui.no; και πιέστε Enter. Αν επιλέξετε &gui.yes; θα εμφανιστεί ένα αναδυόμενο μήνυμα το για να σας πληροφορήσει ότι πρέπει να δημιουργηθεί το αρχείο exports. Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ] Πιέστε Enter για να συνεχίσετε. Θα ανοίξει ένας επεξεργαστής κειμένου για να μπορέσετε να δημιουργήσετε και να επεξεργαστείτε το αρχείο exports.
Επεξεργασία Αρχείου <filename>exports</filename>
Χρησιμοποιήστε τις οδηγίες για να προσθέσετε τα συστήματα αρχείων που θέλετε να διαμοιράσετε, τώρα ή αργότερα χρησιμοποιώντας ένα επεξεργαστή κειμένου της επιλογής σας. Σημειώστε το όνομα και την τοποθεσία του αρχείου όπως φαίνονται στο κάτω μέρος της οθόνης. Πιέζοντας Esc θα εμφανιστεί ένα αναδυόμενο μενού με προεπιλεγμένη την επιλογή a) leave editor. Πιέστε Enter για έξοδο και συνέχεια.
Πελάτης NFS Ο πελάτης NFS επιτρέπει στο μηχάνημα σας να έχει πρόσβαση σε εξυπηρετητές NFS. User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ] Με τα βελάκια, επιλέξτε κατά βούληση &gui.yes; ή &gui.no; και πιέστε Enter.
Ρυθμίσεις Κονσόλας (System Console Settings) Υπάρχουν διάφορες διαθέσιμες επιλογές για τη ρύθμιση της κονσόλας του συστήματος. User Confirmation Requested Would you like to customize your system console settings? [ Yes ] No Για να δείτε και να ρυθμίσετε τις επιλογές, επιλέξτε &gui.yes; και πιέστε Enter.
Επιλογές Ρύθμισης Κονσόλας Συστήματος
Μια συνηθισμένη επιλογή είναι η προστασία οθόνης (screen saver). Χρησιμοποιήστε τα βελάκια για να επιλέξετε Saver και πιέστε Enter.
Επιλογές Προστασίας Οθόνης
Επιλέξτε την επιθυμητή προστασία οθόνης με τα βελάκια, και πιέστε Enter. Θα ξαναδείτε το μενού Ρύθμισης Κονσόλας Συστήματος. Το προεπιλεγμένο χρονικό διάστημα είναι 300 δευτερόλεπτα. Για να αλλάξετε το διάστημα, επιλέξτε ξανά Saver και από το μενού Screen Saver Options επιλέξτε Timeout με τα βελάκια, και πιέστε Enter. Θα εμφανιστεί ένα αναδυόμενο μενού:
Χρονικό Διάστημα Προστασίας Οθόνης
Αλλάξτε την τιμή, επιλέξτε &gui.ok; και πιέστε Enter για να επιστρέψετε στο μενού Ρύθμισης Κονσόλας Συστήματος.
Έξοδος από τις Ρυθμίσεις Κονσόλας Συστήματος
Επιλέγοντας Exit και πιέζοντας Enter θα συνεχίσετε με τις υπόλοιπες ρυθμίσεις που πρέπει να γίνουν μετά την εγκατάσταση.
Ρύθμιση Ζώνης Ώρας (Time Zone) Η σωστή ρύθμιση της ζώνης ώρας, θα επιτρέψει στο μηχάνημα σας να διορθώνει αυτόματα την ώρα σύμφωνα με τις τοπικές ρυθμίσεις, καθώς και να εκτελεί άλλες λειτουργίες που σχετίζονται με τις ζώνες ώρας. Το παράδειγμα που φαίνεται είναι για ένα μηχάνημα που βρίσκεται στις Ανατολικές Ηνωμένες Πολιτείες. Οι επιλογές σας θα διαφέρουν ανάλογα με τη γεωγραφική σας θέση. User Confirmation Requested Would you like to set this machine's time zone now? [ Yes ] No Επιλέξτε &gui.yes; και πιέστε Enter για να ρυθμίσετε τη ζώνη ώρας. User Confirmation Requested Is this machine's CMOS clock set to UTC? If it is set to local time or you don't know, please choose NO here! Yes [ No ] Επιλέξτε &gui.yes; ή &gui.no; ανάλογα με το πως είναι ρυθμισμένο το ρολόι στο μηχάνημα σας και πιέστε Enter.
Επιλογή της Περιοχής σας
Επιλέξτε την κατάλληλη περιοχή (region) με τα βελάκια και πιέστε Enter.
Επιλογή της Χώρας σας
Επιλέξτε την κατάλληλη χώρα χρησιμοποιώντας τα βελάκια και πιέστε Enter.
Επιλογή Ζώνης Ώρας (Time Zone)
Επιλέξτε την κατάλληλη ζώνη ώρας με τα βελάκια και πιέστε Enter. Confirmation Does the abbreviation 'EDT' look reasonable? [ Yes ] No Επιβεβαιώστε ότι είναι σωστή η συντομογραφία για τη ζώνη ώρας που έχετε επιλέξει. Αν φαίνεται εντάξει, πιέστε Enter για να συνεχίσετε με τις υπόλοιπες ρυθμίσεις μετά την εγκατάσταση.
Συμβατότητα με το Linux (Linux Compatibility) User Confirmation Requested Would you like to enable Linux binary compatibility? [ Yes ] No Επιλέγοντας &gui.yes; και πιέζοντας Enter θα επιτρέψετε την εκτέλεση προγραμμάτων Linux στο &os;. Η εγκατάσταση θα προσθέσει όλα τα απαραίτητα πακέτα για τη συμβατότητα με εκτελέσιμα προγράμματα για Linux. Αν κάνετε εγκατάσταση μέσω FTP, το μηχάνημα θα πρέπει να είναι συνδεμένο στο Internet. Μερικές φορές, μια τοποθεσία FTP δεν έχει όλες τις απαιτούμενες διανομές, όπως τη συμβατότητα με το Linux. Μπορείτε ωστόσο να την εγκαταστήσετε αργότερα, αν χρειάζεται. Ρυθμίσεις Ποντικιού (Mouse Settings) Η επιλογή αυτή θα σας επιτρέψει να κάνετε αποκοπή και επικόλληση κειμένου στην κονσόλα και σε προγράμματα χρησιμοποιώντας ένα ποντίκι τριών πλήκτρων. Αν χρησιμοποιείτε ποντίκι δύο πλήκτρων, ανατρέξτε στη σελίδα βοήθειας, &man.moused.8;, μετά την εγκατάσταση για να δείτε πως μπορείτε να εξομοιώσετε ποντίκι τριών πλήκτρων. Στο παράδειγμα αυτό φαίνεται η ρύθμιση ενός μη-USB ποντικιού (π.χ. PS/2 η σειριακού - COM - ποντικιού): User Confirmation Requested Does this system have a non-USB mouse attached to it? [ Yes ] No Επιλέξτε &gui.yes; για μη-USB ποντίκι, ή &gui.no; για USB ποντίκι και πιέστε Enter.
Επιλογή Πρωτοκόλλου Ποντικιού (Mouse Protocol Type)
Χρησιμοποιήστε τα βελάκια για να επιλέξετε Type και πιέστε Enter.
Επιλογή Πρωτοκόλλου Ποντικιού (Mouse Protocol)
Το ποντίκι που χρησιμοποιείται σε αυτό το παράδειγμα, είναι τύπου PS/2, και έτσι είναι σωστή η προεπιλεγμένη ρύθμιση Auto. Για να αλλάξετε πρωτόκολλο, χρησιμοποιήστε τα βελάκια για να κάνετε κάποια άλλη επιλογή. Βεβαιωθείτε ότι είναι φωτισμένη η επιλογή &gui.ok; και πιέστε Enter για έξοδο από αυτό το μενού.
Ρύθμιση Πόρτας Ποντικιού (Mouse Port)
Χρησιμοποιήστε τα βελάκια για να επιλέξετε Port και πιέστε Enter.
Ρύθμιση Πόρτας Ποντικιού (Mouse Port)
Το σύστημα αυτό είχε ποντίκι PS/2 και έτσι ήταν κατάλληλη η προεπιλεγμένη ρύθμιση PS/2. Για να αλλάξετε την πόρτα, χρησιμοποιήστε τα βελάκια και πιέστε Enter.
Ενεργοποίηση του Δαίμονα Ποντικιού (Mouse Daemon)
Τέλος, χρησιμοποιήστε τα βελάκια για να επιλέξετε Enable, και πιέστε Enter για να ενεργοποιήσετε και να δοκιμάσετε τον δαίμονα του ποντικιού (mouse daemon).
Έλεγχος του Δαίμονα Ποντικιού
Μετακινήστε το ποντίκι στην οθόνη και βεβαιωθείτε ότι ο δρομέας αντιδρά σωστά. Αν είναι εντάξει, επιλέξτε &gui.yes; και πιέστε Enter. Αν όχι, το ποντίκι δεν έχει ρυθμιστεί σωστά — επιλέξτε &gui.no; και ξαναδοκιμάστε χρησιμοποιώντας διαφορετικές ρυθμίσεις. Επιλέξτε Exit με τα βελάκια και πιέστε Enter για να επιστρέψετε, ώστε να συνεχίσετε με τις υπόλοιπες ρυθμίσεις μετά την εγκατάσταση.
Εγκατάσταση Πακέτων Τα πακέτα είναι προμεταγλωττισμένα εκτελέσιμα, και αποτελούν ένα βολικό τρόπο για να εγκαταστήσετε λογισμικό. Θα σας δείξουμε την εγκατάσταση ενός πακέτου ως παράδειγμα. Μπορείτε επίσης να εγκαταστήσετε τώρα και όποια άλλα πρόσθετα πακέτα επιθυμείτε. Μετά την εγκατάσταση, μπορείτε να χρησιμοποιήσετε το sysinstall για να εγκαταστήσετε πρόσθετα πακέτα. User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? [ Yes ] No Επιλέγοντας &gui.yes; και πιέζοντας Enter θα δείτε τις οθόνες επιλογής πακέτων:
Επιλογή Κατηγορίας Πακέτου
Μπορείτε κάθε δεδομένη στιγμή να εγκαταστήσετε μόνο τα πακέτα που είναι διαθέσιμα στο τρέχον μέσο εγκατάστασης. Με την επιλογή All θα δείτε όλα τα διαθέσιμα πακέτα, ή μπορείτε να επιλέξετε συγκεκριμένη κατηγορία. Φωτίστε την επιλογή σας με τα βελάκια και πιέστε Enter. Θα εμφανιστεί ένα μενού το οποίο δείχνει όλα διαθέσιμα πακέτα για την επιλογή που κάνατε:
Επιλογή Πακέτων
Το κέλυφος (shell) bash φαίνεται επιλεγμένο. Επιλέξτε όσα πακέτα επιθυμείτε, φωτίζοντας το πακέτο και πιέζοντας το πλήκτρο Space. Θα δείτε μια σύντομη περιγραφή για κάθε πακέτο στο κάτω αριστερό μέρος της οθόνης. Η πίεση του πλήκτρου Tab εναλλάσσει μεταξύ του τελευταίου επιλεγμένου πακέτου, του &gui.ok;, και του &gui.cancel;. Όταν έχετε τελειώσει με το μαρκάρισμα των πακέτων προς εγκατάσταση, πιέστε μια φορά Tab για να μετακινηθείτε στο &gui.ok; και πιέστε Enter για να επιστρέψετε στο μενού Επιλογής Πακέτων (Package Selection). Το αριστερό και δεξί βελάκι εναλλάσσει επίσης μεταξύ του &gui.ok; και του &gui.cancel;. Μπορείτε να χρησιμοποιήσετε αυτή τη μέθοδο για να επιλέξετε &gui.ok; και πιέστε Enter για να επιστρέψετε στο μενού Επιλογής Πακέτων.
Εγκατάσταση Πακέτων
Χρησιμοποιήστε το Tab και τα βελάκια για να επιλέξετε [ Install ] και πιέστε Enter. Θα χρειαστεί να επιβεβαιώσετε ότι θέλετε να εγκαταστήσετε τα πακέτα:
Επιβεβαίωση Εγκατάστασης Πακέτων
Επιλέγοντας &gui.ok; και πιέζοντας Enter θα ξεκινήσει η εγκατάσταση πακέτων. Θα βλέπετε μηνύματα της εγκατάστασης μέχρι την ολοκλήρωση της. Σημειώστε τυχόν μηνύματα λάθους που εμφανίζονται. Η τελική ρύθμιση συνεχίζεται μετά την εγκατάσταση των πακέτων. Αν καταλήξετε να μην εγκαταστήσετε κανένα πακέτο, και επιθυμείτε να επιστρέψετε στην τελική ρύθμιση, επιλέξτε Install ούτως ή άλλως.
Προσθήκη Χρηστών / Ομάδων (Users/Groups) Θα πρέπει να προσθέσετε τουλάχιστον ένα χρήστη κατά τη διάρκεια της εγκατάστασης, ώστε να μπορείτε να χρησιμοποιήσετε το σύστημα χωρίς να εισέρχεστε ως root. Η root κατάτμηση είναι γενικά μικρή, και εκτελώντας εφαρμογές ως root μπορεί γρήγορα να γεμίσει. Παρακάτω φαίνεται και ένας πιο σοβαρός κίνδυνος: User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the "root" user is dangerous (it is easy to do things which adversely affect the entire system). [ Yes ] No Επιλέξτε &gui.yes; και πιέστε Enter για να συνεχίσετε με την προσθήκη ενός χρήστη.
Επιλογή Χρήστη
Επιλέξτε User με τα βελάκια και πιέστε Enter.
Προσθήκη Πληροφοριών Χρήστη
Καθώς θα εισάγετε τα στοιχεία πιέζοντας το Tab θα εμφανίζονται οι παρακάτω περιγραφές στο κάτω μέρος της οθόνης για να σας βοηθήσουν στην εισαγωγή των απαιτούμενων πληροφοριών: Login ID To όνομα χρήστη (login name) για το νέο χρήστη (υποχρεωτικό). UID Ο αναγνωριστικός αριθμός (numerical ID) για αυτό τον χρήστη (αφήστε τον κενό για αυτόματη επιλογή). Group Το όνομα της ομάδας (group name) για αυτό το χρήστη (αφήστε τον κενό για αυτόματη επιλογή). Password Ο κωδικός (password) για αυτό το χρήστη (δώστε προσοχή στο πεδίο αυτό!). Full name Το πλήρες όνομα του χρήστη (σχόλιο). Member groups Οι υπόλοιπες ομάδες (groups) στις οποίες ανήκει αυτός ο χρήστης (έχει δηλ. τα δικαιώματα τους). Home directory Ο προσωπικός κατάλογος αρχείων (home directory) του χρήστη (αφήστε κενό για την προεπιλεγμένη επιλογή). Login shell Το προεπιλεγμένο κέλυφος (login shell) του χρήστη (αφήστε κενό για την προεπιλογή, π.χ. /bin/sh). Το κέλυφος εισόδου αλλάχτηκε από /bin/sh σε /usr/local/bin/bash για να χρησιμοποιηθεί το κέλυφος bash το οποίο εγκαταστήσαμε προηγουμένως μέσω πακέτου. Μην προσπαθήσετε να χρησιμοποιήσετε κάποιο κέλυφος που δεν υπάρχει, διαφορετικά δεν θα μπορείτε να κάνετε login. Το πλέον συνηθισμένο κέλυφος στον κόσμο του BSD είναι το C shell, το οποίο μπορείτε να γράψετε ως /bin/tcsh. Ο χρήστης προστέθηκε επίσης στην ομάδα wheel για να έχει τη δυνατότητα να γίνει υπερχρήστης (superuser) με δικαιώματα root. Όταν είστε ικανοποιημένος από τις επιλογές σας, πιέστε &gui.ok; και θα εμφανιστεί ξανά το μενού User and Group Management:
Έξοδος από την Διαχείριση Χρηστών και Ομάδων
Μπορείτε επίσης τη δεδομένη στιγμή να προσθέσετε ομάδες, αν υπάρχει συγκεκριμένη ανάγκη. Διαφορετικά, μπορείτε να επανέλθετε στη ρύθμιση αυτή μετά την εγκατάσταση, μέσω του sysinstall. Όταν τελειώσετε με την προσθήκη χρηστών, επιλέξτε Exit με τα βελάκια και πιέστε Enter για να συνεχίσετε με την εγκατάσταση.
Ορισμός του Κωδικού για το Χρήστη <username>root</username> Message Now you must set the system manager's password. This is the password you'll use to log in as "root". [ OK ] [ Press enter to continue ] Πιέστε Enter για να ορίσετε τον κωδικό για το χρήστη root. Θα πρέπει να πληκτρολογήσετε δύο φορές τον κωδικό σωστά. Δεν χρειάζεται να πούμε ότι πρέπει να έχετε τρόπο να βρείτε τον κωδικό αν τον ξεχάσετε. Παρατηρήστε ότι ο κωδικός δεν εμφανίζεται καθώς τον πληκτρολογείτε, ούτε και εμφανίζονται αστεράκια στη θέση του. Changing local password for root. New password : Retype new password : Η εγκατάσταση θα συνεχιστεί μετά την επιτυχημένη εισαγωγή του κωδικού. Έξοδος από την Εγκατάσταση Αν χρειάζεται να ρυθμίσετε πρόσθετες δικτυακές υπηρεσίες, ή κάποια άλλη ρύθμιση, μπορείτε να το κάνετε τώρα ή μετά την εγκατάσταση με τη χρήση της εντολής sysinstall. User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes [ No ] Επιλέξτε &gui.no; με τα βελάκια και πιέστε Enter για να επιστρέψετε στο Κυρίως Μενού Εγκατάστασης (Main Installation Menu).
Έξοδος από την Εγκατάσταση
Επιλέξτε [X Exit Install] με τα βελάκια και πιέστε Enter. Θα κληθείτε να επιβεβαιώσετε την έξοδο από την εγκατάσταση: User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No Επιλέξτε &gui.yes; και αν έχετε ξεκινήσει από δισκέτα, βγάλτε την. Ο οδηγός CDROM θα παραμείνει κλειδωμένος μέχρι να αρχίσει η επανεκκίνηση του μηχανήματος. Κατόπιν ξεκλειδώνει, και μπορείτε (γρήγορα) να βγάλετε το CD από τον οδηγό. Το σύστημα θα επανεκκινήσει, και προσέξτε για τυχόν μηνύματα λάθους που θα εμφανιστούν.
Tom Rhodes Συνεισφορά από τον Ρύθμιση Πρόσθετων Υπηρεσιών Δικτύου Η ρύθμιση υπηρεσιών δικτύου μπορεί να είναι μια δύσκολη διαδικασία για νέους χρήστες χωρίς εμπειρία στον αντίστοιχο τομέα. Η δικτύωση, περιλαμβανομένου και του Internet, είναι κρίσιμη σε όλα τα μοντέρνα λειτουργικά συστήματα, περιλαμβανομένου και του &os;. Για το λόγο αυτό είναι χρήσιμο να έχετε κάποια κατανόηση των εκτεταμένων ικανοτήτων δικτύωσης του &os;. Κάνοντας το αυτό κατά τη διάρκεια της εγκατάστασης επιβεβαιώνεται η δυνατότητα των χρηστών να κατανοήσουν τις διάφορες υπηρεσίες που τους παρέχονται. Οι δικτυακές υπηρεσίες είναι προγράμματα που δέχονται είσοδο από οποιοδήποτε σημείο στο δίκτυο. Καταβάλλεται κάθε προσπάθεια για να είναι σίγουρο ότι τα προγράμματα αυτά δεν θα κάνουν οτιδήποτε επιζήμιο. Δυστυχώς οι προγραμματιστές δεν είναι τέλειοι και κατά καιρούς έχουν εμφανιστεί περιπτώσεις που σφάλματα σε δικτυακές υπηρεσίες έχουν γίνει αντικείμενα εκμετάλλευσης από εισβολείς για την εκτέλεση κακόβουλων πράξεων. Είναι σημαντικό να μην ενεργοποιήσετε καμιά δικτυακή υπηρεσία μέχρι να ανακαλύψετε ότι την χρειάζεστε. Μπορείτε πάντα να την ενεργοποιήσετε αργότερα, εκτελώντας ξανά την εφαρμογή sysinstall ή χρησιμοποιώντας τις δυνατότητες που παρέχονται από το αρχείο /etc/rc.conf. Με την επιλογή Networking θα δείτε ένα μενού παρόμοιο με το παρακάτω:
Ρύθμιση Δικτύου Upper-level (Ανωτέρου Επιπέδου)
Η πρώτη επιλογή, Interfaces, καλύφθηκε προηγουμένως κατά τη διάρκεια του , και μπορείτε με ασφάλεια να την αγνοήσετε. Επιλέγοντας AMD προστίθεται υποστήριξη για το βοηθητικό πρόγραμμα αυτόματης προσάρτησης (automatic mount) BSD. Αυτό χρησιμοποιείται συνήθως σε συνδυασμό με το πρωτόκολλο NFS (δείτε παρακάτω) για την αυτόματη προσάρτηση απομακρυσμένων συστημάτων αρχείων. Δεν απαιτείται εδώ κάποια ιδιαίτερη ρύθμιση. Αμέσως μετά βρίσκεται η επιλογή AMD Flags. Όταν την επιλέξετε θα εμφανιστεί ένα αναδυόμενο μενού για να μπορέσετε να εισάγετε συγκεκριμένες παραμέτρους (flags) για την υπηρεσία AMD. Το μενού περιέχει ήδη ένα σύνολο από προεπιλογές: -a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map Η επιλογή θέτει το προεπιλεγμένο σημείο προσάρτησης (mount point) το οποίο εδώ καθορίζεται ως /.amd_mnt. Η επιλογή καθορίζει το προεπιλεγμένο αρχείο καταγραφής log. Ωστόσο όταν χρησιμοποιείται το syslogd όλες οι εργασίες καταγραφής στέλνονται στον δαίμονα καταγραφής συστήματος (system log daemon). Ο κατάλογος /host χρησιμοποιείται για την προσάρτηση ενός διαμοιρασμένου συστήματος αρχείων από ένα απομακρυσμένο κόμβο, ενώ ο κατάλογος /net χρησιμοποιείται για την προσάρτηση ενός διαμοιρασμένου συστήματος αρχείων από μια IP διεύθυνση. Το αρχείο /etc/amd.map καθορίζει τις προεπιλεγμένες επιλογές για τις προσαρτήσεις μέσω του AMD. FTP anonymous Η επιλογή Anon FTP επιτρέπει ανώνυμες συνδέσεις FTP. Επιλέξτε την για να κάνετε το μηχάνημα ανώνυμο εξυπηρετητή FTP. Θα πρέπει ωστόσο να αντιλαμβάνεστε τις επιπλοκές στην ασφάλεια που προκαλεί η επιλογή αυτή. Θα εμφανιστεί ένα ακόμα μενού για να σας εξηγήσει τις επιπλοκές ασφαλείας καθώς και τις ρυθμίσεις σε βάθος. Το μενού ρυθμίσεων Gateway θα ρυθμίσει το μηχάνημα σας να λειτουργεί ως πύλη όπως εξηγήσαμε προηγουμένως. Από εδώ επίσης μπορείτε να καταργήσετε την επιλογή Gateway αν την επιλέξατε κατά λάθος κατά τη διάρκεια της διαδικασίας εγκατάστασης. Η επιλογή Inetd μπορεί να χρησιμοποιηθεί για να ρυθμίσει ή να απενεργοποιήσει πλήρως το δαίμονα &man.inetd.8; όπως εξηγήθηκε παραπάνω. Η επιλογή Mail χρησιμοποιείται για την ρύθμιση του προεπιλεγμένου MTA ή Αντιπροσώπου Μεταφοράς Ταχυδρομείου (Mail Transfer Agent) του συστήματος. Με την επιλογή αυτή θα εμφανιστεί το παρακάτω μενού:
Επιλογή Προεπιλεγμένου MTA
Στο σημείο αυτό σας δίνεται η δυνατότητα να επιλέξετε ποιο MTA να εγκαταστήσετε και να ρυθμίσετε ως προεπιλεγμένο Το MTA δεν είναι τίποτα περισσότερο από τον διακομιστή ταχυδρομείου ο οποίος παραδίδει τα μηνύματα στους χρήστες του συστήματος ή το Internet. Αν επιλέξετε Sendmail θα εγκαταστήσετε την δημοφιλή εφαρμογή διακομιστή sendmail η οποία είναι και η προεπιλεγμένη για το &os;. Με την επιλογή Sendmail local θα ρυθμίσετε το sendmail να είναι το προεπιλεγμένο MTA, αλλά θα απενεργοποιηθεί η ικανότητα του να λαμβάνει email από το Internet. Οι άλλες επιλογές εδώ, Postfix και Exim δρουν παρόμοια με το Sendmail. Και οι δύο διανέμουν email. Ωστόσο κάποιοι χρήστες προτιμούν αυτές τις εναλλακτικές λύσεις MTA από το sendmail. Μετά την επιλογή ενός MTA, ή αν αποφασίσετε να μην επιλέξετε ένα MTA, θα εμφανιστεί το μενού ρύθμισης δικτύου, με την επόμενη επιλογή που είναι NFS client. Η επιλογή NFS client θα ρυθμίσει το σύστημα σας να επικοινωνεί με ένα εξυπηρετητή μέσω NFS. Ένας εξυπηρετητής NFS καθιστά συστήματα αρχείων διαθέσιμα προς άλλα μηχανήματα μέσω του δικτύου, χρησιμοποιώντας το πρωτόκολλο NFS. Αν το μηχάνημα σας δεν διαθέτει σύνδεση τοπικού δικτύου, μπορείτε να αφήσετε την λειτουργία αυτή αποεπιλεγμένη. Το σύστημα μπορεί να χρειαστεί περισσότερες ρυθμίσεις αργότερα. Δείτε για περισσότερες πληροφορίες ρύθμισης του πελάτη και του διακομιστή. Κάτω από την επιλογή αυτή υπάρχει η αντίστοιχη NFS server η οποία επιτρέπει να ρυθμίσετε το σύστημα σας ως εξυπηρετητή NFS. Προστίθενται με τον τρόπο αυτό οι απαραίτητες πληροφορίες για την εκκίνηση της υπηρεσίας RPC (remote procedure call). Το RPC χρησιμοποιείται για τον συντονισμό των συνδέσεων μεταξύ των κόμβων και των προγραμμάτων. Στην επόμενη γραμμή βρίσκεται η επιλογή Ntpdate η οποία χειρίζεται τον συγχρονισμό ώρας. Όταν επιλεχθεί, εμφανίζεται ένα μενού όπως το παρακάτω:
Ρύθμιση Ntpdate
Από το μενού αυτό, επιλέξτε τον διακομιστή που είναι πλησιέστερος στην τοποθεσία σας. Επιλέγοντας τον πλησιέστερο, ο συγχρονισμός της ώρας θα είναι πιο ακριβής, καθώς ένας απομακρυσμένος διακομιστής θα έχει ενδεχομένως μεγαλύτερη καθυστέρηση στη σύνδεση. Η επόμενη επιλογή είναι το PCNFSD. Με αυτήν θα εγκατασταθεί το πακέτο net/pcnfsd από τη συλλογή Ports. Πρόκειται για ένα χρήσιμο βοηθητικό πρόγραμμα το οποίο παρέχει υπηρεσίες πιστοποίησης (authentication) για το NFS για συστήματα που δεν έχουν δυνατότητα να παρέχουν τις δικές τους, όπως το λειτουργικό σύστημα &ms-dos; της Microsoft. Τώρα θα πρέπει να μετακινηθείτε προς τα κάτω για να δείτε τις άλλες επιλογές:
Ρύθμιση Δικτύου Lower-level (Κατώτερου Επιπέδου)
Τα προγράμματα &man.rpcbind.8;, &man.rpc.statd.8;, και &man.rpc.lockd.8; χρησιμοποιούνται όλα για Remote Procedure Calls (RPC). Το πρόγραμμα rpcbind κατευθύνει την επικοινωνία μεταξύ εξυπηρετητών και πελατών NFS και απαιτείται για τη σωστή λειτουργία των εξυπηρετητών NFS. Ο δαίμονας rpc.statd αλληλεπιδρά με το δαίμονα rpc.statd άλλων μηχανημάτων για να παρέχει πληροφορίες κατάστασης. Η κατάσταση που λαμβάνεται, συνήθως φυλάσσεται στο αρχείο /var/db/statd.status. Η επόμενη επιλογή που εμφανίζεται είναι το rpc.lockd, το οποίο αν επιλεχθεί θα παρέχει υπηρεσίες κλειδώματος αρχείων (file locking). Συνήθως χρησιμοποιείται μαζί με το rpc.statd για να παρακολουθεί ποια μηχανήματα ζητούν κλειδώματα και πόσο συχνά τα απαιτούν. Αν και οι δυο τελευταίες επιλογές είναι θαυμάσιες για εκσφαλμάτωση και αντιμετώπιση προβλημάτων, δεν απαιτούνται για τη σωστή λειτουργία των διακομιστών και πελατών NFS. Καθώς προχωράμε τη λίστα προς τα κάτω, η επόμενη επιλογή είναι το Routed, που είναι ο δαίμονας δρομολόγησης. Το πρόγραμμα &man.routed.8; διαχειρίζεται τους πίνακες δρομολόγησης του δικτύου, ανακαλύπτει δρομολογητές multicast και παρέχει, κατόπιν απαίτησης, αντίγραφα του πίνακα δρομολόγησης σε κάθε συνδεμένο στο δίκτυο κόμβο. Η χρήση του προορίζεται κυρίως για μηχανήματα τα οποία δρουν ως πύλη (gateway) σε ένα τοπικό δίκτυο. Όταν το επιλέξετε, θα εμφανιστεί ένα μενού το οποίο θα σας ζητήσει την προεπιλεγμένη τοποθεσία για το πρόγραμμα. Είναι ήδη καθορισμένη για σας, και μπορείτε να την επιλέξετε πιέζοντας το πλήκτρο Enter. Θα εμφανιστεί τότε ακόμα ένα μενού, που θα σας ζητά αυτή τη φορά τυχόν επιπλέον ρυθμίσεις (flags) που θέλετε να περάσετε στην εφαρμογή routed. Η προεπιλογή είναι το και πρέπει ήδη να φαίνεται στην οθόνη σας. Στην επόμενη γραμμή βρίσκεται η επιλογή Rwhod η οποία, όταν επιλεχθεί, θα ξεκινήσει τον δαίμονα &man.rwhod.8; κατά την εκκίνηση του συστήματος. Η εντολή rwhod εκπέμπει περιοδικά μηνύματα του συστήματος στο δίκτυο, ή και τα συλλέγει όταν είναι σε κατάσταση καταναλωτή (consumer). Μπορείτε να βρείτε περισσότερες πληροφορίες στις σελίδες βοήθειας &man.ruptime.1; και &man.rwho.1;. Η προτελευταία επιλογή στη λίστα είναι για το δαίμονα &man.sshd.8;. Πρόκειται για τον εξυπηρετητή secure shell ή OpenSSH ο οποίος συνίσταται ιδιαίτερα σε σχέση με τους στάνταρ εξυπηρετητές telnet και FTP. Ο εξυπηρετητής sshd χρησιμοποιείται για την δημιουργία ασφαλής σύνδεσης μεταξύ δύο μηχανημάτων, με τη χρήση κρυπτογραφημένων συνδέσεων. Τέλος, υπάρχει η επιλογή TCP Extensions. Αυτή επιτρέπει την χρήση των Επεκτάσεων TCP που ορίζονται στα RFC 1323 και RFC 1644. Αν και σε πολλά μηχανήματα, η χρήση τους μπορεί να επιταχύνει τις συνδέσεις, μπορεί επίσης να προκαλέσει και την κατάρρευση κάποιων από αυτές. Δεν συνίσταται για εξυπηρετητές, μπορεί όμως να είναι χρήσιμη σε ανεξάρτητα μηχανήματα. Τώρα που έχετε ρυθμίσει τις δικτυακές υπηρεσίες, μπορείτε να μετακινηθείτε στο πρώτο στοιχείο της λίστας, το Exit και να συνεχίσετε με το επόμενο τμήμα ρυθμίσεων.
Εκκίνηση του &os; Εκκίνηση &os;/&arch.i386; Αν όλα πήγαν καλά, θα δείτε μηνύματα να κυλούν στην οθόνη σας μέχρι να φτάσετε στην προτροπή εισόδου (login prompt). Μπορείτε να δείτε το περιεχόμενο των μηνυμάτων με την πίεση του πλήκτρου Scroll-Lock και χρησιμοποιώντας τα πλήκτρα PgUp και PgDn. Πιέζοντας ξανά το Scroll-Lock θα επανέλθετε στην προτροπή. Μπορεί να μην καταφέρετε να δείτε όλα τα μηνύματα (λόγω περιορισμού της προσωρινής μνήμης buffer) αλλά μπορείτε να τα δείτε μετά την είσοδο σας, με τη χρήση της εντολής dmesg στη γραμμή εντολών. Κάντε login με τη χρήση του ονόματος χρήστη και κωδικού που δημιουργήσατε κατά την εγκατάσταση (στο παράδειγμα μας, rpratt). Αποφεύγετε να εισέρχεστε ως root αν δεν είναι απαραίτητο. Τυπικά μηνύματα εκκίνησης (έχουν παραλειφθεί οι πληροφορίες έκδοσης): Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter "i8254" frequency 1193182 Hz CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> AMD Features=0x80000800<SYSCALL,3DNow!> real memory = 268435456 (262144K bytes) config> di sn0 config> di lnc0 config> di le0 config> di ie0 config> di fe0 config> di cs0 config> di bt0 config> di aic0 config> di aha0 config> di adv0 config> q avail memory = 256311296 (250304K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. md0: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x1 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding /dev/ad0s1b as swap device Automatic boot in progress... /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) Doing initial network setup: hostname. ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Additional routing options: IP gateway=YES TCP keepalive=YES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blank_time screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 (k6-2.example.com) (ttyv0) login: rpratt Password: Η δημιουργία των κλειδιών RSA και DSA μπορεί να πάρει κάποιο χρόνο σε αργά μηχανήματα. Αυτό συμβαίνει μόνο στην πρώτη εκκίνηση ενός νέου συστήματος. Οι επόμενες εκκινήσεις θα είναι πιο γρήγορες. Αν έχετε ρυθμίσει τον X server και έχετε επιλέξει γραφικό περιβάλλον εργασίας, μπορείτε να το ξεκινήσετε δίνοντας την εντολή startx στην γραμμή εντολών. Εκκίνηση &os;/&arch.alpha; Alpha Με το τέλος της διαδικασίας εγκατάστασης, θα μπορέσετε να ξεκινήσετε το &os; γράφοντας κάτι παρόμοιο με αυτό που φαίνεται παρακάτω στην προτροπή SRM: >>>BOOT DKC0 Με αυτές τις οδηγίες, το firmware ξεκινάει από τον επιλεγμένο δίσκο. Για να κάνετε αυτόματη την εκκίνηση του &os; σε μελλοντικές εκκινήσεις, δώστε αυτές τις εντολές: >>> SET BOOT_OSFLAGS A >>> SET BOOT_FILE '' >>> SET BOOTDEF_DEV DKC0 >>> SET AUTO_ACTION BOOT Τα μηνύματα εκκίνησης θα είναι όμοια (αλλά όχι ολόιδια) με τα αντίστοιχα μηνύματα του &os; στον &i386;. Τερματισμός του &os; Είναι πολύ σημαντικό να τερματίζετε σωστά το λειτουργικό σύστημα. Μην σβήνετε απλώς τον υπολογιστή από το διακόπτη ρεύματος. Πρώτα από όλα, γίνετε υπερχρήστης (superuser) χρησιμοποιώντας την εντολή su στη γραμμή εντολών και δίνοντας τον κωδικό του root. Αυτό μπορεί να γίνει μόνο αν ο χρήστης ανήκει στην ομάδα wheel. Διαφορετικά, κάντε κανονικά login σαν root και χρησιμοποιήστε την εντολή shutdown -h now. The operating system has halted. Please press any key to reboot. Είναι ασφαλές να διακόψετε την τροφοδοσία αφού δώσετε την εντολή shutdown και δείτε το μήνυμα Please press any key to reboot. Αν πιέσετε οποιοδήποτε πλήκτρο αντί να διακόψετε την τροφοδοσία, το σύστημα θα επανεκκινήσει. Μπορείτε επίσης να χρησιμοποιήσετε το συνδυασμό πλήκτρων Ctrl Alt Del για να επανεκκινήσετε το σύστημα, ωστόσο αυτό δεν συνίσταται κατά τη διάρκεια της κανονικής λειτουργίας.
Αντιμετώπιση Προβλημάτων installation troubleshooting Το επόμενο τμήμα καλύπτει βασική αντιμετώπιση προβλημάτων κατά την εγκατάσταση, με βάση συνηθισμένα προβλήματα που έχουν αναφερθεί από χρήστες. Υπάρχουν επίσης μερικές ερωτήσεις και απαντήσεις για όσους ενδιαφέρονται να δημιουργήσουν σύστημα dual-boot του &os; με το &ms-dos;. Τι να Κάνετε αν Κάτι Πάει Στραβά Λόγω των διάφορων περιορισμών της αρχιτεκτονικής του PC, δεν είναι δυνατόν η ανίχνευση συσκευών να είναι 100% αξιόπιστη, ωστόσο υπάρχουν κάποια πράγματα που μπορείτε να κάνετε αν αποτύχει. Ελέγξτε το έγγραφο Σημειώσεων Υλικού (Hardware Notes) για την έκδοση του &os; που έχετε, για να σιγουρευτείτε ότι το υλικό σας υποστηρίζεται. Αν το υλικό σας υποστηρίζεται, αλλά πάλι αντιμετωπίζετε κολλήματα ή άλλα προβλήματα, θα χρειαστεί να δημιουργήσετε εξειδικευμένο πυρήνα. Θα μπορέσετε με τον τρόπο αυτό να προσθέσετε υποστήριξη για συσκευές που δεν υπάρχουν στο πυρήνα GENERIC. Ο πυρήνας στις δισκέτες εκκίνησης είναι ρυθμισμένος υποθέτοντας ότι οι περισσότερες συσκευές υλικού είναι στις εργοστασιακές τους ρυθμίσεις, όσο αφορά τα IRQs, τις διευθύνσεις IO και τα DMA κανάλια. Αν έχετε αλλάξει τις ρυθμίσεις αυτές στο σύστημα σας, θα χρειαστεί κατά πάσα πιθανότητα, να αλλάξετε το αρχείο ρυθμίσεων και να μεταγλωττίσετε ξανά τον πυρήνα για να οδηγήσετε το &os; να τις βρει. Είναι επίσης πιθανόν η ανίχνευση για μια συσκευή που δεν υπάρχει, να οδηγήσει σε αποτυχία μια μεταγενέστερη ανίχνευση για μια άλλη συσκευή. Στην περίπτωση αυτή, θα πρέπει να απενεργοποιηθεί η ανίχνευση για την συσκευή που δημιουργεί το πρόβλημα. Κάποια προβλήματα εγκατάστασης μπορεί να αποφευχθούν ή να εξαλειφθούν αν ανανεώσετε το firmware σε διάφορες συσκευές υλικού, και κατά κύριο λόγο της μητρικής. Το firmware της μητρικής αναφέρεται επίσης ως BIOS και οι περισσότεροι κατασκευαστές μητρικών ή υπολογιστών διαθέτουν δικτυακό τόπο στον οποίο μπορείτε να βρείτε πληροφορίες για αναβαθμίσεις ή ανανεώσεις. Οι περισσότεροι κατασκευαστές δεν συνιστούν την αναβάθμιση του BIOS της μητρικής αν δε συντρέχει σοβαρός λόγος, καθώς η αναβάθμιση μπορεί να είναι μια κρίσιμη διαδικασία. Η διαδικασία αναβάθμισης μπορεί να πάει στραβά, και να προκληθεί μόνιμη ζημιά στο κύκλωμα του BIOS. Χρησιμοποιώντας Συστήματα Αρχείων &ms-dos; και &windows; Τη δεδομένη στιγμή, το &os; δεν υποστηρίζει συστήματα αρχείων που είναι συμπιεσμένα με την εφαρμογή Double Space™. Για το λόγο αυτό θα πρέπει να τα αποσυμπιέσετε ώστε το &os; να έχει πρόσβαση στα δεδομένα. Αυτό μπορεί να γίνει εκτελώντας την εφαρμογή Compression Agent που βρίσκεται στο μενού Start (Έναρξη)> Programs (Προγράμματα) > System Tools (Εργαλεία Συστήματος). Το &os; μπορεί να υποστηρίξει συστήματα αρχείων τύπου &ms-dos; (ορισμένες φορές αναφέρονται και ως FAT). Η εντολή &man.mount.msdosfs.8; μπορεί να προσαρτήσει αυτά τα συστήματα αρχείων σε κάποιο ήδη υπάρχον κατάλογο, επιτρέποντας έτσι την πρόσβαση στα περιεχόμενα τους. Δεν συνηθίζεται να γίνεται άμεσα κλήση του προγράμματος &man.mount.msdosfs.8;. Συνήθως, καλείται από το σύστημα μέσω μιας γραμμής στο αρχείο /etc/fstab ή με κλήση του βοηθητικού προγράμματος &man.mount.8; με τις απαραίτητες παραμέτρους. Μια τυπική ρύθμιση στο αρχείο /etc/fstab είναι η παρακάτω: /dev/ad0sN /dos msdosfs rw 0 0 Για να δουλέψει το παραπάνω, ο κατάλογος /dos θα πρέπει να υπάρχει ήδη. Για λεπτομέρειες σχετικά με τη μορφή των καταχωρήσεων στο αρχείο /etc/fstab, δείτε τη σελίδα manual &man.fstab.5;. Παρακάτω φαίνεται μια τυπική κλήση στην &man.mount.8; για την προσάρτηση ενός συστήματος αρχείων &ms-dos;: &prompt.root; mount -t msdosfs /dev/ad0s1 /mnt Στο παράδειγμα αυτό, το σύστημα αρχείων του &ms-dos; είναι στην πρώτη κατάτμηση του σκληρού δίσκου. Η δική σας περίπτωση μπορεί να είναι διαφορετική, ελέγξτε το αποτέλεσμα των εντολών dmesg και mount. Οι πληροφορίες από αυτές τις εντολές πρέπει να είναι αρκετές για να πάρετε μια ιδέα της διάταξης των κατατμήσεων. Το &os; ίσως να αριθμήσει τα slices του δίσκου (που στο &ms-dos; καλούνται κατατμήσεις) διαφορετικά από άλλα λειτουργικά συστήματα. Ειδικότερα, τα εκτεταμένα (extended) διαμερίσματα &ms-dos; παίρνουν συνήθως μεγαλύτερη αρίθμηση από τα πρωτεύοντα διαμερίσματα του &ms-dos;. Μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα &man.fdisk.8; για να αναγνωρίσετε ποιες κατατμήσεις ανήκουν στο &os;, και ποιες σε άλλα λειτουργικά συστήματα. Μπορείτε επίσης να προσαρτήσετε NTFS κατατμήσεις με παρόμοιο τρόπο, με τη χρήση της εντολής &man.mount.ntfs.8;. Ερωτήσεις και Απαντήσεις Αντιμετώπισης Προβλημάτων Το σύστημα μου κρεμάει κατά την αναγνώριση υλικού στη διάρκεια της εκκίνησης ή συμπεριφέρεται περίεργα κατά τη διάρκεια της εγκατάστασης ή δεν ανιχνεύεται η μονάδα δισκέτας. Στο &os; γίνεται εκτεταμένη χρήση του ACPI (εφόσον ανιχνευθεί στην εκκίνηση) στις πλατφόρμες i386, amd64 και ia64 για διευκόλυνσης της ρύθμισης υλικού. Δυστυχώς υπάρχουν ακόμα κάποια προβλήματα τόσο στο πρόγραμμα οδήγησης του ACPI όσο και στα BIOS και τις μητρικές. Μπορείτε να απενεργοποιήσετε το ACPI, με την ρύθμιση hint.acpi.0.disabled στο τρίτο στάδιο του συστήματος εκκίνησης (boot loader): set hint.acpi.0.disabled="1" Η ρύθμιση αυτή χάνεται σε κάθε επανεκκίνηση, και έτσι είναι απαραίτητο να προσθέσετε hint.acpi.0.disabled="1" στο αρχείο /boot/loader.conf. Περισσότερες πληροφορίες για τον boot loader μπορείτε να βρείτε στο . Κατάφερα να ξεκινήσω από το σκληρό δίσκο για πρώτη φορά μετά την εγκατάσταση του &os;, ο πυρήνας φορτώνει και ανιχνεύει το υλικό μου, αλλά σταματάει με μηνύματα όπως: changing root device to ad1s1a panic: cannot mount root Τι είναι λάθος; Τι μπορώ να κάνω; Τι είναι το μήνυμα bios_drive:interface(unit,partition)kernel_name που εμφανίζεται στη βοήθεια της εκκίνησης; Υπάρχει από παλιά ένα πρόβλημα όταν ο σκληρός δίσκος από τον οποίο γίνεται η εκκίνηση δεν είναι ο πρώτος δίσκος του συστήματος. Το BIOS χρησιμοποιεί διαφορετικό σύστημα αρίθμησης από το &os; και η εύρεση του σωστού αριθμού για κάθε συσκευή είναι δύσκολη. Στην περίπτωση που ο δίσκος εκκίνησης δεν είναι ο πρώτος δίσκος του συστήματος, το &os; μπορεί να χρειαστεί κάποια βοήθεια για να τον βρει. Υπάρχουν δύο συνηθισμένες περιπτώσεις, αλλά και στις δύο πρέπει να πείτε στο &os; που θα βρει το ριζικό (root) σύστημα αρχείων. Αυτό γίνεται ορίζοντας τον αριθμό του δίσκου σύμφωνα με το BIOS, τον τύπο του δίσκου, και τον αριθμό του δίσκου στο &os; ανάλογα με τον τύπο του. Η πρώτη περίπτωση είναι αν έχετε δύο δίσκους IDE, καθένας ορισμένος ως master στο αντίστοιχο IDE κανάλι, και θέλετε να ξεκινήσετε το &os; από το δεύτερο δίσκο. Το BIOS τους βλέπει ως δίσκους 0 και 1, ενώ το &os; τους βλέπει ως ad0 και ad2. Το &os; βρίσκεται στο δίσκο 1 του BIOS, τύπου ad ενώ στο &os; φαίνεται ως δίσκος 2, άρα πρέπει να δώσετε: 1:ad(2,a)kernel Σημειώστε ότι αν έχετε δίσκο slave στο πρωτεύον κανάλι, το παραπάνω δεν είναι απαραίτητο (και είναι ουσιαστικά λάθος). Η δεύτερη περίπτωση περιλαμβάνει την εκκίνηση από δίσκο SCSI, όταν έχετε επίσης ένα ή περισσότερους IDE δίσκους στο σύστημα. Στην περίπτωση αυτή ο αριθμός του δίσκου στο &os; είναι χαμηλότερος από τον αντίστοιχο του BIOS. Αν έχετε δύο δίσκους IDE και το SCSI δίσκο, ο SCSI δίσκος φαίνεται στο BIOS ως δίσκος 2, τύπου da και αναγνωρίζεται στο &os; ως δίσκος 0, θα γράφατε: 2:da(0,a)kernel Για να πείτε στο &os; ότι θέλετε να εκκινήσετε από τον δίσκο 2 του BIOS που είναι ο πρώτος SCSI δίσκος του συστήματος. Αν είχατε ένα μόνο IDE δίσκο, θα χρησιμοποιούσατε το 1: αντί για 2:. Μόλις βρείτε τις σωστές τιμές, μπορείτε να βάλετε την εντολή, ακριβώς όπως θα τη γράφατε, στο αρχείο /boot.config χρησιμοποιώντας ένα συνηθισμένο επεξεργαστή κειμένου. Αν δεν ορίσετε διαφορετικά, το &os; θα χρησιμοποιεί τα περιεχόμενα του αρχείου αυτού ως προεπιλογή στην προτροπή boot:. Ξεκίνησα από το σκληρό δίσκο για πρώτη φορά μετά την εγκατάσταση του &os;, αλλά ο Διαχειριστής Εκκίνησης (Boot Manager) τυπώνει απλώς F? κάθε φορά στο μενού εκκίνησης και δεν συνεχίζει περισσότερο. Δεν ρυθμίσατε σωστά τη γεωμετρία του σκληρού δίσκου στον επεξεργαστή κατατμήσεων όταν εγκαταστήσατε το &os;. Πηγαίνετε ξανά στον επεξεργαστή κατατμήσεων και ορίστε τη σωστή γεωμετρία του σκληρού σας δίσκου. Πρέπει να επανεγκαταστήσετε το &os; από την αρχή, με τη σωστή γεωμετρία. Αν δεν μπορείτε να βρείτε με κανένα τρόπο τη σωστή γεωμετρία για το μηχάνημα σας, δοκιμάστε τον ακόλουθο τρόπο: Δημιουργήστε μια μικρή κατάτμηση DOS στην αρχή του δίσκου, και εγκαταστήστε το &os; μετά από αυτό. Το πρόγραμμα εγκατάστασης θα δει την κατάτμηση του DOS και θα προσπαθήσει να ανιχνεύσει από αυτήν την σωστή γεωμετρία, κάτι το οποίο συνήθως πετυχαίνει. Δεν σας συνιστούμε να ακολουθήσετε το παρακάτω, αλλά το αφήσαμε εδώ απλώς ως αναφορά:
Αν φτιάχνετε ένα μηχάνημα desktop ή εξυπηρετητή για αποκλειστική χρήση από το &os; και δεν σας ενδιαφέρει πιθανή (μελλοντική) συμβατότητα με DOS, Linux ή άλλο λειτουργικό σύστημα, έχετε επίσης την επιλογή να χρησιμοποιήσετε ολόκληρο το δίσκο (πιέζοντας το A στον επεξεργαστή κατατμήσεων), και επιλέγοντας τη μη-στάνταρ επιλογή όπου το &os; καταλαμβάνει ολόκληρο το δίσκο από τον πρώτο ως τον τελευταίο τομέα. Με τον τρόπο αυτό εξαλείφονται όλα τα προβλήματα που αναφέρονται στη γεωμετρία, αλλά υπάρχουν κάποιοι περιορισμοί, εκτός αν δεν πρόκειται ποτέ να χρησιμοποιήσετε οποιοδήποτε άλλο λειτουργικό εκτός από &os; στο συγκεκριμένο δίσκο.
Το σύστημα ανιχνεύει την κάρτα δικτύου μου &man.ed.4;, αλλά παίρνω συνέχεια μηνύματα λάθους (device timeout). Η κάρτα σας είναι πιθανώς σε διαφορετικό IRQ από αυτό που έχει ορισθεί στο αρχείο /boot/device.hints Το πρόγραμμα οδήγησης &man.ed.4;, από προεπιλογή, δεν χρησιμοποιεί τις ρυθμίσεις που ενδεχομένως έχετε κάνει στην κάρτα μέσω του προγράμματος ρύθμισης που παρέχει ο κατασκευαστής (soft configuration, τις τιμές που δώσατε μέσω EZSETUP στο DOS). Ωστόσο θα τις χρησιμοποιήσει αν ορίσετε την τιμή -1 στα hints της συσκευής. Είτε μετακινήστε το βραχυκυκλωτήρα (jumper) πάνω στην κάρτα ώστε να δώσετε χειροκίνητες (hard) ρυθμίσεις (αλλάζοντας και τις ρυθμίσεις του πυρήνα αν αυτό είναι απαραίτητο), ή αλλάξτε το IRQ στην τιμή -1 ρυθμίζοντας το hint hint.ed.0.irq="-1". Με τον τρόπο αυτό, ο πυρήνας θα χρησιμοποιήσει τις ρυθμίσεις που κάνατε μέσω του προγράμματος EZSETUP. Μια άλλη πιθανότητα είναι η κάρτα σας να χρησιμοποιεί το IRQ 9 το οποίο είναι κοινό με το IRQ 2 και αποτελεί συχνά πηγή προβλημάτων (ειδικά αν έχετε κάρτα γραφικών που χρησιμοποιεί το IRQ 2!). Προσπαθήστε, αν είναι δυνατόν, να αποφύγετε εντελώς τη χρήση των IRQ 2 ή 9.
Valentino Vaschetto Συνεισφορά από τον Οδηγός Εγκατάστασης για Προχωρημένους Το τμήμα αυτό περιγράφει πως να εγκαταστήσετε το &os; σε ιδιαίτερα μηχανήματα ή / και με μη συνηθισμένους τρόπους. Εγκαθιστώντας το &os; σε ένα Σύστημα χωρίς Οθόνη ή Πληκτρολόγιο installation headless (serial console) serial console Το είδος αυτό της εγκατάστασης ονομάζεται headless install (ακέφαλη εγκατάσταση), επειδή το μηχάνημα στο οποίο εγκαθίσταται το &os; είτε δεν έχει συνδεμένη οθόνη, είτε δεν έχει καν έξοδο VGA. Αν αναρωτιέστε πως είναι πιθανό κάτι τέτοιο, γίνεται με την χρήση σειριακής κονσόλας. Η σειριακή κονσόλα βασικά χρησιμοποιεί ένα άλλο μηχάνημα το οποίο δρα ως κύρια οθόνη και πληκτρολόγιο για το σύστημα. Για το σκοπό αυτό, απλώς ακολουθήστε τα βήματα για την δημιουργία δισκετών εγκατάστασης, όπως εξηγείται στο . Έπειτα, για να μετατρέψετε τις δισκέτες αυτές ώστε να ξεκινάνε σε σειριακή κονσόλα, ακολουθήστε τα επόμενα βήματα: Δημιουργία Δισκετών Εκκίνησης για Σειριακή Κονσόλα mount Αν επρόκειτο να εκκινήσετε από τις δισκέτες που μόλις φτιάξατε, το &os; θα ξεκίναγε στην κανονική κατάσταση εγκατάστασης. Θέλουμε το &os; να ξεκινήσει σε σειριακή κονσόλα για την εγκατάσταση μας. Για να το κάνετε αυτό, θα πρέπει να προσαρτήσετε (mount) το boot.flp στο &os; σύστημα σας, χρησιμοποιώντας την εντολή &man.mount.8;. &prompt.root; mount /dev/fd0 /mnt Τώρα που έχετε προσαρτήσει τη δισκέτα, πρέπει να πάτε στον κατάλογο /mnt: &prompt.root; cd /mnt Εδώ πρέπει πλέον να ρυθμίσετε την δισκέτα ώστε να ξεκινάει η σειριακή κονσόλα. Πρέπει να δημιουργήσετε ένα αρχείο που ονομάζεται boot.config και περιέχει το /boot/loader -h. Το μόνο που κάνει αυτό, είναι να περνάει μια παράμετρο (flag) στο boot loader ώστε η εκκίνηση να γίνεται σε σειριακή κονσόλα. &prompt.root; echo "/boot/loader -h" > boot.config Τώρα που έχετε ρυθμίσει σωστά τη δισκέτα, πρέπει να την αποπροσαρτήσετε, χρησιμοποιώντας την εντολή &man.umount.8;: &prompt.root; cd / &prompt.root; umount /mnt Μπορείτε τώρα να αφαιρέσετε τη δισκέτα από τον οδηγό. Συνδέοντας Καλώδιο Τύπου Null-modem null-modem cable Χρειάζεται τώρα να συνδέσετε ένα καλώδιο τύπου null-modem μεταξύ των δύο μηχανημάτων. Απλώς συνδέστε το καλώδιο στις σειριακές πόρτες των δύο μηχανημάτων. Δεν πρόκειται να δουλέψει κανονικό σειριακό καλώδιο, χρειάζεται καλώδιο τύπου null modem, όπου κάποια από τα ζεύγη καλωδίων διασταυρώνονται εσωτερικά. Εκκίνηση για την Εγκατάσταση Έχει έρθει η ώρα να προχωρήσουμε στην εγκατάσταση. Βάλτε τη δισκέτα boot.flp στον οδηγό του μηχανήματος που θέλετε να εγκαταστήσετε χωρίς οθόνη/πληκτρολόγιο, και ενεργοποιήστε το. Συνδεθείτε με το Headless Μηχάνημα cu Θα πρέπει τώρα να συνδεθείτε με το μηχάνημα σας, χρησιμοποιώντας την &man.cu.1;: &prompt.root; cu -l /dev/cuad0 Αυτό είναι! Μπορείτε τώρα να ελέγξετε το headless μηχάνημα μέσω της σύνδεσης cu. Θα σας ζητήσει να βάλετε την δισκέτα kern1.flp, και θα σας ζητήσει κατόπιν να επιλέξετε το είδος του τερματικού που θα χρησιμοποιηθεί. Επιλέξτε την έγχρωμη κονσόλα (&os; color console) και συνεχίστε με την εγκατάσταση σας. Προετοιμάζοντας τα Δικά σας Μέσα Εγκατάστασης Για να αποφύγουμε την επανάληψη, λέγοντας &os; CD-ROM στο τμήμα αυτό, εννοούμε ένα CD-ROM ή DVD του &os; που έχετε αγοράσει ή δημιουργήσει μόνος σας. Υπάρχουν κάποιες περιπτώσεις στις οποίες χρειάζεται να δημιουργήσετε τα δικά σας μέσα ή πηγές εγκατάστασης του &os;. Μπορεί να είναι φυσικά μέσα, όπως για παράδειγμα μια ταινία, ή πηγές που μπορεί να χρησιμοποιήσει το sysinstall για να ανακτήσει τα αρχεία, όπως π.χ. μια τοπική τοποθεσία FTP, ή μια κατάτμηση &ms-dos; Για παράδειγμα: Έχετε πολλά μηχανήματα συνδεμένα στο τοπικό σας δίκτυο, και ένα μόνο CD-ROM του &os;. Θέλετε να δημιουργήσετε μια τοπική τοποθεσία FTP χρησιμοποιώντας τα περιεχόμενα του &os; CD-ROM, και έπειτα να ρυθμίσετε τα μηχανήματα σας να χρησιμοποιούν αυτό το FTP site αντί για να συνδέονται στο Internet. Έχετε ένα CD-ROM του &os; αλλά το &os; δεν αναγνωρίζει το οδηγό σας CD/DVD, ενώ το &ms-dos;/&windows; το αναγνωρίζει. Θέλετε να αντιγράψετε τα αρχεία του &os; σε μια κατάτμηση DOS στο ίδιο μηχάνημα και να εγκαταστήσετε το &os; χρησιμοποιώντας αυτά τα αρχεία. Ο υπολογιστής που θέλετε να εγκαταστήσετε δεν έχει οδηγό CD/DVD ή κάρτα δικτύου, αλλά μπορείτε να συνδέσετε ένα σειριακό ή παράλληλο καλώδιο τύπου Laplink προς ένα υπολογιστή που διαθέτει. Θέλετε να δημιουργήσετε μια ταινία, που μπορεί να χρησιμοποιηθεί για την εγκατάσταση του &os;. Δημιουργώντας ένα CD-ROM Εγκατάστασης Ως τμήμα κάθε έκδοσης, το &os; project δημιουργεί δύο εικόνες CD-ROM (ISO image). Οι εικόνες αυτές μπορούν να γραφούν σε CD αν έχετε εγγραφέα CD-ROM, και ακολούθως να χρησιμοποιηθούν για την εγκατάσταση του &os;. Αν έχετε εγγραφέα CD-ROM και γρήγορη σύνδεση στο Internet, αυτός είναι ο ευκολότερος τρόπος να εγκαταστήσετε το &os;. Κατεβάστε τα Σωστά ISO Images Μπορείτε να κατεβάσετε τα ISO images για κάθε έκδοση από την τοποθεσία ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-arch/version ή το πλησιέστερο σε σας mirror. Υποκαταστήστε το arch και version όπως απαιτείται. Ο κατάλογος θα περιέχει φυσιολογικά τα ακόλουθα images: Ονοματολογία και Επεξηγήσεις των ISO Images για FreeBSD 6.<replaceable>X</replaceable> και 7.<replaceable>X</replaceable> Όνομα Αρχείου Περιέχει version-RELEASE-arch-bootonly.iso Τα αρχεία που απαιτούνται για να εκκινήσετε με πυρήνα &os; και να ξεκινήσετε το πρόγραμμα εγκατάστασης. Τα υπόλοιπα αρχεία της εγκατάστασης θα πρέπει να τα πάρετε μέσω FTP ή κάποιας άλλης υποστηριζόμενης πηγής. version-RELEASE-arch-disc1.iso Τα αρχεία που απαιτούνται για την εγκατάσταση του &os; και ένα σύστημα αρχείων για λειτουργία από CD-ROM (live filesystem), το οποίο χρησιμοποιείται σε συνδυασμό με την δυνατότητα Repair στην εφαρμογή sysinstall. version-RELEASE-arch-disc2.iso Όσα πακέτα εφαρμογών τρίτου κατασκευαστή χωράνε στο CD-ROM. version -RELEASE-arch-docs.iso Τεκμηρίωση του &os;.
Θα πρέπει να κατεβάσετε είτε ένα από τα bootonly ISO (αν είναι διαθέσιμα) είτε το image του πρώτου CD-ROM (disc one). Μην κατεβάσετε και τα δύο, μια και το image του πρώτου CD-ROM, περιέχει όλα τα περιεχόμενα του bootonly ISO. Χρησιμοποιήστε το bootonly ISO αν έχετε φθηνή και γρήγορη πρόσβαση στο Internet. Μπορείτε έτσι να εγκαταστήσετε το &os; και να κατεβάσετε εφαρμογές τρίτου κατασκευαστή με τη χρήση του συστήματος ports/packages (δείτε ) όπως απαιτούνται. Χρησιμοποιήστε το image του πρώτου CD-ROM αν θέλετε να εγκαταστήσετε μια έκδοση του &os; και θέλετε ταυτόχρονα να έχετε στο ίδιο CD-ROM και μια σεβαστή συλλογή από πακέτα τρίτου κατασκευαστή. Τα πρόσθετα CD-ROM είναι χρήσιμα αλλά όχι απαραίτητα, ειδικά αν έχετε πρόσβαση υψηλής ταχύτητας στο Internet.
Γράψτε τα CD Πρέπει κατόπιν να γράψετε τις εικόνες (images) των CD σε άδεια CD. Αν το κάνετε αυτό σε άλλο &os; σύστημα, δείτε το για περισσότερες πληροφορίες (ειδικότερα, και ). Αν πρόκειται να χρησιμοποιήσετε άλλο λειτουργικό για την εργασία αυτή, θα χρειαστεί να χρησιμοποιήσετε τις δυνατότητες που παρέχονται από τα αντίστοιχα προγράμματα εγγραφής CD του λειτουργικού αυτού. Τα images που παρέχονται είναι σε στάνταρ ISO μορφή και υποστηρίζονται απευθείας από πολλές εφαρμογές εγγραφής CD.
Αν ενδιαφέρεστε να δημιουργήσετε μια εξειδικευμένη έκδοση του &os;, δείτε το Release Engineering Article.
Δημιουργήστε μια Τοπική FTP Τοποθεσία με το CD-ROM του &os; installation network FTP Τα CD-ROM του &os; έχουν την ίδια δομή με την τοποθεσία FTP. Για το λόγο αυτό είναι πολύ εύκολο να δημιουργήσετε μια τοπική τοποθεσία FTP που να μπορεί να χρησιμοποιηθεί από άλλα μηχανήματα του δικτύου σας κατά την εγκατάσταση του &os;. Στο &os; μηχάνημα που θα φιλοξενήσει την FTP τοποθεσία, βεβαιωθείτε ότι το CD-ROM είναι μέσα στον οδηγό και έχει γίνει προσάρτηση του στον κατάλογο /cdrom. &prompt.root; mount /cdrom Δημιουργήστε ένα λογαριασμό για ανώνυμο FTP στο /etc/passwd. Για το σκοπό αυτό, επεξεργαστείτε το αρχείο /etc/passwd χρησιμοποιώντας το &man.vipw.8; και προσθέτοντας την ακόλουθη γραμμή: ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent Βεβαιωθείτε ότι είναι ενεργοποιημένη η υπηρεσία FTP στο /etc/inetd.conf. Οποιοσδήποτε έχει τώρα δικτυακή σύνδεση με το μηχάνημα σας, μπορεί τώρα να επιλέξει ως μέσο εγκατάστασης το FTP και να γράψει ftp://your machine αφού επιλέξει Other στο μενού FTP sites κατά την διάρκεια της εγκατάστασης. Αν το μέσο εκκίνησης (συνήθως δισκέτες) για τους πελάτες FTP δεν είναι ακριβώς η ίδια έκδοση με αυτή που παρέχεται από το τοπικό FTP, η εφαρμογή sysinstall δεν θα σας επιτρέψει να ολοκληρώσετε την εγκατάσταση. Αν οι εκδόσεις δεν είναι όμοιες και επιθυμείτε να προσπεράσετε αυτό τον περιορισμό, θα πρέπει να πάτε στο μενού Options και να αλλάξετε το όνομα της διανομής (distribution name) σε any. Η παραπάνω τακτική είναι κατάλληλη για ένα μηχάνημα που είναι στο τοπικό σας δίκτυο και προστατεύεται από firewall. Αν προσφέρετε υπηρεσίες FTP σε άλλα μηχανήματα στο Internet (και όχι στο τοπικό σας δίκτυο) θα εκθέσετε το μηχάνημα σας σε crackers και άλλους ανεπιθύμητους. Αν το κάνετε αυτό, σας συνιστούμε οπωσδήποτε να ακολουθήσετε σωστές τακτικές ασφαλείας. Δημιουργώντας Δισκέτες Εγκατάστασης installation floppies Αν θα πρέπει να εγκαταστήσετε από δισκέτες (το οποίο σας συνιστούμε να μην κάνετε), είτε λόγω μη υποστηριζόμενου υλικού, είτε απλώς επειδή επιμένετε να κάνετε τα πράγματα με το δύσκολο τρόπο, θα πρέπει πρώτα να προετοιμάσετε κάποιες δισκέτες για την εγκατάσταση. Κατά ελάχιστο, θα χρειαστείτε τόσες δισκέτες 1.44 MB όσες χρειάζονται για να κρατήσουν όλα τα αρχεία του καταλόγου base (base distribution). Αν προετοιμάζετε τις δισκέτες από το DOS, θα πρέπει να τις διαμορφώσετε με την εντολή του &ms-dos; FORMAT. Αν χρησιμοποιείτε &windows;, χρησιμοποιήστε τον Explorer για να διαμορφώσετε τις δισκέτες (δεξί κλικ στον οδηγό A: και επιλέξτε Format (Διαμόρφωση)). Να μην εμπιστεύεστε τις προδιαμορφωμένες από το εργοστάσιο δισκέτες. Να τις διαμορφώσετε ξανά εσείς για να είστε σίγουρος. Πολλά προβλήματα που έχουν αναφερθεί από χρήστες στο παρελθόν έχουν προκύψει από τη χρήση ακατάλληλα διαμορφωμένων μέσων, και για το λόγο αυτό το τονίζουμε ιδιαίτερα τώρα. Αν δημιουργείτε τις δισκέτες σε άλλο μηχάνημα &os; η διαμόρφωση δεν είναι άσχημη ιδέα, αν και δε χρειάζεται να δημιουργήσετε σύστημα αρχείων DOS σε κάθε μια. Μπορείτε αντί για αυτό, να χρησιμοποιήσετε τις εντολές bsdlabel και newfs για να δημιουργήσετε σύστημα αρχείων UFS σε αυτές, όπως φαίνεται από την παρακάτω ακολουθία εντολών: &prompt.root; fdformat -f 1440 fd0.1440 &prompt.root; bsdlabel -w fd0.1440 floppy3 &prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 Μπορείτε έπειτα να τις προσαρτήσετε και να τις γράψετε σαν οποιοδήποτε άλλο σύστημα αρχείων. Αφού διαμορφώσετε τις δισκέτες, θα πρέπει να γράψετε τα αρχεία σε αυτές. Τα αρχεία της εγκατάστασης είναι κομμένα σε τμήματα με κατάλληλο μέγεθος ώστε πέντε από αυτά να χωράνε σε μια συνηθισμένη δισκέτα 1.44 MB. Διατρέξτε όλες τις δισκέτες σας, γράφοντας σε κάθε μια όσα αρχεία χωράνε, μέχρι να γράψετε όλα τα distribution sets που επιθυμείτε με τον τρόπο αυτό. Κάθε distribution set θα πρέπει να αποθηκευτεί σε ένα υποκατάλογο της δισκέτας, π.χ.: a:\base\base.aa, a:\base\base.ab, κ.ο.κ. Το αρχείο base.inf πρέπει επίσης να βρίσκεται στην πρώτη δισκέτα του σετ base καθώς το πρόγραμμα εγκατάστασης το χρειάζεται για να γνωρίζει πόσα επιπλέον τμήματα αρχείων πρέπει να διαβάσει και να συνενώσει για το σχηματισμό της διανομής. Όταν φτάσετε στην οθόνη Media κατά τη διαδικασία εγκατάστασης, επιλέξτε Floppy και θα ερωτηθείτε για τα υπόλοιπα. Εγκατάσταση από Κατάτμηση &ms-dos; installation from MS-DOS Για να προετοιμαστείτε για μια εγκατάσταση από κατάτμηση &ms-dos;, αντιγράψτε τα αρχεία της διανομής σε ένα κατάλογο που θα ονομάσετε freebsd στο ριζικό κατάλογο της κατάτμησης. Για παράδειγμα, c:\freebsd. Η δομή των καταλόγων του CDROM ή της τοποθεσίας FTP θα πρέπει να αναπαραχθεί μερικώς μέσα σε αυτό τον κατάλογο, για το λόγο αυτό σας συνιστούμε να χρησιμοποιήσετε την εντολή xcopy αν κάνετε την αντιγραφή από CD. Για παράδειγμα, για να προετοιμάσετε μια ελάχιστη εγκατάσταση του &os;: C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s υποθέτοντας ότι ο διαθέσιμος ελεύθερος χώρος σας βρίσκεται στο C: και η μονάδα σας CDROM είναι στο E:. Αν δεν έχετε οδηγό CDROM, μπορείτε να κατεβάσετε την διανομή από την τοποθεσία ftp.FreeBSD.org. Κάθε distribution set είναι στο δικό του κατάλογο. Για παράδειγμα το σετ base μπορεί να βρεθεί στον κατάλογο &rel.current;/base/. Για όσα distribution set θέλετε να εγκαταστήσετε από μια κατάτμηση &ms-dos; (και για τα οποία έχετε διαθέσιμο ελεύθερο χώρο), εγκαταστήστε τα κάτω από το c:\freebsd — To σετ BIN είναι το μόνο που απαιτείται για μια ελάχιστη εγκατάσταση. Δημιουργώντας Ταινία Εγκατάστασης installation from QIC/SCSI Tape Η εγκατάσταση από ταινία, είναι ίσως η ευκολότερη μέθοδος εκτός από την εγκατάσταση μέσω FTP ή CDROM. Το πρόγραμμα εγκατάστασης απλώς αναμένει τα αρχεία να έχουν γραφτεί στην ταινία με μορφή tar. Αφού επιλέξετε τα σετ εγκατάστασης που σας ενδιαφέρουν, απλώς κάντε τα tar στην ταινία: &prompt.root; cd /freebsd/distdir &prompt.root; tar cvf /dev/rwt0 dist1 ... dist2 Όταν κάνετε την εγκατάσταση, θα πρέπει να βεβαιωθείτε ότι έχετε αφήσει αρκετό ελεύθερο χώρο σε κάποιο προσωρινό κατάλογο (τον οποίο θα μπορέσετε να επιλέξετε) για να χωρέσει τα πλήρη περιεχόμενα της ταινίας που έχετε δημιουργήσει. Εξαιτίας της φύσης της ταινίας, που δεν επιτρέπει τυχαία πρόσβαση, αυτή η μέθοδος εγκατάστασης χρειάζεται αρκετό προσωρινό χώρο αποθήκευσης. Καθώς ξεκινάτε την εγκατάσταση, η ταινία πρέπει να είναι στον οδηγό πριν ξεκινήσετε από τη δισκέτα εκκίνησης. Διαφορετικά, μπορεί να αποτύχει η ανίχνευση της από τη διαδικασία εγκατάστασης. Πριν Εγκαταστήσετε μέσω Δικτύου installation network serial (SLIP or PPP) installation network parallel (PLIP) installation network Ethernet Υπάρχουν τρεις διαθέσιμοι τύποι δικτυακής εγκατάστασης. Ethernet (τυποποιημένος ελεγκτής Ethernet), Σειριακής Θύρας (SLIP ή PPP), Παράλληλης Θύρας (PLIP (καλώδιο laplink)). Για την γρηγορότερη δυνατή εγκατάσταση μέσω δικτύου, ένας ελεγκτής Ethernet είναι πάντα καλή επιλογή! Το &os; υποστηρίζει τις περισσότερες κοινές κάρτες Ethernet. Μπορείτε να βρείτε ένα πίνακα των υποστηριζόμενων καρτών (και τις απαιτούμενες ρυθμίσεις τους) στις Σημειώσεις Υλικού (Hardware Notes) κάθε έκδοσης &os;. Αν χρησιμοποιείτε κάποια από τις υποστηριζόμενες κάρτες Ethernet PCMCIA βεβαιωθείτε ότι την έχετε βάλει στην υποδοχή πριν ενεργοποιήσετε το φορητό υπολογιστή σας! Το &os; δεν υποστηρίζει δυστυχώς αυτή τη στιγμή την επιτόπου εισαγωγή καρτών PCMCIA κατά τη διάρκεια της εγκατάστασης. θα πρέπει επίσης να ξέρετε για το δίκτυο σας, τη διεύθυνση IP σας, την τιμή της μάσκας υποδικτύου (netmask) για τη κλάση του δικτύου σας, και το όνομα του μηχανήματος σας. Αν κάνετε εγκατάσταση μέσω σύνδεσης PPP και δεν έχετε στατική διεύθυνση, μην ανησυχείτε καθώς ο ISP σας μπορεί να σας δώσει διεύθυνση δυναμικά. Ο διαχειριστής του συστήματος σας, μπορεί να σας δώσει τις τιμές που πρέπει να χρησιμοποιήσετε για το δίκτυο σας. Αν πρόκειται να αναφερθείτε σε άλλα μηχανήματα με χρήση του ονόματος τους αντί για την διεύθυνση IP τους, θα χρειαστείτε επίσης ένα διακομιστή ονομάτων (DNS) και πιθανόν τη διεύθυνση μιας πύλης (gateway) (αν χρησιμοποιείτε PPP, πρόκειται για τη διεύθυνση IP του παροχέα σας) για να επικοινωνήσετε με αυτόν. Αν θέλετε να κάνετε FTP εγκατάσταση διαμέσου μεσολαβητή HTTP, θα πρέπει να ξέρετε επίσης τη διεύθυνση του μεσολαβητή (proxy). Αν δεν ξέρετε τις απαντήσεις σε όλες ή τις περισσότερες από αυτές τις απαντήσεις, θα πρέπει πράγματι να μιλήσετε στο διαχειριστή του συστήματος σας ή τον ISP σας πριν επιχειρήσετε αυτό τον τύπο εγκατάστασης. Η υποστήριξη SLIP είναι κάπως πρωτόγονη, και πρακτικά περιορίζεται σε φυσικές συνδέσεις, όπως για παράδειγμα ένα σειριακό καλώδιο ανάμεσα σε ένα φορητό και ένα άλλο υπολογιστή. Η σύνδεση πρέπει να είναι φυσική και άμεση, καθώς η εγκατάσταση μέσω SLIP δεν παρέχει αυτή τη στιγμή δυνατότητας επιλογικής (dial up) σύνδεσης. Η δυνατότητα αυτή παρέχεται από το πρόγραμμα PPP, το οποίο και θα πρέπει να προτιμηθεί σε σχέση με το SLIP όπου αυτό είναι δυνατόν. Αν χρησιμοποιείτε modem, τότε το PPP είναι σχεδόν σίγουρα η μόνη σας επιλογή. Βεβαιωθείτε ότι έχετε άμεσα διαθέσιμες τις πληροφορίες για τον παροχέα σας, καθώς θα τις χρειαστείτε σχετικά νωρίς στη διαδικασία εγκατάστασης. Αν χρησιμοποιείτε PAP ή CHAP για να συνδεθείτε με τον ISP σας (με άλλα λόγια, μπορείτε στα &windows; να συνδεθείτε με τον ISP σας χωρίς να χρησιμοποιήσετε script), τότε το μόνο που θα χρειαστείτε είναι να γράψετε την εντολή dial στην προτροπή της εφαρμογής ppp. Διαφορετικά, θα πρέπει να ξέρετε πως να καλέσετε τον ISP σας, χρησιμοποιώντας εντολές AT commands οι οποίες είναι συγκεκριμένες για το modem σας, καθώς το πρόγραμμα κλήσεων του PPP (dialer) παρέχει ένα πολύ απλό εξομοιωτή τερματικού. Ανατρέξτε στο user-ppp handbook και FAQ για περισσότερες πληροφορίες. Αν έχετε προβλήματα, μπορείτε να κατευθύνετε την καταγραφή (logging) στην οθόνη με την εντολή set log local .... Αν υπάρχει διαθέσιμη φυσική σύνδεση με άλλο μηχάνημα &os; (έκδοση 2.0-R ή μεταγενέστερη), μπορείτε επίσης να εγκαταστήσετε μέσω παράλληλου καλωδίου laplink. Η ταχύτητα μετάδοσης δεδομένων μέσω της παράλληλης θύρας είναι αρκετά υψηλότερη συνήθως από ότι της σειριακής (μέχρι 50 kbytes/sec), με αποτέλεσμα γρηγορότερη εγκατάσταση. Πριν Εγκαταστήσετε μέσω NFS installation network NFS Η εγκατάσταση μέσω NFS είναι αρκετά απλή. Απλώς αντιγράψτε τα αρχεία της διανομής του &os; σε ένα εξυπηρετητή NFS και δείξτε προς αυτόν κατά την επιλογή μέσου NFS. Αν ο εξυπηρετητής αυτός υποστηρίζει μόνο προνομιακή θύρα (privileged port) (αυτή είναι η τυπική ρύθμιση σε σταθμούς εργασίας της SUN), θα χρειαστεί να θέσετε την επιλογή NFS Secure στο μενού Options πριν μπορέσετε να προχωρήσετε με την εγκατάσταση. Αν η κάρτα σας Ethernet είναι χαμηλής ποιότητας και υποφέρει από πολύ αργούς ρυθμούς μεταφοράς, ίσως θελήσετε να ενεργοποιήσετε και την επιλογή NFS Slow. Για να λειτουργήσει η εγκατάσταση NFS, ο εξυπηρετητής θα πρέπει να υποστηρίζει προσαρτήσεις υποκαταλόγων (subdir mounts), για παράδειγμα, αν ο κατάλογος της διανομής σας &os; &rel.current; βρίσκεται στο: ziggy:/usr/archive/stuff/FreeBSD, τότε ο ziggy θα πρέπει να επιτρέπει την απευθείας προσάρτηση του /usr/archive/stuff/FreeBSD, και όχι μόνο του /usr ή του /usr/archive/stuff. Στο αρχείο /etc/exports του &os;, αυτό ελέγχεται από τις επιλογές . Άλλοι εξυπηρετητές NFS μπορεί να ακολουθούν διαφορετικές συμβάσεις. Αν λαμβάνετε μηνύματα του τύπου permission denied από τον εξυπηρετητή, είναι πιθανόν να μην έχετε ρυθμίσει σωστά το παραπάνω.
diff --git a/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml b/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml index d436071fc2..ea13046456 100644 --- a/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml @@ -1,1029 +1,1030 @@ Matteo Riondato Συνεισφορά από τον Jails jails Σύνοψη Το κεφάλαιο αυτό εξηγεί τι είναι τα jails (φυλακές) του &os; και πως χρησιμοποιούνται. Τα jails, που αναφέρονται ορισμένες φορές σαν μια ενισχυμένη εναλλακτική λύση για περιβάλλοντα chroot, είναι ένα ισχυρό εργαλείο για διαχειριστές συστημάτων, αλλά η βασική τους χρήση μπορεί επίσης να είναι χρήσιμη σε προχωρημένους χρήστες. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Τι είναι ένα jail και τι σκοπό μπορεί να εξυπηρετήσει σε εγκαταστάσεις &os;. Πως να φτιάξετε, να εκκινήσετε, και να σταματήσετε ένα jail. Τα βασικά της διαχείρισης ενός jail, τόσο μέσα, όσο και έξω από αυτό. Άλλες πηγές χρήσιμων πληροφοριών σχετικά με τα jails είναι: Η σελίδα manual του &man.jail.8;. Περιέχει πλήρη αναφορά του βοηθητικού προγράμματος jail — του διαχειριστικού εργαλείου που μπορεί να χρησιμοποιηθεί στο &os; για την εκκίνηση, διακοπή, και έλεγχο των jails. Οι λίστες ταχυδρομείου και τα αρχεία τους. Τα αρχεία από την &a.questions; και άλλες λίστες που εξυπηρετούνται από τον &a.mailman.lists; περιέχουν πλήρη οδηγό για τα jails. Είναι πάντοτε ενδιαφέρον να ψάχνετε τα αρχεία ή να δημοσιεύετε νέες ερωτήσεις στη λίστα &a.questions.name;. Όροι των Jails Για να κατανοήσετε καλύτερα το πως οι εσωτερικές λειτουργίες του &os; σχετίζονται με τα jails και πως αυτές αλληλεπιδρούν με τα υπόλοιπα μέρη του &os;, θα χρησιμοποιήσουμε εκτενώς τους παρακάτω όρους: &man.chroot.2; (εντολή) Μια κλήση συστήματος (system call) του &os;, η οποία αλλάζει τον γονικό κατάλογο (root directory) μιας διεργασίας και όλων των άλλων διεργασιών που εξαρτώνται από αυτή. &man.chroot.2; (περιβάλλον) Το περιβάλλον μια διεργασίας που τρέχει μέσα σε ένα chroot. Αυτό περιλαμβάνει πόρους όπως το τμήμα του συστήματος αρχείων που είναι ορατό, τα ID του χρήστη και της ομάδας που είναι διαθέσιμα, καθώς και τις διεπαφές δικτύου (network interfaces), τους μηχανισμούς IPC κλπ. &man.jail.8; (εντολή) Το πρόγραμμα που σας επιτρέπει να διαχειρίζεστε το σύστημα σας και να ξεκινάτε διεργασίες σε περιβάλλον jail. host (σύστημα (system), διεργασία (process), χρήστης (user), κλπ.) Το φυσικό σύστημα που φιλοξενεί και ελέγχει ένα περιβάλλον jail. Το host system έχει πρόσβαση σε όλο το διαθέσιμο υλικό, και μπορεί να ελέγξει διεργασίες τόσο μέσα όσο και έξω από το περιβάλλον του jail. Μία από τις σημαντικότερες διαφορές μεταξύ του host system και του jail είναι ότι οι περιορισμοί που εφαρμόζονται στις διεργασίες του χρήστη root μέσα στο περιβάλλον jail, δεν ισχύουν για τις διεργασίες στο host system. hosted (σύστημα (system), διεργασία (process), χρήστης (user), κλπ.) Μια διεργασία, ένας χρήστης ή κάποια άλλη οντότητα, του οποίου η πρόσβαση στους πόρους του συστήματος περιορίζεται μέσα από ένα jail. Εισαγωγή Μια και η διαχείριση ενός συστήματος μπορεί να είναι δύσκολη και περίπλοκη, αναπτύχθηκαν αρκετά εργαλεία τα οποία μπορούν να κάνουν τη ζωή ενός διαχειριστή πολύ πιο εύκολη. Τα εργαλεία αυτά προσφέρουν κάποιες πρόσθετες δυνατότητες όσο αφορά τον τρόπο εγκατάστασης, ρύθμισης και συντήρησης ενός συστήματος. Μια από τις εργασίες που αναμένεται να εκτελέσει κάθε διαχειριστής συστήματος, είναι να ρυθμίσει σωστά την ασφάλεια του συστήματος, προκειμένου να προσφέρει τις υπηρεσίες για τις οποίες έχει προγραμματιστεί, χωρίς να επιτρέπει συμβιβασμούς στην ασφάλεια. Ένα από τα εργαλεία που μπορούν να ενισχύσουν την ασφάλεια ενός συστήματος &os; είναι τα jails. Τα Jails πρωτοεμφανίστηκαν στο &os; 4.X από τον &a.phk;, αλλά βελτιώθηκαν πολύ περισσότερο στην έκδοση &os; 5.X, προκειμένου να προσφέρουν περισσότερες δυνατότητες και να είναι περισσότερο ευέλικτα. Η ανάπτυξή τους συνεχίζεται ακόμη, με βελτιώσεις στους τομείς της ευχρηστίας, της απόδοσης, της αξιοπιστίας και της ασφάλειας που πρέπει να παρέχουν. Τι Είναι Ένα Jail Τα λειτουργικά συστήματα τύπου BSD, παρείχαν το &man.chroot.2; από την εποχή του 4.2BSD. Η εντολή &man.chroot.8; μπορεί να χρησιμοποιηθεί για να αλλάξει τον γονικό κατάλογο μιας ομάδας διεργασιών, δημιουργώντας ένα ασφαλές περιβάλλον, ξεχωριστό από το υπόλοιπο σύστημα. Όσες διεργασίες δημιουργούνται σε έναν τέτοιο περιβάλλον, δεν έχουν πρόσβαση σε αρχεία και πόρους έξω από αυτό. Για αυτό το λόγο, αν μια υπηρεσία τρέχει μέσα σε ένα τέτοιο περιβάλλον, και κάποιος εισβολέας καταφέρει να διεισδύσει σε αυτή, δε θα του επιτραπεί η πρόσβαση στο υπόλοιπο σύστημα. Η εντολή &man.chroot.8; είναι πολύ καλή για απλές εργασίες οι οποίες δε χρειάζονται να είναι πολύ ευέλικτες ή να διαθέτουν πολύπλοκα και προηγμένα χαρακτηριστικά. Ωστόσο, από την αρχή της ιδέας του chroot, βρέθηκαν αρκετοί τρόποι για να μπορέσει κάποιος να ξεφύγει από το περιβάλλον αυτό. Παρ' όλο που έχουν διορθωθεί πολλά σφάλματα στις πρόσφατες εκδόσεις του πυρήνα του &os;, ήταν ξεκάθαρο ότι η &man.chroot.2; δεν ήταν η ιδανική λύση για την ασφάλιση υπηρεσιών. Έπρεπε να υλοποιηθεί ένα νέο υποσύστημα. Αυτός είναι ένας από τους κύριους λόγους για την ανάπτυξη των jails. Τα jails βελτίωσαν με διάφορους τρόπους την ιδέα του παραδοσιακού περιβάλλοντος του &man.chroot.2;. Στο τυπικό περιβάλλον του &man.chroot.2;, οι διεργασίες περιορίζονται μόνος ως προς το μέρος του συστήματος αρχείων όπου μπορούν να έχουν πρόσβαση. Οι υπόλοιποι πόροι του συστήματος (όπως οι χρήστες, οι τρέχοντες διεργασίες, το υποσύστημα δικτύωσης) είναι κοινόχρηστοι μεταξύ των διεργασιών του περιβάλλοντος chroot και των διεργασιών του host system. Τα jails επεκτείνουν αυτό το μοντέλο, με την εικονικοποίηση όχι μόνο της πρόσβασης στο σύστημα αρχείων, αλλά επίσης των χρηστών, του υποσυστήματος δικτύωσης του πυρήνα του &os; και μερικών ακόμη πραγμάτων. Περισσότερα για τις διαθέσιμες εντολές που μπορούν να χρησιμοποιηθούν για τη ρύθμιση και τον έλεγχο ενός περιβάλλοντος jail μπορείτε να βρείτε στο . Το Jail έχει τέσσερα κύρια στοιχεία: Έναν κατάλογο με δική του δομή — το αρχικό σημείο στο οποίο εισέρχεται ένα jail. Από τη στιγμή που μια διεργασία βρίσκεται μέσα σε ένα jail, δεν επιτρέπεται να βγει έξω από τον κατάλογο αυτό. Τα προβλήματα που ταλαιπωρούσαν τον σχεδιασμό του &man.chroot.2; δεν επηρεάζουν τα jails του &os;. Ένα hostname (όνομα συστήματος) — το hostname το οποίο θα χρησιμοποιηθεί μέσα στο jail. Τα jails χρησιμοποιούνται κυρίως για την εξυπηρέτηση δικτυακών υπηρεσιών, επομένως η ύπαρξη ενός χαρακτηριστικού hostname που να περιγράφει ταυτόχρονα και τη χρήση του, μπορεί να βοηθήσει αρκετά τον διαχειριστή συστήματος. Μια διεύθυνση IP — αυτή η διεύθυνση αντιστοιχεί σε ένα jail και δεν μπορεί να αλλάξει κατά τη διάρκεια της ζωής του. Η διεύθυνση IP ενός jail είναι συνήθως μία διεύθυνση τύπου alias για μια ήδη υπάρχουσα διεπαφή δικτύου (network interface), αλλά κάτι τέτοιο δεν είναι απαραίτητο. Μία εντολή — η διαδρομή προς ένα εκτελέσιμο το οποίο θα εκτελείται μέσα στο jail. Η διαδρομή αυτή είναι σχετική ως προς τον γονικό κατάλογο του περιβάλλοντος του jail, και μπορεί να διαφέρει πολύ από jail σε jail ανάλογα με το συγκεκριμένο περιβάλλον. Εκτός αυτών, τα jails μπορούν να έχουν τις δικές τους ομάδες χρηστών και τον δικό τους χρήστη root. Φυσικά, ο έλεγχος που έχει ο χρήστης root του jail, περιορίζεται μέσα στο περιβάλλον του jail, και από την οπτική γωνία του host system, ο χρήστης αυτός δεν είναι παντοδύναμος. Επιπλέον, ο χρήστης root του jail, δεν μπορεί να εκτελέσει κρίσιμες εργασίες στο σύστημα έξω από το περιβάλλον του &man.jail.8;. Περισσότερες πληροφορίες σχετικά με τις δυνατότητες και τους περιορισμούς του root θα βρείτε στο . Δημιουργώντας και Ελέγχοντας Jails Μερικοί διαχειριστές συστημάτων κατηγοριοποιούν τα jails σε δύο ενότητες: τα complete (πλήρη) jails, τα οποία μιμούνται ένα πραγματικό σύστημα &os;, και τα service jails, τα οποία χρησιμοποιούνται για μια εφαρμογή ή υπηρεσία, που πιθανόν εκτελείται με ειδικά προνόμια. Αυτός είναι ένας νοητικός διαχωρισμός και δεν επιδρά στη διαδικασία δημιουργίας ενός jail. Η σελίδα manual του &man.jail.8; περιέχει κατατοπιστικές πληροφορίες για τη διαδικασία δημιουργίας ενός jail: &prompt.root; setenv D /here/is/the/jail &prompt.root; mkdir -p $D &prompt.root; cd /usr/src &prompt.root; make world DESTDIR=$D &prompt.root; cd etc/ Το βήμα αυτό δεν απαιτείται από το &os; 6.0 και μετά. &prompt.root; make distribution DESTDIR=$D &prompt.root; mount -t devfs devfs $D/dev Ο καλύτερος τρόπος για να ξεκινήσετε είναι με την επιλογή μιας θέσης (διαδρομής) για το jail σας. Εκεί θα βρίσκονται αποθηκευμένα τα αρχεία του jail όσο αφορά το σύστημα σας. Μια καλή ιδέα είναι το /usr/jail/jailname, όπου jailname το hostname με το οποίο θα αναγνωρίζεται το jail. Το σύστημα αρχείων /usr/ έχει συνήθως αρκετό χώρο για το σύστημα αρχείων του jail, το οποίο, για ένα complete jail είναι ουσιαστικά ένας κλώνος κάθε αρχείου του βασικού συστήματος μια προεπιλεγμένης εγκατάστασης του &os;. Η εντολή αυτή θα εμπλουτίσει τον κατάλογο που επιλέξατε για το jail με όλα τα απαραίτητα αρχεία, βιβλιοθήκες, σελίδες βοήθειας κλπ. Όλα γίνονται με τον τυπικό τρόπο του &os; — αρχικά τα πάντα μεταγλωττίζονται και στη συνέχεια εγκαθίστανται στη διαδρομή που έχετε επιλέξει. Το distribution target του make εγκαθιστά όλα τα αρχεία ρυθμίσεων που απαιτούνται. Με απλά λόγια, εγκαθιστά κάθε αρχείο από το /usr/src/etc/ στον κατάλογο /etc του περιβάλλοντος jail: $D/etc/. Δε χρειάζεται να προσαρτήσετε το &man.devfs.8; στο περιβάλλον του jail. Από την άλλη όμως, όλες, ή σχεδόν όλες οι εφαρμογές χρειάζονται πρόσβαση σε τουλάχιστον μία συσκευή, αναλόγως με τον σκοπό της εφαρμογής. Είναι πολύ σημαντικό να ελέγχεται η πρόσβαση στις συσκευές μέσα σε ένα jail, καθώς λανθασμένες ρυθμίσεις μπορεί να επιτρέψουν σε κάποιον εισβολέα να κάνει άσχημα παιχνίδια μέσα στο jail. Ο έλεγχος του &man.devfs.8; γίνεται μέσω ενός συνόλου κανόνων οι οποίοι περιγράφονται στις σελίδες manual του &man.devfs.8; και του &man.devfs.conf.5;. Από την στιγμή που έχει εγκατασταθεί ένα jail, μπορεί να εκκινηθεί με τη χρήση της εντολής &man.jail.8;. Η &man.jail.8; δέχεται τέσσερις υποχρεωτικές παραμέτρους οι οποίες περιγράφονται στο . Μπορείτε να δώσετε και άλλες παραμέτρους, π.χ., για να εκτελέσετε μια διεργασία στο περιβάλλον του jail με τις άδειες ενός συγκεκριμένου χρήστη. Η παράμετρος εξαρτάται από τον τύπο του jail. Για ένα εικονικό σύστημα, το /etc/rc είναι μια καλή επιλογή, μια και στην ουσία θα κλωνοποιήσει την διαδικασία εκκίνησης ενός πραγματικού συστήματος &os;. Για ένα service jail, η παράμετρος εξαρτάται από την υπηρεσία ή την εφαρμογή που θα τρέχει μέσα στο jail. Τα jails συνήθως ξεκινούν κατά την εκκίνηση και ο μηχανισμός rc του &os; παρέχει έναν εύκολο τρόπο για να γίνει κάτι τέτοιο. Η λίστα με τα jails που θέλετε να ξεκινάνε κατά την εκκίνηση θα πρέπει να προστεθούν στο αρχείο &man.rc.conf.5;: jail_enable="YES" # Set to NO to disable starting of any jails jail_list="www" # Space separated list of names of jails Για κάθε jail που υπάρχει στο jail_list, θα πρέπει να προστεθεί μια ομάδα από ρυθμίσεις στο &man.rc.conf.5;, οι οποίες θα το περιγράφουν: jail_www_rootdir="/usr/jail/www" # jail's root directory jail_www_hostname="www.example.org" # jail's hostname jail_www_ip="192.168.0.10" # jail's IP address jail_www_devfs_enable="YES" # mount devfs in the jail jail_www_devfs_ruleset="www_ruleset" # devfs ruleset to apply to jail Η προεπιλεγμένη εκκίνηση του jail μέσω του &man.rc.conf.5;, θα ξεκινήσει το script του jail /etc/rc, το οποίο υποθέτει ότι το jail είναι ένα ολοκληρωμένο εικονικό σύστημα. Για service jails, η προεπιλεγμένη εκκίνηση πρέπει να αλλάξει, ορίζοντας κατάλληλα την επιλογή jail_jailname_exec_start. Για πλήρη λίστα των διαθέσιμων επιλογών, δείτε το &man.rc.conf.5;. Το script /etc/rc.d/jail μπορεί να χρησιμοποιηθεί για να ξεκινήσει ή να σταματήσει κάποιο jail χειροκίνητα. Πρέπει όμως να υπάρχει η αντίστοιχη καταχώρηση στο rc.conf: &prompt.root; /etc/rc.d/jail start www &prompt.root; /etc/rc.d/jail stop www Για την ώρα δεν υπάρχει κάποιος απόλυτα σωστός τρόπος για να τερματίσετε κάποιο &man.jail.8;. Αυτό συμβαίνει, διότι οι εντολές που χρησιμοποιούνται συνήθως για να τερματίσουν με ασφάλεια ένα σύστημα, δεν μπορούν να χρησιμοποιηθούν μέσα στο περιβάλλον ενός jail. Ο καλύτερος τρόπος για να τερματίσετε ένα jail είναι με την εκτέλεση της ακόλουθης εντολής μέσα από το ίδιο το jail ή με χρήση του βοηθητικού προγράμματος &man.jexec.8; έξω από αυτό: &prompt.root; sh /etc/rc.shutdown Περισσότερες πληροφορίες σχετικά με αυτή τη διαδικασία μπορείτε να βρείτε στη σελίδα βοηθείας του &man.jail.8; Λεπτομερής Ρύθμιση και Διαχείριση Υπάρχουν αρκετές επιλογές που μπορούν να εφαρμοστούν σε ένα jail, καθώς και διάφοροι τρόποι για να συνδυαστεί ένα σύστημα &os; με jails προκειμένου να παράγουν εφαρμογές υψηλότερου επιπέδου. Η ενότητα αυτή παρουσιάζει: Μερικές από τις διαθέσιμες επιλογές για την ρύθμιση της συμπεριφοράς και των περιορισμών ασφαλείας που υλοποιούνται από την εγκατάσταση ενός jail. Μερικές εφαρμογές υψηλού επιπέδου για τη διαχείριση jails, οι οποίες είναι διαθέσιμες μέσω της συλλογής των Ports του &os; και μπορούν να χρησιμοποιηθούν στην υλοποίηση ολοκληρωμένων λύσεων με τη χρήση jails. Εργαλεία συστήματος του &os; για τη ρύθμιση jails Λεπτομερής ρύθμιση ενός jail γίνεται κατά κύριο λόγο μέσω των μεταβλητών του &man.sysctl.8;. Υπάρχει ένα ειδικό subtree του sysctl το οποίο αποτελεί τη βάση για την οργάνωση όλων των σχετικών επιλογών: πρόκειται για την ιεραρχία επιλογών πυρήνα security.jail.*. Παρακάτω θα βρείτε μια λίστα με τα κύρια sysctl που σχετίζονται με κάποιο jail καθώς και τις προεπιλεγμένες τιμές τους. Τα ονόματα μάλλον εξηγούν από μόνα τους την αντίστοιχη λειτουργία, αλλά για περισσότερες πληροφορίες μπορείτε να δείτε τις σελίδες βοήθειας των &man.jail.8; και &man.sysctl.8;. security.jail.set_hostname_allowed: 1 security.jail.socket_unixiproute_only: 1 security.jail.sysvipc_allowed: 0 security.jail.enforce_statfs: 2 security.jail.allow_raw_sockets: 0 security.jail.chflags_allowed: 0 security.jail.jailed: 0 Οι μεταβλητές αυτές μπορούν να χρησιμοποιηθούν από τον διαχειριστή του host system προκειμένου να προσθέσει ή να αφαιρέσει περιορισμούς οι οποίοι υπάρχουν αρχικά στον χρήστη root. Υπάρχουν όμως και κάποιοι περιορισμοί οι οποίοι δεν μπορούν να αφαιρεθούν. Ο χρήστης root δεν επιτρέπεται να προσαρτά ή να απο-προσαρτά συστήματα αρχείων μέσα από ένα &man.jail.8;. Ο root μέσα σε ένα jail δεν επιτρέπεται να φορτώσει ή να αποφορτώσει τους κανόνες (rulesets) του &man.devfs.8;, το firewall, και διάφορες άλλες εργασίες διαχείρισης οι οποίες χρειάζονται τροποποίηση των δεδομένων του πυρήνα, όπως για παράδειγμα ο ορισμός του securelevel του πυρήνα. Το βασικό σύστημα του &os; περιέχει τα βασικά εργαλεία για τη προβολή πληροφοριών σχετικά με τα ενεργά jails, και επίσης για την ανάθεση συγκεκριμένων εντολών διαχείρισης σε κάποιο jail. Οι εντολές &man.jls.8; και &man.jexec.8; αποτελούν μέρος του βασικού συστήματος του &os;, και μπορούν να χρησιμοποιηθούν για να τις παρακάτω απλές εργασίες: Προβολή λίστας των ενεργών jails και τον αντίστοιχων χαρακτηριστικών τους - jail identifier (JID), διεύθυνση IP, hostname και path. Προσκόλληση σε κάποιο ενεργό jail, από το host system, και εκτέλεση κάποιας εντολής μέσα στο jail ή εκτέλεση εργασιών διαχείρισης μέσα στο jail. Κάτι τέτοιο είναι ιδιαίτερα χρήσιμο όταν ο χρήστης root επιθυμεί να τερματίσει με ασφάλεια κάποιο jail. Μπορεί επίσης να χρησιμοποιηθεί η εντολή &man.jexec.8; για την εκτέλεση κάποιου shell μέσα στο jail προκειμένου να εκτελεστούν εργασίες διαχείρισης, για παράδειγμα: &prompt.root; jexec 1 tcsh Εργαλεία διαχείρισης υψηλού επιπέδου στη συλλογή Ports του &os; Ανάμεσα στις διάφορες εφαρμογές τρίτων κατασκευαστών για τη διαχείριση των jails, ένα από τα ποιο ολοκληρωμένα και χρήσιμα πακέτα είναι το sysutils/jailutils. Αποτελεί ένα σύνολο μικρών εφαρμογών οι οποίες συνεισφέρουν στη διαχείριση του &man.jail.8;. Για περισσότερες πληροφορίες, δείτε στον δικτυακό του τόπο. Εφαρμογή των Jails Daniel Gerzo Συνεισφορά του Service Jails Η ενότητα αυτή είναι βασισμένη στην ιδέα που παρουσιάστηκε αρχικά από τον &a.simon; στο , καθώς και σε ένα ανανεωμένο άρθρο του Ken Tom locals@gmail.com. Στην ενότητα αυτή θα σας δείξουμε πως να στήσετε ένα σύστημα &os; το οποίο να διαθέτει ένα επιπλέον επίπεδο ασφάλειας, με τη χρήση του &man.jail.8;. Υποθέτουμε ότι το σύστημα τρέχει τουλάχιστον RELENG_6_0 και ότι έχετε κατανοήσει όλες τις προηγούμενες πληροφορίες του κεφαλαίου. Σχεδιασμός Ένα από τα σημαντικότερα προβλήματα με τα jails είναι η διαχείριση της διαδικασίας αναβαθμίσεων. Αυτό τείνει να είναι πρόβλημα διότι το κάθε jail πρέπει να δημιουργηθεί από την αρχή σε κάθε αναβάθμιση. Συνήθως δεν είναι πρόβλημα αν έχετε ένα μόνο jail, μια και πρόκειται για σχετικά απλή διαδικασία, αλλά γίνεται κουραστική και χρονοβόρα αν έχετε πολλά jails. Οι παρακάτω ρυθμίσεις προϋποθέτουν εμπειρία με το &os; και τη χρήση των διάφορων χαρακτηριστικών του. Εάν τα παρακάτω βήματα σας φαίνονται πολύ περίπλοκα, είναι καλύτερα να ρίξετε μια ματιά σε κάτι ποιο απλό όπως το sysutils/ezjail, το οποίο παρέχει έναν ευκολότερο τρόπο διαχείρισης των jails του &os; και δεν είναι τόσο εξειδικευμένο όσο οι παρακάτω ρυθμίσεις. Η ιδέα αυτή έχει παρουσιαστεί για να λύσει τέτοιου είδους προβλήματα, με την βοήθεια της κοινής χρήσης όσο το δυνατόν περισσότερων αρχείων μεταξύ των jails, με έναν ασφαλή όμως τρόπο — χρησιμοποιώντας προσαρτήσεις τύπου &man.mount.nullfs.8; και μόνο για ανάγνωση (read only) έτσι ώστε η αναβάθμιση να είναι ευκολότερη, και η χρήση μεμονωμένων jails για κάθε υπηρεσία να καθίσταται επιθυμητή. Επιπλέον, παρέχει έναν απλό τρόπο για να προσθέσετε και να αφαιρέσετε jails όπως επίσης και να τα αναβαθμίσετε. Παραδείγματα υπηρεσιών τέτοιου τύπου: ένας HTTP server, ένας DNS server, ένας SMTP server, κλπ. Οι στόχοι των παρακάτω ρυθμίσεων είναι: Δημιουργία απλών και κατανοητών jails. Αυτό σημαίνει ότι δεν θα τρέξουμε ένα πλήρες installworld σε κάθε jail. Εύκολη προσθήκη και διαγραφή jails. Εύκολη αναβάθμιση υπαρχόντων jails. Δυνατότητα δημιουργίας προσαρμοσμένου τμήματος του &os;. Όσο περισσότερη ασφάλεια είναι δυνατόν, με ελαχιστοποίηση της πιθανότητας κακόβουλης χρήσης. Εξοικονόμηση χώρου και inodes. Όπως έχουμε ήδη πει, ο σχεδιασμός αυτός εξαρτάται ιδιαίτερα από την ύπαρξη ενός αρχικού template στο οποίο δεν επιτρέπεται η εγγραφή δεδομένων (γνωστό ως nullfs) και το οποίο πρέπει να έχει προσαρτηθεί σε κάθε jail, όπως επίσης και στην ύπαρξη για κάθε jail μιας συσκευής που να επιτρέπει τόσο την ανάγνωση όσο και την εγγραφή. Μια τέτοια συσκευή μπορεί να είναι κάποιος ξεχωριστός φυσικός δίσκος, μια κατάτμηση, ή κάποια συσκευή vnode &man.md.4;. Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε προσαρτήσεις τύπου nullfs στις οποίες θα επιτρέπεται εγγραφή και ανάγνωση. Η δομή του συστήματος αρχείων περιγράφεται στην παρακάτω λίστα: Κάθε jail θα προσαρτάται κάτω από τον κατάλογο /home/j. Το /home/j/mroot είναι το template για το κάθε jail και η κατάτμηση μόνο ανάγνωσης για όλα τα jails. Θα δημιουργηθεί ένας κενός κατάλογος για κάθε jail κάτω από τον κατάλογο /home/j. Κάθε jail θα έχει έναν κατάλογο /s, ο οποίος θα είναι σύνδεσμος προς το εγγράψιμο μέρος του συστήματος. Κάθε jail θα έχει το δικό εγγράψιμο μέρος το οποίο θα βασίζεται στο /home/j/skel. Κάθε jailspace (το εγγράψιμο μέρος κάθε jail) θα πρέπει να δημιουργηθεί στον κατάλογο /home/js. Όλα αυτά προϋποθέτουν ότι τα jails βρίσκονται κάτω από τον κατάλογο /home. Αυτό βέβαια μπορεί να αλλάξει σε οτιδήποτε εσείς θέλετε, αλλά θα επηρεάσει όλα τα παρακάτω παραδείγματα. Δημιουργώντας το Template Η ενότητα αυτή θα περιγράψει τα βήματα που χρειάζονται προκειμένου να δημιουργήσετε το πρωταρχικό template το οποίο θα περιέχει το τμήμα των jails που είναι μόνο για ανάγνωση. Είναι πάντοτε καλή ιδέα να αναβαθμίζετε το &os; στη τελευταία έκδοση -RELEASE. Για το σκοπό αυτό, διαβάστε το αντίστοιχο κεφάλαιο στο Εγχειρίδιο. Στη περίπτωση που η αναβάθμιση δεν είναι εφικτή, θα χρειαστείτε buildworld για να μπορέσετε να συνεχίσετε. Επιπλέον θα χρειαστείτε το πακέτο sysutils/cpdup. Θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα &man.portsnap.8; για να κατεβάσουμε τη συλλογή των Ports. Για τους νεο-εισερχόμενους, συνίσταται η ανάγνωση του κεφαλαίου για το Portsnap στο Εγχειρίδιο του &os;. Αρχικά, δημιουργήστε μια δομή καταλόγων για το σύστημα αρχείων το οποίο θα είναι μόνο για ανάγνωση, και το οποίο θα περιέχει τα εκτελέσιμα (binaries) του &os; για τα jails. Στη συνέχεια πηγαίνετε στον κατάλογο όπου βρίσκονται τα αρχεία πηγαίου κώδικα (source tree) του &os; και εγκαταστήστε τα αντίστοιχα αρχεία στο jail template: &prompt.root; mkdir /home/j /home/j/mroot &prompt.root; cd /usr/src &prompt.root; make installworld DESTDIR=/home/j/mroot Επόμενο βήμα είναι να προετοιμάσετε τη συλλογή των Ports του &os; για τα jails όπως επίσης και ένα &os; source tree, το οποίο θα χρειαστεί για το mergemaster: &prompt.root; cd /home/j/mroot &prompt.root; mkdir usr/ports &prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract &prompt.root; cpdup /usr/src /home/j/mroot/usr/src Δημιουργήστε το σκελετό για το τμήμα του συστήματος όπου προορίζεται για ανάγνωση και εγγραφή: &prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles &prompt.root; mv etc /home/j/skel &prompt.root; mv usr/local /home/j/skel/usr-local &prompt.root; mv tmp /home/j/skel &prompt.root; mv var /home/j/skel &prompt.root; mv root /home/j/skel Χρησιμοποιήστε το mergemaster για να εγκαταστήσετε τα αρχεία ρυθμίσεων που λείπουν. Στη συνέχεια διαγράψτε όλους τους έξτρα καταλόγους που δημιουργεί το mergemaster: &prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i &prompt.root; cd /home/j/skel &prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev Τώρα, δημιουργήστε συνδέσμους από το σύστημα αρχείων στο οποίο επιτρέπεται η εγγραφή, προς το σύστημα αρχείων που είναι μόνο για ανάγνωση. Βεβαιωθείτε ότι οι σύνδεσμοι έχουν δημιουργηθεί στις σωστές θέσεις s/. Η ύπαρξη πραγματικών καταλόγων ή η δημιουργία καταλόγων σε λάθος θέσεις θα οδηγήσουν την εγκατάσταση σε αποτυχία. &prompt.root; cd /home/j/mroot &prompt.root; mkdir s &prompt.root; ln -s s/etc etc &prompt.root; ln -s s/home home &prompt.root; ln -s s/root root &prompt.root; ln -s ../s/usr-local usr/local &prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 &prompt.root; ln -s ../../s/distfiles usr/ports/distfiles &prompt.root; ln -s s/tmp tmp &prompt.root; ln -s s/var var Σαν τελευταίο βήμα, δημιουργήστε ένα γενικό αρχείο /home/j/skel/etc/make.conf με τα παρακάτω δεδομένα: WRKDIRPREFIX?= /s/portbuild Έχοντας ορίσει το WRKDIRPREFIX με αυτόν τον τρόπο, θα μπορείτε να μεταγλωττίσετε ports του &os; μέσα σε κάθε jail. Θυμηθείτε ότι ο κατάλογος των ports είναι μέρος του συστήματος αρχείων που έχει προσαρτηθεί μόνο για ανάγνωση. Η προσαρμοσμένη διαδρομή για το WRKDIRPREFIX επιτρέπει την μεταγλώττιση των ports στο εγγράψιμο μέρος του κάθε jail. Δημιουργώντας Jails Τώρα που έχουμε ένα ολοκληρωμένο &os; jail template, μπορούμε να εγκαταστήσουμε και να ρυθμίσουμε τα jails στο /etc/rc.conf. Το παράδειγμα αυτό δείχνει τη δημιουργία τριών jails: NS, MAIL και WWW. Εισάγετε τις παρακάτω γραμμές στο αρχείο /etc/fstab, ώστε το μόνο για ανάγνωση template για τα jails και ο εγγράψιμος χώρος να είναι διαθέσιμα στα αντίστοιχα jails: /home/j/mroot /home/j/ns nullfs ro 0 0 /home/j/mroot /home/j/mail nullfs ro 0 0 /home/j/mroot /home/j/www nullfs ro 0 0 /home/js/ns /home/j/ns/s nullfs rw 0 0 /home/js/mail /home/j/mail/s nullfs rw 0 0 /home/js/www /home/j/www/s nullfs rw 0 0 Οι κατατμήσεις που είναι σημειωμένες με 0 pass number δεν ελέγχονται κατά την εκκίνηση από το &man.fsck.8;, ενώ για τις κατατμήσεις με 0 dump number, η &man.dump.8; δεν θα δημιουργεί αντίγραφα ασφαλείας. Προφανώς, δεν θέλουμε το fsck να ελέγχει τις προσαρτήσεις τύπου nullfs, ούτε και το dump να κρατά αντίγραφα από τα μόνο για ανάγνωση nullfs συστήματα αρχείων των jails. Αυτός είναι και ο λόγος που βάλαμε 0 0 στις δύο τελευταίες στήλες κάθε εγγραφής του fstab. Ρυθμίστε τα jails στο /etc/rc.conf: jail_enable="YES" jail_set_hostname_allow="NO" jail_list="ns mail www" jail_ns_hostname="ns.example.org" jail_ns_ip="192.168.3.17" jail_ns_rootdir="/home/j/ns" jail_ns_devfs_enable="YES" jail_mail_hostname="mail.example.org" jail_mail_ip="192.168.3.18" jail_mail_rootdir="/home/j/mail" jail_mail_devfs_enable="YES" jail_www_hostname="www.example.org" jail_www_ip="62.123.43.14" jail_www_rootdir="/home/j/www" jail_www_devfs_enable="YES" Ο λόγος για τον οποίο θέτουμε τη μεταβλητή jail_name_rootdir να δείχνει στο /usr/home αντί για το /home είναι ότι η φυσική διαδρομή για τον κατάλογο /home σε μια τυπική εγκατάσταση του &os; είναι το /usr/home. Η μεταβλητή jail_name_rootdir δεν δεν πρέπει να δείχνει προς διαδρομή που περιλαμβάνει συμβολικό δεσμό, διαφορετικά τα jails θα αρνηθούν να ξεκινήσουν. Χρησιμοποιήστε το βοηθητικό πρόγραμμα &man.realpath.1; για να προσδιορίσετε την τιμή που θα πρέπει να λάβει αυτή η μεταβλητή. Δείτε το &os;-SA-07:01.jail Security Advisory για περισσότερες πληροφορίες. Δημιουργήστε τα απαραίτητα σημεία προσαρτήσεων για το σύστημα αρχείων μόνο ανάγνωσης του κάθε jail: &prompt.root; mkdir /home/j/ns /home/j/mail /home/j/www Εγκαταστήστε το εγγράψιμο template μέσα στο κάθε jail. Προσέξτε εδώ τη χρήση του sysutils/cpdup, το οποίο επιβεβαιώνει ότι δημιουργείται το σωστό αντίγραφο του κάθε καταλόγου: &prompt.root; mkdir /home/js &prompt.root; cpdup /home/j/skel /home/js/ns &prompt.root; cpdup /home/j/skel /home/js/mail &prompt.root; cpdup /home/j/skel /home/js/www Σε αυτή τη φάση, τα jails έχουν δημιουργηθεί και είναι έτοιμα να ξεκινήσουν. Προσαρτήστε το σωστό σύστημα αρχείων για το κάθε jail, και στη συνέχεια εκκινήστε τα, χρησιμοποιώντας το script /etc/rc.d/jail: &prompt.root; mount -a &prompt.root; /etc/rc.d/jail start Τα jails θα πρέπει τώρα να εκτελούνται κανονικά. Γα να ελέγξετε αν έχουν ξεκινήσει σωστά, χρησιμοποιείστε την εντολή &man.jls.8;. Θα πρέπει να δείτε κάτι αντίστοιχο με το παρακάτω: &prompt.root; jls JID IP Address Hostname Path 3 192.168.3.17 ns.example.org /home/j/ns 2 192.168.3.18 mail.example.org /home/j/mail 1 62.123.43.14 www.example.org /home/j/www Σε αυτό το σημείο, θα πρέπει να μπορείτε να συνδεθείτε σε κάθε jail, να προσθέσετε νέους χρήστες ή να ρυθμίσετε υπηρεσίες. Η στήλη JID δηλώνει το χαρακτηριστικό αναγνωριστικό αριθμό κάθε ενεργού jail. Χρησιμοποιήστε την παρακάτω εντολή προκειμένου να εκτελέσετε εργασίες διαχείρισης του jail, με JID 3: &prompt.root; jexec 3 tcsh Αναβάθμιση Κάποια στιγμή, θα χρειαστεί να αναβαθμίσετε το σύστημά σας σε μια νέα έκδοση του &os;, είτε για λόγους ασφάλειας, είτε γιατί υπάρχουν νέες δυνατότητες στην νεώτερη έκδοση οι οποίες είναι χρήσιμες για τα jails που ήδη έχετε. Ο τρόπος που χρησιμοποιήσαμε για την δημιουργία των jails, επιτρέπει την εύκολη αναβάθμιση τους. Επιπλέον, ελαχιστοποιεί το χρόνο διακοπής της λειτουργίας τους, μια και θα χρειαστεί να τα σταματήσετε μόνο κατά τα λίγα τελευταία λεπτά. Επίσης, παρέχει έναν τρόπο να επιστρέψετε σε παλαιότερες εκδόσεις εάν προκύψουν οποιαδήποτε σφάλματα. Το πρώτο βήμα είναι να αναβαθμίσετε το σύστημα στο οποίο φιλοξενούνται τα jails, με το συνήθη τρόπο. Στη συνέχεια δημιουργήστε ένα νέο προσωρινό template κατάλογο, μόνο για ανάγνωση, στο /home/j/mroot2. &prompt.root; mkdir /home/j/mroot2 &prompt.root; cd /usr/src &prompt.root; make installworld DESTDIR=/home/j/mroot2 &prompt.root; cd /home/j/mroot2 &prompt.root; cpdup /usr/src usr/src &prompt.root; mkdir s Το installworld δημιουργεί μερικούς καταλόγους που δε χρειάζονται, και θα πρέπει να διαγραφούν: &prompt.root; chflags -R 0 var &prompt.root; rm -R etc var root usr/local tmp Δημιουργήστε ξανά τους συνδέσμους για το σύστημα αρχείων ανάγνωσης - εγγραφής: &prompt.root; ln -s s/etc etc &prompt.root; ln -s s/root root &prompt.root; ln -s s/home home &prompt.root; ln -s ../s/usr-local usr/local &prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 &prompt.root; ln -s s/tmp tmp &prompt.root; ln -s s/var var Τώρα είναι η σωστή στιγμή για να σταματήσετε τα jails: &prompt.root; /etc/rc.d/jail stop Αποπροσαρτήστε τα αρχικά συστήματα αρχείων: &prompt.root; umount /home/j/ns/s &prompt.root; umount /home/j/ns &prompt.root; umount /home/j/mail/s &prompt.root; umount /home/j/mail &prompt.root; umount /home/j/www/s &prompt.root; umount /home/j/www Τα συστήματα αρχείων ανάγνωσης - εγγραφής είναι προσαρτημένα στο σύστημα αρχείων μόνο ανάγνωσης (/s) και πρέπει να είναι τα πρώτα που θα αποπροσαρτηθούν. Μετακινήστε τον παλιό μόνο για ανάγνωση κατάλογο, και αντικαταστήστε τον με τον καινούργιο. Ο παλιός θα παραμείνει ως αντίγραφο ασφαλείας του παλιού συστήματος σε περίπτωση προβλήματος. Ο τρόπος ονομασίας που ακολουθήσαμε εδώ αντιστοιχεί στη χρονική στιγμή δημιουργίας του νέου συστήματος αρχείων μόνο ανάγνωσης. Μετακινήστε την αρχική συλλογή των Ports του &os; στο νέο σύστημα, αρχείων προκειμένου να εξοικονομήσετε χώρο και inodes: &prompt.root; cd /home/j &prompt.root; mv mroot mroot.20060601 &prompt.root; mv mroot2 mroot &prompt.root; mv mroot.20060601/usr/ports mroot/usr Σε αυτό το σημείο το μόνο για ανάγνωση template είναι έτοιμο, οπότε το μόνο που απομένει είναι να προσαρτήσετε ξανά τα συστήματα αρχείων και να ξεκινήσετε τα jails: &prompt.root; mount -a &prompt.root; /etc/rc.d/jail start Χρησιμοποιείτε την εντολή &man.jls.8; για να ελέγξετε εάν τα jails ξεκίνησαν σωστά. Μην ξεχάσετε να εκτελέσετε το mergemaster για το κάθε jail. Θα χρειαστεί να αναβαθμίσετε τόσο τα αρχεία ρυθμίσεων, όσο και τα rc.d scripts. diff --git a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml b/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml index 33b1355cee..8590a48cf2 100644 --- a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml @@ -1,3691 +1,3692 @@ Jim Mock Αναδομήθηκε και μέρη του ανανεώθηκαν από τον Brian N. Handy Αρχική συνεισφορά από τον Rich Murphey Συμβατότητα με Εκτελέσιμα του Linux Σύνοψη Συμβατότητα με εκτελέσιμα (binary) Linux binary συμβατότητα Linux συμβατότητα εκτελέσιμων Linux συμβατότητα εκτελέσιμων Linux Το &os; παρέχει binary συμβατότητα (εκτελέσιμων) με αρκετά άλλα λειτουργικά τύπου &unix;, συμπεριλαμβανομένου και του Linux. Σε αυτό το σημείο, μπορεί να αναρωτιέστε γιατί ακριβώς χρειάζεται το &os; να μπορεί να τρέξει εκτελέσιμα Linux; H απάντηση σε αυτή την ερώτηση είναι αρκετά απλή. Πολλές εταιρίες και προγραμματιστές αναπτύσσουν εφαρμογές μόνο για Linux, μια και είναι πολύ της μόδας στο κόσμο των υπολογιστών. Αυτό αναγκάζει εμάς τους υπόλοιπους, που χρησιμοποιούμε το &os;, να πιέζουμε τις ίδιες αυτές εταιρίες και προγραμματιστές να δημιουργήσουν κανονικές εκδόσεις των εφαρμογών τους για &os;. Το πρόβλημα είναι, ότι οι περισσότερες από αυτές τις εταιρίες δεν αντιλαμβάνονται πραγματικά πόσοι περισσότεροι άνθρωποι θα χρησιμοποιούσαν το προϊόν τους αν είχαν εκδόσεις και για &os;, και οι περισσότερες συνεχίζουν να αναπτύσσουν μόνο για Linux. Άρα τι μπορεί να κάνει ένας χρήστης του &os;; Εδώ έρχεται να βοηθήσει η binary συμβατότητα του &os; με το Linux. Εν συντομία, η συμβατότητα επιτρέπει στους χρήστες του &os; να εκτελέσουν περίπου το 90% όλων των Linux εφαρμογών χωρίς μετατροπές. Αυτό περιλαμβάνει εφαρμογές όπως το &staroffice;, την Linux έκδοση του &netscape;, &adobe; &acrobat;, RealPlayer, VMware, &oracle;, WordPerfect, Doom, Quake, και περισσότερα. Έχει επίσης αναφερθεί ότι σε κάποιες περιπτώσεις, τα εκτελέσιμα του Linux έχουν καλύτερη απόδοση στο &os; από ότι στο Linux. Υπάρχουν ωστόσο κάποια συγκεκριμένα για το Linux στοιχεία του λειτουργικού που δεν υποστηρίζονται στο &os;. Τα εκτελέσιμα του Linux δεν θα δουλέψουν στο &os; αν χρησιμοποιούν πολλές εξειδικευμένες κλήσεις &i386;, όπως για παράδειγμα την ενεργοποίηση της εικονικής κατάστασης 8086. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Πως να ενεργοποιήσετε την συμβατότητα εκτελέσιμων με το Linux στο σύστημα σας. Πως να εγκαταστήσετε πρόσθετες κοινόχρηστες βιβλιοθήκες του Linux. Πως να εγκαταστήσετε εφαρμογές του Linux στο &os;. Τις λεπτομέρειες της υλοποίησης της συμβατότητας με το Linux στο &os;. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να γνωρίζετε πως θα εγκαταστήσετε πρόσθετο λογισμικό τρίτου κατασκευαστή (). Εγκατάσταση KLD (kernel loadable object) Η συμβατότητα με εκτελέσιμα του Linux δεν είναι ενεργή εξ' αρχής. Ο ευκολότερος τρόπος για να ενεργοποιήσετε αυτή τη λειτουργία είναι να φορτώσετε το KLD (άρθρωμα) linux (Kernel LoaDable object). Μπορείτε να φορτώσετε αυτό το άρθρωμα στον πυρήνα δίνοντας τη παρακάτω εντολή ως root: &prompt.root; kldload linux Αν θέλετε να έχετε πάντα ενεργοποιημένη τη συμβατότητα με Linux, τότε θα χρειαστεί να προσθέσετε τη παρακάτω γραμμή στο /etc/rc.conf: linux_enable="YES" Η εντολή &man.kldstat.8; μπορεί να χρησιμοποιηθεί για να ελεγχθεί αν το KLD είναι φορτωμένο: &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko kernel options COMPAT_LINUX Αν για κάποιο λόγο δεν θέλετε ή δε μπορείτε να φορτώσετε το KLD, τότε μπορείτε να συνδέσετε στατικά την υποστήριξη εκτελέσιμων του Linux στον πυρήνα με το να προσθέσετε την επιλογή options COMPAT_LINUX στο αρχείων ρυθμίσεων του πυρήνα. Στη συνέχεια μπορείτε να εγκαταστήσετε τον νέο πυρήνα όπως περιγράφεται στο . Εγκατάσταση των Linux Runtime Libraries Linux εγκατάσταση βιβλιοθηκών Linux Αυτό μπορεί να γίνει με δύο τρόπους. Είτε με τη χρήση του linux_base port, ή με χειροκίνητη εγκατάσταση τους. Εγκατάσταση μέσω του linux_base Port Ports Collection Αυτός είναι κατά γενική ομολογία ο ευκολότερος τρόπος για την εγκατάσταση των runtime libraries. Είναι η ίδια διαδικασία εγκατάστασης που ακολουθείται και για οποιοδήποτε άλλο port από τη Συλλογή των Ports. Απλά κάντε το παρακάτω: &prompt.root; cd /usr/ports/emulators/linux_base-fc4 &prompt.root; make install distclean Θα πρέπει τώρα να έχετε κανονική συμβατότητα με εκτελέσιμα του Linux. Μερικά προγράμματα παραπονιούνται ότι οι βιβλιοθήκες συστήματος (system libraries) δεν είναι στη τελευταία τους έκδοση. Γενικά όμως, αυτό δεν αποτελεί κανένα πρόβλημα. Μπορούν να υπάρχουν πολλαπλές εκδόσεις του emulators/linux_base, που να αντιστοιχούν στις διαφορετικές εκδόσεις των διανομών Linux. Θα πρέπει να κάνετε εγκατάσταση των ports που προαπαιτούνται από τις εφαρμογές Linux τις οποίες θέλετε να εγκαταστήσετε. Χειροκίνητη εγκατάσταση των Libraries Αν δεν έχετε εγκαταστήσει την συλλογή των ports, μπορείτε να εγκαταστήσετε τις βιβλιοθήκες χειροκίνητα. Θα χρειαστείτε τα Linux shared libraries τα οποία απαιτεί το πρόγραμμα. Επίσης, θα χρειαστεί να δημιουργήσετε και έναν κατάλογο shadow root, /compat/linux, για τις βιβλιοθήκες Linux που θα υπάρχουν στο &os;. Οποιαδήποτε κοινές βιβλιοθήκες (shared libraries) οι οποίες χρησιμοποιούνται από εφαρμογές Linux και εκτελούνται στο &os; θα κοιτάξουν πρώτα σε αυτόν τον κατάλογο. Επομένως, αν μια εφαρμογή Linux φορτώσει για παράδειγμα το /lib/libc.so, το &os; θα προσπαθήσει να φορτώσει πρώτα το /compat/linux/lib/libc.so, και αν αυτό δεν υπάρχει, τότε θα προσπαθήσει να φορτώσει το /lib/libc.so. Τα shared libraries θα πρέπει να εγκατασταθούν στο shadow tree /compat/linux/lib αντί για τις τοποθεσίες που αναφέρει το ld.so στο Linux. Γενικά, τουλάχιστον στις πρώτες σας εγκαταστάσεις εφαρμογών Linux, θα χρειαστεί να ψάξετε για τις κοινές βιβλιοθήκες από τα αντίστοιχα εκτελέσιμα. Μετά από κάποιο διάστημα θα έχετε ένα ικανοποιητικό αριθμό Linux shared libraries στο σύστημά σας και πλέον δε θα χρειάζεται επιπλέον εργασία πέρα από την εγκατάσταση της εφαρμογής. Εγκατάσταση Πρόσθετων Shared Libraries shared libraries Και τι γίνεται στη περίπτωση που έχετε εγκαταστήσει το linux_base port και οι εφαρμογές σας ακόμη παραπονιούνται για shared libraries που λείπουν; Πώς μπορείτε να ξέρετε ποια shared libraries χρειάζεται κάποια εφαρμογή, και που μπορείτε να τα βρείτε; Βασικά, υπάρχουν 2 επιλογές (για να ακολουθήσετε τις παρακάτω οδηγίες θα πρέπει να είστε root στο σύστημά σας). Αν έχετε πρόσβαση σε κάποιο μηχάνημα Linux, ρίξτε μια ματιά στα shared libraries που χρειάζεται μια εφαρμογή, και αντιγράψτε τα στο &os;. Δείτε το παρακάτω παράδειγμα: Ας υποθέσουμε ότι κατεβάσατε μέσω FTP το εκτελέσιμο του Doom για το Linux, και το βάλατε στο Linux σύστημα στο οποίο έχετε πρόσβαση. Μπορείτε στη συνέχεια να ελέγξετε ποια shared libraries χρειάζεται η εφαρμογή με την εντολή ldd linuxdoom, όπως: &prompt.user; ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 symbolic links Θα χρειαστεί να πάρετε όλα τα αρχεία από τη τελευταία στήλη, και να τα αντιγράψετε στον κατάλογο /compat/linux, και να δημιουργήσετε προς αυτά τους αντίστοιχους συμβολικούς δεσμούς (symbolic links) με τα ονόματα της πρώτης στήλης. Αυτό σημαίνει ότι πρακτικά, θα έχετε αυτά τα αρχεία στο σύστημα σας: /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Σημειώστε ότι αν έχετε ήδη κάποιο Linux shared library που ο αριθμός έκδοσης είναι ο ίδιος με αυτόν της πρώτης στήλης του ldd, δε θα χρειαστεί να αντιγράψετε το αρχείο όπως αυτό ονομάζεται στη τελευταία στήλη, τα υπάρχοντα αρχεία θα πρέπει να κάνουν τη δουλειά τους. Σας συμβουλεύουμε όμως να αντιγράψετε το shared library αν είναι κάποια νεότερη έκδοση. Μπορείτε να διαγράψετε τα παλιά αρχεία, αρκεί όμως να ανανεώσετε τους συμβολικούς δεσμούς ώστε να οδηγούν στα νέα αρχεία. Επομένως, αν έχετε τις παρακάτω βιβλιοθήκες στο σύστημά σας: /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 και βρείτε μια εφαρμογή η οποία ζητάει μια νεότερη έκδοση μέσω του ldd: libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 Αν η διαφορά της έκδοσης στο τελευταία ψηφίο είναι μόνο μίας ή δύο εκδόσεων, τότε μην σας απασχολεί η αντιγραφή του /lib/libc.so.4.6.29, γιατί το πρόγραμμα θα πρέπει να τρέχει κανονικά και με τη λίγο παλαιότερη έκδοση. Παρ' όλα αυτά, αν θέλετε, μπορείτε να αντικαταστήσετε το libc.so και έτσι θα έχετε το παρακάτω: /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Ο μηχανισμός των συμβολικών συνδέσμων χρειάζεται μόνο για τις εφαρμογές του Linux. Ο runtime linker του &os; κοιτάει μόνος του για τις πιο πρόσφατες εκδόσεις των βιβλιοθηκών και έτσι δε χρειάζεται να σας απασχολεί.
Εγκατάσταση των Linux ELF Binaries Linux ELF binaries Τα ELF binaries χρειάζονται μερικές φορές ένα ακόμα βήμα, το branding. Αν προσπαθήσετε να τρέξετε ένα εκτελέσιμο ELF χωρίς branding, τότε θα σας εμφανιστεί το παρακάτω σφάλμα: &prompt.user; ./my-linux-elf-binary ELF binary type not known Abort Για να βοηθήσετε τον πυρήνα του &os; να ξεχωρίσει ένα ELF του &os; από ένα του Linux, χρησιμοποιήσετε την εντολή &man.brandelf.1;. &prompt.user; brandelf -t Linux my-linux-elf-binary GNU toolchain To GNU toolchain, ομάδα πρόγραμμα GNU, τοποθετεί πλέον αυτόματα τα κατάλληλα χαρακτηριστικά στα εκτελέσιμα ELF, επομένως το παραπάνω βήμα θα χρειάζεται όλο και λιγότερο στο μέλλον. Ρύθμιση του Hostname Resolver Αν το DNS δε δουλεύει ή αν σας εμφανίζεται το παρακάτω σφάλμα: resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword Θα χρειαστεί να ρυθμίσετε το /compat/linux/etc/host.conf ώστε να περιέχει: order hosts, bind multi on Η σειρά εδώ δηλώνει ότι αρχικά ελέγχεται το αρχείο /etc/hosts και στη συνέχεια ο DNS server. Όταν το /compat/linux/etc/host.conf δεν είναι διαθέσιμο, οι εφαρμογές Linux χρησιμοποιούν το /etc/host.conf του &os; και παραπονιούνται ότι η σύνταξη του αρχείου δεν είναι σωστή. Θα πρέπει να αφαιρέσετε την αναφορά στο bind αν δεν έχετε ρυθμίσει ένα name server μέσω του /etc/resolv.conf.
Boris Hollas Ανανεώθηκε για το Mathematica 5.X από τον Εγκαθιστώντας το &mathematica; applications Mathematica Το κείμενο αυτό περιγράφει τη διαδικασία εγκατάστασης της έκδοσης Linux του &mathematica; 5.X σε ένα σύστημα &os;. Μπορείτε να αγοράσετε την κανονική ή μαθητική έκδοση του &mathematica; για Linux, απευθείας από τη Wolfram στο . Το Πρόγραμμα Εγκατάστασης του &mathematica; Αρχικά, θα πρέπει να πείτε στο &os; ότι τα εκτελέσιμα για Linux του &mathematica; κάνουν χρήση του Linux ABI. Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να ορίσετε τον τύπο του ELF ως Linux σε όλες τις εφαρμογές που δεν είναι ήδη branded, κάνοντας χρήση της εντολής: &prompt.root; sysctl kern.fallback_elf_brand=3 Αυτό θα κάνει το &os; να υποθέσει ότι τα εκτελέσιμα ELF που δεν είναι branded, κάνουν χρήση του Linux ABI και έτσι θα μπορείτε να τρέξετε το πρόγραμμα της εγκατάστασης απευθείας από το CDROM. Τώρα, αντιγράψτε το αρχείο MathInstaller στον σκληρό σας δίσκο: &prompt.root; mount /cdrom &prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/ Ανοίξτε το αρχείο και αντικαταστήστε το /bin/sh στη πρώτη γραμμή με το /compat/linux/bin/sh. Αυτό θα σιγουρέψει ότι το πρόγραμμα εγκατάστασης θα τρέχει με την έκδοση &man.sh.1; για Linux. Στη συνέχεια, αντικαταστήστε όλες τις εγγραφές Linux) με &os;) χρησιμοποιώντας έναν συντάκτη κειμένου ή με το παρακάτω script στην επόμενη ενότητα. Αυτό θα πει στο πρόγραμμα εγκατάστασης του &mathematica;, το οποίο τρέχει την εντολή uname -s για να διαπιστώσει το λειτουργικό σύστημα, να αντιμετωπίσει το &os; σαν ένα λειτουργικό παρεμφερές με το Linux. Η εκτέλεση του MathInstaller θα ξεκινήσει τώρα την εγκατάσταση του &mathematica;. Τροποποιώντας τα Εκτελέσιμα του &mathematica; Τα shell scripts τα οποία δημιουργεί το &mathematica; κατά τη διαδικασία της εγκατάστασης πρέπει να τροποποιηθούν πριν χρησιμοποιηθούν. Αν επιλέξετε το /usr/local/bin ως τον κατάλογο για τα εκτελέσιμα του &mathematica;, θα βρείτε εκεί συμβολικούς δεσμούς (symlinks) προς τα αρχεία math, mathematica, Mathematica, και MathKernel. Σε κάθε περίπτωση από τις παραπάνω, αντικαταστήστε τις εγγραφές Linux) με &os;) με κάποιον συντάκτη κειμένου ή με το παρακάτω shell script: #!/bin/sh cd /usr/local/bin for i in math mathematica Mathematica MathKernel do sed 's/Linux)/&os;)/g' $i > $i.tmp sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i rm $i.tmp chmod a+x $i done Αποκτώντας Κωδικό για το &mathematica; Ethernet MAC address Όταν εκκινήσετε το &mathematica; για πρώτη φορά, θα ερωτηθείτε για έναν κωδικό. Αν δεν έχετε κάποιον κωδικό σε αυτό το στάδιο, τρέξτε το πρόγραμμα mathinfo που βρίσκεται στον κατάλογο εγκατάστασης για να σας δοθεί το machine ID. Το "machine ID" είναι εξ' ολοκλήρου βασισμένο στη διεύθυνση MAC της κάρτας δικτύου που έχετε. Αυτό σημαίνει ότι δεν μπορείτε να τρέξετε το &mathematica; σε άλλους υπολογιστές. Όταν εγγραφείτε στη Wolfram, με e-mail, τηλέφωνο ή fax, θα χρειαστεί να δώσετε το machine ID και θα σας απαντήσουν με έναν αντίστοιχο κωδικό που θα αποτελείται από μια σειρά αριθμών. Τρέχοντας το &mathematica; Frontend μέσω Δικτύου Το &mathematica; κάνει χρήση κάποιων ειδικών γραμματοσειρών για να εμφανίσει χαρακτήρες οι οποίοι δεν υπάρχουν στα συνηθισμένα σετ (ολοκληρώματα, αθροίσματα, Ελληνικά γράμματα, κλπ). To πρωτόκολλο X απαιτεί αυτές οι γραμματοσειρές να υπάρχουν στο τοπικό σύστημα. Αυτό σημαίνει ότι θα χρειαστεί να αντιγράψετε τις γραμματοσειρές αυτές από το CDROM ή από από κάποιον άλλον υπολογιστή που έχει το &mathematica;. Συνήθως αυτές οι γραμματοσειρές μπορούν να βρεθούν μέσα στο κατάλογο /cdrom/Unix/Files/SystemFiles/Fonts του CDROM, ή στον κατάλογο /usr/local/mathematica/SystemFiles/Fonts στον τοπικό σκληρό δίσκο. Οι πραγματικές γραμματοσειρές βρίσκονται σε υποκαταλόγους όπως Type1 και X. Υπάρχουν αρκετοί τρόποι να τις χρησιμοποιήσετε, οι οποίοι περιγράφονται στη συνέχεια. Ο πρώτος τρόπος είναι να τις αντιγράψετε μέσα σε έναν υπάρχοντα κατάλογο στο /usr/X11R6/lib/X11/fonts. Θα χρειαστεί όμως να τροποποιήσετε το αρχείο fonts.dir, ώστε να προσθέσετε τα ονόματα των γραμματοσειρών μέσα σε αυτό, και να αλλάξετε τον αριθμό των γραμματοσειρών στη πρώτη γραμμή. Εναλλακτικά, είναι συνήθως αρκετό να εκτελέσετε απλώς την εντολή &man.mkfontdir.1; μέσα στον κατάλογο που έχετε αντιγράψει τις γραμματοσειρές. Ο δεύτερος τρόπος είναι να αντιγράψετε τους παραπάνω καταλόγους μέσα στο /usr/X11R6/lib/X11/fonts: &prompt.root; cd /usr/X11R6/lib/X11/fonts &prompt.root; mkdir X &prompt.root; mkdir MathType1 &prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts &prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X &prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 &prompt.root; mkfontdir Τώρα προσθέστε τους νέους καταλόγους με τις γραμματοσειρές στο font path: &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash Αν χρησιμοποιείτε το &xorg;, μπορείτε να φορτώνετε τις γραμματοσειρές αυτές αυτόματα, προσθέτοντας τους νέους καταλόγους στο αρχείο xorg.conf. Για τον εξυπηρετητή &xfree86;, το αρχείο ρυθμίσεων είναι το XF86Config. fonts Αν δεν έχετε ήδη έναν κατάλογο με το όνομα /usr/X11R6/lib/X11/fonts/Type1, μπορείτε να αλλάξετε το όνομα του MathType1 από το παραπάνω παράδειγμα σε Type1. Aaron Kaplan Συνεισφορά του Robert Getschmann Ευχαριστίες στον Εγκαθιστώντας το &maple; applications Maple Το &maple; είναι μία εμπορική εφαρμογή μαθηματικών παρόμοια με το &mathematica;. Θα πρέπει να αγοράσετε το λογισμικό από το και στη συνέχεια να κάνετε αίτηση για μια άδεια χρήσης. Για να εγκαταστήσετε το λογισμικό στο &os;, ακολουθήστε τα παρακάτω απλά βήματα. Εκτελέστε το INSTALL shell script από το μέσο εγκατάστασης που έχετε. Επιλέξτε RedHat όταν ερωτηθείτε από το πρόγραμμα εγκατάστασης. Ο τυπικός κατάλογος είναι ο /usr/local/maple. Αν δεν έχετε αγοράσει ακόμη κάποια άδεια για το &maple;, αγοράστε μία από το Maple Waterloo Software () και αντιγράψτε το αρχείο που θα σας δοθεί στο /usr/local/maple/license/license.dat. Εγκαταστήσετε το FLEXlm license manager εκτελώντας το INSTALL_LIC shell script το οποία παρέχεται μαζί με το &maple;. Δώστε το βασικό όνομα του υπολογιστή σας το οποίο απαιτείται από τον εξυπηρετητή διαχείρισης των αδειών (license server). Χρησιμοποιήστε το παρακάτω patch στο αρχείο /usr/local/maple/bin/maple.system.type: ----- snip ------------------ *** maple.system.type.orig Sun Jul 8 16:35:33 2001 --- maple.system.type Sun Jul 8 16:35:51 2001 *************** *** 72,77 **** --- 72,78 ---- # the IBM RS/6000 AIX case MAPLE_BIN="bin.IBM_RISC_UNIX" ;; + "FreeBSD"|\ "Linux") # the Linux/x86 case # We have two Linux implementations, one for Red Hat and ----- snip end of patch ----- Σημειώστε ότι μετά το "FreeBSD"|\ δεν πρέπει να εμφανίζεται άλλο κενό διάστημα. Το patch αυτό οδηγεί το &maple; να αναγνωρίσει το &os; σαν ένα σύστημα Linux. Το bin/maple shell script καλεί το bin/maple.system.type shell script, το οποίο με τη σειρά του καλεί την εντολή uname -a προκειμένου να εντοπιστεί το όνομα του λειτουργικού συστήματος. Αναλόγως με το ποιο λειτουργικό βρεθεί, θα χρησιμοποιηθούν και τα αντίστοιχα εκτελέσιμα αρχεία. Εκκινήστε τον license server. Ένας βολικός τρόπος για να εκκινήσετε τοlmgrd είναι το ακόλουθο script που βρίσκεται στο /usr/local/etc/rc.d/lmgrd.sh: ----- snip ------------ #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: `basename $0` {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- snip ------------ Δοκιμή του &maple;: &prompt.user; cd /usr/local/maple/bin &prompt.user; ./xmaple Σε αυτό το σημείο θα πρέπει να είναι όλα έτοιμα και να μην έχετε κανένα πρόβλημα. Μην ξεχάσετε όμως να στείλετε ένα e-mail στη Maplesoft και να τους πείτε ότι θέλετε μια έκδοση που να υποστηρίζεται επίσημα στο &os;. Συνηθισμένα Προβλήματα Ίσως δυσκολευτείτε με την λειτουργία του FLEXlm license manager. Επιπλέον τεκμηρίωση μπορείτε να βρείτε στο . Το lmgrd είναι γνωστό ότι θέλει το αρχείο της άδειας να έχει συγκεκριμένη μορφή αλλιώς η εκτέλεση του θα αποτύχει. Ένα σωστό αρχείο άδειας χρήσης πρέπει είναι σε γενικές γραμμές όπως το παρακάτω: # ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX Ο σειριακός αριθμός και το κλειδί φαίνονται εδώ με 'X'. Το chillig είναι το όνομα του συστήματος. Μπορείτε να τροποποιήσετε το αρχείο της άδειας χρήσης, αρκεί να μην αλλάξετε την γραμμή FEATURE (η οποία προστατεύεται από το κλειδί της άδειας). Dan Pelleg Συνεισφορά του Εγκαθιστώντας το &matlab; applications MATLAB Το κείμενο αυτό περιγράφει τη διαδικασία εγκατάστασης της Linux έκδοσης του &matlab; 6.5 σε ένα σύστημα &os;. Δουλεύει αρκετά καλά, με εξαίρεση το &java.virtual.machine; (δείτε στο ). Η Linux έκδοση του &matlab; μπορεί να αγοραστεί απευθείας από την εταιρεία The MathWorks στο . Σιγουρευτείτε ότι πήρατε και το αρχείο που περιέχει την άδεια χρήσης ή οδηγίες για το πως να το δημιουργήσετε. Μια και θα επικοινωνήσετε με την εταιρεία, πείτε τους ότι θα θέλατε να υπάρχει επίσης υποστήριξη για το &os;. Εγκατάσταση του &matlab; Για να εγκαταστήσετε το &matlab;, κάντε τα παρακάτω: Εισάγετε το CD και προσαρτήστε το στο σύστημα σας. Συνδεθείτε ως χρήστης root, όπως συνιστά το script της εγκατάστασης. Για να ξεκινήσετε το script της εγκατάστασης δώστε την εντολή: &prompt.root; /compat/linux/bin/sh /cdrom/install Το πρόγραμμα της εγκατάστασης είναι σε γραφικό περιβάλλον. Αν λαμβάνετε σφάλματα σχετικά με την οθόνη, δώστε την εντολή: setenv HOME ~USER, όπου USER είναι ο χρήστης από όπου δώσατε την εντολή &man.su.1;. Όταν ερωτηθείτε για τον κατάλογο του &matlab;, δώστε: /compat/linux/usr/local/matlab. Για ευκολότερη διαδικασία εγκατάστασης, ορίστε το παρακάτω: set MATLAB=/compat/linux/usr/local/matlab στη γραμμή εντολών του κελύφους σας. Τροποποιήσετε το αρχείο της άδειας (license file) σύμφωνα με τις οδηγίες που λάβατε με την άδεια του &matlab;. Μπορείτε να ετοιμάσετε εκ των προτέρων το αρχείο αυτό και να το αντιγράψετε στο $MATLAB/license.dat, πριν καν σας πει το πρόγραμμα εγκατάστασης να το τροποποιήσετε. Ολοκλήρωση της Εγκατάστασης Σε αυτό το σημείο, η εγκατάσταση του &matlab; έχει ολοκληρωθεί. Τα επόμενα βήματα χρειάζονται για να μπορέσετε να το δουλέψετε σωστά με το &os;. Εκκίνηση του License Manager Δημιουργία συμβολικών συνδέσμων για τα scripts του license manager: &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW &prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW Δημιουργήστε το αρχείο εκκίνησης /usr/local/etc/rc.d/flexlm.sh. Το παράδειγμα παρακάτω είναι μια τροποποιημένη έκδοση του $MATLAB/etc/rc.lm.glnx86. Οι αλλαγές είναι στις τοποθεσίες των αρχείων, και στην εκκίνηση του license manager στο περιβάλλον εξομοίωσης Linux του &os; . #!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 Το αρχείο πρέπει να είναι εκτελέσιμο: &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh Πρέπει επίσης να αντικαταστήσετε το παραπάνω username με ένα υπαρκτό όνομα χρήστη του συστήματος σας (και να μην είναι ο root). Εκκινήστε τον license manager με την εντολή: &prompt.root; /usr/local/etc/rc.d/flexlm.sh start Σύνδεση με το Περιβάλλον του &java; Runtime Environment Αλλάξτε τον σύνδεσμο του&java; Runtime Environment (JRE) σε έναν ο οποίος θα δουλεύει στο &os;: &prompt.root; cd $MATLAB/sys/java/jre/glnx86/ &prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre Δημιουργήστε το Script Εκκίνησης του &matlab; Τοποθετήστε το παρακάτω script στο /usr/local/bin/matlab: #!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" Στη συνέχεια δώστε την εντολή chmod +x /usr/local/bin/matlab. Ανάλογα με την έκδοση του emulators/linux_base, που έχετε, μπορεί να εμφανιστούν μερικά σφάλματα όταν τρέξετε το script. Για να το αποφύγετε αυτό, τροποποιήστε το αρχείο /compat/linux/usr/local/matlab/bin/matlab, και αλλάξτε τη γραμμή που λέει: if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then (στην έκδοση 13.0.1 βρίσκεται στη γραμμή 410) σε αυτή τη γραμμή: if test -L $newbase; then Δημιουργία Script Τερματισμού του &matlab; Τα επόμενα βήματα χρειάζονται για να λύσετε ένα πρόβλημα που υπάρχει με τον τερματισμό του &matlab;. Δημιουργήστε το αρχείο $MATLAB/toolbox/local/finish.m, και μέσα σε αυτό προσθέστε μόνο τη γραμμή: ! $MATLAB/bin/finish.sh To $MATLAB γράψτε το ακριβώς όπως το βλέπετε. Στον ίδιο κατάλογο, θα βρείτε τα αρχεία finishsav.m και finishdlg.m, τα οποία θα σας δίνουν τη δυνατότητα να σώζετε την εργασία σας πριν κλείσετε το πρόγραμμα. Αν πρόκειται να χρησιμοποιήσετε κάποιο από αυτά, προσθέστε του την παραπάνω γραμμή αμέσως μετά την εντολή save . Δημιουργήστε το αρχείο $MATLAB/bin/finish.sh, το οποίο θα περιέχει τα παρακάτω: #!/usr/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0 Κάντε το αρχείο εκτελέσιμο: &prompt.root; chmod +x $MATLAB/bin/finish.sh Χρησιμοποιώντας το &matlab; Σε αυτό το σημείο θα πρέπει να είστε έτοιμοι να δώσετε την εντολή matlab και να αρχίσετε να χρησιμοποιείτε την εφαρμογή. Marcel Moolenaar Συνεισφορά του Εγκατάσταση της &oracle; applications Oracle Εισαγωγή Το κείμενο αυτό περιγράφει τη διαδικασία εγκατάστασης των &oracle; 8.0.5 και &oracle; 8.0.5.1 Enterprise Edition για Linux σε ένα σύστημα &os;. Εγκατάσταση του Περιβάλλοντος Linux Σιγουρευτείτε ότι έχετε εγκαταστήσει τα emulators/linux_base και devel/linux_devtools από τη συλλογή των Ports. Αν αντιμετωπίζετε δυσκολίες με τα παραπάνω, ίσως χρειαστεί να τα εγκαταστήσετε από πακέτα ή από παλιότερες εκδόσεις της συλλογής των Ports. Αν θέλετε να τρέξετε τον intelligent agent, θα χρειαστεί να εγκαταστήσετε και το πακέτο Red Hat Tcl: tcl-8.0.3-20.i386.rpm. Η εντολή για την εγκατάσταση μέσω του επίσημου RPM port (archivers/rpm) είναι: &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package Η εγκατάσταση του package θα πρέπει να γίνει ομαλά και χωρίς προβλήματα. Ρυθμίζοντας το Περιβάλλον για την &oracle; Πριν την εγκατάσταση της &oracle;, θα πρέπει να ρυθμίσετε σωστά το περιβάλλον του συστήματός σας. Το παρακάτω κείμενο περιγράφει τι ακριβώς πρέπει να κάνετε για να εκτελέσετε την &oracle; για Linux στο &os;, και δεν περιγράφει ότι υπάρχει ήδη στον οδηγό εγκατάστασης της &oracle;. Ρύθμιση του Πυρήνα kernel tuning Όπως περιγράφει ο οδηγός εγκατάστασης της &oracle;, θα πρέπει να ορίσετε τις τιμές της shared memory στο μέγιστο. Μην χρησιμοποιήσετε το SHMMAX στο &os;. Το SHMMAX υπολογίζεται απλώς από το SHMMAXPGS και το PGSIZE. Επομένως καθορίστε το SHMMAXPGS. Όλες οι άλλες επιλογές μπορούν να οριστούν όπως περιγράφεται στον οδηγό. Για παράδειγμα: options SHMMAXPGS=10000 options SHMMNI=100 options SHMSEG=10 options SEMMNS=200 options SEMMNI=70 options SEMMSL=61 Ορίστε τις τιμές των επιλογών έτσι ώστε να ταιριάζουν στη χρήση της &oracle; που θέλετε να κάνετε. Επίσης, επιβεβαιώστε ότι έχετε ενεργοποιήσει τις παρακάτω επιλογές στις ρυθμίσεις του πυρήνα: options SYSVSHM #SysV shared memory options SYSVSEM #SysV semaphores options SYSVMSG #SysV interprocess communication Ο Χρήστης &oracle; Δημιουργήστε ένα χρήστη συστήματος με όνομα oracle, με τον ίδιο τρόπο που θα δημιουργούσατε και οποιονδήποτε άλλον χρήστη. Το μόνο ιδιαίτερο χαρακτηριστικό του χρήστη oracle είναι ότι χρειάζεται να του δώσετε ένα κέλυφος Linux. Προσθέστε το /compat/linux/bin/bash στο /etc/shells και ορίστε το κέλυφος του χρήστη oracle σε /compat/linux/bin/bash. Το Περιβάλλον Εκτός των συνηθισμένων μεταβλητών της &oracle;, όπως οι ORACLE_HOME και ORACLE_SID θα πρέπει να ορίσετε και τις ακόλουθες μεταβλητές περιβάλλοντος: Μεταβλητή Τιμή LD_LIBRARY_PATH $ORACLE_HOME/lib CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip PATH /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin Σας συνιστούμε να ορίσετε όλες τις μεταβλητές περιβάλλοντος στο αρχείο .profile. Ένα ολοκληρωμένο παράδειγμα είναι το παρακάτω: ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH Εγκατάσταση της &oracle; Λόγω μια μικρής έλλειψης στον εξομοιωτή του Linux, θα χρειαστεί να δημιουργήσετε έναν κατάλογο με το όνομα .oracle μέσα στο /var/tmp, πριν ξεκινήσετε το πρόγραμμα εγκατάστασης. Ο κατάλογος αυτός θα πρέπει να ανήκει στον χρήστη oracle. Θα πρέπει τώρα να πραγματοποιήσετε την εγκατάσταση της &oracle; δίχως κανένα πρόβλημα. Αν αντιμετωπίζετε όμως ακόμη προβλήματα, ελέγξτε την έκδοση της &oracle; που έχετε ή/και τις ρυθμίσεις σας! Αφότου έχετε πραγματοποιήσει την εγκατάσταση της &oracle;, εφαρμόστε τα patches που περιγράφονται στις δύο παρακάτω ενότητες. Ένα συχνό πρόβλημα είναι ότι δεν γίνεται σωστή εγκατάσταση του προσαρμογέα του πρωτοκόλλου TCP. Αυτό έχει ως αποτέλεσμα να μην μπορείτε να ξεκινήσετε τους TCP listeners. Οι ακόλουθες οδηγίες θα σας βοηθήσουν να λύσετε αυτό το πρόβλημα.: &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk ntcontab.o &prompt.root; cd $ORACLE_HOME/lib &prompt.root; ar r libnetwork.a ntcontab.o &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk install Μη ξεχάσετε να τρέξετε ξανά το root.sh Διόρθωση του root.sh Όταν εγκαθιστάτε την &oracle;, κάποιες ενέργειες, οι οποίες χρειάζονται να γίνουν ως root, καταγράφονται σε ένα shell script που λέγεται root.sh. Το script αυτό δημιουργείται στον κατάλογο orainst. Εφαρμόστε το παρακάτω patch στο root.sh, για να μπορέσει να βρει και να χρησιμοποιήσει το chown. Εναλλακτικά, τρέξτε το script μέσα από ένα κέλυφος Linux. *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---- # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script Όταν δεν κάνετε χρήση του CD για την εγκατάσταση, μπορείτε να περάσετε το patch για το root.sh, στην πηγή εγκατάστασης. To αρχείο ονομάζεται rthd.sh και βρίσκεται στον κατάλογο orainst. Διόρθωση του genclntsh To script genclntsh χρησιμοποιείται για να δημιουργήσει μια shared client library. Τρέξτε το παρακάτω patch για να σβήσετε το καθορισμένο PATH: *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---- # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst Εκτέλεση της &oracle; Αφού έχετε ακολουθήσει αυτές τις οδηγίες, θα πρέπει να μπορείτε να εκτελέσετε την &oracle; σαν να βρισκόσασταν σε ένα σύστημα Linux. Holger Kipp Συνεισφορά του Valentino Vaschetto Αρχική μετατροπή σε SGML από τον Εγκατάσταση του &sap.r3; applications SAP R/3 Η εγκατάσταση συστημάτων &sap; χρησιμοποιώντας το &os; δεν υποστηρίζεται από την ομάδα υποστήριξης της &sap; — υποστήριξη παρέχεται μόνο σε συγκεκριμένες, υποστηριζόμενες, πλατφόρμες. Εισαγωγή Το κείμενο αυτό περιγράφει ένα πιθανό τρόπο για την εγκατάσταση του &sap.r3; System με μία βάση δεδομένων &oracle; για Linux σε ένα σύστημα &os;, περιλαμβάνοντας την εγκατάσταση του &os; και της &oracle;. Θα περιγράψουμε δύο διαφορετικά είδη ρυθμίσεων: &sap.r3; 4.6B (IDES) με &oracle; 8.0.5 σε &os; 4.3-STABLE &sap.r3; 4.6C με &oracle; 8.1.7 σε &os; 4.5-STABLE Παρ' όλο που αυτό το κείμενο προσπαθεί να περιγράψει με λεπτομέρειες όλα τα απαραίτητα βήματα, δεν θα πρέπει να θεωρηθεί ως αντικαταστάτης των οδηγών εγκατάστασης της &oracle; και του &sap.r3;. Δείτε τον οδηγό του &sap.r3; για Linux για ερωτήσεις σχετικά με το &sap; και την &oracle;, και για πηγές από την &oracle; και το &sap; OSS. Λογισμικό Τα ακόλουθα CD-ROMs έχουν χρησιμοποιηθεί για την εγκατάσταση του &sap;: &sap.r3; 4.6B, &oracle; 8.0.5 Όνομα Αρίθμηση Περιγραφή KERNEL 51009113 SAP Kernel Oracle / Installation / AIX, Linux, Solaris RDBMS 51007558 Oracle / RDBMS 8.0.5.X / Linux EXPORT1 51010208 IDES / DB-Export / Disc 1 of 6 EXPORT2 51010209 IDES / DB-Export / Disc 2 of 6 EXPORT3 51010210 IDES / DB-Export / Disc 3 of 6 EXPORT4 51010211 IDES / DB-Export / Disc 4 of 6 EXPORT5 51010212 IDES / DB-Export / Disc 5 of 6 EXPORT6 51010213 IDES / DB-Export / Disc 6 of 6 Επιπλέον, χρησιμοποιήσαμε το &oracle; 8 Server (Pre-production version 8.0.5 για Linux, Kernel Version 2.0.33) CD το οποίο δεν είναι απαραίτητο, και το &os; 4.3-STABLE (ένα στιγμιότυπο λίγες μόνο μέρες μετά την έκδοση 4.3-RELEASE). &sap.r3; 4.6C SR2, &oracle; 8.1.7 Όνομα Αρίθμηση Περιγραφή KERNEL 51014004 SAP Kernel Oracle / SAP Kernel Version 4.6D / DEC, Linux RDBMS 51012930 Oracle 8.1.7/ RDBMS / Linux EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 1 of 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 2 of 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 3 of 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disc 4 of 4 LANG1 51013954 Release 4.6C SR2 / Language / DE, EN, FR / Disc 1 of 3 Αναλόγως με τις γλώσσες που θέλετε να εγκαταστήσετε, θα χρειαστείτε επιπλέον τα αντίστοιχα CDs. Εμείς χρησιμοποιούμε Γερμανικά (DE) και Αγγλικά (EN), οπότε χρειαζόμαστε μόνο το πρώτο CD. Μια μικρή σημείωση, η αρίθμηση των EXPORT CDs είναι ακριβώς η ίδια. Όλα τα CDs των γλωσσών έχουν την ίδια αρίθμηση (αυτό διαφέρει σε σχέση με την αρίθμηση της έκδοσης 4.6B IDES). Την ώρα που γράφονται αυτές οι γραμμές, η εγκατάσταση λειτουργεί σε &os; 4.5-STABLE (20.03.2002). Σημειώσεις &sap; Οι ακόλουθες σημειώσεις θα πρέπει να διαβαστούν πριν την εγκατάσταση του &sap.r3; μια και είναι χρήσιμες για τη διαδικασία εγκατάστασης: &sap.r3; 4.6B, &oracle; 8.0.5 Αρίθμηση Τίτλος 0171356 SAP Software on Linux: Essential Comments 0201147 INST: 4.6C R/3 Inst. on UNIX - Oracle 0373203 Update / Migration Oracle 8.0.5 --> 8.0.6/8.1.6 LINUX 0072984 Release of Digital UNIX 4.0B for Oracle 0130581 R3SETUP step DIPGNTAB terminates 0144978 Your system has not been installed correctly 0162266 Questions and tips for R3SETUP on Windows NT / W2K &sap.r3; 4.6C, &oracle; 8.1.7 Αρίθμηση Τίτλος 0015023 Initializing table TCPDB (RSXP0004) (EBCDIC) 0045619 R/3 with several languages or typefaces 0171356 SAP Software on Linux: Essential Comments 0195603 RedHat 6.1 Enterprise version: Known problems 0212876 The new archiving tool SAPCAR 0300900 Linux: Released DELL Hardware 0377187 RedHat 6.2: important remarks 0387074 INST: R/3 4.6C SR2 Installation on UNIX 0387077 INST: R/3 4.6C SR2 Inst. on UNIX - Oracle 0387078 SAP Software on UNIX: OS Dependencies 4.6C SR2 Απαιτήσεις Συστήματος Ο ακόλουθος εξοπλισμός είναι αρκετός για μια τυπική εγκατάσταση του &sap.r3; System. Για μηχανήματα παραγωγής θα χρειαστείτε φυσικά καλύτερη εκτίμηση των απαιτήσεων σας: Εξάρτημα 4.6B 4.6C Επεξεργαστής 2 x 800MHz &pentium; III 2 x 800MHz &pentium; III Μνήμη 1GB ECC 2GB ECC Σκληρός Δίσκος 50-60GB (IDES) 50-60GB (IDES) Για χρήση σε παραγωγή, θα χρειαστείτε επεξεργαστές &xeon; με μεγάλη μνήμη cache, δίσκους υψηλής ταχύτητας (SCSI, με hardware ελεγκτή RAID), USV και ECC-RAM. Το μεγάλο μέγεθος του σκληρού δίσκου, οφείλεται στο προρυθμισμένο σύστημα IDES, που δημιουργεί 27 GB αρχεία βάσης δεδομένων κατά τη διάρκεια της εγκατάστασης. Ο χώρος αυτός επαρκεί επίσης για τα δεδομένα της εφαρμογής σε ένα αρχικό σύστημα παραγωγής. &sap.r3; 4.6B, &oracle; 8.0.5 Χρησιμοποιήθηκαν τα ακόλουθα κοινά εξαρτήματα: μητρική για δύο επεξεργαστές με 2 &pentium; III στα 800 MHZ, ελεγκτή SCSI &adaptec; 29160 Ultra160 (για πρόσβαση σε οδηγό ταινίας 40/80 GB DLT και στο CDROM), &mylex; &acceleraid; (2 καναλιών, firmware 6.00-1-00 με 32 MB RAM). Στο &mylex; RAID controller είναι συνδεδεμένοι δύο σκληροί δίσκοι των 17 GB (mirrored) και τέσσερις των 36 GB (RAID level 5). &sap.r3; 4.6C, &oracle; 8.1.7 Σε αυτή την εγκατάσταση χρησιμοποιήσαμε έναν &dell; &poweredge; 2500: μητρική με δύο επεξεργαστές &pentium; III στα 1000 MHz (256 kB Cache), 2 GB PC133 ECC SDRAM, PERC/3 DC PCI RAID Controller με 128 MB, και οδηγό EIDE DVD-ROM. Στο RAID controller είναι συνδεδεμένοι δύο σκληροί δίσκοι των 18 GB (mirrored) και τέσσερις των 36 GB (RAID level 5). Εγκατάσταση του &os; Αρχικά πρέπει να εγκαταστήσετε το &os;. Αυτό μπορεί να γίνει με διάφορους τρόπους, για περισσότερες πληροφορίες δείτε στο . Διάταξη Δίσκου Για να κρατήσουμε τη διαδικασία απλή, χρησιμοποιήσαμε την ίδια διάταξη δίσκου, τόσο στο &sap.r3; 46B όσο και στο &sap.r3; 46C SR2. Μόνο τα ονόματα των συσκευών άλλαξαν, καθώς η κάθε εγκατάσταση έγινε σε διαφορετικό μηχάνημα. (/dev/da και /dev/amr αντίστοιχα, οπότε αν χρησιμοποιείτε έναν AMI &megaraid;, θα δείτε το /dev/amr0s1a αντί του /dev/da0s1a): Σύστημα αρχείων Μέγεθος (1k-blocks) Μέγεθος (GB) Προσάρτηση στο /dev/da0s1a 1.016.303 1 / /dev/da0s1b 6 swap /dev/da0s1e 2.032.623 2 /var /dev/da0s1f 8.205.339 8 /usr /dev/da1s1e 45.734.361 45 /compat/linux/oracle /dev/da1s1f 2.032.623 2 /compat/linux/sapmnt /dev/da1s1g 2.032.623 2 /compat/linux/usr/sap Ρυθμίστε από πριν τους δύο δίσκους με το λογισμικό &mylex; ή το PERC/3 RAID. Μπορείτε να εισέλθετε σε αυτό κατά τη φάση εκκίνησης του BIOS. Προσέξτε εδώ ότι η διάταξη του δίσκου διαφέρει λίγο ως προς τη συνιστώμενη από τη &sap;, καθώς η &sap; προτείνει να προσαρτήσετε τους υποκαταλόγους της &oracle; (και κάποιους άλλους) ξεχωριστά — εμείς προτιμήσαμε, για λόγους απλότητας, να δημιουργήσουμε κανονικούς καταλόγους. <command>make world</command> και Νέος Πυρήνας Κατεβάστε τον πηγαίο κώδικα του τελευταίου πυρήνα -STABLE. Μεταγλωττίστε το world (βασικό σύστημα) και τον πυρήνα σας αφού δημιουργήσετε πρώτα ένα προσαρμοσμένο αρχείο ρυθμίσεων πυρήνα. Εδώ θα πρέπει να συμπεριλάβετε και τις παραμέτρους πυρήνα (kernel parameters) οι οποίες χρειάζονται τόσο για το &sap.r3; όσο και την &oracle;. Εγκατάσταση του Περιβάλλοντος Linux Εγκατάσταση του Linux Base System Αρχικά χρειάζεται να έχετε εγκαταστήσει το linux_base port (ως χρήστης root): &prompt.root; cd /usr/ports/emulators/linux_base &prompt.root; make install distclean Εγκατάσταση του Περιβάλλοντος Ανάπτυξης Linux Το περιβάλλον ανάπτυξης Linux χρειάζεται αν θέλετε να εγκαταστήσετε την &oracle; στο &os; όπως περιγράφεται στο : &prompt.root; cd /usr/ports/devel/linux_devtools &prompt.root; make install distclean Εγκαταστήσαμε το περιβάλλον ανάπτυξης Linux μόνο για την εγκατάσταση του &sap.r3; 46B IDES. Αν έχετε εγκαταστήσει την &oracle; DB από την &oracle; για συστήματα Linux, τότε δεν χρειάζεται να σας απασχολεί. Εγκατάσταση των Απαραίτητων RPMs RPMs Για να ξεκινήσει το πρόγραμμα R3SETUP, χρειάζεται να υπάρχει υποστήριξη PAM. Κατά τη διάρκεια της πρώτης εγκατάστασης του &sap; στο &os; 4.3-STABLE, προσπαθήσαμε να εγκαταστήσουμε το PAM με όλα τα απαραίτητα πακέτα και τελικά εξαναγκάσαμε την εγκατάσταση του πακέτου PAM, το οποίο και δούλεψε. Για το &sap.r3; 4.6C SR2 εξαναγκάσαμε άμεσα την εγκατάσταση του πακέτου PAM, το οποίο επίσης δούλεψε, πράγμα που σημαίνει ότι τα πακέτα που αναφέρονται ως εξαρτήσεις του, δεν χρειάζονται: &prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ pam-0.68-7.i386.rpm Για τον intelligent agent του &oracle; 8.0.5, έπρεπε να εγκαταστήσουμε το πακέτο Tcl της RedHat tcl-8.0.5-30.i386.rpm (διαφορετικά η επανασύνδεση κατά τη διάρκεια της εγκατάστασης της &oracle; δεν θα ήταν εφικτή). Υπάρχουν και κάποια άλλα προβλήματα σχετικά με τη επανασύνδεση της &oracle;, αλλά αυτό είναι θέμα της &oracle; για Linux, και όχι του &os;. Επιπλέον Συμβουλές Ίσως είναι επίσης καλή ιδέα να προσθέσετε το linprocfs στο /etc/fstab. Για περισσότερες πληροφορίες, δείτε τη σελίδα manual &man.linprocfs.5;. Μια άλλη παράμετρος που μπορείτε να ορίσετε είναι η kern.fallback_elf_brand=3 η οποία ορίζεται στο αρχείο /etc/sysctl.conf. Δημιουργία του Περιβάλλοντος &sap.r3; Δημιουργία των Απαραιτήτων Συστημάτων Αρχείων και Προσαρτήσεων Για μια απλή εγκατάσταση, αρκεί να δημιουργήσετε τα παρακάτω συστήματα αρχείων και προσαρτήσεις: σημείο προσάρτησης μέγεθος σε GB /compat/linux/oracle 45 GB /compat/linux/sapmnt 2 GB /compat/linux/usr/sap 2 GB Είναι επίσης απαραίτητο να δημιουργήσετε και μερικούς συνδέσμους. Διαφορετικά το πρόγραμμα εγκατάστασης του &sap; θα παραπονεθεί: &prompt.root; ln -s /compat/linux/oracle /oracle &prompt.root; ln -s /compat/linux/sapmnt /sapmnt &prompt.root; ln -s /compat/linux/usr/sap /usr/sap Ένα πιθανό μήνυμα σφάλματος κατά τη διάρκεια της εγκατάστασης (εδώ με System PRD και εγκατάσταση του &sap.r3; 4.6C SR2): INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to /sapmnt/PRD/exe. Creating if it does not exist... WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0 can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content '/sapmnt/PRD/exe' Δημιουργία Χρηστών και Καταλόγων Το &sap.r3; χρειάζεται δύο χρήστες και τρεις ομάδες (groups). Τα ονόματα των χρηστών εξαρτώνται από το &sap; system ID (SID) το οποίο αποτελείται από τρία γράμματα. Μερικά από αυτά τα SIDs είναι δεσμευμένα από το &sap; (για παράδειγμα τα SAP και NIX. Για πλήρη λίστα δείτε την τεκμηρίωση του &sap;). Για την εγκατάσταση IDES, χρησιμοποιήσαμε IDS, για την εγκατάσταση στο σύστημα 4.6C SR2 χρησιμοποιήσαμε PRD, καθώς αυτό το σύστημα προορίζεται για χρήση παραγωγής. Επομένως, χρειαστήκαμε τις ακόλουθες ομάδες (τα ID των ομάδων μπορούν να διαφέρουν, αυτές είναι απλώς οι τιμές που χρησιμοποιήσαμε στη δική μας εγκατάσταση): ID ομάδας όνομα ομάδας περιγραφή 100 dba Data Base Administrator (Διαχειριστής Βάσης Δεδομένων) 101 sapsys &sap; System 102 oper Data Base Operator (Χειριστής Βάσης Δεδομένων) Για τη τυπική εγκατάσταση της &oracle;, θα χρειαστείτε μόνο την ομάδα dba (δείτε τη τεκμηρίωση της &oracle; και του &sap; για περισσότερες πληροφορίες). Θα χρειαστούμε επίσης τους ακόλουθους χρήστες: ID χρήστη όνομα χρήστη γενικό όνομα αρχική ομάδα επιπλέον ομάδες περιγραφή 1000 idsadm/prdadm sidadm sapsys oper &sap; Administrator (Διαχειριστής) 1002 oraids/oraprd orasid dba oper &oracle; Administrator (Διαχειριστής) Η προσθήκη των χρηστών με την εντολή &man.adduser.8; απαιτεί τις ακόλουθες καταχωρήσεις για τον &sap; Administrator (προσέξτε το shell και τον κατάλογο home): Name: sidadm Password: ****** Fullname: SAP Administrator SID Uid: 1000 Gid: 101 (sapsys) Class: Groups: sapsys dba HOME: /home/sidadm Shell: bash (/compat/linux/bin/bash) και για τον &oracle; Administrator: Name: orasid Password: ****** Fullname: Oracle Administrator SID Uid: 1002 Gid: 100 (dba) Class: Groups: dba HOME: /oracle/sid Shell: bash (/compat/linux/bin/bash) Θα πρέπει να περιλάβετε και την ομάδα oper σε περίπτωση που χρησιμοποιήσετε και τις δύο ομάδες dba και oper. Δημιουργία Καταλόγων Οι παρακάτω κατάλογοι δημιουργούνται συνήθως ως ξεχωριστά συστήματα αρχείων. Αυτό όμως εξαρτάται από τις απαιτήσεις σας. Εμείς επιλέξαμε να τους δημιουργήσουμε ως απλούς καταλόγους, καθώς όλοι τους βρίσκονται στο ίδιο RAID 5: Αρχικά θα χρειαστεί να ορίσουμε ιδιοκτήτες και άδειες σε κάποιους καταλόγους (ως χρήστης root): &prompt.root; chmod 775 /oracle &prompt.root; chmod 777 /sapmnt &prompt.root; chown root:dba /oracle &prompt.root; chown sidadm:sapsys /compat/linux/usr/sap &prompt.root; chmod 775 /compat/linux/usr/sap Σε δεύτερη φάση θα δημιουργήσουμε τους καταλόγους ως χρήστης orasid. Όλοι αυτοί οι κατάλογοι υπάγονται στον /oracle/SID: &prompt.root; su - orasid &prompt.root; cd /oracle/SID &prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB &prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 &prompt.root; mkdir saparch sapreorg &prompt.root; exit Για την εγκατάσταση της &oracle; 8.1.7, θα χρειαστούν μερικοί κατάλογοι ακόμη: &prompt.root; su - orasid &prompt.root; cd /oracle &prompt.root; mkdir 805_32 &prompt.root; mkdir client stage &prompt.root; mkdir client/80x_32 &prompt.root; mkdir stage/817_32 &prompt.root; cd /oracle/SID &prompt.root; mkdir 817_32 Ο κατάλογος client/80x_32 χρησιμοποιείται με αυτό ακριβώς το όνομα. Μην αντικαταστήσετε το x με κάποιον αριθμό ή κάτι άλλο. Στο τρίτο βήμα δημιουργούμε τους καταλόγους ως χρήστης sidadm: &prompt.root; su - sidadm &prompt.root; cd /usr/sap &prompt.root; mkdir SID &prompt.root; mkdir trans &prompt.root; exit Εγγραφές στο <filename>/etc/services</filename> Το &sap.r3; χρειάζεται μερικές εγγραφές στο αρχείο /etc/services, οι οποίες δεν εισάγονται κατά τη διάρκεια της εγκατάστασης του &os;. Προσθέστε τις παρακάτω εγγραφές (θα χρειαστείτε τουλάχιστον τις εγγραφές που αντιστοιχούν στο instance της εφαρμογής που τρέχετε — στη περίπτωση μας, το 00. Δεν θα υπάρξει κανένα πρόβλημα αν προσθέσετε όλες τις εγγραφές από το 00 ως το 99 για τα dp, gw, sp και ms). Αν πρόκειται να χρησιμοποιήσετε SAProuter ή χρειάζεστε πρόσβαση στο &sap; OSS, θα χρειαστείτε και την εγγραφή 99, μια και η θύρα 3299 χρησιμοποιείται συχνά από την διεργασία του SAProuter: sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number sapsp00 3400/tcp # 3400 + Instance-Number sapms00 3500/tcp # 3500 + Instance-Number sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number Απαραίτητες Τοπικές Ρυθμίσεις locale Το &sap; απαιτεί τουλάχιστον δύο τοπικές ρυθμίσεις (locales) που δεν ανήκουν στις προεπιλεγμένες που εγκαθιστά το RedHat. Το &sap; προσφέρει τα απαιτούμενα RPMs για να τα κατεβάσετε από τον δικό τους διακομιστή FTP (ο οποίος είναι διαθέσιμος μόνο αν είστε πελάτης με πρόσβαση OSS). Δείτε τη σημείωση 0171356 για τη λίστα από πακέτα RPMs που χρειάζεστε. Είναι επίσης εφικτό να δημιουργήσετε απλώς τους κατάλληλους συνδέσμους (για παράδειγμα από τα de_DE και en_US), αλλά προτείνουμε να μη κάνετε κάτι τέτοιο αν πρόκειται για μηχάνημα παραγωγής (ωστόσο αυτό έχει μέχρι στιγμής δουλέψει χωρίς πρόβλημα σε σύστημα IDES). Θα χρειαστείτε τις ακόλουθες τοπικές ρυθμίσεις: de_DE.ISO-8859-1 en_US.ISO-8859-1 Οι σύνδεσμοι μπορούν να δημιουργηθούν με τον ακόλουθο τρόπο: &prompt.root; cd /compat/linux/usr/share/locale &prompt.root; ln -s de_DE de_DE.ISO-8859-1 &prompt.root; ln -s en_US en_US.ISO-8859-1 Αν οι σύνδεσμοι δεν υπάρχουν, θα δημιουργηθούν προβλήματα κατά την εγκατάσταση. Αν αγνοήσετε αυτά τα προβλήματα, (ορίζοντας το STATUS των προβληματικών βημάτων σε OK στο αρχείο CENTRDB.R3S), ίσως είναι αδύνατο να συνδεθείτε στο &sap; χωρίς κάποια επιπλέον προσπάθεια και σπατάλη χρόνου. Ρύθμιση του Πυρήνα kernel tuning Το &sap.r3; χρειάζεται αρκετούς πόρους από το σύστημά σας. Για αυτό το λόγο ορίσαμε τις παρακάτω παραμέτρους στις ρυθμίσεις του πυρήνα: # Set these for memory pigs (SAP and Oracle): options MAXDSIZ="(1024*1024*1024)" options DFLDSIZ="(1024*1024*1024)" # System V options needed. options SYSVSHM #SYSV-style shared memory options SHMMAXPGS=262144 #max amount of shared mem. pages #options SHMMAXPGS=393216 #use this for the 46C inst.parameters options SHMMNI=256 #max number of shared memory ident if. options SHMSEG=100 #max shared mem.segs per process options SYSVMSG #SYSV-style message queues options MSGSEG=32767 #max num. of mes.segments in system options MSGSSZ=32 #size of msg-seg. MUST be power of 2 options MSGMNB=65535 #max char. per message queue options MSGTQL=2046 #max amount of msgs in system options SYSVSEM #SYSV-style semaphores options SEMMNU=256 #number of semaphore UNDO structures options SEMMNS=1024 #number of semaphores in system options SEMMNI=520 #number of semaphore identifiers options SEMUME=100 #number of UNDO keys Οι ελάχιστες τιμές που θέτουμε προέρχονται από τη τεκμηρίωση του &sap;. Μια και δεν υπάρχουν οδηγίες για Linux, για περισσότερες πληροφορίες, ρίξτε μια ματιά σε αυτές για το HP-UX (32-bit). Μια και το σύστημα για την εγκατάσταση του 4.6C SR2 έχει περισσότερη μνήμη, τα διαμοιραζόμενα τμήματα μπορούν να είναι μεγαλύτερα, τόσο για το &sap; όσο και για την &oracle;. Επομένως, επιλέξτε έναν μεγαλύτερο αριθμό για τα shared memory pages. Με την προεπιλεγμένη εγκατάσταση του &os; σε &i386;, αφήστε τα MAXDSIZ και DFLDSIZ στο 1 GB το πολύ. Διαφορετικά, μπορεί να δείτε να εμφανίζονται περίεργα σφάλματα όπως ORA-27102: out of memory και Linux Error: 12: Cannot allocate memory Εγκατάσταση του &sap.r3; Προετοιμάζοντας τα &sap; CDROMs Στη διαδικασία της εγκατάστασης εμπλέκονται αρκετά CDROMs. Αν έχετε αρκετούς οδηγούς, θα μπορέσετε να τα προσαρτήσετε όλα με μιας στο σύστημα σας. Εμείς αποφασίσαμε να αντιγράψουμε το περιεχόμενο των CDROMs στους αντίστοιχους καταλόγους: /oracle/SID/sapreorg/cd-name όπου cd-name αντιστοιχεί σε ένα από τα KERNEL, RDBMS, EXPORT1, EXPORT2, EXPORT3, EXPORT4, EXPORT5 και EXPORT6 για την εγκατάσταση σε 4.6B/IDES, και KERNEL, RDBMS, DISK1, DISK2, DISK3, DISK4 και LANG για την εγκατάσταση του 4.6C SR2. Όλα τα ονόματα των αρχείων στα προσαρτημένα CDs θα πρέπει να είναι με κεφαλαία, διαφορετικά κάντε χρήση της επιλογής κατά την προσάρτηση. Χρησιμοποιείστε λοιπόν τις παρακάτω εντολές: &prompt.root; mount_cd9660 -g /dev/cd0a /mnt &prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-name &prompt.root; umount /mnt Τρέξτε το Script της Εγκατάστασης Αρχικά πρέπει να προετοιμάσετε τον κατάλογο install: &prompt.root; cd /oracle/SID/sapreorg &prompt.root; mkdir install &prompt.root; cd install Στη συνέχεια ξεκινήστε το script της εγκατάστασης, το οποίο θα αντιγράψει όλα τα σχετικά αρχεία μέσα στον κατάλογο install: &prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH Η εγκατάσταση του IDES (4.6B) έρχεται με ένα πλήρως προσαρμοσμένο σύστημα επίδειξης του &sap.r3;, έτσι υπάρχουν έξι CD EXPORT αντί για τρία. Σε αυτό το σημείο το πρότυπο αρχείο εγκατάστασης CENTRDB.R3S προορίζεται για την εγκατάσταση του βασικού συστήματος (το ίδιο το &r3; και τη βάση δεδομένων), όχι την κεντρική εφαρμογή IDES, έτσι χρειάζεται να αντιγράψετε και το αντίστοιχο CENTRDB.R3S από τον κατάλογο EXPORT1, διαφορετικά το R3SETUP θα ζητήσει μόνο τα τρία EXPORT CDs. Η νεότερη έκδοση &sap; 4.6C SR2 περιέχει τέσσερα EXPORT CD. Το αρχείο το οποίο ελέγχει τα βήματα της εγκατάστασης είναι το CENTRAL.R3S. Σε αντίθεση με τις προηγούμενες εκδόσεις, δεν υπάρχουν διαφορετικές μορφές εγκατάστασης, για κεντρική εγκατάσταση με ή χωρίς βάση δεδομένων. Το &sap; χρησιμοποιεί πλέον μια διαφορετική διαδικασία για την εγκατάσταση της βάσης δεδομένων. Αν θέλετε όμως να επανεκκινήσετε την εγκατάσταση αργότερα, αρκεί να χρησιμοποιήσετε ξανά το αρχικό αρχείο. Τόσο κατά τη διάρκεια όσο και μετά την εγκατάσταση, το &sap; απαιτεί η εντολή hostname να επιστρέφει μόνο το όνομα του συστήματος σας και όχι το πλήρες όνομα (με τον τομέα). Επομένως, είτε ρυθμίστε το όνομα με αυτό τον τρόπο, ή χρησιμοποιήστε κάποιο alias δίνοντας alias hostname='hostname -s' τόσο για τον χρήστη orasid όσο και για τον χρήστη sidadm (και για τον root τουλάχιστον κατά την εγκατάσταση, μιας και όλα τα βήματα γίνονται ωςroot). Είναι επίσης πιθανό να τροποποιήσετε τα αρχεία .profile και .login των δύο χρηστών που δημιουργήθηκαν κατά τη διάρκεια εγκατάστασης του &sap;. Εκκίνηση του <command>R3SETUP</command> 4.6B Βεβαιωθείτε ότι το LD_LIBRARY_PATH έχει οριστεί σωστά: &prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib Ξεκινήστε το R3SETUP ως root από τον κατάλογο εγκατάστασης: &prompt.root; cd /oracle/IDS/sapreorg/install &prompt.root; ./R3SETUP -f CENTRDB.R3S Το script θα σας κάνει μερικές ερωτήσεις (οι προεπιλογές φαίνονται σε αγκύλες,και ακολουθούνται από την τιμή που δόθηκε ως είσοδος): Ερώτηση Προεπιλογή Είσοδος δεδομένων Enter SAP System ID [C11] IDSEnter Enter SAP Instance Number [00] Enter Enter SAPMOUNT Directory [/sapmnt] Enter Enter name of SAP central host [troubadix.domain.de] Enter Enter name of SAP db host [troubadix] Enter Select character set [1] (WE8DEC) Enter Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 1Enter Extract Oracle Client archive [1] (Yes, extract) Enter Enter path to KERNEL CD [/sapcd] /oracle/IDS/sapreorg/KERNEL Enter path to RDBMS CD [/sapcd] /oracle/IDS/sapreorg/RDBMS Enter path to EXPORT1 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT1 Directory to copy EXPORT1 CD [/oracle/IDS/sapreorg/CD4_DIR] Enter Enter path to EXPORT2 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT2 Directory to copy EXPORT2 CD [/oracle/IDS/sapreorg/CD5_DIR] Enter Enter path to EXPORT3 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT3 Directory to copy EXPORT3 CD [/oracle/IDS/sapreorg/CD6_DIR] Enter Enter path to EXPORT4 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT4 Directory to copy EXPORT4 CD [/oracle/IDS/sapreorg/CD7_DIR] Enter Enter path to EXPORT5 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT5 Directory to copy EXPORT5 CD [/oracle/IDS/sapreorg/CD8_DIR] Enter Enter path to EXPORT6 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT6 Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Enter Enter amount of RAM for SAP + DB 850Enter (in Megabytes) Service Entry Message Server [3600] Enter Enter Group-ID of sapsys [101] Enter Enter Group-ID of oper [102] Enter Enter Group-ID of dba [100] Enter Enter User-ID of sidadm [1000] Enter Enter User-ID of orasid [1002] Enter Number of parallel procs [2] Enter Αν δεν έχετε αντιγράψει τα CDs σε διαφορετικούς καταλόγους, τότε το πρόγραμμα εγκατάστασης του &sap; δε θα μπορέσει να βρει τα CD τα οποία χρειάζεται (και τα οποία αναγνωρίζονται από το αρχείο LABEL.ASC που βρίσκεται μέσα σε αυτά) και θα σας ζητηθεί να εισάγετε και προσαρτήσετε τα CD και να επιβεβαιώσετε το σημείο προσάρτησης. Το CENTRDB.R3S μπορεί όμως να παράγει μερικά σφάλματα. Στη περίπτωσή μας, μας ζήτησε ξανά το EXPORT4 CD αλλά μας έδειξε το σωστό κλειδί (6_LOCATION, μετά 7_LOCATION κλπ.), και έτσι μπορείτε να συνεχίσετε βάζοντας τις σωστές τιμές. Εκτός από κάποια προβλήματα που αναφέρονται παρακάτω, η εγκατάσταση θα πρέπει να κυλίσει ομαλά, μέχρι το σημείο που θα χρειαστεί να εγκαταστήσετε τη βάση δεδομένων της &oracle;. Εκκίνηση του <command>R3SETUP</command> 4.6C SR2 Βεβαιωθείτε ότι έχετε ορίσει σωστά το LD_LIBRARY_PATH. Η τιμή της μεταβλητής είναι διαφορετική από την αντίστοιχη της εγκατάστασης του 4.6B με την &oracle; 8.0.5: &prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib Ξεκινήστε το R3SETUP ως root από τον κατάλογο εγκατάστασης: &prompt.root; cd /oracle/PRD/sapreorg/install &prompt.root; ./R3SETUP -f CENTRAL.R3S Tο script θα σας κάνει μερικές ερωτήσεις (οι προεπιλογές φαίνονται σε αγκύλες και ακολουθούνται από την πραγματική είσοδο): Ερώτηση Προεπιλογή Εισαγωγή δεδομένων Enter SAP System ID [C11] PRDEnter Enter SAP Instance Number [00] Enter Enter SAPMOUNT Directory [/sapmnt] Enter Enter name of SAP central host [majestix] Enter Enter Database System ID [PRD] PRDEnter Enter name of SAP db host [majestix] Enter Select character set [1] (WE8DEC) Enter Enter Oracle server version (2) Oracle 8.1.7 2Enter Extract Oracle Client archive [1] (Yes, extract) Enter Enter path to KERNEL CD [/sapcd] /oracle/PRD/sapreorg/KERNEL Enter amount of RAM for SAP + DB 2044 1800Enter (in Megabytes) Service Entry Message Server [3600] Enter Enter Group-ID of sapsys [100] Enter Enter Group-ID of oper [101] Enter Enter Group-ID of dba [102] Enter Enter User-ID of oraprd [1002] Enter Enter User-ID of prdadm [1000] Enter LDAP support 3Enter (no support) Installation step completed [1] (continue) Enter Choose installation service [1] (DB inst,file) Enter Μέχρι στιγμής, η δημιουργία χρηστών εμφανίζει ένα σφάλμα κατά τη διάρκεια της εγκατάστασης, στις φάσεις των OSUSERDBSID_IND_ORA (για τη δημιουργία του χρήστη orasid) και OSUSERSIDADM_IND_ORA (για τη δημιουργία του χρήστη sidadm). Εκτός από μερικά προβλήματα που αναφέρονται παρακάτω, όλα θα πρέπει να κυλήσουν ήρεμα μέχρι την εγκατάσταση της βάσης δεδομένων &oracle;. Εγκατάσταση της &oracle; 8.0.5 Παρακαλούμε, να δείτε τις αντίστοιχες σημειώσεις των &sap; και &oracle; Readme σχετικά με τα προβλήματα που μπορεί να προκύψουν κατά την εγκατάσταση του &oracle; DB στο Linux. Τα περισσότερα, αν όχι όλα, έχουν να κάνουν με ασυμβατότητα βιβλιοθηκών. Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση της &oracle;, δείτε το κεφάλαιο εγκατάστασης της &oracle;. Εγκατάσταση του &oracle; 8.0.5 με το <command>orainst</command> Αν πρόκειται να κάνετε χρήση της &oracle; 8.0.5, θα χρειαστείτε κάποιες επιπλέον βιβλιοθήκες για επιτυχή επανασύνδεση (relinking), καθώς η &oracle; 8.0.5 είναι linked με την παλιά έκδοση του glibc (RedHat 6.0), αλλά ήδη από το RedHat 6.1 χρησιμοποιείται μια νέα έκδοση. Επομένως χρειάζεται να εγκαταστήσετε επιπρόσθετα τα επόμενα πακέτα για να βεβαιωθείτε ότι οι σύνδεσμοι θα δουλέψουν: compat-libs-5.2-2.i386.rpm compat-glibc-5.2-2.0.7.2.i386.rpm compat-egcs-5.2-1.0.3a.1.i386.rpm compat-egcs-c++-5.2-1.0.3a.1.i386.rpm compat-binutils-5.2-2.9.1.0.23.1.i386.rpm Για περισσότερες πληροφορίες δείτε τα αντίστοιχα &sap; Notes ή &oracle; Readme. Αν όμως δεν έχετε αυτή την επιλογή (κατά τη διάρκεια της εγκατάστασης δεν είχαμε αρκετό χρόνο να το ελέγξουμε), μπορείτε να χρησιμοποιήσετε τα αρχικά εκτελέσιμα ή εκτελέσιμα τα οποία έχουν γίνει relink σε ένα κανονικό σύστημα RedHat. Για να μεταγλωττίσετε τον intelligent agent, πρέπει να έχετε εγκατεστημένο το πακέτο RedHat Tcl. Αν δεν μπορείτε να βρείτε το tcl-8.0.3-20.i386.rpm, τότε το νεότερο tcl-8.0.5-30.i386.rpm για RedHat 6.1 θα πρέπει επίσης να δουλέψει. Με εξαίρεση το relinking, η διαδικασία εγκατάστασης είναι σχετικά απλή: &prompt.root; su - oraids &prompt.root; export TERM=xterm &prompt.root; export ORACLE_TERM=xterm &prompt.root; export ORACLE_HOME=/oracle/IDS &prompt.root; cd $ORACLE_HOME/orainst_sap &prompt.root; ./orainst Επιβεβαιώστε όλα τα μηνύματα πατώντας Enter έως ότου το λογισμικό εγκατασταθεί. Δεν θα πρέπει να επιλέξετε όμως το &oracle; On-Line Text Viewer, μιας και δεν είναι διαθέσιμο για Linux. Στην περίπτωση αυτή, η &oracle; προσπαθεί να κάνει relink με το i386-glibc20-linux-gcc αντί του διαθέσιμου gcc, egcs ή i386-redhat-linux-gcc. Λόγω έλλειψης χρόνου, αποφασίσαμε να χρησιμοποιήσουμε τα έτοιμα εκτελέσιμα της έκδοσης &oracle; 8.0.5 PreProduction, μετά από μια αποτυχημένη προσπάθεια να κάνουμε την έκδοση από το RDBMS CD να δουλέψει, και η εύρεση και πρόσβαση στα σωστά RPMs εκείνη τη στιγμή ήταν σκέτος εφιάλτης. Εγκατάσταση του &oracle; 8.0.5 Pre-production Release για Linux (Kernel 2.0.33) Αυτή η εγκατάσταση είναι σχετικά εύκολη. Προσαρτήστε το CD και ξεκινήστε το πρόγραμμα εγκατάστασης. Θα ερωτηθείτε στη συνέχεια για τον αρχικό (home) κατάλογο της &oracle;, όπου και θα αντιγραφούν όλα τα εκτελέσιμα. Ωστόσο δεν διαγράψαμε ότι απέμεινε από τις προηγούμενες απόπειρες μας εγκατάστασης του RDBMS. Στη συνέχεια, η βάση δεδομένων &oracle; θα πρέπει να ξεκινήσει δίχως προβλήματα. Εγκατάσταση &oracle; 8.1.7 για Linux από Συμπιεσμένο Αρχείο Πάρτε το συμπιεσμένο αρχείο oracle81732.tgz το οποίο δημιουργήσατε από τον κατάλογο εγκατάστασης ενός συστήματος Linux, και αποσυμπιέστε το στο /oracle/SID/817_32/. Συνέχεια της Εγκατάστασης του &sap.r3; Αρχικά ελέγξτε τις ρυθμίσεις περιβάλλοντος των χρηστών idsamd (sidadm) και oraids (orasid). Θα πρέπει τώρα να έχουν και οι δύο χρήστες τα αρχεία .profile, .login και .cshrc τα οποία όλα χρησιμοποιούν το hostname. Σε περίπτωση που το όνομα του συστήματος περιλαμβάνει και το domain, αντικαταστήστε το hostname με το hostname -s σε όλα τα αρχεία. Φόρτωση της Βάσης Δεδομένων Στη συνέχεια, ανάλογα με το αν είχατε πριν επιλέξει έξοδο ή όχι, μπορείτε είτε να ξεκινήσετε το R3SETUP από την αρχή, ή να συνεχίσετε την εκτέλεση του. Το R3SETUP θα δημιουργήσει και θα φορτώσει τα αρχικά δεδομένα της βάσης (για 46B IDES, από τα EXPORT1 σε EXPORT6, για 46C από DISK1 σε DISK4) κάνοντας χρήση του R3load. Όταν η φόρτωση της βάσης δεδομένων ολοκληρωθεί (μπορεί να χρειαστούν μερικές ώρες), θα χρειαστεί να ορίσετε μερικούς κωδικούς. Για δοκιμαστικές εγκαταστάσεις, μπορείτε να χρησιμοποιήσετε τους γνωστούς προεπιλεγμένους κωδικούς (αν υπάρχει θέμα ασφάλειας, χρησιμοποιήστε διαφορετικούς!): Ερώτηση Είσοδος δεδομένων Enter Password for sapr3 sapEnter Confirum Password for sapr3 sapEnter Enter Password for sys change_on_installEnter Confirm Password for sys change_on_installEnter Enter Password for system managerEnter Confirm Password for system managerEnter Σε αυτό το σημείο είχαμε μερικά προβλήματα με την εντολή dipgntab κατά την εγκατάσταση του 4.6B. Listener Ξεκινήστε τον &oracle; Listener ως χρήστης orasid με τον ακόλουθο τρόπο: &prompt.user; umask 0; lsnrctl start Αν δε το κάνετε, μπορεί να σας εμφανιστεί το σφάλμα ORA-12546 καθώς στα sockets δεν θα έχουν οριστεί οι κατάλληλες άδειες. Δείτε την Σημείωση 072984 του &sap;. Ανανεώνοντας τους Πίνακες MNLS Αν έχετε σκοπό να εισάγετε γλώσσες εκτός των Latin-1 στο &sap;, θα πρέπει να ανανεώσετε τους πίνακες Multi National Language Support. Ατό περιγράφεται στα &sap; OSS Notes 15023 και 45619. Μπορείτε όμως αν θέλετε να παρακάμψετε αυτό το βήμα κατά την εγκατάσταση του &sap;. Ακόμη και αν δεν χρειάζεστε το MNLS, θα χρειαστεί να ελέγξετε τον πίνακα TCPDB και να τον αρχικοποιήσετε, αν αυτό δεν έχει ήδη γίνει. Δείτε στο &sap; τις σημειώσεις 0015023 και 0045619 για περισσότερες πληροφορίες. Βήματα Μετά την Εγκατάσταση Άδεια χρήσης για το &sap.r3; Θα πρέπει να ζητήσετε ένα Κλειδί Άδειας - License Key - για το &sap.r3;. Το χρειάζεστε, μιας και η προσωρινή άδεια που χρησιμοποιήσατε κατά την εγκατάσταση, έχει ισχύ μόνο για τέσσερις εβδομάδες. Πρέπει πρώτα να αποκτήσετε το hardware key. Συνδεθείτε ως χρήστης idsadm και εκτελέστε το saplicense: &prompt.root; /sapmnt/IDS/exe/saplicense -get Εκτελώντας το saplicense χωρίς παραμέτρους, σας δίνει μια λίστα επιλογών. Όταν λάβετε το κλειδί άδειας, μπορείτε να το εγκαταστήσετε με τον παρακάτω τρόπο: &prompt.root; /sapmnt/IDS/exe/saplicense -install Στη συνέχεια, θα χρειαστεί να εισάγετε τις ακόλουθες τιμές: SAP SYSTEM ID = SID, 3 chars CUSTOMER KEY = hardware key, 11 chars INSTALLATION NO = installation, 10 digits EXPIRATION DATE = yyyymmdd, usually "99991231" LICENSE KEY = license key, 24 chars Δημιουργία Χρηστών Δημιουργήστε έναν νέο χρήστη στο client 000 (για μερικές εργασίες που χρειάζεται να γίνουν μέσα στο client 000, αλλά με χρήστη διαφορετικό από τους sap* και ddic). Ως όνομα χρήστη συνήθως επιλέγουμε το wartungservice στα Αγγλικά). Τα προφίλ που χρειάζονται είναι τα sap_new και sap_all. Για επιπλέον ασφάλεια, οι κωδικοί των προεπιλεγμένων χρηστών σε όλους τους clients θα πρέπει να αλλαχθούν (αυτό περιλαμβάνει και τους χρήστες sap* και ddic). Ρύθμιση των Transport System, Profile, Operation Modes, κλπ. Μέσα στο client 000, χρήστες εκτός των ddic και sap*, μπορούν να κάνουν τουλάχιστον τα ακόλουθα: Εργασία Transaction (Συναλλαγή) Ρύθμιση του Transport System, π.χ. ως Stand-Alone Transport Domain Entity STMS Δημιουργία / τροποποίηση του Profile Συστήματος RZ10 Συντήρηση Operation Modes και Instances RZ04 Αυτό και όλα τα υπόλοιπα βήματα σχετικά με τις ρυθμίσεις μετά την εγκατάσταση περιγράφονται στους οδηγούς εγκατάστασης του &sap;. Τροποποίηση του <filename>init<replaceable>sid</replaceable>.sap</filename> (<filename>initIDS.sap</filename>) Το αρχείο /oracle/IDS/dbs/initIDS.sap περιέχει το αντίγραφο ασφαλείας του προφίλ του &sap;. Εδώ χρειάζεται να ορίσετε το μέγεθος της ταινίας που θα χρησιμοποιηθεί, τον τύπο συμπίεσης και όλα τα σχετικά. Για να μπορέσουμε να το εκτελέσουμε με το sapdba / brbackup, αλλάξαμε τις παρακάτω τιμές: compress = hardware archive_function = copy_delete_save cpio_flags = "-ov --format=newc --block-size=128 --quiet" cpio_in_flags = "-iuv --block-size=128 --quiet" tape_size = 38000M tape_address = /dev/nsa0 tape_address_rew = /dev/sa0 Επεξηγήσεις: compress: Η ταινία που χρησιμοποιούμε είναι μία HP DLT1 η οποία παρέχει συμπίεση μέσω υλικού. archive_function: Αυτό ορίζει τον προεπιλεγμένο τρόπο με τον οποίο θα αποθηκεύονται τα αρχειοθετημένα logs της &oracle;: τα νέα logs αποθηκεύονται στην ταινία, τα ήδη αποθηκευμένα αποθηκεύονται ξανά και στη συνέχεια διαγράφονται. Αυτό σας σώζει από τη ταλαιπωρία αν χρειαστεί να ανακτήσετε τη βάση δεδομένων σε περίπτωση που μια από τις ταινίες έχει πρόβλημα. cpio_flags: Προεπιλεγμένη είναι η χρήση του το οποίο ορίζει το μέγεθος κάθε block στα 5120 Bytes. Για ταινίες DLT, η HP προτείνει το λιγότερο 32 K μέγεθος block, οπότε κι εμείς δώσαμε για 64 K. Το χρειάζεται διότι έχουμε inode με αρίθμηση μεγαλύτερη από 65535. Η τελευταία παράμετρος χρειάζεται γιατί διαφορετικά το brbackup θα παραπονεθεί με που το cpio εμφανίσει τον αριθμό των blocks που έχουν αποθηκευτεί. cpio_in_flags: Τα Flags χρειάζονται προκειμένου να φορτωθούν τα δεδομένα από τη ταινία. Η μορφή ανιχνεύεται αυτόματα. tape_size: Η παράμερος αυτή δίνει χοντρικά το μέγεθος χωρητικότητας της ταινίας. Για λόγους ασφάλειας (χρησιμοποιούμε hardware συμπίεση), η τιμή της παραμέτρου είναι λίγο μικρότερη από το πραγματικό μέγεθος. tape_address: Το όνομα συσκευής (χωρίς δυνατότητα επανατύλιξης της ταινίας) που θα χρησιμοποιηθεί με το cpio. tape_address_rew: Το όνομα συσκευής (με δυνατότητα επανατύλιξης της ταινίας) που θα χρησιμοποιηθεί με το cpio. Ρυθμίσεις Μετά την Εγκατάσταση Οι ακόλουθοι παράμετροι του &sap; θα πρέπει να ρυθμιστούν μετά την εγκατάσταση (παραδείγματα για IDES 46B, και μνήμη 1 GB): Όνομα Τιμή ztta/roll_extension 250000000 abap/heap_area_dia 300000000 abap/heap_area_nondia 400000000 em/initial_size_MB 256 em/blocksize_kB 1024 ipc/shm_psize_40 70000000 &sap; Σημείωση 0013026: Όνομα Τιμή ztta/dynpro_area 2500000 &sap; Σημείωση 0157246: Όνομα Τιμή rdisp/ROLL_MAXFS 16000 rdisp/PG_MAXFS 30000 Με τις παραπάνω παραμέτρους σε ένα σύστημα με 1 gigabyte μνήμης, μπορεί να δείτε κάτι σαν το παρακάτω όσο αφορά την κατανάλωση μνήμης: Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free Προβλήματα κατά την Εγκατάσταση Επανεκκίνηση του <command>R3SETUP</command> μετά τη Διόρθωση Προβλήματος Το R3SETUP θα σταματήσει αν αντιληφθεί κάποιο σφάλμα. Αν κοιτάξετε καλά τα logfiles και διορθώσετε το σφάλμα, θα πρέπει να ξεκινήσετε το R3SETUP από την αρχή, συνήθως επιλέγοντας REPEAT στο τελευταίο βήμα για το οποίο παραπονέθηκε το R3SEΤUP. Για να επανεκκινήσετε το R3SETUP, απλώς δώστε τη παρακάτω εντολή με το αντίστοιχο αρχείο R3S: &prompt.root; ./R3SETUP -f CENTRDB.R3S για την έκδοση 4.6B, ή την εντολή &prompt.root; ./R3SETUP -f CENTRAL.R3S για την έκδοση 4.6C, χωρίς να έχει σημασία αν το σφάλμα προκλήθηκε από το CENTRAL.R3S ή το DATABASE.R3S. Σε κάποια στάδια, το R3SETUP υποθέτει ότι τόσο η βάση δεδομένων όσο και το &sap; έχουν ξεκινήσει και εκτελούνται κανονικά (καθώς πρόκειται για βήματα που έχουν ήδη ολοκληρωθεί). Αν προκύψουν λάθη, και για παράδειγμα δεν μπόρεσε να ξεκινήσει η βάση, ξεκινήστε τη βάση και το &sap; με το χέρι, αφού διορθώσετε τα λάθη και πριν εκτελέσετε ξανά το R3SETUP. Μη ξεχάσετε επίσης να εκκινήσετε το &oracle; listener (εκτελέστε το ως χρήστης orasid με umask 0; lsnrctl start) αν είχε διακοπεί και αυτό (για παράδειγμα σε μια αναγκαία επανεκκίνηση του συστήματος). OSUSERSIDADM_IND_ORA κατά το <command>R3SETUP</command> Αν το R3SETUP παραπονιέται σε αυτό το σημείο, τροποποιήστε το πρότυπο αρχείο του R3SETUP που χρησιμοποιείται εκείνη τη στιγμή (το CENTRDB.R3S (4.6B) ή κάποιο από τα CENTRAL.R3S ή το DATABASE.R3S (4.6C)). Βρείτε το [OSUSERSIDADM_IND_ORA] ή ψάξτε μέσα στο αρχείο για τη μοναδική εγγραφή STATUS=ERROR και προσθέστε τα παρακάτω: HOME=/home/sidadm (was empty) STATUS=OK (had status ERROR) Στη συνέχεια μπορείτε να ξεκινήσετε και πάλι το R3SETUP. OSUSERDBSID_IND_ORA κατά το <command>R3SETUP</command> Πιθανό είναι να υπάρχει πρόβλημα και σε αυτό το βήμα με το R3SETUP. Το πρόβλημα εδώ είναι παρόμοιο με το προηγούμενο, του OSUSERSIDADM_IND_ORA. Απλά τροποποιήστε το αρχείο προτύπου που χρησιμοποιείτε με το R3SETUP (CENTRDB.R3S (4.6B) ή κάποιο από τα CENTRAL.R3S ή DATABASE.R3S (4.6C)). Βρείτε το [OSUSERDBSID_IND_ORA] ή ψάξτε μέσα στο αρχείο για την μοναδική εγγραφή STATUS=ERROR και προσθέστε τα παρακάτω: STATUS=OK Τώρα τρέξτε ξανά το R3SETUP. <errorname>oraview.vrf FILE NOT FOUND</errorname> κατά τη διάρκεια Εγκατάστασης της &oracle; Το σφάλμα αυτό σημαίνει ότι έχετε επιλέξει το &oracle; On-Line Text Viewer πριν ξεκινήσετε την εγκατάσταση. Η επιλογή αυτή είναι προεπιλεγμένη, παρ' όλο που δεν είναι διαθέσιμη στο Linux. Αφαιρέστε λοιπόν αυτή την επιλογή από το μενού εγκατάστασης και ξεκινήστε ξανά. <errorname>TEXTENV_INVALID</errorname> κατά την Εκτέλεση <command>R3SETUP</command>, του RFC ή του SAPgui Αν βρεθείτε αντιμέτωποι με αυτό το σφάλμα, τότε δεν έχετε τις σωστές τοπικές ρυθμίσεις. Η σημείωση 0171356 του &sap; αναφέρει όλα τα RPMs που χρειάζονται να εγκατασταθούν (π.χ. saplocales-1.0-3, saposcheck-1.0-1 για RedHat 6.1). Στην περίπτωση που αγνοήσατε όλα τα σχετικά λάθη, και αν ακόμη έχετε ορίσει το STATUS από ERROR σε OK (στο CENTRDB.R3S) κάθε φορά που παραπονιόταν το R3SETUP και απλώς το ξεκινούσατε από την αρχή, το &sap; δεν θα ρυθμιστεί σωστά και δεν θα μπορείτε να συνδεθείτε στο σύστημα μέσω του SAPgui, ακόμη και αν το σύστημα σας έχει ξεκινήσει. Προσπαθώντας να συνδεθούμε με το παλιό SAPgui Linux, εμφανίστηκε το παρακάτω σφάλμα: Sat May 5 14:23:14 2001 *** ERROR => no valid userarea given [trgmsgo. 0401] Sat May 5 14:23:22 2001 *** ERROR => ERROR NR 24 occured [trgmsgi. 0410] *** ERROR => Error when generating text environment. [trgmsgi. 0435] *** ERROR => function failed [trgmsgi. 0447] *** ERROR => no socket operation allowed [trxio.c 3363] Speicherzugriffsfehler Η συμπεριφορά αυτή οφείλεται στο ότι το &sap.r3; δεν μπορεί να ορίσει σωστά τις τοπικές ρυθμίσεις και δεν μπορεί στη συνέχεια να ρυθμίσει τον εαυτό του (ελλειπή δεδομένα στη βάση δεδομένων). Για να μπορέσετε να συνδεθείτε προσθέστε τις παρακάτω καταχωρήσεις στο DEFAULT.PFL (δείτε Σημείωση 0043288): abap/set_etct_env_at_new_mode = 0 install/collate/active = 0 rscp/TCP0B = TCP0B Ξεκινήστε ξανά το &sap;. Τώρα μπορείτε να συνδεθείτε ακόμη και αν οι ρυθμίσεις χώρας και γλώσσας δε δουλεύουν όπως θα έπρεπε. Αφού διορθώσετε τις ρυθμίσεις της χώρας (και ορίσετε τις σωστές τοπικές ρυθμίσεις), μπορείτε να αφαιρέσετε τα παραπάνω από το DEFAULT.PFL και να εκτελέσετε το &sap; από την αρχή. <errorcode>ORA-00001</errorcode> Το σφάλμα αυτό το συναντήσαμε μόνο με το &oracle; 8.1.7 στο &os;. Ο λόγος ήταν ότι η βάση &oracle; δεν μπορούσε να ορίσει τις σωστές παραμέτρους για την εκκίνησή της με αποτέλεσμα να κολλάει, αφήνοντας σηματοφορείς και κοινόχρηστη μνήμη στο σύστημα. Η επόμενη προσπάθεια να ξεκινήσουμε τη βάση δεδομένων μας εμφάνισε το σφάλμα ORA-00001. Βρείτε τους με την εντολή ipcs -a και αφαιρέστε τους με την ipcrm. <errorcode>ORA-00445</errorcode> (Background Process PMON Did Not Start) Το σφάλμα αυτό μπορεί να εμφανιστεί με το &oracle; 8.1.7 όταν η βάση δεδομένων έχει εκκινηθεί με το script startsap (για παράδειγμα startsap_majestix_00) και σαν χρήστης prdadm. Μια πιθανή λύση είναι να ξεκινήσετε τη βάση ως χρήστης oraprd και μέσω του svrmgrl: &prompt.user; svrmgrl SVRMGR> connect internal; SVRMGR> startup; SVRMGR> exit <errorcode>ORA-12546</errorcode> (Ξεκινήστε τον Listener με τις Σωστές Άδειες) Ξεκινήστε τον &oracle; listener ως χρήστης oraids, με τις ακόλουθες εντολές: &prompt.root; umask 0; lsnrctl start Διαφορετικά μπορεί να εμφανιστεί το σφάλμα ORA-12546 που σημαίνει ότι τα sockets δεν έχουν σωστές άδειες. Δείτε τη σημείωση 0072984 του &sap;. <errorcode>ORA-27102</errorcode> (Έλλειψη μνήμης) Το πρόβλημα αυτό παρουσιάστηκε όταν χρησιμοποιήσαμε τιμές μεγαλύτερες του 1 GB (1024X1024X1024) στις μεταβλητές MAXDSIZ και DFLDSIZ. Επιπλέον, μας εμφανίστηκε το σφάλμα Linux Error 12: Cannot allocate memory. [DIPGNTAB_IND_IND] κατά την Εκτέλεση του <command>R3SETUP</command> Σε γενικές γραμμές, δείτε τη σημείωση 0130581 του &sap; (R3SETUP step DIPGNTAB terminates). Κατά την εγκατάσταση IDES, για κάποιο λόγο η διαδικασία εγκατάστασης δε χρησιμοποιούσε το σωστό όνομα συστήματος του &sap; IDS, αλλά το κενό "". Αυτό οδηγεί σε κάποια μικρά προβλήματα με τη πρόσβαση στους καταλόγους μια και τα μονοπάτια δημιουργούνται δυναμικά με τη χρήση του SID (στη περίπτωσή μας IDS). Πράγμα που σημαίνει ότι αντί να γίνει η πρόσβαση στο: /usr/sap/IDS/SYS/... /usr/sap/IDS/DVMGS00 θα προσπαθήσει να γίνει στο: /usr/sap//SYS/... /usr/sap/D00 Για να συνεχίσουμε με την εγκατάσταση, δημιουργήσαμε έναν σύνδεσμο και έναν επιπλέον κατάλογο: &prompt.root; pwd /compat/linux/usr/sap &prompt.root; ls -l total 4 drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00 drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans Το πρόβλημα αυτό το είδαμε επίσης στις σημειώσεις 0029227 και 0008401 του &sap;. Δεν αντιμετωπίσαμε όμως κανένα από αυτά τα προβλήματα με την εγκατάσταση του &sap; 4.6C. [RFCRSWBOINI_IND_IND] κατά την Εκτέλεση του <command>R3SETUP</command> Το σφάλμα αυτό εμφανίστηκε κατά την εγκατάσταση του &sap; 4.6C, και ήταν το αποτέλεσμα ενός άλλου σφάλματος που προέκυψε νωρίτερα στην εγκατάσταση. Σε τέτοιες περιπτώσεις θα πρέπει να δείτε τα αντίστοιχα logfiles και να διορθώσετε το αρχικό πρόβλημα. Αν αφού ελέγξετε τα logfiles διαπιστώσετε ότι το σφάλμα είναι πράγματι αυτό (κοιτάξτε τις σημειώσεις του &sap;), μπορείτε να ορίσετε το STATUS σε αυτό το βήμα από ERROR σε OK (στο αρχείο CENTRDB.R3S) και να εκτελέσετε ξανά το R3SETUP. Μετά την εγκατάσταση, πρέπει να εκτελέσετε το RSWBOINS από τη συναλλαγή SE38. Δείτε τη σημείωση 0162266 του &sap; για τα RFCRSWBOINI και RFCRADDBDIF. [RFCRADDBDIF_IND_IND] κατά την Εκτέλεση <command>R3SETUP</command> Όπως και πριν, και εδώ ισχύει η ίδια λογική: σιγουρευτείτε ποιο είναι το πρωταρχικό σφάλμα κοιτάζοντας τα logfiles. Αν επιβεβαιώσετε ότι η σημείωση του &sap; 0162266 ανταποκρίνεται στο πρόβλημά σας, απλά ορίστε το STATUS σε αυτό το βήμα από ERROR σε OK (στο αρχείο CENTRDB.R3S) και τρέξτε πάλι το R3SETUP. Μετά την εγκατάσταση, πρέπει να εκτελέσετε το RADDBDIF από τη συναλλαγή SE38. <errorcode>sigaction sig31: File size limit exceeded</errorcode> Το σφάλμα αυτό μπορεί να εμφανιστεί κατά την εκκίνηση των διεργασιών του &sap; disp+work. Αν ξεκινήσετε το &sap; με το script startsap, οι υποδιεργασίες θα αρχίσουν μόνες τους, ξεκινώντας τις υπόλοιπες διεργασίες που απαιτούνται από το &sap;. Αυτό έχει ως αποτέλεσμα το ίδιο το script να μην γνωρίζει αν κάτι πήγε στραβά. Για να ελέγξετε αν όντως ξεκίνησαν σωστά οι διεργασίες του &sap;, ρίξτε μια ματιά στη λίστα διεργασιών με την εντολή ps ax | grep SID, η οποία θα σας επιστρέψει μιας λίστα με όλες τις διεργασίες από τα &oracle; και &sap;. Αν φαίνεται σαν να λείπουν μερικές διεργασίες, ή αν δεν μπορείτε να συνδεθείτε στο &sap;, κοιτάξτε τα αντίστοιχα logfiles τα οποία μπορούν να βρεθούν στον κατάλογο /usr/sap/SID/DVEBMGSnr/work/. Τα αρχεία που πρέπει να κοιτάξετε είναι τα dev_ms και dev_disp. Το Signal 31 θα εμφανιστεί αν η ποσότητα της κοινής μνήμης που χρησιμοποιείται από τα &oracle; και &sap; ξεπεράσει το μέγεθος που έχει ήδη οριστεί κατά τη ρύθμιση του πυρήνα. Με το να ορίσετε μια μεγαλύτερη τιμή θα μπορέσετε να προσπεράσετε το πρόβλημα αυτό: # μεγαλύτερη μνήμη για συστήματα παραγωγής 46C: options SHMMAXPGS=393216 # μικρότερη μνήμη για συστήματα 46B: #options SHMMAXPGS=262144 Ανεπιτυχής Εκκίνηση του <command>saposcol</command> Υπάρχουν επίσης μερικά προβλήματα με το πρόγραμμα saposcol (έκδοση 4.6D). Το &sap; χρησιμοποιεί το saposcol για να συλλέξει δεδομένα σχετικά με τις επιδόσεις του συστήματος. Το πρόγραμμα αυτό δεν το χρειάζεστε για να εκτελέσετε το &sap;, οπότε μπορεί να θεωρηθεί ως μικρότερη σημασίας. Παλαιότερες εκδόσεις (4.6B) δουλεύουν, αλλά δε συλλέγουν όλα τα δεδομένα (πολλές κλήσεις επιστρέφουν 0, για παράδειγμα η χρήση της CPU). Προχωρημένα Θέματα Αν έχετε την απορία πως λειτουργεί η συμβατότητα με εφαρμογές Linux, τότε θα πρέπει να διαβάσετε τη παρακάτω ενότητα. Τα περισσότερα από όσα έχουν γραφτεί είναι βασισμένα στην &a.chat; και έχουν γραφτεί από τον Terry Lambert tlambert@primenet.com (Message ID: <199906020108.SAA07001@usr09.primenet.com>). Πως Λειτουργεί; execution class loader Το &os; περιέχει ένα επίπεδο αφαίρεσης (abstraction) που ονομάζεται execution class loader. Αυτό βασίζεται στο &man.execve.2;. Αυτό που συμβαίνει είναι ότι το &os; έχει μια λίστα φορτωτών (loaders), αντί για ένα που να καταφεύγει σε περίπτωση αποτυχίας στο #! για να τρέξει κάποιο shell interpreter ή shell script. Ιστορικά, ο μόνος φορτωτής στη πλατφόρμα του &unix; έλεγχε τον μαγικό αριθμό (γενικά τα πρώτα 4 ή 8 bytes του αρχείου) για να δει αν είναι κάποιο εκτελέσιμο / εφαρμογή γνωστό στο σύστημα, και στην περίπτωση αυτή να καλέσει τον αντίστοιχο φορτωτή. Αν το αρχείο δεν ήταν εκτελέσιμο με βάση τον τύπο του συστήματος, η κλήση στο &man.execve.2; επέστρεφε κάποιο σφάλμα, και το shell προσπαθούσε να εκτελέσει το αρχείο σαν shell script. Η γενική ιδέα ήταν αν δεν είναι εκτελέσιμο, προσπάθησε να το τρέξεις ως shell script με βάση το τρέχον shell . Αργότερα, βρέθηκε ένας έξυπνος τρόπος ώστε το &man.sh.1; να ελέγχει τους πρώτους δύο χαρακτήρες, και αν ήταν :\n, τότε καλούσε το shell &man.csh.1; (πιστεύουμε πως η λύση αυτή βρέθηκε αρχικά από τη SCO). Αυτό που κάνει τώρα το &os; είναι να διατρέχει τη λίστα με όλους τους φορτωτές, με ένα γενικό φορτωτή #! ο οποίος αναγνωρίζει ως διερμηνέα (interpreter) τους χαρακτήρες από το επόμενο κενό μετά το ! και μέχρι το τέλος, ενώ αν δεν αναγνωριστεί κάποιος, χρησιμοποιείται ως έσχατη λύση το /bin/sh. ELF Για την υποστήριξη του Linux ABI, το &os; βλέπει τον μαγικό αριθμό του ELF binary (δε αναγνωρίζει τη διαφορά ανάμεσα σε &os;, &solaris;, Linux, ή κάποιο άλλο λειτουργικό σύστημα το οποίο χρησιμοποιεί αρχεία τύπου ELF). Solaris Ο φορτωτής ELF κοιτάει για ένα ειδικό brand, το οποίο είναι μια ενότητα σχολίων μέσα στο ELF image, και το οποίο δεν υπάρχει σε ELF binaries για SVR4/&solaris; Για να λειτουργήσουν τα εκτελέσιμα του Linux, θα πρέπει να γίνουν branded (μαρκαριστούν) ως Linux μέσω της &man.brandelf.1;: &prompt.root; brandelf -t Linux file Όταν γίνει αυτό, ο φορτωτής ELF θα βλέπει το Linux brand πάνω στο αρχείο. ELF branding Όταν ο φορτωτής ELF δει το Linux brand, θα αντικαταστήσει έναν δείκτη μέσα στη δομή proc. Όλες οι κλήσεις του συστήματος ταξινομούνται μέσα από αυτόν τον δείκτη (σε ένα παραδοσιακό σύστημα &unix;, ο δείκτης θα ήταν ο πίνακας sysent[], που περιέχει τις κλήσεις του συστήματος (system calls)). Επιπλέον, η διεργασία σημειώνεται για ειδική μεταχείριση του trap vector και άλλες (μικρές) διορθώσεις, τις οποίες χειρίζεται το άρθρωμα πυρήνα της συμβατότητας Linux. Το system call vector του Linux περιέχει, μεταξύ άλλων, μια λίστα με τα δεδομένα του sysent[] των οποίων οι διευθύνσεις βρίσκονται μέσα στο άρθρωμα του πυρήνα. Όταν γίνεται μια κλήση συστήματος από μια εφαρμογή Linux, ο κώδικας (trap code) τροποποιεί τον δείκτη της μέσω της δομής που έχει εγγραφεί στο proc, και αλλάζει την διεύθυνση ώστε να δείχνει στο σημείο εισόδου της συνάρτησης του Linux, και όχι του &os;. Επίσης, το σύστημα συμβατότητας με Linux μπορεί και προσαρμόζει δυναμικά τις τοποθεσίες αναζήτησης. Ουσιαστικά αυτό κάνει και η επιλογή κατά την προσάρτηση ενός συστήματος αρχείων (δεν εννοούμε εδώ το σύστημα αρχείων unionfs!). Αρχικά, γίνεται απόπειρα να βρεθεί το αρχείο στον κατάλογο /compat/linux/original-path, και μόνο αν αυτό αποτύχει, θα γίνει αναζήτηση στον κατάλογο /original-path. Με τον τρόπο αυτό σιγουρεύουμε ότι τα εκτελέσιμα που χρειάζονται άλλα εκτελέσιμα θα τρέξουν (για παράδειγμα, το σύνολο εργαλείων του Linux μπορεί να εκτελεστεί μέσω της υποστήριξης του Linux ABI). Επίσης σημαίνει ότι τα εκτελέσιμα του Linux μπορούν να φορτώσουν και να εκτελέσουν αρχεία του &os; αν δεν μπορούν να εντοπίσουν τα αντίστοιχα αρχεία στο Linux. Μπορείτε επίσης να τοποθετήσετε μια εντολή &man.uname.1; μέσα στο /compat/linux προκειμένου τα αρχεία του Linux να μη μπορούν να αναγνωρίσουν ότι δεν χρησιμοποιούνται πραγματικά σε Linux. Ουσιαστικά, υπάρχει ένας πυρήνας Linux μέσα στον πυρήνα του &os;. Οι διάφορες λειτουργίες οι οποίες υλοποιούν όλες τις υπηρεσίες που παρέχονται από τον πυρήνα είναι ίδιες τόσο στον πίνακα κλήσεων συστήματος του &os; όσο και στον αντίστοιχο του Linux: λειτουργίες του συστήματος αρχείων, εικονική μνήμη, διαχείριση σημάτων, System V IPC κλπ. Η μόνη διαφορά είναι ότι το εκτελέσιμα του &os; κάνουν χρήση των συναρτήσεων glue του &os;, ενώ τα εκτελέσιμα του Linux, κάνουν χρήση των συναρτήσεων glue του Linux (πολλά από τα παλιά λειτουργικά είχαν τις δικές τους συναρτήσεις glue: οι διευθύνσεις των συναρτήσεων βρίσκονταν στο στατικό πίνακα sysent[], αντί να διευκρινίζονται μέσω ενός δυναμικού δείκτη στη δομή proc της διεργασίας που πραγματοποιεί την κλήση). Ποιο είναι όμως το εγγενές &os; ABI; Δεν έχει και πολύ σημασία. Η μόνη βασική διαφορά είναι (κάτι το οποίο μπορεί εύκολα να αλλάξει σε μελλοντικές εκδόσεις, και πολύ πιθανόν να αλλάξει) ότι οι συναρτήσεις glue του &os; είναι στατικά συνδεδεμένες στο πυρήνα, ενώ οι αντίστοιχες του Linux μπορούν είτε να είναι συνδεδεμένες στατικά, είτε να είναι προσβάσιμες μέσω ενός αρθρώματος πυρήνα. Είναι αυτό όμως πραγματική εξομοίωση; Όχι. Είναι μια υλοποίηση του ABI, όχι εξομοίωση. Δεν υπάρχει καμία εξομοίωση (ή προσομοίωση, για να προλάβουμε την επόμενη σας ερώτηση). Τότε γιατί μερικές φορές μιλάμε για εξομοίωση Linux; Για να δυσκολευτεί η προώθηση του &os;! Η αρχική υλοποίηση έγινε την εποχή όπου δεν υπήρχε άλλη λέξη που να μπορούσε να περιγράψει το τι ακριβώς γινόταν. Το να λέγαμε ότι το &os; έτρεχε εκτελέσιμα Linux δεν θα ήταν αλήθεια, μια και χρειαζόταν να ενσωματωθεί κάποιος κώδικας στον πυρήνα, ή να φορτωθεί κάποιο άρθρωμα. Χρειαζόταν κάποια λέξη που να περιγράφει τι φορτωνόταν—έτσι προέκυψε ο εξομοιωτής Linux.
diff --git a/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml b/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml index 21a3e61eec..23c1f49a62 100644 --- a/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml @@ -1,1866 +1,1867 @@ Ross Lippert Επεξεργασία από τον Πολυμέσα Σύνοψη Το &os; υποστηρίζει μεγάλη ποικιλία από κάρτες ήχου, επιτρέποντας σας έτσι να απολαύσετε υψηλής πιστότητας ήχο από τον υπολογιστή σας. Περιλαμβάνεται η δυνατότητα να εγγράψετε και να αναπαράγετε ήχο MPEG Audio Layer 3 (MP3), WAV, και Ogg Vorbis καθώς και πολλά άλλα formats. Το &os; Ports Collection επίσης περιέχει εφαρμογές που σας επιτρέπουν να επεξεργαστείτε τον ηχογραφημένο σας ήχο, να προσθέσετε ηχητικά εφέ, και να ελέγξετε συσκευές MIDI. Με λίγο πειραματισμό, το &os; μπορεί να υποστηρίξει αναπαραγωγή αρχείων video και DVD. Ο αριθμός των εφαρμογών που κωδικοποιούν, μετατρέπουν, και αναπαράγουν διάφορους τύπους video είναι πιο περιορισμένος από τον αριθμό των εφαρμογών ήχου. Για παράδειγμα, όταν γράφηκε αυτό το κείμενο, δεν υπήρχε καμιά καλή εφαρμογή επανακωδικοποίησης στη συλλογή των Ports του &os;, που θα μπορούσε να χρησιμοποιηθεί για μετατροπή μεταξύ formats, όπως το audio/sox. Παρ' όλα αυτά, το τοπίο σε αυτό τον τομέα, και όσο αφορά το λογισμικό, αλλάζει ραγδαία. Το κεφάλαιο αυτό θα περιγράψει τα απαραίτητα βήματα για τη ρύθμιση της κάρτας ήχου σας. Η ρύθμιση και εγκατάσταση του X11 () έχει ήδη φροντίσει για τα πιθανά προβλήματα υλικού της κάρτας γραφικών σας, αν και μπορεί να χρειάζεται να εφαρμόσετε κάποιες ακόμα μικρορυθμίσεις για καλύτερη αναπαραγωγή. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Πως να ρυθμίσετε το σύστημα σας ώστε να αναγνωρίζεται η κάρτα ήχου σας. Μεθόδους για να ελέγξετε τη λειτουργία της κάρτας σας. Πως να επιλύσετε προβλήματα σχετικά με τις ρυθμίσεις ήχου. Πως να αναπαράγετε και να κωδικοποιήσετε MP3 και άλλους τύπους αρχείων ήχου. Πως υποστηρίζεται το video από τον X server. Κάποια ports αναπαραγωγής/κωδικοποίησης video που δίνουν καλά αποτελέσματα. Πως να αναπαράγετε DVD, και αρχεία .mpg και .avi. Πως να κάνετε rip το περιεχόμενο CD και DVD σε αρχεία. Πως να ρυθμίσετε μια κάρτα τηλεόρασης. Πως να ρυθμίσετε ένα σαρωτή εικόνων. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να ξέρετε πως θα ρυθμίσετε και θα εγκαταστήσετε νέο πυρήνα (). Αν προσπαθήσετε να προσαρτήσετε μουσικά CD με την εντολή &man.mount.8; θα προκληθεί κατ' ελάχιστον σφάλμα, ή στη χειρότερη περίπτωση kernel panic. Τέτοια μέσα έχουν εξειδικευμένες κωδικοποιήσεις που διαφέρουν από το συνηθισμένο σύστημα αρχείων ISO. Moses Moore Συνεισφορά από τον Marc Fonvieille Βελτιώθηκε για το &os; 5.X από τον Ρύθμιση της Κάρτας Ήχου Ρυθμίζοντας το Σύστημα PCI ISA sound cards Πριν ξεκινήσετε, θα πρέπει να ξέρετε το μοντέλο της κάρτας που έχετε, το ολοκληρωμένο κύκλωμα που χρησιμοποιεί, καθώς και αν είναι PCI ή ISA. Το &os; υποστηρίζει μεγάλη ποικιλία καρτών ήχου, τόσο PCI όσο και ISA. Ελέγξτε τις υποστηριζόμενες συσκευές ήχου στις Σημειώσεις Υλικού για να δείτε αν η κάρτα σας υποστηρίζεται. Στις Σημειώσεις Υλικού αναφέρεται επίσης ποιο πρόγραμμα οδήγησης υποστηρίζει την κάρτα σας. kernel configuration Για να χρησιμοποιήσετε την συσκευή ήχου που διαθέτετε, θα πρέπει να φορτώσετε τον κατάλληλο οδηγό συσκευής. Αυτό μπορεί να επιτευχθεί με δύο τρόπους. Ο ευκολότερος είναι απλώς να φορτώσετε ένα module (άρθρωμα) για την κάρτα ήχου στον πυρήνα, χρησιμοποιώντας την εντολή &man.kldload.8;, με τη βοήθεια της γραμμής εντολών: &prompt.root; kldload snd_emu10k1 ή προσθέτοντας την κατάλληλη γραμμή στο αρχείο /boot/loader.conf όπως παρακάτω: snd_emu10k1_load="YES" Τα παραπάνω παραδείγματα είναι για μια κάρτα ήχου Creative &soundblaster; Live!. Υπάρχουν διαθέσιμα και άλλα modules για κάρτες ήχου και μπορείτε να τα δείτε στο αρχείο /boot/defaults/loader.conf. Αν δεν είστε σίγουρος για το πρόγραμμα οδήγησης που πρέπει να χρησιμοποιήσετε, μπορείτε να προσπαθήσετε να φορτώσετε το module snd_driver: &prompt.root; kldload snd_driver Πρόκειται για ένα μετα-πρόγραμμα οδήγησης, το οποίο φορτώνει με μιας όλα τα κοινά προγράμματα οδήγησης για κάρτες ήχου. Με τον τρόπο αυτό μπορείτε να επιταχύνετε την ανίχνευση για το σωστό οδηγό. Μπορείτε επίσης να φορτώσετε όλα τα προγράμματα οδήγησης μέσω του αρχείου /boot/loader.conf. Αν επιθυμείτε να βρείτε το επιλεγμένο πρόγραμμα οδήγησης της κάρτας σας μετά τη φόρτωση του snd_driver, μπορείτε να ελέγξετε το αρχείο /dev/sndstat με την βοήθεια της εντολής cat /dev/sndstat. Μια δεύτερη μέθοδος είναι να μεταγλωττίσετε την υποστήριξη της κάρτας ήχου σας, στατικά, απευθείας στον πυρήνα. Το παρακάτω τμήμα παρέχει τις πληροφορίες που χρειάζεστε για να προσθέσετε υποστήριξη για το υλικό σας με αυτό τον τρόπο. Για περισσότερες πληροφορίες σχετικά με την μεταγλώττιση του πυρήνα, δείτε το . Δημιουργώντας Προσαρμοσμένο Πυρήνα με Υποστήριξη Ήχου Αρχικά, πρέπει να προσθέσετε το γενικό πρόγραμμα οδήγησης ήχου (audio framework driver) &man.sound.4; στον πυρήνα σας. Θα χρειαστεί να προσθέσετε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα: device sound Έπειτα, θα πρέπει να προσθέσετε υποστήριξη για την κάρτα ήχου σας. Πρέπει να γνωρίζετε από πριν ποιο πρόγραμμα οδήγησης την υποστηρίζει. Ελέγξτε τη λίστα των υποστηριζόμενων καρτών στις Σημειώσεις Υλικού, για να καθορίσετε το σωστό οδηγό για την δική σας. Για παράδειγμα, ή Creative &soundblaster; Live!, υποστηρίζεται από τον οδηγό &man.snd.emu10k1.4;. Για να προσθέσετε υποστήριξη για αυτή την κάρτα, χρησιμοποιήστε την ακόλουθη γραμμή: device snd_emu10k1 Βεβαιωθείτε ότι διαβάσατε την σελίδα του manual για το πρόγραμμα οδήγησης, ώστε να χρησιμοποιήσετε τη σωστή σύνταξη. Η ακριβής σύνταξη για κάθε υποστηριζόμενη κάρτα ήχου στο αρχείο ρυθμίσεων πυρήνα, μπορεί να βρεθεί επίσης στο αρχείο /usr/src/sys/conf/NOTES. Για κάρτα ήχου τύπου ISA που δεν είναι Plug'N'Play μπορεί να χρειαστεί να δώσετε στον πυρήνα πληροφορίες σχετικά με τις ρυθμίσεις της (όπως το IRQ, θύρα I/O κλπ), όπως γίνεται τυπικά σε αυτές τις περιπτώσεις. Αυτό μπορεί να γίνει μέσω του αρχείου /boot/device.hints. Κατά τη διαδικασία της εκκίνησης, ο &man.loader.8; θα διαβάσει το αρχείο και θα μεταβιβάσει τις ρυθμίσεις στον πυρήνα. Για παράδειγμα, μια παλιά Creative &soundblaster; 16 ISA μη-PnP κάρτα χρησιμοποιεί το πρόγραμμα οδήγησης &man.snd.sbc.4; σε συνδυασμό με το snd_sb16. Για την κάρτα αυτή πρέπει να προστεθούν οι παρακάτω γραμμές στο αρχείο ρυθμίσεων πυρήνα: device snd_sbc device snd_sb16 και οι παρακάτω γραμμές στο αρχείο /boot/device.hints: hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15" Στην περίπτωση αυτή, η κάρτα χρησιμοποιεί τη θύρα I/O 0x220 και το IRQ 5. Η σύνταξη που χρησιμοποιείται στο αρχείο /boot/device.hints εξηγείται στη σελίδα manual του &man.sound.4; καθώς και στη σελίδα manual του αντίστοιχου προγράμματος οδήγησης. Οι ρυθμίσεις που φαίνονται παραπάνω είναι οι προεπιλεγμένες. Σε ορισμένες περιπτώσεις, μπορεί να χρειαστεί να αλλάξετε το IRQ ή άλλες ρυθμίσεις ώστε να ταιριάζουν με τις ρυθμίσεις της κάρτας σας. Δείτε τη σελίδα manual της &man.snd.sbc.4; για περισσότερες πληροφορίες σχετικά με την κάρτα αυτή. Δοκιμάζοντας την Κάρτα Ήχου Αφού κάνετε επανεκκίνηση με τον νέο πυρήνα (ή αφού φορτώσετε το απαραίτητο module), Θα πρέπει να δείτε μηνύματα σχετικά με την κάρτα ήχου στην προσωρινή μνήμη (buffer) καταγραφής του συστήματος (&man.dmesg.8;) αντίστοιχα με τα παρακάτω: pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec> Η κατάσταση της κάρτας ήχου μπορεί να ελεγχθεί μέσω του αρχείου /dev/sndstat: &prompt.root; cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default) Τα μηνύματα στο σύστημα σας μπορεί να είναι διαφορετικά. Αν δεν δείτε συσκευές τύπου pcm, επιστρέψτε και ελέγξτε τα βήματα που κάνατε προηγουμένως. Κοιτάξτε το αρχείο ρυθμίσεων πυρήνα και βεβαιωθείτε ότι έχετε επιλέξει το σωστό πρόγραμμα οδήγησης. Για συνήθη προβλήματα και την αντιμετώπιση τους, δείτε το τμήμα . Αν όλα πάνε καλά, η κάρτα ήχου σας θα λειτουργεί. Αν ο οδηγός CD ή DVD που διαθέτετε είναι συνδεμένος με την κάρτα ήχου μέσω της αναλογικής του εξόδου, μπορείτε να βάλετε ένα μουσικό CD και να το αναπαράγετε με το πρόγραμμα &man.cdcontrol.1;: &prompt.user; cdcontrol -f /dev/acd0 play 1 Άλλες εφαρμογές, όπως το audio/workman παρέχουν φιλικότερο περιβάλλον εργασίας. Ίσως θέλετε να εγκαταστήσετε μια εφαρμογή όπως το audio/mpg123 για να αναπαράγετε αρχεία ήχου MP3. Ένας άλλος γρήγορος τρόπος για να ελέγξετε την κάρτα ήχου σας, είναι να στείλετε δεδομένα στην συσκευή /dev/dsp, όπως παρακάτω: &prompt.user; cat filename > /dev/dsp όπου το filename μπορεί να είναι οποιοδήποτε αρχείο. Η παραπάνω εντολή θα πρέπει να παράγει κάποιο ήχο (θόρυβο) επιβεβαιώνοντας τη σωστή λειτουργία της κάρτας ήχου. Η ένταση ήχου της κάρτας μπορεί να αλλάξει μέσω της εντολής &man.mixer.8;. Περισσότερες πληροφορίες μπορείτε να βρείτε στην σελίδα του manual της &man.mixer.8;. Συνηθισμένα Προβλήματα device nodes I/O port IRQ DSP Πρόβλημα Λύση sb_dspwr(XX) timed out Δεν είναι σωστά ρυθμισμένη η θύρα I/O. bad irq XX Το IRQ δεν είναι σωστά ρυθμισμένο. Βεβαιωθείτε ότι το IRQ που έχετε δηλώσει είναι το ίδιο με αυτό που έχει ρυθμιστεί στην κάρτα. xxx: gus pcm not attached, out of memory Δεν υπάρχει αρκετή διαθέσιμη μνήμη για να γίνει χρήση της συσκευής. xxx: can't open /dev/dsp! Ελέγξτε με την βοήθεια της εντολής fstat | grep dsp αν κάποια άλλη εφαρμογή απασχολεί τη συγκεκριμένη συσκευή. Συνήθεις ύποπτοι είναι η εφαρμογή esound καθώς και το σύστημα υποστήριξης ήχου του περιβάλλοντος KDE. Munish Chopra Συνεισφορά από τον Χρησιμοποιώντας Πολλαπλές Πηγές Ήχου Είναι πολλές φορές επιθυμητό να έχουμε πολλαπλές πηγές ήχου που να αναπαράγονται ταυτόχρονα, όπως όταν για παράδειγμα το esound ή το artsd δεν επιτρέπουν κοινή χρήση της συσκευής ήχου σε κάποια συγκεκριμένη εφαρμογή. Το &os; επιτρέπει αυτή τη λειτουργία μέσω των Εικονικών Καναλιών Ήχου (Virtual Sound Channels), τα οποία μπορούν να ενεργοποιηθούν μέσω των δυνατοτήτων που παρέχονται από το &man.sysctl.8;. Τα Εικονικά Κανάλια σας επιτρέπουν να πολυπλέξετε τους ήχους που αναπαράγει η κάρτα σας, αναμιγνύοντας τον ήχο στον πυρήνα. Για να ρυθμίσετε το πλήθος των εικονικών καναλιών, υπάρχουν δύο ρυθμίσεις sysctl που μπορούν να γίνουν αν είστε ο χρήστης root, όπως φαίνεται παρακάτω: &prompt.root; sysctl hw.snd.pcm0.vchans=4 &prompt.root; sysctl hw.snd.maxautovchans=4 Το παραπάνω παράδειγμα παραχωρεί τέσσερα εικονικά κανάλια, τα οποία άνετα επαρκούν για καθημερινή χρήση. Η μεταβλητή hw.snd.pcm0.vchans είναι ο αριθμός των εικονικών καναλιών για την συσκευή pcm0, και μπορεί να ρυθμιστεί εφόσον έχει προσαρτηθεί συσκευή. Η μεταβλητή hw.snd.maxautovchans είναι ο αριθμός των εικονικών καναλιών που παραχωρούνται σε μια νέα συσκευή ήχου όταν αυτή προσαρτάται μέσω της εντολής &man.kldload.8;. Καθώς το module pcm μπορεί να φορτωθεί ανεξάρτητα από τα προγράμματα οδήγησης του υλικού, το hw.snd.maxautovchans μπορεί να αποθηκεύσει το μέγιστο πλήθος των εικονικών καναλιών που θα παραχωρηθούν σε όσες συσκευές ήχου προσαρτηθούν αργότερα. Δεν μπορείτε να αλλάξετε τον αριθμό των εικονικών καναλιών μιας συσκευής όσο αυτή είναι σε χρήση. Πρώτα κλείστε όσα προγράμματα χρησιμοποιούν τη συσκευή, όπως προγράμματα αναπαραγωγής μουσικής ή δαίμονες ήχου. Αν δεν χρησιμοποιείτε το &man.devfs.5;, θα πρέπει να κατευθύνετε τις εφαρμογές σας στο /dev/dsp0.x, όπου x είναι από 0 ως 3 αν το hw.snd.pcm.0.vchans είναι ρυθμισμένο στο 4 όπως στο παραπάνω παράδειγμα. Σε ένα σύστημα που χρησιμοποιεί την &man.devfs.5;, η παραπάνω ρύθμιση θα γίνεται αυτόματα και διάφανα σε κάθε πρόγραμμα που ζητά να χρησιμοποιήσει το /dev/dsp0. Josef El-Rayes Συνεισφορά από τον Ρυθμίζοντας Προεπιλεγμένες Τιμές για τα Κανάλια του Μίκτη Οι προεπιλεγμένες τιμές για τα διάφορα κανάλια του μίκτη, είναι ενσωματωμένες στον πηγαίο κώδικα του προγράμματος οδήγησης &man.pcm.4;. Υπάρχουν πολλές διαφορετικές εφαρμογές και δαίμονες που σας επιτρέπουν να αλλάξετε τιμές στο μίκτη, απομνημονεύοντας τις μεταξύ διαδοχικών κλήσεων, αλλά ή λύση αυτή δεν είναι και η καλύτερη. Είναι δυνατόν να ορίσετε προεπιλεγμένες τιμές μίξης σε επίπεδο προγράμματος οδήγησης. Αυτό μπορεί να επιτευχθεί με την ρύθμιση κατάλληλων τιμών στο αρχείο /boot/device.hints, π.χ.: hint.pcm.0.vol="50" Το παραπάνω ρυθμίζει την ένταση του ήχου στην προεπιλεγμένη τιμή 50, όταν φορτωθεί το module &man.pcm.4;. Chern Lee Συνεισφορά από τον Ήχος MP3 Τα αρχεία ήχου MP3 (MPEG Layer 3 Audio) επιτυγχάνουν ποιότητα ήχου πολύ κοντά στο μουσικό CD, και είναι καλό να έχετε δυνατότητα αναπαραγωγής τους στο &os; σύστημα σας. Προγράμματα Αναπαραγωγής MP3 Το πιο δημοφιλές, με μεγάλη διαφορά, πρόγραμμα αναπαραγωγής MP3 για το Χ11, είναι η εφαρμογή XMMS (X Multimedia System). Μπορείτε να χρησιμοποιήσετε τα skins του Winamp με το XMMS καθώς το γραφικό του περιβάλλον είναι σχεδόν όμοιο με το Winamp της Nullsoft. Το XMMS έχει επίσης ενσωματωμένη δυνατότητα χρήσης plug-ins. Το XMMS μπορεί να εγκατασταθεί από το port multimedia/xmms ή από πακέτο. Το περιβάλλον του XMMS το καθιστά εύκολο στη χρήση, καθώς διαθέτει λίστα αναπαραγωγής (playlist), γραφικό ισοσταθμιστή και άλλες λειτουργίες. Όσοι είναι εξοικειωμένοι με το Winamp θα βρουν το XMMS απλό στη χρήση του. Το port audio/mpg123 είναι ένα εναλλακτικό πρόγραμμα αναπαραγωγής MP3 μέσω της γραμμής εντολών. Το mpg123 μπορεί να εκτελεστεί καθορίζοντας τη συσκευή ήχου και το αρχείο MP3 από τη γραμμή εντολών όπως φαίνεται παρακάτω: &prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from Foobar-GreatestHits.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo Το /dev/dsp1.0 πρέπει να αντικατασταθεί με το αντίστοιχο αρχείο συσκευής dsp για το σύστημα σας. Αποθήκευση (Rip) Αρχείων από Μουσικά CD Πριν κωδικοποιήσετε ένα ολόκληρο CD ή ένα κομμάτι από CD σε αρχείο MP3, θα πρέπει να αντιγράψετε τα μουσικά δεδομένα από το CD στο σκληρό σας δίσκο. Αυτό γίνεται γράφοντας τα δεδομένα τύπου CDDA (CD Digital Audio) σε αρχεία WAV. Το εργαλείο cdda2wav, το οποίο ανήκει στη συλλογή εργαλείων sysutils/cdrtools μπορεί να χρησιμοποιηθεί τόσο για την ανάκτηση των δεδομένων ήχου από μουσικά CD, όσο και πληροφοριών που σχετίζονται με αυτά. Έχοντας το μουσικό CD στον οδηγό, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή (ως root) για να αποθηκεύσετε ένα ολόκληρο CD σε χωριστά (ανά κομμάτι) αρχεία WAV: &prompt.root; cdda2wav -D 0,1,0 -B Το cdda2wav υποστηρίζει οδηγούς CDROM τύπου ATAPI (IDE). Για να διαβάσετε δεδομένα από μια συσκευή IDE, χρησιμοποιήστε το όνομα συσκευής αντί για τον αριθμό μονάδας SCSI. Για παράδειγμα, για να αποθηκεύσετε το κομμάτι 7 από ένα οδηγό IDE: &prompt.root; cdda2wav -D /dev/acd0 -t 7 Το δείχνει τη συσκευή SCSI 0,1,0, που αντιστοιχεί στην έξοδο της εντολής cdrecord -scanbus. Για να διαβάσετε μεμονωμένα κομμάτια, χρησιμοποιήστε την επιλογή όπως φαίνεται παρακάτω: &prompt.root; cdda2wav -D 0,1,0 -t 7 Το παράδειγμα αυτό διαβάζει το κομμάτι επτά του μουσικού CD. Για να διαβάσετε μια σειρά από κομμάτια, για παράδειγμα από το ένα ως το επτά, καθορίστε μια περιοχή: &prompt.root; cdda2wav -D 0,1,0 -t 1+7 Μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα &man.dd.1; για να διαβάσετε μουσικά κομμάτια από οδηγούς ATAPI. Διαβάστε το για περισσότερες πληροφορίες σχετικά με αυτή τη δυνατότητα. Κωδικοποιώντας MP3 Στις μέρες μας, το προτιμώμενο πρόγραμμα κωδικοποίησης είναι το Lame. Μπορείτε να το βρείτε στη συλλογή των ports, στο audio/lame. Χρησιμοποιώντας τα αρχεία WAV που έχετε αποθηκεύσει, μπορείτε να μετατρέψετε το αρχείο audio01.wav σε audio01.mp3 με την εντολή: &prompt.root; lame -h -b 128 \ --tt "Foo Song Title" \ --ta "FooBar Artist" \ --tl "FooBar Album" \ --ty "2001" \ --tc "Ripped and encoded by Foo" \ --tg "Genre" \ audio01.wav audio01.mp3 Τα 128 kbits είναι η τυπικά χρησιμοποιούμενη ποιότητα για αρχεία MP3. Ωστόσο, πολλοί προτιμούν μεγαλύτερη ποιότητα όπως 160 ή 192. Όσο μεγαλύτερος είναι ο ρυθμός δεδομένων (bitrate), τόσο περισσότερο χώρο αποθήκευσης θα χρειάζεται το αρχείο MP3 που θα προκύψει, ωστόσο και η ποιότητα θα είναι υψηλότερη. Η επιλογή ενεργοποιεί τη δυνατότητα υψηλότερης ποιότητας αλλά ελαφρά πιο αργής κωδικοποίησης. Οι επιλογές που ξεκινούν με δείχνουν ετικέτες (tags) ID3, οι οποίες συνήθως περιέχουν πληροφορίες σχετικές με το τραγούδι και οι οποίες μπορούν να ενσωματωθούν μέσα σε αρχεία MP3. Μπορείτε να βρείτε περισσότερες επιλογές σχετικά με την κωδικοποίηση, αν συμβουλευτείτε τη σελίδα manual του προγράμματος lame. Αποκωδικοποιώντας MP3 Για να μπορέσετε να γράψετε μουσικό CD από αρχεία MP3, θα πρέπει να τα μετατρέψετε ξανά σε μορφή ασυμπίεστου αρχείου WAV. Τόσο το XMMS όσο και το mpg123 υποστηρίζουν εξαγωγή αρχείου MP3 σε ασυμπίεστη μορφή αρχείου. Γράφοντας στο Δίσκο μέσω του XMMS: Ξεκινήστε το XMMS. Κάντε δεξί κλικ στο παράθυρο της εφαρμογής για να ανοίξετε το μενού του XMMS. Επιλέξτε Preferences από τα Options. Αλλάξτε το Output Plugin σε Disk Writer Plugin. Πιέστε Configure. Γράψτε (ή επιλέξτε browse) ένα κατάλογο για να αποθηκεύσετε τα αποσυμπιεσμένα αρχεία. Φορτώστε το αρχείο MP3 στο XMMS όπως συνήθως, με την ένταση στο 100% και τις ρυθμίσεις EQ ανενεργές. Πιέστε το Play. Το XMMS θα φαίνεται ότι αναπαράγει το MP3, αλλά δεν θα ακούγεται κανείς ήχος. Στην πραγματικότητα αναπαράγει το MP3 σε αρχείο. Όταν τελειώσετε, βεβαιωθείτε ότι επαναφέρατε τη ρύθμιση του προεπιλεγμένου Output Plugin στην προηγούμενη επιλογή της, για να μπορέσετε να ακούσετε ξανά αρχεία MP3. Γράφοντας στην έξοδο μέσω του mpg123: Εκτελέστε mpg123 -s audio01.mp3 > audio01.pcm Το XMMS γράφει αρχεία σε μορφή WAV, ενώ το mpg123 μετατρέπει το MP3 σε μη- επεξεργασμένα (raw) δεδομένα ήχου PCM. Και οι δύο αυτές μορφές μπορούν να χρησιμοποιηθούν με την εφαρμογή cdrecord για τη δημιουργία μουσικών CD. Για την εφαρμογή &man.burncd.8; θα πρέπει να χρησιμοποιήσετε δεδομένα PCM. Αν χρησιμοποιήσετε αρχεία WAV θα παρατηρήσετε ένα μικρό ήχο (tick) στην αρχή κάθε κομματιού. Ο ήχος αυτός προέρχεται από την επικεφαλίδα (header) του αρχείου WAV. Μπορείτε να αφαιρέσετε την επικεφαλίδα με τη βοήθεια του προγράμματος SoX (μπορείτε να το εγκαταστήσετε από το port audio/sox ή το αντίστοιχο πακέτο): &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw Διαβάστε το για περισσότερες πληροφορίες σχετικά με τη χρήση CD εγγραφής στο &os; Ross Lippert Συνεισφορά από τον Αναπαραγωγή Video Η αναπαραγωγή video είναι μια καινούρια και ραγδαία αναπτυσσόμενη περιοχή εφαρμογών. Θα χρειαστεί να δείξετε υπομονή. Δεν πρόκειται να λειτουργήσουν όλα τόσο ομαλά όπως στον ήχο. Πριν ξεκινήσετε, θα πρέπει να γνωρίζετε το μοντέλο της κάρτας γραφικών που έχετε καθώς και το ολοκληρωμένο κύκλωμα που χρησιμοποιεί. Αν και το &xorg; και το &xfree86; υποστηρίζουν μεγάλη γκάμα από κάρτες γραφικών, αυτές που παρέχουν καλή απόδοση είναι λιγότερες. Για να πάρετε μια λίστα των εκτεταμένων δυνατοτήτων που υποστηρίζονται από την κάρτα σας, χρησιμοποιήστε την εντολή &man.xdpyinfo.1; την ώρα που εκτελούνται τα X11. Είναι γενικά καλή ιδέα να έχετε ένα μικρό αρχείο MPEG το οποίο μπορεί να χρησιμοποιηθεί για δοκιμές διαφορετικών επιλογών και προγραμμάτων αναπαραγωγής. Κάποια προγράμματα αναπαραγωγής DVD αναζητούν από προεπιλογή το δίσκο DVD στη συσκευή /dev/dvd. Σε ορισμένα το όνομα της συσκευής είναι ενσωματωμένο στον κώδικα του προγράμματος. Για το λόγο αυτό, ίσως είναι χρήσιμο να φτιάξετε συμβολικές συνδέσεις προς τις πραγματικές συσκευές: &prompt.root; ln -sf /dev/acd0 /dev/dvd &prompt.root; ln -sf /dev/acd0 /dev/rdvd Σημειώστε ότι λόγω της φύσης του συστήματος &man.devfs.5;, αυτού του είδους οι συνδέσεις δεν παραμένουν μετά την επανεκκίνηση του συστήματος σας. Για να δημιουργούνται οι συμβολικές συνδέσεις αυτόματα σε κάθε εκκίνηση του συστήματος σας, προσθέστε τις ακόλουθες γραμμές στο αρχείο /etc/devfs.conf: link acd0 dvd link acd0 rdvd Επιπρόσθετα, η αποκωδικοποίηση DVD, η οποία χρειάζεται κλήση ειδικών λειτουργιών του DVD-ROM, απαιτεί και άδεια εγγραφής (write permission) στις συσκευές DVD. Για τη βελτίωση της λειτουργίας της κοινόχρηστης μνήμης του συστήματος X11, συνίσταται να αυξήσετε τις τιμές κάποιων μεταβλητών &man.sysctl.8;: kern.ipc.shmmax=67108864 kern.ipc.shmall=32768 Προσδιορισμός Δυνατοτήτων Κάρτας Γραφικών XVideo SDL DGA Υπάρχουν αρκετοί διαφορετικοί τρόποι για την απεικόνιση video στο X11. Το τι θα δουλέψει τελικά, εξαρτάται σε μεγάλο βαθμό από το υλικό σας. Κάθε μέθοδος που περιγράφουμε παρακάτω θα δώσει διαφορετική ποιότητα σε διαφορετικό υλικό. Επίσης, η αναπαραγωγή video στο X11 είναι ένα θέμα στο οποίο πρόσφατα δίνεται μεγάλη σημασία, και πιθανόν θα υπάρχουν αρκετές βελτιώσεις σε κάθε νέα έκδοση του &xorg;, ή του &xfree86;. Κατάλογος κοινών διεπαφών video: X11: Συνηθισμένη έξοδος του X11 με χρήση κοινόχρηστης μνήμης. XVideo: μια επέκταση της διεπαφής X11 που υποστηρίζει αναπαραγωγή video σε οποιαδήποτε σχεδιάσιμη επιφάνεια του X11. SDL: Simple Directmedia Layer. DGA: Direct Graphics Access. SVGAlib: Επίπεδο γραφικών χαμηλού επιπέδου για κονσόλα. XVideo Το &xorg; και το &xfree86; 4.X διαθέτουν μια επέκταση που ονομάζεται XVideo (γνωστή και ως Xvideo, Xv, xv) και το οποίο επιτρέπει την απευθείας απεικόνιση video σε σχεδιάσιμα αντικείμενα μέσω ειδικής επιτάχυνσης. Η επέκταση αυτή παρέχει αναπαραγωγή πολύ καλής ποιότητας, ακόμα και σε μηχανήματα χαμηλών προδιαγραφών. Για να δείτε αν χρησιμοποιείται η επέκταση, χρησιμοποιήστε την εντολή xvinfo: &prompt.user; xvinfo Το XVideo υποστηρίζεται από την κάρτα σας αν το αποτέλεσμα δείχνει όπως παρακάτω: X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0 Παρατηρήστε επίσης ότι τα formats που εμφανίζονται (YUV2, YUV12, κ.λ.π.) δεν διατίθενται σε όλες τις εκδόσεις του XVideo, και η απουσία τους μπορεί να επηρεάσει κάποια προγράμματα αναπαραγωγής. Αν το αποτέλεσμα δείχνει κάπως έτσι: X-Video Extension version 2.2 screen #0 no adaptors present Τότε πιθανώς το XVideo δεν υποστηρίζεται από την κάρτα σας. Αν το XVideo δεν υποστηρίζεται από την κάρτα σας, αυτό σημαίνει απλά ότι θα είναι πιο δύσκολο ο υπολογιστής σας να ανταποκριθεί στις υπολογιστικές απαιτήσεις της απεικόνισης video. Ωστόσο, ανάλογα με την κάρτα γραφικών και τον επεξεργαστή σας, είναι ακόμα πιθανόν να έχετε ικανοποιητική αναπαραγωγή. Ίσως πρέπει να διαβάσετε μεθόδους για τη βελτίωση της απόδοσης, στα προχωρημένα θέματα, . Το Επίπεδο Simple Directmedia Layer Το Simple Directmedia Layer, SDL, προορίζονταν να γίνει ένα επίπεδο συμβατότητας μεταξύ των µsoft.windows;, BeOS, και του &unix;, επιτρέποντας ανάπτυξη εφαρμογών ήχου και εικόνας, κατάλληλες για κάθε μια από αυτές τις πλατφόρμες (cross-platform). Το επίπεδο SDL παρέχει χαμηλού επιπέδου πρόσβαση στο υλικό, και σε ορισμένες περιπτώσεις μπορεί να είναι πιο αποδοτικό από την διεπαφή X11. Το SDL μπορεί να βρεθεί στο devel/sdl12. Το Επίπεδο Direct Graphics Access Το Direct Graphics Access είναι μια επέκταση του X11 που επιτρέπει σε ένα πρόγραμμα να προσπεράσει τον X server και να αλλάξει απευθείας τα περιεχόμενα του framebuffer (μνήμης γραφικών). Δεδομένου ότι βασίζεται σε διαχείριση μνήμης χαμηλού επιπέδου, τα προγράμματα που το χρησιμοποιούν πρέπει να εκτελούνται ως root. Η επέκταση DGA μπορεί να ελεγχθεί και να μετρηθεί ως προς την απόδοση της με το πρόγραμμα &man.dga.1;. Όταν εκτελείται η εντολή dga, αλλάζει τα χρώματα της οθόνης σε κάθε πίεση ενός πλήκτρου. Για να ακυρώσετε την εκτέλεση, πιέστε q. Πακέτα και Ports που Σχετίζονται με Video video ports video packages Το τμήμα αυτό περιγράφει το λογισμικό που διατίθεται στη συλλογή των ports του &os; και το οποίο μπορεί να χρησιμοποιηθεί για αναπαραγωγή video. Ο τομέας της αναπαραγωγής video είναι ιδιαίτερα ενεργός όσο αφορά την ανάπτυξη λογισμικού, και έτσι οι δυνατότητες των εφαρμογών πιθανώς να αποκλίνουν κάπως από αυτές που περιγράφονται εδώ. Είναι αρχικά σημαντικό να γνωρίζετε ότι αρκετές από τις εφαρμογές video που εκτελούνται στο &os; αναπτύχθηκαν αρχικά ως εφαρμογές Linux. Πολλές από αυτές τις εφαρμογές είναι ακόμα ποιότητας beta. Κάποια από τα προβλήματα που μπορεί να συναντήσετε στις εφαρμογές video του &os; περιλαμβάνουν: Μια εφαρμογή δεν μπορεί να αναπαράγει ένα αρχείο που δημιουργήθηκε από κάποια άλλη. Μια εφαρμογή δεν μπορεί να αναπαράγει ένα αρχείο που δημιούργησε η ίδια. Η ίδια εφαρμογή, σε δυο διαφορετικά μηχανήματα, και αφού έχει μεταγλωττιστεί σε κάθε μηχάνημα ειδικά για αυτό, αναπαράγει το ίδιο αρχείο με διαφορετικό τρόπο. Κάποιο φαινομενικά απλό φίλτρο, όπως αυτό της αλλαγής μεγέθους εικόνας (rescaling), έχει ως αποτέλεσμα την δημιουργία κακής ποιότητας video (τεχνουργημάτων) εξαιτίας προβληματικής ρουτίνας μεγέθυνσης Κάποια εφαρμογή τερματίζεται απότομα συχνά. Δεν εγκαθίσταται η τεκμηρίωση του προγράμματος κατά την εγκατάσταση του port, ενώ μπορεί να βρεθεί είτε στο δικτυακό τόπο του προγράμματος είτε στον κατάλογο work του port. Πολλές από τις εφαρμογές αυτές μπορεί επίσης να παρουσιάσουν συμπτώματα Linux-ισμού. Μπορεί δηλ. να εμφανίζουν προβλήματα που οφείλονται στον τρόπο με τον οποίο υλοποιούνται κάποιες στάνταρ βιβλιοθήκες στις διανομές του Linux, ή ίσως οι συγγραφείς να έχουν θεωρήσει ως δεδομένες κάποιες δυνατότητες του πυρήνα όπως υπάρχουν στο Linux. Τα προβλήματα αυτά δεν είναι σίγουρο ότι ανακαλύπτονται και διορθώνονται πάντα από τους συντηρητές του port, το οποίο μπορεί να οδηγήσει σε προβλήματα όπως τα παρακάτω: Χρήση του αρχείου /proc/cpuinfo για την ανίχνευση των δυνατοτήτων του επεξεργαστή. Κακή χρήση των threads (νημάτων) το οποίο οδηγεί το πρόγραμμα σε κόλλημα αντί για κανονικό τερματισμό στο τέλος της εκτέλεσης. Χρήση λογισμικού που δεν υπάρχει ακόμα στη συλλογή των ports του &os; σε συνδυασμό με την εφαρμογή. Μέχρι στιγμής οι συγγραφείς των εφαρμογών αυτών έχουν αποδειχθεί συνεργάσιμοι με τους συντηρητές των ports, ώστε να ελαχιστοποιηθούν οι επεμβάσεις που χρειάζονται για την μετατροπή (porting) των εφαρμογών. MPlayer Ο MPlayer είναι μια εφαρμογή αναπαραγωγής video που αναπτύχθηκε πρόσφατα και εξελίσσεται ταχύτατα. Οι στόχοι της ομάδας ανάπτυξης του MPlayer είναι η ταχύτητα και η ευελιξία στο Linux και στα άλλα Unix. Η δημιουργία του ξεκίνησε όταν ο αρχηγός της ομάδας ανάπτυξης κουράστηκε να αντιμετωπίζει τα προβλήματα αναπαραγωγής των μέχρι τότε διαθέσιμων προγραμμάτων. Κάποιοι υποστηρίζουν ότι το γραφικό περιβάλλον θυσιάστηκε για να δημιουργηθεί μια ομοιόμορφη σχεδίαση. Ωστόσο, μόλις συνηθίσετε τις επιλογές που δίνονται από τη γραμμή εντολών και τα αντίστοιχα πλήκτρα, θα μπορέσετε να τον χρησιμοποιήσετε αρκετά καλά. Μεταγλώττιση του MPlayer MPlayer making Ο MPlayer βρίσκεται στο multimedia/mplayer. Ο MPlayer κάνει πλήθος ελέγχων του υλικού κατά τη διαδικασία της μεταγλώττισης, φτιάχνοντας έτσι ένα εκτελέσιμο το οποίο δεν έχει φορητότητα από ένα σύστημα σε ένα άλλο. Για το σκοπό αυτό, είναι σημαντικό να τον εγκαταστήσετε από τα ports και όχι από έτοιμο πακέτο. Επιπρόσθετα, μπορείτε να καθορίσετε πλήθος επιλογών στην γραμμή εντολών του make όπως περιγράφεται στο Makefile και κατά την έναρξη της διαδικασίας μεταγλώττισης: &prompt.root; cd /usr/ports/multimedia/mplayer &prompt.root; make N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html Οι προεπιλεγμένες επιλογές μάλλον είναι κατάλληλες για τους περισσότερους χρήστες. Αν ωστόσο χρειάζεστε τον αποκωδικοποιητή XviD, θα πρέπει να καθορίσετε την επιλογή WITH_XVID στην γραμμή εντολών. Μπορείτε επίσης να ορίσετε την προεπιλεγμένη συσκευή DVD χρησιμοποιώντας την επιλογή WITH_DVD_DEVICE, διαφορετικά θα χρησιμοποιηθεί η προεπιλεγμένη συσκευή /dev/acd0. Όταν γράφονταν αυτό το κείμενο, το port του MPlayer δημιουργούσε επίσης την τεκμηρίωση του προγράμματος και δύο εκτελέσιμα, τον mplayer, και τον mencoder, το οποίο είναι ένα εργαλείο για επανακωδικοποίηση video. Η HTML τεκμηρίωση του MPlayer είναι ιδιαίτερα πληροφοριακή. Αν ο αναγνώστης βρει ότι οι πληροφορίες αυτού του κεφαλαίου όσο αφορά το υλικό και τις διεπαφές video είναι ελλιπείς, η τεκμηρίωση του MPlayer αποτελεί ένα ιδιαίτερα αναλυτικό συμπλήρωμα. Θα πρέπει σίγουρα να διαθέσετε χρόνο για να διαβάσετε την τεκμηρίωση του MPlayer αν αναζητάτε πληροφορίες σχετικά με την υποστήριξη video στο &unix;. Χρησιμοποιώντας τον MPlayer MPlayer use Κάθε χρήστης του MPlayer πρέπει να δημιουργήσει ένα υποκατάλογο .mplayer μέσα στον προσωπικό του κατάλογο. Για να δημιουργήσετε τον απαραίτητο υποκατάλογο, μπορείτε να γράψετε το παρακάτω: &prompt.user; cd /usr/ports/multimedia/mplayer &prompt.user; make install-user Οι επιλογές της γραμμής εντολών του mplayer περιγράφονται στη σελίδα του manual. Για ακόμα περισσότερες λεπτομέρειες, υπάρχει τεκμηρίωση σε μορφή HTML. Στο τμήμα αυτό θα περιγράψουμε μερικές μόνο κοινές χρήσεις. Για να αναπαράγετε ένα αρχείο, όπως το testfile.avi, μέσω ενός από τα αρκετά video interfaces χρησιμοποιήστε την επιλογή : &prompt.user; mplayer -vo xv testfile.avi &prompt.user; mplayer -vo sdl testfile.avi &prompt.user; mplayer -vo x11 testfile.avi &prompt.root; mplayer -vo dga testfile.avi &prompt.root; mplayer -vo 'sdl:dga' testfile.avi Αξίζει τον κόπο να δοκιμάσετε όλες αυτές τις επιλογές, καθώς η απόδοση τους εξαρτάται από πολλούς παράγοντες και διαφοροποιείται αρκετά ανάλογα με το υλικό του υπολογιστή σας. Για αναπαραγωγή από DVD, αντικαταστήστε το testfile.avi με όπου το N είναι ο αριθμός του τίτλου (title number) που επιθυμείτε να αναπαράγετε και DEVICE είναι το όνομα συσκευής του DVD-ROM. Για παράδειγμα, για να αναπαράγετε τον τίτλο 3 από τη συσκευή /dev/dvd: &prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvd Η προεπιλεγμένη συσκευή DVD μπορεί να καθοριστεί κατά τη διάρκεια της μεταγλώττισης του MPlayer port μέσω της επιλογής WITH_DVD_DEVICE. Από προεπιλογή, η συσκευή αυτή είναι η /dev/acd0. Μπορείτε να βρείτε περισσότερες πληροφορίες στο αρχείο Makefile του port. Για τα πλήκτρα που χρησιμοποιούνται για παύση, διακοπή, μετακίνηση κλπ. κατά τη διάρκεια της αναπαραγωγής, συμβουλευτείτε την βοήθεια που μπορείτε να δείτε εκτελώντας mplayer -h ή διαβάστε τη σελίδα του manual. Επιπρόσθετα, σημαντικές επιλογές αναπαραγωγής είναι: το οποίο ενεργοποιεί απεικόνιση σε πλήρη οθόνη και το το οποίο βοηθάει στην αύξηση της απόδοσης. Για να μείνει το μέγεθος της γραμμής εντολών το δυνατόν μικρό, ο χρήστης μπορεί να δημιουργήσει ένα αρχείο .mplayer/config και να ορίσει εκεί τις προεπιλεγμένες επιλογές: vo=xv fs=yes zoom=yes Τέλος, ο mplayer μπορεί να χρησιμοποιηθεί για την εξαγωγή (rip) ενός τίτλου DVD σε ένα αρχείο .vob file. Για την εξαγωγή του δεύτερου τίτλου από ένα DVD, γράψτε: &prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd Το αρχείο εξόδου, out.vob, θα είναι τύπου MPEG και μπορείτε να το μεταχειριστείτε μέσω άλλων πακέτων video που περιγράφονται σε αυτό το τμήμα. mencoder mencoder Πριν χρησιμοποιήσετε το mencoder είναι καλή ιδέα να εξοικειωθείτε με τις επιλογές που αναφέρονται στην τεκμηρίωση HTML. Υπάρχει σελίδα manual, αλλά δεν είναι πολύ χρήσιμη χωρίς την HTML τεκμηρίωση. Υπάρχουν πάρα πολλοί τρόποι για να βελτιώσετε την ποιότητα, να μειώσετε το ρυθμό δεδομένων (bitrate) να αλλάξετε μορφή αρχείου, και κάποια από αυτά τα κόλπα μπορεί να κάνουν τη διαφορά μεταξύ καλής και κακής απόδοσης. Εδώ θα δείτε μερικά παραδείγματα για να ξεκινήσετε. Πρώτα μια απλή αντιγραφή: &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi Λανθασμένοι συνδυασμοί στη γραμμή εντολών, μπορεί να δώσουν αρχεία εξόδου τα οποία δεν μπορεί να αναπαράγει ούτε ο ίδιος ο mplayer. Έτσι, αν απλώς θέλετε να κάνετε rip ένα αρχείο, μείνετε στην επιλογή του mplayer. Για να μετατρέψετε το input.avi σε codec MPEG4 με ήχο MPEG3 (απαιτείται το audio/lame): &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi Με τον τρόπο αυτό παράγεται έξοδος που μπορεί να αναπαραχθεί από τον mplayer και το xine. Μπορείτε να αντικαταστήσετε το input.avi με την επιλογή και να το εκτελέσετε ως root για να επανακωδικοποιήσετε απευθείας ένα τίτλο DVD. Μια και πιθανώς δεν θα μείνετε ικανοποιημένος με το αποτέλεσμα από την πρώτη φορά, σας συνιστούμε να κατεβάσετε τον τίτλο σε ένα αρχείο και να δουλέψετε σε αυτό. Το Πρόγραμμα Αναπαραγωγής xine Το xine είναι ένα project με ευρύ σκοπό, το οποίο προορίζεται όχι μόνο να γίνει ένα πρόγραμμα όλα σε ένα όσο αφορά το video, αλλά επίσης στο να παράγει μια επαναχρησιμοποιήσιμη βασική βιβλιοθήκη και ένα αρθρωτό εκτελέσιμο το οποίο μπορεί να επεκταθεί με πρόσθετα (plugins). Μπορείτε να το εγκαταστήσετε τόσο από πακέτο, όσο και από το port, multimedia/xine. Το xine είναι ακόμα κάπως χοντροκομμένο, αλλά σίγουρα έχει ξεκινήσει καλά. Στην πράξη, το xine χρειάζεται είτε γρήγορο επεξεργαστή και κάρτα γραφικών, ή υποστήριξη της επέκτασης XVideo. Το γραφικό περιβάλλον είναι χρησιμοποιήσιμο, αλλά κάπως αδέξια φτιαγμένο. Την ώρα που γράφονταν αυτές οι γραμμές δεν διανέμονταν module μαζί με την εφαρμογή xine, ικανό να αναπαράγει DVD με CSS κωδικοποίηση. Υπάρχουν εκδόσεις από τρίτους κατασκευαστές οι οποίες έχουν ενσωματωμένο το παραπάνω module αλλά καμιά από αυτές δεν βρίσκεται στην συλλογή των ports του &os;. Σε σύγκριση με τον MPlayer, το xine κάνει περισσότερα για το χρήστη, αλλά την ίδια στιγμή, δεν επιτρέπει τόσο λεπτομερειακό έλεγχο. Το xine αποδίδει καλύτερα σε λειτουργία XVideo. Από προεπιλογή, το xine θα ξεκινήσει σε γραφικό περιβάλλον (GUI). Μπορείτε να χρησιμοποιήσετε το μενού για να ανοίξετε ένα συγκεκριμένο αρχείο: &prompt.user; xine Εναλλακτικά, μπορείτε να το καλέσετε να αναπαράγει ένα αρχείο απευθείας από την γραμμή εντολών, χωρίς τη χρήση του GUI: &prompt.user; xine -g -p mymovie.avi Τα Βοηθητικά Προγράμματα transcode Η εφαρμογή transcode δεν είναι πρόγραμμα αναπαραγωγής, αλλά μια σουίτα εργαλείων για επανακωδικοποίηση αρχείων video και ήχου. Με την εφαρμογή transcode, έχετε την δυνατότητα να αναμίξετε αρχεία video, να επισκευάσετε χαλασμένα αρχεία, χρησιμοποιώντας εργαλεία της γραμμής εντολών τα οποία χειρίζονται δεδομένα από τα κανάλια stdin/stdout. Μεγάλο πλήθος εφαρμογών μπορούν να καθοριστούν κατά τη διάρκεια της μεταγλώττισης του port multimedia/transcode και συνιστούμε την ακόλουθη γραμμή εντολών για τη μεταγλώττιση του transcode: &prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ WITH_MJPEG=yes -DWITH_XVID=yes Οι προτεινόμενες επιλογές είναι κατάλληλες για τους περισσότερους χρήστες. Για να σας δείξουμε τις ικανότητες του transcode, δείτε ένα παράδειγμα μετατροπής αρχείου DivX σε PAL MPEG-1 (PAL VCD): &prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd &prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa Το αρχείο MPEG που προκύπτει, το output_vcd.mpg, μπορεί να αναπαραχθεί από τον MPlayer. Μπορείτε επίσης να γράψετε το αρχείο σε ένα CD-R για να δημιουργήσετε ένα Video CD, και στην περίπτωση αυτή θα χρειαστεί να εγκαταστήσετε τα προγράμματα multimedia/vcdimager και sysutils/cdrdao. Υπάρχει σελίδα manual για το transcode, αλλά πρέπει επίσης να συμβουλευτείτε το transcode wiki για περισσότερες πληροφορίες και παραδείγματα. Επιπλέον Διάβασμα Υπάρχει ραγδαία εξέλιξη στα διαθέσιμα πακέτα video για το &os;. Είναι αρκετά πιθανό ότι στο άμεσο μέλλον πολλά από τα προβλήματα που αναφέρονται εδώ θα έχουν επιλυθεί. Στο ενδιάμεσο διάστημα, όσοι ενδιαφέρονται να χρησιμοποιήσουν τις δυνατότητες A/V του &os; στο έπακρο θα πρέπει να συνδυάσουν γνώσεις από διάφορα FAQ και tutorials και να χρησιμοποιήσουν αρκετές διαφορετικές εφαρμογές. Το τμήμα αυτό υπάρχει ακριβώς για να δείξει στον αναγνώστη που μπορεί να βρει τέτοιες πρόσθετες πληροφορίες. Η Τεκμηρίωση του Mplayer είναι αρκετά πληροφοριακή όσο αφορά το τεχνικό επίπεδο. Αν έχετε σκοπό να αποκτήσετε υψηλό ποσοστό εμπειρίας σε σχέση με το video στο &unix;, θα πρέπει οπωσδήποτε να την συμβουλευτείτε. Η λίστα αλληλογραφίας του MPlayer είναι εχθρική σε όποιον δεν έχει κάνει τον κόπο να διαβάσει την τεκμηρίωση, έτσι αν σκοπεύετε να κάνετε αναφορές σφαλμάτων, βεβαιωθείτε ότι την έχετε διαβάσει. Το xine HOWTO περιέχει ένα κεφάλαιο σχετικά με την βελτίωση της απόδοσης, το οποίο είναι κοινό για όλα τα προγράμματα αναπαραγωγής. Τέλος, υπάρχουν κάποιες άλλες πολλά υποσχόμενες εφαρμογές που ίσως επιθυμείτε να δοκιμάσετε: Το Avifile το οποίο είναι επίσης port, multimedia/avifile. Το Ogle το οποίο είναι επίσης port, multimedia/ogle. Το Xtheater Το multimedia/dvdauthor, το οποίο είναι εφαρμογή DVD authoring ανοικτού κώδικα. Josef El-Rayes Αρχική συνεισφορά από τον Marc Fonvieille Βελτιώθηκε και προσαρμόστηκε από τον Ρύθμιση Κάρτας Τηλεόρασης TV cards Εισαγωγή Οι κάρτες τηλεόρασης σας επιτρέπουν να βλέπετε τηλεόραση, κανονική ή καλωδιακή, στον υπολογιστή σας. Οι περισσότερες από αυτές δέχονται επίσης σήμα σύνθετου (composite) video, μέσω εισόδου RCA ή S-video, και κάποιες από αυτές διαθέτουν και ραδιοφωνικό δέκτη FM. Το &os; παρέχει υποστήριξη για κάρτες TV τύπου PCI που χρησιμοποιούν τα ολοκληρωμένα κυκλώματα σύλληψης video, Brooktree Bt848/849/878/879 ή Conexant CN-878/Fusion 878a με το πρόγραμμα οδήγησης &man.bktr.4;. Θα πρέπει επίσης να βεβαιωθείτε ότι η κάρτα έρχεται με δέκτη που υποστηρίζεται. Συμβουλευτείτε τη σελίδα manual του &man.bktr.4; για να δείτε τη λίστα των υποστηριζόμενων δεκτών. Εγκαθιστώντας το Πρόγραμμα Οδήγησης Για να χρησιμοποιήσετε την κάρτα θα πρέπει να φορτώσετε το πρόγραμμα οδήγησης &man.bktr.4;, προσθέτοντας την ακόλουθη γραμμή στο αρχείο /boot/loader.conf: bktr_load="YES" Εναλλακτικά, μπορείτε να προσθέσετε στατική υποστήριξη για την κάρτα στο πυρήνα σας, και για το σκοπό αυτό προσθέστε τις ακόλουθες γραμμές στο αρχείο ρυθμίσεων του πυρήνα: device bktr device iicbus device iicbb device smbus Οι επιπρόσθετοι οδηγοί συσκευών είναι απαραίτητοι, επειδή τα εξαρτήματα της κάρτας επικοινωνούν μεταξύ τους διαμέσου ενός διαύλου I2C. Αφού κάνετε τις απαραίτητες αλλαγές στο αρχείο, μεταγλωττίστε και εγκαταστήστε το νέο πυρήνα. Μόλις τελειώσετε με αυτή τη διαδικασία, θα πρέπει να επανεκκινήσετε το σύστημα σας. Κατά τη διάρκεια της εκκίνησης, θα πρέπει να δείτε κάποια μηνύματα από την κάρτα σας, όπως τα παρακάτω: bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner. Φυσικά, τα μηνύματα αυτά θα διαφέρουν ανάλογα με το υλικό σας. Ωστόσο θα πρέπει να ελέγξετε ότι ανιχνεύθηκε σωστά ο δέκτης. Είναι δυνατόν να αλλάξετε κάποιες από τις παραμέτρους που ανιχνεύθηκαν χρησιμοποιώντας MIBs του &man.sysctl.8; καθώς και επιλογές στο αρχείο ρυθμίσεων πυρήνα. Για παράδειγμα, να θέλετε να επιβάλετε ο δέκτης να είναι τύπου Philips SECAM, θα πρέπει να προσθέσετε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα σας: options OVERRIDE_TUNER=6 ή μπορείτε να χρησιμοποιήσετε απευθείας το &man.sysctl.8;: &prompt.root; sysctl hw.bt848.tuner=6 Δείτε τη σελίδα manual του &man.bktr.4; καθώς και το αρχείο /usr/src/sys/conf/NOTES για περισσότερες λεπτομέρειες σχετικά με τις διαθέσιμες επιλογές. Χρήσιμες Εφαρμογές Για να χρησιμοποιήσετε την κάρτα τηλεόρασης, θα πρέπει να εγκαταστήσετε μια από τις παρακάτω εφαρμογές: Το multimedia/fxtv παρέχει δυνατότητα να δείτε τηλεόραση σε παράθυρο, καθώς και την δυνατότητα σύλληψης εικόνας / ήχου / video. Το multimedia/xawtv είναι επίσης εφαρμογή τηλεόρασης, με δυνατότητες όμοιες με το fxtv. Το misc/alevt αποκωδικοποιεί και απεικονίζει Videotext/Teletext. Το audio/xmradio είναι μια εφαρμογή για να χρησιμοποιήσετε το δέκτη FM που είναι ενσωματωμένος σε κάποιες κάρτες τηλεόρασης. Το audio/wmtune είναι μια βολική desktop εφαρμογή για ραδιοφωνικούς δέκτες. Μπορείτε να βρείτε περισσότερες εφαρμογές στη συλλογή των Ports του &os;. Αντιμετώπιση Προβλημάτων Αν αντιμετωπίσετε κάποιο πρόβλημα με την κάρτα τηλεόρασης, θα πρέπει πρώτα να ελέγξετε αν το ολοκληρωμένο σύλληψης video καθώς και ο δέκτης υποστηρίζονται από το πρόγραμμα οδήγησης &man.bktr.4; και αν έχετε χρησιμοποιήσει τις σωστές ρυθμίσεις στις επιλογές σας. Για επιπλέον υποστήριξη καθώς και διάφορες ερωτήσεις σχετικά με την κάρτα σας, ίσως θέλετε να επικοινωνήσετε με τη λίστα &a.multimedia.name; και να διαβάσετε τις παλιότερες δημοσιεύσεις από τα αρχεία της λίστας. Marc Fonvieille Γράφηκε από τον Σαρωτές Εικόνας image scanners Εισαγωγή Στο &os; η πρόσβαση σε σαρωτές παρέχεται από το SANE (Scanner Access Now Easy) API το οποίο διατίθεται μέσα από την συλλογή των Ports του &os;. Το SANE χρησιμοποιεί επίσης κάποιους οδηγούς συσκευών του &os; για να αποκτήσει πρόσβαση στο υλικό του σαρωτή. Το &os; υποστηρίζει σαρωτές SCSI και USB. Βεβαιωθείτε ότι ο σαρωτής σας υποστηρίζεται από το SANE πριν ξεκινήσετε οποιαδήποτε εγκατάσταση και ρύθμιση. Το SANE διαθέτει μια λίστα υποστηριζόμενων συσκευών η οποία παρέχει πληροφορίες για την υποστήριξη κάθε σαρωτή και την εξέλιξη της. Επίσης, στη σελίδα manual του &man.uscanner.4; θα βρείτε λίστα των υποστηριζόμενων USB σαρωτών. Ρύθμιση του Πυρήνα Όπως είπαμε παραπάνω, υποστηρίζονται σαρωτές τόσο SCSI όσο και USB. Ανάλογα με το τρόπο διασύνδεσης του σαρωτή σας, θα χρειαστείτε διαφορετικούς οδηγούς συσκευών. Διασύνδεση USB Ο πυρήνας GENERIC, από προεπιλογή, περιέχει τους οδηγούς συσκευών που απαιτούνται για την υποστήριξη σαρωτών USB. Αν αποφασίσετε να χρησιμοποιήσετε εξειδικευμένο πυρήνα, βεβαιωθείτε ότι έχετε τις ακόλουθες γραμμές στο αρχείο ρυθμίσεων σας: device usb device uhci device ohci device uscanner Ανάλογα με τα κυκλώματα υποστήριξης USB στη μητρική σας, θα χρειαστείτε το device uhci ή το device ohci, ωστόσο δεν υπάρχει πρόβλημα αν έχετε και τα δύο στο αρχείο ρυθμίσεων. Αν δεν θέλετε να δημιουργήσετε τον πυρήνα από την αρχή, και δεν χρησιμοποιείτε τον GENERIC μπορείτε να φορτώσετε απευθείας τον οδηγό συσκευής &man.uscanner.4; χρησιμοποιώντας την εντολή &man.kldload.8;: &prompt.root; kldload uscanner Για να φορτώνεται το module σε κάθε εκκίνηση του συστήματος σας, προσθέστε την ακόλουθη γραμμή στο αρχείο /boot/loader.conf: uscanner_load="YES" Αφού επανεκκινήσετε με το σωστό πυρήνα, ή αφού φορτώσετε το απαραίτητο module, συνδέστε το USB σαρωτή σας. Θα πρέπει να δείτε μια γραμμή σχετική με την ανίχνευση του σαρωτή στην προσωρινή μνήμη μηνυμάτων του συστήματος (&man.dmesg.8;): uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 Η γραμμή αυτή δείχνει ότι ο σαρωτής μας χρησιμοποιεί το όνομα συσκευής /dev/uscanner0. Διασύνδεση Τύπου SCSI Αν ο σαρωτής σας έρχεται με διασύνδεση τύπου SCSI, είναι σημαντικό να γνωρίζετε τι κάρτα ελεγκτή SCSI θα χρησιμοποιήσετε. Ανάλογα με το ολοκληρωμένο κύκλωμα της κάρτας SCSI που χρησιμοποιείται, θα πρέπει να ρυθμίσετε κατάλληλα το αρχείο ρυθμίσεων πυρήνα. Ο πυρήνας GENERIC υποστηρίζει τους πιο κοινούς ελεγκτές SCSI. Βεβαιωθείτε ότι διαβάσατε το αρχείο NOTES και προσθέστε τη σωστή γραμμή στο αρχείο ρυθμίσεων πυρήνα. Εκτός από το πρόγραμμα οδήγησης του ελεγκτή SCSI, θα πρέπει ακόμα να έχετε τις ακόλουθες γραμμές στο αρχείο ρυθμίσεων του πυρήνα σας: device scbus device pass Μόλις μεταγλωττίσετε και εγκαταστήσετε τον πυρήνα, θα μπορέσετε να δείτε τις συσκευές στην προσωρινή μνήμη μηνυμάτων συστήματος, κατά τη διάρκεια της εκκίνησης: pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers Αν ο σαρωτής σας δεν ήταν ενεργοποιημένος κατά την εκκίνηση του συστήματος σας, είναι ακόμα δυνατόν να εξαναγκάσετε τον εντοπισμό του, εκτελώντας ανίχνευση του διαύλου SCSI με την βοήθεια της εντολής &man.camcontrol.8;: &prompt.root; camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful Ο σαρωτής θα εμφανιστεί τότε στη λίστα των συσκευών SCSI: &prompt.root; camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0) Περισσότερες πληροφορίες σχετικά με τις συσκευές SCSI είναι διαθέσιμες στις σελίδες manual &man.scsi.4; και &man.camcontrol.8;. Ρύθμιση του SANE Το σύστημα SANE χωρίζεται σε δύο κομμάτια: στο backend (graphics/sane-backends) και στο frontend (graphics/sane-frontends). Το backend παρέχει πρόσβαση στον ίδιο το σαρωτή. Στη λίστα υποστηριζόμενων συσκευών του SANE μπορείτε να βρείτε ποιο backend υποστηρίζει τον σαρωτή σας. Είναι υποχρεωτικό να βρείτε το σωστό backend για να μπορέσετε να χρησιμοποιήσετε το σαρωτή σας. Το τμήμα του frontend παρέχει το γραφικό περιβάλλον εργασίας για τη σάρωση (xscanimage). Το πρώτο βήμα είναι να εγκαταστήσετε το port ή το πακέτο graphics/sane-backends. Μετά χρησιμοποιήστε την εντολή sane-find-scanner για να ελέγξετε την ανίχνευση του σαρωτή σας από το σύστημα SANE: &prompt.root; sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 Η έξοδος θα σας δείξει το είδος σύνδεσης του σαρωτή καθώς και το όνομα συσκευής που χρησιμοποιείται για τη σύνδεση με το σύστημα σας. Το όνομα του κατασκευαστή και του μοντέλου ίσως να μην εμφανιστούν, αλλά αυτό δεν είναι σημαντικό. Ορισμένοι USB σαρωτές απαιτούν τη φόρτωση firmware. Η διαδικασία εξηγείται στη σελίδα manual του backend. Θα πρέπει επίσης να διαβάσετε τις σελίδες manual &man.sane-find-scanner.1; και &man.sane.7;. Πρέπει τώρα να ελέγξουμε αν ο σαρωτής θα αναγνωριστεί από το frontend πρόγραμμα σάρωσης. Από προεπιλογή, το SANE backend έρχεται με ένα εργαλείο γραμμής εντολών, το &man.scanimage.1;. Η εντολή αυτή σας επιτρέπει την απαρίθμηση των συσκευών και τη σάρωσης εικόνας από τη γραμμή εντολών. Η επιλογή χρησιμοποιείται για την απαρίθμηση των συσκευών σάρωσης: &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner Αν δεν δείτε έξοδο, ή δείτε ένα μήνυμα ότι δεν ανιχνεύθηκε σαρωτής, σημαίνει ότι το &man.scanimage.1; δεν μπόρεσε να αναγνωρίσει το σαρωτή. Αν συμβεί αυτό, θα χρειαστεί να επεξεργαστείτε το αρχείο ρυθμίσεων του backend και να ορίσετε το σαρωτή που θα χρησιμοποιηθεί. Ο κατάλογος /usr/local/etc/sane.d/ περιέχει όλα τα αρχεία ρυθμίσεων του backend. Το πρόβλημα αναγνώρισης εμφανίζεται σε ορισμένα μοντέλα USB σαρωτών. Για παράδειγμα, με το σαρωτή USB που χρησιμοποιείται στο , η εντολή sane-find-scanner δίνει τις ακόλουθες πληροφορίες: &prompt.root; sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 Ο σαρωτής βρέθηκε, χρησιμοποιεί διασύνδεση USB και το όνομα συσκευής του είναι /dev/uscanner0. Τώρα πρέπει να δούμε αν αναγνωρίζεται και σωστά: &prompt.root; scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages). Αφού ο σαρωτής δεν αναγνωρίστηκε, θα χρειαστεί να επεξεργαστούμε το αρχείο /usr/local/etc/sane.d/epson.conf. Το μοντέλο σαρωτή που χρησιμοποιήθηκε ήταν το &epson.perfection; 1650, έτσι ξέρουμε ότι ο σαρωτής θα χρησιμοποιεί το backend epson. Βεβαιωθείτε ότι διαβάσατε τα βοηθητικά σχόλια στα αρχεία ρυθμίσεων του backend. Είναι αρκετά απλό να αλλάξετε γραμμές: Μετατρέψτε σε σχόλια όσες γραμμές δείχνουν λάθος τύπο διασύνδεσης για το σαρωτή σας (στην περίπτωση μας θα μετατρέψουμε σε σχόλια όλες τις γραμμές που ξεκινάνε με τη λέξη scsi καθώς ο σαρωτής μας χρησιμοποιεί διασύνδεση USB), και προσθέστε στο τέλος του αρχείου μια γραμμή που να ορίζει το είδος διασύνδεσης και το όνομα συσκευής που χρησιμοποιείτε. Στην περίπτωση μας προσθέσαμε την ακόλουθη γραμμή: usb /dev/uscanner0 Σας παρακαλούμε να βεβαιωθείτε ότι διαβάσατε τα σχόλια που παρέχονται στο αρχείο ρυθμίσεων του backend καθώς και στις αντίστοιχες σελίδες manual για περισσότερες λεπτομέρειες καθώς και για τη σύνταξη που πρέπει να χρησιμοποιήσετε. Μπορούμε τώρα να επιβεβαιώσουμε ότι ο σαρωτής αναγνωρίζεται: &prompt.root; scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner Ο USB σαρωτής μας αναγνωρίστηκε. Δεν είναι σημαντικό ότι η μάρκα και το μοντέλο δεν ταιριάζουν ακριβώς με το δικό μας. Το βασικό σημείο είναι το πεδίο `epson:/dev/uscanner0', το οποίο δείχνει το σωστό backend και όνομα συσκευής. Μόλις η εντολή scanimage -L μπορέσει να δει το σαρωτή, η ρύθμιση έχει ολοκληρωθεί. Η συσκευή είναι έτοιμη να χρησιμοποιηθεί. Αν και η &man.scanimage.1; μας επιτρέπει να σαρώσουμε εικόνα από τη γραμμή εντολών, είναι προτιμότερο να χρησιμοποιήσουμε κάποιο πρόγραμμα σε γραφικό περιβάλλον για την εργασία αυτή. Το SANE μας προσφέρει ένα απλό αλλά αποδοτικό γραφικό περιβάλλον: το xscanimage (graphics/sane-frontends). Το Xsane (graphics/xsane) είναι επίσης ένα δημοφιλές frontend πρόγραμμα σάρωσης. To frontend αυτό προσφέρει προχωρημένες δυνατότητες, όπως διαφορετικούς τρόπους σάρωσης (φωτοτυπία, fax, κλπ) διόρθωση χρωμάτων, πολλαπλή σάρωση κ.α. Και οι δύο αυτές εφαρμογές διατίθενται επίσης σαν πρόσθετο (plugin) πρόγραμμα για χρήση με το GIMP. Δίνοντας σε Άλλους Χρήστες Πρόσβαση στο Σαρωτή σας Όλες οι παραπάνω λειτουργίες έγιναν με τα προνόμια του χρήστη root. Μπορεί ωστόσο, να θέλετε να δώσετε πρόσβαση στο σαρωτή σας και σε άλλους χρήστες. Ο χρήστης χρειάζεται άδεια ανάγνωσης και εγγραφής στο αρχείο συσκευής που χρησιμοποιείται από το σαρωτή. Σαν παράδειγμα, ο σαρωτής μας χρησιμοποιεί το αρχείο συσκευής /dev/uscanner0 το οποίο ανήκει στην ομάδα operator. Αν προσθέσετε το χρήστη joe στην ομάδα operator θα του επιτρέψετε να χρησιμοποιήσει το σαρωτή: &prompt.root; pw groupmod operator -m joe Για περισσότερες πληροφορίες διαβάστε τη σελίδα του manual &man.pw.8;. Θα πρέπει επίσης να ρυθμίσετε τις σωστές άδειες για εγγραφή (0660 ή 0664) στο αρχείο συσκευής /dev/uscanner0. Από προεπιλογή, η ομάδα operator μπορεί μόνο να διαβάσει το αρχείο συσκευής. Αυτό μπορεί να γίνει προσθέτοντας τις ακόλουθες γραμμές στο αρχείο /etc/devfs.rules: [system=5] add path uscanner0 mode 660 Έπειτα, προσθέστε την ακόλουθη γραμμή στο αρχείο /etc/rc.conf και επανεκκινήστε το μηχάνημα: devfs_system_ruleset="system" Περισσότερες πληροφορίες σχετικά με αυτές τις γραμμές, μπορείτε να βρείτε στη σελίδα manual του &man.devfs.8;. Φυσικά, για λόγους ασφαλείας, θα πρέπει να σκεφτείτε σοβαρά πριν προσθέσετε ένα χρήστη σε μια ομάδα, ειδικά αν πρόκειται για την ομάδα operator. diff --git a/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml b/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml index 5580006c7a..7c1b2bad29 100644 --- a/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml @@ -1,63 +1,64 @@ Κλειδιά PGP pgp keys Στο παράρτημα αυτό, θα βρείτε τα δημόσια PGP κλειδιά των officers και των μελών της ομάδας ανάπτυξης του &os;. Μπορείτε να τα χρησιμοποιήσετε για να ελέγξετε μια ψηφιακή υπογραφή ή για να στείλετε κρυπτογραφημένο email σε κάποιο μέλος της ομάδας. Μπορείτε να κατεβάσετε την πλήρη λίστα από κλειδιά χρηστών του FreeBSD.org, από την τοποθεσία http://www.FreeBSD.org/doc/pgpkeyring.txt. Officers §ion.pgpkeys-officers; Μέλη της Ομάδας Core §ion.pgpkeys-core; Μέλη της Ομάδας Ανάπτυξης §ion.pgpkeys-developers; diff --git a/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml b/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml index 4e9f087ec5..1d9bc2bd75 100644 --- a/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml @@ -1,5230 +1,5231 @@ Sean Kelly Συνεισφορά από τον Jim Mock Αναδομήθηκε και ανανεώθηκε από τον Εκτυπώσεις Σύνοψη LPD σύστημα spooling εκτυπώσεις Μπορείτε να χρησιμοποιήσετε το &os; για να κάνετε εκτυπώσεις σε διάφορους τύπους εκτυπωτών, από τον παλαιότερο κρουστικό ως τον πιο σύγχρονο laser εκτυπωτή, καθώς και οποιασδήποτε άλλης τεχνολογίας ανάμεσα τους, και να δημιουργήσετε εκτυπώσεις υψηλής ποιότητας με τις εφαρμογές που εκτελείτε. Το &os; μπορεί επίσης να ρυθμιστεί ώστε να λειτουργεί ως εξυπηρετητής εκτυπώσεων δικτύου. Με αυτή τη δυνατότητα το &os; μπορεί να λαμβάνει εργασίες εκτύπωσης από διάφορους άλλους υπολογιστές, συμπεριλαμβανομένων υπολογιστών &os;, &windows; και &macos;. Το &os; μπορεί να εξασφαλίζει ότι μόνο μια εργασία θα τυπώνεται κάθε χρονική στιγμή και μπορεί να τηρεί στατιστικά για τους χρήστες και τα μηχανήματα που θα κάνουν τις περισσότερες εκτυπώσεις, να παράγει σελίδες banner που να δείχνουν σε ποιόν ανήκει η κάθε εκτύπωση, και πολλά άλλα. Αφού διαβάσετε αυτό το κεφάλαιο θα ξέρετε: Πως να ρυθμίσετε την ουρά εκτυπώσεων (print spooler) του &os;. Πως να εγκαθιστάτε φίλτρα εκτύπωσης, να χειρίζεστε ειδικές εργασίες εκτύπωσης (π.χ. τη μετατροπή εισερχόμενων κειμένων σε μορφές εκτύπωσης που είναι κατανοητές από τους εκτυπωτές σας). Πως να ενεργοποιήσετε σελίδες τύπου κεφαλίδας ή banner στις εκτυπώσεις σας. Πως να εκτυπώνετε σε εκτυπωτές που είναι συνδεδεμένοι σε άλλους υπολογιστές. Πως να εκτυπώνετε σε εκτυπωτές που είναι συνδεδεμένοι απευθείας στο δίκτυο. Πως να ελέγχετε τους περιορισμούς εκτύπωσης, συμπεριλαμβανομένων των περιορισμών μεγέθους των εργασιών εκτύπωσης, και πως να παρεμποδίζετε την δυνατότητα εκτύπωσης σε συγκεκριμένους χρήστες. Πως να κρατήσετε στατιστικά για τον εκτυπωτή, και καταγραφή για τη χρήση του εκτυπωτή από κάθε χρήστη. Πως να αντιμετωπίσετε προβλήματα στις εκτυπώσεις. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να γνωρίζετε πως να ρυθμίσετε και να εγκαταστήσετε ένα νέο πυρήνα (). Εισαγωγή Για να χρησιμοποιήσετε εκτυπωτές στο &os;, θα χρειαστεί να ρυθμίσετε τη λειτουργία τους με το σύστημα παροχέτευσης (spooling) εκτυπωτών γραμμής του Berkeley, γνωστό επίσης και ως σύστημα παροχέτευσης LPD, ή απλά LPD. Αυτό είναι το προκαθορισμένο σύστημα ελέγχου εκτυπωτών στο &os;. Το κεφάλαιο αυτό είναι μια εισαγωγή στο LPD και θα σας καθοδηγήσει στις ρυθμίσεις του. Εάν σας είναι οικείο το LPD ή κάποιο άλλο σύστημα παροχέτευσης εκτυπωτών, τότε μπορείτε να μεταπηδήσετε στην ενότητα Βασική Εγκατάσταση. Το LPD μπορεί να ελέγχει εξ' ολοκλήρου όλες τις λειτουργίες των εκτυπωτών ενός υπολογιστή. Είναι κυρίως υπεύθυνο για ένα πλήθος λειτουργιών: Ελέγχει την πρόσβαση σε απευθείας συνδεμένους εκτυπωτές και εκτυπωτές προσαρτημένους σε άλλους κόμβους στο δίκτυο. εργασίες εκτύπωσης Επιτρέπει σε χρήστες να στέλνουν αρχεία προς εκτύπωση. Οι αποστολές αυτές είναι γνωστές ως εργασίες (jobs). Διατηρεί ουρά αναμονής (queue) για κάθε εκτυπωτή, ώστε να προλαμβάνει την ταυτόχρονη πρόσβαση από πολλούς χρήστες. Μπορεί να εκτυπώνει σελίδες κεφαλίδας (γνωστές επίσης ως banner ή σελίδες burst) ώστε οι χρήστες να μπορούν εύκολα να ξεχωρίσουν τις εργασίες τους μέσα στην στοίβα εκτυπώσεων. Φροντίζει για την ορθότητα των παραμέτρων επικοινωνίας των εκτυπωτών που είναι συνδεδεμένοι σε σειριακές θύρες. Μπορεί μέσω του δικτύου να στείλει εργασίες σε σύστημα παροχέτευσης LPD διαφορετικού υπολογιστή. Μπορεί να εκτελέσει διάφορα φίλτρα για να προσαρμόσει εργασίες ώστε να είναι δυνατή η εκτύπωση τους σε εκτυπωτές που χρησιμοποιούν διαφορετικές γλώσσες ή έχουν διαφορετικές δυνατότητες. Μπορεί να κάνει καταμέτρηση χρήσης του εκτυπωτή. Μέσω του αρχείου ρύθμισης (/etc/printcap), και με τη βοήθεια ειδικών προγραμμάτων φίλτρων, μπορείτε να ενεργοποιήσετε το σύστημα LPD να κάνει όλες ή κάποιες από τις παραπάνω εργασίες σε μια μεγάλη γκάμα συσκευών εκτύπωσης. Γιατί θα πρέπει να χρησιμοποιείτε τον Spooler Αν είστε ο μοναδικός χρήστης του συστήματος, θα αναρωτιέστε γιατί θα έπρεπε να ενδιαφερθείτε για τον spooler αφού δεν χρειάζεστε έλεγχο πρόσβασης, σελίδες κεφαλίδας, ή αναφορές εκτύπωσης. Αν και μπορείτε να ενεργοποιήσετε την άμεση πρόσβαση στον εκτυπωτή, είναι καλύτερα να χρησιμοποιείτε τον spooler για τους παρακάτω λόγους: το LPD εκτυπώνει τις εργασίες στο παρασκήνιο, δεν χρειάζεται να περιμένετε να αντιγραφούν τα δεδομένα στον εκτυπωτή. &tex; Το LPD μπορεί άνετα να εκτελεί μια εργασία εκτύπωσης διαμέσου φίλτρων και να προσθέτει κεφαλίδες ημερομηνίας/ώρας ή να μετατρέπει κάποιο ειδικό τύπο αρχείου (όπως ένα αρχείο &tex; DVI) σε ένα τύπο κατανοητό από τον εκτυπωτή σας. Αυτές οι διαδικασίες δεν χρειάζεται να γίνονται χειροκίνητα. Πολλά από τα ελεύθερα και εμπορικά διαθέσιμα προγράμματα που παρέχουν διευκολύνσεις στην εκτύπωση, συνήθως επιζητούν να επικοινωνήσουν με τον spooler του συστήματος σας. Ρυθμίζοντας το σύστημα παροχέτευσης, θα μπορείτε ευκολότερα να υποστηρίζετε λογισμικό τρίτων, που μπορεί ήδη να έχετε ή που πρόκειται να εγκαταστήσετε στο μέλλον. Βασική Εγκατάσταση Για να χρησιμοποιήσετε εκτυπωτές με το σύστημα παροχέτευσης LPD, θα πρέπει να εγκαταστήσετε τόσο το hardware του εκτυπωτή σας όσο και το λογισμικό LPD. Αυτό το έγγραφο περιγράφει την εγκατάσταση σε δύο στάδια: Δείτε την ενότητα Βασικές Ρυθμίσεις Εκτυπωτών για να μάθετε πως γίνεται η σύνδεση εκτυπωτών, με ποιο τρόπο επικοινωνεί το LPD με τους εκτυπωτές, και πως να εκτυπώνετε απλά αρχεία κειμένου. Δείτε την ενότητα Ρυθμίσεις Εκτυπωτών για Προχωρημένους για να μάθετε πως να εκτυπώνετε αρχεία ειδικής μορφής διαφόρων τύπων, πως να εκτυπώνετε σελίδες κεφαλίδας, πως να εκτυπώνετε σε ένα δίκτυο, πως να ελέγχετε την πρόσβαση στους εκτυπωτές, και πως να χρησιμοποιείτε την καταγραφή εκτυπώσεων. Βασικές Ρυθμίσεις Εκτυπωτών Αυτή η ενότητα περιγράφει πως να ρυθμίσετε το hardware του εκτυπωτή και το λογισμικό LPD. Παρέχει βασικές γνώσεις για τα εξής θέματα: Η Ενότητα Ρυθμίσεις Hardware υποδεικνύει πως να συνδέσετε τον εκτυπωτή σε μια θύρα του υπολογιστή σας. Η Ενότητα Ρυθμίσεις Λογισμικού υποδεικνύει πως να εγκαταστήσετε το αρχείο ρύθμισης του συστήματος παροχέτευσης LPD: το αρχείο /etc/printcap. Αν προσπαθείτε να εγκαταστήσετε έναν εκτυπωτή που δέχεται δεδομένα μέσω πρωτοκόλλου δικτύου και όχι μέσω διασύνδεσης τοπικής θύρας, τότε δείτε την ενότητα Εκτυπωτές Με Συνδέσεις Δικτύου. Αν και αυτή η ενότητα ονομάζεται Βασικές Ρυθμίσεις Εκτυπωτών, στην πραγματικότητα είναι αρκετά περίπλοκη. Το δυσκολότερο στάδιο στην εγκατάσταση είναι η επιτυχής λειτουργία στην επικοινωνία του εκτυπωτή με τον υπολογιστή σας και το σύστημα παροχέτευσης LPD. Οι επιλογές για προχωρημένους, όπως οι σελίδες κεφαλίδας και αναφοράς είναι σχετικά εύκολες να επιτευχθούν, μετά την επιτυχή ρύθμιση της βασικής λειτουργίας εκτύπωσης. Ρυθμίσεις Hardware Αυτή η ενότητα εξηγεί τους διάφορους τρόπους σύνδεσης του εκτυπωτή με τον υπολογιστή σας. Περιγράφει τους διάφορους τύπους θυρών και καλωδίων, και τις ρυθμίσεις που πρέπει να κάνετε στον πυρήνα για να ενεργοποιήσετε την επικοινωνία μεταξύ &os; και εκτυπωτή. Αν ήδη έχετε καταφέρει να συνδέσετε τον εκτυπωτή σας και έχετε εκτυπώσει επιτυχώς σε άλλο λειτουργικό σύστημα, τότε μπορείτε να μεταβείτε κατευθείαν στην ενότητα Ρυθμίσεις Λογισμικού. Θύρες και Καλώδια Οι εκτυπωτές που διατίθενται σήμερα για χρήση με Η/Υ παρέχονται με μία ή περισσότερες εκ των ακολούθων τριών διασυνδέσεων: εκτυπωτές σειριακοί Οι Σειριακές διασυνδέσεις, γνωστές και ως RS-232 ή θύρες COM, χρησιμοποιούν την σειριακή θύρα του υπολογιστή σας για να στείλουν δεδομένα στον εκτυπωτή. Οι σειριακές διασυνδέσεις είναι συνήθεις στην βιομηχανία κατασκευής Η/Υ και τα καλώδια είναι εκτενώς διαδεδομένα και επίσης εύκολα να κατασκευαστούν. Οι σειριακές διασυνδέσεις μερικές φορές χρειάζονται ειδικά καλώδια και μπορεί να σας ζητηθούν πολύπλοκες επικοινωνιακές ρυθμίσεις. Οι περισσότερες σειριακές θύρες των Η/Υ έχουν μέγιστη ταχύτητα μετάδοσης 115200 bps, κάνοντας δύσκολη την εργασία εκτύπωσης γραφικών μεγάλων διαστάσεων. εκτυπωτές παράλληλοι Οι Παράλληλες διασυνδέσεις χρησιμοποιούν την παράλληλη θύρα του υπολογιστή σας για να στέλνουν δεδομένα στον εκτυπωτή. Οι παράλληλες διασυνδέσεις είναι διαδεδομένες στο εμπόριο και είναι γρηγορότερες από τις σειριακές RS-232. Τα καλώδια διατίθενται έτοιμα, αλλά είναι δυσκολότερο να κατασκευαστούν χειρωνακτικά. Με τις παράλληλες διασυνδέσεις δεν προβλέπονται επιλογές ρύθμισης επικοινωνίας, κάνοντας την ρύθμιση τους εξαιρετικά απλή. centronics παράλληλοι εκτυπωτές Οι παράλληλες διασυνδέσεις είναι γνωστές και ως διασυνδέσεις Centronics, ονομασία προερχόμενη από τον τύπο του ακροδέκτη του εκτυπωτή. εκτυπωτές USB Οι διασυνδέσεις USB, συντομογραφία από το Universal Serial Bus, δουλεύουν σε ακόμη μεγαλύτερες ταχύτητες από την παράλληλη και την RS-232 σειριακή διασύνδεση. Τα καλώδια τους είναι απλά και φτηνά. Η USB είναι ανώτερη από την Σειριακή RS-232 και από την Παράλληλη στην εκτύπωση, αλλά δυστυχώς δεν υποστηρίζεται καλά από τα συστήματα &unix;. Ένας τρόπος για να αποφύγετε αυτό το πρόβλημα είναι να αγοράσετε εκτυπωτή που φέρει διασύνδεση USB και Παράλληλη, όπως συμβαίνει με πολλούς εκτυπωτές. Γενικά, οι Παράλληλες διασυνδέσεις προσφέρουν συνήθως μίας κατεύθυνσης επικοινωνία (από τον υπολογιστή στον εκτυπωτή) ενώ η σειριακή και η USB δίνουν αμφίδρομη. Στο &os; οι πιο πρόσφατες παράλληλες θύρες (EPP και ECP) καταφέρνουν αμφίδρομη επικοινωνία με τους εκτυπωτές, όταν χρησιμοποιούνται καλώδια που συμμορφώνονται με το πρότυπο IEEE-1284. PostScript Η αμφίδρομη επικοινωνία με εκτυπωτές διαμέσου παράλληλης θύρας μπορεί να επιτευχθεί γενικά με δύο τρόπους. Ο πρώτος τρόπος χρησιμοποιεί ένα προσαρμοσμένο πρόγραμμα οδήγησης εκτυπωτή, ώστε να μπορεί το &os; να συνομιλεί στην γλώσσα του εκτυπωτή. Αυτό είναι σύνηθες με εκτυπωτές inkjet και μπορεί επίσης να χρησιμοποιηθεί για αναφορές διαθέσιμης ποσότητας μελανιού και για άλλες πληροφορίες λειτουργίας. Η δεύτερη μέθοδος χρησιμοποιείται όταν ο εκτυπωτής έχει δυνατότητα υποστήριξης &postscript;. Οι εργασίες &postscript; είναι στην πραγματικότητα προγράμματα που αποστέλλονται στον εκτυπωτή, δεν είναι απαραίτητο να παράγουν εκτυπώσεις, ενώ μπορούν να επιστρέψουν το αποτέλεσμα τους απευθείας στον υπολογιστή. Το &postscript; χρησιμοποιεί αμφίδρομη επικοινωνία για να ενημερώσει τον υπολογιστή για τυχόν προβλήματα, όπως σφάλματα στο πρόγραμμα &postscript; ή μπλοκάρισμα τροφοδοσίας χαρτιού. Οι χρήστες σας, θα σας είναι ευγνώμονες για αυτές τις πληροφορίες. Επιπλέον, ο καλύτερος τρόπος για να κάνετε σωστή καταμέτρηση με ένα αμφίδρομο εκτυπωτή &postscript; είναι: να ρωτήσετε τον εκτυπωτή για την συνολική καταμέτρηση των σελίδων του (πόσες σελίδες εκτύπωσε σε όλη τη διάρκεια ζωής του), μετά να αποστείλετε την εργασία του χρήστη, και έπειτα να ξαναρωτήσετε για την καταμέτρηση των σελίδων του. Αφαιρέστε τις δύο τιμές και θα γνωρίζετε πόσες σελίδες να χρεώσετε στον χρήστη. Παράλληλες Θύρες Για να συνδέσετε έναν εκτυπωτή σε παράλληλη θύρα, συνδέστε το καλώδιο Centronics μεταξύ εκτυπωτή και υπολογιστή. Οι οδηγίες που συνοδεύουν τον εκτυπωτή και τον υπολογιστή θα σας καθοδηγήσουν να ολοκληρώσετε την σύνδεση. Θυμηθείτε ποια παράλληλη θύρα χρησιμοποιείτε στον υπολογιστή. Η πρώτη παράλληλη θύρα στο &os; είναι η ppc0, η δεύτερη είναι η ppc1, και ούτω καθεξής. Το όνομα συσκευής του εκτυπωτή χρησιμοποιεί την ίδια αρίθμηση: /dev/lpt0 για τον εκτυπωτή στην πρώτη παράλληλη θύρα κ.τ.λ. Σειριακές Θύρες Για να συνδέσετε έναν εκτυπωτή χρησιμοποιώντας σειριακή διασύνδεση, συνδέστε το κατάλληλο σειριακό καλώδιο μεταξύ εκτυπωτή και υπολογιστή. Οι οδηγίες που συνοδεύουν τον εκτυπωτή και τον υπολογιστή σας, θα σας καθοδηγήσουν να ολοκληρώσετε την σύνδεση. Αν δεν είστε σίγουροι ποιο είναι το κατάλληλο σειριακό καλώδιο, μπορείτε να δοκιμάσετε μία από τις ακόλουθες εναλλακτικές: Ένα καλώδιο modem ενώνει κάθε pin του ακροδέκτη από τη μια πλευρά του καλωδίου κατευθείαν με το αντίστοιχο pin του ακροδέκτη στο άλλο άκρο. Αυτός ο τύπος καλωδίου είναι γνωστός και ως καλώδιο DTE-to-DCE. null-modem cable Ένα καλώδιο null-modem ενώνει κατευθείαν μερικά pins, ανταλλάσσει μερικά άλλα (για παράδειγμα, τα pins αποστολής και λήψης), ενώ βραχυκυκλώνει μερικά άλλα, εσωτερικά, στο προστατευτικό κάλυμμα κάθε ακροδέκτη. Αυτός ο τύπος καλωδίου είναι γνωστός και ως καλώδιο DTE-to-DTE. Ένα καλώδιο σειριακού εκτυπωτή, που απαιτείται από κάποιους λιγότερο συνηθισμένους εκτυπωτές, είναι σαν το καλώδιο null-modem, αλλά στέλνει ισοδύναμα σήματα και στα δύο άκρα αντί να τα βραχυκυκλώνει εσωτερικά. ρυθμός baud ισοδυναμία πρωτόκολλο ελέγχου ροής Θα πρέπει επίσης να ρυθμίσετε τις παραμέτρους επικοινωνίας του εκτυπωτή, συνήθως από τον μπροστινό πίνακα ελέγχου ή από τους DIP διακόπτες του. Επιλέξτε την μέγιστη τιμή bps (bits per second = bits ανά δευτερόλεπτο, αναφέρεται και ως ρυθμός baud) που υποστηρίζουν ο υπολογιστής και ο εκτυπωτής σας. Επιλέξτε 7 ή 8 data bits, none, even, ή odd parity, και 1 ή 2 stop bits. Επίσης επιλέξτε ένα πρωτόκολλο ελέγχου ροής: είτε none, ή XON/XOFF (αναφέρεται και ως έλεγχος ροής in-band ή software). Να θυμάστε αυτές τις ρυθμίσεις, για το στάδιο ρύθμισης λογισμικού που ακολουθεί. Ρυθμίσεις Λογισμικού Αυτή η ενότητα περιγράφει τις αναγκαίες ρυθμίσεις που πρέπει να γίνουν στο λογισμικό για να μπορείτε να εκτυπώνετε με το σύστημα παροχέτευσης εκτυπωτών LPD στο &os;. Μια γενική άποψη των ενεργειών που πρέπει να ακολουθήσετε είναι: Ρυθμίστε τον πυρήνα σας, αν είναι αναγκαίο, για την θύρα που χρησιμοποιείτε για τον εκτυπωτή σας. Οι απαραίτητες ρυθμίσεις περιγράφονται στην ενότητα Ρυθμίσεις Πυρήνα. Ρυθμίστε την κατάσταση επικοινωνίας για την παράλληλη θύρα, αν πρόκειται να την χρησιμοποιήσετε. Η ενότητα Ρυθμίσεις Κατάστασης Επικοινωνίας για την Παράλληλη Θύρα περιέχει λεπτομέρειες. Ελέγξτε αν το λειτουργικό σύστημα μπορεί να στείλει δεδομένα στον εκτυπωτή. Η ενότητα Έλεγχος Επικοινωνίας του Εκτυπωτή παρέχει μερικές συμβουλές για το πως θα μπορούσε να γίνει ο έλεγχος. Ρυθμίστε το LPD για τον εκτυπωτή σας, τροποποιώντας το αρχείο /etc/printcap. Θα βρείτε οδηγίες για αυτές τις ρυθμίσεις σε επόμενο τμήμα αυτού του κεφαλαίου. Ρυθμίσεις Πυρήνα Ο πυρήνας του λειτουργικού συστήματος έχει μεταγλωττιστεί έτσι ώστε να δουλεύει με ένα συγκεκριμένο σύνολο συσκευών. Η σειριακή και η παράλληλη διασύνδεση του εκτυπωτή είναι μέρος αυτού του συνόλου. Επομένως, ίσως να είναι αναγκαίο να προσθέσετε υποστήριξη για κάποια πρόσθετη σειριακή ή παράλληλη θύρα, αν δεν είναι ήδη ρυθμισμένη στον πυρήνα σας. Για να ελέγξετε αν ο πυρήνας σας μπορεί να υποστηρίξει μια σειριακή διασύνδεση, πληκτρολογήστε: &prompt.root; grep sioN /var/run/dmesg.boot Όπου N είναι ο αριθμός της σειριακής θύρας, ξεκινώντας από το μηδέν. Αν δείτε στην έξοδο του τερματικού σας κάτι παρόμοιο με: sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A τότε ο πυρήνας υποστηρίζει αυτή τη θύρα. Για να ελέγξετε αν ο πυρήνας σας υποστηρίζει παράλληλες διασυνδέσεις, πληκτρολογήστε: &prompt.root; grep ppcN /var/run/dmesg.boot Όπου N είναι ο αριθμός της παράλληλης θύρας, ξεκινώντας από το μηδέν. Αν δείτε στην έξοδο του τερματικού σας κάτι παρόμοιο με: ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold τότε ο πυρήνας υποστηρίζει αυτή τη θύρα. Για να μπορεί το λειτουργικό σύστημα να αναγνωρίζει και να χρησιμοποιεί την θύρα (παράλληλη ή σειριακή) για τον εκτυπωτή σας, ίσως χρειαστεί να επαναπροσαρμόσετε τον πυρήνα σας. Για την υποστήριξη σειριακής θύρας, δείτε την ενότητα στις ρυθμίσεις του πυρήνα. Για την υποστήριξη παράλληλης θύρας, δείτε την ίδια ενότητα και την ενότητα που ακολουθεί. Ρυθμίσεις Κατάστασης Επικοινωνίας για την Παράλληλη Θύρα Όταν χρησιμοποιείτε την παράλληλη διασύνδεση, μπορείτε να επιλέξετε αν η επικοινωνία του &os; με τον εκτυπωτή θα είναι τύπου interrupt-driven ή polled. Ο γενικός οδηγός συσκευής του εκτυπωτή (&man.lpt.4;) στο &os; χρησιμοποιεί το σύστημα &man.ppbus.4;, το οποίο ελέγχει την θύρα του chipset με τον οδηγό &man.ppc.4;. Η μέθοδος interrupt-driven είναι προεπιλεγμένη στον πυρήνα GENERIC. Με αυτή τη μέθοδο, το λειτουργικό σύστημα χρησιμοποιεί ένα σήμα IRQ για να προσδιορίσει αν ο εκτυπωτής είναι έτοιμος για δεδομένα. Η μέθοδος polled οδηγεί το λειτουργικό σύστημα να ζητά κατά επανάληψη από τον εκτυπωτή αν είναι έτοιμος για πρόσθετα δεδομένα. Όταν απαντήσει θετικά, ο πυρήνας στέλνει πρόσθετα δεδομένα. Η μέθοδος interrupt-driven είναι συνήθως κάπως γρηγορότερη αλλά χρησιμοποιεί μια πολύτιμη γραμμή IRQ. Έχει παρατηρηθεί πως κάποιοι σύγχρονοι εκτυπωτές HP δε δουλεύουν σωστά σε κατάσταση interrupt, πιθανώς λόγω κάποιων (όχι απόλυτα εξακριβωμένων) προβλημάτων συγχρονισμού. Αυτοί οι εκτυπωτές χρειάζονται την μέθοδο polled. Θα πρέπει να χρησιμοποιείτε την αποτελεσματικότερη κατάσταση λειτουργίας. Κάποιοι εκτυπωτές δουλεύουν και στις δυο καταστάσεις, αλλά είναι οδυνηρά αργοί στην κατάσταση λειτουργίας interrupt. Μπορείτε να ρυθμίσετε την κατάσταση επικοινωνίας με δύο τρόπους: ρυθμίζοντας τον πυρήνα ή χρησιμοποιώντας το πρόγραμμα &man.lptcontrol.8;. Για να θέσετε την κατάσταση επικοινωνίας ρυθμίζοντας τον πυρήνα: Επεξεργαστείτε το αρχείο ρύθμισης του πυρήνα. Δείτε την καταχώριση ppc0. Αν εγκαθιστάτε την δεύτερη παράλληλη θύρα, τότε χρησιμοποιείστε ppc1. Για την τρίτη θύρα ppc2 και ούτω καθεξής. Αν επιθυμείτε κατάσταση λειτουργίας interrupt-driven, επεξεργαστείτε την ακόλουθη γραμμή: hint.ppc.0.irq="N" στο αρχείο /boot/device.hints και αντικαταστήστε το N με τον σωστό αριθμό IRQ. Το αρχείο ρύθμισης του πυρήνα πρέπει επίσης να περιέχει τον οδηγό &man.ppc.4;: device ppc Αν επιθυμείτε κατάσταση λειτουργίας polled, διαγράψτε από το αρχείο /boot/device.hints, την ακόλουθη γραμμή: hint.ppc.0.irq="N" Σε μερικές περιπτώσεις, το παραπάνω δεν είναι αρκετό για να θέσετε την θύρα σε κατάσταση polled. Τις περισσότερες φορές το πρόβλημα προέρχεται από τον οδηγό &man.acpi.4;, ο οποίος έχει την ευχέρεια να εξετάζει και να προσαρτά συσκευές, και επομένως, να ελέγχει τον τρόπο πρόσβασης στην θύρα του εκτυπωτή. Θα πρέπει να ελέγξετε τις ρυθμίσεις του &man.acpi.4; για να διορθώσετε αυτό το πρόβλημα. Αποθηκεύστε το αρχείο. Ρυθμίστε, μεταγλωττίστε, και εγκαταστήστε τον πυρήνα, και έπειτα κάντε επανεκκίνηση. Για περισσότερες λεπτομέρειες, δείτε τις ρυθμίσεις του πυρήνα. Για να θέσετε την κατάσταση επικοινωνίας με το &man.lptcontrol.8;: Πληκτρολογήστε: &prompt.root; lptcontrol /dev/lptN για να θέσετε την κατάσταση λειτουργίας interrupt-driven για το lptN. Πληκτρολογήστε: &prompt.root; lptcontrol /dev/lptN για να θέσετε την κατάσταση λειτουργίας polled για το lptN. Θα μπορούσατε να καταχωρίσετε αυτές τις εντολές στο δικό σας αρχείο /etc/rc.local. Έτσι θα εκτελούνται αυτόματα κατά την εκκίνηση του συστήματος σας. Για περισσότερες πληροφορίες δείτε το &man.lptcontrol.8;. Έλεγχος Επικοινωνίας του Εκτυπωτή Πριν συνεχίσουμε να ρυθμίζουμε το σύστημα παροχέτευσης, θα πρέπει να βεβαιωθείτε ότι το λειτουργικό σύστημα μπορεί να στείλει επιτυχώς δεδομένα στον εκτυπωτή σας. Είναι ευκολότερο να κάνουμε ξεχωριστά την αποσφαλμάτωση επικοινωνίας του εκτυπωτή και την αποσφαλμάτωση του συστήματος παροχέτευσης. Θα ελέγξουμε τον εκτυπωτή στέλνοντας μερικά δεδομένα κειμένου. Για εκείνους τους εκτυπωτές που μπορούν να εκτυπώνουν άμεσα τους χαρακτήρες που έχουν αποσταλεί, το πρόγραμμα &man.lptest.1; είναι τέλειο: Παράγει όλους τους εκτυπώσιμους χαρακτήρες (96) ASCII σε 96 γραμμές. PostScript Για εκτυπωτές &postscript; (ή που βασίζονται σε άλλη γλώσσα), θα χρειαστεί να κάνουμε ένα πιο πολύπλοκο τεστ. Ένα μικρό πρόγραμμα &postscript;, όπως αυτό που ακολουθεί, επαρκεί: %!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Is this thing working?) show showpage Ο παραπάνω κώδικας &postscript; μπορεί να τοποθετηθεί σε ένα αρχείο και να χρησιμοποιηθεί όπως υποδεικνύουν τα παραδείγματα στις ακόλουθες ενότητες. PCL Όταν αυτό το έγγραφο αναφέρεται σε μια γλώσσα εκτυπωτή, εννοείται μια γλώσσα όπως η &postscript;, αλλά όχι η PCL της Hewlett Packard — η PCL είναι μια γλώσσα ευρείας λειτουργικότητας η οποία επιτρέπει την ανάμιξη απλού κειμένου με ακολουθίες διαφυγής. Η &postscript; δεν μπορεί να εκτυπώσει άμεσα απλό κείμενο, και αυτός είναι ακριβώς ο τύπος της γλώσσας εκτυπωτή που θα πρέπει να διευθετήσουμε κατάλληλα. Έλεγχος Παράλληλου Εκτυπωτή εκτυπωτές παράλληλη Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το &os; μπορεί να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε παράλληλη θύρα. Για να ελέγξετε έναν εκτυπωτή σε παράλληλη θύρα: Γίνετε root με &man.su.1;. Στείλτε δεδομένα στον εκτυπωτή. Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο, τότε χρησιμοποιήστε το &man.lptest.1;. Πληκτρολογήστε: &prompt.root; lptest > /dev/lptN Όπου N είναι ο αριθμός της παράλληλης θύρας, ξεκινώντας από το μηδέν. Εάν ο εκτυπωτής καταλαβαίνει &postscript; ή κάποια άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα στον εκτυπωτή. Πληκτρολογήστε: &prompt.root; cat > /dev/lptN Έπειτα πληκτρολογήστε το πρόγραμμα μία προς μία γραμμή, προσεκτικά, γιατί δεν μπορείτε να επεξεργαστείτε μια γραμμή αφότου έχετε πιέσει το πλήκτρο RETURN ή ENTER. Αφού τελειώσετε με την καταχώριση του προγράμματος, πιέστε CONTROL+D, ή άλλο πλήκτρο τερματισμού αρχείου. Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα σε ένα αρχείο και να πληκτρολογήσετε: &prompt.root; cat file > /dev/lptN Όπου file είναι το όνομα του αρχείου που περιέχει το πρόγραμμα που θέλετε να στείλετε στον εκτυπωτή. Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το κείμενο δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα. Έλεγχος Σειριακού Εκτυπωτή printers serial Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το &os; μπορεί να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε σειριακή θύρα. Για να ελέγξετε έναν εκτυπωτή σε σειριακή θύρα: Γίνετε root με &man.su.1;. Επεξεργαστείτε το αρχείο /etc/remote. Προσθέστε την ακόλουθη καταχώριση: printer:dv=/dev/port:br#bps-rate:pa=parity bits-per-second serial port parity Όπου port είναι η καταχώριση συσκευής για την σειριακή πόρτα (ttyd0, ttyd1, κτλ.), bps-rate είναι η ταχύτητα bits-per-second επικοινωνίας με τον εκτυπωτή, και parity η ισοτιμία που απαιτείται από τον εκτυπωτή (even, odd, none, ή zero). Παρακάτω φαίνεται ένα υπόδειγμα καταχώρισης, για έναν εκτυπωτή συνδεδεμένο μέσω σειριακής γραμμής στην τρίτη σειριακή θύρα με ταχύτητα 19200 bps και χωρίς parity: printer:dv=/dev/ttyd2:br#19200:pa=none Συνδεθείτε στον εκτυπωτή με &man.tip.1;. Πληκτρολογήστε: &prompt.root; tip printer Αν αυτό το στάδιο δεν δουλεύει, επεξεργαστείτε πάλι το αρχείο /etc/remote και προσπαθήστε το χρησιμοποιώντας /dev/cuaaN αντί για /dev/ttydN. Στείλτε δεδομένα στον εκτυπωτή. Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο, χρησιμοποιήστε &man.lptest.1;. Γράψτε: &prompt.user; $lptest Εάν ο εκτυπωτής καταλαβαίνει &postscript; ή κάποια άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα στον εκτυπωτή. Πληκτρολογήστε το πρόγραμμα, μία προς μία γραμμή, πολύ προσεκτικά, καθώς ο εκτυπωτής μπορεί να ερμηνεύει διαφορετικά την χρήση χαρακτήρων όπως το backspace ή άλλων που παράγονται από διάφορα πλήκτρα επεξεργασίας. Μπορεί επίσης να χρειαστεί να πληκτρολογήσετε κάποιο ειδικό πλήκτρο τερματισμού αρχείου για τον εκτυπωτή ώστε να γνωρίζει πότε ολοκληρώνεται το πρόγραμμα. Για εκτυπωτές &postscript;, πιέστε CONTROL+D. Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα σε ένα αρχείο και να πληκτρολογήσετε: &prompt.user; >file Όπου file είναι το όνομα του αρχείου που περιέχει το πρόγραμμα. Αφού το &man.tip.1; στείλει το αρχείο, πιέστε το κατάλληλο πλήκτρο τερματισμού αρχείου, αν απαιτείται. Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το κείμενο δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα. Ενεργοποίηση του Spooler: το Αρχείο <filename>/etc/printcap</filename> Σε αυτό το σημείο, ο εκτυπωτής σας θα πρέπει να είναι συνδεμένος, ο πυρήνας σας ρυθμισμένος να επικοινωνεί μαζί του (αν χρειάζεται), και έχετε πετύχει να στείλετε κάποια δοκιμαστικά δεδομένα στον εκτυπωτή. Είστε τώρα έτοιμοι να ρυθμίσετε το LPD για να ελέγχετε την πρόσβαση στον εκτυπωτή σας. Μπορείτε να ρυθμίσετε το LPD με επεξεργασία του αρχείου /etc/printcap. Το σύστημα παροχέτευσης LPD διαβάζει αυτό το αρχείο κάθε φορά που χρησιμοποιείται ο spooler, επομένως πιθανές αναβαθμίσεις του μπαίνουν άμεσα σε εφαρμογή. εκτυπωτές ικανότητες Είναι εύκολο να κατανοήσετε την μορφή του αρχείου &man.printcap.5;. Χρησιμοποιήστε τον κειμενογράφο που προτιμάτε για να κάνετε αλλαγές στο /etc/printcap. Η μορφή του είναι παρόμοια με άλλα αρχεία περιγραφής δυνατοτήτων, όπως τα /usr/share/misc/termcap και /etc/remote. Δείτε την &man.cgetent.3; για λεπτομερείς πληροφορίες σχετικά με την μορφή του αρχείου. Η πιο απλή ρύθμιση του spooler αποτελείται από τα ακόλουθα βήματα: Επιλέξτε ένα όνομα (και λίγα βολικά παρωνύμια) για τον εκτυπωτή, και τοποθετήστε τα στο αρχείο /etc/printcap. Δείτε την ενότητα Ονοματοδότηση Εκτυπωτή για περισσότερες πληροφορίες σχετικά με την ονομασία των εκτυπωτών. σελίδες κεφαλίδας Απενεργοποιήστε τις σελίδες κεφαλίδας (είναι ενεργές από προεπιλογή) εισάγοντας την ικανότητα sh. Για περισσότερες πληροφορίες δείτε την ενότητα Παρεμπόδιση Σελίδων Κεφαλίδας. Δημιουργήστε ένα κατάλογο παροχέτευσης, και καθορίστε την τοποθεσία του με την ικανότητα sd. Για περισσότερες πληροφορίες δείτε την ενότητα Δημιουργία Καταλόγου Παροχέτευσης. Καθορίστε την κατάλληλη καταχώριση /dev για τον εκτυπωτή, και σημειώστε τη στο /etc/printcap με την ικανότητα lp. Για περισσότερες πληροφορίες, δείτε την ενότητα Αναγνώριση της Συσκευής Εκτύπωσης. Επίσης, αν ο εκτυπωτής είναι σε σειριακή θύρα, εγκαταστήστε τις παραμέτρους επικοινωνίας με την ικανότητα ms# η οποία αναλύεται στην ενότητα Ρυθμίσεις Παραμέτρων Επικοινωνίας του Spooler. Εγκαταστήστε φίλτρα εισόδου απλού κειμένου. Δείτε την ενότητα Εγκατάσταση Φίλτρου Κειμένου για περισσότερες πληροφορίες. Ελέγξτε την εγκατάσταση εκτυπώνοντας οτιδήποτε με την εντολή &man.lpr.1;. Περισσότερες πληροφορίες είναι διαθέσιμες στις ενότητες Δοκιμή του Spooler και Εντοπισμός Βλαβών. Εκτυπωτές που βασίζονται σε γλώσσες εκτύπωσης, όπως οι εκτυπωτές &postscript;, δεν μπορούν να εκτυπώσουν άμεσα απλό κείμενο. Ο απλός τρόπος ρύθμισης που δείξαμε παραπάνω και που θα περιγράψουμε εκτενέστερα στις επόμενες ενότητες, προϋποθέτει πως αν ρυθμίζετε έναν τέτοιο εκτυπωτή θα μπορείτε να εκτυπώσετε μόνον αρχεία γραμμένα στη γλώσσα του. Οι χρήστες συνήθως νομίζουν πως μπορούν να εκτυπώσουν απλό κείμενο σε όλους τους εκτυπωτές που είναι εγκατεστημένοι στο σύστημα τους. Τα προγράμματα που χρησιμοποιούν το LPD για να εκτυπώσουν, κάνουν ακριβώς την ίδια υπόθεση. Αν προσπαθείτε να εγκαταστήσετε έναν τέτοιο εκτυπωτή και θέλετε να μπορείτε να τυπώνετε εργασίες στην γλώσσα του εκτυπωτή αλλά και σε απλό κείμενο, σας συνιστούμε να προσθέσετε ένα επιπλέον βήμα στην διαδικασία εγκατάστασης που περιγράψαμε παραπάνω: Εγκαταστήστε ένα πρόγραμμα αυτόματης μετατροπής από απλό κείμενο σε PostScript (ή σε άλλη γλώσσα εκτυπωτή). Η ενότητα Συμβατότητα Εργασιών Απλού Κειμένου σε εκτυπωτές &postscript; εξηγεί πως να ενεργήσετε. Ονοματοδότηση Εκτυπωτή Το πρώτο (εύκολο) βήμα είναι να επιλέξετε όνομα για τον εκτυπωτή σας. Δεν έχει σημασία αν θα προτιμήσετε ένα λειτουργικό ή κάποιο εξωτικό όνομα αφού μπορείτε επίσης να προσθέσετε και μερικά παρωνύμια (aliases) για τον ίδιο εκτυπωτή. Τουλάχιστον ένας από τους εκτυπωτές που αναφέρονται στο /etc/printcap θα πρέπει να έχει το παρωνύμιο lp. Αυτή είναι η ονομασία του προεπιλεγμένου εκτυπωτή. Εάν οι χρήστες δεν έχουν την μεταβλητή περιβάλλοντος PRINTER και δεν αναφέρουν κάποιο όνομα εκτυπωτή στην γραμμή εντολών με οποιαδήποτε εντολή LPD, τότε ο lp θα είναι ο προεπιλεγμένος εκτυπωτής για τις εκτυπώσεις τους. Επίσης, είναι κοινή πρακτική το τελευταίο alias του εκτυπωτή να είναι μια πλήρης περιγραφή του εκτυπωτή, που να περιλαμβάνει τον κατασκευαστή και το μοντέλο. Αφού επιλέξετε μια ονομασία και μερικά συνήθη παρωνύμια, καταχωρίστε τα στο αρχείο /etc/printcap. Το όνομα του εκτυπωτή θα πρέπει να αναφέρεται πρώτο στο αριστερό άκρο. Διαχωρίστε κάθε παρωνύμιο με μια κάθετη μπάρα και τοποθετήστε μια άνω-κάτω τελεία μετά το τελευταίο παρωνύμιο. Στο ακόλουθο παράδειγμα, ξεκινάμε με ένα εντελώς βασικό /etc/printcap που ορίζει δύο εκτυπωτές (έναν εκτυπωτή γραμμής Diablo 630 και έναν εκτυπωτή &postscript; laser Panasonic KX-P4455): # # /etc/printcap for host rose # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: Σε αυτό το παράδειγμα, ο πρώτος εκτυπωτής ονομάζεται rattan και έχει ως παρωνύμια τα line, diablo, lp, και Diablo 630 Line Printer. Από τη στιγμή που έχει το παρωνύμιο lp, είναι και ο προεπιλεγμένος εκτυπωτής. Ο δεύτερος ονομάζεται bamboo, και έχει ως παρωνύμια τα ps, PS, S, panasonic, και Panasonic KX-P4455 PostScript v51.4. Παρεμπόδιση Σελίδων Κεφαλίδας printing header pages Το σύστημα παροχέτευσης LPD, από προεπιλογή, εκτυπώνει μια σελίδα κεφαλίδας για κάθε εργασία. Η σελίδα κεφαλίδας περιλαμβάνει το όνομα χρήστη που αιτήθηκε την εργασία, τον υπολογιστή από τον οποίον προήλθε η εργασία, και το όνομα της εργασίας, με μεγάλους όμορφους χαρακτήρες. Δυστυχώς αυτό το πρόσθετο κείμενο ακολουθεί την διαδικασία αποσφαλμάτωσης της εγκατάστασης ενός απλού εκτυπωτή, επομένως θα παρεμποδίσουμε τις σελίδες κεφαλίδας. Για την παρεμπόδιση των σελίδων κεφαλίδας, προσθέστε την ικανότητα sh στην καταχώριση για τον εκτυπωτή στο αρχείο /etc/printcap. Εδώ βλέπετε ένα παράδειγμα του /etc/printcap με προσθήκη της sh: # # /etc/printcap for host rose - no header pages anywhere # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh: Παρατηρήστε πως χειριστήκαμε σωστά τη μορφή: η πρώτη γραμμή ξεκινά στην αριστερή στήλη, και οι ακόλουθες γραμμές είναι στοιχισμένες (indented). Κάθε γραμμή καταχώρισης (εκτός από την τελευταία) τελειώνει με μια αριστερόστροφη κάθετο. Δημιουργία Καταλόγου Παροχέτευσης εκτυπωτής spool εκτύπωση εργασίες Το επόμενο βήμα στον απλό τρόπο εγκατάστασης είναι η δημιουργία ενός καταλόγου παροχέτευσης (spool), όπου θα φιλοξενούνται οι εργασίες εκτύπωσης έως ότου να εκτυπωθούν και όπου επίσης φυλάσσονται και κάποια άλλα βοηθητικά αρχεία του συστήματος εκτύπωσης. Λόγω της μεταβαλλόμενης φύσης των καταλόγων παροχέτευσης, συνηθίζεται να τοποθετούνται κάτω από τον κατάλογο /var/spool. Δεν είναι αναγκαίο να παίρνετε αντίγραφα ασφαλείας των καταλόγων παροχέτευσης. Η επαναδημιουργία τους είναι τόσο απλή όσο να τρέξουμε την εντολή &man.mkdir.1;. Είναι επίσης συνηθισμένο να ονομάζεται ο κατάλογος με το ίδιο όνομα με τον εκτυπωτή, όπως φαίνεται παρακάτω: &prompt.root; mkdir /var/spool/printer-name Ωστόσο, αν έχετε αρκετούς εκτυπωτές στο δίκτυο, ίσως επιθυμείτε να τοποθετήσετε τους καταλόγους παροχέτευσης κάτω από ένα μοναδικό κατάλογο που θα χρησιμοποιείται αποκλειστικά για εκτυπώσεις με το LPD. Θα κάνουμε ακριβώς αυτό για τα παραδείγματα μας με τους εκτυπωτές rattan και bamboo: &prompt.root; mkdir /var/spool/lpd &prompt.root; mkdir /var/spool/lpd/rattan &prompt.root; mkdir /var/spool/lpd/bamboo Εάν οι εργασίες των χρηστών περιέχουν προσωπικά δεδομένα, μπορεί να θέλετε να προστατέψετε τον κατάλογο παροχέτευσης με κάποιο τρόπο, ώστε να μην είναι δημόσια προσβάσιμος. Οι κατάλογοι παροχέτευσης θα πρέπει να ανήκουν και να είναι αναγνώσιμοι, εγγράψιμοι και με δυνατότητα αναζήτησης από τον χρήστη daemon και από την ομάδα daemon, από κανέναν άλλο. Για τους εκτυπωτές του παραδείγματος: &prompt.root; chown daemon:daemon /var/spool/lpd/rattan &prompt.root; chown daemon:daemon /var/spool/lpd/bamboo &prompt.root; chmod 770 /var/spool/lpd/rattan &prompt.root; chmod 770 /var/spool/lpd/bamboo Τέλος, πρέπει να ενημερώσετε το LPD για αυτούς τους καταλόγους χρησιμοποιώντας το αρχείο /etc/printcap. Προσδιορίστε την διαδρομή του καταλόγου παροχέτευσης με την ικανότητα sd: # # /etc/printcap for host rose - added spooling directories # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo: Σημειώστε πως το όνομα του εκτυπωτή ξεκινά στην πρώτη στήλη, ενώ όλες οι άλλες καταχωρίσεις που περιγράφουν τον εκτυπωτή θα πρέπει να είναι στοιχισμένες και κάθε τέλος γραμμής να φέρει χαρακτήρα διαφυγής με αριστερόστροφη κάθετο. Εάν δεν προσδιορίσετε τον κατάλογο παροχέτευσης μέσω του sd, τότε το σύστημα παροχέτευσης θα χρησιμοποιήσει τον προεπιλεγμένο /var/spool/lpd. Αναγνώριση της Συσκευής Εκτύπωσης Στην ενότητα Ρυθμίσεις Hardware αναγνωρίσαμε τη θύρα, και κατά συνέπεια την καταχώριση του καταλόγου /dev που θα χρησιμοποιήσει το &os; για να επικοινωνήσει με τον εκτυπωτή. Τώρα, θα δώσουμε στο LPD αυτή την πληροφορία. Όταν το σύστημα παροχέτευσης έχει μια εργασία να εκτυπώσει, θα ανοίξει αυτή την ειδική συσκευή για λογαριασμό του προγράμματος φίλτρου (που είναι υπεύθυνο για το πέρασμα των δεδομένων στον εκτυπωτή). Προσδιορίστε την διαδρομή της καταχώρισης /dev στο αρχείο /etc/printcap χρησιμοποιώντας την ικανότητα lp. Στο τρέχον παράδειγμα μας, ας υποθέσουμε ότι ο rattan είναι στην πρώτη παράλληλη θύρα, και ο bamboo είναι στην έκτη σειριακή πόρτα. Οι νέες καταχωρίσεις στο /etc/printcap θα είναι: # # /etc/printcap for host rose - identified what devices to use # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5: Αν δεν καθορίσετε σε κάποιον εκτυπωτή την ικανότητα lp στο αρχείο /etc/printcap, το LPD χρησιμοποιεί από προεπιλογή το /dev/lp. Το /dev/lp δεν υπάρχει την δεδομένη στιγμή στο &os;. Εάν ο εκτυπωτής που εγκαθιστάτε είναι συνδεδεμένος σε παράλληλη θύρα, διαβάστε απευθείας την ενότητα με τίτλο Εγκατάσταση Φίλτρου Κειμένου. Διαφορετικά, ακολουθήστε προσεκτικά τις οδηγίες που ακολουθούν στην επόμενη ενότητα. Ρυθμίσεις Παραμέτρων Επικοινωνίας του Spooler εκτυπωτές σειριακοί Για εκτυπωτές σε σειριακή πόρτα, το LPD μπορεί να ρυθμίσει την ταχύτητα σε bps, το parity, και άλλες παραμέτρους σειριακής επικοινωνίας για λογαριασμό του προγράμματος φίλτρου που στέλνει δεδομένα στον εκτυπωτή. Αυτό είναι πλεονέκτημα γιατί: Σας επιτρέπει να δοκιμάσετε διάφορες παραμέτρους επικοινωνίας προσθέτοντας τις απλά με επεξεργασία του αρχείου /etc/printcap. Δεν χρειάζεται να επαναμεταγλωττίσετε το πρόγραμμα φίλτρου. Επιτρέπει στο σύστημα παροχέτευσης να χρησιμοποιεί το ίδιο πρόγραμμα για πολλαπλούς εκτυπωτές, οι οποίοι μπορεί να έχουν διαφορετικές σειριακές ρυθμίσεις επικοινωνίας. Οι ακόλουθες ικανότητες του /etc/printcap ελέγχουν τις παραμέτρους σειριακής επικοινωνίας των συσκευών που αναφέρονται στην ικανότητα lp: br#bps-rate Ορίζει την ταχύτητα επικοινωνίας της συσκευής σε bps-rate, όπου το bps-rate μπορεί να είναι 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, ή 115200 bits-per-second. ms#stty-mode Ορίζει τις επιλογές της συσκευής τερματικού μετά το άνοιγμα της συσκευής. Η &man.stty.1; εξηγεί τις διαθέσιμες επιλογές. Όταν το LPD ανοίγει την συσκευή που ορίζεται από την ικανότητα lp, υιοθετεί τα χαρακτηριστικά της συσκευής με ικανότητα ms#. Έχουν ιδιαίτερο ενδιαφέρον οι καταστάσεις λειτουργίας parenb, parodd, cs5, cs6, cs7, cs8, cstopb, crtscts, και ixon, που εξηγούνται στην σελίδα βοηθείας &man.stty.1;. Ας προσθέσουμε στο παράδειγμα μας έναν εκτυπωτή στην έκτη σειριακή θύρα. Θα θέσουμε την ταχύτητα bps σε 38400. Για την κατάσταση λειτουργίας θα θέσουμε , no parity με -parenb, χαρακτήρες 8-bit με cs8, no modem control με clocal και έλεγχο ροής μέσω hardware με crtscts: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts: Εγκατάσταση Φίλτρου Κειμένου εκτύπωση φίλτρα Τώρα είμαστε έτοιμοι να πούμε στο LPD ποιο φίλτρο κειμένου να χρησιμοποιήσει για να στείλει εργασίες στον εκτυπωτή. Το φίλτρο κειμένου, γνωστό και ως φίλτρο εισόδου, είναι ένα πρόγραμμα που εκτελεί το LPD όταν υπάρχει εργασία προς εκτύπωση. Όταν το LPD εκτελεί το φίλτρο κειμένου για κάποιον εκτυπωτή, θέτει την standard input του φίλτρου στην εργασία εκτύπωσης, και την standard output στην συσκευή του εκτυπωτή που ορίζεται με την ικανότητα lp. Το φίλτρο αναμένεται να αναγνώσει την εργασία από την standard input, να εκτελέσει όλες τις απαραίτητες μεταγλωττίσεις για τον εκτυπωτή, και να γράψει το αποτέλεσμα στην standard output, το οποίο και θα εκτυπωθεί. Για περισσότερες πληροφορίες για τα φίλτρα κειμένου, δείτε την ενότητα Φίλτρα. Για την απλή εγκατάσταση των εκτυπωτών μας, το φίλτρο κειμένου μπορεί να είναι ένα μικρό shell script που απλά θα εκτελεί την εντολή /bin/cat για να στέλνει εργασίες στον εκτυπωτή. Το &os; έρχεται με άλλο ένα φίλτρο, το lpf που χειρίζεται δυνατότητες backspacing και υπογράμμισης για εκτυπωτές που ίσως να μην χειρίζονται σωστά αυτές τις λειτουργίες. Και φυσικά, μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο πρόγραμμα φίλτρου επιθυμείτε. Το φίλτρο lpf περιγράφεται λεπτομερώς στην ενότητα lpf: ένα Φίλτρο Κειμένου. Θα ξεκινήσουμε δημιουργώντας το shell script /usr/local/libexec/if-simple σαν ένα απλό φίλτρο κειμένου. Τοποθετήστε το ακόλουθο κείμενο στο αρχείο χρησιμοποιώντας τον κειμενογράφο που προτιμάτε: #!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. /bin/cat && exit 0 exit 2 Κάντε το αρχείο εκτελέσιμο: &prompt.root; chmod 555 /usr/local/libexec/if-simple Και ενημερώστε το LPD να το χρησιμοποιήσει, ορίζοντας το με την ικανότητα if στο αρχείο /etc/printcap. Θα το προσθέσουμε στους δύο εκτυπωτές από το προηγούμενο παράδειγμα στο /etc/printcap: # # /etc/printcap for host rose - added text filter # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\ :if=/usr/local/libexec/if-simple: Μπορείτε να βρείτε ένα αντίγραφο του script if-simple στον κατάλογο /usr/share/examples/printing. Ενεργοποίηση του <application>LPD</application> Το &man.lpd.8; εκτελείται από το /etc/rc, και ελέγχεται από την μεταβλητή lpd_enable. Η μεταβλητή αυτή έχει προεπιλεγμένη τιμή NO. Αν δεν το έχετε κάνει ακόμα, προσθέστε την ακόλουθη γραμμή: lpd_enable="YES" στο αρχείο /etc/rc.conf, και επανεκκινήστε το σύστημα σας, ή απλά εκτελέστε το &man.lpd.8;. &prompt.root; lpd Δοκιμή του Spooler Φτάσατε στο τέλος της απλής εγκατάστασης του LPD. Θα αφήσουμε για αργότερα τα συγχαρητήρια, αφού ακόμη θα πρέπει να ελέγξουμε την εγκατάσταση και να διορθώσουμε οποιοδήποτε πρόβλημα έχει προκύψει. Για να ελέγξετε την εγκατάσταση προσπαθήστε να εκτυπώσετε κάτι. Για να εκτυπώσετε με το σύστημα LPD, χρησιμοποιήστε την εντολή &man.lpr.1;, η οποία αποστέλλει μία εργασία προς εκτύπωση. Μπορείτε να συνδυάσετε την &man.lpr.1; με το πρόγραμμα &man.lptest.1;, για το οποίο κάναμε μια εισαγωγή στην ενότητα Έλεγχος Επικοινωνίας του Εκτυπωτή, για τον έλεγχο κειμένου. Για τον έλεγχο μιας απλής εγκατάστασης LPD: Πληκτρολογήστε: &prompt.root; lptest 20 5 | lpr printer-name Όπου printer-name είναι το όνομα ενός εκτυπωτή (ή το alias) που αναφέρεται στο /etc/printcap. Για να ελέγξετε τον προεπιλεγμένο εκτυπωτή, πληκτρολογήστε &man.lpr.1; χωρίς το πρόθεμα . Αν ο εκτυπωτής σας χρησιμοποιεί &postscript;, πρέπει να στείλετε ένα πρόγραμμα &postscript;, αντί να χρησιμοποιήσετε το &man.lptest.1;. Για να τα καταφέρετε, τοποθετήστε το πρόγραμμα σε ένα αρχείο και πληκτρολογήστε lpr file. Σε έναν εκτυπωτή &postscript;, η εκτύπωση θα είναι το αποτέλεσμα του προγράμματος που στείλατε. Αν χρησιμοποιείτε το &man.lptest.1;, τότε το αποτέλεσμα θα μοιάζει με το ακόλουθο: !"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 $%&'()*+,-./01234567 %&'()*+,-./012345678 Για περαιτέρω έλεγχο του εκτυπωτή, δοκιμάστε να κατεβάσετε μεγαλύτερα προγράμματα (για εκτυπωτές που χρησιμοποιούν γλώσσα προγραμματισμού) ή τρέξτε το &man.lptest.1; με διαφορετικά προθέματα. Για παράδειγμα, η εντολή lptest 80 60 θα παράγει 60 γραμμές των 80 χαρακτήρων η καθεμία. Αν ο εκτυπωτής δεν δουλεύει, δείτε την ενότητα Εντοπισμός Βλαβών. Ρυθμίσεις Εκτυπωτών για Προχωρημένους Αυτή η ενότητα περιγράφει φίλτρα για την εκτύπωση ειδικής μορφής αρχείων, σελίδων κεφαλίδας, για εκτυπώσεις μέσω δικτύου, καθώς και για τον έλεγχο πρόσβασης και την καταμέτρηση χρήσης των εκτυπωτών. Φίλτρα εκτύπωση φίλτρα Αν και το LPD μπορεί να χειριστεί πρωτόκολλα δικτύων, λίστες αναμονής, έλεγχο πρόσβασης, και άλλες παραμέτρους των εκτυπώσεων, το κύριο μέρος της πραγματικής εργασίας γίνεται με τα φίλτρα. Τα φίλτρα είναι προγράμματα που επικοινωνούν με τον εκτυπωτή και χειρίζονται τις εξαρτήσεις της συσκευής και άλλες ειδικές απαιτήσεις της. Στην απλή εγκατάσταση εκτυπωτή, εγκαταστήσαμε ένα φίλτρο απλού κειμένου ιδιαίτερα απλής μορφής, που θα πρέπει να δουλεύει με τους περισσότερους εκτυπωτές (ενότητα Εγκατάσταση Φίλτρου Κειμένου). Ωστόσο, για να μπορέσετε να εκμεταλλευτείτε τις δυνατότητες μετατροπών μορφής, ελέγχου πρόσβασης και καταμέτρησης, και τυχόν ειδικές δυνατότητες του εκτυπωτή σας, θα πρέπει να καταλάβετε πως δουλεύουν τα φίλτρα. Σε τελική ανάλυση, θα είναι ευθύνη των φίλτρων να χειρίζονται όλες αυτές τις παραμέτρους. Τα κακά νέα είναι πως τις περισσότερες φορές θα πρέπει να παρέχετε εσείς οι ίδιοι τα φίλτρα σας. Τα καλά νέα είναι πως γενικώς υπάρχουν αρκετά διαθέσιμα, και αν δεν υπάρχουν, είναι σχετικά εύκολο να τα γράψετε. Επίσης, το &os; διατίθεται με ένα φίλτρο, το /usr/libexec/lpr/lpf, που δουλεύει με πολλούς εκτυπωτές που μπορούν να εκτυπώσουν απλό κείμενο. (Χειρίζεται backspacing και tabs στο αρχείο, και κάνει καταμέτρηση, αλλά τίποτα περισσότερο.) Υπάρχουν, επίσης, διάφορα άλλα φίλτρα και συστατικά τους στην Συλλογή των Ports του &os;. Σε αυτή την ενότητα θα βρείτε: : Η ενότητα Πως δουλεύουν τα Φίλτρα, προσπαθεί να δώσει μια γενική άποψη για τις αρμοδιότητες των φίλτρων στις διεργασίες εκτύπωσης. Θα πρέπει να διαβάσετε αυτή την ενότητα για να μπορείτε να καταλάβετε τι πραγματικά συμβαίνει όταν το LPD χρησιμοποιεί φίλτρα. Αυτές οι γνώσεις θα σας βοηθήσουν να προλαμβάνετε και να αποσφαλματώνετε προβλήματα που μπορούν να συμβούν καθώς εγκαθιστάτε όλο και περισσότερα φίλτρα σε κάθε εκτυπωτή σας. Το LPD αναμένει πως κάθε εκτυπωτής είναι ικανός, από προεπιλογή, να εκτυπώσει απλό κείμενο. Αυτό όμως είναι πρόβλημα για εκτυπωτές &postscript; (ή άλλους που βασίζονται σε γλώσσες προγραμματισμού) οι οποίοι δεν μπορούν να εκτυπώσουν άμεσα απλό κείμενο. Η ενότητα Συμβατότητα Εργασιών Απλού Κειμένου σε εκτυπωτές &postscript; σας εξηγεί τι θα πρέπει να κάνετε για να ξεπεράσετε αυτό το πρόβλημα. Θα πρέπει να διαβάσετε αυτή την ενότητα αν έχετε εκτυπωτή &postscript;. Το &postscript; είναι δημοφιλής μορφή εξόδου για πολλά προγράμματα. Μερικοί άνθρωποι προτιμούν και να γράφουν κατευθείαν σε κώδικα &postscript;. Δυστυχώς, οι εκτυπωτές &postscript; έχουν μεγάλο κόστος. Η ενότητα Προσομοίωση &postscript; για εκτυπωτές που δεν το υποστηρίζουν εξηγεί λεπτομερώς πως να μετατρέψετε ένα φίλτρο κειμένου για εκτυπωτές ώστε να λαμβάνει και να τυπώνει δεδομένα &postscript; σε εκτυπωτές που δεν είναι &postscript;. Θα πρέπει να διαβάσετε αυτήν την ενότητα αν είστε κάτοχος εκτυπωτή που δεν υποστηρίζει &postscript;. Η ενότητα Φίλτρα Μετατροπής περιγράφει μια αυτοματοποιημένη διαδικασία για την μετατροπή αρχείων ειδικής μορφής, όπως δεδομένα γραφικών ή στοιχειοθεσίας, σε μια μορφή κατανοητή από τον εκτυπωτή σας. Μετά την ανάγνωση αυτής της ενότητας, θα πρέπει να είστε σε θέση να ρυθμίσετε τους εκτυπωτές σας με τέτοιο τρόπο ώστε πληκτρολογώντας lpr οι χρήστες σας να μπορούν να εκτυπώσουν δεδομένα troff, ή με lpr δεδομένα &tex; DVI, ή με lpr να εκτυπώνουν εικόνες δεδομένων ράστερ, και ούτω καθεξής. Σας συμβουλεύουμε να διαβάσετε αυτή την ενότητα. Η ενότητα Φίλτρα Εξόδου περιγράφει ένα χαρακτηριστικό του LPD που δεν χρησιμοποιείται συχνά: τα φίλτρα εξόδου. Μπορείτε να προσπεράσετε αυτή την ενότητα, εκτός αν τυπώνετε σελίδες κεφαλίδας (δείτε τις Σελίδες Κεφαλίδας). Η ενότητα lpf: ένα Φίλτρο Κειμένου περιγράφει το lpf, ένα πραγματικά πλήρες, αν και απλό, φίλτρο κειμένου για εκτυπωτές γραμμής (και εκτυπωτές laser που μπορούν να λειτουργήσουν και ως εκτυπωτές γραμμής) που περιέχεται στο &os;. Αν χρειάζεστε ένα γρήγορο τρόπο για να κάνετε την καταμέτρηση σελίδων να δουλεύει σε απλό κείμενο, ή αν έχετε κάποιον εκτυπωτή που βγάζει καπνούς όταν βλέπει χαρακτήρες backspace, θα πρέπει οπωσδήποτε να εξετάσετε την περίπτωση του lpf. Μπορείτε να βρείτε αντίγραφο των διάφορων scripts που αναφέρονται παρακάτω, στον κατάλογο /usr/share/examples/printing. Πως Δουλεύουν τα Φίλτρα Όπως αναφέραμε προηγουμένως, φίλτρο είναι ένα εκτελέσιμο πρόγραμμα που ενεργοποιείται από το LPD για να χειρίζεται το τμήμα της επικοινωνίας με τον εκτυπωτή που εξαρτάται από τον τύπο της ίδιας της συσκευής. Όταν το LPD θέλει να εκτυπώσει ένα αρχείο μιας εργασίας, ξεκινά το πρόγραμμα του φίλτρου. Θέτει ως standard input του φίλτρου το αρχείο που πρέπει να εκτυπωθεί, ως standard output τον ίδιο τον εκτυπωτή και ως standard error το αρχείο αναφοράς σφαλμάτων (αναφέρεται στην ικανότητα lf του /etc/printcap, ή από προεπιλογή το /dev/console). troff Το φίλτρο που θα ξεκινήσει το LPD καθώς και οι παράμετροι του φίλτρου, εξαρτώνται από το τι έχετε δηλώσει στο αρχείο /etc/printcap και από το τι παραμέτρους έχει καθορίσει ο ίδιος ο χρήστης για την εργασία με την γραμμή εντολής &man.lpr.1;. Για παράδειγμα, αν ο χρήστης πληκτρολογήσει lpr , το LPD θα ξεκινήσει το φίλτρο troff, που υποδηλώνεται με την ικανότητα tf για τον εκτυπωτή προορισμού. Αν ο χρήστης επιθυμεί να εκτυπώσει απλό κείμενο, θα ξεκινήσει το φίλτρο if (αυτό πράγματι ισχύει τις περισσότερες φορές: δείτε τα Φίλτρα Εξόδου για λεπτομέρειες). Υπάρχουν τρεις τύποι φίλτρων που μπορείτε να προσδιορίσετε στο /etc/printcap: Το φίλτρο κειμένου, επονομαζόμενο και ως φίλτρο εισόδου στην τεκμηρίωση του LPD, χειρίζεται εκτυπώσεις κανονικού κειμένου. Θεωρήστε το ως το προεπιλεγμένο φίλτρο. Το LPD αναμένει πως όλοι οι εκτυπωτές, από προεπιλογή, είναι σε θέση να εκτυπώσουν απλό κείμενο, και είναι δουλειά του φίλτρου κειμένου να βεβαιωθεί ότι τα backspaces, τα tabs, και όλοι οι άλλοι ειδικοί χαρακτήρες δεν πρόκειται να προβληματίσουν τον εκτυπωτή. Εάν βρίσκεστε σε ένα περιβάλλον όπου θα πρέπει να καταμετρήσετε την χρήση των εκτυπωτών, το φίλτρο κειμένου θα πρέπει επίσης να καταμετρήσει τις εκτυπωμένες σελίδες, συνήθως μετρώντας τον αριθμό των εκτυπωμένων γραμμών και συγκρίνοντας τον με τον αριθμό των γραμμών που υποστηρίζει ο εκτυπωτής ανά σελίδα. Το φίλτρο κειμένου ξεκινά με την ακόλουθη λίστα παραμέτρων: filter-name -c -wwidth -llength -iindent -n login -h host acct-file όπου εμφανίζεται αν η εργασία έχει αποσταλεί με lpr width είναι η τιμή από την ικανότητα pw (πλάτος σελίδας - page width) όπως προσδιορίζεται στο /etc/printcap, με προεπιλεγμένη τιμή το 132 length είναι η τιμή από την ικανότητα pl (μήκος σελίδας - page length), με προεπιλεγμένη τιμή το 66 indent είναι το μέγεθος της εσοχής (indentation) από το lpr , με προεπιλεγμένη τιμή 0 login είναι το καταγεγραμμένο όνομα χρήστη που εκτυπώνει το αρχείο host είναι το όνομα του υπολογιστή από τον οποίο στάλθηκε η εργασία acct-file είναι το όνομα του αρχείου καταμέτρησης από την ικανότητα af. εκτυπώσεις φίλτρα Ένα φίλτρο μετατροπής μετατρέπει ένα αρχείο ειδικής μορφής σε ένα τύπο αρχείου κατάλληλο για εκτύπωση από τον συγκεκριμένο εκτυπωτή. Για παράδειγμα, τα δεδομένα στοιχειοθεσίας ditroff δεν μπορούν να εκτυπωθούν κατευθείαν, αλλά μπορείτε να εγκαταστήσετε ένα φίλτρο μετατροπής αρχείων ditroff, ώστε να μετατρέψετε τα δεδομένα ditroff σε μια μορφή που ο εκτυπωτής να μπορεί να αφομοιώσει και να τυπώσει. Θα μάθετε περισσότερα στην ενότητα Φϊλτρα Μετατροπής. Τα φίλτρα μετατροπής επίσης χρειάζονται για να κάνετε αρίθμηση/καταμέτρηση, αν χρειάζεστε καταμέτρηση των εκτυπώσεων σας. Τα φίλτρα μετατροπής ξεκινούν με τις ακόλουθες παραμέτρους: filter-name -xpixel-width -ypixel-height -n login -h host acct-file όπου pixel-width είναι η τιμή από την ικανότητα px (προεπιλεγμένη τιμή 0) και pixel-height είναι η τιμή από την ικανότητα py (προεπιλεγμένη τιμή 0). Το φίλτρο εξόδου χρησιμοποιείται μόνον αν δεν υπάρχει φίλτρο κειμένου, ή αν είναι ενεργοποιημένες οι σελίδες κεφαλίδας. Διαβάστε τη σχετική ενότητα Φίλτρα Εξόδου, αν και από την εμπειρία μας μπορούμε να σας πούμε ότι χρησιμοποιούνται σπάνια. Υπάρχουν μόνο δύο παράμετροι για τα φίλτρα εξόδου: filter-name -wwidth -llength οι οποίες είναι πανομοιότυπες με τις παραμέτρους και των φίλτρων κειμένου. Τα φίλτρα θα πρέπει επίσης να τερματίζουν με κάποια από τις ακόλουθες καταστάσεις εξόδου: exit 0 Αν το φίλτρο τύπωσε επιτυχώς το αρχείο. exit 1 Αν το φίλτρο απέτυχε να τυπώσει το αρχείο, αλλά θέλει το LPD να προσπαθήσει να εκτυπώσει το αρχείο ξανά. Το LPD θα ξεκινήσει ξανά το φίλτρο αν γίνει έξοδος με αυτή την κατάσταση. exit 2 Αν το φίλτρο απέτυχε να εκτυπώσει το αρχείο και δεν θέλει το LPD να προσπαθήσει ξανά. Το LPD θα απορρίψει το αρχείο. Το φίλτρο κειμένου που έρχεται με την κανονική έκδοση του &os;, /usr/libexec/lpr/lpf, εκμεταλλεύεται τις παραμέτρους πλάτους και μήκους σελίδας για να προσδιορίσει πότε να αποστείλει το form feed και πως να κάνει καταμέτρηση. Χρησιμοποιεί τις παραμέτρους για login, host, και αρχείου καταμέτρησης για να δημιουργήσει τις σχετικές εγγραφές καταμέτρησης. Αν είστε στη διαδικασία επιλογής φίλτρων, ελέγξτε αν είναι συμβατά με το LPD. Αν είναι συμβατά, τότε πρέπει να υποστηρίζουν την λίστα παραμέτρων που περιγράψαμε προηγουμένως. Αν σχεδιάζετε να γράψατε τα δικά σας φίλτρα γενικής χρήσης, τότε πρέπει να τα κάνετε να υποστηρίζουν την ίδια λίστα παραμέτρων και κωδικών εξόδου. Συμβατότητα Εργασιών Απλού Κειμένου σε Εκτυπωτές &postscript; εκτύπωση εργασιών Αν είστε ο μοναδικός χρήστης του Η/Υ σας και του εκτυπωτή &postscript; (ή άλλης γλώσσας εκτυπωτών), και είστε σίγουροι πως δεν πρόκειται να στείλετε ποτέ εκτυπώσεις απλού κειμένου στον εκτυπωτή σας και πως δεν θα χρησιμοποιήσετε τις υπηρεσίες των διαφόρων προγραμμάτων σας που θα θελήσουν να στείλουν απλό κείμενο στον εκτυπωτή σας, τότε δεν χρειάζεται να ασχοληθείτε καθόλου με αυτή την ενότητα. Αλλά, αν επιθυμείτε να στείλετε τόσο εργασίες &postscript; όσο και απλού κειμένου στον εκτυπωτή σας, τότε σας προτρέπουμε να προσθέσετε κάποιες ρυθμίσεις στην εγκατάσταση σας. Για να γίνει αυτό, θα πρέπει το φίλτρο κειμένου να ανιχνεύει αν η τρέχουσα εργασία είναι απλό κείμενο ή &postscript;. Όλες οι εργασίες &postscript; πρέπει να ξεκινούν με %! (αν ο εκτυπωτής σας χρησιμοποιεί άλλη γλώσσα, συμβουλευθείτε την τεκμηρίωση του). Αν είναι αυτοί οι πρώτοι δύο χαρακτήρες, τότε έχουμε &postscript;, και η υπόλοιπη εργασία μπορεί να σταλεί απευθείας στον εκτυπωτή. Αν δεν είναι αυτοί οι πρώτοι δύο χαρακτήρες, τότε το φίλτρο θα μετατρέψει το κείμενο σε &postscript; και θα τυπώσει το αποτέλεσμα. Πως γίνεται αυτό; εκτυπωτές σειριακοί Αν είστε κάτοχος σειριακού εκτυπωτή, ένας καλός τρόπος για να γίνει αυτό εφικτό είναι να εγκαταστήσετε το lprps. Το lprps είναι ένα φίλτρο εκτύπωσης &postscript; που επικοινωνεί αμφίδρομα με τον εκτυπωτή. Ενημερώνει το αρχείο κατάστασης του εκτυπωτή με αναλυτικές πληροφορίες, ώστε οι χρήστες και οι διαχειριστές να μπορούν να δουν επακριβώς ποια είναι η κατάσταση του εκτυπωτή (όπως χαμηλή στάθμη toner ή πρόβλημα χαρτιού). Ακόμη πιο σημαντικό είναι πως περιέχει το πρόγραμμα psif που ανιχνεύει αν η εισερχόμενη εργασία είναι απλού κειμένου και καλεί το textps (ένα άλλο πρόγραμμα που περιέχεται στο lprps) να το μετατρέψει σε &postscript;. Τέλος χρησιμοποιείται το lprps για να αποστείλει την εργασία στον εκτυπωτή. Το lprps είναι μέρος της Συλλογής των Ports του &os; (δείτε Η Συλλογή των Ports). Φυσικά, μπορείτε να το κατεβάσετε, να το μεταγλωττίσετε και να το εγκαταστήσετε μόνοι σας. Μετά την εγκατάσταση του lprps, απλά προσδιορίστε τη διαδρομή προς το πρόγραμμα psif που είναι μέρος του lprps. Αν εγκαταστήσατε το lprps από την Συλλογή των Ports, τότε για τον σειριακό σας εκτυπωτή &postscript; χρησιμοποιήστε την ακόλουθη καταχώριση στο αρχείο /etc/printcap: :if=/usr/local/libexec/psif: Θα πρέπει επίσης να καθορίσετε την ικανότητα rw η οποία ορίζει ότι το LPD θα χειρίζεται τον εκτυπωτή σε κατάσταση ανάγνωσης και εγγραφής. Αν έχετε παράλληλο εκτυπωτή &postscript; (και για το λόγο αυτό δεν μπορείτε να χρησιμοποιήσετε αμφίδρομη επικοινωνία με τον εκτυπωτή, όπως απαιτείται από το lprps), μπορείτε να χρησιμοποιήσετε το ακόλουθο shell script ως φίλτρο κειμένου: #!/bin/sh # # psif - Print PostScript or plain text on a PostScript printer # Script version; NOT the version that comes with lprps # Installed in /usr/local/libexec/psif # IFS="" read -r first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # PostScript job, print it. # echo "$first_line" && cat && printf "\004" && exit 0 exit 2 else # # Plain text, convert it, then print it. # ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 exit 2 fi Στο παραπάνω script, το textps είναι ένα πρόγραμμα που εγκαταστήσαμε ξεχωριστά για να μετατρέπουμε απλό κείμενο σε &postscript;. Μπορείτε να χρησιμοποιείτε οποιοδήποτε πρόγραμμα μετατροπής από κείμενο- σε-&postscript;. Η Συλλογή των Ports (δείτε Η Συλλογή των Ports) περιέχει επίσης ένα πλήρες πρόγραμμα μετατροπής από κείμενο σε &postscript;, το a2ps που ίσως επιθυμείτε να διερευνήσετε. Προσομοίωση &postscript; για Εκτυπωτές που δεν το Υποστηρίζουν PostScript προσομοίωση Ghostscript Το &postscript; είναι το de facto πρότυπο για στοιχειοθεσία και εκτύπωση υψηλής ποιότητας. Ωστόσο, το &postscript; είναι κάπως δαπανηρό πρότυπο. Ευτυχώς, η Aladdin Enterprises παρέχει ένα παρεμφερές ελεύθερο &postscript; που ονομάζεται Ghostscript και δουλεύει άψογα στο &os;. Το Ghostscript διαβάζει τα περισσότερα αρχεία &postscript; και μπορεί να αποδώσει τις σελίδες τους σε μεγάλη γκάμα συσκευών, συμπεριλαμβάνοντας πολλούς τύπους εκτυπωτών που δεν υποστηρίζουν &postscript;. Εγκαθιστώντας το Ghostscript και χρησιμοποιώντας ένα ειδικό φίλτρο κειμένου για τον εκτυπωτή σας, μπορείτε να κάνετε τον κοινό εκτυπωτή σας να λειτουργεί σαν ένας πραγματικός εκτυπωτής &postscript;. Το Ghostscript βρίσκεται στην Συλλογή των Ports του &os;, και μάλιστα σε πολλές εκδόσεις. Η πιο διαδεδομένη είναι το print/ghostscript-gpl. Για να κάνετε προσομοίωση &postscript;, πρέπει το φίλτρο κειμένου να ανιχνεύσει αν εκτυπώνετε αρχείο &postscript;. Εάν όχι, τότε το φίλτρο θα περάσει το αρχείο κατευθείαν στον εκτυπωτή. Διαφορετικά, θα χρησιμοποιήσει το Ghostscript για να μετατρέψει αρχικά το αρχείο σε ένα τύπο που θα καταλαβαίνει ο εκτυπωτής. Ιδού ένα παράδειγμα: το ακόλουθο script είναι ένα φίλτρο κειμένου για εκτυπωτές Hewlett Packard DeskJet 500. Για άλλους εκτυπωτές, αντικαταστήστε το όρισμα στην εντολή gs (Ghostscript). (Πληκτρολογήστε gs για να δείτε την λίστα συσκευών που υποστηρίζει η τρέχουσα εγκατάσταση του Ghostscript.) #!/bin/sh # # ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500 # Installed in /usr/local/libexec/ifhp # # Treat LF as CR+LF (to avoid the "staircase effect" on HP/PCL # printers): # printf "\033&k2G" || exit 2 # # Read first two characters of the file # IFS="" read -r first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # It is PostScript; use Ghostscript to scan-convert and print it. # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ -sOutputFile=- - && exit 0 else # # Plain text or HP/PCL, so just print it directly; print a form feed # at the end to eject the last page. # echo "$first_line" && cat && printf "\033&l0H" && exit 0 fi exit 2 Τέλος, χρειάζεται να ενημερώσετε το LPD για το φίλτρο με την ικανότητα if: :if=/usr/local/libexec/ifhp: Αυτό είναι όλο. Μπορείτε να πληκτρολογήσετε lpr plain.text και lpr whatever.ps και τα δύο θα εκτυπωθούν επιτυχώς. Φίλτρα Μετατροπής Το επόμενο βήμα μετά την ολοκλήρωση της απλής εγκατάστασης που περιγράψαμε στις Βασικές Ρυθμίσεις Εκτυπωτών, είναι συνήθως η εγκατάσταση φίλτρων μετατροπής για τους τύπους αρχείων που προτιμάτε (εκτός από απλό κείμενο ASCII). Γιατί να εγκαταστήσετε Φίλτρα Μετατροπής; &tex; εκτύπωση αρχείων DVI Τα φίλτρα μετατροπής κάνουν την εκτύπωση διαφόρων τύπων αρχείων εύκολη υπόθεση. Για παράδειγμα, ας υποθέσουμε ότι έχουμε να κάνουμε αρκετή εργασία με το σύστημα στοιχειοθεσίας &tex;, και ότι έχουμε εκτυπωτή &postscript;. Κάθε φορά που δημιουργούμε ένα αρχείο DVI με το &tex;, δεν μπορούμε να εκτυπώσουμε κατευθείαν έως ότου να μετατρέψουμε το αρχείο DVI σε &postscript;. Η ακολουθία εντολών που πρέπει να ακολουθήσουμε είναι: &prompt.user; dvips seaweed-analysis.dvi &prompt.user; lpr seaweed-analysis.ps Με την χρήση ενός φίλτρου μετατροπής για αρχεία DVI, μπορούμε να αποφύγουμε την μετατροπή που πρέπει να κάνουμε κάθε φορά χειροκίνητα, καλώντας το LPD να κάνει τη δουλειά για μας. Τώρα, κάθε φορά που έχουμε ένα αρχείο DVI, για να το τυπώσουμε χρειάζεται μόνο ένα βήμα: &prompt.user; lpr seaweed-analysis.dvi Έχουμε αναθέσει στο LPD να κάνει τη μετατροπή του αρχείου DVI προσθέτοντας του την επιλογή . Η ενότητα Επιλογές Μορφοποίησης και Μετατροπής περιέχει τους πίνακες επιλογής μετατροπών. Για κάθε επιλογή μετατροπής που θέλετε να υποστηρίζετε από ένα εκτυπωτή, πρέπει να εγκαταστήσετε ένα φίλτρο μετατροπής και να ορίσετε την διαδρομή του στο αρχείο /etc/printcap. Ένα φίλτρο μετατροπής είναι σαν το φίλτρο κειμένου στην απλή εγκατάσταση εκτυπωτή (δείτε την ενότητα Εγκατάσταση Φίλτρου Κειμένου) με μόνη διαφορά πως αντί το φίλτρο να εκτυπώνει απλό κείμενο, μετατρέπει το αρχείο σε μια διαφορετική μορφή ώστε να είναι κατανοητό από τον εκτυπωτή. Ποιο Φίλτρο Μετατροπής θα Πρέπει να Εγκαταστήσω; Θα πρέπει να εγκαθιστάτε τα φίλτρα μετατροπής που νομίζετε πως θα χρησιμοποιήσετε. Αν εκτυπώνετε αρκετά δεδομένα DVI, τότε είναι λογικό να συμπεριλάβετε ένα φίλτρο μετατροπής DVI. Αν εκτυπώνετε συχνά δεδομένα troff, θα θέλετε να εγκαταστήσετε ένα φίλτρο troff. Ο ακόλουθος πίνακας συνοψίζει τα φίλτρα με τα οποία συνεργάζεται το LPD, τις καταχωρίσεις της αντίστοιχης ικανότητας στο αρχείο /etc/printcap, και πως να τις καλέσετε μέσω της εντολής lpr: Τύπος αρχείου Ικανότητα /etc/printcap Παράμετρος εντολής lpr cifplot cf DVI df plot gf ditroff nf FORTRAN text rf troff tf raster vf plain text if none, , or Στο παράδειγμα μας, αν χρησιμοποιήσουμε lpr σημαίνει ότι ο εκτυπωτής χρειάζεται την ικανότητα df στην καταχώριση του στο /etc/printcap. FORTRAN Αν και κάποιοι μπορεί να ισχυριστούν το αντίθετο, μερικοί τύποι αρχείων όπως είναι τα κείμενα και γραφικά FORTRAN είναι ξεπερασμένα. Μπορείτε να δώσετε νέα πνοή σε αρχεία αυτού του τύπου (ή και οποιασδήποτε άλλης μορφής εξόδου), εγκαθιστώντας προσαρμοσμένα φίλτρα. Για παράδειγμα, ας υποθέσουμε ότι θα θέλατε να εκτυπώσετε κατευθείαν αρχεία Printerleaf (αρχεία προερχόμενα από το πρόγραμμα επιτραπέζιας τυπογραφίας Interleaf), αλλά δεν θα εκτυπώσετε ποτέ διαγράμματα (plots). Θα μπορούσατε να εγκαταστήσετε ένα φίλτρο μετατροπής αρχείων Printerleaf υπό την ικανότητα gf και να εκπαιδεύσετε τους χρήστες σας ότι η εντολή lpr σημαίνει τύπωσε αρχεία Printerleaf. Εγκατάσταση Φίλτρων Μετατροπών Από τη στιγμή που τα φίλτρα μετατροπής είναι προγράμματα που δεν ανήκουν στο βασικό σύστημα εγκατάστασης του &os;, είναι πιο σωστό να εγκατασταθούν στον κατάλογο /usr/local. Ένας συνήθης προορισμός των προγραμμάτων αυτών είναι ο κατάλογος /usr/local/libexec, μια που πρόκειται για εξειδικευμένα προγράμματα που εκτελούνται μόνο από το LPD. Οι απλοί χρήστες δεν θα χρειαστεί ποτέ να τα εκτελέσουν. Για να ενεργοποιήσετε ένα φίλτρο μετατροπής, προσδιορίστε τη διαδρομή του στο αρχείο /etc/printcap, αλλάζοντας την κατάλληλη ικανότητα στον εκτυπωτή που επιθυμείτε να το χρησιμοποιήσετε. Στο παράδειγμα μας, θα προσθέσουμε το φίλτρο μετατροπής DVI στην καταχώριση μας για τον εκτυπωτή με το όνομα bamboo. Ακολουθεί, λοιπόν, το παράδειγμα για το αρχείο /etc/printcap, με την νέα ικανότητα df για τον εκτυπωτή bamboo: # # /etc/printcap for host rose - added df filter for bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Το φίλτρο DVI είναι ένα shell script που ονομάζεται /usr/local/libexec/psdf, το οποίο και παραθέτουμε παρακάτω: #!/bin/sh # # psdf - DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" Αυτό το script τρέχει το dvips σε κατάσταση φίλτρου (με την παράμετρο ) στην standard input, από όπου και λαμβάνει την εργασία προς εκτύπωση. Αυτό ξεκινά το φίλτρο εκτύπωσης &postscript; lprps (δείτε την ενότητα Συμβατότητα Εργασιών Απλού Κειμένου σε εκτυπωτές &postscript;) δίνοντας του και τις παραμέτρους που πέρασε το LPD στο παραπάνω script. Το lprps θα χρησιμοποιήσει αυτές τις παραμέτρους για την καταμέτρηση των εκτυπωμένων σελίδων. Ακόμα μερικά Παραδείγματα Φίλτρων Μετατροπής Από τη στιγμή που δεν υπάρχει αυτοματοποιημένη μέθοδος για την εγκατάσταση των φίλτρων μετατροπής, ας μας επιτραπεί να παρέχουμε μερικά ακόμη παραδείγματα. Μπορείτε να τα χρησιμοποιήσετε σαν οδηγό για την δημιουργία των δικών σας φίλτρων. Αν νομίζετε πως είναι κατάλληλα για την περίπτωση σας μπορείτε να τα χρησιμοποιήσετε και κατευθείαν. Αυτό το παράδειγμα script είναι ένα φίλτρο μετατροπής ράστερ (αρχείου GIF για την ακρίβεια) για έναν εκτυπωτή Hewlett Packard LaserJet III-Si: #!/bin/sh # # hpvf - Convert GIF files into HP/PCL, then print # Installed in /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2 Δουλεύει ως εξής: μετατρέπει το αρχείο GIF σε ένα γενικό φορητό τύπο anymap, εν συνεχεία το μετατρέπει σε ένα φορητό τύπο graymap, έπειτα σε ένα φορητό τύπο bitmap, και τέλος το μετατρέπει σε δεδομένα συμβατά με PCL για τον LaserJet. Εδώ είναι το αρχείο /etc/printcap με μια καταχώριση για έναν εκτυπωτή που χρησιμοποιεί το παραπάνω φίλτρο: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf: Το ακόλουθο script είναι ένα φίλτρο μετατροπής δεδομένων troff από το σύστημα στοιχειοθεσίας groff για τον εκτυπωτή &postscript; με όνομα bamboo: #!/bin/sh # # pstf - Convert groff's troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps "$@" Το παραπάνω script χρησιμοποιεί πάλι το lprps για να χειριστεί την επικοινωνία με τον εκτυπωτή. Αν ο εκτυπωτής ήταν σε παράλληλη πόρτα τότε θα είχαμε, αντιθέτως, χρησιμοποιήσει το ακόλουθο script: #!/bin/sh # # pstf - Convert groff's troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops Εδώ είναι η καταχώριση που χρειάζεται να προσθέσουμε στο /etc/printcap για να ενεργοποιήσουμε το φίλτρο: :tf=/usr/local/libexec/pstf: Εδώ είναι ένα παράδειγμα που μας επιτρέπει να εκτυπώσουμε παλαιό κώδικα της FORTRAN. Είναι ένα φίλτρο κειμένου για FORTRAN για οποιονδήποτε εκτυπωτή μπορεί να εκτυπώσει κατευθείαν απλό κείμενο. Θα το εγκαταστήσουμε για έναν εκτυπωτή που ονομάζεται teak: #!/bin/sh # # hprf - FORTRAN text filter for LaserJet 3si: # Installed in /usr/local/libexec/hprf # printf "\033&k2G" && fpr && printf "\033&l0H" && exit 0 exit 2 Και θα προσθέσουμε αυτή τη γραμμή στο /etc/printcap για να ενεργοποιήσουμε το φίλτρο για τον εκτυπωτή teak: :rf=/usr/local/libexec/hprf: Και ένα τελευταίο κάπως περίπλοκο παράδειγμα: Θα προσθέσουμε ένα φίλτρο DVI στον εκτυπωτή LaserJet teak που αναφέραμε προηγούμενα. Καταρχήν το εύκολο μέρος: αναβαθμίζουμε το /etc/printcap με την τοποθεσία όπου βρίσκεται το φίλτρο DVI: :df=/usr/local/libexec/hpdf: Τώρα, το δύσκολο μέρος: η κατασκευή του φίλτρου. Θα χρειαστούμε ένα πρόγραμμα μετατροπής από DVI-σε-LaserJet/PCL. Στην Συλλογή των Ports του &os; (δείτε Συλλογή των Ports) υπάρχει ένα τέτοιο πρόγραμμα: Το όνομα του πακέτου είναι dvi2xx. Η εγκατάσταση του πακέτου, μας παρέχει ακριβώς το πρόγραμμα που χρειαζόμαστε, το dvilj2p, το οποίο μετατρέπει τον κώδικα DVI σε κώδικα συμβατό με LaserJet IIp, LaserJet III, και LaserJet 2000. Το dvilj2p κάνει το φίλτρο hpdf αρκετά περίπλοκο από τη στιγμή που το dvilj2p δε μπορεί να διαβάσει από το standard input. Χρειάζεται να δουλέψει με κάποιο όνομα αρχείου. Ακόμη χειρότερα, το όνομα του αρχείου πρέπει να τελειώνει σε .dvi κι επομένως η χρήση του /dev/fd/0 ως standard input είναι προβληματική. Θα μπορούσαμε να αντιμετωπίσουμε το πρόβλημα δημιουργώντας (συμβολικούς) δεσμούς με κάποιο προσωρινό όνομα αρχείου (που να τελειώνει σε .dvi) για το /dev/fd/0, και με αυτό τον τρόπο να εξαναγκάσουμε το dvilj2p να διαβάζει από το standard input. Ακόμη ένα πρόβλημα που προκύπτει είναι το γεγονός πως δεν μπορούμε να χρησιμοποιήσουμε το /tmp για τον προσωρινό δεσμό. Οι συμβολικοί δεσμοί ανήκουν στον χρήστη και στην ομάδα bin, ενώ το φίλτρο τρέχει σαν χρήστης daemon. Επίσης στον κατάλογο /tmp είναι ενεργό το sticky bit. Το φίλτρο μπορεί να δημιουργήσει το δεσμό, αλλά δεν θα είναι ικανό να τον εξαλείψει και να τον αφαιρέσει από τη στιγμή που αυτός θα ανήκει σε διαφορετικό χρήστη. Αντίθετα, το φίλτρο θα φτιάξει το συμβολικό link στον τρέχοντα κατάλογο, που είναι ο κατάλογος παροχέτευσης (spooling) (και που προσδιορίζεται από την ικανότητα sd στο /etc/printcap). Αυτό είναι το τέλειο μέρος για να δουλεύουν τα φίλτρα, ειδικά λόγω του ότι (μερικές φορές) υπάρχει περισσότερες ελεύθερος χώρος στο δίσκο στον κατάλογο παροχέτευσης (spool) από ότι στο /tmp. Και τελικά, ιδού το φίλτρο: #!/bin/sh # # hpdf - Print DVI data on HP/PCL printer # Installed in /usr/local/libexec/hpdf PATH=/usr/local/bin:$PATH; export PATH # # Define a function to clean up our temporary files. These exist # in the current directory, which will be the spooling directory # for the printer. # cleanup() { rm -f hpdf$$.dvi } # # Define a function to handle fatal errors: print the given message # and exit 2. Exiting with 2 tells LPD to do not try to reprint the # job. # fatal() { echo "$@" 1>&2 cleanup exit 2 } # # If user removes the job, LPD will send SIGINT, so trap SIGINT # (and a few other signals) to clean up after ourselves. # trap cleanup 1 2 15 # # Make sure we are not colliding with any existing files. # cleanup # # Link the DVI input file to standard input (the file to print). # ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" # # Make LF = CR+LF # printf "\033&k2G" || fatal "Cannot initialize printer" # # Convert and print. Return value from dvilj2p does not seem to be # reliable, so we ignore it. # dvilj2p -M1 -q -e- dfhp$$.dvi # # Clean up and exit # cleanup exit 0 Αυτοματοποιημένες Μετατροπές: Μία Εναλλακτική στα Φίλτρα Μετατροπής Όλα τα φίλτρα μετατροπής μπορεί να πληρούν το περιβάλλον εκτυπώσεων σας, αλλά υποχρεώνουν τον χρήστη να προσδιορίζει (στην γραμμή εντολών του &man.lpr.1;) ποιό από αυτά θα χρησιμοποιηθεί. Αν οι χρήστες σας δεν είναι ιδιαίτερα εξοικειωμένοι με τους Η/Υ, το να πρέπει να αναφέρουν κάθε φορά ένα φίλτρο πιθανώς να είναι ενοχλητικό. Είναι ακόμα χειρότερο ωστόσο να γίνει λανθασμένη επιλογή φίλτρου, το οποίο θα εκτελεστεί σε ακατάλληλο για αυτό τύπο αρχείου, και θα προκαλέσει την σπατάλη εκατοντάδων σελίδων χαρτιού. Αντί να εγκαταστήσετε οποιοδήποτε φίλτρο μετατροπής, μπορεί να θέλετε να δοκιμάσετε να έχετε ένα φίλτρο κειμένου (αφού είναι το προεπιλεγμένο φίλτρο) που να ανιχνεύει τον τύπο του αρχείου που έχει ζητηθεί να εκτυπωθεί και να εκτελεί αυτόματα το κατάλληλο φίλτρο μετατροπής. Εργαλεία σαν το file μπορούν να σας βοηθήσουν. Μπορεί να είναι δύσκολο να προσδιοριστούν οι διαφορές μεταξύ κάποιων τύπων αρχείων—αλλά, φυσικά, μπορείτε πάντα να παρέχετε φίλτρα μετατροπής ειδικά για αυτές τις περιπτώσεις. apsfilter printing filters apsfilter Η Συλλογή των Ports του &os; έχει ένα φίλτρο κειμένου που εκτελεί αυτόματες μετατροπές και ονομάζεται apsfilter. Μπορεί να ανιχνεύει απλό κείμενο, &postscript;, DVI και σχεδόν οποιοδήποτε τύπο αρχείου, να εκτελεί την κατάλληλη μετατροπή, και να εκτυπώνει. Φίλτρα Εξόδου Το σύστημα παροχέτευσης LPD υποστηρίζει έναν ακόμη τύπο φίλτρου που ίσως να μην έχετε εξερευνήσει ακόμα: το φίλτρο εξόδου. Το φίλτρο εξόδου προορίζεται μόνο για εκτύπωση απλού κειμένου, όπως το φίλτρο κειμένου, αλλά με πολλές απλοποιήσεις. Εάν χρησιμοποιείτε φίλτρο εξόδου αλλά όχι φίλτρο κειμένου, τότε: Το LPD ξεκινά ένα φίλτρο εξόδου μόνο μια φορά για όλη την εργασία, αντί ένα χωριστό για κάθε αρχείο της εργασίας. Το LPD δεν φροντίζει να αναγνωρίσει την αρχή ή το τέλος των αρχείων μέσα στην ίδια την εργασία όταν χρησιμοποιείται το φίλτρο εξόδου. Το LPD δεν περνάει στο φίλτρο τα δεδομένα εισόδου του χρήστη ή το όνομα του μηχανήματος, επομένως δεν προορίζεται για καταμέτρηση εκτυπωμένων σελίδων. Το φίλτρο εξόδου δέχεται μόνος τις παραμέτρους: filter-name -wwidth -llength Όπου το width είναι από την ικανότητα pw και το length είναι από την ικανότητα pl για τον συγκεκριμένο εκτυπωτή. Μην παρασύρεστε από την απλότητα του φίλτρου εξόδου. Αν επιθυμείτε κάθε αρχείο μιας εργασίας να ξεκινά σε μια νέα σελίδα, το φίλτρο εξόδου δεν κάνει για σας. Χρησιμοποιήστε ένα φίλτρο κειμένου (γνωστό και ως φίλτρο εισόδου). Δείτε την ενότητα Εγκατάσταση Φίλτρου Κειμένου. Επιπλέον, ένα φίλτρο εξόδου είναι στην πραγματικότητα πιο περίπλοκο αφού πρέπει να εξετάζει την ροή των byte που αποστέλλεται προς αυτό για ειδικούς χαρακτήρες flag και πρέπει να στέλνει σήματα στον εαυτό του για λογαριασμό του LPD. Ωστόσο, ένα φίλτρο εξόδου είναι αναγκαίο αν θέλετε σελίδες κεφαλίδας και χρειάζεται να στέλνετε ακολουθίες διαφυγής ή άλλες ακολουθίες αρχικοποίησης προκειμένου να τις εκτυπώσετε. (Αλλά είναι επίσης μάταιο αν θέλετε να χρεώνετε σελίδες κεφαλίδας στον λογαριασμό του αντίστοιχου χρήστη, από τη στιγμή που το LPD δεν στέλνει καμιά πληροφορία για τον χρήστη ή τον υπολογιστή στο φίλτρο εξόδου.) Το LPD επιτρέπει την συνύπαρξη ενός φίλτρου εξόδου και άλλων φίλτρων (κειμένου ή διαφορετικού τύπου) στον ίδιο εκτυπωτή. Σε αυτές τις περιπτώσεις, το LPD θα ξεκινά το φίλτρο εξόδου μόνο για την εκτύπωση της σελίδας κεφαλίδας (δείτε την ενότητα Σελίδες Κεφαλίδας). Το LPD θα αναμένει το φίλτρο εξόδου να σταματήσει από μόνο του όταν του στείλει δύο bytes: ένα ASCII 031 ακολουθούμενο από ένα ASCII 001. Όταν ένα φίλτρο εξόδου βλέπει αυτά τα δύο bytes (031, 001), θα πρέπει να σταματά στέλνοντας σήμα SIGSTOP στον εαυτό του. Όταν το LPD ολοκληρώσει την εκτέλεση και των υπολοίπων φίλτρων, θα επανεκκινήσει το φίλτρο εξόδου στέλνοντας του το σήμα SIGCONT. Αν υπάρχει φίλτρο εξόδου, αλλά δεν υπάρχει φίλτρο κειμένου και το LPD δουλεύει σε εργασία απλού κειμένου, το LPD χρησιμοποιεί το φίλτρο εξόδου για την εκτέλεση της εργασίας. Όπως αναφέραμε και παραπάνω, το φίλτρο εξόδου θα εκτυπώσει κάθε αρχείο εργασίας στη σειρά, δίχως δυνατότητα παρεμβολής κενής σελίδας ή άλλων ρυθμίσεων στην τροφοδοσία χαρτιού, και πιθανώς αυτό να μην είναι επιθυμητό. Σχεδόν σε όλες τις περιπτώσεις, θα χρειαστείτε ένα φίλτρο κειμένου. Το πρόγραμμα lpf, που αναφέραμε νωρίτερα σαν φίλτρο κειμένου, μπορεί να τρέξει και σαν φίλτρο εξόδου. Αν χρειάζεστε ένα γρήγορο φίλτρο εξόδου αλλά δεν θέλετε να γράψετε τον κώδικα ανίχνευσης των byte και τον κώδικα αποστολής σημάτων, δοκιμάστε το lpf. Μπορείτε επίσης να χρησιμοποιήσετε το lpf μέσα από ένα shell script το οποίο θα χειρίζεται τους κωδικούς αρχικοποίησης που ίσως να χρειάζεται ο εκτυπωτής. <command>lpf</command>: ένα Φίλτρο Κειμένου Το πρόγραμμα /usr/libexec/lpr/lpf που παρέχεται με τη διανομή εκτελέσιμων του &os; είναι ένα φίλτρο κειμένου (φίλτρο εισόδου) που μπορεί να παραγραφοποιεί την έξοδο (εργασίες που έχουν σταλεί με lpr ), να επιτρέπει την διέλευση literal χαρακτήρων (εργασίες που έχουν σταλεί με lpr ), να ρυθμίζει την θέση εκτύπωσης με τη χρήση χαρακτήρων backspace και tab στην εργασία, και να κάνει καταμέτρηση των εκτυπωμένων σελίδων. Επίσης μπορεί να ενεργεί και σαν φίλτρο εξόδου. Το lpf είναι κατάλληλο για διάφορα περιβάλλοντα εκτύπωσης. Αν και δεν έχει δυνατότητα αποστολής ακολουθιών αρχικοποίησης στον εκτυπωτή, είναι εύκολο να γράψετε ένα shell script για να κάνετε την απαραίτητη αρχικοποίηση και να εκτελέσετε έπειτα το lpf. καταμέτρηση σελίδων καταμέτρηση εκτυπωτής Για να κάνει σωστά καταμέτρηση σελίδων, το lpf χρειάζεται κατάλληλες τιμές για τις ικανότητες pw και pl στο αρχείο /etc/printcap. Χρησιμοποιεί αυτές τις τιμές για να προσδιορίσει πόσο κείμενο μπορεί να χωρέσει σε μία σελίδα και από πόσες σελίδες αποτελείται η εργασία του χρήστη. Για περισσότερες πληροφορίες σχετικά με την καταμέτρηση σελίδων, συμβουλευτείτε την Καταμέτρηση Χρήσης Εκτυπωτών. Σελίδες Κεφαλίδας Αν έχετε αρκετούς χρήστες, και όλοι τους χρησιμοποιούν διάφορους εκτυπωτές, τότε πιθανώς να θεωρείτε τις σελίδες κεφαλίδας ως αναγκαίο κακό. σελίδες banner σελίδες κεφαλίδας σελίδες κεφαλίδας Οι σελίδες κεφαλίδας, γνωστές επίσης και ως banner ή σελίδες burst αναγνωρίζουν σε ποιον ανήκουν οι εργασίες μετά την εκτύπωση τους. Συνήθως τυπώνονται με μεγάλα, έντονα γράμματα, και ίσως με διακοσμητικά περιγράμματα, ώστε σε μια στοίβα εκτυπώσεων να ξεχωρίζουν από τα πραγματικά έγγραφα εργασιών των χρηστών. Επιτρέπουν έτσι στους χρήστες να βρίσκουν γρήγορα τις εργασίες τους. Το προφανές μειονέκτημα σε μια σελίδα κεφαλίδας είναι πως πρόκειται να εκτυπωθεί μια ακόμα σελίδα για κάθε μία εργασία. Η εφήμερη χρησιμότητα τους διαρκεί λίγα λεπτά, και ο προορισμός τους είναι ο κάδος αχρήστων/ανακύκλωσης. (Παρατηρήστε πως οι σελίδες κεφαλίδας είναι ανά εργασία, και όχι ανά αρχείο σε μια εργασία, επομένως το αχρηστευμένο χαρτί ίσως να μην είναι τόσο πολύ). Το σύστημα LPD μπορεί να παρέχει αυτόματα σελίδες κεφαλίδας για τις εκτυπώσεις σας, αν ο εκτυπωτής σας μπορεί να εκτυπώσει άμεσα απλό κείμενο. Αν έχετε εκτυπωτή &postscript;, θα χρειαστείτε ένα εξωτερικό πρόγραμμα για να δημιουργήσετε την σελίδα κεφαλίδας. Δείτε το Σελίδες Κεφαλίδας σε Εκτυπωτές &postscript;. Ενεργοποίηση Σελίδων Κεφαλίδας Στην ενότητα Βασικές Ρυθμίσεις Εκτυπωτών, απενεργοποιήσαμε τις σελίδες κεφαλίδας με την καταχώριση sh (σημαίνει suppress header) στο αρχείο /etc/printcap. Για να ενεργοποιήσετε τις σελίδες κεφαλίδας για κάποιον εκτυπωτή, απλά αφαιρέστε την ικανότητα sh. Ακούγεται εύκολο, δεν νομίζετε; Έτσι είναι. Ίσως χρειαστεί να παρέχετε ένα φίλτρο εξόδου για να στείλετε εντολές αρχικοποίησης στον εκτυπωτή. Εδώ είναι ένα παράδειγμα φίλτρου εξόδου για εκτυπωτές συμβατούς με τον τύπο PCL της Hewlett Packard: #!/bin/sh # # hpof - Output filter for Hewlett Packard PCL-compatible printers # Installed in /usr/local/libexec/hpof printf "\033&k2G" || exit 2 exec /usr/libexec/lpr/lpf Προσδιορίστε την διαδρομή προς το φίλτρο εξόδου στην ικανότητα of. Δείτε την ενότητα Φίλτρα Εξόδου για περισσότερες πληροφορίες. Εδώ είναι ένα παράδειγμα αρχείου /etc/printcap για τον εκτυπωτή teak από το προηγούμενο παράδειγμα. Ενεργοποιήσαμε τις σελίδες κεφαλίδας και προσθέσαμε το παραπάνω φίλτρο εξόδου: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf:\ :of=/usr/local/libexec/hpof: Τώρα, όταν οι χρήστες εκτυπώνουν εργασίες στον teak, θα παίρνουν και μία σελίδα κεφαλίδας ανά εργασία. Αν οι χρήστες θέλουν να ξοδεύουν χρόνο ψάχνοντας για τις εκτυπώσεις τους, μπορούν να παρεμποδίσουν τις σελίδες κεφαλίδας αποστέλλοντας τις εργασίες τους με lpr . Δείτε την ενότητα Επιλογές Σελίδων Κεφαλίδας για περισσότερες επιλογές του &man.lpr.1;. Το LPD στέλνει το χαρακτήρα αλλαγής σελίδας (form feed) αμέσως μετά τη σελίδα κεφαλίδας. Αν ο εκτυπωτής σας χρησιμοποιεί διαφορετικό χαρακτήρα ή ακολουθία χαρακτήρων για την αλλαγή σελίδας, προσδιορίστε τα με την ικανότητα ff στο αρχείο /etc/printcap. Έλεγχος Σελίδων Κεφαλίδας Μετά την ενεργοποίηση των σελίδων κεφαλίδας, το LPD θα παράγει μία επιμήκη κεφαλίδα, μία ολόκληρη σελίδα με μεγάλα γράμματα που προσδιορίζει τον χρήστη, τον υπολογιστή (host), και την εργασία. Εδώ είναι ένα παράδειγμα (η kelly εκτύπωσε την εργασία με όνομα outline από τον υπολογιστή rose): k ll ll k l l k l l k k eeee l l y y k k e e l l y y k k eeeeee l l y y kk k e l l y y k k e e l l y yy k k eeee lll lll yyy y y y y yyyy ll t l i t l oooo u u ttttt l ii n nnn eeee o o u u t l i nn n e e o o u u t l i n n eeeeee o o u u t l i n n e o o u uu t t l i n n e e oooo uuu u tt lll iii n n eeee r rrr oooo ssss eeee rr r o o s s e e r o o ss eeeeee r o o ss e r o o s s e e r oooo ssss eeee Job: outline Date: Sun Sep 17 11:04:58 1995 Το LPD προσθέτει μια εντολή αλλαγής σελίδας (form feed) μετά από αυτό το κείμενο έτσι ώστε η εργασία να ξεκινήσει σε νέα σελίδα (εκτός αν έχετε προσδιορίσει την ικανότητα sf (suppress form feeds) για τον εκτυπωτή στο αρχείο /etc/printcap). Αν προτιμάτε, το LPD μπορεί να φτιάξει μια μικρότερου μήκους κεφαλίδα. Προσδιορίστε sb (short banner) στο αρχείο /etc/printcap. Η σελίδα κεφαλίδας θα μοιάζει σαν αυτή: rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 Το LPD τυπώνει (από προεπιλογή) πρώτα την σελίδα κεφαλίδας, και μετά την εργασία. Για να αντιστρέψετε την σειρά, χρησιμοποιήστε την ικανότητα hl (header last) στο αρχείο /etc/printcap. Καταμέτρηση με Σελίδες Κεφαλίδας Η χρήση των προεγκατεστημένων σελίδων κεφαλίδας του LPD ουσιαστικά υποχρεώνουν την τήρηση του παρακάτω κανόνα όταν κάνουμε καταμέτρηση χρήσης του εκτυπωτή: Οι σελίδες κεφαλίδας πρέπει να διατίθενται ελεύθερα (δίχως χρέωση). Γιατί; Διότι το φίλτρο εξόδου είναι το μοναδικό εξωτερικό πρόγραμμα που έχει τον έλεγχο στην εκτύπωση της κεφαλίδας και θα μπορούσε να κάνει καταμέτρηση, αλλά ωστόσο δεν παρέχει καμία πληροφορία για τον χρήστη ή τον υπολογιστή ή κάποιο άλλο αρχείο καταμέτρησης, επομένως δεν γνωρίζει σε ποιόν να αποδώσει την χρήση του εκτυπωτή. Δεν αρκεί απλά να προσθέσετε μία ακόμη σελίδα στην καταμέτρηση τροποποιώντας το φίλτρο κειμένου ή οποιοδήποτε άλλο φίλτρο μετατροπής (το οποίο διαθέτει τις πληροφορίες χρήστη και υπολογιστή), από τη στιγμή που οι χρήστες έχουν την δυνατότητα να παρεμποδίσουν τις σελίδες κεφαλίδας με lpr . Θα μπορούσαν πάλι να χρεωθούν για σελίδες κεφαλίδας που δεν εκτύπωσαν. Βασικά, η lpr θα είναι η προτιμώμενη επιλογή σε ένα περιβάλλον που οι χρήστες έχουν οικολογική συνείδηση, αλλά δεν μπορείτε πραγματικά να παροτρύνετε οποιονδήποτε να τη χρησιμοποιήσει. Δεν είναι αρκετό απλά κάθε φίλτρο σας να δημιουργεί τη δικιά του σελίδα κεφαλίδας (έτσι ώστε να μπορεί να χρεώνει με αυτό τον τρόπο). Αν οι χρήστες επιθυμούν την επιλογή παρεμπόδισης των σελίδων κεφαλίδας με lpr , θα συνεχίσουν να τις παραλαμβάνουν - και να χρεώνονται για αυτές - αφού το LPD δεν έχει δυνατότητα να περάσει σε οποιοδήποτε φίλτρο την επιλογή . Επομένως, ποιες επιλογές έχετε; Μπορείτε: Να αποδεχθείτε την υπόδειξη του LPD και να παρέχετε τις σελίδες κεφαλίδας ελεύθερα. Να εγκαταστήσετε εναλλακτικές λύσεις αντί του LPD, όπως το LPRng. Η ενότητα Εναλλακτικές Λύσεις για τον Στάνταρ Spooler δίνει περισσότερες πληροφορίες για άλλες εφαρμογές παροχέτευσης που μπορείτε να χρησιμοποιήσετε αντί για το LPD. Να γράψετε ένα έξυπνο φίλτρο εξόδου. Υπό κανονικές συνθήκες, ένα "φίλτρο εξόδου" δεν κάνει τίποτε παραπάνω από την αρχικοποίηση ενός εκτυπωτή ή μερικές απλές μετατροπές χαρακτήρων. Είναι κατάλληλο για σελίδες κεφαλίδας και για εργασίες απλού κειμένου (όταν δεν υπάρχει φίλτρο (εισόδου) κειμένου). Αλλά αν υπάρχει φίλτρο κειμένου για εργασίες απλού κειμένου, τότε το LPD θα ενεργοποιεί το φίλτρο εξόδου μόνο για τις σελίδες κεφαλίδας. Και το φίλτρο εξόδου μπορεί να αναλύει το κείμενο της σελίδας κεφαλίδας που δημιουργεί το LPD για να προσδιορίζει τον χρήστη και τον υπολογιστή, ώστε να χρεώνει τις σελίδες κεφαλίδας. Το μόνο επιπλέον πρόβλημα με αυτή τη μέθοδο είναι πως το φίλτρο εξόδου εξακολουθεί να μη γνωρίζει ποιό αρχείο καταμέτρησης να χρησιμοποιήσει (δεν του έχει δοθεί το όνομα του αρχείου από την ικανότητα af), αλλά αν το όνομα του αρχείου σας είναι γνωστό, μπορείτε να το ενσωματώσετε απευθείας στον κώδικα του φίλτρου εξόδου. Για να διευκολύνετε την διαδικασία ανάλυσης, χρησιμοποιήστε την ικανότητα sh (short header) στο /etc/printcap. Ίσως πάλι όλα αυτά να είναι υπερβολικά κοπιαστικά, ενώ είναι σίγουρο πως οι χρήστες θα εκτιμήσουν τον γενναιόδωρο διαχειριστή συστήματος που επιτρέπει ελεύθερα τις σελίδες κεφαλίδας. Σελίδες Κεφαλίδας σε Εκτυπωτές &postscript; Όπως περιγράψαμε παραπάνω, το LPD μπορεί να δημιουργήσει μία σελίδα κεφαλίδας απλού κειμένου, κατάλληλη για πολλούς εκτυπωτές. Οι εκτυπωτές &postscript;, φυσικά, δεν μπορούν να τυπώσουν κατευθείαν απλό κείμενο, επομένως αυτή η δυνατότητα του LPD για τις σελίδες κεφαλίδας είναι άχρηστη σε αυτή την περίπτωση. Ένας προφανής τρόπος να παρέχονται σελίδες κεφαλίδας είναι να δημιουργούνται από κάθε φίλτρο μετατροπής και το φίλτρο κειμένου. Τα φίλτρα θα πρέπει να δέχονται ως παραμέτρους το όνομα του χρήστη και του υπολογιστή ώστε να δημιουργούν την κατάλληλη σελίδα κεφαλίδας. Το μειονέκτημα αυτής της μεθόδου είναι πως οι χρήστες θα εκτυπώνουν πάντα σελίδα κεφαλίδας, ακόμη κι αν αποστέλλουν την εργασία τους με lpr . Επιτρέψτε μας να εξερευνήσουμε αυτή τη μέθοδο. Το ακόλουθο script δέχεται τρεις παραμέτρους (το όνομα χρήστη - login name, το όνομα του υπολογιστή - host name, και το όνομα εργασίας) και δημιουργεί μία απλή σελίδα κεφαλίδας &postscript;: #!/bin/sh # # make-ps-header - make a PostScript header page on stdout # Installed in /usr/local/libexec/make-ps-header # # # These are PostScript units (72 to the inch). Modify for A4 or # whatever size paper you are using: # page_width=612 page_height=792 border=72 # # Check arguments # if [ $# -ne 3 ]; then echo "Usage: `basename $0` <user> <host> <job>" 1>&2 exit 1 fi # # Save these, mostly for readability in the PostScript, below. # user=$1 host=$2 job=$3 date=`date` # # Send the PostScript code to stdout. # exec cat <<EOF %!PS % % Make sure we do not interfere with user's job that will follow % save % % Make a thick, unpleasant border around the edge of the paper. % $border $border moveto $page_width $border 2 mul sub 0 rlineto 0 $page_height $border 2 mul sub rlineto currentscreen 3 -1 roll pop 100 3 1 roll setscreen $border 2 mul $page_width sub 0 rlineto closepath 0.8 setgray 10 setlinewidth stroke 0 setgray % % Display user's login name, nice and large and prominent % /Helvetica-Bold findfont 64 scalefont setfont $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto ($user) show % % Now show the boring particulars % /Helvetica findfont 14 scalefont setfont /y 200 def [ (Job:) (Host:) (Date:) ] { 200 y moveto show /y y 18 sub def } forall /Helvetica-Bold findfont 14 scalefont setfont /y 200 def [ ($job) ($host) ($date) ] { 270 y moveto show /y y 18 sub def } forall % % That is it % restore showpage EOF Τώρα, καθένα από τα φίλτρα μετατροπής και το φίλτρο κειμένου μπορούν να καλέσουν το script, πρώτα για να δημιουργήσουν τη σελίδα κεφαλίδας, και έπειτα για να εκτυπώσουν την εργασία του χρήστη. Ακολουθεί το φίλτρο μετατροπής DVI που δείξαμε νωρίτερα, ειδικά διαμορφωμένο για να φτιάξουμε μια σελίδα κεφαλίδας: #!/bin/sh # # psdf - DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # orig_args="$@" fail() { echo "$@" 1>&2 exit 2 } while getopts "x:y:n:h:" option; do case $option in x|y) ;; # Ignore n) login=$OPTARG ;; h) host=$OPTARG ;; *) echo "LPD started `basename $0` wrong." 1>&2 exit 2 ;; esac done [ "$login" ] || fail "No login name" [ "$host" ] || fail "No host name" ( /usr/local/libexec/make-ps-header $login $host "DVI File" /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args Παρατηρήστε πως το φίλτρο πρέπει να αναλύσει την λίστα παραμέτρων για να προσδιορίσει το όνομα χρήστη και υπολογιστή. Η μέθοδος ανάλυσης είναι παρόμοια και για τα υπόλοιπα φίλτρα μετατροπής. Το φίλτρο κειμένου παίρνει ένα ελαφρώς διαφορετικό σετ παραμέτρων, (δείτε την ενότητα Πως δουλεύουν τα Φίλτρα). Όπως αναφέραμε προηγούμενα, ο παραπάνω σχεδιασμός, αν και πραγματικά απλός, απενεργοποιεί την επιλογή παρεμπόδισης σελίδων κεφαλίδας (την επιλογή ) του lpr. Αν οι χρήστες επιθυμούν να σώσουν ένα δέντρο (ή λίγα χρήματα, αν χρεώνετε τις σελίδες κεφαλίδας), δεν θα υπάρχει τρόπος για να γίνει αυτό, από τη στιγμή που κάθε εκτύπωση μέσω των φίλτρων θα συνοδεύεται και από μια σελίδα κεφαλίδας για κάθε εργασία. Για να επιτρέψετε στους χρήστες να απενεργοποιούν τις σελίδες κεφαλίδας ανά εργασία, θα πρέπει να χρησιμοποιήσετε το τέχνασμα που παρουσιάσαμε στην ενότητα Καταμέτρηση με Σελίδες Κεφαλίδας: δηλαδή να γράψετε ένα φίλτρο εξόδου που να αναλύει την σελίδα κεφαλίδας που δημιουργείται από το LPD και να κατασκευάζει μια &postscript; έκδοση. Αν ο χρήστης στείλει μια εργασία με lpr , τότε ούτε το LPD, ούτε το φίλτρο εξόδου θα φτιάξουν σελίδα κεφαλίδας. Σε όλες τις άλλες περιπτώσεις, το φίλτρο εξόδου θα διαβάζει το κείμενο από το LPD και θα στέλνει τον κατάλληλο κώδικα &postscript; στον εκτυπωτή ώστε να εκτυπώνεται η σελίδα κεφαλίδας. Αν έχετε εκτυπωτή &postscript; με σειριακή σύνδεση, μπορείτε να κάνετε χρήση της lprps, η οποία συνοδεύεται από ένα φίλτρο εξόδου, το psof, το οποία κάνει τα παραπάνω. Σημειώστε πως το psof δεν χρεώνει για τις σελίδες κεφαλίδας. Εκτυπώσεις μέσω Δικτύου εκτυπωτές δίκτυο εκτυπώσεις μέσω δικτύου Το &os; υποστηρίζει τις εκτυπώσεις μέσω δικτύου: μπορεί να στείλει εργασίες σε απομακρυσμένους εκτυπωτές. Η έννοια της δικτυακής εκτύπωσης αναφέρεται γενικά σε δύο διαφορετικά πράγματα: Πρόσβαση σε εκτυπωτή συνδεδεμένο σε απομακρυσμένο υπολογιστή (host). Εγκαθιστάτε έναν εκτυπωτή με συμβατική σειριακή ή παράλληλη σύνδεση σε ένα υπολογιστή. Έπειτα, ρυθμίζετε το LPD για να ενεργοποιηθεί η πρόσβαση στον εκτυπωτή από άλλους υπολογιστές του δικτύου. Η ενότητα Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές εξηγεί τις απαραίτητες ενέργειες. Πρόσβαση σε εκτυπωτή συνδεδεμένο κατευθείαν στο δίκτυο. Εκτός (ή αντί) της συμβατικής σειριακής ή παράλληλης θύρας, ο εκτυπωτής πρέπει να έχει επιπρόσθετα μια δικτυακή διασύνδεση. Ένας τέτοιος εκτυπωτής δουλεύει ως εξής: Μπορεί να καταλαβαίνει το πρωτόκολλο LPD και να δημιουργεί ουρά αναμονής για τις εργασίες που προέρχονται από απομακρυσμένους υπολογιστές. Σε αυτή την περίπτωση, ενεργεί σαν ένας κανονικός υπολογιστής που εκτελεί το LPD. Ακολουθήστε την ίδια διαδικασία με την ενότητα Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές για να εγκαταστήσετε αυτόν τον εκτυπωτή. Μπορεί να υποστηρίζει σύνδεση δικτυακής ροής δεδομένων (data stream). Σε αυτή την περίπτωση, συνδέετε τον εκτυπωτή σε έναν υπολογιστή συνδεδεμένο στο δίκτυο, ο οποίος θα είναι υπεύθυνος για την παροχέτευση των εργασιών και την αποστολή τους στον εκτυπωτή. Η ενότητα Εκτυπωτές Με Συνδέσεις Δικτύου δίνει μερικές συμβουλές για την εγκατάσταση εκτυπωτών αυτού του τύπου. Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές Το σύστημα παροχέτευσης LPD έχει ενσωματωμένη υποστήριξη για την αποστολή εργασιών σε άλλους υπολογιστές που εκτελούν το LPD (ή που είναι συμβατοί με το LPD). Αυτό το χαρακτηριστικό σας επιτρέπει να εγκαταστήσετε έναν εκτυπωτή σε ένα υπολογιστή και να έχετε πρόσβαση σε αυτόν από άλλους. Επίσης δουλεύει και με εκτυπωτές που έχουν δικτυακές διασυνδέσεις που καταλαβαίνουν το πρωτόκολλο LPD. Για να ενεργοποιήσετε αυτόν τον τύπο απομακρυσμένης εκτύπωσης, εγκαταστήστε πρώτα έναν εκτυπωτή σε ένα υπολογιστή, τον υπολογιστή εκτύπωσης (printer host), χρησιμοποιώντας την απλή εγκατάσταση εκτυπωτή που περιγράφεται στην ενότητα Βασικές Ρυθμίσεις Εκτυπωτών. Κάντε όσες προχωρημένες ρυθμίσεις χρειάζεστε όπως αναφέρεται στις Ρυθμίσεις Εκτυπωτών για Προχωρημένους. Ελέγξτε τον εκτυπωτή και δείτε αν δουλεύει με τα χαρακτηριστικά του LPD που έχετε ενεργοποιήσει. Επίσης βεβαιωθείτε πως ο τοπικός υπολογιστής (local host) είναι εξουσιοδοτημένος να χρησιμοποιεί τις υπηρεσίες του LPD στον απομακρυσμένο υπολογιστή (remote host) (δείτε Παρεμπόδιση Εργασιών από Απομακρυσμένους Υπολογιστές). εκτυπωτές δίκτυο δικτυακές εκτυπώσεις Εάν χρησιμοποιείτε εκτυπωτή με δικτυακή διασύνδεση που είναι συμβατός με το LPD, τότε ο ο υπολογιστής εκτύπωσης (printer host) είναι ο εν λόγω εκτυπωτής, και το όνομα του εκτυπωτή είναι το όνομα που έχετε ορίσει για τον εκτυπωτή. Δείτε την τεκμηρίωση που συνοδεύει τον εκτυπωτή σας και/ή την κάρτα δικτύου του. Αν χρησιμοποιείτε Hewlett Packard Laserjet με όνομα εκτυπωτή text θα γίνονται αυτόματα οι μετατροπές από LF σε CRLF, επομένως δεν χρειάζεται να τρέξετε το script hpif. Επομένως, στους υπόλοιπους υπολογιστές όπου επιθυμείτε να έχετε πρόσβαση στον εκτυπωτή, απλά κάντε μια καταχώριση στο αρχείο /etc/printcap με τα ακόλουθα στοιχεία: Ονομάστε την καταχώριση όπως επιθυμείτε: Για δική σας ευκολία πιθανώς να θέλετε να χρησιμοποιήσετε το ίδιο όνομα και τα ίδια παρωνύμια με αυτά του υπολογιστή εκτύπωσης. Αφήστε την ικανότητα lp κενή, για την ακρίβεια (:lp=:). Δημιουργήστε ένα κατάλογο spooling και προσδιορίστε την τοποθεσία του με την ικανότητα sd. Το LPD θα αποθηκεύει εδώ τις εργασίες πριν την αποστολή τους στον υπολογιστή εκτύπωσης. Τοποθετήστε το όνομα του υπολογιστή εκτύπωσης στην ικανότητα rm. Τοποθετήστε το όνομα του εκτυπωτή στην ικανότητα rp, στον υπολογιστή εκτύπωσης. Αυτό είναι όλο. Δεν χρειάζεται να δημιουργήσετε λίστα φίλτρων μετατροπής, διαστάσεις σελίδας, ή οτιδήποτε άλλο στο αρχείο/etc/printcap. Εδώ είναι ένα παράδειγμα. Ο υπολογιστής rose έχει δύο εκτυπωτές, τον bamboo και τον rattan. Θέλουμε να ενεργοποιήσουμε τις εκτυπώσεις σε αυτούς τους εκτυπωτές για τους χρήστες του απομακρυσμένου υπολογιστή orchid. Εδώ είναι το αρχείο /etc/printcap του υπολογιστή orchid (δείτε πιο πίσω στην ενότητα Ενεργοποίηση Σελίδων Κεφαλίδας). Ήδη έχει μια καταχώριση για τον εκτυπωτή teak. Εδώ προσθέσαμε τις απαραίτητες καταχωρίσεις για τους δύο εκτυπωτές του υπολογιστή rose: # # /etc/printcap for host orchid - added (remote) printers on rose # # # teak is local; it is connected directly to orchid: # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: # # rattan is connected to rose; send jobs for rattan to rose: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: # # bamboo is connected to rose as well: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: Το μόνο που απομένει είναι να δημιουργήσουμε τους καταλόγους spooling στον κόμβο orchid: &prompt.root; mkdir /var/spool/lpd/rattan /var/spool/lpd/bamboo &prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo &prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo Τώρα, οι χρήστες του orchid μπορούν να εκτυπώνουν στον rattan και στον bamboo. Αν, για παράδειγμα, ένας χρήστης του orchid πληκτρολογήσει: &prompt.user; lpr bamboo sushi-review.dvi το σύστημα LPD στον orchid θα αντιγράψει την εργασία στον κατάλογο spooling /var/spool/lpd/bamboo και θα σημειώσει πως πρόκειται για εργασία DVI. Μόλις ο υπολογιστής rose έχει διαθέσιμο χώρο στον κατάλογο spooling του bamboo, τα δύο LPDs θα μεταφέρουν το αρχείο στον rose. Το αρχείο θα μπει σε ουρά αναμονής στον υπολογιστή rose έως ότου εκτυπωθεί. Θα μετατραπεί από DVI σε &postscript; (αφού ο bamboo είναι εκτυπωτής &postscript;) στον υπολογιστή rose. Εκτυπωτές με Συνδέσεις Δικτύου Συχνά, όταν αγοράζετε κάρτα δικτύου για εκτυπωτή, έχετε τη δυνατότητα επιλογής δύο εκδόσεων: η μία είναι προσομοίωση του spooler (η πιο ακριβή έκδοση) ενώ η άλλη απλά σας επιτρέπει να στέλνετε δεδομένα μέσω αυτής σαν να χρησιμοποιούσατε μια σειριακή ή παράλληλη θύρα (η φτηνή έκδοση). Αυτή η ενότητα περιγράφει πως να χρησιμοποιείτε την φτηνή έκδοση. Για την πιο ακριβή έκδοση μπορείτε να βρείτε περισσότερες πληροφορίες στην προηγούμενη ενότητα Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές. Η μορφή του αρχείου /etc/printcap σας επιτρέπει να ορίσετε τη διασύνδεση - σειριακή ή παράλληλη - που θα χρησιμοποιήσετε, και (αν χρησιμοποιείτε σειριακή διασύνδεση) τον ρυθμό baud, πιθανούς ελέγχους ροής, καθυστερήσεις για tabs, μετατροπές για χαρακτήρες νέας γραμμής, και άλλα. Αλλά δεν υπάρχει τρόπος να ορίσετε μια σύνδεση σε εκτυπωτή που ακούει σε θύρα TCP/IP ή άλλο τύπο δικτύου. Για να στείλετε δεδομένα σε ένα δικτυακό εκτυπωτή, χρειάζεται να αναπτύξετε προγράμματα επικοινωνίας που να καλούνται από φίλτρα κειμένου και φίλτρα μετατροπής. Εδώ έχουμε ένα τέτοιο παράδειγμα: το script netprint παίρνει όλα τα δεδομένα από το standard input και τα στέλνει σε έναν εκτυπωτή συνδεδεμένο στο δίκτυο. Ορίζουμε στο netprint το όνομα του εκτυπωτή ως πρώτη παράμετρο, και τον αριθμό θύρας στην οποία συνδέεται ως δεύτερη. Σημειώστε πως αυτός ο τρόπος υποστηρίζει μόνο επικοινωνία μιας κατεύθυνσης (από το &os; στον εκτυπωτή). Πολλοί δικτυακοί εκτυπωτές υποστηρίζουν αμφίδρομη επικοινωνία, και είναι πολύ πιθανό να επιθυμείτε να εκμεταλλευτείτε τα προτερήματα τους (για να ελέγχετε την κατάσταση του εκτυπωτή, για καταμέτρηση εκτυπώσεων, κλπ.). #!/usr/bin/perl # # netprint - Text filter for printer attached to network # Installed in /usr/local/libexec/netprint # $#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; $printer_host = $ARGV[0]; $printer_port = $ARGV[1]; require 'sys/socket.ph'; ($ignore, $ignore, $protocol) = getprotobyname('tcp'); ($ignore, $ignore, $ignore, $ignore, $address) = gethostbyname($printer_host); $sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address); socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) || die "Can't create TCP/IP stream socket: $!"; connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; while (<STDIN>) { print PRINTER; } exit 0; Μπορείτε να χρησιμοποιήσετε αυτό το script σε διάφορα φίλτρα. Ας υποθέσουμε πως έχουμε έναν εκτυπωτή γραμμής Diablo 750-N συνδεδεμένο στο δίκτυο. Ο εκτυπωτής δέχεται δεδομένα προς εκτύπωση στην θύρα 5100. Το όνομα του εκτυπωτή στο δίκτυο είναι scrivener. Εδώ είναι το φίλτρο κειμένου για τον εκτυπωτή: #!/bin/sh # # diablo-if-net - Text filter for Diablo printer `scrivener' listening # on port 5100. Installed in /usr/local/libexec/diablo-if-net # exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 Έλεγχος Πρόσβασης και Περιορισμοί στη Χρήση των Εκτυπωτών εκτυπωτές έλεγχος πρόσβασης Αυτή η ενότητα δίνει πληροφορίες για τον έλεγχο πρόσβασης και τον περιορισμό χρήσης των εκτυπωτών. Το σύστημα LPD σας επιτρέπει να ελέγχετε ποιός μπορεί να έχει πρόσβαση σε κάθε εκτυπωτή, τόσο τοπικά όσο και απομακρυσμένα, και επίσης αν μπορούν οι χρήστες να εκτυπώνουν πολλαπλά αντίγραφα, πόσο μεγάλες μπορούν να είναι οι εργασίες τους, και πόσο μεγάλες μπορούν να γίνουν οι ουρές αναμονής (print queues). Περιορισμός Εκτύπωσης Πολλαπλών Αντιγράφων Το σύστημα LPD διευκολύνει τους χρήστες να εκτυπώσουν πολλαπλά αντίγραφα ενός αρχείου. Οι χρήστες μπορούν να εκτυπώνουν εργασίες με lpr (για παράδειγμα) και να παίρνουν πέντε αντίγραφα κάθε αρχείου της εργασίας εκτύπωσης. Το αν αυτό είναι καλό, εξαρτάται από εσάς. Αν πιστεύετε πως τα πολλαπλά αντίγραφα δημιουργούν άσκοπη καταπόνηση των εκτυπωτών σας, μπορείτε να απενεργοποιήσετε την επιλογή στο &man.lpr.1; προσθέτοντας την ικανότητα sc στο αρχείο /etc/printcap. Όταν οι χρήστες αποστέλλουν εργασίες με την επιλογή , θα βλέπουν: lpr: multiple copies are not allowed Σημειώστε πως αν έχετε ρυθμίσει πρόσβαση σε έναν εκτυπωτή απομακρυσμένα (δείτε την ενότητα Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές), θα χρειαστεί να προσθέσετε την ικανότητα sc σε όλα τα απομακρυσμένα αρχεία /etc/printcap, διαφορετικά οι χρήστες θα έχουν ακόμη την δυνατότητα να αποστέλλουν εργασίες πολλαπλών αντιγράφων χρησιμοποιώντας διαφορετικό κόμβο. Εδώ είναι ένα παράδειγμα. Αυτό είναι το αρχείο /etc/printcap για τον κόμβο rose. Ο εκτυπωτής rattan είναι δυνατό μηχάνημα και επιτρέπει την εκτύπωση πολλαπλών αντιγράφων, αλλά ο εκτυπωτής laser bamboo είναι πιο ευαίσθητο, επομένως θα απενεργοποιήσουμε τη δυνατότητα πολλαπλών αντιγράφων προσθέτοντας την ικανότητα sc: # # /etc/printcap for host rose - restrict multiple copies on bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Τώρα, θα χρειαστεί να προσθέσουμε επίσης την ικανότητα sc στο αρχείο /etc/printcap του κόμβου orchid (και ενώ βρισκόμαστε σε αυτό, επιτρέψτε μας να απενεργοποιήσουμε τα πολλαπλά αντίγραφα για τον εκτυπωτή teak): # # /etc/printcap for host orchid - no multiple copies for local # printer teak or remote printer bamboo teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc: Χρησιμοποιώντας την ικανότητα sc, προλαμβάνουμε την χρήση των εντολών lpr , αλλά δεν έχουμε ακόμη την δυνατότητα να παρεμποδίσουμε τους χρήστες να τρέξουν την εντολή &man.lpr.1; πολλές φορές, ή να αποστείλουν το ίδιο αρχείο πολλές φορές σε μία μοναδική εργασία, όπως εδώ: &prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign Υπάρχουν πολλοί τρόποι πρόληψης αυτών των ενεργειών (συμπεριλαμβάνοντας και την περίπτωση να το αγνοήσετε) που είστε ελεύθεροι να εξερευνήσετε. Περιορίζοντας την Πρόσβαση σε Εκτυπωτές Μπορείτε να ελέγχετε ποιός μπορεί να εκτυπώνει σε ποιόν εκτυπωτή χρησιμοποιώντας τους μηχανισμούς ομάδων (groups) του &unix; και την ικανότητα rg στο /etc/printcap. Απλά τοποθετήστε τους χρήστες που θέλετε να έχουν πρόσβαση σε κάποιον εκτυπωτή σε μια συγκεκριμένη ομάδα (χρηστών), και δηλώστε αυτή την ομάδα στην ικανότητα rg. Όλοι οι χρήστες που δεν ανήκουν στην ομάδα (συμπεριλαμβανομένου και του root) θα δέχονται το ακόλουθο μήνυμα: lpr: Not a member of the restricted group όταν προσπαθούν να εκτυπώσουν στον ελεγχόμενο εκτυπωτή. Όπως και με την ικανότητα sc (περιορισμού πολλαπλών αντιγράφων), θα χρειαστεί να προσδιορίσετε την rg στους απομακρυσμένους κόμβους που θα έχουν πρόσβαση στους εκτυπωτές σας, αν νομίζετε πως αυτό είναι σωστό (δείτε την ενότητα Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές). Για παράδειγμα, θα αφήσουμε για όλους ελεύθερη την πρόσβαση στον εκτυπωτή rattan, αλλά μόνο οι χρήστες της ομάδας artists θα μπορούν να χρησιμοποιήσουν τον bamboo. Εδώ είναι το γνωστό μας /etc/printcap για τον κόμβο rose: # # /etc/printcap for host rose - restricted group for bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Επιτρέψτε μας να μην αλλάξουμε το αρχείο /etc/printcap από το άλλο παράδειγμα (για τον υπολογιστή orchid). Φυσικά, οποιοσδήποτε χρήστης του orchid μπορεί να εκτυπώσει στον bamboo. Ίσως όμως να επιτρέπουμε μόνον σε συγκεκριμένους χρήστες την πρόσβαση στον υπολογιστή orchid, και θέλουμε αυτοί οι χρήστες να έχουν πρόσβαση στον εκτυπωτή. Ή ίσως πάλι, και όχι. Επιτρέπεται μόνο μια περιορισμένη ομάδα ανά εκτυπωτή. Έλεγχος Μεγέθους των Απεσταλμένων Εργασιών εργασίες εκτύπωσης Αν πολλοί χρήστες έχουν πρόσβαση στους εκτυπωτές σας, πιθανώς να χρειάζεται να θέσετε ένα ανώτατο όριο στο επιτρεπόμενο μέγεθος αρχείων που μπορούν να αποστείλουν οι χρήστες για εκτύπωση. Ακόμα και αν υπάρχει αρκετός χώρος στο σύστημα αρχείων που φιλοξενεί τους καταλόγους spool, θα πρέπει ωστόσο να βεβαιωθείτε ότι επαρκεί για τις εργασίες όλων των χρηστών. εργασίες εκτύπωσης έλεγχος Το LPD σας επιτρέπει να οριοθετήσετε το μέγιστο αριθμό bytes που περιέχει μια εργασία, με την ικανότητα mx. Η μονάδα μέτρησης είναι σε BUFSIZ blocks, τα οποία είναι 1024 bytes. Αν θέσετε μηδέν σε αυτή την ικανότητα, δεν θα υπάρχουν όρια στο μέγεθος των αρχείων. Ωστόσο, αν δεν έχει οριστεί η ικανότητα mx, τότε θα χρησιμοποιείται η προεπιλεγμένη τιμή των 1000 blocks. Το όριο εφαρμόζεται στα αρχεία μιας εργασίας, και όχι στο συνολικό μέγεθος της εργασίας. Το LPD δεν θα απορρίψει ένα αρχείο που ξεπερνά το όριο μεγέθους που έχετε θέσει. Αντιθέτως, θα το τοποθετήσει στην ουρά αναμονής με μέγεθος ίσο με το μέγιστο επιτρεπτό, το οποίο και θα εκτυπώσει τελικά. Το υπόλοιπο αρχείο απορρίπτεται. Αν αυτός είναι σωστός ή λανθασμένος τρόπος αντιμετώπισης για την υπέρβαση του ορίου, είναι θέμα προς συζήτηση. Ας οριοθετήσουμε στο παράδειγμα μας τους εκτυπωτές rattan και bamboo. Επειδή τα αρχεία &postscript; των artists τείνουν προς μεγάλα μεγέθη, θα θέσουμε ένα όριο πέντε megabytes. Δεν θα θέσουμε όρια για τον εκτυπωτή γραμμής απλού κειμένου: # # /etc/printcap for host rose # # # No limit on job size: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:mx#0:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: # # Limit of five megabytes: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Και πάλι, τα όρια εφαρμόζονται μόνο για τους τοπικούς χρήστες. Αν έχετε ενεργοποιήσει απομακρυσμένη πρόσβαση για τους εκτυπωτές σας, τα όρια αυτά δεν ισχύουν για τους απομακρυσμένους χρήστες. Θα χρειαστεί να προσδιορίσετε με την ικανότητα mx και τα απομακρυσμένα αρχεία /etc/printcap. Δείτε την ενότητα Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές για περισσότερες πληροφορίες σχετικά με τις εκτυπώσεις από απομακρυσμένους υπολογιστές. Υπάρχει και άλλος εξειδικευμένος τρόπος περιορισμού του μεγέθους εργασιών για απομακρυσμένους εκτυπωτές. Δείτε την ενότητα Περιορισμός Εργασιών από Απομακρυσμένους Υπολογιστές. Περιορισμός Εργασιών από Απομακρυσμένους Υπολογιστές Το σύστημα παροχέτευσης LPD παρέχει διάφορους τρόπους περιορισμού των εργασιών από απομακρυσμένους υπολογιστές: Παρεμπόδιση υπολογιστών Μπορείτε να ελέγχετε από ποιους απομακρυσμένους υπολογιστές θα δέχεται αιτήσεις εκτύπωσης το τοπικό LPD, χρησιμοποιώντας τα αρχεία /etc/hosts.equiv και /etc/hosts.lpd. Το LPD ελέγχει να δει αν η εισερχόμενη αίτηση προέρχεται από έναν υπολογιστή που αναφέρεται σε κάποιο από τα δύο αρχεία. Αν όχι, το LPD απορρίπτει την αίτηση. Η μορφή αυτών των αρχείων είναι απλή: ένα όνομα υπολογιστή ανά γραμμή. Παρατηρήστε πως το αρχείο /etc/hosts.equiv χρησιμοποιείται και από το πρωτόκολλο &man.ruserok.3;, και επηρεάζει προγράμματα όπως το &man.rsh.1; και το &man.rcp.1;, επομένως να είστε προσεκτικοί. Για παράδειγμα, εδώ είναι το αρχείο /etc/hosts.lpd στον υπολογιστή rose: orchid violet madrigal.fishbaum.de Αυτό σημαίνει πως ο rose δέχεται αιτήσεις από τους υπολογιστές orchid, violet, και madrigal.fishbaum.de. Αν κάποιος άλλος υπολογιστής προσπαθήσει να αποκτήσει πρόσβαση στο LPD του rose, η εργασία θα απορριφθεί. Περιορισμοί στο Μέγεθος Μπορείτε να ελέγχετε πόσος ελεύθερος χώρος πρέπει να απομένει στο σύστημα αρχείων όπου βρίσκεται ο κατάλογος spool. Δημιουργήστε ένα αρχείο με όνομα minfree στον κατάλογο spool για τον τοπικό εκτυπωτή. Εισάγετε σε αυτό το αρχείο έναν αριθμό που αντιπροσωπεύει πόσα blocks δίσκου (512 bytes) ελεύθερου χώρου πρέπει να υπάρχουν για να είναι δεκτή μια απομακρυσμένη εργασία. Αυτό σας επιτρέπει να είστε βέβαιοι πως οι απομακρυσμένοι χρήστες δεν θα γεμίσουν το σύστημα αρχείων σας. Μπορείτε επίσης να το χρησιμοποιήσετε για να δώσετε μερική προτεραιότητα στους τοπικούς χρήστες: οι τοπικοί χρήστες θα μπορούν να στέλνουν εργασίες στην ουρά αναμονής ακόμη και όταν ο ελεύθερος χώρος του δίσκου έχει πέσει κάτω από τον αριθμό που αναφέρεται στο αρχείο minfree. Για παράδειγμα, ας προσθέσουμε ένα αρχείο minfree για τον εκτυπωτή bamboo. Εξετάζουμε το /etc/printcap για να βρούμε τον κατάλογο spool για αυτόν τον εκτυπωτή. Εδώ είναι η καταχώριση για τον bamboo: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Ο κατάλογος spool καθορίζεται στην ικανότητα sd. Θα θέσουμε τρία megabytes (ισοδυναμεί με 6144 disk blocks) ως το μέγεθος του ελεύθερου χώρου που πρέπει να υπάρχει στο σύστημα αρχείων, ώστε το LPD να δέχεται απομακρυσμένες εργασίες: &prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree Περιορισμοί χρηστών Μπορείτε να ελέγχετε ποιός απομακρυσμένος χρήστης μπορεί να εκτυπώνει στους τοπικούς εκτυπωτές ορίζοντας την ικανότητα rs στο /etc/printcap. Όταν εμφανίζεται η rs σε μια καταχώριση κάποιου τοπικά συνδεδεμένου εκτυπωτή, το LPD θα δεχθεί εργασίες από απομακρυσμένους υπολογιστές αν ο χρήστης που αποστέλλει την εργασία έχει λογαριασμό στον τοπικό υπολογιστή και με το ίδιο όνομα χρήστη. Διαφορετικά, το LPD θα απορρίψει την εργασία. Αυτή η ικανότητα είναι ιδιαίτερα χρήσιμη σε περιβάλλοντα όπου υπάρχουν (για παράδειγμα) διαφορετικά επιχειρησιακά τμήματα που μοιράζονται το δίκτυο, και κάποιοι χρήστες πρέπει να υπερβαίνουν τα σύνορα του τμήματος. Δημιουργώντας λογαριασμούς στα συστήματα σας, θα μπορούν να χρησιμοποιούν τους εκτυπωτές σας από το δικό τους τμήμα της επιχείρησης. Αν επιθυμείτε να τους επιτρέπετε να χρησιμοποιούν μόνο τους εκτυπωτές και όχι τα μηχανήματα σας, τότε μπορείτε να δημιουργήσετε λογαριασμούς token, δίχως προσωπικούς καταλόγους και με κέλυφος που δεν μπορεί να χρησιμοποιηθεί, όπως το /usr/bin/false. Καταμέτρηση Χρήσης Εκτυπωτών καταμέτρηση εκτυπωτής Αποφασίσατε ότι χρειάζεται να χρεώνετε για τις εκτυπώσεις σας. Και γιατί όχι; Το χαρτί και το μελάνι κοστίζουν χρήματα. Και επιπλέον υπάρχει κόστος συντήρησης — οι εκτυπωτές αποτελούνται από κινητά μέρη και έχουν την τάση να χαλάνε. Έχετε εξετάσει τους εκτυπωτές σας, τον τρόπο που χρησιμοποιούνται, και το κόστος συντήρησης και έχετε υπολογίσει μια χρέωση ανά σελίδα (ή ανά μέτρο, ανά πόδι, ή άλλη μονάδα μέτρησης). Το θέμα είναι τώρα πως μπορείτε πραγματικά να ξεκινήσετε να καταμετράτε τις εκτυπώσεις σας. Τα άσχημα νέα είναι πως το σύστημα παροχέτευσης του LPD δεν παρέχει πολύ βοήθεια σε αυτόν τον τομέα. Η καταμέτρηση εξαρτάται σε μεγάλο βαθμό από τον τύπο του εκτυπωτή που χρησιμοποιείτε, τους τύπους αρχείων που εκτυπώνετε, και τις δικές σας απαιτήσεις για την χρέωση των εκτυπώσεων. Για την καταμέτρηση, θα πρέπει να μετατρέψετε το φίλτρο κειμένου (για τη χρέωση εργασιών απλού κειμένου) του εκτυπωτή και τα φίλτρα μετατροπής (για τη χρέωση όλων των άλλων τύπων αρχείων) ώστε να μετρούν σελίδες ή να ζητούν να μάθουν από τον εκτυπωτή τον αριθμό των εκτυπωμένων σελίδων. Δεν θα σας βοηθήσει ιδιαίτερα η χρήση φίλτρου εξόδου, από τη στιγμή που δεν μπορεί να κάνει καταμέτρηση. Δείτε την ενότητα Φίλτρα. Γενικά, υπάρχουν δύο τρόποι για να κάνετε καταμέτρηση: Η Περιοδική καταμέτρηση είναι ο πιο συνηθισμένος τρόπος, πιθανώς γιατί είναι ο ευκολότερος. Κάθε φορά που κάποιος εκτυπώνει μια εργασία, το φίλτρο δημιουργεί ένα αρχείο καταγραφής όπου αναφέρει τον χρήστη, τον υπολογιστή, και τον αριθμό των σελίδων. Κάθε μήνα, εξάμηνο, χρόνο, ή άλλη χρονική περίοδο της αρεσκείας σας, συλλέγετε τα αρχεία καταγραφής για τους διάφορους εκτυπωτές, λογαριάζετε τις σελίδες που αναλογούν στους χρήστες, και χρεώνετε αναλόγως. Έπειτα σβήνετε τα στοιχεία από τα αρχεία καταγραφής, ξεκινώντας από καθαρή κατάσταση για την επόμενη περίοδο. Η Καταμέτρηση κατά τη χρήση είναι λιγότερο γνωστή, ίσως επειδή είναι πιο δύσκολος τρόπος. Σε αυτή τη μέθοδο τα φίλτρα χρεώνουν τους χρήστες για τις εκτυπώσεις τους αμέσως μόλις αυτές πραγματοποιηθούν. Όπως και με την καταγραφή χρήσης δίσκου (disk quotas), η καταμέτρηση είναι άμεση. Μπορείτε να προλαμβάνετε την χρήση εκτυπωτών από χρήστες που έχουν χτυπήσει κόκκινο, και μπορείτε να παρέχετε στους χρήστες ένα τρόπο για να ελέγχουν και να ρυθμίζουν τον όγκο εκτυπώσεων (print quotas). Αλλά αυτή η μέθοδος προϋποθέτει λίγο κώδικα βάσεων δεδομένων για την καταγραφή χρηστών και των εν λόγω μεγεθών. Το σύστημα παροχέτευσης LPD υποστηρίζει εύκολα και τις δύο μεθόδους: από τη στιγμή που πρέπει εσείς να παρέχετε τα φίλτρα (τις περισσότερες φορές), θα πρέπει επίσης να παρέχετε και τον κώδικα καταμέτρησης. Αλλά υπάρχει και ένα καλό σε αυτή την υπόθεση: έχετε απεριόριστη ευελιξία στις μεθόδους καταμέτρησης. Για παράδειγμα, μπορείτε να επιλέξετε περιοδική ή κατά τη χρήση καταμέτρηση. Μπορείτε να επιλέξετε τις πληροφορίες που θα καταγράφονται: ονόματα χρηστών, ονόματα υπολογιστών, τύπους εργασιών, τυπωμένες σελίδες, τετραγωνικά μέτρα χαρτιού που χρησιμοποιήθηκε, πόσος χρόνος χρειάστηκε για να γίνει η εκτύπωση, και πολλά ακόμα. Και όλα αυτά γίνονται μετατρέποντας τα φίλτρα για να αποθηκεύουν αυτές τις πληροφορίες. Γρήγορη και Πρόχειρη Καταμέτρηση Εκτυπώσεων Το &os; διατίθεται με δύο προγράμματα που μπορούν να παρέχουν άμεσα απλή περιοδική καταμέτρηση. Είναι το φίλτρο κειμένου lpf, που περιγράφεται στην ενότητα lpf: ένα Φίλτρο Κειμένου, και το &man.pac.8;, ένα πρόγραμμα που συλλέγει και αθροίζει καταχωρίσεις από αρχεία καταμετρήσεων. Όπως αναφέραμε στην ενότητα των φίλτρων (Φίλτρα), το LPD ξεκινά τα φίλτρα κειμένου και μετατροπής περνώντας στην γραμμή εντολών του φίλτρου και το όνομα του αρχείου καταγραφής. Τα φίλτρα μπορούν να χρησιμοποιήσουν αυτή την παράμετρο για να ξέρουν που να γράφουν τις καταχωρίσεις καταμέτρησης. Το όνομα του αρχείου καταμέτρησης φαίνεται στην ικανότητα af στο /etc/printcap, και αν δεν ορίζεται η πλήρης διαδρομή του, χρησιμοποιείται η σχετική διαδρομή ως προς τον κατάλογο spool. Το LPD ξεκινά το lpf με παραμέτρους πλάτους και μήκους σελίδας (από τις ικανότητες pw και pl). Το lpf χρησιμοποιεί αυτές τις παραμέτρους για να προσδιορίσει την ποσότητα χαρτιού που χρησιμοποιήθηκε. Μετά την αποστολή του αρχείου στον εκτυπωτή, γράφει μια καταχώριση καταμέτρησης στο αρχείο καταγραφής. Οι καταχωρίσεις μοιάζουν με τις παρακάτω: 2.00 rose:andy 3.00 rose:kelly 3.00 orchid:mary 5.00 orchid:mary 2.00 orchid:zhang Θα πρέπει να χρησιμοποιείτε ξεχωριστό αρχείο καταγραφής για κάθε εκτυπωτή, αφού το lpf δεν έχει ενσωματωμένη δυνατότητα κλειδώματος αρχείου (file locking), και δύο lpf μπορούν να καταστρέψουν το ένα την καταχώριση του άλλου αν πρόκειται να γράψουν ταυτόχρονα στο ίδιο αρχείο. Ένας εύκολος τρόπος για να βεβαιώσετε την μοναδικότητα αρχείου καταγραφής ανά εκτυπωτή είναι να χρησιμοποιήσετε την ικανότητα af=acct στο /etc/printcap. Έτσι, κάθε αρχείο καταγραφής θα βρίσκεται στον κατάλογο spool του αντίστοιχου εκτυπωτή, σε ένα αρχείο με όνομα acct. Όταν είστε έτοιμοι να χρεώσετε τους χρήστες για τις εκτυπώσεις, εκτελέστε το πρόγραμμα &man.pac.8;. Απλά μεταβείτε στον κατάλογο spool για τον εκτυπωτή που κάνετε καταμέτρηση και πληκτρολογήστε pac. Θα εμφανιστεί ένας απολογισμός με χρεώσεις σε δολάρια, όπως βλέπετε στη συνέχεια: Login pages/feet runs price orchid:kelly 5.00 1 $ 0.10 orchid:mary 31.00 3 $ 0.62 orchid:zhang 9.00 1 $ 0.18 rose:andy 2.00 1 $ 0.04 rose:kelly 177.00 104 $ 3.54 rose:mary 87.00 32 $ 1.74 rose:root 26.00 12 $ 0.52 total 337.00 154 $ 6.74 Παρακάτω είναι οι παράμετροι που δέχεται το &man.pac.8;: Για ποιό printer να κάνει απολογισμό. Αυτή η επιλογή δουλεύει μόνο αν υπάρχει η πλήρης διαδρομή στην ικανότητα af στο /etc/printcap. Ταξινομεί το αποτέλεσμα ανά κόστος αντί της αλφαβητικής ταξινόμησης των χρηστών. Αγνοεί το όνομα του υπολογιστή στα αρχεία καταγραφής. Με αυτή την επιλογή, ο χρήστης smith στον υπολογιστή alpha είναι ο ίδιος χρήστης με τον smith στον υπολογιστή gamma. Χωρίς την επιλογή αυτή, είναι διαφορετικοί χρήστες. Υπολογίζει τις χρεώσεις με price (τιμή) σε δολάρια ανά σελίδα ή ανά πόδι αντί για την τιμή από την ικανότητα pc στο /etc/printcap, ή αλλιώς δύο σεντς (από προεπιλογή). Μπορείτε να ορίσετε ως price μια τιμή με δεκαδικά ψηφία (floating point). Αντιστρέφει την σειρά ταξινόμησης. Δημιουργεί ένα αρχείο απολογισμού των καταμετρήσεων και καθαρίζει τα περιεχόμενα των αρχείων καταγραφής. name Τυπώνει πληροφορίες αναφοράς μόνο για τα συγκεκριμένα name (ονόματα) χρηστών. Στον προεπιλεγμένο απολογισμό που παράγει το &man.pac.8;, βλέπετε των αριθμό των τυπωμένων σελίδων ανά χρήστη από τους διάφορους υπολογιστές. Αν, στο χώρο σας, ο υπολογιστής δεν έχει σημασία (γιατί οι χρήστες μπορούν να χρησιμοποιήσουν οποιονδήποτε θέλουν), εκτελέστε την εντολή pac , για να δημιουργήσετε τον ακόλουθο απολογισμό: Login pages/feet runs price andy 2.00 1 $ 0.04 kelly 182.00 105 $ 3.64 mary 118.00 35 $ 2.36 root 26.00 12 $ 0.52 zhang 9.00 1 $ 0.18 total 337.00 154 $ 6.74 Για τον ορισμό ποσοστού χρέωσης σε δολάρια, το &man.pac.8; χρησιμοποιεί την ικανότητα pc στο αρχείο /etc/printcap (προεπιλεγμένη τιμή 200, ή 2 σεντς ανά σελίδα). Προσδιορίστε σε αυτήν την ικανότητα, σε εκατοστά του σεντ, την τιμή ανά σελίδα ή ανά πόδι που θέλετε να χρεώνετε για τις εκτυπώσεις. Μπορείτε να προσπεράσετε αυτή την τιμή όταν τρέχετε το &man.pac.8; με την επιλογή . H μονάδα μέτρησης για την επιλογή είναι σε δολάρια, όχι σε εκατοστά του σεντ. Για παράδειγμα, &prompt.root; pac ορίζει κόστος κάθε σελίδας ένα δολάριο και πενήντα σεντς. Μπορείτε πραγματικά να έχετε πολλά έσοδα χρησιμοποιώντας αυτές τις χρεώσεις. Τέλος, εκτελώντας pac θα αποθηκεύσετε τις πληροφορίες του απολογισμού σε ένα αρχείο καταγραφής απολογισμού, που θα έχει το ίδιο όνομα με το αρχείο καταγραφής του εκτυπωτή, αλλά με κατάληξη _sum. Έπειτα καθαρίζεται το αρχείο καταγραφής. Όταν εκτελέσετε πάλι το &man.pac.8;, θα ξαναδιαβάσει το αρχείο απολογισμού, για να πάρει τα αρχικά σύνολα, και θα προσθέσει τις πληροφορίες από το κανονικό αρχείο καταγραφής. Πως Μπορείτε να Μετρήσετε τις Τυπωμένες Σελίδες; Για να μετρήσετε τις τυπωμένες σελίδες με έστω στοιχειώδη λεπτομέρεια, θα πρέπει να προσδιορίσετε πόσο χαρτί χρειάζεται μια εργασία. Αυτό είναι το ουσιαστικότερο πρόβλημα στην καταμέτρηση εκτυπώσεων. Για εργασίες απλού κειμένου, το πρόβλημα δεν είναι δύσκολο να λυθεί: Μετράτε πόσες γραμμές υπάρχουν σε μια εργασία και τις συγκρίνετε με πόσες γραμμές μπορεί να τυπώσει ο εκτυπωτής σας σε μια σελίδα. Μην ξεχάσετε να συμπεριλάβετε τα backspaces που προκαλούν υπερτύπωση, ή επιμήκης λογικές γραμμές που αναδιπλώνονται σε περισσότερες από μία φυσικές γραμμές. Το φίλτρο κειμένου lpf (που παρουσιάσαμε στο lpf: ένα Φίλτρο Κειμένου) λαμβάνει υπόψιν του αυτά τα στοιχεία όταν κάνει καταμέτρηση. Αν γράφετε κάποιο φίλτρο κειμένου που χρειάζεται να κάνει καταμέτρηση, ίσως να θέλετε να ελέγξετε τον πηγαίο κώδικα του lpf. Πως χειρίζεστε όμως τους υπόλοιπους τύπους αρχείων; Για τις μετατροπές από DVI-σε-LaserJet ή από DVI-σε-&postscript;, μπορείτε να κάνετε το φίλτρο σας να αναλύει την έξοδο του dvilj ή του dvips και να ελέγχει πόσες σελίδες δημιουργήθηκαν από τη μετατροπή. Ίσως μπορέσετε να κάνετε κάτι παρόμοιο και με διαφορετικούς τύπους αρχείων και προγράμματα μετατροπής Ωστόσο, όλες αυτές οι μέθοδοι έχουν το μειονέκτημα πως ο εκτυπωτής πιθανώς στην πραγματικότητα να μην εκτυπώσει όλες τις σελίδες. Για παράδειγμα, θα μπορούσε να μπλοκαριστεί το χαρτί, ή να τελειώσει το τόνερ, ή ακόμη να συμβεί και έκρηξη —ενώ ο χρήστης θα συνεχίσει να χρεώνεται. Τι θα μπορούσατε να κάνετε; Υπάρχει μόνο ένας σίγουρος τρόπος για να κάνετε καταμέτρηση ακριβείας. Να πάρετε έναν εκτυπωτή που να μπορεί να σας πει πόσο χαρτί χρησιμοποιεί, και να τον συνδέσετε μέσω σειριακής θύρας ή μέσω δικτύου. Σχεδόν όλοι οι εκτυπωτές &postscript; υποστηρίζουν αυτή την δυνατότητα. Θα βρείτε και άλλους τύπους και κατασκευαστές που κάνουν επίσης το ίδιο (για παράδειγμα, οι laser εκτυπωτές δικτύου της Imagen). Μετατρέψτε τα φίλτρα για αυτούς τους εκτυπωτές ώστε να καταγράφουν τις τυπωμένες σελίδες μετά την ολοκλήρωση της εκάστοτε εργασίας εκτύπωσης, και ρυθμίστε τους να κρατούν αρχεία καταγραφής με μόνο αυτή την πληροφορία. Δεν χρειάζεται καταμέτρηση γραμμών ούτε αναφορά σφαλμάτων. Φυσικά, πάντα έχετε τη δυνατότητα να φανείτε γενναιόδωρος και να παρέχετε τις εκτυπώσεις σας δωρεάν. Χρήση Εκτυπωτών printers usage Αυτή η ενότητα περιγράφει πως να χρησιμοποιείτε τους εκτυπωτές που έχετε εγκαταστήσει στο &os;. Οι βασικές εντολές για τον τελικό χρήστη είναι οι ακόλουθες: &man.lpr.1; Εκτύπωση εργασιών &man.lpq.1; Έλεγχος ουράς αναμονής (print queue) του εκτυπωτή &man.lprm.1; Διαγραφή εργασιών από την ουρά αναμονής Υπάρχει επίσης μια εντολή για τους διαχειριστές, η &man.lpc.8;, που περιγράφεται στην ενότητα Διαχείριση Εκτυπωτών, και χρησιμοποιείται για να ελέγχει τους εκτυπωτές και τις ουρές αναμονής. Και οι τρεις εντολές &man.lpr.1;, &man.lprm.1;, και &man.lpq.1; δέχονται την επιλογή με την οποία καθορίζεται σε ποιον εκτυπωτή ή ουρά αναμονής θα ενεργήσουν, όπως αναφέρεται στο αρχείο /etc/printcap. Αυτό σας επιτρέπει να αποστείλετε, να διαγράψετε, και να ελέγξετε εργασίες σε διάφορους εκτυπωτές. Αν δεν χρησιμοποιείτε την επιλογή , τότε οι εντολές χρησιμοποιούν τον εκτυπωτή που αναφέρεται στη μεταβλητή περιβάλλοντος PRINTER. Τέλος, αν δεν έχετε θέσει μια μεταβλητή περιβάλλοντος PRINTER, οι εντολές εκτελούνται με τον προεπιλεγμένο εκτυπωτή που ονομάζεται lp. Από δω και στο εξής, με την ορολογία προεπιλεγμένος εκτυπωτής θα εννοούμε τον εκτυπωτή που αναφέρεται στην μεταβλητή περιβάλλοντος PRINTER, ή αν δεν υπάρχει, τον εκτυπωτή με το όνομα lp. Εκτύπωση Εργασιών Για να εκτυπώσετε αρχεία, πληκτρολογήστε: &prompt.user; lpr filename ... printing Θα εκτυπωθούν όλα τα αναφερόμενα αρχεία στον προεπιλεγμένο εκτυπωτή. Αν δεν αναφέρετε αρχεία, το &man.lpr.1; διαβάζει δεδομένα από το standard input. Για παράδειγμα, αυτή η εντολή θα εκτυπώσει μερικά σημαντικά αρχεία του συστήματος: &prompt.user; lpr /etc/host.conf /etc/hosts.equiv Για να επιλέξετε ένα συγκεκριμένο εκτυπωτή, πληκτρολογήστε: &prompt.user; lpr printer-name filename ... Στο παράδειγμα μας θα εκτυπωθεί μια μεγάλη λίστα αρχείων του τρέχοντος καταλόγου στον εκτυπωτή που ονομάζεται rattan: &prompt.user; ls | lpr rattan Αφού δεν αναφέρονται ονόματα αρχείων στην εντολή &man.lpr.1;, το lpr διαβάζει τα δεδομένα που θα εκτυπώσει από το standard input, τα οποία είναι η έξοδος της εντολής ls . Η εντολή &man.lpr.1; μπορεί να δεχθεί ένα μεγάλο αριθμό επιλογών για να ελέγχει την μορφοποίηση, να μετατρέπει αρχεία, να δημιουργεί πολλαπλά αντίγραφα, κ.λ.π. Για περισσότερες πληροφορίες, δείτε την ενότητα Επιλογές Εκτύπωσης. Έλεγχος Εργασιών εκτύπωση εργασιών Όταν εκτυπώνετε με το &man.lpr.1;, τα δεδομένα που θέλετε να εκτυπώσετε τοποθετούνται σε ένα πακέτο (package) που ονομάζεται εργασία εκτύπωσης (print job), η οποία αποστέλλεται στο σύστημα παροχέτευσης LPD. Κάθε εκτυπωτής έχει μια ουρά αναμονής εργασιών, και η εργασία σας αναμένει μαζί με άλλες δικές σας και άλλων χρηστών. Ο εκτυπωτής τις εκτυπώνει με την σειρά άφιξης στην ουρά αναμονής. Για να εμφανίσετε την ουρά αναμονής για τον προεπιλεγμένο εκτυπωτή, πληκτρολογήστε &man.lpq.1;. Για κάποιον συγκεκριμένο εκτυπωτή, χρησιμοποιήστε την επιλογή . Για παράδειγμα, η εντολή: &prompt.user; lpq bamboo εμφανίζει την ουρά αναμονής για τον εκτυπωτή με το όνομα bamboo. Ακολουθεί ένα παράδειγμα εξόδου της εντολής lpq: bamboo is ready and printing Rank Owner Job Files Total Size active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes 2nd kelly 10 (standard input) 1635 bytes 3rd mary 11 ... 78519 bytes Εμφανίζονται τρεις εργασίες στη λίστα αναμονής για τον bamboo. Στην πρώτη εργασία, που έχει σταλεί από τον χρήστη kelly, έχει αποδοθεί ο αριθμός εργασίας (job number) 9. Κάθε εργασία ενός εκτυπωτή χαρακτηρίζεται από ένα μοναδικό τέτοιο αριθμό. Τις περισσότερες φορές μπορείτε να τον αγνοήσετε, αλλά θα τον χρειαστείτε αν θέλετε να διαγράψετε κάποια εργασία. Δείτε την ενότητα Διαγραφή Εργασιών για περισσότερες πληροφορίες. Η εργασία με το νούμερο εννέα αποτελείται από δύο αρχεία. Τα πολλαπλά αρχεία που δόθηκαν στη γραμμή εντολών του &man.lpr.1; θεωρούνται μέρος μίας μόνο εργασίας. Αυτή είναι και η τρέχουσα ενεργή εργασία (παρατηρήστε τη λέξη active της στήλης Rank), που σημαίνει πως η εργασία εκτυπώνεται αυτή τη στιγμή. Η δεύτερη εργασία αποτελείται από δεδομένα που έχουν περάσει στην standard input της εντολής &man.lpr.1;. Η τρίτη εργασία προέρχεται από τον χρήστη mary, και πρόκειται για μια πολύ ογκώδη εργασία. Το όνομα διαδρομής του αρχείου που πρόκειται να εκτυπωθεί είναι πολύ μεγάλο για να χωρέσει στη στήλη, και για αυτό η εντολή &man.lpq.1; απλά το συμβολίζει με τρεις τελείες. Η πρώτη γραμμή της εξόδου από την &man.lpq.1; είναι επίσης πολύ χρήσιμη: μας ενημερώνει για το τι κάνει την παρούσα στιγμή ο εκτυπωτής (ή τουλάχιστον για το τι πιστεύει το LPD πως κάνει ο εκτυπωτής αυτή τη στιγμή). Η εντολή &man.lpq.1; επίσης υποστηρίζει την επιλογή για να δημιουργήσει μια μεγάλη, λεπτομερή λίστα. Ακολουθεί ένα παράδειγμα του lpq : waiting for bamboo to become ready (offline ?) kelly: 1st [job 009rose] /etc/host.conf 73 bytes /etc/hosts.equiv 15 bytes kelly: 2nd [job 010rose] (standard input) 1635 bytes mary: 3rd [job 011rose] /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes Αφαίρεση Εργασιών Αν αλλάξετε γνώμη για μια εργασία που είχατε αποστείλει προς εκτύπωση, μπορείτε να την αφαιρέσετε από την λίστα αναμονής με την εντολή &man.lprm.1;. Μπορείτε ακόμη να χρησιμοποιήσετε την &man.lprm.1; για να αφαιρέσετε μια ενεργή εργασία, αλλά πιθανόν κάποιο μέρος της να εκτυπωθεί έτσι και αλλιώς. Για να αφαιρέσετε μια εργασία από τον προεπιλεγμένο εκτυπωτή, χρησιμοποιήστε πρώτα την &man.lpq.1; για να βρείτε τον αριθμό της. Έπειτα πληκτρολογήστε: &prompt.user; lprm job-number Για να αφαιρέσετε μια εργασία από κάποιον συγκεκριμένο εκτυπωτή, προσθέστε την επιλογή . Η ακόλουθη εντολή αφαιρεί την εργασία με αριθμό 10 από την ουρά αναμονής για τον εκτυπωτή bamboo: &prompt.user; lprm bamboo 10 Η εντολή &man.lprm.1; έχει μερικές συντομεύσεις: lprm - Αφαιρεί όλες τις εργασίες (για τον προεπιλεγμένο εκτυπωτή) που ανήκουν σε εσάς. lprm user Αφαιρεί όλες τις εργασίες (για τον προεπιλεγμένο εκτυπωτή) που ανήκουν στον χρήστη (user). Ο υπερχρήστης (superuser) μπορεί να αφαιρέσει εργασίες άλλων χρηστών, εσείς μπορείτε να αφαιρέσετε μόνο τις δικές σας. lprm Η εντολή &man.lprm.1; χωρίς αριθμό εργασίας, όνομα χρήστη, ή που εμφανίζεται στην γραμμή εντολών, αφαιρεί την τρέχουσα ενεργή εργασία στον προεπιλεγμένο εκτυπωτή, αν ανήκει σε σάς. Ο υπερχρήστης (superuser) μπορεί να αφαιρέσει οποιαδήποτε ενεργή εργασία. Για να δουλέψετε σε κάποιον συγκεκριμένο εκτυπωτή αντί του προεπιλεγμένου, απλά χρησιμοποιήστε την επιλογή με τις παραπάνω συντομεύσεις. Για παράδειγμα, η ακόλουθη εντολή αφαιρεί όλες τις εργασίες του τρέχοντος χρήστη από την ουρά αναμονής του εκτυπωτή rattan: &prompt.user; lprm rattan - Αν εργάζεστε σε περιβάλλον δικτύου, η &man.lprm.1; θα σας επιτρέψει να αφαιρέσετε εργασίες μόνο από τον υπολογιστή που τις έχετε στείλει, ανεξάρτητα αν ο εκτυπωτής είναι προσβάσιμος και από άλλους υπολογιστές. Η ακόλουθη εντολή επιδεικνύει ακριβώς αυτό το χαρακτηριστικό: &prompt.user; lpr rattan myfile &prompt.user; rlogin orchid &prompt.user; lpq rattan Rank Owner Job Files Total Size active seeyan 12 ... 49123 bytes 2nd kelly 13 myfile 12 bytes &prompt.user; lprm rattan 13 rose: Permission denied &prompt.user; logout &prompt.user; lprm rattan 13 dfA013rose dequeued cfA013rose dequeued Πέρα από το Απλό Κείμενο: Περισσότερες Επιλογές Εκτύπωσης Η εντολή &man.lpr.1; υποστηρίζει μια γκάμα επιλογών για τον έλεγχο μορφοποίησης κειμένου, μετατροπής γραφικών και άλλων μορφών αρχείων, παραγωγής πολλαπλών αντιγράφων, χειρισμού εργασιών, και άλλα. Οι επιλογές αυτές περιγράφονται στην παρούσα ενότητα. Επιλογές Μορφοποίησης και Μετατροπής Οι ακόλουθες επιλογές της &man.lpr.1; ελέγχουν την μορφοποίηση των αρχείων της εργασίας εκτύπωσης. Χρησιμοποιήστε τις αν η εργασία σας δεν περιέχει απλό κείμενο ή αν επιθυμείτε να μορφοποιήσετε απλό κείμενο διαμέσου του εργαλείου &man.pr.1;. &tex; Για παράδειγμα, η ακόλουθη εντολή τυπώνει ένα αρχείο DVI (από το σύστημα στοιχειοθεσίας &tex;) με όνομα fish-report.dvi στον εκτυπωτή με όνομα bamboo: &prompt.user; lpr bamboo fish-report.dvi Αυτές οι επιλογές εφαρμόζονται σε κάθε αρχείο της εργασίας, και έτσι δεν μπορείτε να αναμίξετε (ας πούμε) αρχεία DVI και ditroff μαζί στην ίδια εργασία. Απλώς στείλτε τα αρχεία σαν διαφορετικές εργασίες, χρησιμοποιώντας διαφορετικές επιλογές μετατροπής για κάθε εργασία. Όλες αυτές οι επιλογές εκτός της και της απαιτούν εγκατεστημένα φίλτρα μετατροπής για τον εκτυπωτή προορισμού. Για παράδειγμα, η επιλογή απαιτεί το φίλτρο μετατροπής DVI. Η ενότητα Φίλτρα Μετατροπής δίνει περισσότερες λεπτομέρειες. Εκτυπώνει αρχεία cifplot. Εκτυπώνει αρχεία DVI. Εκτυπώνει αρχεία κειμένου FORTRAN. Εκτυπώνει δεδομένα σχεδίασης (plot). Εκτυπώνει την έξοδο με εσοχή number στηλών. Αν παραλείψετε το number, η εσοχή θα είναι 8 στήλες. Αυτή η επιλογή δουλεύει μόνο με ορισμένα φίλτρα μετατροπής. Μην τοποθετείτε κενό διάστημα μεταξύ του και του αριθμού. Εκτυπώνει δεδομένα κειμένου κατά γράμμα (literal), συμπεριλαμβάνοντας και τους χαρακτήρες ελέγχου. Εκτυπώνει δεδομένα ditroff (δεδομένα troff ανεξάρτητα από τη συσκευή). -p Μορφοποιεί το απλό κείμενο με την &man.pr.1; πριν να το εκτυπώσει. Δείτε την &man.pr.1; για περισσότερες πληροφορίες. Χρησιμοποιεί το title στην κεφαλίδα του &man.pr.1; αντί για το όνομα αρχείου. Αυτή η επιλογή επιδρά μόνο όταν χρησιμοποιείται με την επιλογή Εκτυπώνει δεδομένα troff. Εκτυπώνει δεδομένα ράστερ. Εδώ είναι ένα παράδειγμα: αυτή η εντολή εκτυπώνει μια κομψά μορφοποιημένη έκδοση της σελίδας βοηθείας &man.ls.1; στον προεπιλεγμένο εκτυπωτή: &prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -man | lpr Η εντολή &man.zcat.1; αποσυμπιέζει τον πηγαίο κώδικα της σελίδας βοηθείας &man.ls.1; και τον περνάει στην εντολή &man.troff.1;, η οποία τον μορφοποιεί και δημιουργεί στην έξοδο της δεδομένα GNU troff, τα αποστέλλει στην &man.lpr.1;, η οποία με τη σειρά της αποστέλλει την εργασία στο LPD. Επειδή χρησιμοποιήσαμε την επιλογή στο &man.lpr.1;, ο spooler, κατά τη διάρκεια της εκτύπωσης, θα μετατρέψει την έξοδο GNU troff σε ένα τύπο δεδομένων κατανοητό από τον προεπιλεγμένο εκτυπωτή. Επιλογές Χειρισμού Εργασιών Οι ακόλουθες επιλογές του &man.lpr.1; οδηγούν το LPD να χειριστεί τις εργασίες με ειδικό τρόπο: -# copies Δημιουργεί έναν αριθμό copies (αντιγράφων) για κάθε αρχείο της εργασίας αντί για ένα μόνο αντίγραφο. Ο διαχειριστής μπορεί να απενεργοποιήσει αυτή την επιλογή για να μειώσει την καταπόνηση των εκτυπωτών και να ενθαρρύνει την χρήση φωτοτυπικών μηχανημάτων. Δείτε την ενότητα Περιορισμός Εκτύπωσης Πολλαπλών Αντιγράφων. Σε αυτό το παράδειγμα, εκτυπώνουμε στον προεπιλεγμένο εκτυπωτή τρία αντίγραφα του parser.c και τρία αντίγραφα του parser.h: &prompt.user; lpr parser.c parser.h -m Αποστολή mail μετά την ολοκλήρωση εκτύπωσης της εργασίας. Με αυτή την επιλογή, το σύστημα LPD στέλνει mail στο λογαριασμό σας μόλις ολοκληρωθεί ο χειρισμός εκτύπωσης της εργασίας σας. Στο μήνυμα του, θα σας ενημερώσει αν η εργασία ολοκληρώθηκε επιτυχώς ή αν παρουσιάστηκε σφάλμα και (συχνά) ποιό ήταν το σφάλμα. -s Δεν αντιγράφει τα αρχεία στον κατάλογο spool, αλλά αντί για αυτό, δημιουργεί συμβολικές συντομεύσεις (symbolic links) προς αυτά. Αν εκτυπώνετε μια μεγάλη εργασία, ίσως θέλετε να χρησιμοποιήσετε αυτή την επιλογή. Θα σας γλυτώσει χώρο στον κατάλογο spool (ίσως η εργασία σας να υπερβαίνει τον ελεύθερο χώρο του συστήματος αρχείων που περιέχει τον κατάλογο spool). Επίσης θα κερδίσετε χρόνο αφού το LPD δεν θα χρειαστεί να αντιγράψει όλη την εργασία σας στον κατάλογο spool. Αυτό, ωστόσο, έχει και ένα μειονέκτημα: από τη στιγμή που το LPD θα κάνει αναφορά κατευθείαν στο πρωτότυπο αρχείο, δεν θα έχετε δυνατότητα να μετατρέψετε ή να διαγράψετε το αρχείο έως ότου εκτυπωθεί. Αν εκτυπώνετε σε ένα απομακρυσμένο εκτυπωτή, το LPD πιθανώς θα χρειαστεί τελικά να αντιγράψει τα αρχεία από τον τοπικό υπολογιστή στον απομακρυσμένο, επομένως η επιλογή σε αυτή την περίπτωση εξοικονομεί χώρο στον τοπικό κατάλογο spool, αλλά όχι στον απομακρυσμένο. Εξακολουθεί ωστόσο να είναι ιδιαίτερα χρήσιμη. -r Απομακρύνει τα αρχεία της εργασίας μετά την αντιγραφή τους στον κατάλογο spool, ή μετά την εκτύπωση τους με την επιλογή . Να είστε προσεκτικοί με αυτή την επιλογή! Επιλογές Σελίδων Κεφαλίδας Αυτές οι επιλογές του &man.lpr.1; ρυθμίζουν το κείμενο που κανονικά εμφανίζεται στην σελίδα κεφαλίδας της εργασίας. Αν οι σελίδες κεφαλίδας παρεμποδίζονται για τον συγκεκριμένο εκτυπωτή, αυτές οι επιλογές δεν έχουν καμία επίδραση. Δείτε την ενότητα Σελίδες Κεφαλίδας για πληροφορίες σχετικά με τις ρυθμίσεις των σελίδων κεφαλίδας. -C text Αντικαθιστά το όνομα υπολογιστή στη σελίδα κεφαλίδας με text. Το όνομα υπολογιστή που εμφανίζεται είναι, από προεπιλογή, το όνομα του υπολογιστή από τον οποίο έγινε η αποστολή της εργασίας. -J text Αντικαθιστά το όνομα εργασίας στη σελίδα κεφαλίδας με text. Το όνομα εργασίας που εμφανίζεται από προεπιλογή, είναι το όνομα του πρώτου αρχείου της εργασίας, ή stdin αν η εκτύπωση γίνεται από το standard input. -h Δεν εκτυπώνει σελίδα κεφαλίδας. Ανάλογα με τις ρυθμίσεις, αυτή η επιλογή ίσως να μην έχει επίδραση λόγω του τρόπου με τον οποίο δημιουργούνται οι σελίδες κεφαλίδας. Για περισσότερες λεπτομέρειες, δείτε την ενότητα Σελίδες Κεφαλίδας. Διαχείριση Εκτυπωτών Ως διαχειριστής, χρειάστηκε να εγκαταστήσετε, να ρυθμίσετε και να δοκιμάσετε τους εκτυπωτές σας. Χρησιμοποιώντας την εντολή &man.lpc.8;, μπορείτε να επικοινωνήσετε με τους εκτυπωτές σας με ακόμη περισσότερους τρόπους. Με την &man.lpc.8;, μπορείτε: Να εκκινείτε και να σταματάτε τους εκτυπωτές Να ενεργοποιείτε και να απενεργοποιείτε τις ουρές αναμονής Να ανακατατάσσετε την σειρά εργασιών σε κάθε ουρά αναμονής. Καταρχήν, μία σημείωση σχετικά με την ορολογία: αν ένας εκτυπωτής είναι σταματημένος (stopped), δεν θα εκτυπώσει τίποτε από την ουρά αναμονής εργασιών. Οι χρήστες μπορούν ακόμη να στέλνουν εργασίες, οι οποίες μπαίνουν στην ουρά αναμονής έως ότου ο εκτυπωτής ξεκινήσει ή καθαριστεί η ουρά αναμονής. Αν έχει απενεργοποιηθεί η ουρά αναμονής, κανείς χρήστης (εκτός του root) δεν μπορεί να αποστείλει εργασίες στον εκτυπωτή. Μια ενεργή ουρά αναμονής επιτρέπει να αποσταλούν εργασίες στον εκτυπωτή. Ένας εκτυπωτής μπορεί να ξεκινήσει με ουρά αναμονής απενεργοποιημένη, και σε αυτή την περίπτωση θα συνεχίσει να εκτυπώνει τις εργασίες της ουράς έως ότου αυτή αδειάσει. Γενικά, πρέπει να έχετε προνόμια root για να χρησιμοποιήσετε την εντολή &man.lpc.8;. Οι κανονικοί χρήστες μπορούν να χρησιμοποιούν την εντολή &man.lpc.8; μόνο για να βλέπουν την κατάσταση του εκτυπωτή και να επανεκκινούν τον εκτυπωτή σε περίπτωση μπλοκαρίσματος. Παρακάτω θα βρείτε μια λίστα εντολών του &man.lpc.8;. Οι περισσότερες από τις εντολές παίρνουν ως παράμετρο το printer-name για τη ρύθμιση του συγκεκριμένου εκτυπωτή. Μπορείτε να χρησιμοποιείτε all στη θέση του printer-name για να αναφερθείτε σε όλους τους εκτυπωτές που είναι καταχωρισμένοι στο /etc/printcap. abort printer-name Διαγράφει την τρέχουσα εργασία και σταματάει τον εκτυπωτή. Οι χρήστες μπορούν ακόμη να αποστείλουν εργασίες αν η ουρά αναμονής είναι ακόμη ενεργή. clean printer-name Διαγράφει τα παλιά αρχεία από τον κατάλογο spool του εκτυπωτή. Σε κάποιες περιπτώσεις, τα αρχεία από τα οποία αποτελείται κάποια εργασία δεν αφαιρούνται κανονικά από το LPD, ειδικά αν υπήρξαν σφάλματα κατά την εκτύπωση ή κάποιες ενέργειες από τον διαχειριστή. Αυτή η εντολή βρίσκει αρχεία που δεν ανήκουν στον κατάλογο spool και τα αφαιρεί. disable printer-name Απενεργοποιεί την ουρά αναμονής για νέες εργασίες. Αν ο εκτυπωτής δουλεύει, θα συνεχίσει να εκτυπώνει τις εναπομείναντες εργασίες στην ουρά αναμονής. Ο superuser (root) μπορεί πάντα να στέλνει εργασίες, ακόμη και σε απενεργοποιημένη σειρά αναμονής. Αυτή η εντολή είναι χρήσιμη, όταν ελέγχετε ένα νέο εκτυπωτή ή όταν εγκαθιστάτε ένα φίλτρο: απενεργοποιήστε την ουρά αναμονής και στείλτε εργασίες σαν root. Οι υπόλοιποι χρήστες δεν θα έχουν δυνατότητα να αποστείλουν εργασίες έως ότου ολοκληρώσετε τους ελέγχους σας και επανενεργοποιήσετε την ουρά αναμονής με την εντολή enable. down printer-name message Οδηγεί τον εκτυπωτή σε "κατέβασμα" (down). Είναι ισοδύναμο με το disable ακολουθούμενο από ένα stop. Το message (μήνυμα) εμφανίζεται όταν κάποιος χρήστης ελέγχει την σειρά αναμονής με &man.lpq.1; ή την κατάσταση του εκτυπωτή με lpc status. enable printer-name Ενεργοποίηση της ουράς αναμονής του εκτυπωτή. Οι χρήστες μπορούν να αποστείλουν εργασίες αλλά ο εκτυπωτής δεν θα τυπώσει έως ότου ξεκινήσει. help command-name Τυπώνει σελίδες βοηθείας για την εντολή command-name. Δίχως το command-name, εκτυπώνει μια περίληψη όλων των διαθέσιμων εντολών. restart printer-name Ξεκινά τον εκτυπωτή. Οι κανονικοί χρήστες μπορούν να χρησιμοποιήσουν αυτή την εντολή μόνο σε κάποια ειδική περίπτωση που το LPD δεν αποκρίνεται, αλλά δεν μπορούν να ξεκινήσουν ένα εκτυπωτή που έχει σταματήσει εξαιτίας των εντολών stop ή down. Η εντολή restart είναι ισοδύναμη με την abort ακολουθούμενη από τη start. start printer-name Ξεκινά τον εκτυπωτή. Ο εκτυπωτής θα τυπώσει εργασίες από την ουρά αναμονής του. stop printer-name Σταματάει τον εκτυπωτή. Ο εκτυπωτής θα ολοκληρώσει την τρέχουσα εργασία του και δεν θα τυπώσει καμία άλλη εργασία από την ουρά αναμονής του. Ακόμη και αν ο εκτυπωτής είναι σταματημένος, οι χρήστες μπορούν ακόμη να στέλνουν εργασίες αν είναι ενεργοποιημένη η ουρά αναμονής. topq printer-name job-or-username Ανακατάταξη της ουράς αναμονής για τον printer-name. Τοποθετούνται πρώτες οι εργασίες με αριθμό αναφοράς job ή αυτές που ανήκουν στο χρήστη username. Για αυτή την εντολή, δεν μπορείτε να χρησιμοποιήσετε all στην θέση του printer-name. up printer-name Οδηγεί τον εκτυπωτή σε "ανέβασμα" (up). Το αντίθετο της εντολής down. Ισοδυναμεί με την start ακολουθούμενη από την εντολή enable. Το &man.lpc.8; δέχεται τις παραπάνω εντολές στην γραμμή εντολών. Αν δεν εισάγετε καμία εντολή, το &man.lpc.8; μπαίνει σε κατάσταση αλληλεπίδρασης (interactive), όπου μπορείτε να πληκτρολογείτε εντολές μέχρι να δώσετε exit, quit, ή end-of-file. Εναλλακτικές Λύσεις για τον Στάνταρ Spooler Αν έχετε μελετήσει πιστά όλο το κεφάλαιο μέχρι εδώ, θα έχετε μάθει σχεδόν τα πάντα σχετικά με το σύστημα παροχέτευσης LPD που διατίθεται με το &os;. Θα έχετε κατανοήσει και πολλές από τις ελλείψεις του, που φυσικά γεννούν το ερώτημα: Ποια άλλα συστήματα παροχέτευσης (που να λειτουργούν στο &os;) υπάρχουν διαθέσιμα; LPRng LPRng Το LPRng, το οποίο σκόπιμα σημαίνει LPR: the Next Generation (η Επόμενη Γενιά) είναι μια από την αρχή υλοποίηση του PLP. Ο Patrick Powell και ο Justin Mason (κύριος συντηρητής του PLP) συνεργάστηκαν για να φτιάξουν το LPRng. Η κύρια τοποθεσία του LPRng είναι η . CUPS CUPS Το CUPS, ή αλλιώς Common UNIX Printing System, παρέχει μια φορητή πλατφόρμα εκτυπώσεων για λειτουργικά συστήματα βασισμένα στο &unix;. Αναπτύχθηκε από την Easy Software Products για να προωθήσει μια στάνταρ λύση εκτυπώσεων για όλους τους χρήστες και κατασκευαστές &unix;. Το CUPS χρησιμοποιεί το πρωτόκολλο Internet Printing Protocol (IPP) ως βάση του για τη διαχείριση εργασιών εκτύπωσης και ουρών αναμονής. Υποστηρίζονται επίσης, αλλά με μειωμένη λειτουργικότητα, τα πρωτόκολλα Line Printer Daemon (LPD), Server Message Block (SMB), και AppSocket (γνωστό ως JetDirect). Το CUPS προσθέτει δυνατότητες ανίχνευσης δικτυακών εκτυπωτών, ενώ μέσω των επιλογών PostScript Printer Description (PPD) γίνεται εφικτή η υποστήριξη σύγχρονων εκτυπωτών στον κόσμο του &unix;. Η κύρια τοποθεσία του CUPS είναι η . Εντοπισμός Βλαβών Μετά την εκτέλεση του απλού τεστ με το &man.lptest.1;, αντί της κανονικής εκτύπωσης, μπορεί να έχετε λάβει ως αποτέλεσμα μία από τις ακόλουθες καταστάσεις: Ο εκτυπωτής καθυστέρησε να ξεκινήσει ή δεν εκτύπωσε ολόκληρη τη σελίδα. Ο εκτυπωτής τύπωσε το τεστ, αλλά δεν ξεκίνησε αμέσως. Ίσως χρειάστηκε να πιέσετε το πλήκτρο PRINT REMAINING ή το FORM FEED του εκτυπωτή σας για να εμφανιστεί το επιθυμητό αποτέλεσμα. Εάν είναι όντως αυτή η περίπτωση σας, ο εκτυπωτής πιθανώς να ήταν σε αναμονή για να εξακριβώσει αν υπήρχαν πρόσθετα δεδομένα στην εργασία εκτύπωσης πριν ξεκινήσει να εκτυπώνει οτιδήποτε. Για να διορθώσετε το πρόβλημα, μπορείτε να θέσετε το φίλτρο κειμένου να στέλνει ένα χαρακτήρα FORM FEED (ή άλλο κατάλληλο) στον εκτυπωτή. Αυτό συνήθως είναι αρκετό για να μπορείτε να εκτυπώνετε κατευθείαν οποιοδήποτε κείμενο απομένει σε αναμονή στην εσωτερική μνήμη (buffer) του εκτυπωτή. Είναι επίσης χρήσιμο να ρυθμίζετε τις εκτυπώσεις σας ώστε να τελειώνουν με γεμάτη την τελευταία σελίδα, ώστε η επόμενη εργασία να μην αρχίζει από τα μισά του προηγούμενου φύλλου. Η ακόλουθη τροποποίηση στο shell script /usr/local/libexec/if-simple εκτυπώνει ένα form feed μετά την αποστολή της εργασίας στον εκτυπωτή: #!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. # Writes a form feed character (\f) after printing job. /bin/cat && printf "\f" && exit 0 exit 2 Η εκτύπωση παρουσιάζει φαινόμενο σκάλας (staircase effect). Στην εκτύπωση σας φαίνεται το ακόλουθο: !"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 MS-DOS OS/2 ASCII Γίνατε ένα ακόμα θύμα του φαινομένου σκάλας, που προκλήθηκε από αντιφατικές ερμηνείες των χαρακτήρων με τους οποίους δηλώνεται η τροφοδοσία νέας γραμμής. Τα λειτουργικά συστήματα τύπου &unix; χρησιμοποιούν έναν μόνο χαρακτήρα ASCII με κωδικό 10, τον line feed (τροφοδοσία γραμμής, LF). Το &ms-dos;, το &os2;, και διάφορα άλλα, χρησιμοποιούν ένα ζεύγος χαρακτήρων ASCII κωδικού 10 και ASCII κωδικού 13 (τον carriage return ή αλλιώς CR). Πολλοί εκτυπωτές χρησιμοποιούν την σύμβαση του &ms-dos; για την αλλαγή γραμμής. Όταν εκτυπώνετε με το &os;, το κείμενο σας απλά χρησιμοποιεί τον χαρακτήρα τροφοδοσίας γραμμής (line feed). Ο εκτυπωτής, μόλις αντιληφθεί τον χαρακτήρα line feed, προωθεί το χαρτί κατά μία γραμμή, αλλά κρατάει την ίδια θέση οριζόντια καθώς καλείται να εκτυπώσει τον επόμενο χαρακτήρα. Σε αυτό το σημείο χρησιμοποιείται το CR (carriage return): μετακινεί δηλαδή την θέση εργασίας για τον επόμενο χαρακτήρα που πρόκειται να εκτυπωθεί στο αριστερό άκρο του χαρτιού. Το &os; επιθυμεί ο εκτυπωτής να μπορεί να ενεργεί ως εξής: Όταν ο εκτυπωτής λαμβάνει CR Να εκτυπώνει CR Όταν ο εκτυπωτής λαμβάνει LF Να εκτυπώνει CR + LF Υπάρχουν διάφοροι τρόποι για να επιτευχθεί αυτό: Χρησιμοποιήστε τα πλήκτρα ρύθμισης του εκτυπωτή ή τον πίνακα ελέγχου για να αλλάξετε τον τρόπο με τον οποίο ερμηνεύει αυτούς τους χαρακτήρες ο εκτυπωτής σας. Συμβουλευτείτε το εγχειρίδιο χρήσης του για να δείτε πως μπορεί να γίνει αυτό. Αν έχετε και άλλα λειτουργικά στο σύστημα σας εκτός από το &os;, πιθανόν να χρειαστεί, όταν τα χρησιμοποιείτε, να επαναρυθμίσετε τον εκτυπωτή σας ώστε να ερμηνεύει διαφορετικά τους χαρακτήρες CR και LF. Στην περίπτωση αυτή, ίσως είναι καλύτερο να προτιμήσετε κάποια από τις λύσεις που ακολουθούν. Ο οδηγός (driver) της σειριακής γραμμής του &os; μπορεί να μετατρέπει αυτόματα από LF σε CR+LF. Φυσικά, αυτό δουλεύει μόνο σε σειριακές θύρες. Για να ενεργοποιήσετε αυτή την λειτουργία, χρησιμοποιήστε την ικανότητα ms# και ορίστε την κατάσταση λειτουργίας onlcr στο αρχείο /etc/printcap για τον εκτυπωτή. Στείλτε ένα κωδικό διαφυγής (escape code) στον εκτυπωτή ώστε να χειρίζεται προσωρινά τους χαρακτήρες LF με διαφορετικό τρόπο. Συμβουλευτείτε το εγχειρίδιο χρήσης του εκτυπωτή σας για τους κώδικες διαφυγής που υποστηρίζονται. Όταν ανακαλύψετε τον κατάλληλο, μετατρέψτε το φίλτρο κειμένου ώστε να στέλνει πρώτα τον κωδικό, και έπειτα την εργασία στον εκτυπωτή. PCL Εδώ είναι ένα παράδειγμα φίλτρου κειμένου για εκτυπωτές που καταλαβαίνουν τους κωδικούς διαφυγής PCL της Hewlett-Packard. Αυτό το φίλτρο κάνει τον εκτυπωτή να χειρίζεται τους χαρακτήρες LF ως LF και CR. Έπειτα αποστέλλει την εργασία, στέλνοντας στο τέλος της ένα χαρακτήρα αλλαγής σελίδας (form feed) ώστε να γίνει σωστή εξαγωγή της τελευταίας σελίδας. Το φίλτρο αυτό θα πρέπει να δουλεύει με σχεδόν όλους τους εκτυπωτές της Hewlett Packard. #!/bin/sh # # hpif - Simple text input filter for lpd for HP-PCL based printers # Installed in /usr/local/libexec/hpif # # Simply copies stdin to stdout. Ignores all filter arguments. # Tells printer to treat LF as CR+LF. Ejects the page when done. printf "\033&k2G" && cat && printf "\033&l0H" && exit 0 exit 2 Εδώ είναι ένα παράδειγμα για το /etc/printcap ενός υπολογιστή με όνομα orchid. Έχει ένα μόνο εκτυπωτή στην πρώτη παράλληλη θύρα του, ένα Hewlett Packard LaserJet 3Si με όνομα teak. Χρησιμοποιεί το παραπάνω script ως φίλτρο κειμένου: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif: Εκτυπώνεται η μία γραμμή πάνω στην άλλη. Ο εκτυπωτής δεν προωθεί καθόλου το χαρτί και όλες οι γραμμές κειμένου τυπώνονται η μία πάνω από την άλλη, σε μία γραμμή. Αυτό το πρόβλημα είναι το αντίστροφο του φαινόμενου σκάλας, που περιγράψαμε προηγουμένως, και είναι πολύ σπάνιο. Σε κάποιο σημείο, οι χαρακτήρες LF που χρησιμοποιεί το &os; για να τερματίσει την γραμμή, ερμηνεύονται ως χαρακτήρες CR οι οποίοι επιστρέφουν την κεφαλή στο αριστερό άκρο του χαρτιού, αλλά δίχως να προωθήσουν το χαρτί μία γραμμή προς τα κάτω. Χρησιμοποιήστε τους διακόπτες ρυθμίσεων του εκτυπωτή ή τον πίνακα ελέγχου για να θέσετε τις ακόλουθες επιλογές για τα LF και CR characters: Ο εκτυπωτής λαμβάνει Ο εκτυπωτής τυπώνει CR CR LF CR + LF Ο εκτυπωτής δεν εκτυπώνει (χάνει) κάποιους χαρακτήρες. Ο εκτυπωτής, ενώ είναι σε λειτουργία εκτύπωσης, δεν εκτυπώνει κάποιους χαρακτήρες σε όλες τις γραμμές. Το πρόβλημα πιθανώς να γίνεται εντονότερο καθώς η εκτύπωση εξελίσσεται, χάνοντας ακόμη περισσότερους χαρακτήρες. Το πρόβλημα είναι πως ο εκτυπωτής, καθώς εκτυπώνει, δεν προλαβαίνει να ακολουθήσει την ταχύτητα με την οποία ο υπολογιστής στέλνει δεδομένα μέσω της σειριακής διασύνδεσης (αυτό το πρόβλημα δεν πρέπει κανονικά να συμβαίνει σε εκτυπωτές συνδεμένους σε παράλληλες θύρες). Υπάρχουν δύο τρόποι για να ξεπεραστεί αυτό το πρόβλημα: Εάν ο εκτυπωτής υποστηρίζει έλεγχο ροής XON/XOFF, ρυθμίστε το &os; να τον χρησιμοποιήσει ορίζοντας την κατάσταση λειτουργίας ixon με την ικανότητα ms#. Εάν ο εκτυπωτής υποστηρίζει έλεγχο ροής τύπου Request to Send / Clear to Send (hardware handshake, γνωστό και με την ονομασία RTS/CTS), πρέπει να οριστεί η κατάσταση λειτουργίας crtscts στην ικανότητα ms#. Βεβαιωθείτε πως το καλώδιο που συνδέει τον εκτυπωτή με τον υπολογιστή είναι σωστά φτιαγμένο για χρήση αυτού του ελέγχου ροής. Ο εκτυπωτής τυπώνει σκουπίδια. Ο εκτυπωτής τύπωσε κάτι που αποκαλούμε τυχαία σκουπίδια, εννοώντας οτιδήποτε εκτός του επιθυμητού κειμένου. Αυτό είναι συνήθως ένα ακόμα σύμπτωμα λανθασμένων παραμέτρων σειριακής επικοινωνίας με τον εκτυπωτή. Ελέγξτε ξανά την τιμή bps rate στην ικανότητα br, και την ρύθμιση parity στην ικανότητα ms#. Βεβαιωθείτε πως ο εκτυπωτής χρησιμοποιεί τις ίδιες ρυθμίσεις που έχουν καθοριστεί στο αρχείο /etc/printcap. Δεν συνέβη τίποτε, ο εκτυπωτής δεν ξεκίνησε καν. Αν δεν συνέβη τίποτε, το πρόβλημα πιθανόν να οφείλεται στο &os; και όχι στο hardware. Προσθέστε την ικανότητα αρχείου καταγραφής (log file, lf) στο αρχείο /etc/printcap, στην καταχώριση του εκτυπωτή που έχει το πρόβλημα. Για παράδειγμα, εδώ είναι η καταχώριση για τον rattan, με την ικανότητα lf: rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ :lf=/var/log/rattan.log Έπειτα, προσπαθήστε να ξαναεκτυπώσετε. Ελέγξτε το αρχείο καταγραφής (log) (στο παράδειγμα μας, /var/log/rattan.log) για να βρείτε πιθανές αναφορές σφαλμάτων. Με βάση τα μηνύματα που βλέπετε, προσπαθήστε να διορθώσετε το πρόβλημα. Αν δεν καθορίσετε την ικανότητα lf, το LPD χρησιμοποιεί από προεπιλογή το /dev/console. diff --git a/el_GR.ISO8859-7/books/handbook/security/chapter.sgml b/el_GR.ISO8859-7/books/handbook/security/chapter.sgml index 4de023e255..5485ca24ca 100644 --- a/el_GR.ISO8859-7/books/handbook/security/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/security/chapter.sgml @@ -1,4995 +1,4996 @@ Matthew Dillon Το μεγαλύτερο μέρος αυτού του κεφαλαίου προέρχεται από την σελίδα του manual της security(7) από τον Ασφάλεια ασφάλεια Σύνοψη Το κεφάλαιο αυτό παρέχει μια βασική εισαγωγή στις έννοιες της ασφάλειας συστήματος, κάποιους γενικά καλούς κανόνες, και ορισμένα προχωρημένα θέματα σχετικά με το &os;. Αρκετά από τα θέματα που καλύπτονται εδώ, μπορούν να εφαρμοστούν το ίδιο καλά τόσο στο ίδιο το σύστημα, όσο και για ασφάλεια μέσω Internet. Το Internet δεν είναι πλέον ένα φιλικό μέρος στο οποίο καθένας θέλει να είναι ο ευγενικός σας γείτονας. Η ανάγκη ασφάλισης του συστήματος σας είναι επιτακτική για να προστατέψετε τα δεδομένα σας,την πνευματική σας ιδιοκτησία, το χρόνο σας, και πολλά περισσότερα από τα χέρια των χάκερς και των ομοίων τους. Το &os; παρέχει μια σειρά από βοηθητικά προγράμματα και μηχανισμούς για να εξασφαλίσει την ακεραιότητα και την ασφάλεια του συστήματος σας και του δικτύου. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Βασικές έννοιες για την ασφάλεια, σε σχέση με το &os;. Στοιχεία σχετικά με τους διάφορους μηχανισμούς κρυπτογράφησης που είναι διαθέσιμοι στο &os;, όπως το DES και το MD5. Πως να ρυθμίσετε το σύστημα σας για κωδικούς μιας χρήσης. Πως να ρυθμίσετε TCP Wrappers για χρήση με την inetd. Πως να ρυθμίσετε τον KerberosIV σε &os; εκδόσεις πριν τη 5.0. Πως να ρυθμίσετε τον Kerberos5 στο &os;. Πως να ρυθμίσετε το IPsec και να δημιουργήσετε ένα VPN μεταξύ μηχανημάτων &os;/&windows;. Πως να ρυθμίσετε και να χρησιμοποιήσετε την κατά &os; υλοποίηση SSH του OpenSSH Τι είναι τα ACLs στο σύστημα αρχείων και πως να τα χρησιμοποιήσετε. Πως να χρησιμοποιήσετε το βοηθητικό πρόγραμμα Portaudit για να ελέγξετε λογισμικό τρίτου κατασκευαστή που έχει εγκατασταθεί μέσω της συλλογής Ports. Πως να χρησιμοποιήσετε τις δημοσιεύσεις security advisories του &os;. Θα έχετε μια ιδέα για το τι είναι το Process Accounting και πως να το ενεργοποιήσετε στο &os;. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να κατανοείτε βασικές έννοιες του &os; και του Internet. Πρόσθετα θέματα σχετικά με την ασφάλεια καλύπτονται σε ολόκληρο το βιβλίο. Για παράδειγμα, ο Υποχρεωτικός Έλεγχος Πρόσβασης συζητείται στο και τα Internet Firewalls συζητούνται στο . Introduction Security is a function that begins and ends with the system administrator. While all BSD &unix; multi-user systems have some inherent security, the job of building and maintaining additional security mechanisms to keep those users honest is probably one of the single largest undertakings of the sysadmin. Machines are only as secure as you make them, and security concerns are ever competing with the human necessity for convenience. &unix; systems, in general, are capable of running a huge number of simultaneous processes and many of these processes operate as servers — meaning that external entities can connect and talk to them. As yesterday's mini-computers and mainframes become today's desktops, and as computers become networked and inter-networked, security becomes an even bigger issue. System security also pertains to dealing with various forms of attack, including attacks that attempt to crash, or otherwise make a system unusable, but do not attempt to compromise the root account (break root). Security concerns can be split up into several categories: Denial of service attacks. User account compromises. Root compromise through accessible servers. Root compromise via user accounts. Backdoor creation. DoS attacks Denial of Service (DoS) security DoS attacks Denial of Service (DoS) Denial of Service (DoS) A denial of service attack is an action that deprives the machine of needed resources. Typically, DoS attacks are brute-force mechanisms that attempt to crash or otherwise make a machine unusable by overwhelming its servers or network stack. Some DoS attacks try to take advantage of bugs in the networking stack to crash a machine with a single packet. The latter can only be fixed by applying a bug fix to the kernel. Attacks on servers can often be fixed by properly specifying options to limit the load the servers incur on the system under adverse conditions. Brute-force network attacks are harder to deal with. A spoofed-packet attack, for example, is nearly impossible to stop, short of cutting your system off from the Internet. It may not be able to take your machine down, but it can saturate your Internet connection. security account compromises A user account compromise is even more common than a DoS attack. Many sysadmins still run standard telnetd, rlogind, rshd, and ftpd servers on their machines. These servers, by default, do not operate over encrypted connections. The result is that if you have any moderate-sized user base, one or more of your users logging into your system from a remote location (which is the most common and convenient way to login to a system) will have his or her password sniffed. The attentive system admin will analyze his remote access logs looking for suspicious source addresses even for successful logins. One must always assume that once an attacker has access to a user account, the attacker can break root. However, the reality is that in a well secured and maintained system, access to a user account does not necessarily give the attacker access to root. The distinction is important because without access to root the attacker cannot generally hide his tracks and may, at best, be able to do nothing more than mess with the user's files, or crash the machine. User account compromises are very common because users tend not to take the precautions that sysadmins take. security backdoors System administrators must keep in mind that there are potentially many ways to break root on a machine. The attacker may know the root password, the attacker may find a bug in a root-run server and be able to break root over a network connection to that server, or the attacker may know of a bug in a suid-root program that allows the attacker to break root once he has broken into a user's account. If an attacker has found a way to break root on a machine, the attacker may not have a need to install a backdoor. Many of the root holes found and closed to date involve a considerable amount of work by the attacker to cleanup after himself, so most attackers install backdoors. A backdoor provides the attacker with a way to easily regain root access to the system, but it also gives the smart system administrator a convenient way to detect the intrusion. Making it impossible for an attacker to install a backdoor may actually be detrimental to your security, because it will not close off the hole the attacker found to break in the first place. Security remedies should always be implemented with a multi-layered onion peel approach and can be categorized as follows: Securing root and staff accounts. Securing root–run servers and suid/sgid binaries. Securing user accounts. Securing the password file. Securing the kernel core, raw devices, and file systems. Quick detection of inappropriate changes made to the system. Paranoia. The next section of this chapter will cover the above bullet items in greater depth. Securing &os; security securing &os; Command vs. Protocol Throughout this document, we will use bold text to refer to an application, and a monospaced font to refer to specific commands. Protocols will use a normal font. This typographical distinction is useful for instances such as ssh, since it is a protocol as well as command. The sections that follow will cover the methods of securing your &os; system that were mentioned in the last section of this chapter. Securing the <username>root</username> Account and Staff Accounts su First off, do not bother securing staff accounts if you have not secured the root account. Most systems have a password assigned to the root account. The first thing you do is assume that the password is always compromised. This does not mean that you should remove the password. The password is almost always necessary for console access to the machine. What it does mean is that you should not make it possible to use the password outside of the console or possibly even with the &man.su.1; command. For example, make sure that your ptys are specified as being insecure in the /etc/ttys file so that direct root logins via telnet or rlogin are disallowed. If using other login services such as sshd, make sure that direct root logins are disabled there as well. You can do this by editing your /etc/ssh/sshd_config file, and making sure that PermitRootLogin is set to NO. Consider every access method — services such as FTP often fall through the cracks. Direct root logins should only be allowed via the system console. wheel Of course, as a sysadmin you have to be able to get to root, so we open up a few holes. But we make sure these holes require additional password verification to operate. One way to make root accessible is to add appropriate staff accounts to the wheel group (in /etc/group). The staff members placed in the wheel group are allowed to su to root. You should never give staff members native wheel access by putting them in the wheel group in their password entry. Staff accounts should be placed in a staff group, and then added to the wheel group via the /etc/group file. Only those staff members who actually need to have root access should be placed in the wheel group. It is also possible, when using an authentication method such as Kerberos, to use Kerberos' .k5login file in the root account to allow a &man.ksu.1; to root without having to place anyone at all in the wheel group. This may be the better solution since the wheel mechanism still allows an intruder to break root if the intruder has gotten hold of your password file and can break into a staff account. While having the wheel mechanism is better than having nothing at all, it is not necessarily the safest option. An indirect way to secure staff accounts, and ultimately root access is to use an alternative login access method and do what is known as starring out the encrypted password for the staff accounts. Using the &man.vipw.8; command, one can replace each instance of an encrypted password with a single * character. This command will update the /etc/master.passwd file and user/password database to disable password-authenticated logins. A staff account entry such as: foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh Should be changed to this: foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh This change will prevent normal logins from occurring, since the encrypted password will never match *. With this done, staff members must use another mechanism to authenticate themselves such as &man.kerberos.1; or &man.ssh.1; using a public/private key pair. When using something like Kerberos, one generally must secure the machines which run the Kerberos servers and your desktop workstation. When using a public/private key pair with ssh, one must generally secure the machine used to login from (typically one's workstation). An additional layer of protection can be added to the key pair by password protecting the key pair when creating it with &man.ssh-keygen.1;. Being able to star out the passwords for staff accounts also guarantees that staff members can only login through secure access methods that you have set up. This forces all staff members to use secure, encrypted connections for all of their sessions, which closes an important hole used by many intruders: sniffing the network from an unrelated, less secure machine. The more indirect security mechanisms also assume that you are logging in from a more restrictive server to a less restrictive server. For example, if your main box is running all sorts of servers, your workstation should not be running any. In order for your workstation to be reasonably secure you should run as few servers as possible, up to and including no servers at all, and you should run a password-protected screen blanker. Of course, given physical access to a workstation an attacker can break any sort of security you put on it. This is definitely a problem that you should consider, but you should also consider the fact that the vast majority of break-ins occur remotely, over a network, from people who do not have physical access to your workstation or servers. KerberosIV Using something like Kerberos also gives you the ability to disable or change the password for a staff account in one place, and have it immediately affect all the machines on which the staff member may have an account. If a staff member's account gets compromised, the ability to instantly change his password on all machines should not be underrated. With discrete passwords, changing a password on N machines can be a mess. You can also impose re-passwording restrictions with Kerberos: not only can a Kerberos ticket be made to timeout after a while, but the Kerberos system can require that the user choose a new password after a certain period of time (say, once a month). Securing Root-run Servers and SUID/SGID Binaries ntalk comsat finger sandboxes sshd telnetd rshd rlogind The prudent sysadmin only runs the servers he needs to, no more, no less. Be aware that third party servers are often the most bug-prone. For example, running an old version of imapd or popper is like giving a universal root ticket out to the entire world. Never run a server that you have not checked out carefully. Many servers do not need to be run as root. For example, the ntalk, comsat, and finger daemons can be run in special user sandboxes. A sandbox is not perfect, unless you go through a large amount of trouble, but the onion approach to security still stands: If someone is able to break in through a server running in a sandbox, they still have to break out of the sandbox. The more layers the attacker must break through, the lower the likelihood of his success. Root holes have historically been found in virtually every server ever run as root, including basic system servers. If you are running a machine through which people only login via sshd and never login via telnetd or rshd or rlogind, then turn off those services! &os; now defaults to running ntalkd, comsat, and finger in a sandbox. Another program which may be a candidate for running in a sandbox is &man.named.8;. /etc/defaults/rc.conf includes the arguments necessary to run named in a sandbox in a commented-out form. Depending on whether you are installing a new system or upgrading an existing system, the special user accounts used by these sandboxes may not be installed. The prudent sysadmin would research and implement sandboxes for servers whenever possible. sendmail There are a number of other servers that typically do not run in sandboxes: sendmail, popper, imapd, ftpd, and others. There are alternatives to some of these, but installing them may require more work than you are willing to perform (the convenience factor strikes again). You may have to run these servers as root and rely on other mechanisms to detect break-ins that might occur through them. The other big potential root holes in a system are the suid-root and sgid binaries installed on the system. Most of these binaries, such as rlogin, reside in /bin, /sbin, /usr/bin, or /usr/sbin. While nothing is 100% safe, the system-default suid and sgid binaries can be considered reasonably safe. Still, root holes are occasionally found in these binaries. A root hole was found in Xlib in 1998 that made xterm (which is typically suid) vulnerable. It is better to be safe than sorry and the prudent sysadmin will restrict suid binaries, that only staff should run, to a special group that only staff can access, and get rid of (chmod 000) any suid binaries that nobody uses. A server with no display generally does not need an xterm binary. Sgid binaries can be almost as dangerous. If an intruder can break an sgid-kmem binary, the intruder might be able to read /dev/kmem and thus read the encrypted password file, potentially compromising any passworded account. Alternatively an intruder who breaks group kmem can monitor keystrokes sent through ptys, including ptys used by users who login through secure methods. An intruder that breaks the tty group can write to almost any user's tty. If a user is running a terminal program or emulator with a keyboard-simulation feature, the intruder can potentially generate a data stream that causes the user's terminal to echo a command, which is then run as that user. Securing User Accounts User accounts are usually the most difficult to secure. While you can impose draconian access restrictions on your staff and star out their passwords, you may not be able to do so with any general user accounts you might have. If you do have sufficient control, then you may win out and be able to secure the user accounts properly. If not, you simply have to be more vigilant in your monitoring of those accounts. Use of ssh and Kerberos for user accounts is more problematic, due to the extra administration and technical support required, but still a very good solution compared to a encrypted password file. Securing the Password File The only sure fire way is to star out as many passwords as you can and use ssh or Kerberos for access to those accounts. Even though the encrypted password file (/etc/spwd.db) can only be read by root, it may be possible for an intruder to obtain read access to that file even if the attacker cannot obtain root-write access. Your security scripts should always check for and report changes to the password file (see the Checking file integrity section below). Securing the Kernel Core, Raw Devices, and File systems If an attacker breaks root he can do just about anything, but there are certain conveniences. For example, most modern kernels have a packet sniffing device driver built in. Under &os; it is called the bpf device. An intruder will commonly attempt to run a packet sniffer on a compromised machine. You do not need to give the intruder the capability and most systems do not have the need for the bpf device compiled in. sysctl But even if you turn off the bpf device, you still have /dev/mem and /dev/kmem to worry about. For that matter, the intruder can still write to raw disk devices. Also, there is another kernel feature called the module loader, &man.kldload.8;. An enterprising intruder can use a KLD module to install his own bpf device, or other sniffing device, on a running kernel. To avoid these problems you have to run the kernel at a higher secure level, at least securelevel 1. The securelevel can be set with a sysctl on the kern.securelevel variable. Once you have set the securelevel to 1, write access to raw devices will be denied and special chflags flags, such as schg, will be enforced. You must also ensure that the schg flag is set on critical startup binaries, directories, and script files — everything that gets run up to the point where the securelevel is set. This might be overdoing it, and upgrading the system is much more difficult when you operate at a higher secure level. You may compromise and run the system at a higher secure level but not set the schg flag for every system file and directory under the sun. Another possibility is to simply mount / and /usr read-only. It should be noted that being too draconian in what you attempt to protect may prevent the all-important detection of an intrusion. Checking File Integrity: Binaries, Configuration Files, Etc. When it comes right down to it, you can only protect your core system configuration and control files so much before the convenience factor rears its ugly head. For example, using chflags to set the schg bit on most of the files in / and /usr is probably counterproductive, because while it may protect the files, it also closes a detection window. The last layer of your security onion is perhaps the most important — detection. The rest of your security is pretty much useless (or, worse, presents you with a false sense of security) if you cannot detect potential intrusions. Half the job of the onion is to slow down the attacker, rather than stop him, in order to be able to catch him in the act. The best way to detect an intrusion is to look for modified, missing, or unexpected files. The best way to look for modified files is from another (often centralized) limited-access system. Writing your security scripts on the extra-secure limited-access system makes them mostly invisible to potential attackers, and this is important. In order to take maximum advantage you generally have to give the limited-access box significant access to the other machines in the business, usually either by doing a read-only NFS export of the other machines to the limited-access box, or by setting up ssh key-pairs to allow the limited-access box to ssh to the other machines. Except for its network traffic, NFS is the least visible method — allowing you to monitor the file systems on each client box virtually undetected. If your limited-access server is connected to the client boxes through a switch, the NFS method is often the better choice. If your limited-access server is connected to the client boxes through a hub, or through several layers of routing, the NFS method may be too insecure (network-wise) and using ssh may be the better choice even with the audit-trail tracks that ssh lays. Once you have given a limited-access box at least read access to the client systems it is supposed to monitor, you must write scripts to do the actual monitoring. Given an NFS mount, you can write scripts out of simple system utilities such as &man.find.1; and &man.md5.1;. It is best to physically md5 the client-box files at least once a day, and to test control files such as those found in /etc and /usr/local/etc even more often. When mismatches are found, relative to the base md5 information the limited-access machine knows is valid, it should scream at a sysadmin to go check it out. A good security script will also check for inappropriate suid binaries and for new or deleted files on system partitions such as / and /usr. When using ssh rather than NFS, writing the security script is much more difficult. You essentially have to scp the scripts to the client box in order to run them, making them visible, and for safety you also need to scp the binaries (such as find) that those scripts use. The ssh client on the client box may already be compromised. All in all, using ssh may be necessary when running over insecure links, but it is also a lot harder to deal with. A good security script will also check for changes to user and staff members access configuration files: .rhosts, .shosts, .ssh/authorized_keys and so forth, files that might fall outside the purview of the MD5 check. If you have a huge amount of user disk space, it may take too long to run through every file on those partitions. In this case, setting mount flags to disallow suid binaries and devices on those partitions is a good idea. The nodev and nosuid options (see &man.mount.8;) are what you want to look into. You should probably scan them anyway, at least once a week, since the object of this layer is to detect a break-in attempt, whether or not the attempt succeeds. Process accounting (see &man.accton.8;) is a relatively low-overhead feature of the operating system which might help as a post-break-in evaluation mechanism. It is especially useful in tracking down how an intruder has actually broken into a system, assuming the file is still intact after the break-in has occured. Finally, security scripts should process the log files, and the logs themselves should be generated in as secure a manner as possible — remote syslog can be very useful. An intruder will try to cover his tracks, and log files are critical to the sysadmin trying to track down the time and method of the initial break-in. One way to keep a permanent record of the log files is to run the system console to a serial port and collect the information to a secure machine monitoring the consoles. Paranoia A little paranoia never hurts. As a rule, a sysadmin can add any number of security features, as long as they do not affect convenience, and can add security features that do affect convenience with some added thought. Even more importantly, a security administrator should mix it up a bit — if you use recommendations such as those given by this document verbatim, you give away your methodologies to the prospective attacker who also has access to this document. Denial of Service Attacks Denial of Service (DoS) This section covers Denial of Service attacks. A DoS attack is typically a packet attack. While there is not much you can do about modern spoofed packet attacks that saturate your network, you can generally limit the damage by ensuring that the attacks cannot take down your servers by: Limiting server forks. Limiting springboard attacks (ICMP response attacks, ping broadcast, etc.). Overloading the Kernel Route Cache. A common DoS attack scenario is attacking a forking server and making it spawning so many child processes that the host system eventually runs out of memory, file descriptors, etc. and then grinds to a halt. inetd (see &man.inetd.8;) has several options to limit this sort of attack. It should be noted that while it is possible to prevent a machine from going down, it is not generally possible to prevent a service from being disrupted by the attack. Read the inetd manual page carefully and pay specific attention to the , , and options. Note that spoofed-IP attacks will circumvent the option to inetd, so typically a combination of options must be used. Some standalone servers have self-fork-limitation parameters. Sendmail has its option, which tends to work much better than trying to use Sendmail's load limiting options due to the load lag. You should specify a MaxDaemonChildren parameter, when you start sendmail; high enough to handle your expected load, but not so high that the computer cannot handle that number of Sendmail instances without falling on its face. It is also prudent to run Sendmail in queued mode () and to run the daemon (sendmail -bd) separate from the queue-runs (sendmail -q15m). If you still want real-time delivery you can run the queue at a much lower interval, such as , but be sure to specify a reasonable MaxDaemonChildren option for that Sendmail to prevent cascade failures. Syslogd can be attacked directly and it is strongly recommended that you use the option whenever possible, and the option otherwise. You should also be fairly careful with connect-back services such as TCP Wrapper's reverse-identd, which can be attacked directly. You generally do not want to use the reverse-ident feature of TCP Wrapper for this reason. It is a very good idea to protect internal services from external access by firewalling them off at your border routers. The idea here is to prevent saturation attacks from outside your LAN, not so much to protect internal services from network-based root compromise. Always configure an exclusive firewall, i.e., firewall everything except ports A, B, C, D, and M-Z. This way you can firewall off all of your low ports except for certain specific services such as named (if you are primary for a zone), ntalkd, sendmail, and other Internet-accessible services. If you try to configure the firewall the other way — as an inclusive or permissive firewall, there is a good chance that you will forget to close a couple of services, or that you will add a new internal service and forget to update the firewall. You can still open up the high-numbered port range on the firewall, to allow permissive-like operation, without compromising your low ports. Also take note that &os; allows you to control the range of port numbers used for dynamic binding, via the various net.inet.ip.portrange sysctl's (sysctl -a | fgrep portrange), which can also ease the complexity of your firewall's configuration. For example, you might use a normal first/last range of 4000 to 5000, and a hiport range of 49152 to 65535, then block off everything under 4000 in your firewall (except for certain specific Internet-accessible ports, of course). Another common DoS attack is called a springboard attack — to attack a server in a manner that causes the server to generate responses which overloads the server, the local network, or some other machine. The most common attack of this nature is the ICMP ping broadcast attack. The attacker spoofs ping packets sent to your LAN's broadcast address with the source IP address set to the actual machine they wish to attack. If your border routers are not configured to stomp on ping packets to broadcast addresses, your LAN winds up generating sufficient responses to the spoofed source address to saturate the victim, especially when the attacker uses the same trick on several dozen broadcast addresses over several dozen different networks at once. Broadcast attacks of over a hundred and twenty megabits have been measured. A second common springboard attack is against the ICMP error reporting system. By constructing packets that generate ICMP error responses, an attacker can saturate a server's incoming network and cause the server to saturate its outgoing network with ICMP responses. This type of attack can also crash the server by running it out of memory, especially if the server cannot drain the ICMP responses it generates fast enough. Use the sysctl variable net.inet.icmp.icmplim to limit these attacks. The last major class of springboard attacks is related to certain internal inetd services such as the udp echo service. An attacker simply spoofs a UDP packet with the source address being server A's echo port, and the destination address being server B's echo port, where server A and B are both on your LAN. The two servers then bounce this one packet back and forth between each other. The attacker can overload both servers and their LANs simply by injecting a few packets in this manner. Similar problems exist with the internal chargen port. A competent sysadmin will turn off all of these inetd-internal test services. Spoofed packet attacks may also be used to overload the kernel route cache. Refer to the net.inet.ip.rtexpire, rtminexpire, and rtmaxcache sysctl parameters. A spoofed packet attack that uses a random source IP will cause the kernel to generate a temporary cached route in the route table, viewable with netstat -rna | fgrep W3. These routes typically timeout in 1600 seconds or so. If the kernel detects that the cached route table has gotten too big it will dynamically reduce the rtexpire but will never decrease it to less than rtminexpire. There are two problems: The kernel does not react quickly enough when a lightly loaded server is suddenly attacked. The rtminexpire is not low enough for the kernel to survive a sustained attack. If your servers are connected to the Internet via a T3 or better, it may be prudent to manually override both rtexpire and rtminexpire via &man.sysctl.8;. Never set either parameter to zero (unless you want to crash the machine). Setting both parameters to 2 seconds should be sufficient to protect the route table from attack. Access Issues with Kerberos and SSH ssh KerberosIV There are a few issues with both Kerberos and ssh that need to be addressed if you intend to use them. Kerberos 5 is an excellent authentication protocol, but there are bugs in the kerberized telnet and rlogin applications that make them unsuitable for dealing with binary streams. Also, by default Kerberos does not encrypt a session unless you use the option. ssh encrypts everything by default. Ssh works quite well in every respect except that it forwards encryption keys by default. What this means is that if you have a secure workstation holding keys that give you access to the rest of the system, and you ssh to an insecure machine, your keys are usable. The actual keys themselves are not exposed, but ssh installs a forwarding port for the duration of your login, and if an attacker has broken root on the insecure machine he can utilize that port to use your keys to gain access to any other machine that your keys unlock. We recommend that you use ssh in combination with Kerberos whenever possible for staff logins. Ssh can be compiled with Kerberos support. This reduces your reliance on potentially exposed ssh keys while at the same time protecting passwords via Kerberos. Ssh keys should only be used for automated tasks from secure machines (something that Kerberos is unsuited to do). We also recommend that you either turn off key-forwarding in the ssh configuration, or that you make use of the from=IP/DOMAIN option that ssh allows in its authorized_keys file to make the key only usable to entities logging in from specific machines. Bill Swingle Parts rewritten and updated by DES, MD5, and Crypt security crypt crypt DES MD5 Every user on a &unix; system has a password associated with their account. It seems obvious that these passwords need to be known only to the user and the actual operating system. In order to keep these passwords secret, they are encrypted with what is known as a one-way hash, that is, they can only be easily encrypted but not decrypted. In other words, what we told you a moment ago was obvious is not even true: the operating system itself does not really know the password. It only knows the encrypted form of the password. The only way to get the plain-text password is by a brute force search of the space of possible passwords. Unfortunately the only secure way to encrypt passwords when &unix; came into being was based on DES, the Data Encryption Standard. This was not such a problem for users resident in the US, but since the source code for DES could not be exported outside the US, &os; had to find a way to both comply with US law and retain compatibility with all the other &unix; variants that still used DES. The solution was to divide up the encryption libraries so that US users could install the DES libraries and use DES but international users still had an encryption method that could be exported abroad. This is how &os; came to use MD5 as its default encryption method. MD5 is believed to be more secure than DES, so installing DES is offered primarily for compatibility reasons. Recognizing Your Crypt Mechanism Currently the library supports DES, MD5 and Blowfish hash functions. By default &os; uses MD5 to encrypt passwords. It is pretty easy to identify which encryption method &os; is set up to use. Examining the encrypted passwords in the /etc/master.passwd file is one way. Passwords encrypted with the MD5 hash are longer than those encrypted with the DES hash and also begin with the characters $1$. Passwords starting with $2a$ are encrypted with the Blowfish hash function. DES password strings do not have any particular identifying characteristics, but they are shorter than MD5 passwords, and are coded in a 64-character alphabet which does not include the $ character, so a relatively short string which does not begin with a dollar sign is very likely a DES password. The password format used for new passwords is controlled by the passwd_format login capability in /etc/login.conf, which takes values of des, md5 or blf. See the &man.login.conf.5; manual page for more information about login capabilities. One-time Passwords one-time passwords security one-time passwords By default, &os; includes support for OPIE (One-time Passwords In Everything), which uses the MD5 hash by default. There are three different sorts of passwords which we will discuss below. The first is your usual &unix; style or Kerberos password; we will call this a &unix; password. The second sort is the one-time password which is generated by the OPIE &man.opiekey.1; program and accepted by the &man.opiepasswd.1; program and the login prompt; we will call this a one-time password. The final sort of password is the secret password which you give to the opiekey program (and sometimes the opiepasswd programs) which it uses to generate one-time passwords; we will call it a secret password or just unqualified password. The secret password does not have anything to do with your &unix; password; they can be the same but this is not recommended. OPIE secret passwords are not limited to 8 characters like old &unix; passwordsUnder &os; the standard login password may be up to 128 characters in length., they can be as long as you like. Passwords of six or seven word long phrases are fairly common. For the most part, the OPIE system operates completely independently of the &unix; password system. Besides the password, there are two other pieces of data that are important to OPIE. One is what is known as the seed or key, consisting of two letters and five digits. The other is what is called the iteration count, a number between 1 and 100. OPIE creates the one-time password by concatenating the seed and the secret password, then applying the MD5 hash as many times as specified by the iteration count and turning the result into six short English words. These six English words are your one-time password. The authentication system (primarily PAM) keeps track of the last one-time password used, and the user is authenticated if the hash of the user-provided password is equal to the previous password. Because a one-way hash is used it is impossible to generate future one-time passwords if a successfully used password is captured; the iteration count is decremented after each successful login to keep the user and the login program in sync. When the iteration count gets down to 1, OPIE must be reinitialized. There are a few programs involved in each system which we will discuss below. The opiekey program accepts an iteration count, a seed, and a secret password, and generates a one-time password or a consecutive list of one-time passwords. The opiepasswd program is used to initialize OPIE, and to change passwords, iteration counts, or seeds; it takes either a secret passphrase, or an iteration count, seed, and a one-time password. The opieinfo program will examine the relevant credentials files (/etc/opiekeys) and print out the invoking user's current iteration count and seed. There are four different sorts of operations we will cover. The first is using opiepasswd over a secure connection to set up one-time-passwords for the first time, or to change your password or seed. The second operation is using opiepasswd over an insecure connection, in conjunction with opiekey over a secure connection, to do the same. The third is using opiekey to log in over an insecure connection. The fourth is using opiekey to generate a number of keys which can be written down or printed out to carry with you when going to some location without secure connections to anywhere. Secure Connection Initialization To initialize OPIE for the first time, execute the opiepasswd command: &prompt.user; opiepasswd -c [grimreaper] ~ $ opiepasswd -f -c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED At the Enter new secret pass phrase: or Enter secret password: prompts, you should enter a password or phrase. Remember, this is not the password that you will use to login with, this is used to generate your one-time login keys. The ID line gives the parameters of your particular instance: your login name, the iteration count, and seed. When logging in the system will remember these parameters and present them back to you so you do not have to remember them. The last line gives the particular one-time password which corresponds to those parameters and your secret password; if you were to re-login immediately, this one-time password is the one you would use. Insecure Connection Initialization To initialize or change your secret password over an insecure connection, you will need to already have a secure connection to some place where you can run opiekey; this might be in the form of a shell prompt on a machine you trust. You will also need to make up an iteration count (100 is probably a good value), and you may make up your own seed or use a randomly-generated one. Over on the insecure connection (to the machine you are initializing), use opiepasswd: &prompt.user; opiepasswd Updating unfurl: You need the response from an OTP generator. Old secret pass phrase: otp-md5 498 to4268 ext Response: GAME GAG WELT OUT DOWN CHAT New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP MILK NELL BUOY TROY ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY To accept the default seed press Return. Then before entering an access password, move over to your secure connection and give it the same parameters: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Now switch back over to the insecure connection, and copy the one-time password generated over to the relevant program. Generating a Single One-time Password Once you have initialized OPIE and login, you will be presented with a prompt like this: &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> otp-md5 498 gr4269 ext Password: As a side note, the OPIE prompts have a useful feature (not shown here): if you press Return at the password prompt, the prompter will turn echo on, so you can see what you are typing. This can be extremely useful if you are attempting to type in a password by hand, such as from a printout. MS-DOS Windows MacOS At this point you need to generate your one-time password to answer this login prompt. This must be done on a trusted system that you can run opiekey on. (There are versions of these for DOS, &windows; and &macos; as well.) They need the iteration count and the seed as command line options. You can cut-and-paste these right from the login prompt on the machine that you are logging in to. On the trusted system: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Now that you have your one-time password you can continue logging in. Generating Multiple One-time Passwords Sometimes you have to go places where you do not have access to a trusted machine or secure connection. In this case, it is possible to use the opiekey command to generate a number of one-time passwords beforehand to be printed out and taken with you. For example: &prompt.user; opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG 28: SALT TIN ANTI LOON NEAL USE 29: RIO ODIN GO BYE FURY TIC 30: GREW JIVE SAN GIRD BOIL PHI The requests five keys in sequence, the specifies what the last iteration number should be. Note that these are printed out in reverse order of eventual use. If you are really paranoid, you might want to write the results down by hand; otherwise you can cut-and-paste into lpr. Note that each line shows both the iteration count and the one-time password; you may still find it handy to scratch off passwords as you use them. Restricting Use of &unix; Passwords OPIE can restrict the use of &unix; passwords based on the IP address of a login session. The relevant file is /etc/opieaccess, which is present by default. Please check &man.opieaccess.5; for more information on this file and which security considerations you should be aware of when using it. Here is a sample opieaccess file: permit 192.168.0.0 255.255.0.0 This line allows users whose IP source address (which is vulnerable to spoofing) matches the specified value and mask, to use &unix; passwords at any time. If no rules in opieaccess are matched, the default is to deny non-OPIE logins. Tom Rhodes Written by: TCP Wrappers TCP Wrappers Anyone familiar with &man.inetd.8; has probably heard of TCP Wrappers at some point. But few individuals seem to fully comprehend its usefulness in a network environment. It seems that everyone wants to install a firewall to handle network connections. While a firewall has a wide variety of uses, there are some things that a firewall not handle such as sending text back to the connection originator. The TCP software does this and much more. In the next few sections many of the TCP Wrappers features will be discussed, and, when applicable, example configuration lines will be provided. The TCP Wrappers software extends the abilities of inetd to provide support for every server daemon under its control. Using this method it is possible to provide logging support, return messages to connections, permit a daemon to only accept internal connections, etc. While some of these features can be provided by implementing a firewall, this will add not only an extra layer of protection but go beyond the amount of control a firewall can provide. The added functionality of TCP Wrappers should not be considered a replacement for a good firewall. TCP Wrappers can be used in conjunction with a firewall or other security enhancements though and it can serve nicely as an extra layer of protection for the system. Since this is an extension to the configuration of inetd, the reader is expected have read the inetd configuration section. While programs run by &man.inetd.8; are not exactly daemons, they have traditionally been called daemons. This is the term we will use in this section too. Initial Configuration The only requirement of using TCP Wrappers in &os; is to ensure the inetd server is started from rc.conf with the option; this is the default setting. Of course, proper configuration of /etc/hosts.allow is also expected, but &man.syslogd.8; will throw messages in the system logs in these cases. Unlike other implementations of TCP Wrappers, the use of hosts.deny has been deprecated. All configuration options should be placed in /etc/hosts.allow. In the simplest configuration, daemon connection policies are set to either be permitted or blocked depending on the options in /etc/hosts.allow. The default configuration in &os; is to allow a connection to every daemon started with inetd. Changing this will be discussed only after the basic configuration is covered. Basic configuration usually takes the form of daemon : address : action. Where daemon is the daemon name which inetd started. The address can be a valid hostname, an IP address or an IPv6 address enclosed in brackets ([ ]). The action field can be either allow or deny to grant or deny access appropriately. Keep in mind that configuration works off a first rule match semantic, meaning that the configuration file is scanned in ascending order for a matching rule. When a match is found the rule is applied and the search process will halt. Several other options exist but they will be explained in a later section. A simple configuration line may easily be constructed from that information alone. For example, to allow POP3 connections via the mail/qpopper daemon, the following lines should be appended to hosts.allow: # This line is required for POP3 connections: qpopper : ALL : allow After adding this line, inetd will need restarted. This can be accomplished by use of the &man.kill.1; command, or with the restart parameter with /etc/rc.d/inetd. Advanced Configuration TCP Wrappers has advanced options too; they will allow for more control over the way connections are handled. In some cases it may be a good idea to return a comment to certain hosts or daemon connections. In other cases, perhaps a log file should be recorded or an email sent to the administrator. Other situations may require the use of a service for local connections only. This is all possible through the use of configuration options known as wildcards, expansion characters and external command execution. The next two sections are written to cover these situations. External Commands Suppose that a situation occurs where a connection should be denied yet a reason should be sent to the individual who attempted to establish that connection. How could it be done? That action can be made possible by using the option. When a connection attempt is made, will be called to execute a shell command or script. An example already exists in the hosts.allow file: # The rest of the daemons are protected. ALL : ALL \ : severity auth.info \ : twist /bin/echo "You are not welcome to use %d from %h." This example shows that the message, You are not allowed to use daemon from hostname. will be returned for any daemon not previously configured in the access file. This is extremely useful for sending a reply back to the connection initiator right after the established connection is dropped. Note that any message returned must be wrapped in quote " characters; there are no exceptions to this rule. It may be possible to launch a denial of service attack on the server if an attacker, or group of attackers could flood these daemons with connection requests. Another possibility is to use the option in these cases. Like , the implicitly denies the connection and may be used to run external shell commands or scripts. Unlike , will not send a reply back to the individual who established the connection. For an example, consider the following configuration line: # We do not allow connections from example.com: ALL : .example.com \ : spawn (/bin/echo %a from %h attempted to access %d >> \ /var/log/connections.log) \ : deny This will deny all connection attempts from the *.example.com domain; simultaneously logging the hostname, IP address and the daemon which they attempted to access in the /var/log/connections.log file. Aside from the already explained substitution characters above, e.g. %a, a few others exist. See the &man.hosts.access.5; manual page for the complete list. Wildcard Options Thus far the ALL example has been used continuously throughout the examples. Other options exist which could extend the functionality a bit further. For instance, ALL may be used to match every instance of either a daemon, domain or an IP address. Another wildcard available is PARANOID which may be used to match any host which provides an IP address that may be forged. In other words, paranoid may be used to define an action to be taken whenever a connection is made from an IP address that differs from its hostname. The following example may shed some more light on this discussion: # Block possibly spoofed requests to sendmail: sendmail : PARANOID : deny In that example all connection requests to sendmail which have an IP address that varies from its hostname will be denied. Using the PARANOID may severely cripple servers if the client or server has a broken DNS setup. Administrator discretion is advised. To learn more about wildcards and their associated functionality, see the &man.hosts.access.5; manual page. Before any of the specific configuration lines above will work, the first configuration line should be commented out in hosts.allow. This was noted at the beginning of this section. Mark Murray Contributed by Mark Dapoz Based on a contribution by <application>KerberosIV</application> Kerberos is a network add-on system/protocol that allows users to authenticate themselves through the services of a secure server. Services such as remote login, remote copy, secure inter-system file copying and other high-risk tasks are made considerably safer and more controllable. The following instructions can be used as a guide on how to set up Kerberos as distributed for &os;. However, you should refer to the relevant manual pages for a complete description. Installing <application>KerberosIV</application> MIT KerberosIV installing Kerberos is an optional component of &os;. The easiest way to install this software is by selecting the krb4 or krb5 distribution in sysinstall during the initial installation of &os;. This will install the eBones (KerberosIV) or Heimdal (Kerberos5) implementation of Kerberos. These implementations are included because they are developed outside the USA/Canada and were thus available to system owners outside those countries during the era of restrictive export controls on cryptographic code from the USA. Alternatively, the MIT implementation of Kerberos is available from the Ports Collection as security/krb5. Creating the Initial Database This is done on the Kerberos server only. First make sure that you do not have any old Kerberos databases around. You should change to the directory /etc/kerberosIV and check that only the following files are present: &prompt.root; cd /etc/kerberosIV &prompt.root; ls README krb.conf krb.realms If any additional files (such as principal.* or master_key) exist, then use the kdb_destroy command to destroy the old Kerberos database, or if Kerberos is not running, simply delete the extra files. You should now edit the krb.conf and krb.realms files to define your Kerberos realm. In this case the realm will be EXAMPLE.COM and the server is grunt.example.com. We edit or create the krb.conf file: &prompt.root; cat krb.conf EXAMPLE.COM EXAMPLE.COM grunt.example.com admin server CS.BERKELEY.EDU okeeffe.berkeley.edu ATHENA.MIT.EDU kerberos.mit.edu ATHENA.MIT.EDU kerberos-1.mit.edu ATHENA.MIT.EDU kerberos-2.mit.edu ATHENA.MIT.EDU kerberos-3.mit.edu LCS.MIT.EDU kerberos.lcs.mit.edu TELECOM.MIT.EDU bitsy.mit.edu ARC.NASA.GOV trident.arc.nasa.gov In this case, the other realms do not need to be there. They are here as an example of how a machine may be made aware of multiple realms. You may wish to not include them for simplicity. The first line names the realm in which this system works. The other lines contain realm/host entries. The first item on a line is a realm, and the second is a host in that realm that is acting as a key distribution center. The words admin server following a host's name means that host also provides an administrative database server. For further explanation of these terms, please consult the Kerberos manual pages. Now we have to add grunt.example.com to the EXAMPLE.COM realm and also add an entry to put all hosts in the .example.com domain in the EXAMPLE.COM realm. The krb.realms file would be updated as follows: &prompt.root; cat krb.realms grunt.example.com EXAMPLE.COM .example.com EXAMPLE.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU Again, the other realms do not need to be there. They are here as an example of how a machine may be made aware of multiple realms. You may wish to remove them to simplify things. The first line puts the specific system into the named realm. The rest of the lines show how to default systems of a particular subdomain to a named realm. Now we are ready to create the database. This only needs to run on the Kerberos server (or Key Distribution Center). Issue the kdb_init command to do this: &prompt.root; kdb_init Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter Kerberos master key: Now we have to save the key so that servers on the local machine can pick it up. Use the kstash command to do this: &prompt.root; kstash Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! This saves the encrypted master password in /etc/kerberosIV/master_key. Making It All Run KerberosIV initial startup Two principals need to be added to the database for each system that will be secured with Kerberos. Their names are kpasswd and rcmd. These two principals are made for each system, with the instance being the name of the individual system. These daemons, kpasswd and rcmd allow other systems to change Kerberos passwords and run commands like &man.rcp.1;, &man.rlogin.1; and &man.rsh.1;. Now let us add these entries: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: passwd Instance: grunt <Not found>, Create [y] ? y Principal: passwd, Instance: grunt, kdc_key_ver: 1 New Password: <---- enter RANDOM here Verifying password New Password: <---- enter RANDOM here Random password [y] ? y Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: rcmd Instance: grunt <Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 New Password: <---- enter RANDOM here Verifying password New Password: <---- enter RANDOM here Random password [y] ? Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Creating the Server File We now have to extract all the instances which define the services on each machine. For this we use the ext_srvtab command. This will create a file which must be copied or moved by secure means to each Kerberos client's /etc directory. This file must be present on each server and client, and is crucial to the operation of Kerberos. &prompt.root; ext_srvtab grunt Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Generating 'grunt-new-srvtab'.... Now, this command only generates a temporary file which must be renamed to srvtab so that all the servers can pick it up. Use the &man.mv.1; command to move it into place on the original system: &prompt.root; mv grunt-new-srvtab srvtab If the file is for a client system, and the network is not deemed safe, then copy the client-new-srvtab to removable media and transport it by secure physical means. Be sure to rename it to srvtab in the client's /etc directory, and make sure it is mode 600: &prompt.root; mv grumble-new-srvtab srvtab &prompt.root; chmod 600 srvtab Populating the Database We now have to add some user entries into the database. First let us create an entry for the user jane. Use the kdb_edit command to do this: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: <Not found>, Create [y] ? y Principal: jane, Instance: , kdc_key_ver: 1 New Password: <---- enter a secure password here Verifying password New Password: <---- re-enter the password here Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Testing It All Out First we have to start the Kerberos daemons. Note that if you have correctly edited your /etc/rc.conf then this will happen automatically when you reboot. This is only necessary on the Kerberos server. Kerberos clients will automatically get what they need from the /etc/kerberosIV directory. &prompt.root; kerberos & Kerberos server starting Sleep forever on error Log file is /var/log/kerberos.log Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: EXAMPLE.COM &prompt.root; kadmind -n & KADM Server KADM0.0A initializing Please do not use 'kill -9' to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE! Now we can try using the kinit command to get a ticket for the ID jane that we created above: &prompt.user; kinit jane MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane" Password: Try listing the tokens using klist to see if we really have them: &prompt.user; klist Ticket file: /tmp/tkt245 Principal: jane@EXAMPLE.COM Issued Expires Principal Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM Now try changing the password using &man.passwd.1; to check if the kpasswd daemon can get authorization to the Kerberos database: &prompt.user; passwd realm EXAMPLE.COM Old password for jane: New Password for jane: Verifying password New Password for jane: Password changed. Adding <command>su</command> Privileges Kerberos allows us to give each user who needs root privileges their own separate &man.su.1; password. We could now add an ID which is authorized to &man.su.1; to root. This is controlled by having an instance of root associated with a principal. Using kdb_edit we can create the entry jane.root in the Kerberos database: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: root <Not found>, Create [y] ? y Principal: jane, Instance: root, kdc_key_ver: 1 New Password: <---- enter a SECURE password here Verifying password New Password: <---- re-enter the password here Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short! Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Now try getting tokens for it to make sure it works: &prompt.root; kinit jane.root MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane.root" Password: Now we need to add the user to root's .klogin file: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM Now try doing the &man.su.1;: &prompt.user; su Password: and take a look at what tokens we have: &prompt.root; klist Ticket file: /tmp/tkt_root_245 Principal: jane.root@EXAMPLE.COM Issued Expires Principal May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM Using Other Commands In an earlier example, we created a principal called jane with an instance root. This was based on a user with the same name as the principal, and this is a Kerberos default; that a <principal>.<instance> of the form <username>.root will allow that <username> to &man.su.1; to root if the necessary entries are in the .klogin file in root's home directory: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM Likewise, if a user has in their own home directory lines of the form: &prompt.user; cat ~/.klogin jane@EXAMPLE.COM jack@EXAMPLE.COM This allows anyone in the EXAMPLE.COM realm who has authenticated themselves as jane or jack (via kinit, see above) to access to jane's account or files on this system (grunt) via &man.rlogin.1;, &man.rsh.1; or &man.rcp.1;. For example, jane now logs into another system using Kerberos: &prompt.user; kinit MIT Project Athena (grunt.example.com) Password: &prompt.user; rlogin grunt Last login: Mon May 1 21:14:47 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Or jack logs into jane's account on the same machine (jane having set up the .klogin file as above, and the person in charge of Kerberos having set up principal jack with a null instance): &prompt.user; kinit &prompt.user; rlogin grunt -l jane MIT Project Athena (grunt.example.com) Password: Last login: Mon May 1 21:16:55 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Tillman Hodgson Contributed by Mark Murray Based on a contribution by <application>Kerberos5</application> Every &os; release beyond &os;-5.1 includes support only for Kerberos5. Hence Kerberos5 is the only version included, and its configuration is similar in many aspects to that of KerberosIV. The following information only applies to Kerberos5 in post &os;-5.0 releases. Users who wish to use the KerberosIV package may install the security/krb4 port. Kerberos is a network add-on system/protocol that allows users to authenticate themselves through the services of a secure server. Services such as remote login, remote copy, secure inter-system file copying and other high-risk tasks are made considerably safer and more controllable. Kerberos can be described as an identity-verifying proxy system. It can also be described as a trusted third-party authentication system. Kerberos provides only one function — the secure authentication of users on the network. It does not provide authorization functions (what users are allowed to do) or auditing functions (what those users did). After a client and server have used Kerberos to prove their identity, they can also encrypt all of their communications to assure privacy and data integrity as they go about their business. Therefore it is highly recommended that Kerberos be used with other security methods which provide authorization and audit services. The following instructions can be used as a guide on how to set up Kerberos as distributed for &os;. However, you should refer to the relevant manual pages for a complete description. For purposes of demonstrating a Kerberos installation, the various name spaces will be handled as follows: The DNS domain (zone) will be example.org. The Kerberos realm will be EXAMPLE.ORG. Please use real domain names when setting up Kerberos even if you intend to run it internally. This avoids DNS problems and assures inter-operation with other Kerberos realms. History Kerberos5 history Kerberos was created by MIT as a solution to network security problems. The Kerberos protocol uses strong cryptography so that a client can prove its identity to a server (and vice versa) across an insecure network connection. Kerberos is both the name of a network authentication protocol and an adjective to describe programs that implement the program (Kerberos telnet, for example). The current version of the protocol is version 5, described in RFC 1510. Several free implementations of this protocol are available, covering a wide range of operating systems. The Massachusetts Institute of Technology (MIT), where Kerberos was originally developed, continues to develop their Kerberos package. It is commonly used in the US as a cryptography product, as such it has historically been affected by US export regulations. The MIT Kerberos is available as a port (security/krb5). Heimdal Kerberos is another version 5 implementation, and was explicitly developed outside of the US to avoid export regulations (and is thus often included in non-commercial &unix; variants). The Heimdal Kerberos distribution is available as a port (security/heimdal), and a minimal installation of it is included in the base &os; install. In order to reach the widest audience, these instructions assume the use of the Heimdal distribution included in &os;. Setting up a Heimdal <acronym>KDC</acronym> Kerberos5 Key Distribution Center The Key Distribution Center (KDC) is the centralized authentication service that Kerberos provides — it is the computer that issues Kerberos tickets. The KDC is considered trusted by all other computers in the Kerberos realm, and thus has heightened security concerns. Note that while running the Kerberos server requires very few computing resources, a dedicated machine acting only as a KDC is recommended for security reasons. To begin setting up a KDC, ensure that your /etc/rc.conf file contains the correct settings to act as a KDC (you may need to adjust paths to reflect your own system): kerberos5_server_enable="YES" kadmind5_server_enable="YES" Next we will set up your Kerberos config file, /etc/krb5.conf: [libdefaults] default_realm = EXAMPLE.ORG [realms] EXAMPLE.ORG = { kdc = kerberos.example.org admin_server = kerberos.example.org } [domain_realm] .example.org = EXAMPLE.ORG Note that this /etc/krb5.conf file implies that your KDC will have the fully-qualified hostname of kerberos.example.org. You will need to add a CNAME (alias) entry to your zone file to accomplish this if your KDC has a different hostname. For large networks with a properly configured BIND DNS server, the above example could be trimmed to: [libdefaults] default_realm = EXAMPLE.ORG With the following lines being appended to the example.org zonefile: _kerberos._udp IN SRV 01 00 88 kerberos.example.org. _kerberos._tcp IN SRV 01 00 88 kerberos.example.org. _kpasswd._udp IN SRV 01 00 464 kerberos.example.org. _kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. _kerberos IN TXT EXAMPLE.ORG For clients to be able to find the Kerberos services, you must have either a fully configured /etc/krb5.conf or a minimally configured /etc/krb5.conf and a properly configured DNS server. Next we will create the Kerberos database. This database contains the keys of all principals encrypted with a master password. You are not required to remember this password, it will be stored in a file (/var/heimdal/m-key). To create the master key, run kstash and enter a password. Once the master key has been created, you can initialize the database using the kadmin program with the -l option (standing for local). This option instructs kadmin to modify the database files directly rather than going through the kadmind network service. This handles the chicken-and-egg problem of trying to connect to the database before it is created. Once you have the kadmin prompt, use the init command to create your realms initial database. Lastly, while still in kadmin, create your first principal using the add command. Stick to the defaults options for the principal for now, you can always change them later with the modify command. Note that you can use the ? command at any prompt to see the available options. A sample database creation session is shown below: &prompt.root; kstash Master key: xxxxxxxx Verifying password - Master key: xxxxxxxx &prompt.root; kadmin -l kadmin> init EXAMPLE.ORG Realm max ticket life [unlimited]: kadmin> add tillman Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: Password: xxxxxxxx Verifying password - Password: xxxxxxxx Now it is time to start up the KDC services. Run /etc/rc.d/kerberos start and /etc/rc.d/kadmind start to bring up the services. Note that you will not have any kerberized daemons running at this point but you should be able to confirm the that the KDC is functioning by obtaining and listing a ticket for the principal (user) that you just created from the command-line of the KDC itself: &prompt.user; kinit tillman tillman@EXAMPLE.ORG's Password: &prompt.user; klist Credentials cache: FILE:/tmp/krb5cc_500 Principal: tillman@EXAMPLE.ORG Issued Expires Principal Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG The ticket can then be revoked when you have finished: &prompt.user; k5destroy <application>Kerberos</application> enabling a server with Heimdal services Kerberos5 enabling services First, we need a copy of the Kerberos configuration file, /etc/krb5.conf. To do so, simply copy it over to the client computer from the KDC in a secure fashion (using network utilities, such as &man.scp.1;, or physically via a floppy disk). Next you need a /etc/krb5.keytab file. This is the major difference between a server providing Kerberos enabled daemons and a workstation — the server must have a keytab file. This file contains the server's host key, which allows it and the KDC to verify each others identity. It must be transmitted to the server in a secure fashion, as the security of the server can be broken if the key is made public. This explicitly means that transferring it via a clear text channel, such as FTP, is a very bad idea. Typically, you transfer to the keytab to the server using the kadmin program. This is handy because you also need to create the host principal (the KDC end of the krb5.keytab) using kadmin. Note that you must have already obtained a ticket and that this ticket must be allowed to use the kadmin interface in the kadmind.acl. See the section titled Remote administration in the Heimdal info pages (info heimdal) for details on designing access control lists. If you do not want to enable remote kadmin access, you can simply securely connect to the KDC (via local console, &man.ssh.1; or Kerberos &man.telnet.1;) and perform administration locally using kadmin -l. After installing the /etc/krb5.conf file, you can use kadmin from the Kerberos server. The add --random-key command will let you add the server's host principal, and the ext command will allow you to extract the server's host principal to its own keytab. For example: &prompt.root; kadmin kadmin> add --random-key host/myserver.example.org Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: kadmin> ext host/myserver.example.org kadmin> exit Note that the ext command (short for extract) stores the extracted key in /etc/krb5.keytab by default. If you do not have kadmind running on the KDC (possibly for security reasons) and thus do not have access to kadmin remotely, you can add the host principal (host/myserver.EXAMPLE.ORG) directly on the KDC and then extract it to a temporary file (to avoid over-writing the /etc/krb5.keytab on the KDC) using something like this: &prompt.root; kadmin kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org kadmin> exit You can then securely copy the keytab to the server computer (using scp or a floppy, for example). Be sure to specify a non-default keytab name to avoid over-writing the keytab on the KDC. At this point your server can communicate with the KDC (due to its krb5.conf file) and it can prove its own identity (due to the krb5.keytab file). It is now ready for you to enable some Kerberos services. For this example we will enable the telnet service by putting a line like this into your /etc/inetd.conf and then restarting the &man.inetd.8; service with /etc/rc.d/inetd restart: telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user The critical bit is that the -a (for authentication) type is set to user. Consult the &man.telnetd.8; manual page for more details. <application>Kerberos</application> enabling a client with Heimdal Kerberos5 configure clients Setting up a client computer is almost trivially easy. As far as Kerberos configuration goes, you only need the Kerberos configuration file, located at /etc/krb5.conf. Simply securely copy it over to the client computer from the KDC. Test your client computer by attempting to use kinit, klist, and kdestroy from the client to obtain, show, and then delete a ticket for the principal you created above. You should also be able to use Kerberos applications to connect to Kerberos enabled servers, though if that does not work and obtaining a ticket does the problem is likely with the server and not with the client or the KDC. When testing an application like telnet, try using a packet sniffer (such as &man.tcpdump.1;) to confirm that your password is not sent in the clear. Try using telnet with the -x option, which encrypts the entire data stream (similar to ssh). Various non-core Kerberos client applications are also installed by default. This is where the minimal nature of the base Heimdal installation is felt: telnet is the only Kerberos enabled service. The Heimdal port adds some of the missing client applications: Kerberos enabled versions of ftp, rsh, rcp, rlogin, and a few other less common programs. The MIT port also contains a full suite of Kerberos client applications. User configuration files: <filename>.k5login</filename> and <filename>.k5users</filename> .k5login .k5users Users within a realm typically have their Kerberos principal (such as tillman@EXAMPLE.ORG) mapped to a local user account (such as a local account named tillman). Client applications such as telnet usually do not require a user name or a principal. Occasionally, however, you want to grant access to a local user account to someone who does not have a matching Kerberos principal. For example, tillman@EXAMPLE.ORG may need access to the local user account webdevelopers. Other principals may also need access to that local account. The .k5login and .k5users files, placed in a users home directory, can be used similar to a powerful combination of .hosts and .rhosts, solving this problem. For example, if a .k5login with the following contents: tillman@example.org jdoe@example.org Were to be placed into the home directory of the local user webdevelopers then both principals listed would have access to that account without requiring a shared password. Reading the manual pages for these commands is recommended. Note that the ksu manual page covers .k5users. <application>Kerberos</application> Tips, Tricks, and Troubleshooting Kerberos5 troubleshooting When using either the Heimdal or MIT Kerberos ports ensure that your PATH environment variable lists the Kerberos versions of the client applications before the system versions. Do all the computers in your realm have synchronized time settings? If not, authentication may fail. describes how to synchronize clocks using NTP. MIT and Heimdal inter-operate nicely. Except for kadmin, the protocol for which is not standardized. If you change your hostname, you also need to change your host/ principal and update your keytab. This also applies to special keytab entries like the www/ principal used for Apache's www/mod_auth_kerb. All hosts in your realm must be resolvable (both forwards and reverse) in DNS (or /etc/hosts as a minimum). CNAMEs will work, but the A and PTR records must be correct and in place. The error message is not very intuitive: Kerberos5 refuses authentication because Read req failed: Key table entry not found. Some operating systems that may being acting as clients to your KDC do not set the permissions for ksu to be setuid root. This means that ksu does not work, which is a good security idea but annoying. This is not a KDC error. With MIT Kerberos, if you want to allow a principal to have a ticket life longer than the default ten hours, you must use modify_principal in kadmin to change the maxlife of both the principal in question and the krbtgt principal. Then the principal can use the -l option with kinit to request a ticket with a longer lifetime. If you run a packet sniffer on your KDC to add in troubleshooting and then run kinit from a workstation, you will notice that your TGT is sent immediately upon running kinit — even before you type your password! The explanation is that the Kerberos server freely transmits a TGT (Ticket Granting Ticket) to any unauthorized request; however, every TGT is encrypted in a key derived from the user's password. Therefore, when a user types their password it is not being sent to the KDC, it is being used to decrypt the TGT that kinit already obtained. If the decryption process results in a valid ticket with a valid time stamp, the user has valid Kerberos credentials. These credentials include a session key for establishing secure communications with the Kerberos server in the future, as well as the actual ticket-granting ticket, which is actually encrypted with the Kerberos server's own key. This second layer of encryption is unknown to the user, but it is what allows the Kerberos server to verify the authenticity of each TGT. If you want to use long ticket lifetimes (a week, for example) and you are using OpenSSH to connect to the machine where your ticket is stored, make sure that Kerberos is set to no in your sshd_config or else your tickets will be deleted when you log out. Remember that host principals can have a longer ticket lifetime as well. If your user principal has a lifetime of a week but the host you are connecting to has a lifetime of nine hours, you will have an expired host principal in your cache and the ticket cache will not work as expected. When setting up a krb5.dict file to prevent specific bad passwords from being used (the manual page for kadmind covers this briefly), remember that it only applies to principals that have a password policy assigned to them. The krb5.dict files format is simple: one string per line. Creating a symbolic link to /usr/share/dict/words might be useful. Differences with the <acronym>MIT</acronym> port The major difference between the MIT and Heimdal installs relates to the kadmin program which has a different (but equivalent) set of commands and uses a different protocol. This has a large implications if your KDC is MIT as you will not be able to use the Heimdal kadmin program to administer your KDC remotely (or vice versa, for that matter). The client applications may also take slightly different command line options to accomplish the same tasks. Following the instructions on the MIT Kerberos web site () is recommended. Be careful of path issues: the MIT port installs into /usr/local/ by default, and the normal system applications may be run instead of MIT if your PATH environment variable lists the system directories first. With the MIT security/krb5 port that is provided by &os;, be sure to read the /usr/local/share/doc/krb5/README.FreeBSD file installed by the port if you want to understand why logins via telnetd and klogind behave somewhat oddly. Most importantly, correcting the incorrect permissions on cache file behavior requires that the login.krb5 binary be used for authentication so that it can properly change ownership for the forwarded credentials. The rc.conf must also be modified to contain the following configuration: kerberos5_server="/usr/local/sbin/krb5kdc" kadmind5_server="/usr/local/sbin/kadmind" kerberos5_server_enable="YES" kadmind5_server_enable="YES" This is done because the applications for MIT kerberos installs binaries in the /usr/local hierarchy. Mitigating limitations found in <application>Kerberos</application> Kerberos5 limitations and shortcomings <application>Kerberos</application> is an all-or-nothing approach Every service enabled on the network must be modified to work with Kerberos (or be otherwise secured against network attacks) or else the users credentials could be stolen and re-used. An example of this would be Kerberos enabling all remote shells (via rsh and telnet, for example) but not converting the POP3 mail server which sends passwords in plain text. <application>Kerberos</application> is intended for single-user workstations In a multi-user environment, Kerberos is less secure. This is because it stores the tickets in the /tmp directory, which is readable by all users. If a user is sharing a computer with several other people simultaneously (i.e. multi-user), it is possible that the user's tickets can be stolen (copied) by another user. This can be overcome with the -c filename command-line option or (preferably) the KRB5CCNAME environment variable, but this is rarely done. In principal, storing the ticket in the users home directory and using simple file permissions can mitigate this problem. The KDC is a single point of failure By design, the KDC must be as secure as the master password database is contained on it. The KDC should have absolutely no other services running on it and should be physically secured. The danger is high because Kerberos stores all passwords encrypted with the same key (the master key), which in turn is stored as a file on the KDC. As a side note, a compromised master key is not quite as bad as one might normally fear. The master key is only used to encrypt the Kerberos database and as a seed for the random number generator. As long as access to your KDC is secure, an attacker cannot do much with the master key. Additionally, if the KDC is unavailable (perhaps due to a denial of service attack or network problems) the network services are unusable as authentication can not be performed, a recipe for a denial-of-service attack. This can alleviated with multiple KDCs (a single master and one or more slaves) and with careful implementation of secondary or fall-back authentication (PAM is excellent for this). <application>Kerberos</application> Shortcomings Kerberos allows users, hosts and services to authenticate between themselves. It does not have a mechanism to authenticate the KDC to the users, hosts or services. This means that a trojanned kinit (for example) could record all user names and passwords. Something like security/tripwire or other file system integrity checking tools can alleviate this. Resources and further information Kerberos5 external resources The Kerberos FAQ Designing an Authentication System: a Dialog in Four Scenes RFC 1510, The Kerberos Network Authentication Service (V5) MIT Kerberos home page Heimdal Kerberos home page Tom Rhodes Written by: OpenSSL security OpenSSL One feature that many users overlook is the OpenSSL toolkit included in &os;. OpenSSL provides an encryption transport layer on top of the normal communications layer; thus allowing it to be intertwined with many network applications and services. Some uses of OpenSSL may include encrypted authentication of mail clients, web based transactions such as credit card payments and more. Many ports such as www/apache13-ssl, and mail/sylpheed-claws will offer compilation support for building with OpenSSL. In most cases the Ports Collection will attempt to build the security/openssl port unless the WITH_OPENSSL_BASE make variable is explicitly set to yes. The version of OpenSSL included in &os; supports Secure Sockets Layer v2/v3 (SSLv2/SSLv3), Transport Layer Security v1 (TLSv1) network security protocols and can be used as a general cryptographic library. While OpenSSL supports the IDEA algorithm, it is disabled by default due to United States patents. To use it, the license should be reviewed and, if the restrictions are acceptable, the MAKE_IDEA variable must be set in make.conf. One of the most common uses of OpenSSL is to provide certificates for use with software applications. These certificates ensure that the credentials of the company or individual are valid and not fraudulent. If the certificate in question has not been verified by one of the several Certificate Authorities, or CAs, a warning is usually produced. A Certificate Authority is a company, such as VeriSign, which will sign certificates in order to validate credentials of individuals or companies. This process has a cost associated with it and is definitely not a requirement for using certificates; however, it can put some of the more paranoid users at ease. Generating Certificates OpenSSL certificate generation To generate a certificate, the following command is available: &prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem Generating a 1024 bit RSA private key ................++++++ .......................................++++++ writing new private key to 'cert.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:PA Locality Name (eg, city) []:Pittsburgh Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company Organizational Unit Name (eg, section) []:Systems Administrator Common Name (eg, YOUR name) []:localhost.example.org Email Address []:trhodes@FreeBSD.org Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:SOME PASSWORD An optional company name []:Another Name Notice the response directly after the Common Name prompt shows a domain name. This prompt requires a server name to be entered for verification purposes; placing anything but a domain name would yield a useless certificate. Other options, for instance expire time, alternate encryption algorithms, etc. are available. A complete list may be obtained by viewing the &man.openssl.1; manual page. Two files should now exist in the directory in which the aforementioned command was issued. The certificate request, req.pem, may be sent to a certificate authority who will validate the credentials that you entered, sign the request and return the certificate to you. The second file created will be named cert.pem and is the private key for the certificate and should be protected at all costs; if this falls in the hands of others it can be used to impersonate you (or your server). In cases where a signature from a CA is not required, a self signed certificate can be created. First, generate the RSA key: &prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024 Next, generate the CA key: &prompt.root; openssl gendsa -des3 -out myca.key myRSA.key Use this key to create the certificate: &prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt Two new files should appear in the directory: a certificate authority signature file, myca.key and the certificate itself, new.crt. These should be placed in a directory, preferably under /etc, which is readable only by root. Permissions of 0700 should be fine for this and they can be set with the chmod utility. Using Certificates, an Example So what can these files do? A good use would be to encrypt connections to the Sendmail MTA. This would dissolve the use of clear text authentication for users who send mail via the local MTA. This is not the best use in the world as some MUAs will present the user with an error if they have not installed the certificate locally. Refer to the documentation included with the software for more information on certificate installation. The following lines should be placed inside the local .mc file: dnl SSL Options define(`confCACERT_PATH',`/etc/certs')dnl define(`confCACERT',`/etc/certs/new.crt')dnl define(`confSERVER_CERT',`/etc/certs/new.crt')dnl define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl Where /etc/certs/ is the directory to be used for storing the certificate and key files locally. The last few requirements are a rebuild of the local .cf file. This is easily achieved by typing make install within the /etc/mail directory. Follow that up with make restart which should start the Sendmail daemon. If all went well there will be no error messages in the /var/log/maillog file and Sendmail will show up in the process list. For a simple test, simply connect to the mail server using the &man.telnet.1; utility: &prompt.root; telnet example.com 25 Trying 192.0.34.166... Connected to example.com. Escape character is '^]'. 220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT) ehlo example.com 250-example.com Hello example.com [192.0.34.166], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP quit 221 2.0.0 example.com closing connection Connection closed by foreign host. If the STARTTLS line appears in the output then everything is working correctly. Nik Clayton
nik@FreeBSD.org
Written by
IPsec VPN over IPsec Creating a VPN between two networks, separated by the Internet, using FreeBSD gateways. Hiten M. Pandya
hmp@FreeBSD.org
Written by
Understanding IPsec This section will guide you through the process of setting up IPsec, and to use it in an environment which consists of FreeBSD and µsoft.windows; 2000/XP machines, to make them communicate securely. In order to set up IPsec, it is necessary that you are familiar with the concepts of building a custom kernel (see ). IPsec is a protocol which sits on top of the Internet Protocol (IP) layer. It allows two or more hosts to communicate in a secure manner (hence the name). The FreeBSD IPsec network stack is based on the KAME implementation, which has support for both protocol families, IPv4 and IPv6. FreeBSD contains a hardware accelerated IPsec stack, known as Fast IPsec, that was obtained from OpenBSD. It employs cryptographic hardware (whenever possible) via the &man.crypto.4; subsystem to optimize the performance of IPsec. This subsystem is new, and does not support all the features that are available in the KAME version of IPsec. However, in order to enable hardware-accelerated IPsec, the following kernel option has to be added to your kernel configuration file: kernel options FAST_IPSEC options FAST_IPSEC # new IPsec (cannot define w/ IPSEC) Note, that it is not currently possible to use the Fast IPsec subsystem in lieu of the KAME implementation of IPsec. Consult the &man.fast.ipsec.4; manual page for more information. To let firewalls properly track state for &man.gif.4; tunnels too, you have to enable the in your kernel configuration: options IPSEC_FILTERGIF #filter ipsec packets from a tunnel IPsec ESP IPsec AH IPsec consists of two sub-protocols: Encapsulated Security Payload (ESP), protects the IP packet data from third party interference, by encrypting the contents using symmetric cryptography algorithms (like Blowfish, 3DES). Authentication Header (AH), protects the IP packet header from third party interference and spoofing, by computing a cryptographic checksum and hashing the IP packet header fields with a secure hashing function. This is then followed by an additional header that contains the hash, to allow the information in the packet to be authenticated. ESP and AH can either be used together or separately, depending on the environment. VPN virtual private network VPN IPsec can either be used to directly encrypt the traffic between two hosts (known as Transport Mode); or to build virtual tunnels between two subnets, which could be used for secure communication between two corporate networks (known as Tunnel Mode). The latter is more commonly known as a Virtual Private Network (VPN). The &man.ipsec.4; manual page should be consulted for detailed information on the IPsec subsystem in FreeBSD. To add IPsec support to your kernel, add the following options to your kernel configuration file: kernel options IPSEC kernel options IPSEC_ESP options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) kernel options IPSEC_DEBUG If IPsec debugging support is desired, the following kernel option should also be added: options IPSEC_DEBUG #debug for IP security
The Problem There is no standard for what constitutes a VPN. VPNs can be implemented using a number of different technologies, each of which have their own strengths and weaknesses. This section presents a scenario, and the strategies used for implementing a VPN for this scenario. The Scenario: Two networks, connected to the Internet, to behave as one VPN creating The premise is as follows: You have at least two sites Both sites are using IP internally Both sites are connected to the Internet, through a gateway that is running FreeBSD. The gateway on each network has at least one public IP address. The internal addresses of the two networks can be public or private IP addresses, it does not matter. You can be running NAT on the gateway machine if necessary. The internal IP addresses of the two networks do not collide. While I expect it is theoretically possible to use a combination of VPN technology and NAT to get this to work, I expect it to be a configuration nightmare. If you find that you are trying to connect two networks, both of which, internally, use the same private IP address range (e.g. both of them use 192.168.1.x), then one of the networks will have to be renumbered. The network topology might look something like this: Network #1 [ Internal Hosts ] Private Net, 192.168.1.2-254 [ Win9x/NT/2K ] [ UNIX ] | | .---[fxp1]---. Private IP, 192.168.1.1 | FreeBSD | `---[fxp0]---' Public IP, A.B.C.D | | -=-=- Internet -=-=- | | .---[fxp0]---. Public IP, W.X.Y.Z | FreeBSD | `---[fxp1]---' Private IP, 192.168.2.1 | | Network #2 [ Internal Hosts ] [ Win9x/NT/2K ] Private Net, 192.168.2.2-254 [ UNIX ] Notice the two public IP addresses. I will use the letters to refer to them in the rest of this article. Anywhere you see those letters in this article, replace them with your own public IP addresses. Note also that internally, the two gateway machines have .1 IP addresses, and that the two networks have different private IP addresses (192.168.1.x and 192.168.2.x respectively). All the machines on the private networks have been configured to use the .1 machine as their default gateway. The intention is that, from a network point of view, each network should view the machines on the other network as though they were directly attached the same router -- albeit a slightly slow router with an occasional tendency to drop packets. This means that (for example), machine 192.168.1.20 should be able to run ping 192.168.2.34 and have it work, transparently. &windows; machines should be able to see the machines on the other network, browse file shares, and so on, in exactly the same way that they can browse machines on the local network. And the whole thing has to be secure. This means that traffic between the two networks has to be encrypted. Creating a VPN between these two networks is a multi-step process. The stages are as follows: Create a virtual network link between the two networks, across the Internet. Test it, using tools like &man.ping.8;, to make sure it works. Apply security policies to ensure that traffic between the two networks is transparently encrypted and decrypted as necessary. Test this, using tools like &man.tcpdump.1;, to ensure that traffic is encrypted. Configure additional software on the FreeBSD gateways, to allow &windows; machines to see one another across the VPN. Step 1: Creating and testing a <quote>virtual</quote> network link Suppose that you were logged in to the gateway machine on network #1 (with public IP address A.B.C.D, private IP address 192.168.1.1), and you ran ping 192.168.2.1, which is the private address of the machine with IP address W.X.Y.Z. What needs to happen in order for this to work? The gateway machine needs to know how to reach 192.168.2.1. In other words, it needs to have a route to 192.168.2.1. Private IP addresses, such as those in the 192.168.x range are not supposed to appear on the Internet at large. Instead, each packet you send to 192.168.2.1 will need to be wrapped up inside another packet. This packet will need to appear to be from A.B.C.D, and it will have to be sent to W.X.Y.Z. This process is called encapsulation. Once this packet arrives at W.X.Y.Z it will need to unencapsulated, and delivered to 192.168.2.1. You can think of this as requiring a tunnel between the two networks. The two tunnel mouths are the IP addresses A.B.C.D and W.X.Y.Z, and the tunnel must be told the addresses of the private IP addresses that will be allowed to pass through it. The tunnel is used to transfer traffic with private IP addresses across the public Internet. This tunnel is created by using the generic interface, or gif devices on FreeBSD. As you can imagine, the gif interface on each gateway host must be configured with four IP addresses; two for the public IP addresses, and two for the private IP addresses. Support for the gif device must be compiled in to the &os; kernel on both machines. You can do this by adding the line: device gif to the kernel configuration files on both machines, and then compile, install, and reboot as normal. Configuring the tunnel is a two step process. First the tunnel must be told what the outside (or public) IP addresses are, using &man.ifconfig.8;. Then the private IP addresses must be configured using &man.ifconfig.8;. On the gateway machine on network #1 you would run the following commands to configure the tunnel. &prompt.root; ifconfig gif0 create &prompt.root; ifconfig gif0 tunnel A.B.C.D W.X.Y.Z &prompt.root; ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff On the other gateway machine you run the same commands, but with the order of the IP addresses reversed. &prompt.root; ifconfig gif0 create &prompt.root; ifconfig gif0 tunnel W.X.Y.Z A.B.C.D &prompt.root; ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff You can then run: ifconfig gif0 to see the configuration. For example, on the network #1 gateway, you would see this: &prompt.root; ifconfig gif0 gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280 tunnel inet A.B.C.D --> W.X.Y.Z inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff As you can see, a tunnel has been created between the physical addresses A.B.C.D and W.X.Y.Z, and the traffic allowed through the tunnel is that between 192.168.1.1 and 192.168.2.1. This will also have added an entry to the routing table on both machines, which you can examine with the command netstat -rn. This output is from the gateway host on network #1. &prompt.root; netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire ... 192.168.2.1 192.168.1.1 UH 0 0 gif0 ... As the Flags value indicates, this is a host route, which means that each gateway knows how to reach the other gateway, but they do not know how to reach the rest of their respective networks. That problem will be fixed shortly. It is likely that you are running a firewall on both machines. This will need to be circumvented for your VPN traffic. You might want to allow all traffic between both networks, or you might want to include firewall rules that protect both ends of the VPN from one another. It greatly simplifies testing if you configure the firewall to allow all traffic through the VPN. You can always tighten things up later. If you are using &man.ipfw.8; on the gateway machines then a command like ipfw add 1 allow ip from any to any via gif0 will allow all traffic between the two end points of the VPN, without affecting your other firewall rules. Obviously you will need to run this command on both gateway hosts. This is sufficient to allow each gateway machine to ping the other. On 192.168.1.1, you should be able to run ping 192.168.2.1 and get a response, and you should be able to do the same thing on the other gateway machine. However, you will not be able to reach internal machines on either network yet. This is because of the routing -- although the gateway machines know how to reach one another, they do not know how to reach the network behind each one. To solve this problem you must add a static route on each gateway machine. The command to do this on the first gateway would be: route add 192.168.2.0 192.168.2.1 netmask 0xffffff00 This says In order to reach the hosts on the network 192.168.2.0, send the packets to the host 192.168.2.1. You will need to run a similar command on the other gateway, but with the 192.168.1.x addresses instead. IP traffic from hosts on one network will now be able to reach hosts on the other network. That has now created two thirds of a VPN between the two networks, in as much as it is virtual and it is a network. It is not private yet. You can test this using &man.ping.8; and &man.tcpdump.1;. Log in to the gateway host and run tcpdump dst host 192.168.2.1 In another log in session on the same host run ping 192.168.2.1 You will see output that looks something like this: 16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply 16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply 16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply As you can see, the ICMP messages are going back and forth unencrypted. If you had used the parameter to &man.tcpdump.1; to grab more bytes of data from the packets you would see more information. Obviously this is unacceptable. The next section will discuss securing the link between the two networks so that all traffic is automatically encrypted. Summary: Configure both kernels with device gif. Edit /etc/rc.conf on gateway host #1 and add the following lines (replacing IP addresses as necessary). gif_interfaces="gif0" gifconfig_gif0="A.B.C.D W.X.Y.Z" ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff" static_routes="vpn" route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00" Edit your firewall script (/etc/rc.firewall, or similar) on both hosts, and add ipfw add 1 allow ip from any to any via gif0 Make similar changes to /etc/rc.conf on gateway host #2, reversing the order of IP addresses. Step 2: Securing the link To secure the link we will be using IPsec. IPsec provides a mechanism for two hosts to agree on an encryption key, and to then use this key in order to encrypt data between the two hosts. The are two areas of configuration to be considered here. There must be a mechanism for two hosts to agree on the encryption mechanism to use. Once two hosts have agreed on this mechanism there is said to be a security association between them. There must be a mechanism for specifying which traffic should be encrypted. Obviously, you do not want to encrypt all your outgoing traffic -- you only want to encrypt the traffic that is part of the VPN. The rules that you put in place to determine what traffic will be encrypted are called security policies. Security associations and security policies are both maintained by the kernel, and can be modified by userland programs. However, before you can do this you must configure the kernel to support IPsec and the Encapsulated Security Payload (ESP) protocol. This is done by configuring a kernel with: kernel options IPSEC options IPSEC options IPSEC_ESP and recompiling, reinstalling, and rebooting. As before you will need to do this to the kernels on both of the gateway hosts. IKE You have two choices when it comes to setting up security associations. You can configure them by hand between two hosts, which entails choosing the encryption algorithm, encryption keys, and so forth, or you can use daemons that implement the Internet Key Exchange protocol (IKE) to do this for you. I recommend the latter. Apart from anything else, it is easier to set up. IPsec security policies setkey Editing and displaying security policies is carried out using &man.setkey.8;. By analogy, setkey is to the kernel's security policy tables as &man.route.8; is to the kernel's routing tables. setkey can also display the current security associations, and to continue the analogy further, is akin to netstat -r in that respect. There are a number of choices for daemons to manage security associations with FreeBSD. This article will describe how to use one of these, racoon — which is available from security/ipsec-tools in the &os; Ports collection. racoon The racoon software must be run on both gateway hosts. On each host it is configured with the IP address of the other end of the VPN, and a secret key (which you choose, and must be the same on both gateways). The two daemons then contact one another, confirm that they are who they say they are (by using the secret key that you configured). The daemons then generate a new secret key, and use this to encrypt the traffic over the VPN. They periodically change this secret, so that even if an attacker were to crack one of the keys (which is as theoretically close to unfeasible as it gets) it will not do them much good -- by the time they have cracked the key the two daemons have chosen another one. The configuration file for racoon is stored in ${PREFIX}/etc/racoon. You should find a configuration file there, which should not need to be changed too much. The other component of racoon's configuration, which you will need to change, is the pre-shared key. The default racoon configuration expects to find this in the file ${PREFIX}/etc/racoon/psk.txt. It is important to note that the pre-shared key is not the key that will be used to encrypt your traffic across the VPN link, it is simply a token that allows the key management daemons to trust one another. psk.txt contains a line for each remote site you are dealing with. In this example, where there are two sites, each psk.txt file will contain one line (because each end of the VPN is only dealing with one other end). On gateway host #1 this line should look like this: W.X.Y.Z secret That is, the public IP address of the remote end, whitespace, and a text string that provides the secret. Obviously, you should not use secret as your key -- the normal rules for choosing a password apply. On gateway host #2 the line would look like this A.B.C.D secret That is, the public IP address of the remote end, and the same secret key. psk.txt must be mode 0600 (i.e., only read/write to root) before racoon will run. You must run racoon on both gateway machines. You will also need to add some firewall rules to allow the IKE traffic, which is carried over UDP to the ISAKMP (Internet Security Association Key Management Protocol) port. Again, this should be fairly early in your firewall ruleset. ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp Once racoon is running you can try pinging one gateway host from the other. The connection is still not encrypted, but racoon will then set up the security associations between the two hosts -- this might take a moment, and you may see this as a short delay before the ping commands start responding. Once the security association has been set up you can view it using &man.setkey.8;. Run setkey -D on either host to view the security association information. That's one half of the problem. The other half is setting your security policies. To create a sensible security policy, let's review what's been set up so far. This discussions hold for both ends of the link. Each IP packet that you send out has a header that contains data about the packet. The header includes the IP addresses of both the source and destination. As we already know, private IP addresses, such as the 192.168.x.y range are not supposed to appear on the public Internet. Instead, they must first be encapsulated inside another packet. This packet must have the public source and destination IP addresses substituted for the private addresses. So if your outgoing packet started looking like this: .----------------------. | Src: 192.168.1.1 | | Dst: 192.168.2.1 | | <other header info> | +----------------------+ | <packet data> | `----------------------' Then it will be encapsulated inside another packet, looking something like this: .--------------------------. | Src: A.B.C.D | | Dst: W.X.Y.Z | | <other header info> | +--------------------------+ | .----------------------. | | | Src: 192.168.1.1 | | | | Dst: 192.168.2.1 | | | | <other header info> | | | +----------------------+ | | | <packet data> | | | `----------------------' | `--------------------------' This encapsulation is carried out by the gif device. As you can see, the packet now has real IP addresses on the outside, and our original packet has been wrapped up as data inside the packet that will be put out on the Internet. Obviously, we want all traffic between the VPNs to be encrypted. You might try putting this in to words, as: If a packet leaves from A.B.C.D, and it is destined for W.X.Y.Z, then encrypt it, using the necessary security associations. If a packet arrives from W.X.Y.Z, and it is destined for A.B.C.D, then decrypt it, using the necessary security associations. That's close, but not quite right. If you did this, all traffic to and from W.X.Y.Z, even traffic that was not part of the VPN, would be encrypted. That's not quite what you want. The correct policy is as follows If a packet leaves from A.B.C.D, and that packet is encapsulating another packet, and it is destined for W.X.Y.Z, then encrypt it, using the necessary security associations. If a packet arrives from W.X.Y.Z, and that packet is encapsulating another packet, and it is destined for A.B.C.D, then decrypt it, using the necessary security associations. A subtle change, but a necessary one. Security policies are also set using &man.setkey.8;. &man.setkey.8; features a configuration language for defining the policy. You can either enter configuration instructions via stdin, or you can use the option to specify a filename that contains configuration instructions. The configuration on gateway host #1 (which has the public IP address A.B.C.D) to force all outbound traffic to W.X.Y.Z to be encrypted is: spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; Put these commands in a file (e.g. /etc/ipsec.conf) and then run &prompt.root; setkey -f /etc/ipsec.conf tells &man.setkey.8; that we want to add a rule to the secure policy database. The rest of this line specifies which packets will match this policy. A.B.C.D/32 and W.X.Y.Z/32 are the IP addresses and netmasks that identify the network or hosts that this policy will apply to. In this case, we want it to apply to traffic between these two hosts. tells the kernel that this policy should only apply to packets that encapsulate other packets. says that this policy applies to outgoing packets, and says that the packet will be secured. The second line specifies how this packet will be encrypted. is the protocol that will be used, while indicates that the packet will be further encapsulated in an IPsec packet. The repeated use of A.B.C.D and W.X.Y.Z is used to select the security association to use, and the final mandates that packets must be encrypted if they match this rule. This rule only matches outgoing packets. You will need a similar rule to match incoming packets. spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; Note the instead of in this case, and the necessary reversal of the IP addresses. The other gateway host (which has the public IP address W.X.Y.Z) will need similar rules. spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; Finally, you need to add firewall rules to allow ESP and IPENCAP packets back and forth. These rules will need to be added to both hosts. ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D Because the rules are symmetric you can use the same rules on each gateway host. Outgoing packets will now look something like this: .------------------------------. --------------------------. | Src: A.B.C.D | | | Dst: W.X.Y.Z | | | <other header info> | | Encrypted +------------------------------+ | packet. | .--------------------------. | -------------. | contents | | Src: A.B.C.D | | | | are | | Dst: W.X.Y.Z | | | | completely | | <other header info> | | | |- secure | +--------------------------+ | | Encap'd | from third | | .----------------------. | | -. | packet | party | | | Src: 192.168.1.1 | | | | Original |- with real | snooping | | | Dst: 192.168.2.1 | | | | packet, | IP addr | | | | <other header info> | | | |- private | | | | +----------------------+ | | | IP addr | | | | | <packet data> | | | | | | | | `----------------------' | | -' | | | `--------------------------' | -------------' | `------------------------------' --------------------------' When they are received by the far end of the VPN they will first be decrypted (using the security associations that have been negotiated by racoon). Then they will enter the gif interface, which will unwrap the second layer, until you are left with the innermost packet, which can then travel in to the inner network. You can check the security using the same &man.ping.8; test from earlier. First, log in to the A.B.C.D gateway machine, and run: tcpdump dst host 192.168.2.1 In another log in session on the same host run ping 192.168.2.1 This time you should see output like the following: XXX tcpdump output Now, as you can see, &man.tcpdump.1; shows the ESP packets. If you try to examine them with the option you will see (apparently) gibberish, because of the encryption. Congratulations. You have just set up a VPN between two remote sites. Summary Configure both kernels with: options IPSEC options IPSEC_ESP Install security/ipsec-tools. Edit ${PREFIX}/etc/racoon/psk.txt on both gateway hosts, adding an entry for the remote host's IP address and a secret key that they both know. Make sure this file is mode 0600. Add the following lines to /etc/rc.conf on each host: ipsec_enable="YES" ipsec_file="/etc/ipsec.conf" Create an /etc/ipsec.conf on each host that contains the necessary spdadd lines. On gateway host #1 this would be: spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; On gateway host #2 this would be: spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; Add firewall rules to allow IKE, ESP, and IPENCAP traffic to both hosts: ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D The previous two steps should suffice to get the VPN up and running. Machines on each network will be able to refer to one another using IP addresses, and all traffic across the link will be automatically and securely encrypted.
Chern Lee Contributed by OpenSSH OpenSSH security OpenSSH OpenSSH is a set of network connectivity tools used to access remote machines securely. It can be used as a direct replacement for rlogin, rsh, rcp, and telnet. Additionally, TCP/IP connections can be tunneled/forwarded securely through SSH. OpenSSH encrypts all traffic to effectively eliminate eavesdropping, connection hijacking, and other network-level attacks. OpenSSH is maintained by the OpenBSD project, and is based upon SSH v1.2.12 with all the recent bug fixes and updates. It is compatible with both SSH protocols 1 and 2. Advantages of Using OpenSSH Normally, when using &man.telnet.1; or &man.rlogin.1;, data is sent over the network in an clear, un-encrypted form. Network sniffers anywhere in between the client and server can steal your user/password information or data transferred in your session. OpenSSH offers a variety of authentication and encryption methods to prevent this from happening. Enabling sshd OpenSSH enabling The sshd is an option presented during a Standard install of &os;. To see if sshd is enabled, check the rc.conf file for: sshd_enable="YES" This will load &man.sshd.8;, the daemon program for OpenSSH, the next time your system initializes. Alternatively, it is possible to use /etc/rc.d/sshd &man.rc.8; script to start OpenSSH: /etc/rc.d/sshd start SSH Client OpenSSH client The &man.ssh.1; utility works similarly to &man.rlogin.1;. &prompt.root; ssh user@example.com Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes Host 'example.com' added to the list of known hosts. user@example.com's password: ******* The login will continue just as it would have if a session was created using rlogin or telnet. SSH utilizes a key fingerprint system for verifying the authenticity of the server when the client connects. The user is prompted to enter yes only when connecting for the first time. Future attempts to login are all verified against the saved fingerprint key. The SSH client will alert you if the saved fingerprint differs from the received fingerprint on future login attempts. The fingerprints are saved in ~/.ssh/known_hosts, or ~/.ssh/known_hosts2 for SSH v2 fingerprints. By default, recent versions of the OpenSSH servers only accept SSH v2 connections. The client will use version 2 if possible and will fall back to version 1. The client can also be forced to use one or the other by passing it the or for version 1 or version 2, respectively. The version 1 compatibility is maintained in the client for backwards compatibility with older versions. Secure Copy OpenSSH secure copy scp The &man.scp.1; command works similarly to &man.rcp.1;; it copies a file to or from a remote machine, except in a secure fashion. &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT user@example.com's password: ******* COPYRIGHT 100% |*****************************| 4735 00:00 &prompt.root; Since the fingerprint was already saved for this host in the previous example, it is verified when using &man.scp.1; here. The arguments passed to &man.scp.1; are similar to &man.cp.1;, with the file or files in the first argument, and the destination in the second. Since the file is fetched over the network, through SSH, one or more of the file arguments takes on the form . Configuration OpenSSH configuration The system-wide configuration files for both the OpenSSH daemon and client reside within the /etc/ssh directory. ssh_config configures the client settings, while sshd_config configures the daemon. Additionally, the (/usr/sbin/sshd by default), and rc.conf options can provide more levels of configuration. ssh-keygen Instead of using passwords, &man.ssh-keygen.1; can be used to generate DSA or RSA keys to authenticate a user: &prompt.user; ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com &man.ssh-keygen.1; will create a public and private key pair for use in authentication. The private key is stored in ~/.ssh/id_dsa or ~/.ssh/id_rsa, whereas the public key is stored in ~/.ssh/id_dsa.pub or ~/.ssh/id_rsa.pub, respectively for DSA and RSA key types. The public key must be placed in ~/.ssh/authorized_keys of the remote machine in order for the setup to work. Similarly, RSA version 1 public keys should be placed in ~/.ssh/authorized_keys. This will allow connection to the remote machine based upon SSH keys instead of passwords. If a passphrase is used in &man.ssh-keygen.1;, the user will be prompted for a password each time in order to use the private key. &man.ssh-agent.1; can alleviate the strain of repeatedly entering long passphrases, and is explored in the section below. The various options and files can be different according to the OpenSSH version you have on your system; to avoid problems you should consult the &man.ssh-keygen.1; manual page. ssh-agent and ssh-add The &man.ssh-agent.1; and &man.ssh-add.1; utilities provide methods for SSH keys to be loaded into memory for use, without needing to type the passphrase each time. The &man.ssh-agent.1; utility will handle the authentication using the private key(s) that are loaded into it. &man.ssh-agent.1; should be used to launch another application. At the most basic level, it could spawn a shell or at a more advanced level, a window manager. To use &man.ssh-agent.1; in a shell, first it will need to be spawned with a shell as an argument. Secondly, the identity needs to be added by running &man.ssh-add.1; and providing it the passphrase for the private key. Once these steps have been completed the user will be able to &man.ssh.1; to any host that has the corresponding public key installed. For example: &prompt.user; ssh-agent csh &prompt.user; ssh-add Enter passphrase for /home/user/.ssh/id_dsa: Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) &prompt.user; To use &man.ssh-agent.1; in X11, a call to &man.ssh-agent.1; will need to be placed in ~/.xinitrc. This will provide the &man.ssh-agent.1; services to all programs launched in X11. An example ~/.xinitrc file might look like this: exec ssh-agent startxfce4 This would launch &man.ssh-agent.1;, which would in turn launch XFCE, every time X11 starts. Then once that is done and X11 has been restarted so that the changes can take effect, simply run &man.ssh-add.1; to load all of your SSH keys. SSH Tunneling OpenSSH tunneling OpenSSH has the ability to create a tunnel to encapsulate another protocol in an encrypted session. The following command tells &man.ssh.1; to create a tunnel for telnet: &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com &prompt.user; The ssh command is used with the following options: Forces ssh to use version 2 of the protocol. (Do not use if you are working with older SSH servers) Indicates no command, or tunnel only. If omitted, ssh would initiate a normal session. Forces ssh to run in the background. Indicates a local tunnel in localport:remotehost:remoteport fashion. The remote SSH server. An SSH tunnel works by creating a listen socket on localhost on the specified port. It then forwards any connection received on the local host/port via the SSH connection to the specified remote host and port. In the example, port 5023 on localhost is being forwarded to port 23 on localhost of the remote machine. Since 23 is telnet, this would create a secure telnet session through an SSH tunnel. This can be used to wrap any number of insecure TCP protocols such as SMTP, POP3, FTP, etc. Using SSH to Create a Secure Tunnel for SMTP &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com user@mailserver.example.com's password: ***** &prompt.user; telnet localhost 5025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mailserver.example.com ESMTP This can be used in conjunction with an &man.ssh-keygen.1; and additional user accounts to create a more seamless/hassle-free SSH tunneling environment. Keys can be used in place of typing a password, and the tunnels can be run as a separate user. Practical SSH Tunneling Examples Secure Access of a POP3 Server At work, there is an SSH server that accepts connections from the outside. On the same office network resides a mail server running a POP3 server. The network, or network path between your home and office may or may not be completely trustable. Because of this, you need to check your e-mail in a secure manner. The solution is to create an SSH connection to your office's SSH server, and tunnel through to the mail server. &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com user@ssh-server.example.com's password: ****** When the tunnel is up and running, you can point your mail client to send POP3 requests to localhost port 2110. A connection here will be forwarded securely across the tunnel to mail.example.com. Bypassing a Draconian Firewall Some network administrators impose extremely draconian firewall rules, filtering not only incoming connections, but outgoing connections. You may be only given access to contact remote machines on ports 22 and 80 for SSH and web surfing. You may wish to access another (perhaps non-work related) service, such as an Ogg Vorbis server to stream music. If this Ogg Vorbis server is streaming on some other port than 22 or 80, you will not be able to access it. The solution is to create an SSH connection to a machine outside of your network's firewall, and use it to tunnel to the Ogg Vorbis server. &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org user@unfirewalled-system.example.org's password: ******* Your streaming client can now be pointed to localhost port 8888, which will be forwarded over to music.example.com port 8000, successfully evading the firewall. The <varname>AllowUsers</varname> Users Option It is often a good idea to limit which users can log in and from where. The AllowUsers option is a good way to accomplish this. For example, to only allow the root user to log in from 192.168.1.32, something like this would be appropriate in the /etc/ssh/sshd_config file: AllowUsers root@192.168.1.32 To allow the user admin to log in from anywhere, just list the username by itself: AllowUsers admin Multiple users should be listed on the same line, like so: AllowUsers root@192.168.1.32 admin It is important that you list each user that needs to log in to this machine; otherwise they will be locked out. After making changes to /etc/ssh/sshd_config you must tell &man.sshd.8; to reload its config files, by running: &prompt.root; /etc/rc.d/sshd reload Further Reading OpenSSH &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; Tom Rhodes Contributed by ACL File System Access Control Lists In conjunction with file system enhancements like snapshots, FreeBSD 5.0 and later offers the security of File System Access Control Lists (ACLs). Access Control Lists extend the standard &unix; permission model in a highly compatible (&posix;.1e) way. This feature permits an administrator to make use of and take advantage of a more sophisticated security model. To enable ACL support for UFS file systems, the following: options UFS_ACL must be compiled into the kernel. If this option has not been compiled in, a warning message will be displayed when attempting to mount a file system supporting ACLs. This option is included in the GENERIC kernel. ACLs rely on extended attributes being enabled on the file system. Extended attributes are natively supported in the next generation &unix; file system, UFS2. A higher level of administrative overhead is required to configure extended attributes on UFS1 than on UFS2. The performance of extended attributes on UFS2 is also substantially higher. As a result, UFS2 is generally recommended in preference to UFS1 for use with access control lists. ACLs are enabled by the mount-time administrative flag, , which may be added to /etc/fstab. The mount-time flag can also be automatically set in a persistent manner using &man.tunefs.8; to modify a superblock ACLs flag in the file system header. In general, it is preferred to use the superblock flag for several reasons: The mount-time ACLs flag cannot be changed by a remount (&man.mount.8; ), only by means of a complete &man.umount.8; and fresh &man.mount.8;. This means that ACLs cannot be enabled on the root file system after boot. It also means that you cannot change the disposition of a file system once it is in use. Setting the superblock flag will cause the file system to always be mounted with ACLs enabled even if there is not an fstab entry or if the devices re-order. This prevents accidental mounting of the file system without ACLs enabled, which can result in ACLs being improperly enforced, and hence security problems. We may change the ACLs behavior to allow the flag to be enabled without a complete fresh &man.mount.8;, but we consider it desirable to discourage accidental mounting without ACLs enabled, because you can shoot your feet quite nastily if you enable ACLs, then disable them, then re-enable them without flushing the extended attributes. In general, once you have enabled ACLs on a file system, they should not be disabled, as the resulting file protections may not be compatible with those intended by the users of the system, and re-enabling ACLs may re-attach the previous ACLs to files that have since had their permissions changed, resulting in other unpredictable behavior. File systems with ACLs enabled will show a + (plus) sign in their permission settings when viewed. For example: drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html Here we see that the directory1, directory2, and directory3 directories are all taking advantage of ACLs. The public_html directory is not. Making Use of <acronym>ACL</acronym>s The file system ACLs can be viewed by the &man.getfacl.1; utility. For instance, to view the ACL settings on the test file, one would use the command: &prompt.user; getfacl test #file:test #owner:1001 #group:1001 user::rw- group::r-- other::r-- To change the ACL settings on this file, invoke the &man.setfacl.1; utility. Observe: &prompt.user; setfacl -k test The flag will remove all of the currently defined ACLs from a file or file system. The more preferable method would be to use as it leaves the basic fields required for ACLs to work. &prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test In the aforementioned command, the option was used to modify the default ACL entries. Since there were no pre-defined entries, as they were removed by the previous command, this will restore the default options and assign the options listed. Take care to notice that if you add a user or group which does not exist on the system, an Invalid argument error will be printed to stdout. Tom Rhodes Contributed by Portaudit Monitoring Third Party Security Issues In recent years, the security world has made many improvements to how vulnerability assessment is handled. The threat of system intrusion increases as third party utilities are installed and configured for virtually any operating system available today. Vulnerability assessment is a key factor in security, and while &os; releases advisories for the base system, doing so for every third party utility is beyond the &os; Project's capability. There is a way to mitigate third party vulnerabilities and warn administrators of known security issues. A &os; add on utility known as Portaudit exists solely for this purpose. The ports-mgmt/portaudit port polls a database, updated and maintained by the &os; Security Team and ports developers, for known security issues. To begin using Portaudit, one must install it from the Ports Collection: &prompt.root; cd /usr/ports/ports-mgmt/portaudit && make install clean During the install process, the configuration files for &man.periodic.8; will be updated, permitting Portaudit output in the daily security runs. Ensure the daily security run emails, which are sent to root's email account, are being read. No more configuration will be required here. After installation, an administrator can update the database and view known vulnerabilities in installed packages by invoking the following command: &prompt.root; portaudit -Fda The database will automatically be updated during the &man.periodic.8; run; thus, the previous command is completely optional. It is only required for the following examples. To audit the third party utilities installed as part of the Ports Collection at anytime, an administrator need only run the following command: &prompt.root; portaudit -a Portaudit will produce something like this for vulnerable packages: Affected package: cups-base-1.1.22.0_1 Type of problem: cups-base -- HPGL buffer overflow vulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately. By pointing a web browser to the URL shown, an administrator may obtain more information about the vulnerability in question. This will include versions affected, by &os; Port version, along with other web sites which may contain security advisories. In short, Portaudit is a powerful utility and extremely useful when coupled with the Portupgrade port. Tom Rhodes Contributed by FreeBSD Security Advisories &os; Security Advisories Like many production quality operating systems, &os; publishes Security Advisories. These advisories are usually mailed to the security lists and noted in the Errata only after the appropriate releases have been patched. This section will work to explain what an advisory is, how to understand it, and what measures to take in order to patch a system. What does an advisory look like? The &os; security advisories look similar to the one below, taken from the &a.security-notifications.name; mailing list. ============================================================================= &os;-SA-XX:XX.UTIL Security Advisory The &os; Project Topic: denial of service due to some problem Category: core Module: sys Announced: 2003-09-23 Credits: Person@EMAIL-ADDRESS Affects: All releases of &os; &os; 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) CVE Name: CVE-XXXX-XXXX For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit http://www.FreeBSD.org/security/. I. Background II. Problem Description III. Impact IV. Workaround V. Solution VI. Correction details VII. References The Topic field indicates exactly what the problem is. It is basically an introduction to the current security advisory and notes the utility with the vulnerability. The Category refers to the affected part of the system which may be one of core, contrib, or ports. The core category means that the vulnerability affects a core component of the &os; operating system. The contrib category means that the vulnerability affects software contributed to the &os; Project, such as sendmail. Finally the ports category indicates that the vulnerability affects add on software available as part of the Ports Collection. The Module field refers to the component location, for instance sys. In this example, we see that the module, sys, is affected; therefore, this vulnerability affects a component used within the kernel. The Announced field reflects the date said security advisory was published, or announced to the world. This means that the security team has verified that the problem does exist and that a patch has been committed to the &os; source code repository. The Credits field gives credit to the individual or organization who noticed the vulnerability and reported it. The Affects field explains which releases of &os; are affected by this vulnerability. For the kernel, a quick look over the output from ident on the affected files will help in determining the revision. For ports, the version number is listed after the port name in /var/db/pkg. If the system does not sync with the &os; CVS repository and rebuild daily, chances are that it is affected. The Corrected field indicates the date, time, time offset, and release that was corrected. Reserved for the identification information used to look up vulnerabilities in the Common Vulnerabilities Database system. The Background field gives information on exactly what the affected utility is. Most of the time this is why the utility exists in &os;, what it is used for, and a bit of information on how the utility came to be. The Problem Description field explains the security hole in depth. This can include information on flawed code, or even how the utility could be maliciously used to open a security hole. The Impact field describes what type of impact the problem could have on a system. For example, this could be anything from a denial of service attack, to extra privileges available to users, or even giving the attacker superuser access. The Workaround field offers a feasible workaround to system administrators who may be incapable of upgrading the system. This may be due to time constraints, network availability, or a slew of other reasons. Regardless, security should not be taken lightly, and an affected system should either be patched or the security hole workaround should be implemented. The Solution field offers instructions on patching the affected system. This is a step by step tested and verified method for getting a system patched and working securely. The Correction Details field displays the CVS branch or release name with the periods changed to underscore characters. It also shows the revision number of the affected files within each branch. The References field usually offers sources of other information. This can include web URLs, books, mailing lists, and newsgroups. Tom Rhodes Contributed by Process Accounting Process Accounting Process accounting is a security method in which an administrator may keep track of system resources used, their allocation among users, provide for system monitoring, and minimally track a user's commands. This indeed has its own positive and negative points. One of the positives is that an intrusion may be narrowed down to the point of entry. A negative is the amount of logs generated by process accounting, and the disk space they may require. This section will walk an administrator through the basics of process accounting. Enable and Utilizing Process Accounting Before making use of process accounting, it must be enabled. To do this, execute the following commands: &prompt.root; touch /var/account/acct &prompt.root; accton /var/account/acct &prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf Once enabled, accounting will begin to track CPU stats, commands, etc. All accounting logs are in a non-human readable format and may be viewed using the &man.sa.8; utility. If issued without any options, sa will print information relating to the number of per user calls, the total elapsed time in minutes, total CPU and user time in minutes, average number of I/O operations, etc. To view information about commands being issued, one would use the &man.lastcomm.1; utility. The lastcomm may be used to print out commands issued by users on specific &man.ttys.5;, for example: &prompt.root; lastcomm ls trhodes ttyp1 Would print out all known usage of the ls by trhodes on the ttyp1 terminal. Many other useful options exist and are explained in the &man.lastcomm.1;, &man.acct.5; and &man.sa.8; manual pages.
diff --git a/el_GR.ISO8859-7/books/handbook/txtfiles.ent b/el_GR.ISO8859-7/books/handbook/txtfiles.ent index 292bf40444..33126b4574 100644 --- a/el_GR.ISO8859-7/books/handbook/txtfiles.ent +++ b/el_GR.ISO8859-7/books/handbook/txtfiles.ent @@ -1,78 +1,85 @@ + + diff --git a/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml index 3733c9d3ea..6c2efc0e15 100644 --- a/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml @@ -1,802 +1,803 @@ Murray Stokely Συνεισφορά από τον Εικονικοποίηση Σύνοψη Το λογισμικό εικονικοποίησης επιτρέπει σε πολλαπλά λειτουργικά συστήματα να εκτελούνται ταυτόχρονα στον ίδιο υπολογιστή. Σε υπολογιστές PC το λογισμικό αυτό τυπικά χρησιμοποιεί ένα λειτουργικό ως ξενιστή (host) στο οποίο και εκτελείται, και το οποίο υποστηρίζει ένα οποιοδήποτε αριθμό από φιλοξενούμενα (guest) λειτουργικά. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: Τη διαφορά μεταξύ ενός ξενιστή (host) και ενός φιλοξενούμενου (guest) λειτουργικού. Πως να εγκαταστήσετε το &os; σε ένα &apple; &macintosh; υπολογιστή που βασίζεται σε &intel; αρχιτεκτονική. Πως να εγκαταστήσετε το &os; στο Linux με τη βοήθεια του &xen;. Πώς να εγκαταστήσετε το &os; κάτω από µsoft.windows; με το Virtual PC. Πως να βελτιστοποιήσετε ένα &os; σύστημα για την καλύτερη απόδοση σε περιβάλλον εικονικού μηχανήματος. Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει: Να έχετε κατανοήσει τις βασικές έννοιες του &unix; και του &os; (). Να γνωρίζετε πως θα εγκαταστήσετε το &os; (). Να γνωρίζετε πως θα ρυθμίσετε τη σύνδεση σας στο δίκτυο (). Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου κατασκευαστή (). Το &os; ως φιλοξενούμενο λειτουργικό Το Parallels σε MacOS Το Parallels Desktop για &mac; είναι ένα εμπορικό λογισμικό το οποίον είναι διαθέσιμο για υπολογιστές &apple; &mac; με επεξεργαστή &intel; και λειτουργικό &macos; 10.4.6 ή νεότερο. Το &os; παρέχει πλήρη υποστήριξη ως φιλοξενούμενο λειτουργικό. Όταν το Parallels έχει εγκατασταθεί στο &macos; X, ο χρήστης πρέπει να ρυθμίσει ένα εικονικό σύστημα και στη συνέχεια να εγκαταστήσει το φιλοξενούμενο λειτουργικό σύστημα που επιθυμεί. Εγκαθιστώντας το &os; στο Parallels/&macos; X Το πρώτο βήμα για την εγκατάσταση του &os; στο &macos; X/Parallels είναι να δημιουργήσετε ένα νέο εικονικό σύστημα για το &os;. Όταν ερωτηθείτε, επιλέξτε το &os; σαν το φιλοξενούμενο λειτουργικό (Guest OS) . Ορίστε ένα λογικό μέγεθος δίσκου και μνήμης που να ανταποκρίνεται στα σχέδια που έχετε για την εικονικοποίηση του &os;. 4GB δίσκος και 512MB μνήμης δουλεύουν μια χαρά για τους περισσότερους χρήστες του &os;μέσα από το Parallels: Επιλέξτε τον τύπο δικτύωσης και τον προσαρμογέα δικτύου: Αποθήκευση και τέλος των ρυθμίσεων: Όταν το εικονικό σύστημα έχει δημιουργηθεί, θα χρειαστεί να εγκαταστήσετε το ίδιο το &os;. Ο καλύτερος τρόπος για να γίνει η εγκατάσταση είναι με το επίσημο &os; CD-ROM ή με κάποιο αρχείο ISO, κατεβασμένο από τον επίσημο FTP τόπο. Όταν έχετε το κατάλληλο ISO στο σκληρό σας, ή το CD-ROM στον οδηγό CD, ενεργοποιήστε με το ποντίκι το εικονίδιο του CD στο κάτω δεξί μέρος της οθόνης του Parallels. Με αυτόν τον τρόπο θα μπορέσετε να ορίσετε την πηγή της εγκατάστασης. Μπορείτε να ορίσετε το CDROM ή κάποιο διαθέσιμο ISO αρχείο. Όταν έχετε αντιστοιχήσει τη πηγή εγκατάστασης, επανεκκινήστε το εικονικό σύστημα πατώντας απλά το κουμπί της επανεκκίνησης (reboot) του Parallels. To Parallels θα ξεκινήσει με ένα ειδικό BIOS το οποίο πρώτα ελέγχει εάν υπάρχει διαθέσιμο κάποιο CD-ROM, όπως κάνει και ένα φυσιολογικό BIOS. Σε αυτή τη περίπτωση θα βρει το μέσο εγκατάστασης του &os; και θα ξεκινήσει το sysinstall όπως περιγράφεται στο . Μπορείτε να εγκαταστήσετε το X11, αλλά μη δοκιμάσετε να ρυθμίσετε αυτή τη στιγμή. Όταν τελειώσετε με την εγκατάσταση, κάντε μια επανεκκίνηση στο φρέσκο εικονικό &os;. Ρυθμίζοντας το &os; στο &macos; X/Parallels Αφού έχει εγκατασταθεί επιτυχώς το &os; στο &macos; X με το Parallels, υπάρχουν μερικά βήματα ακόμη που μπορούν να σας βοηθήσουν να ρυθμίσετε το εικονικό σας σύστημα. Μεταβλητές του boot loader Το ποιο σημαντικό βήμα είναι να μειώσετε το μέγεθος του προκειμένου να αξιοποιήσετε τη CPU μέσα από το Parallels. Αυτό μπορεί να γίνει με το να προσθέσετε την ακόλουθη γραμμή στο /boot/loader.conf: kern.hz=100 Χωρίς αυτή τη ρύθμιση, ένα αδρανές &os; στο Parallels θα καταναλώνει το 15% της CPU ενός μονοπύρηνου &imac;. Μετά από την αλλαγή, η κατανάλωση θα πέσει κοντά στο 5%. Δημιουργία νέου αρχείου ρυθμίσεων του πυρήνα Μπορείτε να αφαιρέσετε όλες τους οδηγούς για SCSI, FireWire, και USB συσκευές. Το Parallels παρέχει ένα εικονικό προσαρμογέα δικτύου ο οποίος χρησιμοποιείται από τον οδηγό &man.ed.4;, οπότε όλοι οι οδηγοί για δικτυακές συσκευές εκτός των &man.ed.4; και &man.miibus.4; μπορούν να αφαιρεθούν από τον πυρήνα. Ρύθμιση δικτύου Η πιο απλή ρύθμιση δικτύου κάνει χρήση του DHCP για να συνδεθεί το εικονικό σας σύστημα στο ίδιο τοπικό δίκτυο με τον &mac;. Αυτό μπορεί εύκολα να γίνει με το να προσθέσετε τη γραμμή ifconfig_ed0="DHCP" στο /etc/rc.conf. Πολυπλοκότερες ρυθμίσεις δικτύου περιγράφονται στο κεφάλαιο . Fukang Chen (Loader) Συνεισφορά του &os; με &xen; στο Linux Το &xen; hypervisor είναι ένα προϊόν παρα-εικονικοποίησης (paravirtualization) ανοιχτού κώδικα το οποίο υποστηρίζεται από την εταιρεία XenSource. Τα φιλοξενούμενα λειτουργικά είναι γνωστά σαν domU domains, και ο ξενιστής σαν dom0. Το πρώτο βήμα για να τρέξετε ένα εικονικό σύστημα &os; μέσα από το Linux είναι να εγκαταστήσετε το &xen; για Linux dom0. Εμείς χρησιμοποιήσαμε ως ξενιστή της διανομή Slackware Linux. Εγκατάσταση &xen; 3 σε Linux dom0 Κατέβασμα &xen; 3.0 από XenSource Κατεβάστε xen-3.0.4_1-src.tgz from . Ξεπακετάρετε το tarball &prompt.root; cd xen-3.0.4_1-src &prompt.root; KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world &prompt.root; make install Για να μεταγλωττίσετε ξανά τον πυρήνα για το dom0: &prompt.root; cd xen-3.0.4_1-src/linux-2.6.16.33-xen0 &prompt.root; make menuconfig &prompt.root; make &prompt.root; make install Παλιές εκδόσεις του &xen; ίσως χρειάζονται να οριστεί το make ARCH=xen menuconfig Προσθήκη στη λίστα του Grub menu.lst Επεξεργαστείτε το /boot/grub/menu.lst και προσθέστε τις παρακάτω γραμμές: title Xen-3.0.4 root (hd0,0) kernel /boot/xen-3.0.4-1.gz dom0_mem=262144 module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro Επανεκκινήστε το σύστημά σας και φορτώστε το &xen; Αρχικά, επεξεργαστείτε το /etc/xen/xend-config.sxp, και προσθέστε τις παρακάτω γραμμές: (network-script 'network-bridge netdev=eth0') Στη συνέχεια, μπορούμε να τρέξουμε το &xen;: &prompt.root; /etc/init.d/xend start &prompt.root; /etc/init.d/xendomains start Το dom0 τρέχει: &prompt.root; xm list Name ID Mem VCPUs State Time(s) Domain-0 0 256 1 r----- 54452.9 &os; 7-CURRENT domU Κατεβάστε το &os; domU kernel για το &xen; 3.0 και την εικόνα δίσκο (disk image) από http://www.fsmware.com/ kernel-current mdroot-7.0.bz2 xmexample1.bsd Τοποθετήστε το αρχείο ρυθμίσεων xmexample1.bsd μέσα στο /etc/xen/ και αλλάξτε τα στοιχεία που σχετίζονται με το που βρίσκεται ο πυρήνας και η εικόνα δίσκου. Θα πρέπει να μοιάζει με το παρακάτω: kernel = "/opt/kernel-current" memory = 256 name = "freebsd" vif = [ '' ] disk = [ 'file:/opt/mdroot-7.0,hda1,w' ] #on_crash = 'preserve' extra = "boot_verbose" extra += ",boot_single" extra += ",kern.hz=100" extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a" Το αρχείο mdroot-7.0.bz2 θα πρέπει να είναι αποσυμπιεσμένο Στη συνέχεια, το __xen_guest που βρίσκεται στο kernel-current πρέπει να αλλάξει για να προστεθεί το VIRT_BASE που απαιτεί το &xen; 3.0.3: &prompt.root; objcopy kernel-current -R __xen_guest &prompt.root; perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp &prompt.root; objcopy kernel-current --add-section __xen_guest=tmp &prompt.root; objdump -j __xen_guest -s kernel-current kernel-current: file format elf32-i386 Contents of section __xen_guest: 0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G 0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd, 0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE 0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS 0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA 0050 53453d30 78433030 30303030 3000 SE=0xC0000000. Τώρα είμαστε έτοιμοι να δημιουργήσουμε και να εκκινήσουμε το domU: &prompt.root; xm create /etc/xen/xmexample1.bsd -c Using config file "/etc/xen/xmexample1.bsd". Started domain freebsd WARNING: loader(8) metadata is missing! Copyright (c) 1992-2006 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF WARNING: DIAGNOSTIC option enabled, expect reduced performance. Xen reported: 1796.927 MHz processor. Timecounter "ixen" frequency 1796927000 Hz quality 0 CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH, DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> Features2=0x4400<CNTX-ID,<b14>> real memory = 265244672 (252 MB) avail memory = 255963136 (244 MB) xc0: <Xen Console> on motherboard cpu0 on motherboard Timecounters tick every 10.000 msec [XEN] Initialising virtual ethernet driver. xn0: Ethernet address: 00:16:3e:6b:de:3a [XEN] Trying to mount root from ufs:/dev/xbd769a WARNING: / was not properly dismounted Loading configuration files. No suitable dump device was found. Entropy harvesting: interrupts ethernet point_to_point kickstart. Starting file system checks: /dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation) Setting hostname: demo.freebsd.org. lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 Additional routing options:. Mounting NFS file systems:. Starting syslogd. /etc/rc: WARNING: Dump device does not exist. Savecore not run. ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout Starting usbd. usb: Kernel module not available: No such file or directory Starting local daemons:. Updating motd. Starting sshd. Initial i386 initialization:. Additional ABI support: linux. Starting cron. Local package initialization:. Additional TCP options:. Starting background file system checks in 60 seconds. Sun Apr 1 02:11:43 UTC 2007 FreeBSD/i386 (demo.freebsd.org) (xc0) login: Το domU θα πρέπει να τρέχει τον πυρήνα &os; 7.0-CURRENT: &prompt.root; uname -a FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386 Τώρα μπορούμε να ρυθμίσουμε και το δίκτυο στο domU. Το &os; domU θα κάνει χρήση ενός ειδικού προσαρμογέα με όνομα xn0: &prompt.root; ifconfig xn0 10.10.10.200 netmask 255.0.0.0 &prompt.root; ifconfig xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500 inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255 ether 00:16:3e:6b:de:3a lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 Στο dom0 Slackware, κάποιa network interfaces που εξαρτώνται από το &xen; θα πρέπει τώρα να είναι διαθέσιμα: &prompt.root; ifconfig eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2 inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:815 errors:0 dropped:0 overruns:0 frame:0 TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:99 errors:0 dropped:0 overruns:0 frame:0 TX packets:99 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB) peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0 TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB) Base address:0xc000 Memory:ef020000-ef040000 vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1400 errors:0 dropped:0 overruns:0 frame:0 TX packets:815 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB) vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:157 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:140 (140.0 b) TX bytes:158 (158.0 b) xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:112 (112.0 b) TX bytes:0 (0.0 b) &prompt.root; brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no vif0.1 peth0 vif1.0 Το VMWare σε MacOS Το VMWare Fusion για &mac; είναι ένα εμπορικό πρόγραμμα. Υπάρχει διαθέσιμο για υπολογιστές &apple; &mac; αρχιτεκτονικής &intel; που τρέχουν &macos; 10.4.9 ή κάποια πιο πρόσφατη έκδοση. Το &os; υποστηρίζεται πλήρως ως φιλοξενούμενο (guest) λειτουργικό. Μόλις ολοκληρωθεί η εγκατάσταση του VMWare Fusion στο &macos; X, πρέπει να ρυθμίσετε μια εικονική μηχανή και να εγκαταστήσετε το φιλοξενούμενο λειτουργικό σύστημα. Εγκατάσταση του FreeBSD στο VMWare/&macos; X Αρχικά ξεκινήστε το VMWare Fusion, και θα φορτώσει η Συλλογή Εικονικών Μηχανών. Επιλέξτε "New" για να δημιουργήσετε μια νέα εικονική μηχανή: Θα δείτε να φορτώνει το New Virtual Machine Assistant, το βοηθητικό πρόγραμμα δημιουργίας μιας νέας εικονικής μηχανής. Επιλέξτε Continue για να συνεχίσετε: Στην επιλογή λειτουργικού συστήματος διαλέξτε Other και ως έκδοση λειτουργικού συστήματος διαλέξτε FreeBSD ή FreeBSD 64-bit (ανάλογα με το αν θέλετε υποστήριξη για 64-bit εφαρμογές ή όχι): Δώστε ένα όνομα για το VM Image και ρυθμίστε τον κατάλογο στον οποίο θέλετε να αποθηκευθεί: Ρυθμίστε το μέγεθος του Εικονικού Δίσκου για την εικονική μηχανή: Επιλέξτε μια μέθοδο εγκατάστασης για την εικονική μηχανή: είτε από ένα ISO image είτε από το CD-ROM: Μόλις επιλέξετε Finish, η εικονική μηχανή θα ξεκινήσει τη διαδικασία εκκίνησης (boot): Εγκαταστήστε το &os; όπως θα κάνατε και σε οποιοδήποτε άλλο υπολογιστή, ή ακολουθώντας τις οδηγίες από το : Μόλις ολοκληρωθεί η εγκατάσταση, μπορείτε να αλλάξετε τις ρυθμίσεις της εικονικής μηχανής, όπως π.χ. το μέγεθος μνήμης που θα χρησιμοποιεί: Οι ρυθμίσεις υλικού μιας εικονικής μηχανής δε μπορούν να αλλάξουν όσο τρέχει αυτή η εικονική μηχανή. Μπορείτε, ακόμη, να ρυθμίσετε τον αριθμό των επεξεργαστών τους οποίους επιτρέπεται να χρησιμοποιήσει αυτή η εικονική μηχανή: Ίσως έχει νόημα, επίσης, να αλλάξετε το αρχείο ή τη συσκευή που φαίνεται ως CD-ROM μέσα στην εικονική μηχανή. Συνήθως μπορείτε να αποσυνδέσετε το CD-ROM ή το ISO image από την εικονική μηχανή, αφού δε χρειάζεται πλέον όταν έχει ολοκληρωθεί η εγκατάσταση του &os;: Μια από τις τελευταίες ρυθμίσεις είναι η σύνδεση της εικονικής μηχανής με το δίκτυο. Για να μπορείτε να συνδεθείτε στην ΕΜ από άλλα μηχανήματα (εκτός του ξενιστή), ενεργοποιήστε την επιλογή Connect directly to the physical network (Bridged). Αλλιώς, για να μπορεί η ΕΜ να συνδεθεί στο δίκτυο μέσω του ξενιστή, αλλά να μη μπορούν άλλα μηχανήματα να συνδεθούν σε αυτή, ενεργοποιήστε την επιλογή Share the host's internet connection (NAT). Μόλις τελειώσετε με αυτές τις ρυθμίσεις, μπορείτε να εκκινήσετε τη νέα εικονική μηχανή με το φρεσκο-εγκατεστημένο &os; σας. Ρυθμίσεις του &os; μέσα στο &macos; X/VMWare Αφού τελειώσετε με την εγκατάσταση του &os; σε μια εικονική μηχανή VMWare μέσα σε &macos; X, πρέπει να κάνετε κάποιες ρυθμίσεις για να βελτιωθεί η απόδοση του &os; ως φιλοξενούμενου συστήματος. Ρυθμίσεις μεταβλητών του boot loader Η πιο σημαντική ρύθμιση είναι να μειώσετε την τιμή της μεταβλητής , για να μειωθεί κάπως η χρήση του επεξεργαστή από το &os; καθώς τρέχει μέσα στο VMWare. Προσθέστε, λοιπόν, την παρακάτω γραμμή στο αρχείο /boot/loader.conf: kern.hz=100 Χωρίς αυτή τη ρύθμιση ένα φιλοξενούμενο &os; που τρέχει μέσα σε VMWare μπορεί να χρησιμοποιεί μέχρι και 15% του επεξεργαστή ενός &imac;. Μετά από αυτή τη ρύθμιση η χρήση του επεξεργαστή μπορεί να είναι μικρότερη από 5%. Δημιουργήστε ένα νέο αρχείο ρυθμίσεων πυρήνα Μπορείτε να αφαιρέσετε όλες τις συσκευές FireWire και USB. Το VMWare παρέχει μια εικονική κάρτα δικτύου, η οποία είναι συμβατή με τον οδηγό &man.em.4;, οπότε μπορείτε να αφαιρέσετε όλες τις υπόλοιπες κάρτες δικτύου από τον πυρήνα σας. Ρυθμίστε το δίκτυο Ο πιο εύκολος τρόπος να ρυθμίσετε το δίκτυο της εικονικής μηχανής είναι να συνδεθείτε μέσω DHCP με το τοπικό δίκτυο, χρησιμοποιώντας τη διεύθυνση MAC του ξενιστή. Αυτό μπορεί να γίνει προσθέτοντας τη γραμμή ifconfig_em0="DHCP" στο αρχείο /etc/rc.conf. Για περισσότερες πληροφορίες και πιο προχωρημένες ρυθμίσεις δικτύου, δείτε το . To FreeBSD ως ξενιστής Το FreeBSD δεν υποστηρίζεται επίσημα από κάποιο πακέτο εικονικοποίησης σαν λειτουργικό ξενιστής, αλλά είναι αρκετοί αυτοί που τρέχουν παλιές εκδόσεις του VMware. Γίνεται επίσης προσπάθεια προκειμένου να δουλέψει το &xen; κάτω από το περιβάλλον του FreeBSD. diff --git a/el_GR.ISO8859-7/share/sgml/articles.ent b/el_GR.ISO8859-7/share/sgml/articles.ent index 462c53a5cf..4e97290c27 100644 --- a/el_GR.ISO8859-7/share/sgml/articles.ent +++ b/el_GR.ISO8859-7/share/sgml/articles.ent @@ -1,43 +1,44 @@ %l10n; %l10n-common; %man; %freebsd; %authors; %teams; %mailing-lists; %newsgroups; %trademarks; %urls; diff --git a/el_GR.ISO8859-7/share/sgml/bookinfo.ent b/el_GR.ISO8859-7/share/sgml/bookinfo.ent index 2bd65e85de..e98ce16a58 100644 --- a/el_GR.ISO8859-7/share/sgml/bookinfo.ent +++ b/el_GR.ISO8859-7/share/sgml/bookinfo.ent @@ -1,29 +1,30 @@ diff --git a/el_GR.ISO8859-7/share/sgml/books.ent b/el_GR.ISO8859-7/share/sgml/books.ent index 97496ba0cc..be2d25fd4c 100644 --- a/el_GR.ISO8859-7/share/sgml/books.ent +++ b/el_GR.ISO8859-7/share/sgml/books.ent @@ -1,68 +1,69 @@ %l10n; %l10n-common; %bookinfo; %translators; %mailing-lists; %teams; %newsgroups; %man; %bookinfo; %freebsd.el; %freebsd; %authors; %teams; %mailing-lists; %newsgroups; %trademarks; %urls.el; %urls; diff --git a/el_GR.ISO8859-7/share/sgml/freebsd.dsl b/el_GR.ISO8859-7/share/sgml/freebsd.dsl index 915741e454..307cc350b2 100644 --- a/el_GR.ISO8859-7/share/sgml/freebsd.dsl +++ b/el_GR.ISO8859-7/share/sgml/freebsd.dsl @@ -1,268 +1,276 @@ %freebsd.l10n; ]> (define %refentry-xref-link% #t) (define ($email-footer$) (make sequence (make element gi: "p" attributes: (list (list "align" "center")) (make element gi: "small" (literal "Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ") (create-link (list (list "HREF" "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/")) (literal "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/")) (literal "."))) (make element gi: "p" attributes: (list (list "align" "center")) (make element gi: "small" (literal "Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την ") (create-link (list (list "HREF" "http://www.FreeBSD.org/docs.html")) (literal "τεκμηρίωση")) (literal " πριν να επικοινωνήσετε με την <") (create-link (list (list "HREF" "mailto:questions@FreeBSD.org")) (literal "questions@FreeBSD.org")) (literal ">.") (make empty-element gi: "br") (literal "Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <") (create-link (list (list "HREF" "mailto:doc@FreeBSD.org")) (literal "doc@FreeBSD.org")) (literal ">."))))) (element quote (make sequence (make entity-ref name: "laquo") (process-children) (make entity-ref name: "raquo"))) ]]> number ;; then get the apparent level (substring renderas 4 5)) ;; from "renderas", (SECTLEVEL))) ;; else use the real level (hs (HSIZE (- 4 hlevel)))) (make sequence (make paragraph font-family-name: %title-font-family% font-weight: (if (< hlevel 5) 'bold 'medium) font-posture: (if (< hlevel 5) 'upright 'italic) font-size: hs line-spacing: (* hs %line-spacing-factor%) space-before: (* hs %head-before-factor%) space-after: (if (node-list-empty? subtitles) (* hs %head-after-factor%) 0pt) start-indent: (if (or (>= hlevel 3) (member (gi) (list (normalize "refsynopsisdiv") (normalize "refsect1") (normalize "refsect2") (normalize "refsect3")))) %body-start-indent% 0pt) first-line-start-indent: 0pt quadding: %section-title-quadding% keep-with-next?: #t heading-level: (if %generate-heading-level% (+ hlevel 1) 0) ;; SimpleSects are never AUTO numbered...they aren't hierarchical (if (> hlevel (- max-section-level-labels 1)) (empty-sosofo) (if (string=? (element-label (current-node)) "") (empty-sosofo) (literal (element-label (current-node)) (gentext-label-title-sep (gi sect))))) (element-title-sosofo (current-node))) (with-mode section-title-mode (process-node-list subtitles)) ($section-info$ info)))) ]]> (define (local-el-label-title-sep) (list (list (normalize "warning") ": ") (list (normalize "caution") ": ") (list (normalize "chapter") " ") (list (normalize "sect1") " ") (list (normalize "sect2") " ") (list (normalize "sect3") " ") (list (normalize "sect4") " ") (list (normalize "sect5") " ") )) + + diff --git a/el_GR.ISO8859-7/share/sgml/freebsd.ent b/el_GR.ISO8859-7/share/sgml/freebsd.ent index c545317104..348de96ee3 100644 --- a/el_GR.ISO8859-7/share/sgml/freebsd.ent +++ b/el_GR.ISO8859-7/share/sgml/freebsd.ent @@ -1,36 +1,38 @@ diff --git a/el_GR.ISO8859-7/share/sgml/glossary/freebsd-glossary.sgml b/el_GR.ISO8859-7/share/sgml/glossary/freebsd-glossary.sgml index e83560f375..a466aec1ad 100644 --- a/el_GR.ISO8859-7/share/sgml/glossary/freebsd-glossary.sgml +++ b/el_GR.ISO8859-7/share/sgml/glossary/freebsd-glossary.sgml @@ -1,1980 +1,1990 @@ Λεξικό του &os; Αυτό το λεξικό περιέχει όρους και ακρωνύμια που χρησιμοποιούνται από την κοινότητα κι από τα κείμενα της τεκμηρίωσης του &os;. A ACL ACPI AMD AML API APIC APM APOP ASL ATA ATM ACPI Machine Language AML Ψευδοκώδικας, που εκτελείται από ένα virtual machine σε κάθε λειτουργικό σύστημα συμβατό με το πρότυπο ACPI, παρέχοντας ένα τρόπο επικοινωνίας του υλικού με το τεκμηριωμένο interface το οποίο χρησιμοποιεί το ίδιο το λειτουργικό σύστημα. ACPI Source Language ASL Η γλώσσα προγραμματισμού με την οποία γράφεται η AML. Access Control List ACL Advanced Configuration and Power Interface ACPI Ένα πρότυπο το οποίο καθορίζει τον τρόπο επικοινωνίας του υλικού με το λειτουργικό σύστημα. Ο σκοπός ύπαρξης του ACPI είναι να μπορεί το ΛΣ να επικοινωνήσει με το υλικό ενός υπολογιστή και να εκμεταλλευτεί όσο το δυνατόν καλύτερα αυτό το υλικό, ακόμη κι αν δεν ξέρει τα πάντα γι αυτό. Το ACPI αποτελεί μετεξέλιξη των APM, PNPBIOS και αντίστοιχων τεχνολογιών, τις οποίες και αντικαθιστά. Το ACPI παρέχει τη δυνατότητα να ελέγξουμε την κατανάλωση ισχύος, την αναστολή λειτουργίας του συστήματος, την ενεργοποίηση και απενεργοποιήση συσκευών, κλπ. Application Programming Interface API Ένα σύνολο από διεργασίες, πρωτόκολα και εργαλεία που καθορίζουν τον αναγνωρισμένο τρόπο επικοινωνίας μεταξύ δύο ή περισσότερων τμημάτων λογισμικού. Σε αυτά περιλαμβάνονται πληροφορίες για το πως, πότε, και γιατί τα τμήματα αυτά λογισμικού θα συνεργάζονται, και τι είδους δεδομένα μπορούν να ανταλλάξουν, να μοιραστούν ή να επεξεργαστούν. Advanced Power Management APM Advanced Programmable Interrupt Controller APIC Advanced Technology Attachment ATA Asynchronous Transfer Mode ATM Authenticated Post Office Protocol APOP Automatic Mount Daemon AMD Μια υπηρεσία συστήματος η οποία υλοποιεί την αυτόματη προσάρτηση συστημάτων αρχείων όταν γίνεται προσπάθεια προσπέλασης ενός αρχείου ή καταλόγου που περιέχεται σε αυτά. B BAR BIND BIOS BSD Base Address Register BAR Οι καταχωρητές που καθορίζουν την αρχική διεύθυνση μνήμης στην οποία απαντά μια συσκευή PCI. Basic Input/Output System BIOS Ο ακριβής ορισμός του BIOS εξαρτάται λίγο και από τα συμφραζόμενα. Κάποιοι αναφέρονται σε αυτό ως το ROM chip που υλοποιεί βασικές λειτουργίες επικοινωνίας μεταξύ υλικού και λογισμικού. Άλλοι αναφέρονται σε αυτό ως ένα βασικό σετ από ρουτίνες για την εκκίνηση του συστήματος. Άλλες φορές ο όρος BIOS αναφέρεται στην οθόνη και το μενού με το οποίο ρυθμίζεται η διαδικασία εκκίνησης του συστήματος. Ο όρος BIOS αναφέρεται συνήθως για συστήματα PC, αλλά η λειτουργικότητα που υλοποιεί υπάρχει με παρόμοιο τρόπο και σε σχεδόν όλα τα άλλα συστήματα. Berkeley Internet Name Domain BIND Μια υλοποίηση του πρωτοκόλου DNS. Berkeley Software Distribution BSD Αυτό είναι το όνομα που έδωσε το Computer Systems Research Group (CSRG) στο Πανεπιστήμιο της Καλιφόρνια στο Berkeley στις βελτιώσεις και μεταβολές που έκανε στο &unix; 32V της A&T. Το &os; είναι ένας απόγονος της δουλειάς του CSRG. Bikeshed Building Ένα φαινόμενο κατά τη διάρκεια του οποίου πολύς κόσμος λέει τη γνώμη του για ένα αδιάφορο ή ασήμαντο θέμα, ενώ την ίδια στιγμή ένα πολύπλοκο (αρχικό) θέμα μένει εκτός ενδιαφέροντος. Δείτε και τη λίστα FAQ του &os; για την καταγωγή του όρου. C CD CHAP CLIP COFF CPU CTS CVS Carrier Detect CD Ένα σήμα RS232C που υποδεικνύει ότι ανιχνεύθηκε φέρον σήμα (carrier). Central Processing Unit CPU Η μονάδα που είναι γνωστή και ως επεξεργαστής. Αυτή είναι ο εγκέφαλος ενός υπολογιστή, στον οποίο γίνονται όλοι οι υπολογισμοί. Υπάρχουν πολλές αρχιτεκτονικές σχεδίασης επεξεργαστών, με διάφορα σύνολο εντολών. Οι πιο γνωστές είναι οι αρχιτεκτονικές Intel-x86 και οι παράγωγές της, η Sun SPARC, η PowerPC και η Alpha. Challenge Handshake Authentication Protocol CHAP Classical IP over ATM CLIP Clear To Send CTS Ένα σήμα RS232C που δίνει άδεια στο απομακρυσμένο σύστημα να στείλει δεδομένα. Common Object File Format COFF Concurrent Versions System CVS Ένα σύστημα διαχείρισης εκδόσεων αρχείων (version control system). Παρέχει τη δυνατότητα να επεξεργαζόμαστε και να κρατάμε ιστορικό αλλαγών για πολλές εκδόσεις ενός συνόλου αρχείων. Το CVS παρέχει τη δυνατότητα να εξάγουμε, να συγχωνεύσουμε (merge) και να αναιρέσουμε (revert) οποιαδήποτε αλλαγή ή ομάδα αλλαγών. Επίσης μας δίνει τη δυνατότητα να κρατάμε ιστορικό κάθε αλλαγής, με πληροφορίες όπως ποιές αλλαγές έχουν γίνει, από ποιόν, πότε και γιατί. D DAC DDB DES DHCP DNS DSDT DSR DTR DVMRP Discretionary Access Control DAC Data Encryption Standard DES Μια μέθοδος κρυπτογράφησης πληροφορίας, η οποία παλιότερα αποτελούσε τη βασική μέθοδο κρυπτογράφησης των κωδικών (passwords) στο &unix; και από την συνάρτηση &man.crypt.3;. Data Set Ready DSR Ένα σήμα RS232C το οποίο στέλνεται από το modem στον υπολογιστή ή το τερματικό, ως ένδειξη της ετοιμότητας για λήψη ή αποστολή δεδομένων. Data Terminal Ready DTR Ένα σήμα RS232C το οποίο στέλνεται από τον υπολογιστή ή το τερματικό στο modem, ως ένδειξη της ετοιμότητα για λήψη ή αποστολή δεδομένων. Debugger DDB Ένα διαδραστικό (interactive) υποσύστημα του πυρήνα, το οποίο παρέχει εργαλεία για εξέταση της κατάστασης του συστήματος. Συχνά χρησιμοποιείται αφού το σύστημα έχει σταματήσει να λειτουργεί κανονικά, για να καταλάβουμε όσο περισσότερα πράγματα μπορούμε σχετικά με τις αιτίες του προβλήματος. Differentiated System Description Table DSDT Distance-Vector Multicast Routing Protocol DVMRP Domain Name System DNS Το σύστημα που μετατρέπει το ευανάγνωστο, συμβολικό όνομα κάθε μηχανήματος (hostname), όπως π.χ. το mail.example.net, στην αριθμητική διεύθυνση Internet που του αντιστοιχεί και το ανάποδο. Dynamic Host Configuration Protocol DHCP Ένα σύστημα δυναμικής ανάθεσης διευθύνσεων IP. Κάθε υπολογιστής (host) μπορεί να ζητήσει μια διεύθυνση IP από έναν εξυπηρετητή DHCP. Η ανάθεση της διεύθυνσης λέγεται και lease. E ECOFF ELF ESP Encapsulated Security Payload ESP Executable and Linking Format ELF Extended COFF ECOFF F FADT FAT FAT16 FTP File Allocation Table FAT File Allocation Table (16-bit) FAT16 File Transfer Protocol FTP Ένα μέλος της οικογένειας πρωτοκόλων υψηλού επιπέδου, τα οποία έχουν υλοποιηθεί με βάση το TCP για τη μεταφορά αρχείων σε ένα δίκτυο TCP/IP. Fixed ACPI Description Table FADT G GUI Giant Το όνομα ενός μηχανισμού αμοιβαίου αποκλεισμού (ένα sleep mutex) που προστατεύει ένα μεγάλο μέρος των πηγών του πυρήνα. Παρόλο που ένας τέτοιος απλός μηχανισμός ήταν αρκετός σε παλιότερες εποχές, που ένα μηχάνημα μπορεί να έτρεχε το πολύ μερικές δεκάδες διεργασίες, να είχε μια κάρτα δικτύου και φυσικά μόνο ένα επεξεργαστή, σήμερα πλέον αποτελεί πηγή απαράδεκτης καθυστέρησης. Η ομάδα ανάπτυξης του &os; εργάζεται σκληρά για να αντικαταστήσει το Giant με πιο μοντέρνους, λεπτούς μηχανισμούς αμοιβαίου αποκλεισμού, οι οποίοι θα επιτρέπουν μεγαλύτερο βαθμό παραλληλισμού τόσο σε μηχανήματα με ένα όσο και σε σταθμούς εργασίας με πολλούς επεξεργαστές. Graphical User Interface GUI Ένα διαδραστικό σύστημα επικοινωνίας μεταξύ ανθρώπου και μηχανής, βασισμένο σε εικόνες (graphics). H HTML HUP HangUp HUP HyperText Markup Language HTML Η γλώσσα περιγραφής κειμένου (markup language) που χρησιμοποιείται για τη δημιουργία ιστοσελίδων (web pages). I I/O IASL IMAP IP IPFW IPP IPv4 IPv6 ISP IP Firewall IPFW IP Version 4 IPv4 The IP protocol version 4, which uses 32 bits for addressing. This version is still the most widely used, but it is slowly being replaced with IPv6. IP Version 6 IPv6 The new IP protocol. Invented because the address space in IPv4 is running out. Uses 128 bits for addressing. Input/Output I/O Intel’s ASL compiler IASL Intel’s compiler for converting ASL into AML. Internet Message Access Protocol IMAP A protocol for accessing email messages on a mail server, characterised by the messages usually being kept on the server as opposed to being downloaded to the mail reader client. Internet Printing Protocol IPP Internet Protocol IP The packet transmitting protocol that is the basic protocol on the Internet. Originally developed at the U.S. Department of Defense and an extremly important part of the TCP/IP stack. Without the Internet Protocol, the Internet would not have become what it is today. For more information, see RFC 791. Internet Service Provider ISP A company that provides access to the Internet. K KAME Japanese for turtle, the term KAME is used in computing circles to refer to the KAME Project, who work on an implementation of IPv6. KDC KLD KSE KVA Kbps Kernel &man.ld.1; KLD A method of dynamically loading functionality into a &os; kernel without rebooting the system. Kernel Scheduler Entities KSE Ένας μηχανισμός του πυρήνα για υποστήριξη πολυνηματικής επεξεργασίας. Δείτε τη σελίδα της ομάδας εργασίας των KSE για περισσότερες λεπτομέρειες. Kernel Virtual Address KVA Key Distribution Center KDC Kilo Bits Per Second Kbps Used to measure bandwith (how much data can pass a given point at a specified amount of time). Alternates to the Kilo prefix include Mega, Giga, Tera, and so forth. L LAN LOR LPD Line Printer Daemon LPD Local Area Network LAN A network used on a local area, e.g. office, home, or so forth. Lock Order Reversal LOR Ο πυρήνας του &os; χρησιμοποιεί ένα αριθμό από resource locks για να διαχειρίζεται την πρόσβαση στις διάφορες πηγές του. Ένας μηχανισμός διάγνωσης προβλημάτων με αυτά τα locks, ο οποίος λέγεται &man.witness.4;, περιλαμβάνεται στους πειραματικούς πυρήνες (αλλά αφαιρείται από τους πυρήνες των σταθερών εκδόσεων) κι ελέγχει κατά την ώρα λειτουργίας του πυρήνα την πιθανότητα προβλήματων deadlock. (Ο μηχανισμός &man.witness.4; είναι βασικά αρκετά συντηρητικός στους ελέγχους που κάνει, οπότε είναι πιθανόν κάποια από τα διαγνωστικά μηνύματά του να είναι υπερβολικά.) Ένα διαγνωστικό μήνυμα από το μηχανισμό αυτό σημαίνει ότι αν είστε αρκετά άτυχοι, ένα deadlock μπορεί να συμβεί στο σημείο αυτό. Τα πραγματικά LOR, συνήθως, διορθώνονται γρήγορα, οπότε να ελέγχετε τη &a.current.url; και τη σελίδα των LOR που είναι γνωστά μέχρι σήμερα πριν στείλετε μήνυμα σε κάποια από τις λίστες ηλεκτρονικού ταχυδρομείου. M MAC MADT MFC MFP4 MFS MIT MLS MOTD MTA MUA Mail Transfer Agent MTA An application used to transfer email. An MTA has traditionally been part of the BSD base system. Today Sendmail is included in the base system, but there are many other MTAs, such as postfix, qmail and Exim. Mail User Agent MUA An application used by users to display and write email. Mandatory Access Control MAC Massachusetts Institute of Technology MIT Merge From Current MFC To merge functionality or a patch from the -CURRENT branch to another, most often -STABLE. Merge From Perforce MFP4 To merge functionality or a patch from the Perforce repository to the -CURRENT branch. Merge From Stable MFS Η φυσιολογική διαδικασία ανάπτυξης του FreeBSD βασίζεται στο ότι κάθε αλλαγή γίνεται πρώτα στο -CURRENT branch για να δοκιμαστεί πριν ενσωματωθεί στο -STABLE. Μόνο σε πολύ ειδικές περιπτώσεις γίνεται κάποια αλλαγή πρώτα στο -STABLE και μετά στο -CURRENT. Ο ίδιος όρος χρησιμοποιείται όταν μια αλλαγή μεταφέρεται από το -STABLE branch σε κάποιο από τα security branches. Message Of The Day MOTD A message, usually shown on login, often used to distribute information to users of the system. Multi-Level Security MLS Multiple APIC Description Table MADT N NAT NDISulator NFS NTFS NTP Network Address Translation NAT Network File System NFS New Technology File System NTFS A filesystem developed by Microsoft and available in its New Technology operating systems, such as &windows2k;, &windowsnt; and &windowsxp;. Network Time Protocol NTP O OBE ODMR OS On-Demand Mail Relay ODMR Operating System OS A set of programs, libraries and tools that provide access to the hardware resources of a computer. Operating systems range today from simplistic designs that support only one program running at a time, accessing only one device to fully multi-user, multi-tasking and multi-process systems that can serve thousands of users simultaneously, each of them running dozens of different applications. Overtaken By Events OBE Χρησιμοποιείται για να περιγράψει μια προτεινόμενη αλλαγή (όπως μια Αναφορά Προβλήματος ή μια αίτηση για κάποιο νέο χαρακτηριστικό) που δεν ισχύει πλέον ή δεν έχει αξία λόγω κάποιας πρόσφατης αλλαγής στο &os;, αλλαγές σε κάποιο πρότυπο, επειδή το σχετικό υλικό θεωρείται πλέον ξεπερασμένο, κλπ. P p4 PAE PAM PAP PC PCNSFD PDF PID POLA POP POP3 PPD PPP PPPoA PPPoE PPP over ATM PPPoA PPP over Ethernet PPPoE PR PXE Password Authentication Protocol PAP Perforce A source code control product made by Perforce Software which is more advanced than CVS. Although not open source, its use is free of charge to open-source projects such as &os;. Some &os; developers use a Perforce repository as a staging area for code that is considered too experimental for the -CURRENT branch. Personal Computer PC Personal Computer Network File System Daemon PCNFSD Physical Address Extensions PAE A method of enabling access to up to 64 GB of RAM on systems which only physically have a 32-bit wide address space (and would therefore be limited to 4 GB without PAE). Pluggable Authentication Modules PAM Point-to-Point Protocol PPP Pointy Hat Ένα μυθικό σχεδόν καπέλο, που μοιάζει πολύ με ένα dunce cap, το οποίο χαρίζεται στα μέλη της ομάδας ανάπτυξης του &os; όταν δημιουργούν προβλήματα με τη μεταγλώττιση του &os;, όταν κάνουν αλλαγές που δεν χρειάζονται, ή γενικά σε οποιαδήποτε περίπτωση προκαλούν προβλήματα στον κώδικα. Γενικά, όλα τα μέλη της ομάδας ανάπτυξης που κάνουν πραγματικά δουλειά μαζεύουν σχετικά σύντομα μια μεγάλη συλλογή από αυτά τα καπελάκια. Η χρήση του όρου είναι (σχεδόν πάντοτε) χιουμοριστική. Portable Document Format PDF Post Office Protocol POP Post Office Protocol Version 3 POP3 A protocol for accessing email messages on a mail server, characterised by the messages usually being downloaded from the server to the client, as opposed to remaining on the server. PostScript Printer Description PPD Preboot eXecution Environment PXE Principle Of Least Astonishment POLA Καθώς αναπτύσσεται το &os; οι αλλαγές που είναι ορατές στον τελικό χρήστη πρέπει να προκαλούν όσο το δυνατόν μικρότερες και λιγότερες εκπλήξεις. Για παράδειγμα, η άσκοπη μετονομασία μεταβλητών που επηρεάζουν την έναρξη του συστήματος στο αρχείο /etc/defaults/rc.conf θεωρείται παραβίαση του POLA. Τα μέλη της ομάδας ανάπτυξης έχουν κατά νου τους το POLA όταν κάνουν αλλαγές στο σύστημα οι οποίες επηρεάζουν τον τελικό χρήστη. Problem Report PR A description of some kind of problem that has been found in either the &os; source or documentation. See Writing &os; Problem Reports. Process ID PID A number, unique to a particular process on a system, which identifies it and allows actions to be taken against it. Project Evil Ο πραγματικός τίτλος του NDISulator που έγραψε ο Bill Paul, ο οποίος το ονόμασε έτσι για να δείξει πόσο απαίσιο είναι (από φιλοσοφικής άποψης) να υπάρχει η ανάγκη για κάτι τέτοιο. Το NDISulator είναι ένα ειδικό module συμβατότητας το οποίο επιτρέπει σε οδηγούς συσκευών δικτύου τύπου Microsoft Windows™ NDIS miniport να χρησιμοποιηθούν στο &os;/i386. Αυτός είναι συνήθως ο μόνος τρόπος να χρησιμοποιηθούν κάρτες δικτύου των οποίων οι οδηγοί δεν είναι διαθέσιμοι σε μορφή ελεύθερου ή ανοιχτού λογισμικού. Δείτε και το αρχείο src/sys/compat/ndis/subr_ndis.c για περισσότερες λεπτομέρειες. R RA RAID RAM RD RFC RISC RPC RS232C RTS Random Access Memory RAM Received Data RD An RS232C pin or wire that data is recieved on. Recommended Standard 232C RS232C A standard for communications between serial devices. Reduced Instruction Set Computer RISC An approach to processor design where the operations the hardware can perform are simplified but made as general purpose as possible. This can lead to lower power consumption, fewer transistors and in some cases, better performance and increased code density. Examples of RISC processors include the Alpha, &sparc;, &arm; and &powerpc;. Redundant Array of Inexpensive Disks RAID Remote Procedure Call RPC repocopy Repository Copy A direct copying of files within the CVS repository. Without a repocopy, if a file needed to be copied or moved to another place in the repository, the committer would run cvs add to put the file in its new location, and then cvs rm on the old file if the old copy was being removed. The disadvantage of this method is that the history (i.e. the entries in the CVS logs) of the file would not be copied to the new location. As the &os; Project considers this history very useful, a repository copy is often used instead. This is a process where one of the repository meisters will copy the files directly within the repository, rather than using the &man.cvs.1; program. Request For Comments RFC A set of documents defining Internet standards, protocols, and so forth. See www.rfc-editor.org. Also used as a general term when someone has a suggested change and wants feedback. Request To Send RTS An RS232C signal requesting that the remote system commences transmission of data. Router Advertisement RA S SCI SCSI SG SMB SMP SMTP SMTP AUTH SSH STR SMTP Authentication SMTP AUTH Server Message Block SMB Signal Ground SG An RS232 pin or wire that is the ground reference for the signal. Simple Mail Transfer Protocol SMTP Secure Shell SSH Small Computer System Interface SCSI Suspend To RAM STR Symmetric MultiProcessor SMP System Control Interrupt SCI T TCP TCP/IP TD TFTP TGT TSC Ticket-Granting Ticket TGT Time Stamp Counter TSC A profiling counter internal to modern &pentium; processors that counts core frequency clock ticks. Transmission Control Protocol TCP A protocol that sits on top of (e.g.) the IP protocol and guarantees that packets are delivered in a reliable, ordered, fashion. Transmission Control Protocol/Internet Protocol TCP/IP The term for the combination of the TCP protocol running over the IP protocol. Much of the Internet runs over TCP/IP. Transmitted Data TD An RS232C pin or wire that data is transmitted on. Trivial FTP TFTP U UDP UFS1 UFS2 UID URL USB Uniform Resource Locator URL Unix File System Version 1 UFS1 Unix File System Version 2 UFS2 Universal Serial Bus USB User ID UID A unique number assigned to each user of a computer, by which the resources and permissions assigned to that user can be identified. User Datagram Protocol UDP V VPN Virtual Private Network VPN + + diff --git a/el_GR.ISO8859-7/share/sgml/l10n.ent b/el_GR.ISO8859-7/share/sgml/l10n.ent index d339f4919d..38cc76ec61 100644 --- a/el_GR.ISO8859-7/share/sgml/l10n.ent +++ b/el_GR.ISO8859-7/share/sgml/l10n.ent @@ -1,30 +1,31 @@ diff --git a/el_GR.ISO8859-7/share/sgml/legalnotice.sgml b/el_GR.ISO8859-7/share/sgml/legalnotice.sgml index 070d92e7e1..6f2e2f582b 100644 --- a/el_GR.ISO8859-7/share/sgml/legalnotice.sgml +++ b/el_GR.ISO8859-7/share/sgml/legalnotice.sgml @@ -1,62 +1,63 @@ Η διανομή και χρήση σε μορφή πηγαίου κώδικα (SGML DocBook) ή σε 'μεταγλωττισμένη' μορφή (SGML, HTML, PDF, PostScript, RTF κοκ) με ή χωρίς αλλαγές, επιτρέπεται εφόσον οι παρακάτω προϋποθέσεις τηρούνται: Η διανομή σε μορφή πηγαίου κώδικα (SGML DocBook) πρέπει να διατηρεί την παραπάνω δήλωση πνευματικών δικαιωμάτων, αυτή τη λίστα με προϋποθέσεις και την επόμενη παράγραφο στις πρώτες γραμμές του αρχείου, αμετάβλητες. Η διανομή σε μεταγλωττισμένες μορφές (μετάφραση σε άλλα DTD, μετατροπή σε PDF, PostScript, RTF ή άλλες μορφές) πρέπει να αναπαράγει την παραπάνω δήλωση πνευματικών δικαιωμάτων, αυτή τη λίστα με προϋποθέσεις, και την παρακάτω παράγραφο τόσο στην τεκμηρίωση όσο και σε άλλο υλικό που παρέχεται μαζί με την διανομή. ΑΥΤΗ Η ΤΕΚΜΗΡΙΩΣΗ ΔΙΝΕΤΑΙ ΑΠΟ ΤΗΝ ΟΜΑΔΑ ΤΕΚΜΗΡΙΩΣΗΣ ΤΟΥ FREEBSD "ΩΣ ΕΧΕΙ" ΚΑΙ ΔΕΝ ΠΑΡΕΧΕΤΑΙ ΚΑΜΙΑ ΑΜΕΣΗ Η ΕΜΜΕΣΗ ΕΓΓΥΗΣΗ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΑΛΛΑ ΧΩΡΙΣ ΝΑ ΠΕΡΙΟΡΙΖΕΤΑΙ ΜΟΝΟ ΣΕ ΑΥΤΕΣ, ΚΑΙ ΤΩΝ ΕΜΜΕΣΩΝ ΕΓΓΥΗΣΕΩΝ ΓΙΑ ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑ Η ΚΑΤΑΛΛΗΛΟΤΗΤΑ ΓΙΑ ΟΠΟΙΟΝΔΗΠΟΤΕ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ. ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΔΕΝ ΕΥΘΥΝΕΤΑΙ Η ΟΜΑΔΑ ΤΕΚΜΗΡΙΩΣΗΣ ΤΟΥ FREEBSD ΓΙΑ ΟΠΟΙΕΣΔΗΠΟΤΕ ΑΜΕΣΕΣ, ΕΜΜΕΣΕΣ, ΤΥΧΑΙΕΣ, ΕΙΔΙΚΕΣ, ΣΗΜΑΝΤΙΚΕΣ, Η ΚΑΤΑ ΠΕΡΙΠΤΩΣΗ ΒΛΑΒΕΣ (ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΑΛΛΑ ΧΩΡΙΣ ΝΑ ΠΕΡΙΟΡΙΖΕΤΑΙ ΜΟΝΟ ΣΕ ΑΥΤΕΣ, ΚΑΙ ΤΗΝ ΑΔΥΝΑΜΙΑ ΠΡΟΣΒΑΣΗΣ ΣΕ ΕΝΑΛΛΑΚΤΙΚΕΣ ΠΗΓΕΣ Η ΥΠΗΡΕΣΙΕΣ, ΤΗΝ ΑΔΥΝΑΜΙΑ ΧΡΗΣΗΣ, ΤΗΝ ΑΠΩΛΕΙΑ ΔΕΔΟΜΕΝΩΝ Η ΚΕΡΔΟΥΣ, ΚΑΙ ΤΗΝ ΔΙΑΚΟΠΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΛΕΙΤΟΥΡΓΙΩΝ), ΠΟΥ ΠΡΟΚΑΛΟΥΝΤΑΙ ΜΕ ΟΠΟΙΟΔΗΠΟΤΕ ΤΡΟΠΟ ΑΠΟ ΤΗ ΧΡΗΣΗ ΑΥΤΗΣ ΤΗΣ ΤΕΚΜΗΡΙΩΣΗΣ. diff --git a/el_GR.ISO8859-7/share/sgml/mailing-lists.ent b/el_GR.ISO8859-7/share/sgml/mailing-lists.ent index d251f57bad..7a1803ba0c 100644 --- a/el_GR.ISO8859-7/share/sgml/mailing-lists.ent +++ b/el_GR.ISO8859-7/share/sgml/mailing-lists.ent @@ -1,518 +1,519 @@ εξυπηρετητής για ηλεκτρονικές λίστες του FreeBSD"> &a.mailman.listinfo;"> ηλεκτρονική λίστα για ACPI του FreeBSD"> freebsd-acpi"> ηλεκτρονική λίστα διαφήμισης και προώθησης του FreeBSD"> freebsd-advocacy"> ηλεκτρονική λίστα υλοποίησης του AFS στο FreeBSD"> freebsd-afs"> ηλεκτρονική λίστα του FreeBSD για ελεγκτές Adaptec AIC7xxx"> freebsd-aic7xxx"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα Alpha"> freebsd-alpha"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα AMD64"> freebsd-amd64"> ηλεκτρονική λίστα ανακοινώσεων του FreeBSD"> freebsd-announce"> ηλεκτρονική λίστα του FreeBSD για το Apache"> freebsd-apache"> ηλεκτρονική λίστα αρχιτεκτονικής και σχεδιασμού του FreeBSD"> freebsd-arch"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα ARM"> freebsd-arm"> ηλεκτρονική λίστα του FreeBSD για δίκτυα ATM"> freebsd-atm"> ηλεκτρονική λίστα ελέγχου πηγαίου κώδικα του FreeBSD"> freebsd-audit"> ηλεκτρονική λίστα αναβάθμισης του FreeBSD με εκτελέσιμα αρχεία"> freebsd-binup"> ηλεκτρονική λίστα του FreeBSD για Bluetooth"> freebsd-bluetooth"> ηλεκτρονική λίστα της ομάδας bugbusters του FreeBSD"> freebsd-bugbusters"> ηλεκτρονική λίστα αναφορών προβλημάτων του FreeBSD"> freebsd-bugs"> ηλεκτρονική λίστα γενικών συζητήσεων του FreeBSD"> freebsd-chat"> ηλεκτρονική λίστα παράλληλων συστημάτων του FreeBSD"> freebsd-cluster"> ηλεκτρονική λίστα της έκδοσης &os.current;"> freebsd-current"> ανακοινώσεις CTM"> ctm-announce"> διανομή μέσω CTM των αρχείων του CVS"> ctm-cvs-cur"> ηλεκτρονική λίστα διανομής του 4-STABLE μέσω CTM"> ctm-src-4"> ηλεκτρονική λίστα διανομής του -CURRENT μέσω CTM"> ctm-src-cur"> ηλεκτρονική λίστα γενικών συζητήσεων των χρηστών του CTM"> ctm-users"> ηλεκτρονική λίστα μηνυμάτων CVS commit του FreeBSD CVS"> cvs-all"> ηλεκτρονική λίστα μηνυμάτων CVS commit τεκμηρίωσης του FreeBSD"> cvs-doc"> ηλεκτρονική λίστα μηνυμάτων CVS commit των FreeBSD ports"> cvs-ports"> ηλεκτρονική λίστα μηνυμάτων CVS commit των projects του FreeBSD"> cvs-projects"> ηλεκτρονική λίστα μηνυμάτων CVS commit πηγαίου κώδικα του FreeBSD"> cvs-src"> ηλεκτρονική λίστα συντήρησης του CVSweb του FreeBSD"> freebsd-cvsweb"> ηλεκτρονική λίστα βάσεων δεδομένων βασισμένων στο FreeBSD"> freebsd-database"> ηλεκτρονική λίστα ομάδας τεκμηρίωσης του FreeBSD"> freebsd-doc"> ηλεκτρονική λίστα για την ανάπτυξη οδηγών συσκευών του FreeBSD"> freebsd-drivers"> ηλεκτρονική λίστα του FreeBSD για τους χρήστες του Eclipse IDE"> freebsd-eclipse"> ηλεκτρονική λίστα του FreeBSD για τις embedded πλατφόρμες"> freebsd-embedded"> ηλεκτρονική λίστα του FreeBSD για εξομοίωση-εξομοιωτές"> freebsd-emulation"> ηλεκτρονική λίστα FreeBSD-eol"> freebsd-eol"> ηλεκτρονική λίστα συζητήσεων για FireWire (IEEE 1394) του FreeBSD"> freebsd-firewire"> ηλεκτρονική λίστα του FreeBSD για συστήματα αρχείων"> freebsd-fs"> ηλεκτρονική λίστα του FreeBSD για το GEOM"> freebsd-geom"> ηλεκτρονική λίστα του FreeBSD για το GNOME και τις εφαρμογές του"> freebsd-gnome"> ηλεκτρονική λίστα τεχνικών συζητήσεων του FreeBSD"> freebsd-hackers"> ηλεκτρονική λίστα του FreeBSD για υλικό κι εξαρτήματα υπολογιστών"> freebsd-hardware"> ηλεκτρονική λίστα των mirror sites του FreeBSD"> freebsd-hubs"> ηλεκτρονική λίστα διεθνοποίησης του FreeBSD"> freebsd-i18n"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα i386"> freebsd-i386"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα IA32"> freebsd-ia32"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα IA64"> freebsd-ia64"> ηλεκτρονική λίστα του FreeBSD για το IPFW"> freebsd-ipfw"> ηλεκτρονική λίστα του FreeBSD για το υποσύστημα ISDN"> freebsd-isdn"> ηλεκτρονική λίστα του FreeBSD για τους παροχείς υπηρεσιών Internet"> freebsd-isp"> ηλεκτρονική λίστα του FreeBSD για τα jails"> freebsd-jail"> ηλεκτρονική λίστα του FreeBSD για τη γλώσσα Java"> freebsd-java"> ηλεκτρονική λίστα του FreeBSD σχετικά με εργασίες-επαγγέλματα"> freebsd-jobs"> ηλεκτρονική λίστα του FreeBSD για το KDE/Qt και τις εφαρμογές του"> freebsd-kde"> ηλεκτρονική λίστα του FreeBSD για το υποσύστημα LFS"> freebsd-lfs"> ηλεκτρονική λίστα του FreeBSD για το σύστημα εγκατάστασης και διαχείρισης πακέτων libh"> freebsd-libh"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα MIPS"> freebsd-mips"> διαχειριστές των mirror sites του FreeBSD"> mirror-announce"> ηλεκτρονική λίστα του FreeBSD για φορητούς υπολογιστές"> freebsd-mobile"> ηλεκτρονική λίστα του FreeBSD για τον φυλλομετρητή Mozilla"> freebsd-mozilla"> ηλεκτρονική λίστα του FreeBSD για τα πολυμέσα"> freebsd-multimedia"> ηλεκτρονική λίστα του FreeBSD για την υποστήριξη δικτύου"> freebsd-net"> ηλεκτρονική λίστα του FreeBSD για τους νέους χρήστες"> freebsd-newbies"> ηλεκτρονική λίστα του FreeBSD για το υποσύστημα new-bus"> freebsd-new-bus"> ηλεκτρονική λίστα του FreeBSD για το OpenOffice"> freebsd-openoffice"> ηλεκτρονική λίστα του FreeBSD για υψηλές αποδόσεις"> freebsd-performance"> ηλεκτρονική λίστα του FreeBSD για τη γλώσσα Perl"> freebsd-perl"> ηλεκτρονική λίστα του FreeBSD για το packet filter firewall"> freebsd-pf"> ηλεκτρονική λίστα του FreeBSD για τις μη-Intel πλατφόρμες"> freebsd-platforms"> ηλεκτρονική λίστα αποφάσεων πολιτικής της FreeBSD core ομάδας"> freebsd-policy"> ηλεκτρονική λίστα των FreeBSD ports"> freebsd-ports"> ηλεκτρονική λίστα αναφορών προβλημάτων των FreeBSD ports"> freebsd-ports-bugs"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα PowerPC"> freebsd-ppc"> ηλεκτρονική λίστα του FreeBSD για τις πλατφόρμες εξυπηρετητών HP ProLiant"> freebsd-proliant"> ηλεκτρονική λίστα του FreeBSD για τη γλώσσα Python"> freebsd-python"> ηλεκτρονική λίστα Ελέγχου και Εξασφάλισης Ποιότητας του FreeBSD"> freebsd-qa"> ηλεκτρονική λίστα γενικών ερωτήσεων του FreeBSD"> freebsd-questions"> ηλεκτρονική λίστα του FreeBSD για το σύστημα των boot script"> freebsd-rc"> ηλεκτρονική λίστα επεκτάσεων πραγματικού χρόνου του FreeBSD"> freebsd-realtime"> ηλεκτρονική λίστα του FreeBSD για τη γλώσσα Ruby"> freebsd-ruby"> ηλεκτρονική λίστα του FreeBSD για το υποσύστημα SCSI"> freebsd-scsi"> ηλεκτρονική λίστα του FreeBSD για θέματα ασφάλειας"> freebsd-security"> ηλεκτρονική λίστα Ανακοινώσεων για Θέματα Ασφάλειας του FreeBSD"> freebsd-security-notifications"> ηλεκτρονική λίστα του FreeBSD για μικρά συστήματα"> freebsd-small"> ηλεκτρονική λίστα του FreeBSD για την συμμετρική πολυεπεξεργασία"> freebsd-smp"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα SPARC"> freebsd-sparc64"> ηλεκτρονική λίστα του &os.stable;"> freebsd-stable"> ηλεκτρονική λίστα του FreeBSD για τη συμβατότητα με τα πρότυπα C99 και POSIX"> freebsd-standards"> ηλεκτρονική λίστα του FreeBSD για την πλατφόρμα sun4v"> freebsd-sun4v"> ηλεκτρονική λίστα μηνυμάτων SVN commit πηγαίου κώδικα του FreeBSD (εξαιρούνται τα δέντρα user και projects)"> svn-src-all"> ηλεκτρονική λίστα μηνυμάτων SVN commit πηγαίου κώδικα για τον κλάδο head/-current"> svn-src-head"> ηλεκτρονική λίστα μηνυμάτων SVN commit για τον πηγαίο κώδικα του δέντρου projects"> svn-src-projects"> ηλεκτρονική λίστα μηνυμάτων SVN commit για εκδόσεις (releases) πηγαίου κώδικα"> svn-src-release"> ηλεκτρονική λίστα μηνυμάτων SVN commit για διορθώσεις ασφάλειας της ομάδας release engineering στο δέντρο πηγαίου κώδικα"> svn-src-releng"> ηλεκτρονική λίστα μηνυμάτων SVN commit για όλους τους κλάδους -stable του δέντρου πηγαίου κώδικα"> svn-src-stable"> ηλεκτρονική λίστα μηνυμάτων SVN commit μόνο για το δέντρο πηγαίου κώδικα 6-stable"> svn-src-stable-6"> ηλεκτρονική λίστα μηνυμάτων SVN commit μόνο για το δέντρο πηγαίου κώδικα 7-stable"> svn-src-stable-7"> ηλεκτρονική λίστα μηνυμάτων SVN commit για τα παλιά stable δέντρα πηγαίου κώδικα"> svn-src-stable-other"> ηλεκτρονική λίστα μηνυμάτων SVN commit για το δέντρο admin / configuration"> svn-src-svnadmin"> ηλεκτρονική λίστα μηνυμάτων SVN commit για το πειραματικό δέντρο πηγαίου κώδικα user"> svn-src-user"> ηλεκτρονική λίστα μηνυμάτων SVN commit για το δέντρο εργασίας vendor"> svn-src-vendor"> ηλεκτρονική λίστα του FreeBSD για δοκιμαστικά μηνύματα"> freebsd-test"> ηλεκτρονική λίστα δοκιμών απόδοσης και σταθερότητας του FreeBSD"> freebsd-testing"> ηλεκτρονική λίστα του FreeBSD για την πολυνηματική επεξεργασία"> freebsd-threads"> ηλεκτρονική λίστα του FreeBSD για το υποσύστημα tokenring"> freebsd-tokenring"> ηλεκτρονική λίστα του FreeBSD για τη διασύνδεση με συσκευές USB"> freebsd-usb"> ηλεκτρονική λίστα οργάνωσης των ομάδων χρηστών του FreeBSD"> freebsd-user-groups"> ηλεκτρονική λίστα προσυνεννόησης των προμηθευτών του FreeBSD"> freebsd-vendors"> ηλεκτρονική λίστα του FreeBSD για τεχνικές virtualization"> freebsd-virtualization"> ηλεκτρονική λίστα για την πλατφόρμα VuXML"> freebsd-vuxml"> ηλεκτρονική λίστα για τις Αναφορές Προόδου του FreeBSD"> freebsd-wip-status"> ηλεκτρονική λίστα του Webmaster του FreeBSD"> freebsd-www"> ηλεκτρονική λίστα του FreeBSD για το γραφικό περιβάλλον X11"> freebsd-x11"> ηλεκτρονική λίστα συζητήσεων για τη μεταφορά του FreeBSD στο Xen"> freebsd-xen"> bug-followup@FreeBSD.org"> majordomo@FreeBSD.org"> diff --git a/el_GR.ISO8859-7/share/sgml/newsgroups.ent b/el_GR.ISO8859-7/share/sgml/newsgroups.ent index ae07fbf41a..ffc0e2fea0 100644 --- a/el_GR.ISO8859-7/share/sgml/newsgroups.ent +++ b/el_GR.ISO8859-7/share/sgml/newsgroups.ent @@ -1,20 +1,21 @@ comp.unix.bsd.freebsd.misc"> diff --git a/el_GR.ISO8859-7/share/sgml/teams.ent b/el_GR.ISO8859-7/share/sgml/teams.ent index 2681254c07..95df195480 100644 --- a/el_GR.ISO8859-7/share/sgml/teams.ent +++ b/el_GR.ISO8859-7/share/sgml/teams.ent @@ -1,71 +1,72 @@ admins@FreeBSD.org"> bugmeister@FreeBSD.org"> core-secretary@FreeBSD.org"> cvsadm@FreeBSD.org"> cvs@FreeBSD.org"> dcvs@FreeBSD.org"> doceng@FreeBSD.org"> donations@FreeBSD.org"> faq@FreeBSD.org"> ftp-master@FreeBSD.org"> mirror-admin@FreeBSD.org"> ncvs@FreeBSD.org"> perforce-admin@FreeBSD.org"> pcvs@FreeBSD.org"> portmgr@FreeBSD.org"> portmgr-secretary@FreeBSD.org"> projcvs@FreeBSD.org"> re@FreeBSD.org"> security-officer@FreeBSD.org"> diff --git a/el_GR.ISO8859-7/share/sgml/trademarks.ent b/el_GR.ISO8859-7/share/sgml/trademarks.ent index 98ba9b9875..99312c6c6c 100644 --- a/el_GR.ISO8859-7/share/sgml/trademarks.ent +++ b/el_GR.ISO8859-7/share/sgml/trademarks.ent @@ -1,431 +1,432 @@ Οι λέξεις 3Com και HomeConnect είναι κατοχυρωμένα εμπορικά σύμβολα της 3Com Corporation."> 3Com"> Οι λέξεις 3ware και Escalade είναι κατοχυρωμένα εμπορικά σύμβολα της 3ware Inc."> 3ware"> Escalade"> Η λέξη Adaptec είναι κατοχυρωμένο εμπορικό σύμβολο της Adaptec, Inc."> Adaptec"> Οι λέξεις ή φράσεις Adobe, Acrobat, Acrobat Reader, και PostScript είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Adobe Systems Incorporated στις Ηνωμένες Πολιτείες ή/και σε άλλες χώρες."> Acrobat"> Acrobat Reader"> Adobe"> PostScript"> Οι λέξεις ή φράσεις AMD, Am486, Am5X86, AMD Athlon, AMD Duron, AMD Opteron, AMD-K6, Élan, και PCnet είναι εμπορικά σύμβολα της Advanced Micro Devices, Inc."> Am486"> Am5x86"> AMD Athlon"> AMD Duron"> AMD-K6"> AMD Opteron"> AMD Sempron"> AMD Turion"> Athlon"> Élan"> Opteron"> Οι λέξεις ή φράσεις Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, και TrueType είναι εμπορικά σύμβολα της Apple Computer, Inc., κατοχυρωμένα στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> AirPort"> Apple"> FireWire"> iMac"> Mac"> Macintosh"> Mac OS"> Quicktime"> TrueType"> Η λέξη ARM είναι κατοχυρωμένο εμπορικό σύμβολο της ARM Limited."> ARM"> Η λέξη Bluetooth ανήκει στην Bluetooth SIG, Inc."> Bluetooth"> Η λέξη Broadcom είναι ένα κατοχυρωμένο εμπορικό σύμβολο της Broadcom Corporation και των θυγατρικών της."> Broadcom"> Οι λέξεις ή φράσεις Check Point, Firewall-1, και VPN-1 είναι εμπορικά σύμβολα της Check Point Software Technologies Ltd."> Οι λέξεις ή φράσεις Cisco, Catalyst, και IOS είναι κατοχυρωμένα εμπορικά σύμβολα της Cisco Systems, Inc. ή/και των συνεργατών της στις Ηνωμένες Πολιτείες και σε ορισμένες άλλες χώρες."> Catalyst"> IOS"> Οι λέξεις Corel και WordPerfect είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Corel Corporation ή/και των θυγατρικών της στον Καναδά, τις Ηνωμένες Πολιτείες ή/και σε άλλες χώρες."> Η λέξη Coverity είναι ένα κατοχυρωμένο εμπορικό σύμβολο. Οι λέξεις ή φράσεις Coverity Extend, Coverity Prevent και Coverity Prevent SQS είναι εμπορικά σύμβολα της Coverity, Inc."> Coverity"> Coverity Prevent"> Η φράση Sound Blaster είναι εμπορικό σύμβολο της Creative Technology Ltd. στις Ηνωμένες Πολιτείες ή/και σε άλλες χώρες."> SoundBlaster"> Η λέξη CVSup είναι κατοχυρωμένο εμπορικό σύμβολο του John D. Polstra."> Οι λέξεις ή φράσεις Dell, Dell Precision, Latitude, Optiplex, και PowerEdge είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Dell Computer Corporation"> Dell"> PowerEdge"> Οι λέξεις ή φράσεις EPSON και EPSON Perfection είναι κατοχυρωμένα εμπορικά σύμβολα της Seiko Epson Corporation."> EPSON"> EPSON Perfection"> Το FreeBSD είναι ένα κατοχυρωμένο εμπορικό σύμβολο του FreeBSD Foundation."> Οι λέξεις ή φράσεις Heidelberg, Helvetica, Palatino, και Times Roman είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Heidelberger Druckmaschinen AG στις ΗΠΑ και σε άλλες χώρες."> Οι λέξεις ή φράσεις IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, και ThinkPad είναι εμπορικά σύμβολα της International Business Machines Corporation στις Ηνωμένες Πολιτείες, άλλες χώρες, ή και στα δύο ταυτόχρονα."> AIX"> EtherJet"> Netfinity"> OS/2"> PowerPC"> PS/2"> S/390"> ThinkPad"> Οι λέξεις IEEE, POSIX, και 802 είναι κατοχυρωμένα εμπορικά σύμβολα του Institute of Electrical and Electronics Engineers, Inc. στις Ηνωμένες Πολιτείες."> POSIX"> Οι λέξεις Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, και Xeon είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Intel Corporation και των θυγατρικών της στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Celeron"> EtherExpress"> i386"> i486"> Intel"> Itanium"> Pentium"> Core"> Xeon"> Οι λέξεις Intuit και Quicken είναι κατοχυρωμένα εμπορικά σύμβολα ή κατοχυρωμένα σύμβολα υπηρεσιών της Intuit Inc., ή κάποιων από τις θυγατρικές της, στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Οι λέξεις Iomega, Zip, και Jaz είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Iomega Corporation στις Ηνωμένες Πολιτείες ή/και σε άλλες χώρες."> Zip"> Jaz"> Οι λέξεις Lantronix και EasyIO είναι εμπορικά σύμβολα της Lantronix Corporation."> EasyIO"> Το Linux είναι ένα κατοχυρωμένα εμπορικό σύμβολο του Linus Torvalds στις Ηνωμένες Πολιτείες."> Linux"> Οι λέξεις LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID και Mylex είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της LSI Logic Corp."> AcceleRAID"> MegaRAID"> Mylex"> Οι λέξεις Macromedia, Flash, και Shockwave είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Macromedia, Inc. στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες."> Flash"> Macromedia"> Shockwave"> Οι λέξεις Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media, και Windows NT είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Microsoft Corporation στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες."> IntelliMouse"> Microsoft"> MS-DOS"> Outlook"> Windows"> Windows Media"> Windows NT"> Οι λέξεις MIPS και R4000 είναι κατοχυρωμένα εμπορικά σύμβολα της MIPS Technologies, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> MIPS"> Η λέξη MySQL είναι κατοχυρωμένο εμπορικό σύμβολο της MySQL AB στις Ηνωμένες Πολιτείες, στην Ευρωπαϊκή Ένωση και σε άλλες χώρες."> MySQL"> Οι λέξεις M-Systems και DiskOnChip είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της M-Systems Flash Disk Pioneers, Ltd."> DiskOnChip"> Η λέξη NetBSD είναι ένα κατοχυρωμένο εμπορικό σύμβολο του NetBSD Foundation."> Οι λέξεις Netscape και Netscape Navigator είναι κατοχυρωμένα εμπορικά σύμβολα της Netscape Communications Corporation στις Η.Π.Α και άλλες χώρες."> Netscape"> Netscape Navigator"> Οι λέξεις GateD και NextHop είναι κατοχυρωμένα εμπορικά σύμβολα και εμπορικά σύμβολα της NextHop στις Η.Π.Α. και άλλες χώρες."> GateD"> Οι λέξεις NetWare, NetWare Loadable Module, και NLM είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά της Novell, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Οι λέξεις Motif, OSF/1, και UNIX είναι κατοχυρωμένα εμπορικά σύμβολα και οι λέξεις ή φράσεις IT DialTone και The Open Group είναι εμπορικά σύμβολα του The Open Group στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Η λέξη UNIX είναι κατοχυρωμένο εμπορικό σύμβολο του Open Group στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Motif"> UNIX"> Η λέξη Oracle είναι κατοχυρωμένο εμπορικό σύμβολο της Oracle Corporation."> Oracle"> Η λέξη Parallels είναι ένα κατοχυρωμένο εμπορικό σύμβολο της Parallels Software International Inc."> Οι λέξεις PowerQuest και PartitionMagic είναι κατοχυρωμένα εμπορικά σύμβολα της PowerQuest Corporation στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες."> PartitionMagic"> Οι λέξεις QUALCOMM και Eudora είναι κατοχυρωμένα εμπορικά σύμβολα της QUALCOMM Incorporated."> Eudora"> Οι λέξεις RealNetworks, RealPlayer και RealAudio είναι κατοχυρωμένα εμπορικά σύμβολα της RealNetworks, Inc."> RealPlayer"> Οι λέξεις ή φράσεις Red Hat, και RPM είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Red Hat, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Οι λέξεις SAP, R/3, και mySAP είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της SAP AG στη Γερμανία και σε πολλές άλλες χώρες του κόσμου."> R/3"> SAP"> Οι λέξεις οι φράσεις Silicon Graphics, SGI, και OpenGL είναι κατοχυρωμένα εμπορικά σύμβολα της Silicon Graphics, Inc. στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες στον κόσμο."> OpenGL"> Η λέξη Slackware είναι ένα κατοχυρωμένο εμπορικό σύμβολο του Patrick Volkerding και της Slackware Linux, Inc."> Οι λέξεις ή φράσεις Sparc, Sparc64, SPARCEngine, και UltraSPARC είναι εμπορικά σύμβολα της SPARC International, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες. Τα προϊόντα που φέρουν τα εμπορικά σύμβολα SPARC είναι βασισμένα στην αρχιτεκτονική που ανέπτυξε η Sun Microsystems, Inc."> Sparc"> Sparc64"> SPARCEngine"> UltraSPARC"> Οι λέξεις ή φράσεις Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, και Ultra είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Sun Microsystems, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Java"> Java Virtual Machine"> JavaServer Pages"> JDK"> JRE"> JSP"> JVM"> Netra"> Solaris"> StarOffice"> Sun"> Sun Blade"> Sun Enterprise"> Sun Fire"> Ultra"> SunOS"> Οι λέξεις Symantec και Ghost είναι κατοχυρωμένα εμπορικά σύμβολα της Symantec Corporation στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Η λέξη MATLAB είναι ένα κατοχυρωμένο εμπορικό σύμβολο της The MathWorks, Inc."> MATLAB"> Η λέξη SpeedTouch είναι ένα εμπορικό σύμβολο της Thomson"> SpeedTouch"> Οι λέξεις Transmeta και Crusoe είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Transmeta Corporation στις Ηνωμένες Πολιτείες και σε άλλες χώρες."> Crusoe"> Transmeta"> Οι λέξεις ή φράσεις U.S. Robotics και Sportster είναι κατοχυρωμένα εμπορικά σύμβολα της U.S. Robotics Corporation."> Sportster"> U.S. Robotics"> Οι λέξεις ή φράσεις Waterloo Maple και Maple είναι εμπορικά ή κατοχυρωμένα εμπορικά σύμβολα της Waterloo Maple Inc."> Maple"> Η λέξη Mathematica είναι κατοχυρωμένο εμπορικό σύμβολο της Wolfram Research, Inc."> Mathematica"> Η λέξη VMware είναι εμπορικό σύμβολο της VMware, Inc."> Η λέξη Xen είναι ένα κατοχυρωμένο εμπορικό σύμβολο της XenSource, Inc. sτις ΗΠΑ και άλλες χώρες."> Xen"> Η λέξη XFree86 είναι ένα εμπορικό σύμβολο του The XFree86 Project, Inc."> XFree86"> Οι λέξεις ή φράσεις Ogg Vorbis και Xiph.Org είναι εμπορικά σύμβολα τουXiph.Org."> Πολλές από τις λέξεις ή φράσεις οι οποίες χρησιμοποιούνται από τους κατασκευαστές ή τους πωλητές τους για να διακρίνουν τα προϊόντα τους θεωρούνται εμπορικά σύμβολα. Όπου αυτές εμφανίζονται σε αυτό το κείμενο και για όσες από αυτές γνωρίζει η Ομάδα Ανάπτυξης του FreeBSD ότι είναι πιθανόν να είναι εμπορικά σύμβολα, θα δείτε ένα από τα σύμβολα: ή ®."> diff --git a/el_GR.ISO8859-7/share/sgml/translators.ent b/el_GR.ISO8859-7/share/sgml/translators.ent index 1ce56473fe..b4265fbbad 100644 --- a/el_GR.ISO8859-7/share/sgml/translators.ent +++ b/el_GR.ISO8859-7/share/sgml/translators.ent @@ -1,26 +1,27 @@ george@iordanou.org"> keramida@FreeBSD.org"> sonicy@otenet.gr"> nickkokkalis@gmail.com"> ltsampros@upnet.gr"> vtypal@gmail.com"> panoskrt@googlemail.com"> aristotelis.stamatopoulos@gmail.com">