Εγχειρίδιο του FreeBSD

trademarks

Το FreeBSD είναι ένα κατοχυρωμένο εμπορικό σύμβολο του FreeBSD Foundation.

Οι λέξεις ή φράσεις IBM, AIX, OS/2, PowerPC, PS/2, S/390, και ThinkPad είναι εμπορικά σύμβολα της International Business Machines Corporation στις Ηνωμένες Πολιτείες, άλλες χώρες, ή και στα δύο ταυτόχρονα.

Οι λέξεις IEEE, POSIX, και 802 είναι κατοχυρωμένα εμπορικά σύμβολα του Institute of Electrical and Electronics Engineers, Inc. στις Ηνωμένες Πολιτείες.

Οι λέξεις ή φράσεις Red Hat, και RPM είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Red Hat, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Οι λέξεις 3Com και HomeConnect είναι κατοχυρωμένα εμπορικά σύμβολα της 3Com Corporation.

Οι λέξεις ή φράσεις Adobe, Acrobat, Acrobat Reader, και PostScript είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Adobe Systems Incorporated στις Ηνωμένες Πολιτείες ή/και σε άλλες χώρες.

Οι λέξεις ή φράσεις Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, και TrueType είναι εμπορικά σύμβολα της Apple Computer, Inc., κατοχυρωμένα στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Οι λέξεις Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, και Xeon είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Intel Corporation και των θυγατρικών της στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Το Linux είναι ένα κατοχυρωμένα εμπορικό σύμβολο του Linus Torvalds στις Ηνωμένες Πολιτείες.

Οι λέξεις Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media, και Windows NT είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Microsoft Corporation στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες.

Οι λέξεις Motif, OSF/1, και UNIX είναι κατοχυρωμένα εμπορικά σύμβολα και οι λέξεις ή φράσεις IT DialTone και The Open Group είναι εμπορικά σύμβολα του The Open Group στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Οι λέξεις ή φράσεις Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOffice, SunOS και VirtualBox είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της Sun Microsystems, Inc. στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Οι λέξεις RealNetworks, RealPlayer και RealAudio είναι κατοχυρωμένα εμπορικά σύμβολα της RealNetworks, Inc.

Η λέξη Oracle είναι κατοχυρωμένο εμπορικό σύμβολο της Oracle Corporation.

Οι λέξεις 3ware και Escalade είναι κατοχυρωμένα εμπορικά σύμβολα της 3ware Inc.

Η λέξη ARM είναι κατοχυρωμένο εμπορικό σύμβολο της ARM Limited.

Η λέξη Adaptec είναι κατοχυρωμένο εμπορικό σύμβολο της Adaptec, Inc.

Οι λέξεις ή φράσεις Heidelberg, Helvetica, Palatino, και Times Roman είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Heidelberger Druckmaschinen AG στις ΗΠΑ και σε άλλες χώρες.

Οι λέξεις Intuit και Quicken είναι κατοχυρωμένα εμπορικά σύμβολα ή κατοχυρωμένα σύμβολα υπηρεσιών της Intuit Inc., ή κάποιων από τις θυγατρικές της, στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Οι λέξεις LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID και Mylex είναι εμπορικά σύμβολα ή κατοχυρωμένα εμπορικά σύμβολα της LSI Logic Corp.

Η λέξη MATLAB είναι ένα κατοχυρωμένο εμπορικό σύμβολο της The MathWorks, Inc.

Η λέξη SpeedTouch είναι ένα εμπορικό σύμβολο της Thomson

Η λέξη VMware είναι εμπορικό σύμβολο της VMware, Inc.

Η λέξη Mathematica είναι κατοχυρωμένο εμπορικό σύμβολο της Wolfram Research, Inc.

Οι λέξεις ή φράσεις Ogg Vorbis και Xiph.Org είναι εμπορικά σύμβολα τουXiph.Org.

Η λέξη XFree86 είναι ένα εμπορικό σύμβολο του The XFree86 Project, Inc.

Πολλές από τις λέξεις ή φράσεις οι οποίες χρησιμοποιούνται από τους κατασκευαστές ή τους πωλητές τους για να διακρίνουν τα προϊόντα τους θεωρούνται εμπορικά σύμβολα. Όπου αυτές εμφανίζονται σε αυτό το κείμενο και για όσες από αυτές γνωρίζει η Ομάδα Ανάπτυξης του FreeBSD ότι είναι πιθανόν να είναι εμπορικά σύμβολα, θα δείτε ένα από τα σύμβολα: “™” ή “®”.

Table of Contents

Περίληψη

Καλώς ήρθατε στο FreeBSD! Αυτό το εγχειρίδιο καλύπτει την εγκατάσταση και την καθημερινή χρήση του FreeBSD 11.2-RELEASE και του FreeBSD 12.0-RELEASE. Το βιβλίο αυτό είναι μόνιμα υπό βελτίωση και ανάπτυξη και αποτελεί το αποτέλεσμα της δουλειάς πολλών ατόμων, οπότε κάποια τμήματα μπορεί να περιέχουν σχετικά ξεπερασμένες πληροφορίες και να χρειάζονται ανανέωση. Αν ενδιαφέρεστε να μας βοηθήσετε σε αυτό το έργο, επικοινωνήστε μαζί μας στην ηλεκτρονική λίστα ομάδας τεκμηρίωσης του FreeBSD. Η τελευταία έκδοση αυτού του κειμένου είναι πάντα διαθέσιμη από την ιστοσελίδα του FreeBSD (παλιότερες εκδόσεις μπορείτε να βρείτε στη διεύθυνση http://docs.FreeBSD.org/doc/). Μπορείτε επίσης να μεταφορτώσετε στον υπολογιστή σας το ίδιο βιβλίο σε άλλες μορφές αρχείου και με διάφορες μορφές συμπίεσης από τον εξυπηρετητή FTP του FreeBSD ή ένα από τα πολλά mirror sites. Αν προτιμάτε ένα τυπωμένο αντίτυπο, μπορείτε να αγοράσετε ένα αντίγραφο του Εγχειριδίου, από το FreeBSD Mall. Μπορείτε επίσης να ψάξετε σε όλο το βιβλίο.


Πρόλογος

Σε Ποιους Απευθύνεται Αυτό το Βιβλίο

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

Αφού διαβάσετε το πρώτο τμήμα, το δεύτερο, κατά πολύ μεγαλύτερο τμήμα, περιλαμβάνει μια εκτενή αναφορά σε διάφορα θέματα που ενδιαφέρουν τους διαχειριστές συστημάτων FreeBSD. Μερικά από αυτά τα κεφάλαια είναι ευκολότερο να τα κατανοήσετε αν έχετε ήδη μελετήσει συγκεκριμένα τμήματα του βιβλίου. Όπου χρειάζεται κάτι τέτοιο, θα αναφέρεται στη σύνοψη του κεφαλαίου που μόλις ξεκινήσατε να διαβάζετε.

Για περισσότερες πηγές πληροφοριών, δείτε το Βιβλιογραφία.

Αλλαγές από την Τρίτη Έκδοση

Η τρέχουσα έκδοση του Εγχειριδίου στο διαδίκτυο, είναι το αποτέλεσμα της προσπάθειας πολλών εκατοντάδων εθελοντών στο διάστημα των τελευταίων 10 χρόνων. Οι πιο σημαντικές αλλαγές σε σχέση με την τρίτη έντυπη έκδοση του Εγχειριδίου (2004) φαίνονται παρακάτω:

  • Το DTrace είναι ένα νέο κεφάλαιο με πληροφορίες σχετικά με αυτό το πανίσχυρο εργαλείο ανάλυσης απόδοσης.

  • Το Υποστήριξη Συστημάτων Αρχείων είναι ένα νέο κεφάλαιο με πληροφορίες για συστήματα αρχείων τα οποία υποστηρίζονται από το FreeBSD αλλά αναπτύσσονται από άλλες ομάδες, όπως το ZFS από την Sun™.

  • Το Έλεγχος Συμβάντων Ασφαλείας είναι ένα νέο κεφάλαιο με πληροφορίες σχετικά με τις νέες δυνατότητες και την χρήση του auditing στο FreeBSD.

  • Το Εικονικοποίηση είναι ένα νέο κεφάλαιο με πληροφορίες σχετικά με την εγκατάσταση του FreeBSD σε λογισμικό εκτέλεσης εικονικών (virtual) μηχανημάτων.

  • Το Εγκατάσταση του FreeBSD 9.x και Μεταγενέστερων Εκδόσεων FreeBSD 9.x και Μεταγενέστερων Εκδόσεων, είναι ένα νέο κεφάλαιο σχετικά με την εγκατάσταση του FreeBSD με τη βοήθεια του νέου προγράμματος bsdinstall.

Αλλαγές από τη Δεύτερη Έκδοση (2004)

Η τρίτη έκδοση αυτού του βιβλίου ήταν το αποτέλεσμα της προσπάθειας περισσότερων από δύο χρόνων από τα μέλη της Ομάδας Τεκμηρίωσης του FreeBSD. Η έντυπη έκδοση είχε τόσο μεγάλο μέγεθος, που κρίθηκε αναγκαίο να τυπωθεί σε δύο χωριστούς τόμους. Παρακάτω φαίνονται οι σημαντικότερες αλλαγές σε αυτή τη νέα έκδοση:

  • Το Ρύθμιση και Βελτιστοποίηση επεκτάθηκε με νέες πληροφορίες για τη διαχείριση ενέργειας και πόρων του συστήματος μέσω ACPI, με περισσότερες πληροφορίες για το σύστημα cron και με περισσότερες επιλογές παραμετροποίησης του πυρήνα του FreeBSD.

  • Το Ασφάλεια επεκτάθηκε με νέες πληροφορίες για Δίκτυα VPN, για λίστες ελέγχου πρόσβασης αρχείων (ACLs) και περισσότερες συμβουλές σχετικά με την ασφάλεια του FreeBSD.

  • Το Υποχρεωτικός Έλεγχος Πρόσβασης είναι ένα νέο κεφάλαιο σε αυτή την έκδοση. Εξηγεί τι είναι ο μηχανισμός MAC και πώς μπορεί να χρησιμοποιηθεί για να ενισχυθεί η ασφάλεια ενός συστήματος FreeBSD.

  • Το Αποθηκευτικά Μέσα επεκτάθηκε, με νέες πληροφορίες για συσκευές αποθήκευσης USB, στιγμιότυπα συστήματος αρχείων (snapshots), περιορισμούς στη χρήση των συστημάτων αρχείων (quotas), συστήματα αρχείων που βασίζονται σε υπάρχοντα αρχεία ή στο δίκτυο, καθώς και κρυπτογραφημένες κατατμήσεις δίσκων.

  • Προστέθηκε μια ενότητα σχετικά με την αντιμετώπιση προβλημάτων στο PPP και SLIP.

  • Το Ηλεκτρονικό Ταχυδρομείο επεκτάθηκε με νέες πληροφορίες για την χρήση εναλλακτικών MTA, πιστοποίηση ταυτότητας στο SMTP, το πρωτόκολλο UUCP, τα εργαλεία fetchmail και procmail και με άλλα θέματα για προχωρημένους.

  • Το Εξυπηρετητές Δικτύου περιλαμβάνεται για πρώτη φορά σε αυτή την έκδοση. Αυτό το κεφάλαιο περιγράφει πως να εγκαταστήσετε τον Διακομιστή HTTP Apache, τον εξυπηρετητή ftpd του FreeBSD και τον διακομιστή Samba για επικοινωνία με πελάτες Microsoft® Windows®. Στο κεφάλαιο αυτό, έχουν μεταφερθεί κάποιες ενότητες από το Προχωρημένα Θέματα Δικτύωσης (Προχωρημένα Θέματα Δικτύωσης), προκειμένου να βελτιωθεί η παρουσίαση τους.

  • Το Προχωρημένα Θέματα Δικτύωσης επεκτάθηκε με νέες πληροφορίες για τη χρήση συσκευών Bluetooth® στο FreeBSD, την εγκατάσταση ασύρματων δικτύων, και την Μέθοδο Δικτύωσης Ασύγχρονης Μεταφοράς (ATM).

  • Προστέθηκε ένα Λεξιλόγιο, για να συγκεντρώσει όλους τους τεχνικούς όρους και τους διάφορους ορισμούς που περιέχονται σε ολόκληρο το βιβλίο.

  • Έγιναν αισθητικές βελτιώσεις στους πίνακες και στα γραφήματα σε ολόκληρο το βιβλίο.

Αλλαγές από την Πρώτη Έκδοση (2001)

Η δεύτερη έκδοση ήταν το αποτέλεσμα τουλάχιστον δύο χρόνων εργασίας από τα μέλη της Ομάδας Τεκμηρίωσης του FreeBSD. Οι πιο σημαντικές αλλαγές σε αυτή την έκδοση ήταν οι παρακάτω:

  • Προστέθηκε ένα ολοκληρωμένο Ευρετήριο.

  • Όλα τα γραφήματα σε ASCII αντικαταστάθηκαν από γραφικά διαγράμματα.

  • Προστέθηκε μια τυποποιημένη σύνοψη σε κάθε κεφάλαιο, η οποία περιέχει μια σύντομη ανακεφαλαίωση των πληροφοριών που περιέχει το κεφάλαιο και τι αναμένεται να γνωρίζει από πριν ο αναγνώστης.

  • Το περιεχόμενο αναδιοργανώθηκε σε τρία λογικά μέρη: "Ξεκινώντας με το FreeBSD", "Διαχείριση Συστήματος" και "Παραρτήματα".

  • Το Εγκατάσταση του FreeBSD 8.x και Προγενέστερων Εκδόσεων ξαναγράφτηκε από την αρχή με πολλές εικόνες, ώστε να διευκολύνει τους χρήστες να κατανοήσουν το κείμενο.

  • Το Βασικές Έννοιες στο UNIX® επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες πληροφορίες για τις διεργασίες (processes), τους δαίμονες (daemons), και τα σήματα (signals).

  • Το Εγκατάσταση Εφαρμογών: Πακέτα και Ports επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες πληροφορίες για την διαχείριση προμεταγλωττισμένων πακέτων (packages).

  • Το Το Σύστημα X Window ξαναγράφτηκε από την αρχή με έμφαση στην χρήση μοντέρνων τεχνολογιών, όπως τα περιβάλλοντα εργασίας KDE και GNOME σε XFree86™ 4.X.

  • Το Η Διαδικασία Εκκίνησης του FreeBSD επεκτάθηκε με περισσότερες πληροφορίες.

  • Το Αποθηκευτικά Μέσα ξαναγράφτηκε με βάση τα παλαιότερα δύο κεφάλαια "Δίσκοι" και "Αντίγραφα Ασφαλείας". Πιστεύουμε ότι τα θέματα αυτά είναι πιο ευκολονόητα όταν παρουσιάζονται μαζί σαν ένα κεφάλαιο. Προστέθηκε επίσης μια ενότητα για RAID (υλοποίηση μέσω υλικού ή λογισμικού).

  • Το Σειριακές Επικοινωνίες αναδιοργανώθηκε από την αρχή και ενημερώθηκε για τις εκδόσεις FreeBSD 4.X/5.X.

  • Το PPP και SLIP ενημερώθηκε σε σημαντικό βαθμό.

  • Πολλοί νέοι τομείς προστέθηκαν στο Προχωρημένα Θέματα Δικτύωσης.

  • Το Ηλεκτρονικό Ταχυδρομείο επεκτάθηκε για να συμπεριλαμβάνει περισσότερες πληροφορίες για τις ρυθμίσεις του sendmail.

  • Το Συμβατότητα με Εκτελέσιμα του Linux επεκτάθηκε για να συμπεριλαμβάνει πληροφορίες για την εγκατάσταση της βάσης δεδομένων Oracle® και του SAP® R/3®.

  • Στην δεύτερη έκδοση καλύπτονται επίσης τα παρακάτω νέα θέματα:

Οργάνωση Αυτού του Βιβλίου

Αυτό το βιβλίο χωρίζεται σε πέντε διακριτά λογικά τμήματα. Το πρώτο τμήμα, Ξεκινώντας με το FreeBSD, περιγράφει την εγκατάσταση και την βασική χρήση του FreeBSD. Ο προτεινόμενος τρόπος ανάγνωσης αυτού του τμήματος είναι ένα-ένα κεφάλαιο, με τη σειρά, προσπερνώντας κεφάλαια με γνωστά θέματα. Το δεύτερο τμήμα, Βασικές Εργασίες, περιγράφει μερικά χαρακτηριστικά του FreeBSD τα οποία χρησιμοποιούνται συχνά. Μπορείτε να διαβάσετε τα κεφάλαια σε αυτό το τμήμα (καθώς και σε όλα τα τμήματα που ακολουθούν) με όποια σειρά θέλετε. Κάθε κεφάλαιο ξεκινά με μια σαφή και σύντομη σύνοψη, η οποία περιγράφει τα περιεχόμενα του κεφαλαίου καθώς και τι χρειάζεται να γνωρίζει ήδη ο αναγνώστης. Αυτό επιτρέπει στον περιστασιακό αναγνώστη να προσπερνά γρήγορα ενότητες, για να βρει κεφάλαια τα οποία τον ενδιαφέρουν περισσότερο. Το τρίτο τμήμα, Διαχείριση Συστήματος, περιέχει θέματα σχετικά με τη διαχείριση συστημάτων FreeBSD. Το τέταρτο τμήμα, Δικτυακές Επικοινωνίες, καλύπτει θέματα δικτύωσης και διακομιστών. Το πέμπτο τμήμα περιέχει παραρτήματα με διάφορες πληροφορίες.

Εισαγωγή

Παρουσιάζει το FreeBSD στο νέο χρήστη. Περιγράφει την ιστορία του FreeBSD Project, τους στόχους του και το μοντέλο ανάπτυξης του.

Εγκατάσταση του FreeBSD 9.x και Μεταγενέστερων Εκδόσεων

Οδηγεί τον χρήστη στην διαδικασία εγκατάστασης του FreeBSD 9.x και μεταγενέστερων εκδόσεων με τη χρήση του bsdinstall.

Εγκατάσταση του FreeBSD 8.x και Προγενέστερων Εκδόσεων

Οδηγεί τον χρήστη στην διαδικασία εγκατάστασης του FreeBSD 8.x και προγενέστερων εκδόσεων με τη χρήση του sysinstall. Συμπεριλαμβάνονται επίσης μερικά θέματα εγκατάστασης για προχωρημένους, όπως η εγκατάσταση μέσω σειριακής κονσόλας.

Βασικές Έννοιες στο UNIX®

Περιέχει τις βασικές εντολές και λειτουργίες του λειτουργικού συστήματος FreeBSD. Εάν είστε εξοικειωμένος με το Linux® ή με άλλο λειτουργικό τύπου UNIX® μπορείτε πιθανώς να προσπεράσετε αυτό το κεφάλαιο.

Εγκατάσταση Εφαρμογών: Πακέτα και Ports

Περιγράφει τον τρόπο εγκατάστασης λογισμικού τρίτων κατασκευαστών με την καινοτόμο "Συλλογή των Ports (Ports Collection)" του FreeBSD και με τα συνήθη προμεταγλωττισμένα πακέτα (packages).

Το Σύστημα X Window

Περιγράφει γενικά το σύστημα X Window και ειδικότερα το X11 του FreeBSD. Επίσης περιγράφει ολοκληρωμένα περιβάλλοντα εργασίας όπως το KDE και το GNOME.

Desktop Εφαρμογές

Αναφέρει και εξηγεί μερικές από τις πιο συνήθεις εφαρμογές για υπολογιστές γραφείου, όπως προγράμματα πλοήγησης ιστοσελίδων και εφαρμογές γραφείου και περιγράφει πως να τις εγκαταστήσετε στο FreeBSD.

Πολυμέσα

Υποδεικνύει πως να εγκαταστήσετε δυνατότητες αναπαραγωγής ήχου και βίντεο στο σύστημα σας. Επίσης περιλαμβάνει δειγματοληπτικά κάποιες εφαρμογές ήχου και βίντεο.

Ρυθμίζοντας τον Πυρήνα του FreeBSD

Εξηγεί τους λόγους για τους οποίους θα πρέπει να δημιουργήσετε ένα νέο πυρήνα. Παρέχει, επίσης, λεπτομερείς οδηγίες για την ρύθμιση, μεταγλώττιση και εγκατάσταση του νέου σας προσαρμοσμένου πυρήνα.

Εκτυπώσεις

Περιγράφει πως να διαχειρίζεστε εκτυπωτές στο FreeBSD. Συμπεριλαμβάνει πληροφορίες για σελίδες λογοτύπων, λογαριασμούς εκτυπωτών και αρχικές ρυθμίσεις.

Συμβατότητα με Εκτελέσιμα του Linux

Περιγράφει τις δυνατότητες συμβατότητας του FreeBSD με εφαρμογές Linux®. Επίσης παρέχει λεπτομερείς οδηγίες εγκατάστασης για πολλές γνωστές εφαρμογές του Linux® όπως Oracle®, και Mathematica®.

Ρύθμιση και Βελτιστοποίηση

Περιγράφει τις παραμέτρους που έχουν στη διάθεση τους οι διαχειριστές του συστήματος, ώστε να ρυθμίσουν ένα σύστημα FreeBSD για βέλτιστη απόδοση. Επίσης περιγράφει τα διάφορα αρχεία ρυθμίσεων που χρησιμοποιούνται στο FreeBSD και που να τα βρείτε.

Η Διαδικασία Εκκίνησης του FreeBSD

Περιγράφει την διαδικασία εκκίνησης του FreeBSD και εξηγεί πως μπορούμε να την ελέγχουμε με τη βοήθεια επιλογών και ρυθμίσεων.

Χρήστες και Βασική Διαχείριση Λογαριασμών

Περιγράφει την δημιουργία και την διαχείριση των λογαριασμών χρηστών. Επίσης περιγράφει τρόπους με τους οποίους μπορούν να τεθούν περιορισμοί στους χρήστες όσο αφορά τη χρήση πόρων του συστήματος, καθώς και άλλες λειτουργίες διαχείρισης λογαριασμών.

Ασφάλεια

Περιγράφει διάφορα διαθέσιμα εργαλεία που θα σας βοηθήσουν να κρατήσετε το FreeBSD σύστημα σας ασφαλές. Συμπεριλαμβάνονται οι υλοποιήσεις Kerberos, IPsec και OpenSSH.

Jails

Περιγράφει το πλαίσιο λειτουργιών των jails και τις βελτιώσεις που παρέχουν σε σχέση με την παραδοσιακή chroot υποστήριξη του FreeBSD.

Υποχρεωτικός Έλεγχος Πρόσβασης

Εξηγεί τι είναι ο Υποχρεωτικός Έλεγχος Πρόσβασης (MAC) και πως ο μηχανισμός αυτός μπορεί να χρησιμοποιηθεί για την ασφάλιση ενός FreeBSD συστήματος.

Έλεγχος Συμβάντων Ασφαλείας

Περιγράφει τι είναι ο Έλεγχος Συμβάντων, πως μπορεί να εγκατασταθεί, να ρυθμιστεί και πως μπορούν να διερευνώνται και να παρακολουθούνται τα ίχνη του ελέγχου (audit trails).

Αποθηκευτικά Μέσα

Περιγράφει πως να διαχειρίζεστε μέσα αποθήκευσης και συστήματα αρχείων με το FreeBSD. Συμπεριλαμβάνονται φυσικοί δίσκοι, συστοιχίες RAID, οπτικά και μαγνητικά μέσα, εικονικοί δίσκοι μνήμης και δικτυακά συστήματα αρχείων.

GEOM: Διαχείριση Συστοιχιών Δίσκων

Περιγράφει τι είναι το πλαίσιο λειτουργιών GEOM στο FreeBSD και πως να ρυθμίσετε διάφορα επίπεδα RAID που υποστηρίζονται στο FreeBSD.

Υποστήριξη Συστημάτων Αρχείων

Εξετάζει την υποστήριξη μη-εγγενών συστημάτων αρχείων στο FreeBSD, όπως το Z File System της Sun™.

Εικονικοποίηση

Περιγράφει τι προσφέρουν τα συστήματα εικονικοποίησης και πως μπορούν να χρησιμοποιηθούν με το FreeBSD.

Τοπικές Ρυθμίσεις - Χρήση και ρύθμιση I18N/L10N

Περιγράφει πως να χρησιμοποιήσετε το FreeBSD σε γλώσσες εκτός της Αγγλικής. Καλύπτει την δυνατότητα τοπικών ρυθμίσεων τόσο σε επίπεδο συστήματος, όσο και σε επίπεδο εφαρμογών.

Ενημέρωση και Αναβάθμιση του FreeBSD

Εξηγεί τις διαφορές μεταξύ των εκδόσεων FreeBSD-STABLE, FreeBSD-CURRENT και των επίσημων (RELEASE) εκδόσεων του FreeBSD. Περιγράφει ποιοι χρήστες ωφελούνται όταν ακολουθούν ένα σύστημα ανάπτυξης καθώς και τα απαιτούμενα για αυτό το σκοπό βήματα. Καλύπτει τις μεθόδους που μπορούν να χρησιμοποιήσουν οι χρήστες για να ενημερώσουν το σύστημα τους με τις τελευταίες διορθώσεις ασφαλείας.

DTrace

Περιγράφει την ρύθμιση και χρήση του εργαλείου DTrace της Sun™ στο FreeBSD. Το δυναμικό tracing μπορεί να βοηθήσει στον εντοπισμό προβλημάτων απόδοσης, παρέχοντας ανάλυση του συστήματος σε πραγματικό χρόνο.

Σειριακές Επικοινωνίες

Εξηγεί πως να συνδέσετε τερματικά και μόντεμ στο FreeBSD σύστημα σας, για χρήση τόσο σε εισερχόμενες όσο και σε εξερχόμενες συνδέσεις.

PPP και SLIP

Περιγράφει πως να χρησιμοποιήσετε τις τεχνολογίες PPP, SLIP, ή PPP μέσω Ethernet για να συνδεθείτε σε απομακρυσμένα συστήματα με το FreeBSD.

Ηλεκτρονικό Ταχυδρομείο

Εξηγεί τα διαφορετικά στοιχεία ενός διακομιστή ηλεκτρονικής αλληλογραφίας και εμβαθύνει σε θέματα απλών ρυθμίσεων για το πλέον δημοφιλές λογισμικό διακομιστή ηλεκτρονικής αλληλογραφίας: το sendmail.

Εξυπηρετητές Δικτύου

Παρέχει λεπτομερείς οδηγίες και παραδείγματα αρχείων ρύθμισης για να ρυθμίσετε το FreeBSD να ενεργεί ως δικτυακός εξυπηρετητής αρχείων, εξυπηρετητής ονομάτων τομέα (DNS), εξυπηρετητής δικτυακών πληροφοριών (NIS), η εξυπηρετητής συγχρονισμού ώρας (NTP).

Firewalls

Εξηγεί την φιλοσοφία που κρύβεται πίσω από τα firewalls (τείχη προστασίας) που βασίζονται σε λογισμικό και παρέχει λεπτομερείς πληροφορίες για τις ρυθμίσεις των διαφόρων firewalls που διατίθενται για το FreeBSD.

Προχωρημένα Θέματα Δικτύωσης

Περιγράφει πολλά προχωρημένα θέματα δικτύωσης, συμπεριλαμβανομένου του διαμοιρασμού μιας σύνδεσης Internet με άλλους υπολογιστές στο τοπικό σας δίκτυο (LAN), θέματα δρομολόγησης για προχωρημένους, ασύρματη δικτύωση, Bluetooth®, ATM, IPv6 και πολλά ακόμη.

Που θα Βρείτε το FreeBSD

Περιέχει λίστα με διάφορες πηγές για να αποκτήσετε το FreeBSD σε CD-ROM ή DVD, όπως επίσης και διάφορες τοποθεσίες στο Internet από όπου μπορείτε να κατεβάσετε και να εγκαταστήσετε το FreeBSD.

Βιβλιογραφία

Αυτό το βιβλίο αγγίζει πολλά διαφορετικά θέματα που μπορεί να σας κεντρίσουν το ενδιαφέρον για μια πιο λεπτομερή εξερεύνηση. Η βιβλιογραφία ταξινομεί σε κατηγορίες πολλά εξαιρετικά βιβλία τα οποία αναφέρονται στο κείμενο.

Πηγές Πληροφόρησης στο Διαδίκτυο

Περιγράφει πολλά φόρουμ που διατίθενται στους χρήστες του FreeBSD, ώστε να θέτουν ερωτήματα και να συμμετέχουν σε τεχνικές συζητήσεις για το FreeBSD.

Κλειδιά PGP

Καταγράφει τα δακτυλικά αποτυπώματα των κλειδιών PGP αρκετών μελών της Ομάδας Ανάπτυξης του FreeBSD.

Συμβάσεις που χρησιμοποιούνται σε αυτό το βιβλίο

Σε ολόκληρο το βιβλίο, χρησιμοποιούνται κάποιες τυπογραφικές συμβάσεις ώστε η μορφοποίηση του να είναι συνεπής και να είναι πιο ευανάγνωστο:

Τυπογραφικές Συμβάσεις

Πλάγια γραφή

Η πλάγια γραμματοσειρά χρησιμοποιείται για ονόματα αρχείων, URLs, κείμενο με έμφαση και για χρήση πρωτοεμφανιζόμενων τεχνικών όρων.

Γραφή σταθερού πλάτους

Η σταθερού πλάτους γραμματοσειρά χρησιμοποιείται για μηνύματα λάθους, εντολές, μεταβλητές περιβάλλοντος, ονομασίες των ports, ονόματα κεντρικών υπολογιστών, ονόματα χρηστών, ονόματα ομάδων, ονόματα συσκευών, μεταβλητές και αποσπάσματα κώδικα.

Έντονη γραφή

Η έντονη γραμματοσειρά χρησιμοποιείται για εφαρμογές, εντολές και πλήκτρα.

Είσοδος Δεδομένων από το Χρήστη

Η πληκτρολόγηση σημειώνεται με έντονη γραφή ώστε να ξεχωρίζει από το υπόλοιπο κείμενο. Συνδυασμοί πλήκτρων που πρέπει να πιεσθούν ταυτόχρονα σημειώνονται με `+’ μεταξύ των πλήκτρων, όπως:

Ctrl+Alt+Del

Το οποίο σημαίνει πως ο χρήστης θα πρέπει να πιέσει τα πλήκτρα Ctrl, Alt και το πλήκτρο Del ταυτόχρονα.

Σε περίπτωση που κάποια πλήκτρα πρέπει να πιεσθούν με συγκεκριμένη σειρά, θα εμφανίζονται χωρισμένα με κόμματα:

Ctrl+X, Ctrl+S

Το οποίο σημαίνει πως ο χρήστης αναμένεται να πιέσει τα πλήκτρα Ctrl και X ταυτόχρονα και έπειτα να πιέσει τα πλήκτρα Ctrl και S ταυτόχρονα.

Παραδείγματα

Τα παραδείγματα που ξεκινούν με C:\> υποδηλώνουν μια εντολή MS-DOS®. Αυτές οι εντολές μπορούν να εκτελούνται από το παράθυρο "Γραμμής Εντολών" σε σύγχρονο περιβάλλον Microsoft® Windows®, εκτός αν αναφέρεται κάτι διαφορετικό.

E:\> tools\fdimage floppies\kern.flp A:

Τα παραδείγματα που ξεκινούν με # υποδηλώνουν μια εντολή που θα πρέπει να εκτελεστεί από τον υπερχρήστη (superuser) ενός συστήματος FreeBSD. Μπορείτε να συνδεθείτε σαν χρήστης root για να πληκτρολογήσετε την εντολή, ή να συνδεθείτε σαν κανονικός χρήστης και να χρησιμοποιήσετε την εντολή su(1) ώστε να αποκτήσετε προνόμια υπερχρήστη.

# dd if=kern.flp of=/dev/fd0

Τα παραδείγματα που ξεκινούν με % υποδηλώνουν μια εντολή που πρέπει να εκτελεστεί από ένα κανονικό χρήστη. Χρησιμοποιείται η σύνταξη C-shell για να θέσουμε μεταβλητές περιβάλλοντος και άλλες εντολές κελύφους, εκτός αν αναφέρεται κάτι διαφορετικό.

% top

Ευχαριστίες

Το βιβλίο που κρατάτε, παρουσιάζει τις προσπάθειες πολλών εκατοντάδων ανθρώπων από όλο τον κόσμο. Είτε μας ενημέρωσαν για τυπογραφικά λάθη, είτε μας έστειλαν ολόκληρα κεφάλαια, η συμβολή όλων ήταν χρήσιμη.

Μερικές εταιρείες υποστήριξαν την ανάπτυξη αυτού του εγγράφου μισθώνοντας συντάκτες να εργάζονται σε πλήρη απασχόληση, πληρώνοντας για την έκδοση, κτλ. Ειδικότερα, η BSDi (η οποία αργότερα αποκτήθηκε από την Wind River Systems) μίσθωσε μέλη του FreeBSD Documentation Project να εργάζονται σε πλήρη απασχόληση για την βελτίωση του βιβλίου, οδηγώντας στην πρώτη έντυπη έκδοση στα αγγλικά τον Μάρτιο του 2000 (ISBN 1-57176-241-8). Η εταιρεία Wind River Systems μίσθωσε τότε μερικούς επιπρόσθετους συντάκτες ώστε να κάνει βελτιώσεις στην δομή της έντυπης έκδοσης και να προσθέσει κάποια νέα κεφάλαια. Η αποκορύφωση αυτής της εργασίας ήταν η παρουσίαση της δεύτερης έντυπης έκδοσης, τον Νοέμβριο του 2001 (ISBN 1-57176-303-1). 1-57176-303-1). Το 2003-2004, η FreeBSD Mall, Inc, μίσθωσε αρκετούς συνεργάτες να βελτιώσουν το Εγχειρίδιο Χρήσης προς ετοιμασία της τρίτης έντυπης έκδοσης.

path: "/books/handbook/" --- :leveloffset: +1

Part I: Εισαγωγή

Chapter 1. Σύνοψη

Ευχαριστούμε για το ενδιαφέρον σας για το FreeBSD! Το ακόλουθο κεφάλαιο καλύπτει διάφορες πτυχές του FreeBSD Project, όπως την ιστορία του, τους στόχους του, το μοντέλο ανάπτυξης, κ.τ.λ.

Μετά την ανάγνωση αυτού του κεφαλαίου, θα γνωρίζετε:

  • Πως σχετίζεται το FreeBSD με άλλα λειτουργικά συστήματα Η/Υ.

  • Την ιστορία του FreeBSD Project.

  • Τους στόχους του FreeBSD Project.

  • Τις βασικές αρχές του open-source μοντέλου ανάπτυξης του FreeBSD.

  • Και φυσικά: από που προέρχεται το όνομα "FreeBSD".

Chapter 2. Καλώς ήλθατε στο FreeBSD!

Το FreeBSD είναι ένα λειτουργικό σύστημα βασισμένο στο 4.4BSD-Lite, το οποίο μπορεί να χρησιμοποιηθεί σε Η/Υ Intel (x86 και Itanium®), AMD64 και Sun UltraSPARC®. Σε εξέλιξη βρίσκεται επίσης η διαδικασία μεταφοράς του FreeBSD σε άλλες αρχιτεκτονικές. Μπορείτε επίσης να διαβάσετε για την ιστορία του FreeBSD, ή για την πιο πρόσφατη επίσημη έκδοση του. Εάν ενδιαφέρεστε να συμβάλλετε με κάποιο τρόπο στο Project (κώδικα, hardware, χρηματοδότηση), διαβάστε το άρθρο Συνεισφέροντας στην Ανάπτυξη του FreeBSD.

2.1. Τι μπορεί να κάνει το FreeBSD;

Το FreeBSD έχει πολλά αξιόλογα χαρακτηριστικά. Μερικά από αυτά είναι:

  • Preemptive πολυεπεξεργασία (preemptive multitasking) με δυναμικό έλεγχο προτεραιότητας για να εξασφαλιστεί ομαλός και δίκαιος διαμοιρασμός των πόρων του Η/Υ μεταξύ εφαρμογών και χρηστών, ακόμη και στις πιο αντίξοες συνθήκες και βαρύ φορτίο.

  • Πολυχρηστικές δυνατότητες (multi-user facilities) οι οποίες επιτρέπουν σε πολλά άτομα ταυτόχρονα να χρησιμοποιήσουν ένα σύστημα FreeBSD για διαφορετικά πράγματα. Αυτό σημαίνει, για παράδειγμα, ότι τα περιφερειακά του συστήματος, όπως εκτυπωτές και οδηγοί ταινιών είναι σωστά μοιρασμένα μεταξύ όλων των χρηστών του συστήματος ή του δικτύου και πως μπορούν να τεθούν συγκεκριμένα όρια σε χρήστες ή ομάδες χρηστών, προστατεύοντας κρίσιμους πόρους του συστήματος από υπερβολική χρήση.

  • Ισχυρές δυνατότητες δικτύωσης TCP/IP (TCP/IP networking) με υποστήριξη για βιομηχανικά πρότυπα όπως τα SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec και IPv6. Αυτό σημαίνει πως ένα μηχάνημα FreeBSD μπορεί να αλληλεπιδρά εύκολα με άλλα συστήματα και να εργάζεται σαν εταιρικός εξυπηρετητής, υποστηρίζοντας λειτουργίες ζωτικής σημασίας, όπως NFS (απομακρυσμένη πρόσβαση σε αρχεία) και υπηρεσίες ηλεκτρονικού ταχυδρομείου (e-mail), ή την παρουσία του οργανισμού σας στο διαδίκτυο μέσω των υπηρεσιών WWW, FTP, routing και firewall (ασφάλειας).

  • Η προστασία της μνήμης (memory protection) εξασφαλίζει ότι οι διάφορες εφαρμογές (ή οι χρήστες) δεν αλληλεπιδρούν μεταξύ τους. Μια εφαρμογή που παρουσιάζει κάποιο πρόβλημα δε μπορεί να επηρεάσει άλλες με κανέναν τρόπο.

  • Το βιομηχανικό πρότυπο X Window System (X11R6) προσφέρει γραφικό περιβάλλον εργασίας (GUI) σε οποιοδήποτε μηχάνημα και διατίθεται με τον πλήρη πηγαίο κώδικα.

  • Συμβατότητα εκτελέσιμων με πολλά προγράμματα που έχουν μεταγλωττιστεί για Linux, SCO, SVR4, BSDI και NetBSD.

  • Χιλιάδες έτοιμες-προς-εκτέλεση εφαρμογές είναι διαθέσιμες από την συλλογή ports και packages για το FreeBSD. Γιατί να ψάχνετε στο διαδίκτυο όταν μπορείτε να τα βρείτε όλα εδώ;

  • Στο διαδίκτυο είναι επίσης διαθέσιμες χιλιάδες πρόσθετες και εύκολες στην προσαρμογή εφαρμογές. Το FreeBSD έχει συμβατότητα πηγαίου κώδικα με τα πιο δημοφιλή εμπορικά συστήματα UNIX®, επομένως οι περισσότερες εφαρμογές χρειάζονται λίγες έως καθόλου μετατροπές για να μεταγλωττιστούν (compile).

  • Η κατά απαίτηση σελιδοποίηση εικονικής μνήμης και το "ολοκληρωμένο VM/buffer cache" παρέχουν υψηλή απόδοση σε εφαρμογές με αυξημένες ανάγκες σε μνήμη, ενώ διατηρούν την ικανοποιητική απόκριση του συστήματος στους άλλους χρήστες.

  • Υποστήριξη SMP για μηχανήματα με πολλαπλές CPU.

  • Πλήρης σειρά εργαλείων ανάπτυξης για C, C++. Στη Συλλογή των Ports και των έτοιμων πακέτων, θα βρείτε πολλές ακόμα γλώσσες προγραμματισμού, κατάλληλες τόσο για έρευνα όσο και για ανάπτυξη λογισμικού.

  • Η διαθεσιμότητα του πηγαίου κώδικα ολόκληρου του συστήματος σημαίνει ότι έχετε τον υψηλότερο βαθμό ελέγχου στο περιβάλλον σας. Γιατί να είστε κλειδωμένοι σε ένα κλειστό σύστημα και να είστε εξαρτημένοι από τον προμηθευτή σας, όταν μπορείτε να έχετε ένα πραγματικά ανοιχτό σύστημα;

  • Εκτεταμένη online τεκμηρίωση.

  • Και πολλά άλλα!

Το FreeBSD βασίζεται στην έκδοση 4.4BSD-Lite του Computer Systems Research Group (CSRG) του Πανεπιστημίου της Καλιφόρνιας στο Berkeley, και συνεχίζει την διακεκριμένη παράδοση του στην ανάπτυξη συστημάτων BSD. Επιπρόσθετα στο εξαίρετο έργο που παρείχε το CSRG, το FreeBSD Project ξόδεψε πολλές χιλιάδες ώρες στη βελτιστοποίηση του συστήματος για μέγιστες επιδόσεις και αξιοπιστία σε καθημερινές καταστάσεις πραγματικού φόρτου εργασίας. Το FreeBSD προσφέρει απόδοση και αξιοπιστία ισάξια με αντίστοιχων εμπορικών συστημάτων και τα συνδυάζει με τελευταίες τεχνολογιές και χαρακτηριστικά που δεν υπάρχουν πουθενά αλλού.

Οι εφαρμογές στις οποίες μπορεί να χρησιμοποιηθεί το FreeBSD, πραγματικά περιορίζονται μόνο από την φαντασία σας. Από ανάπτυξη λογισμικού μέχρι αυτοματισμούς εργοστασίων, από απογραφή ειδών μέχρι την διόρθωση του αζιμούθιου απομακρυσμένων δορυφορικών κεραιών, εάν μπορεί να γίνει με ένα εμπορικό προϊόν UNIX®, είναι παραπάνω από πιθανό ότι μπορεί να γίνει και με το FreeBSD! Το FreeBSD επίσης ωφελείται σημαντικά από κυριολεκτικά χιλιάδες εφαρμογές υψηλής ποιότητας που αναπτύσσονται από κέντρα ερευνών και πανεπιστήμια σε όλο τον κόσμο, και συχνά διατίθενται σε χαμηλό κόστος ή δωρεάν. Το πλήθος των εμπορικών εφαρμογών που διατίθενται για το FreeBSD, αυξάνεται επίσης καθημερινά.

Ο πηγαίος κώδικας του ίδιου του FreeBSD είναι πλήρως διαθέσιμος, και έτσι το σύστημα μπορεί να προσαρμοστεί σε αφάνταστα υψηλό επίπεδο για ειδικές εφαρμογές ή projects, και με τρόπους γενικά μη πραγματοποιήσιμους σε άλλα λειτουργικά εμπορικών προμηθευτών. Παρακάτω θα βρείτε μερικά μόνο παραδείγματα από εφαρμογές στις οποίες χρησιμοποιείται αυτή τη στιγμή το FreeBSD:

  • Υπηρεσίες Ίντερνετ: Το ισχυρό σύστημα δικτύωσης TCP/IP του FreeBSD, το αναδεικνύει σε ιδανική πλατφόρμα για μια μεγάλη γκάμα υπηρεσιών Ίντερνετ όπως:

    • Εξυπηρετητές ιστοσελίδων World Wide Web (κοινούς ή με ασφαλή σύνδεση [SSL])

    • Δρομολόγηση πρωτοκόλλων IPv4 και IPv6

    • Firewalls και πύλες NAT ("IP masquerading")

    • Εξυπηρετητές FTP

    • Εξυπηρετητές ηλεκτρονικού ταχυδρομείου

    • Και άλλα…​

  • Εκπαίδευση: Είστε φοιτητής πληροφορικής ή κάποιου σχετικού τομέα; Δεν υπάρχει καλύτερος τρόπος να μάθετε για λειτουργικά συστήματα, αρχιτεκτονικές Η/Υ, και συστήματα δικτύων από την πρακτική εμπειρία και την σε βάθος γνώση που μπορεί να σας παρέχει το FreeBSD. Το μεγάλο πλήθος των δωρεάν διαθέσιμων πακέτων εφαρμογών CAD, γραφικής σχεδίασης, και μαθηματικών, κάνουν το FreeBSD εξαιρετικά χρήσιμο σε όσους το κύριο ενδιαφέρον τους στους υπολογιστές είναι να κάνουν τη δουλειά τους!

  • Έρευνα: Με διαθέσιμο τον πηγαίο κώδικα ολόκληρου του συστήματος, το FreeBSD είναι μία εξαίρετη πλατφόρμα για την έρευνα στα λειτουργικά συστήματα όπως επίσης για άλλους κλάδους της πληροφορικής. Η φύση της ελεύθερης διάθεσης του FreeBSD επιτρέπει επίσης σε απομακρυσμένες ομάδες να συνεργάζονται σε ιδέες ή να μοιράζονται την ανάπτυξη εφαρμογών, χωρίς να ανησυχούν για άδειες χρήσης και χωρίς να περιορίζεται η δυνατότητα τους για ελεύθερη συζήτηση οποιουδήποτε θέματος σε ανοιχτές ομάδες συζήτησης (forums).

  • Δικτύωση: Χρειάζεστε ένα καινούργιο router (δρομολογητή); Ένα εξυπηρετητή DNS; Ένα firewall για να κρατάτε τον κόσμο έξω από το εσωτερικό σας δίκτυο; Το FreeBSD μπορεί εύκολα να μετατρέψει εκείνο το παλιό PC που κάθεται αχρησιμοποίητο στην γωνία, σε ένα προηγμένο δρομολογητή με εξεζητημένες δυνατότητες φιλτραρίσματος πακέτων.

  • Embedded: Το FreeBSD αποτελεί μια εξαιρετική πλατφόρμα για τη δημιουργία embedded συστημάτων. Με υποστήριξη για τις πλατφόρμες ARM®, MIPS® και PowerPC® και σε συνδυασμό με αξιόπιστη δικτύωση, προηγμένα χαρακτηριστικά και την ελεύθερη άδεια BSD το FreeBSD είναι ένα εξαιρετικό σημείο εκκίνησης για embedded συστήματα router, firewall και άλλα.

  • Desktop: Το FreeBSD είναι μια εξαίρετη επιλογή για ένα οικονομικό desktop. Το FreeBSD σας επιτρέπει να επιλέξετε ανάμεσα σε πολλά ανοικτού κώδικα περιβάλλοντα εργασίας τα οποία περιλαμβάνουν το GNOME και το KDE. To FreeBSD μπορεί να ξεκινήσει ακόμα και "diskless" (χωρίς σκληρό δίσκο), κάνοντας έτσι τους προσωπικούς σταθμούς εργασίας ακόμη πιο φτηνούς και ευκολότερους στη διαχείριση.

  • Ανάπτυξη Λογισμικού: Το βασικό σύστημα του FreeBSD διατίθεται ολοκληρωμένο, με πλήρη σειρά εργαλείων ανάπτυξης, που περιλαμβάνουν ένα πλήρη C/C++ compiler και debugger.

Το FreeBSD είναι διαθέσιμο για δωρεάν κατέβασμα ή μπορείτε να το προμηθευτείτε σε CD-ROM ή DVD. Δείτε το Που θα Βρείτε το FreeBSD για περισσότερες πληροφορίες για το πως να αποκτήσετε το FreeBSD.

2.2. Ποιος χρησιμοποιεί FreeBSD;

Τα προηγμένα χαρακτηριστικά, η αποδεδειγμένη ασφάλεια και ο τακτικός κύκλος νέων εκδόσεων του FreeBSD, σε συνδυασμό με την ελεύθερη άδεια χρήσης του, το κάνουν ιδανικό ως πλατφόρμα για τη δημιουργία πολλών εμπορικών και ανοιχτών συσκευών και προϊόντων. Κάποιες από τις μεγαλύτερες εταιρίες στο χώρο του IT χρησιμοποιούν το FreeBSD:

  • Apache - Το Apache Software Foundation χρησιμοποιεί το FreeBSD στα περισσότερα δημόσια συστήματα του, που συμπεριλαμβάνουν ένα από τα μεγαλύτερα αποθετήρια SVN στον κόσμο με περισσότερα από 1.4 εκατομμύρια commits.

  • Apple - Το OS X δανείζεται πολλά στοιχεία από το FreeBSD για το υποσύστημα δικτύωσης και τα εργαλεία χρήστη (userland). To iOS περιέχει επίσης στοιχεία που προέρχονται από το FreeBSD.

  • Cisco - Οι συσκευές ασφαλείας IronPort και anti-spam χρησιμοποιούν ένα τροποποιημένο πυρήνα του FreeBSD.

  • Citrix - Η σειρά συσκευών ασφαλείας NetScaler παρέχει load balancing στα επίπεδα 4-7, caching περιεχομένου, firewall σε επίπεδο εφαρμογών, ασφαλές VPN και υπηρεσίες mobile cloud σε συνδυασμό με την ισχύ του τερματικού του FreeBSD.

  • Dell KACE - Οι συσκευές διαχείρισης συστημάτων KACE χρησιμοποιούν FreeBSD λόγω της σταθερότητας και επεκτασιμότητας του καθώς και της κοινότητας που στηρίζει την συνεχή ανάπτυξη του.

  • Experts Exchange - Όλοι οι δημόσιοι εξυπηρετητές ιστοσελίδων χρησιμοποιούν FreeBSD με εκτεταμένη χρήση jails για την απομόνωση των περιβάλλοντων ανάπτυξης και ελέγχου, χωρίς την πρόσθετη επιβάρυνση της εικονικοποίησης (virtualization).

  • Isilon - Τα επαγγλεματικά συστήματα αποθήκευσης της Isilon βασίζονται στο FreeBSD. Η εξαιρετικά ελεύθερη άδεια του FreeBSD επέτρεψε στην Isilon να ενσωματώσει το δικό της κώδικα (με τα δικά της πνευματικά δικαιώματα) στον πυρήνα και να επικεντρώσει την προσπάθεια της στη δημιουργία του προϊόντος της, αντί να ξαναγράψει ένα λειτουργικό σύστημα από την αρχή.

  • iXsystems - Η σειρά συσκευών αποθήκευσης TrueNAS βασίζεται στο FreeBSD. Εκτός από τα εμπορικά της προϊόντα, η iXsystems κατευθύνει επίσης την ανάπτυξη των projects ανοικτού λογισμικού PC-BSD και FreeNAS.

  • Juniper - Το λειτουργικό σύστημα JunOS το οποίο χρησιμοποιείται σε όλες τις συσκευές δικτύωσης της Juniper (που περιλαμβάνουν routers, switches και συσκευές ασφαλείας) βασίζεται στο FreeBSD. Η Juniper είναι μια εταιρία που επιδεικνύει τη συμβιωτική σχέση μεταξύ του Project και των εμπορικών προιόντων. Οι βελτιώσεις που παράγονται στη Juniper ενσωματώνονται στο FreeBSD μειώνοντας έτσι την πολυπλοκότητα της μελλοντικής ενσωμάτωσης νέων χαρακτηριστικών του FreeBSD πίσω στο JunOS.

  • McAfee - Το SecurOS, που αποτελεί τη βάση των προϊόντων firewall της εταιρίας και περιλαμβάνει το Sidewinder, βασίζεται στο FreeBSD.

  • NetApp - Οι συσκευές αποθήκευσης Data ONTAP GX βασίζονται στο FreeBSD. Επιπρόσθετα, η NetApp έχει συνεισφέρει αρκετά νέα χαρακτηριστικά, συμπεριλαμβανομένου του bhyve, του νέου hypervisor ύπο άδεια BSD.

  • Netflix - Η συσκευή OpenConnect που χρησιμοποιεί η Netflix για το streaming ταινιών στους πελάτες της, βασίζεται στο FreeBSD. Η Netflix έχει εκτεταμένη συνεισφορά στον κώδικα και εργάζεται ώστε να μην υπάρχουν διαφορές μεταξύ του κώδικα της και του FreeBSD. Οι συσκευές Netflix OpenConnect είναι υπεύθυνες για περισσότερο από το 32% της συνολικής κίνησης Internet στη Βόρειο Αμερική.

  • Sandvine - Η Sandvine χρησιμοποιεί το FreeBSD ως βάση για την υψηλής απόδοσης δικτυακή πλατφόρμα επεξεργασίας που χρησιμοποιεί στα προϊόντα της.

  • Sony - Η κονσόλα παιχνιδιών PlayStation 4 χρησιμοποιεί μια τροποποιημένη έκδοση του FreeBSD.

  • Sophos - Η συσκευή Sophos Email Appliance χρησιμοποιεί μια ενισχυμένης ασφάλειας έκδοση του FreeBSD και σαρώνει τα εισερχόμενα email για spam και ιούς καθώς και τα εξερχόμενα για ανεπιθύμητα προγράμματα (malware) και πιθανή απώλεια ευαίσθητων δεδομένων.

  • Spectra Logic - Η σειρά αποθηκευτικών μέσων nTier χρησιμοποιεί FreeBSD και OpenZFS.

  • The Weather Channel - Η συσκευή IntelliStar που εγκαθίσταται στους παρόχους καλωδιακής τηλεόρασης και παρέχει δελτία καιρού στους συνδρομητές, χρησιμοποιεί FreeBSD.

  • Verisign - Η Verisign είναι υπεύθυνη για τη λειτουργία των τομέων .com και .net και των αντίστοιχων εξυπηρετητών DNS. Χρησιμοποιεί διάφορα δικτυακά λειτουργικά συστήματα, συμπεριλαμβανομένου του FreeBSD, για να εξασφαλίσει ότι δεν μπορεί να υπάρξει κάποιο κοινό σημείο αποτυχίας στην δικτυακή υποδομή της.

  • Voxer - Η Voxer χρησιμοποιεί το FreeBSD με ZFS στην πλατφόρμα μηνυμάτων που εχει αναπτύξει για κινητά τηλέφωνα. Η Voxer αρχικά χρησιμοποιούσε ένα σύστημα που προέρχονταν από το Solaris, αλλά το άλλαξε σε FreeBSD λόγω της εξαιρετικής του τεκμηρίωσης, της μεγαλύτερης και πιο ενεργής κοινότητας και του φιλικότερου περιβάλλοντος ανάπτυξης. Εκτός από τα ιδιαίτερα κρίσιμα χαρακτηριστικά - όπως το ZFS και το DTrace - το FreeBSD επίσης διαθέτει και υποστήριξη TRIM για το ZFS.

  • WhatsApp - Όταν η WhatsApp χρειάστηκε μια πλατφόρμα ικανή να αντιμετωπίσει περισσότερες από 1 εκατομμύριο ταυτόχρονες συνδέσεις TCP ανά εξυπηρετητή, επέλεξαν το FreeBSD. Έπειτα πέτυχαν περισσότερες από 2.5 εκατομμύρια συνδέσεις ανά εξυπηρετητή.

  • Wheel Systems - Η συσκευή ασφαλείας FUDO επιτρέπει στις επιχειρήσεις να ελέγχουν, να κατευθύνουν και να καταγράφουν διαχειριστές και εργαζομένους άλλων εταιριών που εργάζονται στα συστήματα τους. Βασίζεται στα καλύτερα χαρακτηριστικά ασφαλείας του FreeBSD που περιλαμβάνουν τεχνολογίες όπως ZFS, GELI, Capsicum, HAST και auditdstd.

Το FreeBSD έχει επίσης βοηθήσει στη δημιουργία και άλλων σχετιζόμενων έργων ανοικτού λογισμικού:

  • BSD Router - Ένας εναλλακτικός router για μεγάλες επιχειρήσεις που χρησιμοποιεί FreeBSD και είναι σχεδιασμένος να λειτουργεί σε απλά PC της αγοράς.

  • FreeNAS - Μια τροποποιημένη έκδοση του FreeBSD σχεδιασμένη για χρήση ως συσκευή δικτυακής αποθήκευσης. Παρέχει γραφική διεπαφή γραμμένη σε Python η οποία απλουστεύει τη διαχείριση των συστημάτων αρχείων UFS και ZFS. Περιλαμβάνει υποστήριξη για NFS, SMB/CIFS, AFP, FTP και iSCSI. Έχει δυνατότητα επέκτασης μέσω πρόσθετων (plugins) τα οποία βασίζονται σε FreeBSD jails.

  • GhostBSD - Μια διανομή του FreeBSD για χρήση desktop. Παρέχεται με το περιβάλλον εργασίας Gnome.

  • mfsBSD - Ένα σύνολο εργαλείων για τη δημιουργία ενός συστήματος FreeBSD το οποίο εκτελείται αποκλειστικά από τη μνήμη.

  • NAS4Free - Μια διανομή για εξυπηρετητές αρχείων που βασίζεται στο FreeBSD και παρέχεται με μια web διεπαφή ρυθμίσεων γραμμένη σε PHP.

  • PC-BSD - Μια τροποποιημένη διανομή του FreeBSD που προσανατολίζεται σε χρήση desktop και παρέχει γραφικά εργαλεία για να αναδείξει τη δύναμη του FreeBSD σε όλους τους χρήστες. Είναι σχεδιασμένη ώστε να διευκολύνει τη μετάβαση των χρηστών Windows και OS X στο FreeBSD.

  • pfSense - Μια διανομή για firewall που βασίζεται στο FreeBSD και περιέχει τεράστια συλλογή χαρακτηριστικών και εκτεταμένη υποστήριξη για IPv6.

  • m0n0wall - Μια λιτή έκδοση του FreeBSD με ένα εξυπηρετητή ιστοσελίδων και διεπαφή σε PHP. Έχει σχεδιαστεί ως συσκευή firewall και καταλαμβάνει χώρο μικρότερο από 12 MB.

  • ZRouter - Ένα εναλλακτικό firmware ανοικτού λογισμικού για δικτυακές συσκευές, βασισμένο στο FreeBSD. Έχει σχεδιαστεί ώστε να αντικαθιστά το ιδιοταγές firmware εμπορικών routers.

Το FreeBSD χρησιμοποιείται για να υποστηρίζει μερικές από τις μεγαλύτερες τοποθεσίες στο Ίντερνετ, περιλαμβανομένων των:

και πολλών ακόμη. Στη Wikipedia θα βρείτε μια λίστα προϊόντων που βασίζονται στο FreeBSD.

Chapter 3. Πληροφορίες για το FreeBSD Project

Το ακόλουθο τμήμα παρέχει μερικές πληροφορίες σχετικές με το project, και περιλαμβάνει μια σύντομη ιστορία του FreeBSD, τους στόχους, και το μοντέλο ανάπτυξης του.

3.1. Μια σύντομη ιστορία του FreeBSD

To FreeBSD Project γεννήθηκε στις αρχές του 1993, μερικώς σαν εξέλιξη του "Unofficial 386BSD Patchkit" από τους 3 τελευταίους συντονιστές του patchkit: τον Nate Williams, τον Rod Grimes και τον Jordan Hubbard.

Ο πρωταρχικός στόχος ήταν να παραχθεί ένα ενδιάμεσο στιγμιότυπο (snapshot) του 386BSD ώστε να διορθωθούν μερικά προβλήματα που ο μηχανισμός του patchkit δεν ήταν ικανός να λύσει. Ο αρχικός τίτλος εργασίας για το project ήταν "386BSD 0.5" ή "386BSD Interim" και αναφέρονταν σε αυτό ακριβώς το γεγονός.

Το 386BSD ήταν το λειτουργικό σύστημα του Bill Jolitz, το οποίο μέχρι εκείνο το σημείο, υπέφερε βαριά έχοντας αμεληθεί για σχεδόν ένα έτος. Καθώς το patchkit φούσκωνε ολοένα και περισσότερο με το πέρασμα των ημερών, το ενδιάμεσο "cleanup" snapshot αποτέλεσε μια συμπαράσταση για τον Bill. Τα σχέδια αυτά διακόπηκαν απότομα, όταν ξαφνικά ο Bill Jolitz αποφάσισε να αποσύρει την έγκριση του στο project δίχως μια ξεκάθαρη ένδειξη του τι θα έπρεπε να γίνει.

Οι τρεις συντονιστές γρήγορα αποφάσισαν πως ο στόχος παρέμενε αξιόλογος, ακόμη και χωρίς την βοήθεια του Bill, και έτσι υιοθέτησαν το όνομα "FreeBSD", που επινόησε ο David Greenman. Οι αρχικοί στόχοι τέθηκαν κατόπιν συμβουλών από τους τότε χρήστες του συστήματος, και όταν έγινε πλέον ξεκάθαρο πως το project είχε πάρει σωστή πορεία και ίσως έτεινε να γίνει πραγματικότητα, ο Jordan ήρθε σε επαφή με την Walnut Creek CDROM προσβλέποντας στην βελτίωση των καναλιών διανομής του FreeBSD για όλους αυτούς τους άτυχους που δεν είχαν εύκολη πρόσβαση στο Ίντερνετ. Η Walnut Creek CDROM, όχι μόνο υποστήριξε την ιδέα διανομής του FreeBSD σε CD, αλλά προχώρησε αρκετά περισσότερο, παρέχοντας στο project ένα μηχάνημα εργασίας και μια γρήγορη σύνδεση στο Ίντερνετ. Δίχως τον βαθμό πίστης της Walnut Creek CDROM σε αυτό που εκείνο τον καιρό ήταν ένα εντελώς άγνωστο project, είναι πολύ απίθανο το FreeBSD να είχε φτάσει τόσο μακριά, και τόσο γρήγορα, όπως σήμερα.

Η πρώτη διανομή CD-ROM (και με γενικά ευρεία διάδοση στο δίκτυο) ήταν η FreeBSD 1.0, που κυκλοφόρησε τον Δεκέμβρη του 1993. Βασίζονταν σε μια ταινία του 4.3BSD-Lite ("Net/2") του U.C. Berkeley, έχοντας πάρει και πολλά στοιχεία από το 386BSD και το Free Software Foundation. Ήταν αρκετά επιτυχημένη για πρώτη προσπάθεια, και την συνεχίσαμε με την αρκετά επιτυχημένη έκδοση FreeBSD 1.1 που κυκλοφόρησε τον Μάϊο του 1994.

Περίπου εκείνη την περίοδο, σχηματίστηκαν απρόσμενα στον ορίζοντα σύννεφα καταιγίδας, καθώς η Novell και το U.C. Berkeley τακτοποίησαν την μακράς διαρκείας δικαστική διαμάχη σχετικά με τα δικαιώματα της ταινίας Net/2. Μία συνθήκη αυτής της συμφωνίας ήταν η παραδοχή από την μεριά του U.C. Berkeley ότι μεγάλο μέρος του Net/2 ήταν "επιβαρυμένος" κώδικας και ιδιοκτησία της Novell, η οποία με την σειρά της το είχε αποκτήσει από την AT&T λίγο καιρό πριν. Αυτό που πήρε ως αντάλλαγμα το Berkeley ήταν οι "ευλογίες" της Novell ότι η έκδοση 4.4BSD-Lite, όταν τελικά ολοκληρωνόταν, θα δηλωνόταν ως μη-επιβαρυμένη, και όλοι οι μέχρι τότε χρήστες του Net/2 θα ενθαρρύνονταν ένθερμα να μεταβούν σε αυτή. Αυτό συμπεριλάμβανε και το FreeBSD, και στο project δόθηκε χρόνος μέχρι τον Ιούλιο του 1994 να σταματήσει τις παραδόσεις των προϊόντων που βασίζονταν στο Net/2. Υπό τους όρους αυτής της συμφωνίας, επιτράπηκε στο project μια τελευταία έκδοση πριν την λήξη της προθεσμίας, και αυτή ήταν η έκδοση FreeBSD 1.1.5.1.

Το FreeBSD βρέθηκε τότε στη δυσχερή θέση κυριολεκτικά να ξανα-ανακαλύψει τον εαυτό του από ένα σύνολο από bit του 4.4BSD-Lite, εντελώς καινούργιο, και κυρίως ατελές. Οι εκδόσεις "Lite" ήταν light (ελαφριές) εν' μέρει επειδή το CSRG του Berkeley είχε αφαιρέσει μεγάλο όγκο κώδικα ο οποίος ήταν απαραίτητος για να κατασκευαστεί ένα πραγματικά εκκινήσιμο λειτουργικό σύστημα (λόγω διαφόρων νομικών ζητημάτων), και εν' μέρει επειδή το port για Intel του 4.4 ήταν σε υψηλό βαθμό ατελές. Η μετάβαση ολοκληρώθηκε τον Νοέμβριο του 1994, και σε αυτό το σημείο κυκλοφόρησε η FreeBSD 2.0. Παρά το γεγονός ότι ήταν ακόμη αρκετά πρόχειρη μέσες-άκρες, η έκδοση ήταν μια σημαντική επιτυχία και την ακολούθησε η πιο αξιόπιστη και ευκολότερη ως προς την εγκατάσταση έκδοση FreeBSD 2.0.5 τον Ιούνιο του 1995.

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

Για την ώρα, η μακρόχρονη ανάπτυξη συνεχίζεται στον κλάδο 10.X-CURRENT (trunk) και τα στιγμιότυπα (snapshots) του 10.X είναι πάντοτε διαθέσιμα μέσω του εξυπηρετητή snapshot.

3.2. Στόχοι του FreeBSD Project

Οι στόχοι του FreeBSD Project είναι να παρέχει λογισμικό που θα μπορεί να χρησιμοποιηθεί για οποιαδήποτε περίσταση και δίχως δεσμεύσεις. Πολλοί από μας έχουν κάνει σημαντική επένδυση στον κώδικα (και το project) και σίγουρα δε θα μας πείραζε πότε-πότε μια μικρή οικονομική συνεισφορά, αλλά σίγουρα δεν είμαστε έτοιμοι να επιμείνουμε σε αυτό. Πιστεύουμε ότι η πρωταρχική και σπουδαιότερη "αποστολή" μας είναι να παρέχουμε κώδικα σε υπάρχοντες και μελλοντικούς χρήστες, και για οποιοδήποτε σκοπό, ώστε ο κώδικας μας να έχει την ευρύτερη πιθανή χρήση και να αποφέρει το μεγαλύτερο δυνατό όφελος. Αυτό είναι, πιστεύω, ένας από τους σημαντικότερους στόχους του Ελεύθερου Λογισμικού και ένας από τους οποίους υποστηρίζουμε με ενθουσιασμό.

Το τμήμα του πηγαίου μας κώδικα που βρίσκεται υπό την GNU General Public License (GPL) ή την Library General Public License (LGPL) έχει κάπως περισσότερες δεσμεύσεις, αν και σκοπός τους είναι μάλλον να διασφαλίσουν την ελεύθερη διάθεση του κώδικα, παρά το αντίθετο. Λόγω των επιπρόσθετων επιπλοκών που θέτει η άδεια χρήσης GPL στην εμπορική χρήση του λογισμικού, προτιμούμε, όσο είναι εφικτό, να παρέχουμε το λογισμικό μας υπό το χαλαρότερο BSD copyright.

3.3. Το Μοντέλο Ανάπτυξης του FreeBSD

Η ανάπτυξη του FreeBSD είναι μία πολύ ανοικτή και ευέλικτη διαδικασία, αφού κυριολεκτικά βασίζεται στην συνεισφορά χιλιάδων ανθρώπων από όλο τον κόσμο, όπως μπορείτε να δείτε από την λίστα των συνεργατών μας. Η υποδομή ανάπτυξης του FreeBSD επιτρέπει στα χιλιάδες μέλη των συνεργατών μας να συνεργάζονται μέσω του Ίντερνετ. Είμαστε σταθερά σε αναζήτηση για νέα μέλη στην ομάδα ανάπτυξης και για ιδέες, και όσοι ενδιαφέρονται να ασχοληθούν ακόμη περισσότερο με το project χρειάζεται απλά να επικοινωνήσουν μαζί μας στην ηλεκτρονική λίστα τεχνικών συζητήσεων του FreeBSD. Επίσης η ηλεκτρονική λίστα ανακοινώσεων του FreeBSD είναι διαθέσιμη σε όσους επιθυμούν να ενημερώσουν άλλους χρήστες του FreeBSD για βασικούς τομείς εργασίας πάνω στο Project.

Χρήσιμα πράγματα που πρέπει να γνωρίζετε για το FreeBSD Project και την διαδικασία ανάπτυξης του, είτε δουλεύετε ανεξάρτητα είτε ως στενοί συνεργάτες:

Τα SVN repositories

Για πολλά χρόνια, ο κεντρικός κορμός κώδικα του FreeBSD συντηρούνταν μέσω του CVS (Concurrent Versions System), ενός ελεύθερα διαθέσιμου εργαλείου ελέγχου πηγαίου κώδικα. Τον Ιούνιο του 2008, το Project αποφάσισε τη μετάβαση στο SVN (Subversion). Η αλλαγή κρίθηκε αναγκαία, καθώς οι τεχνικοί περιορισμοί του CVS ήταν πλέον εμφανείς, εξαιτίας του μεγέθους του αποθηκευμένου κώδικα και του ιστορικού που τον συνοδεύει. Η Τεκμηρίωση και η Συλλογή των Ports μεταφέρθηκαν επίσης από το CVS στο SVN το Μάιο και Ιούλιο του 2012 αντίστοιχα. Ακολουθήστε το σύνδεσμο Συγχρονίζοντας τον Πηγαίο σας Κώδικα για περισσότερες πληροφορίες σχετικά με την ανάκτηση του FreeBSD src/ repository και τον σύνδεσμο Χρησιμοποιώντας τη Συλλογή των Ports για λεπτομέρειες σχετικές με την ανάκτηση της Συλλογής των Ports.

Η λίστα των committers

Οι committers είναι άτομα που έχουν άδεια εγγραφής (write) στο δέντρο Subversion και είναι εξουσιοδοτημένοι να κάνουν μετατροπές στον κώδικα του FreeBSD (ο όρος "committer" προέρχεται από την εντολή commit, η οποία χρησιμοποιείται για να γίνουν νέες αλλαγές στο repository). Οποιοσδήποτε μπορεί να υποβάλλει ένα σφάλμα (bug) στη Βάση Δεδομένων Προβλημάτων. Πριν την υποβολή, καλό είναι να γίνει σχετική αναζήτηση στις λίστες ταχυδρομείου, τα φορουμς και τα κανάλια IRC του FreeBSD για να επιβεβαιωθεί ότι όντως πρόκειται για πρόβλημα του λειτουργικού.

The FreeBSD core team

Η FreeBSD core team θα ήταν ισοδύναμη με το διοικητικό συμβούλιο αν το FreeBSD Project ήταν μια ανώνυμη εταιρεία. Ο πρωταρχικός στόχος της core team είναι να εξασφαλίσει ότι το project, στο σύνολο του, είναι σε καλή κατάσταση και να το οδηγεί προς την σωστή κατεύθυνση. Μια από τις λειτουργίες της core team είναι να προσκαλεί αφοσιωμένους και υπεύθυνους developers να συμμετέχουν στην ομάδα ανάπτυξης (τους committers) καθώς και να βρίσκει νέα μέλη για την ίδια την core team καθώς κάποιοι αποχωρούν. Η παρούσα core team εκλέχτηκε από ένα σύνολο υποψηφίων committers τον Ιούλιο του 2014. Εκλογές διεξάγονται κάθε 2 χρόνια.

Όπως και τα περισσότερη μέλη της ομάδας ανάπτυξης, τα περισσότερα μέλη του core team είναι εθελοντές όσον αφορά την ανάπτυξη του FreeBSD και δεν έχουν οικονομικής φύσεως οφέλη από το project, επομένως η "δέσμευση" δεν θα πρέπει να παρερμηνεύεται ως "εγγυημένη υποστήριξη". Η παραπάνω παρομοίωση με το "διοικητικό συμβούλιο" δεν είναι πολύ ακριβής, ίσως είναι καταλληλότερο να πούμε ότι πρόκειται για ανθρώπους που θυσίασαν τις ζωές τους για χάρη του FreeBSD ενάντια στην καλύτερη τους κρίση!

Εξωτερικοί συνεργάτες

Τέλος, αλλά οπωσδήποτε όχι μικρότερης σημασίας, η μεγαλύτερη ομάδα ανάπτυξης είναι οι ίδιοι οι χρήστες που μας παρέχουν σχόλια και διορθώσεις των bug σε σχεδόν σταθερή βάση. Ο κύριος τρόπος για να κρατάτε επαφή με την μη-συγκεντρωτική ομάδα ανάπτυξης του FreeBSD είναι να γίνετε συνδρομητές στην ηλεκτρονική λίστα τεχνικών συζητήσεων του FreeBSD όπου γίνονται οι ανάλογες συζητήσεις. Δείτε το Πηγές Πληροφόρησης στο Διαδίκτυο για περισσότερες πληροφορίες σχετικά με τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου του FreeBSD.

Η Λίστα Συνεργατών του FreeBSD είναι μεγάλη και συνεχώς αυξανόμενη, επομένως γιατί να μην γίνετε και εσείς μέλος της και να συμβάλλετε σήμερα σε κάτι στο FreeBSD;

Η παροχή κώδικα δεν είναι ο μόνος τρόπος για να συνεισφέρετε στο project. Για μια ολοκληρωμένη λίστα των πραγμάτων στα οποία χρειαζόμαστε βοήθεια, παρακαλούμε επισκεφθείτε την Δικτυακή τοποθεσία του FreeBSD Project.

Συνοψίζοντας, το μοντέλο ανάπτυξης μας είναι οργανωμένο σαν ένα χαλαρό σύνολο ομόκεντρων κύκλων. Το συγκεντρωτικό μοντέλο είναι σχεδιασμένο για να διευκολύνει τους χρήστες του FreeBSD, στους οποίους παρέχεται έτσι ένας εύκολος τρόπος παρακολούθησης του βασικού κώδικα, και όχι για να αποκλείουμε πιθανούς συνεργάτες! Επιθυμία μας είναι να παρουσιάσουμε ένα σταθερό λειτουργικό σύστημα σε συνάρτηση με μια μεγάλη γκάμα από προγράμματα εφαρμογών που οι χρήστες να μπορούν εύκολα να εγκαθιστούν και να χρησιμοποιούν - για την εκπλήρωση αυτών των στόχων, το μοντέλο αυτό δουλεύει πολύ καλά.

Το μόνο που ζητάμε από όσους ενδιαφέρονται να ενωθούν μαζί μας στην ομάδα ανάπτυξης του FreeBSD, είναι λίγη από την ίδια αφοσίωση της τωρινής ομάδας, για μια συνεχή πορεία στην επιτυχία του!

3.4. Προγράμματα Τρίτων Κατασκευαστών

Εκτός από τη βασική του διανομή, το FreeBSD προσφέρει μια συλλογή λογισμικού με χιλιάδες προγράμματα για καθημερινή χρήση. Την στιγμή που γράφονται αυτές οι γραμμές, υπάρχουν πάνω από 36000 ports! Η λίστα των ports ξεκινάει από εξυπηρετητές http (WWW), μέχρι παιχνίδια, γλώσσες προγραμματισμού, κειμενογράφους, και οτιδήποτε άλλο ενδιάμεσα. Η συνολική Συλλογή των Ports απαιτεί προσεγγιστικά 3 GB. Για να μεταγλωττιστεί (compile) ένα port, χρειάζεται απλώς να μεταβείτε στον κατάλογο του προγράμματος που επιθυμείτε να εγκαταστήσετε, να πληκτρολογήσετε make install, και να αφήσετε το σύστημα σας να κάνει τα υπόλοιπα. Ολόκληρη η αυθεντική διανομή για κάθε port που κάνετε build παρέχεται δυναμικά έτσι τα ports που δεν χρειάζεστε δεν καταλαμβάνουν άσκοπο χώρο στο σκληρό σας δίσκο. Σχεδόν κάθε port παρέχεται επίσης και σαν προ-μεταγλωττισμένο (pre-compiled) "πακέτο (package)", το οποίο μπορεί να εγκατασταθεί με μια απλή εντολή (pkg install) για εκείνους που δεν επιθυμούν να μεταγλωττίζουν τα ports τους από τον πηγαίο κώδικα. Περισσότερες πληροφορίες για τα packages και τα ports μπορείτε να βρείτε στο Εγκατάσταση Εφαρμογών: Πακέτα και Ports.

3.5. Πρόσθετη Τεκμηρίωση

Όλες οι τρέχουσες εκδόσεις του FreeBSD παρέχουν επιλογή στο πρόγραμμα εγκατάστασης (είτε το sysinstall(8) ή το bsdinstall(8)) για την εγκατάσταση πρόσθετης τεκμηρίωσης στην τοποθεσία /usr/local/shared/doc/freebsd κατά την αρχική εγκατάσταση του συστήματος. Μπορείτε επίσης να εγκαταστήσετε την τεκμηρίωση οποιαδήποτε στιγμή αργότερα, χρησιμοποιώντας τα πακέτα όπως περιγράφεται στο “Χρήση Έτοιμων Πακέτων Τεκμηρίωσης”. Μπορείτε να δείτε την τοπικά εγκατεστημένη τεκμηρίωση χρησιμοποιώντας οποιοδήποτε πρόγραμμα φυλλομετρητή, στις παρακάτω τοποθεσίες:

Το Εγχειρίδιο Χρήσης του FreeBSD

/usr/local/shared/doc/freebsd/handbook/index.html

Συχνές ερωτήσεις του FreeBSD (FAQ)

/usr/local/shared/doc/freebsd/faq/index.html

Μπορείτε επίσης να δείτε τα πρωτότυπα (και συχνά αναβαθμιζόμενα) αντίγραφα στο http://www.FreeBSD.org/.

Chapter 4. Εγκατάσταση του FreeBSD 9.x και Μεταγενέστερων Εκδόσεων

4.1. Σύνοψη

Το FreeBSD έρχεται με ένα μη-γραφικό αλλά εύκολο στη χρήση πρόγραμμα εγκατάστασης. Από το FreeBSD 9.0-RELEASE και μετά, χρησιμοποιείται το πρόγραμμα bsdinstall ενώ οι προηγούμενες εκδόσεις χρησιμοποιούν το sysinstall. Το κεφάλαιο αυτό περιγράφει τη χρήση του bsdinstall. Η χρήση του sysinstall περιγράφεται στο “Εγκατάσταση του FreeBSD 8.x και Προγενέστερων Εκδόσεων”.

Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:

  • Πως να δημιουργήσετε μέσα εγκατάστασης για το FreeBSD.

  • Πως το FreeBSD υποδιαιρεί τους σκληρούς δίσκους και πως αναφέρεται σε αυτούς.

  • Πως να εκκινήσετε το bsdinstall.

  • Τις ερωτήσεις που θα σας κάνει το bsdinstall, τι σημαίνουν και πως να τις απαντήσετε.

Πριν διαβάσετε αυτό το κεφάλαιο θα πρέπει:

  • Να διαβάσετε τη λίστα του υλικού που υποστηρίζεται από την έκδοση του FreeBSD που εγκαθιστάτε και να επαληθεύσετε ότι το υλικό του υπολογιστή σας υποστηρίζεται.

Σε γενικές γραμμές, αυτές οι οδηγίες εγκατάστασης αναφέρονται στην αρχιτεκτονική i386™ ("PC συμβατή"). Όπου χρειάζεται, γίνεται αναφορά και σε άλλες αρχιτεκτονικές. Πιθανόν να υπάρχουν μικρές διαφορές στο πρόγραμμα εγκατάστασης σε σχέση με το παρόν κείμενο και για το λόγο αυτό σας συνιστούμε να το χρησιμοποιήσετε ως γενικό οδηγό παρά σαν κυριολεκτικά ακριβείς οδηγίες.

4.2. Απαιτήσεις Υλικού

4.2.1. Ελάχιστες Απαιτήσεις Εγκατάστασης

Οι ελάχιστες απαιτήσεις για την εγκατάσταση του FreeBSD ποικίλουν ανάλογα με την έκδοση του λειτουργικού και την αρχιτεκτονική του υλικού που χρησιμοποιείται.

Στις επόμενες ενότητες θα σας παρουσιάσουμε μια σύνοψη αυτών των πληροφοριών. Ανάλογα με τη μέθοδο που θα χρησιμοποιήσετε για να εγκαταστήσετε το FreeBSD, μπορεί να χρειαστείτε ένα υποστηριζόμενο οδηγό CDROM και - σε κάποιες περιπτώσεις - μια κάρτα δικτύου. Τα θέματα αυτά καλύπτονται στο Προετοιμάστε τα Μέσα Εγκατάστασης.

4.2.1.1. FreeBSD/i386

Το FreeBSD/i386 απαιτεί 486 ή καλύτερο επεξεργαστή και τουλάχιστον 64 MB RAM. Για την ελάχιστη δυνατή εγκατάσταση απαιτείται 1.1 GB ελεύθερου χώρου στο σκληρό δίσκο.

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

4.2.1.2. FreeBSD/amd64

Υπάρχουν δύο κλάσεις επεξεργαστών ικανές να εκτελέσουν το FreeBSD/amd64. Η πρώτη είναι οι επεξεργαστές AMD64 που περιλαμβάνουν τους AMD Athlon™64, AMD Athlon™64-FX, AMD Opteron™ ή καλύτερους.

Η δεύτερη κλάση επεξεργαστών που μπορούν να εκτελέσουν το FreeBSD/amd64 περιλαμβάνει όσους χρησιμοποιούν την αρχιτεκτονική Intel® EM64T. Παραδείγματα των επεξεργαστών αυτών περιλαμβάνουν τις οικογένειες Intel® Core™ 2 Duo, Quad, Extreme processor, τη σειρά επεξεργαστών Intel® Xeon™ 3000, 5000 και 7000 καθώς και τους επεξεργαστές Intel® Core™ i3, i5 και i7.

Αν το μηχάνημα σας είναι βασισμένο σε nVidia nForce3 Pro-150, θα πρέπει να χρησιμοποιήσετε την κατάλληλη επιλογή στο BIOS για να απενεργοποιήσετε το IO APIC. Αν η επιλογή αυτή δεν υπάρχει, θα πρέπει να απενεργοποιήσετε αντί αυτού το ACPI. Υπάρχουν προβλήματα στο Pro-150 για τα οποία μέχρι στιγμής δεν έχει βρεθεί λύση που να τα παρακάμπτει.

4.2.1.3. FreeBSD/powerpc Apple® Macintosh®

Υποστηρίζονται όλοι οι νέοι υπολογιστές Apple® Macintosh® που διαθέτουν ενσωματωμένες USB. Υποστηρίζεται επίσης η λειτουργία SMP σε μηχανήματα με πολλαπλούς επεξεργαστές.

Ένας 32-bit πυρήνας μπορεί να χρησιμοποιήσει μόνο τα πρώτα 2 GB RAM. Το FireWire® δεν υποστηρίζεται στα Μπλε και Λευκά PowerMac G3.

4.2.1.4. FreeBSD/sparc64

Μπορείτε να δείτε τα συστήματα που υποστηρίζονται από το FreeBSD/sparc64 στο FreeBSD/sparc64 Project.

Θα χρειαστείτε ένα δίσκο για αποκλειστική χρήση από το FreeBSD/sparc64. Τη δεδομένη στιγμή, δεν είναι δυνατόν το FreeBSD/sparc64 να μοιράζεται τον ίδιο δίσκο με ένα άλλο λειτουργικό σύστημα.

4.2.2. Υποστηριζόμενο Υλικό

Στις Σημειώσεις Υλικού (Hardware Notes) μπορείτε να βρείτε πληροφορίες για τις αρχιτεκτονικές και τις συσκευές που υποστηρίζονται από μια επίσημη έκδοση του FreeBSD. Το αρχείο αυτό ονομάζεται συνήθως HARDWARE.TXT, και βρίσκεται στον κεντρικό κατάλογο του μέσου εγκατάστασης. Μπορείτε επίσης να βρείτε αντίγραφα αυτού του καταλόγου στη σελίδα Πληροφοριών Έκδοσης στο δικτυακό τόπο του FreeBSD.

4.3. Εργασίες πριν την Εγκατάσταση

4.3.1. Κρατήστε Αντίγραφα Ασφαλείας των Δεδομένων σας

Κρατήστε αντίγραφα ασφαλείας όλων των σημαντικών δεδομένων του υπολογιστή στον οποίο θα κάνετε εγκατάσταση του FreeBSD. Ελέγξτε τη σωστή λειτουργία των αντιγράφων ασφαλείας πριν συνεχίσετε. Το πρόγραμμα εγκατάστασης του FreeBSD θα ζητήσει επιβεβαίωση πριν κάνει οποιαδήποτε αλλαγή στο δίσκο σας, αλλά από τη στιγμή που αυτή η διαδικασία ξεκινήσει, δεν υπάρχει δυνατότητα επιστροφής.

4.3.2. Αποφασίστε που θα Εγκαταστήσετε το FreeBSD

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

4.3.2.1. Κατατμήσεις Δίσκων για τις Αρχιτεκτονικές FreeBSD/i386 και FreeBSD/amd64

Οι σκληροί δίσκοι μπορούν να χωριστούν σε διακριτά τμήματα. Τα τμήματα αυτά ονομάζονται κατατμήσεις (partitions).

Υπάρχουν δύο τρόποι για να χωριστεί ένας δίσκος σε κατατμήσεις. Ο παραδοσιακός τρόπος χρησιμοποιεί το Master Boot Record (Βασική Εγγραφή Εκκίνησης) ή MBR, ένα πίνακα κατατμήσεων ικανό να αποθηκεύσει ως τέσσερις πρωτεύουσες κατατμήσεις (primary partitions). (Για ιστορικούς λόγους, το FreeBSD ονομάζει τις πρωτεύουσες κατατμήσεις slices ή φέτες.) Το όριο των τεσσάρων κατατμήσεων είναι πολύ περιοριστικό για μεγάλους δίσκους, έτσι μια από αυτές τις κατατμήσεις μπορεί να μετατραπεί σε εκτεταμένη κατάτμηση (extended partition). Μέσα στην εκτεταμένη κατάτμηση μπορούν να δημιουργηθούν πολλαπλές λογικές κατατμήσεις (logical partitions). Αυτό ακούγεται κάπως παράξενο, και μάλλον είναι.

Ο Πίνακας Κατατμήσεων GUID (GUID Partition Table) ή GPT, αποτελεί μια νέα και απλούστερη μέθοδος κατάτμησης ενός δίσκου. Το GPT είναι πολύ πιο βολικό από τον παραδοσιακό πίνακα κατατμήσεων MBR. Οι συνήθεις υλοποιήσεις του GPT επιτρέπουν ως και 128 κατατμήσεις ανά δίσκο, εξαλείφοντας έτσι την ανάγκη για άβολες λύσεις όπως οι λογικές κατατμήσεις.

Κάποια παλιότερα λειτουργικά συστήματα όπως τα Windows® XP δεν είναι συμβατά με το σύστημα κατατμήσεων GPT. Αν το FreeBSD πρόκειται να εγκατασταθεί σε ένα δίσκο από κοινού με ένα τέτοιο λειτουργικό, θα πρέπει να χρησιμοποιήσετε το σύστημα MBR.

Ο τυπικός φορτωτής εκκίνησης (boot loader) του FreeBSD χρειάζεται είτε μια πρωτεύουσα είτε μια GPT κατάτμηση. (Δείτε το Η Διαδικασία Εκκίνησης του FreeBSD για περισσότερες πληροφορίες σχετικά με τη διαδικασία εκκίνησης του FreeBSD.) Αν όλες οι πρωτεύουσες ή GPT κατατμήσεις είναι ήδη σε χρήση, θα πρέπει να ελευθερώσετε μία για χρήση με το FreeBSD.

Η ελάχιστη εγκατάσταση του FreeBSD καταλαμβάνει μόνο περίπου 1 GB χώρο στο δίσκο. Πρόκειται όμως για την απόλυτα ελάχιστη εγκατάσταση η οποία δεν αφήνει σχεδόν καθόλου ελεύθερο χώρο. Μια πιο ρεαλιστική ελάχιστη εγκατάσταση καταλαμβάνει περίπου 3 GB χωρίς γραφικό περιβάλλον και περίπου 5 GB με χρήση κάποιου γραφικού περιβάλλοντος. Η εγκατάσταση λογισμικού τρίτων κατασκευαστών απαιτεί ακόμα περισσότερο χώρο στο δίσκο.

Υπάρχει πληθώρα ελεύθερων και εμπορικών εργαλείων αναδιανομής χώρου κατατμήσεων. Το GParted Live είναι ένα δωρεάν Live CD το οποίο περιλαμβάνει τον επεξεργαστή κατατμήσεων GParted. Το GParted περιλαμβάνεται επίσης σε πολλές άλλες Live διανομές Linux.

Οι εφαρμογές που διαχειρίζονται κατατμήσεις σκληρών δίσκων μπορούν να καταστρέψουν τα δεδομένα σας. Πάρτε πλήρη αντίγραφα ασφαλείας και επιβεβαιώστε την ορθή λειτουργία τους πριν ξεκινήσετε την τροποποίηση των κατατμήσεων του δίσκου σας.

Η αλλαγή μεγέθους κατατμήσεων των Microsoft® Vista ενδέχεται να είναι δύσκολη. Είναι χρήσιμο να έχετε διαθέσιμο ένα DVD εγκατάστασης των Vista πριν ξεκινήσετε μια τέτοια διαδικασία.

Παράδειγμα 1. Χρησιμοποιώντας μια Υπάρχουσα Κατάτμηση

Ένας υπολογιστής Windows® διαθέτει ένα μοναδικό δίσκο 40 GB ο οποίος έχει χωριστεί σε δύο κατατμήσεις των 20 GB. Στα Windows® ονομάζονται C: και D:. Η κατάτμηση C: περιέχει 10 GB δεδομένων, ενώ η κατάτμηση D: 5 GB.

Η μετακίνηση των δεδομένων από τον D: στο C: ελευθερώνει τη δεύτερη κατάτμηση ώστε να μπορεί να χρησιμοποιηθεί από το FreeBSD.

Παράδειγμα 2. Συρρικνώνοντας μια Υπάρχουσα Κατάτμηση

Ένας υπολογιστής Windows® έχει ένα μοναδικό σκληρό δίσκο 40 GB και μια μεγάλη κατάτμηση που τον καταλαμβάνει εξ' ολοκλήρου. Τα Windows® δείχνουν αυτή την κατάτμηση των 40 GB ως ένα μοναδικό οδηγό C:. Τη δεδομένη στιγμή χρησιμοποιούνται 15 GB χώρου. Σκοπός είναι να καταλήξουμε με μια κατάτμηση των 20 GB για τα Windows® και άλλα 20 GB για το FreeBSD.

Υπάρχουν δύο τρόποι για να γίνει αυτό:

  1. Κρατήστε αντίγραφο των δεδομένων που έχετε δημιουργήσει στα Windows®. Έπειτα επανεγκαταστήστε τα Windows® δημιουργώντας μια κατάτμηση μεγέθους 20 GB κατά την διαδικασία εγκατάστασης.

  2. Χρησιμοποιήστε κάποιο εργαλείο αλλαγής μεγέθους κατατμήσεων όπως το GParted για να συρρικνώσετε την κατάτμηση των Windows® και να δημιουργήσετε μια νέα κατάτμηση για το FreeBSD στον ελεύθερο χώρο.

Η εγκατάσταση διαφορετικών λειτουργικών συστημάτων σε άλλες κατατμήσεις, επιτρέπει την εκτέλεση ενός από αυτά σε μια δεδομένη χρονική στιγμή. Μια εναλλακτική μέθοδος που επιτρέπει την ταυτόχρονη εκτέλεση πολλών λειτουργικών περιγράφεται στο Εικονικοποίηση.

4.3.3. Συλλέξτε Πληροφορίες για το Δίκτυο

Κάποιες μέθοδοι εγκατάστασης του FreeBSD χρειάζονται μια σύνδεση δικτύου για να κατεβάσουν αρχεία. Για να συνδεθείτε με ένα δίκτυο Ethernet (ή μέσω καλωδιακού ή DSL modem με διεπαφή Ethernet), το πρόγραμμα εγκατάστασης θα σας ζητήσει πληροφορίες σχετικά με το δίκτυο σας.

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

  1. Διεύθυνση IP

  2. Μάσκα Υποδικτύου

  3. Διεύθυνση IP προεπιλεγμένου δρομολογητή

  4. Όνομα Τομέα για το τοπικό δίκτυο

  5. Διευθύνσεις IP των διακομιστών DNS

4.3.4. Ελέγξτε για Παροράματα (Errata) στο FreeBSD

Αν και το FreeBSD Project πασχίζει για να εξασφαλίσει ότι κάθε νέα έκδοση του FreeBSD θα είναι όσο πιο σταθερή γίνεται, ορισμένες φορές στη διαδικασία αυτή εισέρχονται λάθη. Σε πολύ σπάνιες περιπτώσεις, τα λάθη αυτά επηρεάζουν τη διαδικασία εγκατάστασης. Καθώς τα προβλήματα αυτά γίνονται αντιληπτά και επιδιορθώνονται, σημειώνονται στα Παροράματα του FreeBSD στη δικτυακή τοποθεσία του FreeBSD. Ελέγξτε τα παροράματα πριν ξεκινήσετε την εγκατάσταση, για να βεβαιωθείτε ότι δεν υπάρχουν προβλήματα που μπορούν να επηρεάσουν τη διαδικασία.

Μπορείτε να βρείτε πληροφορίες και παροράματα για όλες τις εκδόσεις στη σελίδα πληροφοριών έκδοσης στην δικτυακή τοποθεσία του FreeBSD.

4.3.5. Προετοιμάστε τα Μέσα Εγκατάστασης

Η εγκατάσταση του FreeBSD ξεκινάει με την εκκίνηση του υπολογιστή με τη χρήση ενός FreeBSD CD, DVD ή μνήμης USB. Το πρόγραμμα εγκατάστασης δεν μπορεί να εκτελεστεί μέσα από κάποιο άλλο λειτουργικό σύστημα.

Εκτός από τα τυποποιημένα μέσα εγκατάστασης που περιέχουν όλα τα απαραίτητα αρχεία εγκατάστασης του FreeBSD, διατίθεται επίσης και η εκδοχή bootonly. Αυτό το μέσο εγκατάστασης δεν περιέχει τα απαραίτητα αρχεία, αλλά τα κατεβάζει από το δίκτυο κατά τη διάρκεια της εγκατάστασης. Κατά συνέπεια, το συγκεκριμένο CD είναι αρκετά μικρότερο σε μέγεθος ενώ και το απαιτούμενο εύρος ζώνης του δικτύου περιορίζεται καθώς κατεβαίνουν μόνο τα αρχεία που απαιτούνται.

Μπορείτε να βρείτε έτοιμα μέσα εγκατάστασης για το FreeBSD στην δικτυακή τοποθεσία του FreeBSD.. Κατεβάστε επίσης το αρχείο CHECKSUM.SHA256 από τον ίδιο κατάλογο που περιέχει και το αρχείο εγκατάστασης και χρησιμοποιήστε το για να ελέγξετε την ακεραιότητα του αρχείου εγκατάστασης υπολογίζοντας το Άθροισμα Ελέγχου (checksum). Το FreeBSD διαθέτει το sha256(1) για αυτό το σκοπό και θα βρείτε αντίστοιχα προγράμματα και σε άλλα λειτουργικά συστήματα. Επαληθεύστε το άθροισμα ελέγχου σύμφωνα με αυτό που αναγράφεται στο αρχείο CHECKSUM.SHA256. Τα αθροίσματα πρέπει να είναι ίδια. Αν δεν είναι, το αρχείο εγκατάστασης αλλοιώθηκε κατά το κατέβασμα και είναι άχρηστο.

Αν διαθέτετε ήδη ένα CDROM, DVD ή USB οδηγό εγκατάστασης FreeBSD, μπορείτε να παραλείψετε αυτή την ενότητα.

Τα CD και DVD αρχεία ISO του FreeBSD είναι εκκινήσιμα. Χρειάζεστε μόνο ένα από αυτά για την εγκατάσταση. Γράψτε το αρχείο ISO σε ένα CD ή DVD χρησιμοποιώντας τα αντίστοιχα προγράμματα εγγραφής που διαθέτει το τρέχον λειτουργικό σας σύστημα. Στο FreeBSD, η εγγραφή μπορείτε να γίνει με το πρόγραμμα cdrecord(1) από το port sysutils/cdrtools που μπορείτε να εγκαταστήσετε από τη Συλλογή των Ports.

Για να δημιουργήσετε μια εκκινήσιμη μνήμη Flash (USB), ακολουθήστε τα παρακάτω βήματα:

  1. Ανακτήστε το Αρχείο ISO για τη Μνήμη Flash

    Για το FreeBSD 9.0-RELEASE και μεταγενέστερες εκδόσεις, μπορείτε να κατεβάσετε το αντίστοιχο αρχείο από τον κατάλογο ISO-IMAGES/ στην τοποθεσία ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/arch/ISO-IMAGES/version/FreeBSD-version-RELEASE-arch-memstick.img. Αντικαταστήστε το arch και το version με την αρχιτεκτονική και την έκδοση που θέλετε να εγκαταστήσετε. Για παράδειγμα, το αρχείο για το FreeBSD/i386 9.0-RELEASE βρίσκεται στη θέση ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-memstick.img.

    Ο κατάλογος είναι διαφορετικός για το FreeBSD 8.X και προηγούμενες εκδόσεις. Για περισσότερες πληροφορίες σχετικά με το κατέβασμα και την εγκατάσταση του FreeBSD 8.X και προηγούμενων εκδόσεων, δείτε το Εγκατάσταση του FreeBSD 8.x και Προγενέστερων Εκδόσεων.

    Το αρχείο για τη μνήμη Flash έχει επέκταση .img. Ο κατάλογος ISO-IMAGES/ περιέχει πλήθος από διαφορετικά αρχεία. Θα πρέπει να κατεβάσετε το κατάλληλο ανάλογα με την έκδοση του FreeBSD και το υλικό του υπολογιστή που πρόκειται να χρησιμοποιηθεί.

    Πριν προχωρήσετε, αντιγράψτε τυχόν δεδομένα που έχετε ήδη στη μνήμη USB, καθώς η παρακάτω διαδικασία θα τα διαγράψει.

  2. Γράψτε το Αρχείο στη Μνήμη USB

Procedure: Εγγραφή του Αρχείου με Χρήση του FreeBSD

Το παρακάτω παράδειγμα δείχνει τη συσκευή /dev/da0 ως τον προορισμό εγγραφής του αρχείου. Θα πρέπει να είστε πολύ προσεκτικοί και να βεβαιωθείτε για το όνομα της συσκευής που χρησιμοποιείτε, διαφορετικά ενδέχεται να διαγράψετε δεδομένα που χρειάζεστε.

  1. Εγγραφή του Αρχείου με την dd(1)

    Το αρχείο .imgδεν είναι ένα συνηθισμένο αρχείο. Είναι ένα αρχείο εικόνας (image) με όλο το περιεχόμενο που χρειάζεται η μνήμη USB. Δεν μπορείτε να το αντιγράψετε ως ένα κανονικό αρχείο, θα χρειαστεί να το γράψετε απευθείας στη συσκευή προορισμού χρησιμοποιώντας την εντολή dd(1):

    # dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k

Procedure: Εγγραφή του Αρχείου Μέσω Windows®

Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό όνομα οδηγού για την μνήμη USB, διαφορετικά μπορεί να προκληθεί απώλεια δεδομένων.

  1. Ανάκτηση του Προγράμματος Image Writer για Windows®

    Το Image Writer για Windows® είναι μια δωρεάν εφαρμογή που μπορεί να γράψει σωστά ένα αρχείο image σε μια μνήμη USB. Μπορείτε να το κατεβάσετε από την τοποθεσία https://launchpad.net/win32-image-writer/ και να το αποσυμπιέσετε σε ένα φάκελο.

  2. Εγγραφή του Αρχείου με το Image Writer

    Κάντε διπλό κλικ στο εικονίδιο Win32DiskImager για να ξεκινήσετε το πρόγραμμα. Βεβαιωθείτε ότι το γράμμα του οδηγού που φαίνεται στην επιλογή Device αντιστοιχεί στη μνήμη USB. Κάντε κλικ στο εικονίδιο με το φάκελο και επιλέξτε το αρχείο εικόνας που θα γραφεί στη μνήμη USB. Κάντε κλικ στο Save για να αποδεχθείτε το όνομα του αρχείου εικόνας. Βεβαιωθείτε ότι οι παραπάνω ενέργειες είναι σωστές και ότι δεν υπάρχουν ανοικτά παράθυρα στο σύστημα σας που να απεικονίζουν φακέλους της μνήμης USB. Τέλος, κάντε κλικ στο Write για να γράψετε το αρχείο εικόνας στη μνήμη USB.

Δεν υποστηρίζεται πλέον η εγκατάσταση από δισκέτες

Είστε πλέον έτοιμοι να ξεκινήσετε την εγκατάσταση του FreeBSD.

4.4. Ξεκινώντας την Εγκατάσταση

Από προεπιλογή, η εγκατάσταση δεν θα κάνει αλλαγές στους δίσκους σας μέχρι να δείτε το παρακάτω μήνυμα:

Your changes will now be written to disk.  If you
have chosen to overwrite existing data, it will
be PERMANENTLY ERASED. Are you sure you want to
commit your changes?

Μπορείτε να εγκαταλείψετε την εγκατάσταση οποιαδήποτε στιγμή πριν από την παραπάνω προειδοποίηση, χωρίς να έχουν γίνει αλλαγές στα περιεχόμενα του δίσκου σας. Αν ανησυχείτε ότι ενδεχομένως έχετε κάνει κάτι λάθος, μπορείτε απλά να σβήσετε τον υπολογιστή σας πριν από αυτό το σημείο και δεν θα γίνει καμιά ζημιά.

4.4.1. Εκκίνηση

4.4.1.1. Εκκίνηση στις Αρχιτεκτονικές i386™ και amd64
  1. Αν προετοιμάσατε μια "εκκινήσιμη" μνήμη USB όπως περιγράφεται στο Προετοιμάστε τα Μέσα Εγκατάστασης, τοποθετήστε τη μνήμη στην υποδοχή του υπολογιστή σας πριν τον ενεργοποιήσετε.

    Αν πρόκειται να εκκινήσετε από το CDROM, θα χρειαστεί να ενεργοποιήσετε τον υπολογιστή σας και να εισάγετε το CDROM όσο πιο γρήγορα γίνεται.

  2. Ρυθμίστε το μηχάνημα σας να ξεκινάει είτε από το CDROM είτε από την USB, ανάλογα με το μέσο εγκατάστασης που πρόκειται να χρησιμοποιήσετε. Γενικά, αυτό επιτυγχάνεται αλλάζοντας τη σχετική ρύθμιση στο BIOS. Τα περισσότερα συστήματα επιτρέπουν επίσης την επιλογή μιας συσκευής εκκίνησης καθώς ξεκινούν, τυπικά με τα πλήκτρα F10, F11, F12, ή Escape.

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

    1. Δεν τοποθετήσατε το CD ή DVD αρκετά νωρίς κατά την εκκίνηση. Αφήστε το μέσο στον οδηγό και δοκιμάστε να επανεκκινήσετε τον υπολογιστή σας.

    2. Οι αλλαγές ρυθμίσεων που κάνατε στο BIOS δεν λειτούργησαν σωστά. Θα πρέπει να ξαναδοκιμάσετε μέχρι να πετύχετε τις σωστές ρυθμίσεις.

    3. Το BIOS της μητρικής σας δεν υποστηρίζει εκκίνηση από το μέσο που έχετε επιλέξει. Μπορείτε να χρησιμοποιήσετε τον Plop Boot Manager για να εκκινήσετε παλιά μηχανήματα από CD ή USB.

  4. Θα αρχίσει η εκκίνηση του FreeBSD. Αν ξεκινάτε από CDROM, θα δείτε μια οθόνη σαν την παρακάτω (έχουμε παραλείψει τις πληροφορίες έκδοσης):

    Booting from CD-ROM...
    645MB medium detected
    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.02
    Consoles: internal video/keyboard
    BIOS CD is cd0
    BIOS drive C: is disk0
    BIOS drive D: is disk1
    BIOS 636kB/261056kB 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+0x88e9d]
    \
  5. Εμφανίζεται η οθόνη του φορτωτή εκκίνησης του FreeBSD:

    bsdinstall boot loader menu
    Σχήμα 1. Μενού Φορτωτή Εκκίνησης του FreeBSD

    Περιμένετε δέκα δευτερόλεπτα, ή πιέστε Enter.

4.4.1.2. Εκκίνηση στον Macintosh® PowerPC®

Στα περισσότερα μηχανήματα, μπορείτε να κρατήσετε πιεσμένο το πλήκτρο C κατά την εκκίνηση και θα ξεκινήσετε από το CD. Σε διαφορετική περίπτωση, κρατήστε πιεσμένα τα πλήκτρα Command+Option+O+F, ή Windows+Alt+O+F αν χρησιμοποιείτε πληκτρολόγιο που δεν είναι Apple®. Στην προτροπή 0 > γράψτε:

 boot cd:,\ppc\loader cd:0

Σε μηχανήματα Xserve χωρίς πληκτρολόγιο, δείτε την σελίδα τεχνικής υποστήριξης της Apple® για πληροφορίες εκκίνησης στο Open Firmware.

4.4.1.3. Εκκίνηση στον sparc64

Τα περισσότερα συστήματα sparc64 είναι ρυθμισμένα να εκκινούν αυτόματα από το σκληρό δίσκο. Για να εγκαταστήσετε το FreeBSD, θα πρέπει να εκκινήσετε από το δίκτυο ή από ένα CDROM. Θα χρειαστεί να εισέλθετε στις ρυθμίσεις της PROM (OpenFirmware).

Για να γίνει αυτό, επανεκκινήστε το σύστημα και περιμένετε μέχρι να εμφανιστεί το μήνυμα εκκίνησης. Το ακριβές μήνυμα εξαρτάται από το μοντέλο, αλλά γενικά θα δείχνει όπως το παρακάτω:

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.

Αν μετά από αυτό το σημείο το σύστημα σας συνεχίζει με εκκίνηση από το σκληρό δίσκο, θα πρέπει να πιέσετε L1+A ή Stop+A στο πληκτρολόγιο, ή να στείλετε σήμα BREAK μέσω της σειριακής κονσόλας (χρησιμοποιώντας π.χ. το ~# στο tip(1) ή cu(1)) για να βγείτε στην προτροπή της PROM η οποία μοιάζει με την παρακάτω:

ok     (1)
ok {0} (2)
1Αυτή η προτροπή φαίνεται σε συστήματα με μόνο μία CPU.
2Αυτή η προτροπή φαίνεται σε συστήματα SMP. Το ψηφίο δείχνει τον αριθμό της ενεργής CPU.

Στο σημείο αυτό, τοποθετήστε το CDROM στον οδηγό και στην προτροπή της PROM γράψτε boot cdrom.

4.4.2. Επισκόπηση των Αποτελεσμάτων Ανίχνευσης Συσκευών

Οι τελευταίες εκατοντάδες γραμμές που πέρασαν από την οθόνη σας αποθηκεύονται και μπορείτε να τις ξαναδείτε.

Για να δείτε τα περιεχόμενα της προσωρινής μνήμης (buffer) πιέστε Scroll Lock. Με τον τρόπο αυτό ενεργοποιείται η κύλιση της οθόνης. Μπορείτε έπειτα να χρησιμοποιήσετε τα πλήκτρα με τα βελάκια ή τα PageUp και PageDown για να δείτε τα αποτελέσματα. Πιέστε ξανά το Scroll Lock για να σταματήσετε την κύλιση.

Κάντε το αυτό τώρα, για να ξαναδείτε το κείμενο που κύλησε εκτός οθόνης καθώς ο πυρήνας εκτελούσε την ανίχνευση συσκευών. Θα δείτε κείμενο αντίστοιχο με το Τυπικά Αποτελέσματα Ανίχνευσης Συσκευών, αν και θα υπάρχουν διαφορές ανάλογα με τις συσκευές που διαθέτει ο υπολογιστής σας.

Τυπικά Αποτελέσματα Ανίχνευσης Συσκευών

Ελέγξτε προσεκτικά τα αποτελέσματα της ανίχνευσης συσκευών για να βεβαιωθείτε ότι το FreeBSD βρήκε όλες τις συσκευές που αναμένατε. Αν κάποια συσκευή δεν βρέθηκε, δεν θα φαίνεται στην παραπάνω λίστα. Τα Αρθρώματα Πυρήνα σας επιτρέπουν να προσθέσετε υποστήριξη για συσκευές που δεν υπάρχουν στον πυρήνα GENERIC.

Μετά τη διαδικασία ανίχνευσης συσκευών θα δείτε το Επιλογή Τρόπου Λειτουργίας Μέσου Εγκατάστασης. Το μέσο εγκατάστασης μπορεί να χρησιμοποιηθεί με τρεις τρόπους: για να εγκαταστήσετε το FreeBSD, ως "live CD" ή απλά για να αποκτήσετε πρόσβαση σε ένα κέλυφος του FreeBSD. Χρησιμοποιήστε τα βελάκια για να κάνετε μια επιλογή και το Enter για να την επιβεβαιώσετε.

bsdinstall choose mode
Σχήμα 2. Επιλογή Τρόπου Λειτουργίας Μέσου Εγκατάστασης

Επιλέξτε Install για να ξεκινήσετε το πρόγραμμα εγκατάστασης.

4.5. Εισαγωγή στο bsdinstall

Το bsdinstall είναι μια εφαρμογή εγκατάστασης για το FreeBSD που βασίζεται σε περιβάλλον κειμένου. Γράφτηκε από τον Nathan Whitehorn <nwhitehorn@FreeBSD.org> και χρησιμοποιήθηκε πρώτη φορά το 2011 στο FreeBSD 9.0.

Η εφαρμογή pc-sysinstall του Kris Moore <kmoore@FreeBSD.org> συμπεριλαμβάνεται με το PC-BSD και μπορεί επίσης να χρησιμοποιηθεί για την εγκατάσταση του FreeBSD. Αν και μερικές φορές συγχέεται με το bsdinstall οι δύο αυτές εφαρμογές δεν σχετίζονται.

Το σύστημα μενού του bsdinstall ελέγχεται μέσω των πλήκτρων με τα βελάκια και τα πλήκτρα Enter, Tab, Space και μερικά ακόμα.

4.5.1. Επιλογές στο Μενού Keymap

Ανάλογα με το είδος της κονσόλας που χρησιμοποιείτε, το bsdinstall ίσως σας ρωτήσει αν επιθυμείτε να επιλέξετε μια διάταξη πληκτρολογίου διαφορετική από την προεπιλεγμένη.

bsdinstall keymap select default
Σχήμα 3. Επιλογή Διάταξης Πληκτρολογίου

Αν επιλέξετε YES θα εμφανιστεί η οθόνη επιλογής που φαίνεται παρακάτω. Σε διαφορετική περίπτωση, η οθόνη αυτή δεν θα εμφανιστεί και θα χρησιμοποιηθεί η προεπιλεγμένη διάταξη πληκτρολογίου.

bsdinstall config keymap
Σχήμα 4. Μενού Επιλογής Διάταξης Πληκτρολογίου

Επιλέξτε την διάταξη πληκτρολογίου που είναι πιο κοντά στο πληκτρολόγιο που διαθέτετε, χρησιμοποιώντας τα πάνω και κάτω βελάκια και επιβεβαιώνοντας με το Enter.

Αν πιέσετε Esc θα χρησιμοποιηθεί η προεπιλεγμένη διάταξη. Αν η διάταξη του τρέχοντος πληκτρολογίου δεν είναι προφανής, μια ασφαλής επιλογή είναι το United States of America ISO-8859-1.

4.5.2. Καθορισμός Ονόματος Υπολογιστή (hostname)

Στο επόμενο βήμα, το bsdinstall θα σας ρωτήσει για το όνομα υπολογιστή (hostname) το οποίο θα δοθεί στο νέο σύστημα.

bsdinstall config hostname
Σχήμα 5. Καθορισμός Ονόματος Υπολογιστή

Το όνομα που θα δώσετε πρέπει να περιλαμβάνει και τον τομέα (fully-qualified) όπως για παράδειγμα machine3.example.com

4.5.3. Επιλογή Στοιχείων Εγκατάστασης

Στο επόμενο βήμα, το bsdinstall θα σας καλέσει να επιλέξετε ποια προαιρετικά στοιχεία του λειτουργικού επιθυμείτε να εγκαταστήσετε.

bsdinstall config components
Σχήμα 6. Επιλογή Στοιχείων Εγκατάστασης

Η επιλογή των στοιχείων εγκατάστασης εξαρτάται κυρίως από την χρήση που θα έχει το σύστημα και το διαθέσιμο ελεύθερο χώρο στο δίσκο. Ο πυρήνας και τα βασικά προγράμματα του FreeBSD (γνωστά και ως "base system" ή βασικό σύστημα) εγκαθίστανται υποχρεωτικά.

Ανάλογα με το είδος της εγκατάστασης, κάποια από τα παρακάτω στοιχεία μπορεί να μην εμφανιστούν.

Προαιρετικά Στοιχεία
  • doc - Επιπρόσθετη τεκμηρίωση, κυρίως ιστορικής σημασίας. Η τεκμηρίωση που παρέχεται από την Ομάδα Τεκμηρίωσης του FreeBSD εγκαθίσταται χωριστά σε επόμενο στάδιο.

  • games - Κάποια παραδοσιακά BSD παιχνίδια που περιλαμβάνουν τα fortune, rot13 και άλλα.

  • lib32 - Βιβλιοθήκες συμβατότητας για εκτέλεση εφαρμογών 32-bit σε 64-bit εκδόσεις του FreeBSD.

  • ports - Η Συλλογή των Ports του FreeBSD.

    Η Συλλογή των Ports αποτελεί ένα εύκολο και βολικό τρόπο εγκατάστασης λογισμικού. Η Συλλογή των Ports δεν περιέχει τον πηγαίο κώδικα που απαιτείται για τη μεταγλώττιση του λογισμικού. Πρόκειται στην πραγματικότητα για μια συλλογή αρχείων που αυτοματοποιεί τη μεταφόρτωση, μεταγλώττιση και εγκατάσταση λογισμικού τρίτων κατασκευαστών. Το Εγκατάσταση Εφαρμογών: Πακέτα και Ports αναλύει τον τρόπο χρήσης της Συλλογής των Ports.

    Το πρόγραμμα εγκατάστασης δεν ελέγχει για να δει αν διαθέτετε αρκετό ελεύθερο χώρο στο δίσκο. Επιλέξτε αυτό το στοιχείο μόνο αν έχετε αρκετό χώρο. Από το FreeBSD 9.0 και μετά, η Συλλογή των Ports καταλαμβάνει περίπου 3 GB χώρο στο δίσκο. Μπορείτε με βεβαιότητα να θεωρήσετε ότι ο χώρος αυτός θα είναι ακόμα μεγαλύτερος στις νεώτερες εκδόσεις του FreeBSD.

  • src - Ο Πηγαίος Κώδικας του Συστήματος.

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

    Το πλήρες δέντρο του πηγαίου κώδικα καταλαμβάνει 1 GB χώρου στο δίσκο, ενώ μια πλήρης μεταγλώττιση όλου του FreeBSD απαιτεί επιπλέον 5 GB χώρου.

4.6. Εγκατάσταση από το Δίκτυο

Το μέσο εγκατάστασης bootonly δεν διαθέτει αντίγραφα των αρχείων εγκατάστασης. Όταν χρησιμοποιείτε την μέθοδο bootonly, τα αρχεία μεταφορτώνονται από το δίκτυο κατά απαίτηση.

bsdinstall netinstall files
Σχήμα 7. Εγκατάσταση από το Δίκτυο

Μετά την ρύθμιση των παραμέτρων δικτύου όπως φαίνεται στο Ρύθμιση Καρτών Δικτύου, γίνεται η επιλογή ενός mirror site. Τα mirror sites διαθέτουν αντίγραφα των αρχείων του FreeBSD. Επιλέξτε ένα mirror site το οποίο βρίσκεται όσο το δυνατόν πιο κοντά στην περιοχή σας. Με τον τρόπο αυτό, η μεταφόρτωση των αρχείων θα είναι ταχύτερη και θα μειωθεί ο χρόνος εγκατάστασης.

bsdinstall netinstall mirrorselect
Σχήμα 8. Επιλογή Mirror

Η εγκατάσταση θα συνεχιστεί με τον ίδιο τρόπο όπως και αν τα αρχεία ήταν διαθέσιμα τοπικά.

4.7. Εκχώρηση Χώρου στο Δίσκο

Υπάρχουν τρεις τρόποι να εκχωρήσετε χώρο για το FreeBSD. Με τη μέθοδο Guided (καθοδηγούμενη), οι κατατμήσεις δημιουργούνται αυτόματα, ενώ με τη μέθοδο Manual (χειροκίνητη) οι προχωρημένοι χρήστες μπορούν να δημιουργήσουν προσαρμοσμένες κατατμήσεις. Τέλος, υπάρχει η επιλογή να εκκινήσετε ένα κέλυφος και να δημιουργήσετε τις κατατμήσεις με απευθείας χρήση προγραμμάτων της γραμμής εντολών όπως gpart(8), fdisk(8), και bsdlabel(8).

bsdinstall part guided manual
Σχήμα 9. Επιλογή Guided ή Manual Partitioning

4.7.1. Καθοδηγούμενη (Guided) Κατάτμηση

Αν έχετε συνδέσει πολλαπλούς δίσκους, επιλέξτε αυτόν στον οποίο θα εγκαταστήσετε το FreeBSD.

bsdinstall part guided disk
Σχήμα 10. Επιλογή από Πολλαπλούς Δίσκους

Μπορείτε να εκχωρήσετε είτε ολόκληρο το δίσκο, είτε ένα μέρος του στο FreeBSD. Αν επιλέξετε Entire Disk, θα δημιουργηθούν μια κατάλληλη διάταξη κατατμήσεων ώστε να χρησιμοποιηθεί ολόκληρος ο δίσκος. Αν επιλέξετε Partition, θα δημιουργηθεί μια διάταξη που θα καταλαμβάνει τον ελεύθερο χώρο του δίσκου.

bsdinstall part entire part
Σχήμα 11. Επιλογή Ολόκληρου Δίσκου ή Κατάτμησης

Ελέγξτε προσεκτικά τη διάταξη των κατατμήσεων που δημιουργήθηκε. Αν βρείτε κάποιο λάθος, επιλέξτε Revert για να επαναφέρετε τις προηγούμενες κατατμήσεις ή Auto για να δημιουργήσετε τις κατατμήσεις που προτείνονται αυτόματα από το FreeBSD. Μπορείτε να δημιουργήσετε, να τροποποιήσετε και να διαγράψετε κατατμήσεις χειροκίνητα. Όταν οι κατατμήσεις είναι οι σωστές, επιλέξτε Finish για να συνεχίσετε με την εγκατάσταση.

bsdinstall part review
Σχήμα 12. Επισκόπηση Κατατμήσεων

4.7.2. Χειροκίνητη Δημιουργία Κατατμήσεων

Επιλέγοντας χειροκίνητη δημιουργία κατατμήσεων, θα μεταφερθείτε απευθείας στον επεξεργαστή κατατμήσεων.

bsdinstall part manual create
Σχήμα 13. Χειροκίνητη Δημιουργία Κατατμήσεων

Επιλέγοντας ένα οδηγό (ada0 στο παράδειγμα μας) και το πλήκτρο Create θα δείτε ένα μενού για την επιλογή του σχήματος κατατμήσεων (partitioning scheme).

bsdinstall part manual partscheme
Σχήμα 14. Χειροκίνητη Δημιουργία Κατατμήσεων

Το σύστημα κατατμήσεων GPT είναι συνήθως το καταλληλότερο για τα περισσότερους PC-συμβατούς υπολογιστές. Παλαιότερα λειτουργικά συστήματα δεν είναι συμβατά με τη μέθοδο GPT και χρειάζονται κατατμήσεις τύπου MBR. Τα υπόλοιπα είδη κατατμήσεων χρησιμοποιούνται σε παλιά ή μη-συνηθισμένα συστήματα υπολογιστών.

Πίνακας 1. Κατηγορίες Κατατμήσεων
ΣυντομογραφίαΠεριγραφή

APM

Apple Partition Map, χρησιμοποιείται στο PowerPC® Macintosh®.

BSD

Κατατμήσεις BSD χωρίς MBR, ορισμένες φορές καλούνται και "επικίνδυνα αφοσιωμένη κατάσταση". Δείτε το bsdlabel(8).

GPT

Πίνακας Κατατμήσεων GUID.

MBR

Master Boot Record.

PC98

Παραλλαγή του MBR που χρησιμοποιείται σε υπολογιστές NEC PC-98.

VTOC8

Volume Table Of Contents, χρησιμοποιείται στα Sun SPARC64 και UltraSPARC.

Μετά τη δημιουργία του σχήματος κατατμήσεων, αν επιλέξετε ξανά Create θα δημιουργήσετε νέες κατατμήσεις.

bsdinstall part manual addpart
Σχήμα 15. Χειροκίνητη Δημιουργία Κατατμήσεων

Η τυποποιημένη εγκατάσταση FreeBSD με χρήση GPT δημιουργεί τουλάχιστον τρεις κατατμήσεις:

Τυποποιημένες FreeBSD GPT Κατατμήσεις
  • freebsd-boot - Ο κώδικας εκκίνησης του FreeBSD. Η κατάτμηση αυτή πρέπει να είναι η πρώτη στο δίσκο.

  • freebsd-ufs - Σύστημα αρχείων FreeBSD UFS.

  • freebsd-swap - Χώρος swap FreeBSD.

Ένα άλλο αξιοσημείωτο είδος κατάτμησης, είναι το freebsd-zfs. Δείτε το Το Σύστημα Αρχείων Z (ZFS). Μπορείτε να δείτε τα υπόλοιπα διαθέσιμα είδη κατατμήσεων GPT στο gpart(8).

Μπορείτε να δημιουργήσετε πολλαπλά συστήματα αρχείων. Κάποιοι χρήστες προτιμούν τη δημιουργία των παραδοσιακών κατατμήσεων με χωριστά συστήματα αρχείων για τα /, /var, και /usr. Δείτε το Δημιουργία Παραδοσιακών Κατατμήσεων στο Σύστημα Αρχείων για ένα παράδειγμα.

Μπορείτε να εισάγετε το μέγεθος με τη βοήθεια κοινών συντομεύσεων: K για kilobytes, M για megabytes, ή G για gigabytes.

Η καλύτερη απόδοση επιτυγχάνεται με ευθυγράμμιση των τομέων του δίσκου (sector alignment). Η σωστή ευθυγράμμιση επιτυγχάνεται με τη δημιουργία κατατμήσεων με μεγέθη πολλαπλάσια των 4K bytes σε οδηγούς που χρησιμοποιούν τομείς των 512 bytes ή 4K-byte. Σε γενικές γραμμές, η χρήση κατατμήσεων με μεγέθη που είναι άρτια πολλαπλάσια του 1Μ ή 1G είναι ο ευκολότερος τρόπος να επιβεβαιώσουμε ότι κάθε κατάτμηση ξεκινά σε ζυγό πολλαπλάσιο των 4Κ. Μια εξαίρεση: την παρούσα στιγμή η κατάτμηση freebsd-boot δεν μπορεί να είναι μεγαλύτερη των 512Κ λόγων περιορισμών του κώδικα εκκίνησης.

Σε κάθε κατάτμηση που περιέχει σύστημα αρχείων, χρειάζεται ένα σημείο προσάρτησης. Αν χρησιμοποιηθεί μόνο μια κατάτμηση UFS, το σημείο προσάρτησης θα είναι η /.

θα σας ζητηθεί επίσης μια ετικέτα (label). Η ετικέτα είναι ένα όνομα το οποίο δίνεται σε μια κατάτμηση. Το όνομα ενός δίσκου ή οι αριθμοί που περιγράφουν τις κατατμήσεις μπορεί να αλλάξουν αν ο δίσκος συνδεθεί σε άλλη θύρα ή ελεγκτή, αλλά η ετικέτα του παραμένει σταθερή. Με χρήση της ετικέτας σε αρχεία όπως το /etc/fstab το σύστημα γίνεται πιο ανεκτικό σε αλλαγές του υλικού. Οι ετικέτες GPT εμφανίζονται στον κατάλογο /dev/gpt/ όταν γίνεται η προσάρτηση της συσκευής. Σε άλλα είδη κατατμήσεων υπάρχουν διαφορετικές δυνατότητες όσο αφορά τις ετικέτες, οι οποίες εμφανίζονται σε διαφορετικούς υποκαταλόγους στο /dev/.

Χρησιμοποιήστε μοναδικές ετικέτες σε κάθε σύστημα αρχείων για να αποφύγετε συγκρούσεις που μπορεί να προκληθούν από όμοια ονόματα. Σε κάθε ετικέτα μπορείτε να συμπεριλάβετε μερικά γράμματα από το όνομα του υπολογιστή ή τη θέση του, ή ακόμα και τη χρήση του. Θα μπορούσατε για παράδειγμα να ονομάσετε τον κεντρικό κατάλογο labroot ή rootfs-lab σε ένα υπολογιστή που ανήκει σε ένα εργαστήριο.

Παράδειγμα 3. Δημιουργία Παραδοσιακών Κατατμήσεων στο Σύστημα Αρχείων

Αν επιθυμείτε να χρησιμοποιήσετε το παραδοσιακό σύστημα κατατμήσεων του FreeBSD όπου τα συστήματα αρχείων /, /var, /tmp και /usr βρίσκονται σε χωριστές κατατμήσεις, δημιουργήστε ένα πίνακα κατατμήσεων GPT και ορίστε τις κατατμήσεις με τον τρόπο που φαίνεται παρακάτω. Τα μεγέθη που φαίνονται είναι τυπικά για ένα σκληρό δίσκο χωρητικότητας 20G. Αν διαθέτετε περισσότερο χώρο, ίσως είναι χρήσιμο να μεγαλώσετε την κατάτμηση swap ή /var. Στο παράδειγμα μας, οι ετικέτες που χρησιμοποιούνται ξεκινούν με ex (από τη λέξη "example") αλλά καλό θα είναι να χρησιμοποιήσετε δικές σας μονάδικες ετικέτες όπως αναφέραμε παραπάνω.

Από προεπιλογή, το gptboot του FreeBSD αναμένει την πρώτη UFS κατάτμηση ως /.

Τύπος ΚατάτμησηςΜέγεθοςΣημείο ΠροσάρτησηςΕτικέτα

freebsd-boot

512K

freebsd-ufs

2G

/

exrootfs

freebsd-swap

4G

exswap

freebsd-ufs

2G

/var

exvarfs

freebsd-ufs

1G

/tmp

extmpfs

freebsd-ufs

αποδεχθείτε την προεπιλογή (υπόλοιπος χώρος του δίσκου)

Μετά τη δημιουργία των προσαρμοσμένων κατατμήσεων, επιλέξτε Finish για να συνεχίσετε με την εγκατάσταση.

4.8. Επιβεβαίωση της Εγκατάστασης

Σε αυτό το σημείο έχετε την τελευταία ευκαιρία να εγκαταλείψετε την εγκατάσταση χωρίς να γίνουν αλλαγές στο σκληρό δίσκο σας.

bsdinstall final confirmation
Σχήμα 16. Τελική Επιβεβαίωση

Επιλέξτε Commit και πιέστε Enter για να συνεχίσετε. Αν χρειάζεται να κάνετε αλλαγές, επιλέξτε Back για να επιστρέψετε στον επεξεργαστή κατατμήσεων. Με το πλήκτρο Revert & Exit μπορείτε να εγκαταλείψετε το πρόγραμμα εγκατάστασης χωρίς να γίνουν αλλαγές στο σκληρό σας δίσκο.

Ο χρόνος εγκατάστασης ποικίλει ανάλογα με τις διανομές και τα στοιχεία εγκατάστασης που έχετε επιλέξει, το μέσο εγκατάστασης και την ταχύτητα του υπολογιστή. Θα δείτε μια σειρά από μηνύματα σχετικά με την πρόοδο της διαδικασίας.

Αρχικά, το πρόγραμμα εγκατάστασης θα γράψει τις κατατμήσεις στο δίσκο και θα εκτελέσει κατάλληλες εντολές newfs για να δημιουργήσει τα ανάλογα συστήματα αρχείων.

Αν κάνετε εγκατάσταση μέσω δικτύου, το bsdinstall θα προχωρήσει μεταφορτώνοντας τα απαραίτητα αρχεία.

bsdinstall distfile fetching
Σχήμα 17. Μεταφόρτωση Αρχείων Εγκατάστασης

Στη συνέχεια, θα γίνει έλεγχος ακεραιότητας των αρχείων εγκατάστασης για να επιβεβαιωθεί ότι δεν έχουν αλλοιωθεί κατά τη μεταφόρτωση ή κατά την ανάγνωση από το μέσο εγκατάστασης.

bsdinstall distfile verifying
Σχήμα 18. Επαλήθευση Αρχείων Εγκατάστασης

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

bsdinstall distfile extracting
Σχήμα 19. Εξαγωγή Αρχείων Εγκατάστασης

Με το τέλος της εξαγωγής όλων των αρχείων εγκατάστασης, το bsdinstall θα εισέλθει στη διαδικασία ρυθμίσεων μετά την εγκατάσταση (δείτε Μετά την Εγκατάσταση).

4.9. Μετά την Εγκατάσταση

Μετά από μια επιτυχημένη εγκατάσταση του FreeBSD, ακολουθεί μια σειρά ρυθμίσεων. Μπορείτε να επαναλάβετε οποιαδήποτε ρύθμιση αν εισέλθετε στην αντίστοιχη επιλογή στο τελικό μενού πριν επανεκκινήσετε στο νέο-εγκατεστημένο σας FreeBSD σύστημα.

4.9.1. Ρύθμιση του Κωδικού του root

Θα πρέπει να ορίσετε ένα κωδικό πρόσβασης για το χρήστη root. Παρατηρήστε ότι δεν φαίνονται τα γράμματα που πληκτρολογείτε καθώς εισάγετε τον κωδικό. Μετά την εισαγωγή του κωδικού, θα πρέπει να τον εισάγετε ακόμα μια φορά. Με τον τρόπο αυτό εξασφαλίζεται ότι δεν έχει γίνει κάποιο λάθος κατά την πληκτρολόγηση.

bsdinstall post root passwd
Σχήμα 20. Ρύθμιση του Κωδικού του root

Η εγκατάσταση συνεχίζεται μετά την επιτυχή εισαγωγή του κωδικού.

4.9.2. Ρύθμιση Καρτών Δικτύου

Η ρύθμιση του δικτύου παραλείπεται αν έχει ήδη πραγματοποιηθεί στα πλαίσια μιας εγκατάστασης bootonly.

Θα δείτε μια λίστα με όλες τις διεπαφές δικτύου που ανιχνεύθηκαν στον υπολογιστή σας. Επιλέξτε αυτή που επιθυμείτε να ρυθμίσετε.

bsdinstall configure network interface
Σχήμα 21. Επιλογή μιας Διεπαφής Δικτύου
4.9.2.1. Ρύθμιση Ασύρματης Κάρτας Δικτύου

Αν επιλέξετε να ρυθμίσετε μια ασύρματη διεπαφή δικτύου, θα πρέπει να ρυθμίσετε τις παραμέτρους αναγνώρισης και ασφάλειας για να συνδεθείτε στο δίκτυο.

Τα ασύρματα δίκτυα αναγνωρίζονται από το Αναγνωριστικό Υπηρεσίας ή Service Set Identifier (SSID). Το SSID είναι ένα σύντομο μοναδικό όνομα που αποδίδεται σε κάθε ασύρματο δίκτυο.

Τα περισσότερα ασύρματα δίκτυα κρυπτογραφούν τα δεδομένα που μεταδίδονται για να προστατεύσουν τις πληροφορίες από μη εξουσιοδοτημένη χρήση. Συνίσταται να χρησιμοποιήσετε κρυπτογράφηση WPA2. Παλαιότερες μέθοδοι κρυπτογράφησης όπως το WEP προσφέρουν ελάχιστη ασφάλεια.

Το πρώτο βήμα για να συνδεθείτε σε ένα ασύρματο δίκτυο είναι να σαρώσετε για Σημεία Ασύρματης Πρόσβασης (Access Points).

bsdinstall configure wireless scan
Σχήμα 22. Σάρωση για Access Points

Τα SSIDs που θα βρείτε κατά τη διάρκεια της σάρωσης συνοδεύονται από τα είδη κρυπτογράφησης που διατίθενται για κάθε δίκτυο. Αν δεν βλέπετε το SSID που επιθυμείτε στη λίστα, επιλέξτε Rescan για να εκτελέσετε τη σάρωση ξανά. Αν εξακολουθείτε να μη βλέπετε το επιθυμητό δίκτυο, ελέγξτε την κεραία για τυχόν προβλήματα ή μετακινήστε τον υπολογιστή πιο κοντά στο σημείο πρόσβασης. Να εκτελείτε νέα σάρωση μετά από κάθε αλλαγή.

bsdinstall configure wireless accesspoints
Σχήμα 23. Επιλογή Ασύρματου Δικτύου

Μετά την επιλογή του ασύρματου δικτύου, θα πρέπει να εισάγετε τις πληροφορίες που σχετίζονται με την κρυπτογράφηση. Σε δίκτυα WPA2 χρειάζεται να δώσετε μόνο ένα κωδικό πρόσβασης (γνωστό ως Pre-Shared Key ή PSK). Για λόγους ασφαλείας, οι χαρακτήρες που πληκτρολογείτε στο πεδίο εμφανίζονται ως αστερίσκοι.

bsdinstall configure wireless wpa2setup
Σχήμα 24. Ρύθμιση WPA2

Μετά την επιλογή του ασύρματου δικτύου και την εισαγωγή των πληροφοριών σύνδεσης, η εγκατάσταση συνεχίζεται με τη ρύθμιση των υπόλοιπων παραμέτρων του δικτύου.

4.9.2.2. Ρύθμιση Δικτύου IPv4

Επιλέξτε αν θα χρησιμοποιηθεί δικτύωση IPv4. Πρόκειται για το πιο συνηθισμένο είδος σύνδεσης.

bsdinstall configure network interface ipv4
Σχήμα 25. Επιλογή Δικτύωσης IPv4

Υπάρχουν δύο μέθοδοι ρύθμισης του IPv4. Μέσω του DHCP η ρύθμιση της διεπαφής γίνεται αυτόματα. Αυτή είναι και η συνιστώμενη μέθοδος. Η ρύθμιση Static απαιτεί χειροκίνητη εισαγωγή πληροφοριών δικτύου.

Μη βάλετε τυχαίες ρυθμίσεις δικτύου, καθώς δεν θα λειτουργήσουν. Θα πρέπει να λάβετε τις πληροφορίες που αναφέρονται στο Συλλέξτε Πληροφορίες για το Δίκτυο από τον διαχειριστή ή τον παροχέα του δικτύου σας.

4.9.2.2.1. Ρύθμιση Δικτύου IPv4 μέσω DHCP

Αν διαθέτετε εξυπηρετητή DHCP, επιλέξτε Yes για να ρυθμίσετε αυτόματα την διεπαφή δικτύου.

bsdinstall configure network interface ipv4 dhcp
Σχήμα 26. Επιλέξτε Ρύθμιση IPv4 μέσω DHCP
4.9.2.2.2. Στατική Ρύθμιση Δικτύου IPv4

Η στατική ρύθμιση της διεπαφής δικτύου, απαιτεί να εισάγετε κάποιες πληροφορίες σχετικά με το IPv4.

bsdinstall configure network interface ipv4 static
Σχήμα 27. Στατική Ρύθμιση IPv4
  • IP Address - Η διεύθυνση IP που θα εισάγετε χειροκίνητα σε αυτό τον υπολογιστή. Η διεύθυνση αυτή πρέπει να είναι μοναδική και να μην χρησιμοποιείται από οποιοδήποτε άλλο μηχάνημα στο τοπικό σας δίκτυο.

  • Subnet Mask - Η μάσκα υποδικτύου που χρησιμοποιεί το τοπικό σας δίκτυο. Τυπικά αυτή είναι 255.255.255.0.

  • Default Router - Η διεύθυνση IP του προεπιλεγμένου δρομολογητή του δικτύου σας. Συνήθως είναι η διεύθυνση του δρομολογητή ή άλλου δικτυακού εξοπλισμού που συνδέει το τοπικό σας δίκτυο με το Internet. Θα τη δείτε επίσης να αναφέρετε ως default gateway (προεπιλεγμένη πύλη).

4.9.2.3. Ρύθμιση Δικτύου IPv6

Το IPv6 είναι μια νέα μέθοδος ρύθμισης δικτύου. Αν το δίκτυο σας διαθέτει IPv6 και επιθυμείτε να το ρυθμίσετε, πιέστε Yes για να το επιλέξετε.

bsdinstall configure network interface ipv6
Σχήμα 28. Επιλογή Δικτύωσης IPv6

Το IPv6 διαθέτει επίσης δύο μεθόδους ρύθμισης. Το SLAAC, ή StateLess Address AutoConfiguration, ρυθμίζει αυτόματα τις παραμέτρους του δικτύου σας. Η ρύθμιση Static απαιτεί να κάνετε τις αντίστοιχες ρυθμίσεις χειροκίνητα.

4.9.2.3.1. IPv6 Stateless Address Autoconfiguration

Το SLAAC επιτρέπει σε μια συσκευή ενός δικτύου IPv6 να ζητήσει πληροφορίες αυτόματης ρύθμισης από ένα τοπικό δρομολογητή. Δείτε το RFC4862 για περισσότερες πληροφορίες.

bsdinstall configure network interface slaac
Σχήμα 29. Επιλέξτε Ρύθμιση IPv6 SLAAC
4.9.2.3.2. Στατική Ρύθμιση Δικτύου IPv6

Η στατική ρύθμιση της διεπαφής δικτύου στο IPv6, απαιτεί την χειροκίνητη εισαγωγή κάποιων ρυθμίσεων.

bsdinstall configure network interface ipv6 static
Σχήμα 30. Στατική Ρύθμιση IPv6
  • IPv6 Address - Η διεύθυνση IP που θα εισάγετε χειροκίνητα σε αυτό τον υπολογιστή. Η διεύθυνση αυτή πρέπει να είναι μοναδική και να μην χρησιμοποιείται από κανένα άλλο μηχάνημα στο τοπικό σας δίκτυο.

  • Default Router - Η IPv6 διεύθυνση του προεπιλεγμένου δρομολογητή για το δίκτυο σας. Συνήθως είναι η διεύθυνση του δρομολογητή ή άλλου δικτυακού εξοπλισμού που συνδέει το τοπικό σας δίκτυο με το Internet. Θα τη δείτε επίσης να αναφέρεται ως default gateway (προεπιλεγμένη πύλη).

4.9.2.4. Ρύθμιση του DNS

Το Domain Name System (Σύστημα Ονομάτων Τομέα) ή DNS μετατρέπει ονόματα υπολογιστών σε διευθύνσεις δικτύου και το αντίθετο. Αν χρησιμοποιήσατε DHCP ή SLAAC για να ρυθμίσετε αυτόματα τη διεπαφή δικτύου, οι αντίστοιχες ρυθμίσεις πιθανόν να έχουν γίνει ήδη. Στην αντίθετη περίπτωση, βάλτε το όνομα τομέα του τοπικού δικτύου στο πεδίο Search. Τα πεδία DNS #1 και DNS #2 είναι οι διευθύνσεις IP των τοπικών εξυπηρετητών DNS. Χρειάζεται να εισάγετε τουλάχιστον ένα εξυπηρετητή DNS.

bsdinstall configure network ipv4 dns
Σχήμα 31. Ρύθμιση DNS

4.9.3. Ρύθμιση της Ζώνης Ώρας

Η ρύθμιση της σωστής ζώνης ώρας στο μηχάνημα σας, εξασφαλίζει την αυτόματη αλλαγή της από χειμερινή σε εαρινή και το αντίστροφο. Επιτρέπει επίσης τη σωστή λειτουργία όλων των υπηρεσιών που σχετίζονται με την τήρηση χρόνου.

Το παράδειγμα μας αναφέρεται σε ένα μηχάνημα που βρίσκεται στην Ανατολική ζώνη ώρας των Ηνωμένων Πολιτειών. Η δική σας επιλογή θα είναι διαφορετική ανάλογα με τη γεωγραφική σας περιοχή.

bsdinstall set clock local utc
Σχήμα 32. Επιλογή Τοπικού ή UTC Ρολογιού

Επιλέξτε Yes ή No ανάλογα με το πως είναι ρυθμισμένο το ρολόι του μηχανήματος και πιέστε Enter. Αν δεν γνωρίζετε αν το σύστημα σας χρησιμοποιεί ώρα UTC ή τοπική, επιλέξτε No για να επιλέξετε την τοπική ώρα που είναι και η πιο συνηθισμένη.

bsdinstall timezone region
Σχήμα 33. Επιλέξτε μια Περιοχή

Επιλέξτε την σωστή περιοχή χρησιμοποιώντας τα βελάκια και πιέστε Enter.

bsdinstall timezone country
Σχήμα 34. Επιλογή Χώρας

Επιλέξτε τη σωστή χώρα χρησιμοποιώντας τα βελάκια και πιέστε Enter.

bsdinstall timezone zone
Σχήμα 35. Επιλογή Ζώνης Ώρας

Επιλέξτε τη σωστή ζώνη ώρας χρησιμοποιώντας τα βελάκια και πιέστε Enter.

bsdinstall timezone confirm
Σχήμα 36. Επιβεβαίωση Ζώνης Ώρας

Επιβεβαιώστε ότι η συντομογραφία για την επιλεγμένη ζώνη ώρας είναι η σωστή. Έπειτα πιέστε Enter για να συνεχίσετε με τις υπόλοιπες ρυθμίσεις.

4.9.4. Επιλογή Υπηρεσιών που θα Ενεργοποιηθούν

Μπορείτε να επιλέξετε ποιες από τις πρόσθετες υπηρεσίες θα ενεργοποιηθούν στην εκκίνηση. Όλες οι παρακάτω υπηρεσίες είναι προαιρετικές.

bsdinstall config services
Σχήμα 37. Επιλογή Πρόσθετων Υπηρεσιών προς Ενεργοποίηση
Πρόσθετες Υπηρεσίες
  • sshd - Secure Shell (Ασφαλές Κέλυφος) (SSH) Ο δαίμονας για ασφαλή απομακρυσμένη πρόσβαση.

  • moused - Παρέχει δυνατότητα χρήσης του ποντικιού από την κονσόλα του συστήματος.

  • ntpd - Network Time Protocol, πρωτόκολλο για ρύθμιση της ώρας μέσω δικτύου (NTP). Ο δαίμονας χρησιμοποιείται για την αυτόματη ρύθμιση του ρολογιού.

  • powerd - Βοηθητικό πρόγραμμα για έλεγχο ισχύος και διαχείριση ενέργειας.

4.9.5. Ενεργοποίηση Crash Dumps

Το bsdinstall θα σας ρωτήσει αν θέλετε να ενεργοποιήσετε τα crash dumps στο σύστημα σας. Η ενεργοποίηση των crash dumps μπορεί να είναι πολύ χρήσιμη στον εντοπισμό προβλημάτων του συστήματος και για το λόγο αυτό συνιστούμε να τα ενεργοποιείτε όταν είναι δυνατόν. Επιλέξτε Yes για να τα ενεργοποιήσετε, ή No για να συνεχίσετε χωρίς crash dumps.

bsdinstall config crashdump
Σχήμα 38. Ενεργοποίηση Crash Dumps

4.9.6. Προσθήκη Χρηστών

Η προσθήκη τουλάχιστον ενός χρήστη κατά την εγκατάσταση, σας επιτρέπει να χρησιμοποιήσετε το σύστημα χωρίς να εισέλθετε ως root. Όταν εισέρχεστε ως root, δεν υπάρχουν πρακτικά όρια ή κάποιο είδος προστασίας σχετικά με το τι μπορείτε να κάνετε. Όταν εισέρχεστε ως κανονικός χρήστης, μπορείτε να χειριστείτε το σύστημα σας με περισσότερη ασφάλεια.

Επιλέξτε Yes για να προσθέσετε νέους χρήστες.

bsdinstall adduser1
Σχήμα 39. Προσθήκη Λογαριασμών Χρηστών

Εισάγετε τις πληροφορίες για το χρήστη που θα προστεθεί.

bsdinstall adduser2
Σχήμα 40. Εισαγωγή Πληροφοριών Χρήστη
Πληροφορίες Χρήστη
  • Username - Το όνομα που θα χρησιμοποιεί ο χρήστης για να εισέλθει στο σύστημα. Τυπικά το πρώτο γράμμα του μικρού ονόματος σε συνδυασμό με το επίθετο.

  • Full name - Το πλήρες όνομα του χρήστη.

  • Uid - User ID. Ο αναγνωριστικός αριθμός χρήστη. Συνήθως δεν συμπληρώνουμε αυτό το πεδίο, ώστε να επιλεγεί αυτόματα ένας αριθμός από το σύστημα.

  • Login group - Η ομάδα στην οποία ανήκει ο χρήστης. Συνήθως το αφήνουμε κενό ώστε να γίνει αποδεκτή η προεπιλεγμένη τιμή.

  • Invite user into other groups? - Επιπρόσθετες ομάδες χρηστών στις οποίες θέλουμε να ανήκει ο χρήστης.

  • Login class - Συνήθως δεν συμπληρώνουμε αυτό το πεδίο, ώστε να γίνει αποδεκτή η προεπιλεγμένη τιμή.

  • Shell - Το κέλυφος που θα χρησιμοποιεί ο συγκεκριμένος χρήστης. Στο παράδειγμα μας επιλέξαμε το csh(1).

  • Home directory - Ο προσωπικός κατάλογος του χρήστη. Η προεπιλεγμένη τιμή είναι συνήθως η σωστή.

  • Home directory permissions - Τα δικαιώματα στον κατάλογο του χρήστη. Τα προεπιλεγμένα είναι συνήθως σωστά.

  • Use password-based authentication? - H τυπική απάντηση είναι "yes".

  • Use an empty password? - Η τυπική απάντηση είναι "no".

  • Use a random password? - Η τυπική απάντηση είναι "no".

  • Enter password - Ο κωδικός πρόσβασης για το συγκεκριμένο χρήστη. Δεν φαίνεται στην οθόνη καθώς τον πληκτρολογούμε.

  • Enter password again - Ο κωδικός πρέπει να εισαχθεί άλλη μια φορά για επιβεβαίωση.

  • Lock out the account after creation? - Η τυπική απάντηση είναι "no".

Αφού εισάγετε όλες τις πληροφορίες, θα δείτε μια περίληψη τους και το σύστημα θα σας ρωτήσει για την ορθότητα τους. Αν κάνατε κάποιο λάθος κατά τη διάρκεια της εισαγωγής, γράψτε no και ξαναπροσπαθήστε. Αν όλα είναι σωστά, γράψτε yes για να δημιουργήσετε το νέο χρήστη.

bsdinstall adduser3
Σχήμα 41. Έξοδος από τη Διαχείριση Χρηστών και Ομάδων

Αν θέλετε να προσθέσετε περισσότερους χρήστες, απαντήστε στην ερώτηση "Add another user?" με yes. Απαντήστε no για να τελειώσετε με την προσθήκη χρηστών και να συνεχίσετε την εγκατάσταση.

Για περισσότερες πληροφορίες σχετικά με την προσθήκη και διαχείριση χρηστών, δείτε το Χρήστες και Βασική Διαχείριση Λογαριασμών.

4.9.7. Τελικές Ρυθμίσεις

Μετά το τέλος της εγκατάστασης και των αρχικών ρυθμίσεων, έχετε μια τελευταία ευκαιρία να αλλάξετε τις ρυθμίσεις πριν την έξοδο από το πρόγραμμα εγκατάστασης.

bsdinstall finalconfiguration
Σχήμα 42. Τελικές Ρυθμίσεις

Χρησιμοποιήστε αυτό το μενού για να κάνετε οποιεσδήποτε αλλαγές ή πρόσθετες ρυθμίσεις θέλετε πριν την ολοκλήρωση της εγκατάστασης.

Επιλογές Τελικών Ρυθμίσεων

Με την ολοκλήρωση των τελικών ρυθμίσεων, επιλέξτε Exit για να κλείσετε την εγκατάσταση.

bsdinstall final modification shell
Σχήμα 43. Χειροκίνητη Ρύθμιση

Το bsdinstall θα σας ρωτήσει για τυχόν επιπλέον ρυθμίσεις που πρέπει να γίνουν πριν επανεκκινήσετε στο νέο σύστημα. Επιλέξτε Yes για να εκκινήσετε ένα κέλυφος στο νέο σύστημα ή No για να προχωρήσετε στο τελευταίο βήμα της εγκατάστασης.

bsdinstall mainexit
Σχήμα 44. Ολοκλήρωση της Εγκατάστασης

Αν χρειάζεται να κάνετε περισσότερες ή ειδικές ρυθμίσεις, μπορείτε να επιλέξετε Live CD. Με την επιλογή αυτή, Θα ξεκινήσετε το μέσο εγκατάστασης σε κατάσταση Live CD.

Με την ολοκλήρωση της εγκατάστασης, επιλέξτε Reboot για να επανεκκινήσετε τον υπολογιστή σας και να ξεκινήσετε το νέο FreeBSD σύστημά σας. Μη ξεχάσετε να αφαιρέσετε το μέσο εγκατάστασης από τον οδηγό CD (ή την USB υποδοχή), διαφορετικά το σύστημα σας ίσως ξεκινήσει ξανά από αυτό.

4.9.8. Εκκίνηση και Τερματισμός του FreeBSD

4.9.8.1. Εκκίνηση στο FreeBSD/i386

Κατά την εκκίνηση του FreeBSD εμφανίζονται πολλά πληροφοριακά μηνύματα. Φυσιολογικά, τα περισσότερα κυλούν εκτός της οθόνης. Μετά το τέλος της εκκίνησης εμφανίζεται η προτροπή εισόδου στο σύστημα (login). Μπορείτε να δείτε τα μηνύματα που κύλησαν εκτός οθόνης πιέζοντας το πλήκτρο Scroll-Lock για να να ενεργοποιήσετε την προσωρινή μνήμη κύλισης. Χρησιμοποιήστε έπειτα τα πλήκτρα PgUp, PgDn και τα βελάκια για να δείτε τα παλιά μηνύματα. Πιέζοντας το Scroll-Lock ξανά, θα επιστρέψετε στην κανονική απεικόνιση.

Στην προτροπή login: γράψτε το όνομα που δημιουργήσατε κατά την εγκατάσταση, στο παράδειγμα μας asample. Να αποφεύγετε να εισέρχεστε ως root όταν δεν είναι απαραίτητο.

Η δυνατότητα προς τα πίσω κύλισης των μηνυμάτων που περιγράψαμε προηγουμένως είναι περιορισμένη, επομένως δεν θα μπορέσετε με αυτό τον τρόπο να τα δείτε όλα. Μετά την είσοδο σας στο σύστημα, μπορείτε να δείτε τα μηνύματα από τη γραμμή εντολών γράφοντας dmesg | less στην προτροπή. Πιέστε q για να επιστρέψετε στη γραμμή εντολών όταν τελειώσετε.

Τυπικά μηνύματα εκκίνησης (έχουν παραλειφθεί οι πληροφορίες έκδοσης):

Copyright (c) 1992-2011 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 is a registered trademark of The FreeBSD Foundation.

    root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (3007.77-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x10676  Family = 6  Model = 17  Stepping = 6
  Features=0x783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2>
  Features2=0x209<SSE3,MON,SSSE3>
  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
real memory  = 536805376 (511 MB)
avail memory = 491819008 (469 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: <VBOX   VBOXAPIC>
ioapic0: Changing APIC ID to 1
ioapic0 <Version 1.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <VBOX VBOXXSDT> on motherboard
acpi0: Power Button (fixed)
acpi0: Sleep Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
isab0: <PCI-ISA bridge> at device 1.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xd000-0xd00f at device 1.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
vgapci0: <VGA-compatible display> mem 0xe0000000-0xe0ffffff irq 18 at device 2.0 on pci0
em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd010-0xd017 mem 0xf0000000-0xf001ffff irq 19 at device 3.0 on pci0
em0: Ethernet address: 08:00:27:9f:e0:92
pci0: <base peripheral> at device 4.0 (no driver attached)
pcm0: <Intel ICH (82801AA)> port 0xd100-0xd1ff,0xd200-0xd23f irq 21 at device 5.0 on pci0
pcm0: <SigmaTel STAC9700/83/84 AC97 Codec>
ohci0: <OHCI (generic) USB controller> mem 0xf0804000-0xf0804fff irq 22 at device 6.0 on pci0
usbus0: <OHCI (generic) USB controller> on ohci0
pci0: <bridge> at device 7.0 (no driver attached)
acpi_acad0: <AC Adapter> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse Explorer, device ID 4
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
Event timer "RTC" frequency 32768 Hz quality 0
ppc0: cannot reserve I/O port range
Timecounters tick every 10.000 msec
pcm0: measured ac97 link rate at 485193 Hz
em0: link state changed to UP
usbus0: 12Mbps Full Speed USB v1.0
ugen0.1: <Apple> at usbus0
uhub0: <Apple OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
cd0 at ata1 bus 0 scbus1 target 0 lun 0
cd0: <VBOX CD-ROM 1.0> Removable CD-ROM SCSI-0 device
cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present
ada0 at ata0 bus 0 scbus0 target 0 lun 0
ada0: <VBOX HARDDISK 1.0> ATA-6 device
ada0: 33.300MB/s transfers (UDMA2, PIO 65536bytes)
ada0: 12546MB (25694208 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad0
Timecounter "TSC" frequency 3007772192 Hz quality 800
Root mount waiting for: usbus0
uhub0: 8 ports with 8 removable, self powered
Trying to mount root from ufs:/dev/ada0p2 [rw]...
Setting hostuuid: 1848d7bf-e6a4-4ed4-b782-bd3f1685d551.
Setting hostid: 0xa03479b2.
Entropy harvesting: interrupts ethernet point_to_point kickstart.
Starting file system checks:
/dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/ada0p2: clean, 2620402 free (714 frags, 327461 blocks, 0.0% fragmentation)
Mounting local file systems:.
vboxguest0 port 0xd020-0xd03f mem 0xf0400000-0xf07fffff,0xf0800000-0xf0803fff irq 20 at device 4.0 on pci0
vboxguest: loaded successfully
Setting hostname: machine3.example.com.
Starting Network: lo0 em0.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 08:00:27:9f:e0:92
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
Starting devd.
Starting Network: usbus0.
DHCPREQUEST on em0 to 255.255.255.255 port 67
DHCPACK from 10.0.2.2
bound to 192.168.1.142 -- renewal in 43200 seconds.
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
add net fe80::: gateway ::1
add net ff02::: gateway ::1
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib
32-bit compatibility ldconfig path: /usr/lib32
Creating and/or trimming log files.
Starting syslogd.
No core dumps found.
Clearing /tmp (X related).
Updating motd:.
Configuring syscons: blanktime.
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:
10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com
The key's randomart image is:
+--[RSA1 1024]----+
|    o..          |
|   o . .         |
|  .   o          |
|       o         |
|    o   S        |
|   + + o         |
|o . + *          |
|o+ ..+ .         |
|==o..o+E         |
+-----------------+
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:
7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com
The key's randomart image is:
+--[ DSA 1024]----+
|       ..     . .|
|      o  .   . + |
|     . ..   . E .|
|    . .  o o . . |
|     +  S = .    |
|    +  . = o     |
|     +  . * .    |
|    . .  o .     |
|      .o. .      |
+-----------------+
Starting sshd.
Starting cron.
Starting background file system checks in 60 seconds.

Thu Oct  6 19:15:31 MDT 2011

FreeBSD/amd64 (machine3.example.com) (ttyv0)

login:

Η δημιουργία των κλειδιών RSA και DSA μπορεί να πάρει κάποιο χρόνο σε αργά μηχανήματα. Γίνεται όμως μόνο στην πρώτη εκκίνηση και μόνο αν έχει ρυθμιστεί το sshd για αυτόματη εκκίνηση. Οι επόμενες εκκινήσεις θα είναι ταχύτερες.

Το FreeBSD δεν εγκαθιστά κάποιο γραφικό περιβάλλον από προεπιλογή, αλλά υπάρχουν αρκετά διαθέσιμα προς εγκατάσταση. Δείτε το Το Σύστημα X Window για περισσότερες πληροφορίες.

4.9.9. Τερματισμός του FreeBSD

Ο σωστός τερματισμός του FreeBSD εξασφαλίζει τα δεδομένα και το υλικό του υπολογιστή σας από ζημιά. Δεν πρέπει απλώς να διακόψετε την τροφοδοσία. Αν ο χρήστης σας είναι μέλος της ομάδας wheel, μπορείτε να γίνετε υπερχρήστης με την εντολή su και την εισαγωγή του κωδικού του root. Διαφορετικά, συνδεθείτε ως root και χρησιμοποιήστε την εντολή shutdown -p now. Το σύστημα θα τερματίσει με το σωστό τρόπο και θα διακοπεί και η παροχή ρεύματος.

Μπορείτε να χρησιμοποιήσετε το συνδυασμό πλήκτρων Ctrl+Alt+Del για να επανεκκινήσετε το σύστημα, αλλά αυτό δεν συνίσταται κατά τη διάρκεια της κανονικής λειτουργίας.

4.10. Αντιμετώπιση Προβλημάτων

Η ενότητα που ακολουθεί καλύπτει την αντιμετώπιση βασικών προβλημάτων εγκατάστασης - για παράδειγμα κοινά προβλήματα που έχουν αναφερθεί από πολλούς χρήστες. Υπάρχουν επίσης κάποιες ερωτήσεις και απαντήσεις για όσους επιθυμούν να έχουν το FreeBSD ως dual boot με MS-DOS® ή Windows®.

4.10.1. Τι να Κάνετε αν Κάτι Πάει Στραβά

Λόγω των διάφορων περιορισμών στην αρχιτεκτονική του PC, δεν είναι δυνατόν η ανίχνευση συσκευών να είναι 100% αξιόπιστη. Υπάρχουν όμως κάποια πράγματα που μπορείτε να κάνετε αν η ανίχνευση δεν είναι επιτυχής.

Ελέγξτε τις Σημειώσεις Υλικού για την έκδοση του FreeBSD που χρησιμοποιείτε, για να βεβαιωθείτε ότι το υλικό σας υποστηρίζεται.

Αν το υλικό σας υποστηρίζεται και εξακολουθείτε να έχετε κολλήματα ή άλλα προβλήματα, θα πρέπει να δημιουργήσετε ένα προσαρμοσμένο πυρήνα. Αυτό θα σας επιτρέψει να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν υπάρχουν στον πυρήνα GENERIC. Ο πυρήνας στο μέσο εγκατάστασης έχει δημιουργηθεί με την υπόθεση ότι οι περισσότερες συσκευές βρίσκονται στις προεπιλεγμένες ρυθμίσεις τους όσο αφορά τα IRQs, τις διευθύνσεις IO και τα κανάλια DMA. Αν έχετε αλλάξει αυτές τις ρυθμίσεις ίσως χρειαστεί να αλλάξετε τις ρυθμίσεις του πυρήνα και να τον επαναμεταγλωττίσετε για να μπορέσει το FreeBSD να εντοπίσει τις συσκευές σας.

Είναι επίσης πιθανό η διαδικασία ανίχνευσης για μια συσκευή που δεν είναι εγκατεστημένη να προκαλέσει πρόβλημα στην ανίχνευση μιας άλλης υπαρκτής συσκευής. Στην περίπτωση αυτή, θα πρέπει να αφαιρέσετε την ανίχνευση για τη συσκευή που δημιουργεί το πρόβλημα.

Κάποια προβλήματα εγκατάστασης μπορούν να αποφευχθούν ή να μειωθούν με την αναβάθμιση firmware διάφορων συσκευών υλικού και ειδικότερα της μητρικής. Το firmware της μητρικής είναι συχνά γνωστό με τον όρο BIOS. Οι περισσότεροι κατασκευαστές μητρικών διαθέτουν μια δικτυακή τοποθεσία από όπου μπορείτε να κατεβάσετε αναβαθμισμένες εκδόσεις και ανάλογες πληροφορίες.

Οι κατασκευαστές συνήθως συνιστούν να μην αναβαθμίζετε το BIOS της μητρικής αν δεν υπάρχει καλός λόγος, όπως για παράδειγμα μια κρίσιμη ενημέρωση. Η ενημέρωση ενδέχεται να αποτύχει αφήνοντας το BIOS σε μια ενδιάμεση κατάσταση και τον υπολογιστή εκτός λειτουργίας.

4.10.2. Ερωτήσεις και Απαντήσεις στην Αντιμετώπιση Προβλημάτων

4.10.3. Το σύστημα μου σταματά να ανταποκρίνεται κατά την ανίχνευση συσκευών στην εκκίνηση ή συμπεριφέρεται περίεργα κατά την εγκατάσταση.

Το FreeBSD κάνει εκτεταμένη χρήση των υπηρεσιών ACPI (εφόσον υπάρχει) στις αρχιτεκτονικές i386, amd64 και ia64 ώστε να ρυθμίσει σωστά τις συσκευές κατά την εκκίνηση. Δυστυχώς υπάρχουν ακόμα κάποια προβλήματα τόσο στο ACPI όσο και στο BIOS firmware αρκετών μητρικών. Μπορείτε να απενεργοποιήσετε το ACPI θέτοντας hint.acpi.0.disabled στο τρίτο στάδιο του φορτωτή εκκίνησης:

 set hint.acpi.0.disabled="1"

Καθώς η ρύθμιση αυτή χάνεται σε κάθε εκκίνηση, είναι απαραίτητο να προσθέσετε την οδηγία hint.acpi.0.disabled="1" στο αρχείο /boot/loader.conf. Μπορείτε να βρείτε περισσότερες πληροφορίες για το φορτωτή εκκίνησης στο Σύνοψη.

4.11. Χρησιμοποιώντας τη Λειτουργία Live CD

Η λειτουργία live CD του FreeBSD διατίθεται στο ίδιο CD με το βασικό πρόγραμμα εγκατάστασης. Είναι χρήσιμη για όσους ακόμα αναρρωτιούνται αν το FreeBSD είναι το κατάλληλο λειτουργικό για αυτούς και θέλουν να δοκιμάσουν κάποια από τα χαρακτηριστικά του πριν το εγκαταστήσουν.

Κατά τη χρήση του live CD να έχετε υπόψη σας τα παρακάτω:

  • Για να αποκτήσετε πρόσβαση στο σύστημα θα πρέπει να περάσετε από διαδικασία εισόδου. Το όνομα χρήστη είναι root και ο κωδικός είναι κενός.

  • Καθώς το σύστημα εκτελείται απευθείας από το CD, η απόδοση του θα είναι σημαντικά χαμηλότερη σε σχέση με ένα σύστημα εγκατεστημένο σε σκληρό δίσκο.

  • Το live CD παρέχει μόνο γραμμή εντολών και όχι γραφικό περιβάλλον.

Chapter 5. Βασικές Έννοιες στο UNIX®

5.1. Σύνοψη

Το ακόλουθο κεφάλαιο θα καλύψει τις βασικές εντολές και λειτουργίες του λειτουργικού συστήματος FreeBSD. Το μεγαλύτερο μέρος αυτής της ύλης σχετίζεται με όλα τα Λ.Σ. που είναι βασισμένα στο UNIX®. Εάν η ύλη σας φαίνεται οικεία μπορείτε να διατρέξετε γρήγορα αυτό το κεφάλαιο. Εάν - αντιθέτως - είστε νέος στο FreeBSD τότε οπωσδήποτε θα πρέπει να διαβάσετε προσεκτικά ολόκληρο το κεφάλαιο.

Μετά την ανάγνωση του κεφαλαίου, θα γνωρίζετε:

  • Πως να χρησιμοποιείτε τις "εικονικές κονσόλες" του FreeBSD.

  • Πως λειτουργούν οι άδειες αρχείων στο UNIX® και θα καταλάβετε την χρήση των file flags στο FreeBSD.

  • Την προεπιλεγμένη διάταξη του συστήματος αρχείων του FreeBSD.

  • Την οργάνωση των δίσκων στο FreeBSD.

  • Τι είναι και πώς λειτουργεί η προσάρτηση (mount) και αποπροσάρτηση (unmount) συστημάτων αρχείων.

  • Τι είναι οι διεργασίες (processes), τα σήματα (signals) και οι δαίμονες (daemons).

  • Τι είναι το κέλυφος (shell) και πως να αλλάζετε το προεπιλεγμένο περιβάλλον εργασίας.

  • Πως να χρησιμοποιείτε βασικά προγράμματα επεξεργασίας κειμένου (editors).

  • Τι είναι οι συσκευές (devices) και τα αρχεία συσκευής (device nodes).

  • Ποια έκδοση εκτελέσιμων χρησιμοποιείται στο FreeBSD.

  • Πως να διαβάζετε τις σελίδες βοηθείας (manual pages) για περισσότερες πληροφορίες.

5.2. Εικονικές Κονσόλες και Τερματικά

Μπορείτε να χειριστείτε το FreeBSD με διάφορους τρόπους. Ένας από αυτούς, είναι πληκτρολογώντας εντολές κειμένου σε ένα τερματικό. Με αυτό τον τρόπο έχετε στα χέρια σας ένα ευέλικτο και δυνατό λειτουργικό σύστημα UNIX®. Αυτή η ενότητα περιγράφει τι είναι τα "τερματικά" και οι "κονσόλες" και πως μπορούν να χρησιμοποιηθούν στο FreeBSD.

5.2.1. Η Κονσόλα

Εάν δεν έχετε ρυθμίσει το FreeBSD να ξεκινά αυτόματα κάποιο γραφικό περιβάλλον εργασίας, τότε αμέσως μετά την εκκίνηση του συστήματος και την ολοκλήρωση των σεναρίων εκκίνησης (startup scripts) θα εμφανιστεί η προτροπή σύνδεσης (login prompt). Θα δείτε κάτι παρόμοιο στην οθόνη σας:

Additional ABI support:.
Local package initialization:.
Additional TCP options:.

Fri Sep 20 13:01:06 EEST 2002

FreeBSD/i386 (pc3.example.org) (ttyv0)

login:

Το μήνυμα μπορεί να είναι λίγο διαφορετικό στο σύστημα σας, αλλά δεν πρέπει να διαφέρει κατά πολύ. Θα εστιάσουμε την προσοχή μας στις τελευταίες δύο γραμμές. Η προτελευταία γραμμή αναφέρει:

FreeBSD/i386 (pc3.example.org) (ttyv0)

Αυτή η γραμμή περιέχει μερικές πληροφορίες για το σύστημα που μόλις εκκινήσατε. Έχετε μπροστά σας μια κονσόλα "FreeBSD", που τρέχει με επεξεργαστή αρχιτεκτονικής x86 της Intel ή άλλον συμβατό . Το όνομα αυτής της μηχανής (όλες οι μηχανές UNIX® έχουν κάποιο όνομα) είναι pc3.example.org, και έχετε ανοικτό μπροστά σας το τερματικό ttyv0 - κονσόλα του συστήματος.

Ολοκληρώνοντας, η τελευταία γραμμή είναι πάντα:

login:

Σε αυτό το μέρος θα πρέπει να πληκτρολογήσετε το "όνομα χρήστη" (username) για να συνδεθείτε στο FreeBSD. Στην επόμενη ενότητα θα περιγράψουμε ακριβώς αυτήν την διαδικασία.

5.2.2. Εισαγωγή Χρήστη στο Σύστημα FreeBSD

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

Κάθε σύστημα multiuser χρειάζεται κάποιους τρόπους ώστε να ξεχωρίζει κάθε "χρήστη" από τους υπολοίπους. Στο FreeBSD (όπως και σε όλα τα Λ.Σ. που βασίζονται στο UNIX®), αυτό επιτυγχάνεται απαιτώντας κάθε χρήστης να "είναι συνδεδεμένος (log in)" πριν να μπορεί να τρέξει προγράμματα. Κάθε χρήστης έχει ξεχωριστό όνομα (το "όνομα χρήστη ή username") και μία προσωπική δικλείδα ασφαλείας, (τον "κωδικό πρόσβασης ή password"). Αυτά θα ζητηθούν από το FreeBSD σε κάθε χρήστη πριν να του επιτραπεί να τρέξει οποιαδήποτε εφαρμογή.

Αμέσως μετά την ολοκλήρωση των διεργασιών εκκίνησης του FreeBSD και των σεναρίων εκκίνησης (startup scripts) , θα εμφανιστεί το σύμβολο της προτροπής (prompt) και θα σας ζητηθεί ένα έγκυρο όνομα χρήστη:

login:

Για παράδειγμα, ας υποθέσουμε πως το όνομα χρήστη σας είναι john. Πληκτρολογήστε john στην προτροπή και πατήστε Enter. Θα ακολουθήσει μια νέα προτροπή για να δώσετε τον "κωδικό πρόσβασης (password)":

login: john
Password:

Πληκτρολογήστε τώρα τον κωδικό πρόσβασης του john, και πατήστε Enter. Ο κωδικός πρόσβασης δεν είναι ορατός! Δεν χρειάζεται να ανησυχείτε για αυτό. Είναι επαρκές να πούμε πως αυτό συμβαίνει για λόγους ασφαλείας.

Αν έχετε πληκτρολογήσει σωστά τον κωδικό πρόσβασης, τότε έχετε συνδεθεί στο FreeBSD και είστε έτοιμοι να δοκιμάσετε όλες τις διαθέσιμες εντολές UNIX®.

Πρέπει να δείτε το MOTD ή αλλιώς το ημερήσιο μήνυμα και στη συνέχεια την προτροπή εντολής (ένα χαρακτήρα #, $, ή %). Αυτό σημαίνει πως έχετε συνδεθεί επιτυχώς στο FreeBSD.

5.2.3. Πολλαπλές Κονσόλες

Η εκτέλεση εντολών UNIX® σε μία μόνο κονσόλα μπορεί να είναι ικανοποιητική, αλλά το FreeBSD μπορεί να τρέχει ταυτόχρονα πολλά προγράμματα. Η ύπαρξη μίας μόνο κονσόλας για πληκτρολόγηση εντολών θα ήταν πραγματικά ελλιπής για ένα Λ.Σ. όπως το FreeBSD που μπορεί να τρέχει ταυτόχρονα δεκάδες προγράμματα. Εδώ είναι που χρειάζονται οι "εικονικές κονσόλες".

Το FreeBSD μπορεί να ρυθμιστεί κατάλληλα ώστε να παρουσιάζεται με διάφορες εικονικές κονσόλες. Η εναλλαγή από μία εικονική κονσόλα σε οποιαδήποτε άλλη μπορεί να γίνει πατώντας μερικά πλήκτρα στο πληκτρολόγιο. Η κάθε κονσόλα έχει το δικό της κανάλι εξόδου, και καθώς εναλλάσσετε εικονικές κονσόλες το FreeBSD αποθηκεύει και επαναφέρει προσεκτικά το αντίστοιχο πληκτρολόγιο και οθόνη για κάθε κονσόλα σαν να υπήρχε πραγματική εναλλαγή.

Συνδυασμοί ειδικών πλήκτρων χρησιμοποιούνται από το FreeBSD για την εναλλαγή κονσολών . Μπορείτε να χρησιμοποιήσετε Alt+F1, Alt+F2,έως Alt+F8 για να μεταβείτε στις διάφορες εικονικές κονσόλες του FreeBSD.

Καθώς εναλλάσσεστε από τη μία κονσόλα στην άλλη, το FreeBSD αποθηκεύει και επαναφέρει προσεκτικά την αντίστοιχη οθόνη. Το αποτέλεσμα είναι ένα "οπτικό τρικ" σαν να είχαμε πολλαπλές "εικονικές" οθόνες και πληκτρολόγια που θα μπορούσαμε να χρησιμοποιήσουμε για να τρέχουμε εντολές στο FreeBSD. Τα προγράμματα που τρέχετε από μια κονσόλα δεν σταματούν να λειτουργούν όταν η κονσόλα δεν είναι ορατή. Συνεχίζουν να τρέχουν κι όταν βρίσκεστε σε διαφορετική κονσόλα.

5.2.4. Το Αρχείο /etc/ttys

Η εξ' ορισμού ρύθμιση του FreeBSD θα ξεκινήσει με οκτώ εικονικές κονσόλες. Δεν πρόκειται για μια πολύπλοκη ρύθμιση και μπορείτε εύκολα να την αλλάξετε ώστε να φορτώνονται περισσότερες ή λιγότερες εικονικές κονσόλες κατά την εκκίνηση. Το πλήθος και η παραμετροποίηση των εικονικών κονσολών ρυθμίζεται στο αρχείο /etc/ttys.

Μπορείτε να χρησιμοποιήσετε το αρχείο /etc/ttys για να ρυθμίσετε τις εικονικές κονσόλες στο FreeBSD. Κάθε γραμμή του αρχείου που δεν είναι σχόλιο (οι γραμμές που δεν ξεκινούν με τον χαρακτήρα #) περιέχουν ρυθμίσεις για ένα τερματικό ή για μια εικονική κονσόλα. Η προκαθορισμένη έκδοση του αρχείου, η οποία περιέχεται στην διανομή FreeBSD, περιέχει εννέα εικονικές κονσόλες, εκ των οποίων οι οκτώ είναι ενεργοποιημένες. Είναι στις γραμμές που ξεκινούν με ttyv:

# name  getty                           type    status          comments
#
ttyv0   "/usr/libexec/getty Pc"         cons25  on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25  on  secure
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/X11R6/bin/xdm -nodaemon"  xterm   off secure

Για μια λεπτομερή περιγραφή κάθε στήλης του αρχείου και όλων των ρυθμίσεων που μπορούν να εφαρμοστούν για τις εικονικές κονσόλες συμβουλευτείτε την σελίδα βοηθείας ttys(5).

5.2.5. Κονσόλα σε Κατάσταση Ενός Χρήστη

Μπορείτε να βρείτε μια λεπτομερή περιγραφή για το τι είναι "κατάσταση ενός χρήστη" στην ενότητα Κατάσταση Λειτουργίας Ενός Χρήστη. Αξίζει να αναφέρουμε πως υπάρχει ενεργή μόνο μία κονσόλα όταν τρέχετε το FreeBSD σε κατάσταση ενός χρήστη. Δεν υπάρχουν διαθέσιμες εικονικές κονσόλες. Στο αρχείο /etc/ttys μπορείτε να βρείτε τις ρυθμίσεις σε κατάσταση ενός χρήστη. Αναζητήστε την γραμμή που ξεκινά με console:

# name  getty                           type    status          comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none                            unknown off secure

Όπως αναφέρουν τα σχόλια πάνω από το console, μπορείτε να επεξεργαστείτε αυτήν τη γραμμή και να αντικαταστήσετε την λέξη secure με insecure. Σε αυτή την περίπτωση κατά την εκκίνηση του FreeBSD σε κατάσταση ενός χρήστη, θα σας ζητηθεί ο κωδικός πρόσβασης του υπερχρήστη root.

Προσέχετε όταν κάνετε την μετατροπή σε insecure. Εάν τύχει να ξεχάσετε τον κωδικό πρόσβασης του root, η πρόσβαση σε κατάσταση λειτουργίας ενός χρήστη μπορεί να γίνει δύσβατη. Υπάρχει ακόμη τρόπος να κάνετε εκκίνηση, αλλά ίσως να είναι δύσκολο για κάποιον που δεν γνωρίζει πολλά για τις διεργασίες και τα προγράμματα εκκίνησης του FreeBSD.

5.2.6. Αλλάζοντας την Ανάλυση (video mode) της Κονσόλας

Η προεπιλεγμένη απεικόνιση της κονσόλας στο FreeBSD μπορεί να ρυθμιστεί σε ανάλυση 1024x768, 1280x1024, ή σε οποιοδήποτε άλλο μέγεθος υποστηρίζεται από την κάρτα γραφικών και την οθόνη σας. Για να χρησιμοποιήσετε διαφορετική ανάλυση, θα πρέπει πρώτα από όλα να επαναμεταγλωττίσετε τον πυρήνα σας, και να συμπεριλάβετε τις παρακάτω δύο επιλογές:

options VESA
options SC_PIXEL_MODE

Μετά τη μεταγλώττιση του πυρήνα με τις παραπάνω δύο επιλογές, μπορείτε να βρείτε ποιες αναλύσεις υποστηρίζονται από το υλικό σας, χρησιμοποιώντας το βοηθητικό πρόγραμμα vidcontrol(1). Για να δείτε μια λίστα από τις υποστηριζόμενες αναλύσεις, δώστε την ακόλουθη εντολή:

# vidcontrol -i mode

Η έξοδος της εντολής αυτής, είναι μια λίστα από αναλύσεις οθόνης που υποστηρίζονται από το υλικό σας. Μπορείτε έπειτα να επιλέξετε μια νέα ανάλυση, δίνοντας την ως όρισμα στην vidcontrol(1) σε μια κονσόλα που έχετε συνδεθεί ως root:

# vidcontrol MODE_279

Αν η νέα ανάλυση γίνει δεκτή, μπορείτε να την ορίσετε ως προεπιλεγμένη για κάθε εκκίνηση, με την κατάλληλη ρύθμιση στο αρχείο /etc/rc.conf:

allscreens_flags="MODE_279"

5.3. Άδειες (Permissions)

Το FreeBSD είναι απόγονος του BSD UNIX®, και για αυτό το λόγο βασίζεται σε μερικές έννοιες κλειδιά του UNIX®. Η πρώτη και πιο σημαντική είναι πως το FreeBSD είναι ένα πολυχρηστικό (multiuser) λειτουργικό σύστημα. Το σύστημα μπορεί να εξυπηρετήσει πολλούς χρήστες που εργάζονται ταυτόχρονα και σε εντελώς ανεξάρτητες εφαρμογές. Το σύστημα είναι υπεύθυνο για τον σωστό διαμοιρασμό και τις ανάγκες διαχείρισης συσκευών hardware, περιφερειακών, μνήμης, και την σωστή κατανομή των πόρων της CPU για κάθε χρήστη.

Επειδή το σύστημα έχει την ικανότητα να εξυπηρετεί πολλούς χρήστες, σε οτιδήποτε διαχειρίζεται, υπάρχει μια ομάδα αδειών που ορίζει ποιος μπορεί να διαβάσει, να γράψει και να εκτελέσει αυτούς τους πόρους. Οι άδειες αποθηκεύονται σε οκτάδες διαχωρισμένες σε τρία μέρη, ένα για τον ιδιοκτήτη του αρχείου, ένα για την ομάδα στην οποία ανήκει το αρχείο, και ένα μέρος για όλους τους άλλους. Στη συνέχεια παρουσιάζεται πίνακας με τις αντιστοιχίες μεταξύ των ομάδων αδειών και των αριθμητικών τους τιμών.

ΤιμήΆδειαΕμφάνιση σε περιεχόμενα καταλόγων

0

Ανάγνωση:όχι, Εγγραφή:όχι, Εκτέλεση:όχι

---

1

Ανάγνωση:όχι, Εγγραφή:όχι, Εκτέλεση:ναι

--x

2

Ανάγνωση:όχι, Εγγραφή:ναι, Εκτέλεση:όχι

-w-

3

Ανάγνωση:όχι, Εγγραφή:ναι, Εκτέλεση:ναι

-wx

4

Ανάγνωση:ναι, Εγγραφή:όχι, Εκτέλεση:όχι

r--

5

Ανάγνωση:ναι, Εγγραφή:όχι, Εκτέλεση:ναι

r-x

6

Ανάγνωση:ναι, Εγγραφή:ναι, Εκτέλεση:όχι

rw-

7

Ανάγνωση:ναι, Εγγραφή:ναι, Εκτέλεση:ναι

rwx

Μπορείτε να χρησιμοποιήσετε την εντολή ls(1) με πρόθεμα -l στην γραμμή εντολών για να δείτε τα περιεχόμενα καταλόγου και παρατηρήστε πως περιέχεται μια στήλη με τις άδειες των αρχείων για τον ιδιοκτήτη, την ομάδα, και για όλους τους άλλους. Για παράδειγμα, αν δώσουμε ls -l σε ένα τυχαίο κατάλογο:

% ls -l
total 530
-rw-r--r--  1 root  wheel     512 Sep  5 12:31 myfile
-rw-r--r--  1 root  wheel     512 Sep  5 12:31 otherfile
-rw-r--r--  1 root  wheel    7680 Sep  5 12:31 email.txt
...

Η πρώτη στήλη που παίρνουμε με την εντολή ls -l διαχωρίζεται ως εξής:

-rw-r--r--

Ο πρώτος χαρακτήρας (από τα αριστερά) μας ενημερώνει αν πρόκειται για ένα κανονικό αρχείο, κατάλογο, ειδική συσκευή χαρακτήρων, υποδοχέα (socket), ή οποιαδήποτε άλλo αρχείο ψευδο-συσκευής. Στην περίπτωση μας, το - υποδηλώνει ένα κανονικό αρχείο. Οι ακόλουθοι τρεις χαρακτήρες, στο παράδειγμα μας, rw-, ορίζουν τις άδειες για τον ιδιοκτήτη του αρχείου. Οι τρεις επόμενοι χαρακτήρες, r--, ορίζουν τις άδειες για την ομάδα στην οποία ανήκει το αρχείο. Οι τελευταίοι τρεις χαρακτήρες, r--, ορίζουν τις άδειες για τον υπόλοιπο κόσμο. Η παύλα σημαίνει πως η άδεια είναι απενεργοποιημένη. Στην περίπτωση του αρχείου μας, οι άδειες έχουν οριστεί ώστε ο ιδιοκτήτης να μπορεί να διαβάζει και να γράφει στο αρχείο, η ομάδα να μπορεί να διαβάσει το αρχείο, και ο υπόλοιπος κόσμος να μπορεί μόνο να διαβάσει το αρχείο. Σύμφωνα με τον παραπάνω πίνακα, οι άδειες για αυτό το αρχείο είναι 644, όπου καθένα από τα τρία ψηφία παρουσιάζει το αντίστοιχο μέρος αδειών του αρχείου.

Μέχρι εδώ είναι όλα καλά, αλλά όμως πως το σύστημα ελέγχει τις άδειες συσκευών; Το FreeBSD μεταχειρίζεται τις περισσότερες συσκευές σαν ένα αρχείο το οποίο τα προγράμματα μπορούν να ανοίξουν, να διαβάσουν και να γράψουν σε αυτό σαν να ήταν ένα οποιοδήποτε αρχείο. Αυτά τα ειδικά αρχεία συσκευών αποθηκεύονται στον κατάλογο /dev.

Το σύστημα μεταχειρίζεται επίσης και τους καταλόγους ως αρχεία. Έχουν άδειες ανάγνωσης, εγγραφής και εκτέλεσης. Το bit που ορίζει την εκτέλεση στους καταλόγους έχει ελαφρώς διαφορετικό νόημα από ότι στα αρχεία. Όταν ένας κατάλογος έχει οριστεί εκτελέσιμος, σημαίνει πως είναι προσπελάσιμος, δηλαδή είναι επιτρεπτό να περάσουμε σε ένα υποκατάλογο του (να κάνουμε "cd"). Αυτό επίσης σημαίνει πως επιτρέπεται η πρόσβαση σε όλα τα γνωστά (αυτό έχει να κάνει με τις άδειες των ίδιων των αρχείων) αρχεία.

Ειδικότερα, για να εμφανίζονται τα περιεχόμενα καταλόγου πρέπει να έχει τεθεί άδεια ανάγνωσης (read) στον κατάλογο, ενώ για να διαγραφεί ένα αρχείο του οποίου γνωρίζετε το όνομα είναι αναγκαίο να έχουν δοθεί οι άδειες εγγραφής (write) και εκτέλεσης (execute) στον κατάλογο που περιέχει το αρχείο.

Υπάρχουν κι άλλα bit αδειών, αλλά χρησιμοποιούνται κυρίως σε ειδικές περιπτώσεις όπως σε setuid binaries και sticky directories. Αν θέλετε περισσότερες πληροφορίες για τις άδειες αρχείων και πως να τις ορίζετε, συμβουλευτείτε οπωσδήποτε την σελίδα manual chmod(1).

5.3.1. Συμβολικές Άδειες

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

ΕπιλογήΓράμμαΣημαίνει

(ποιος)

u

User (Χρήστης)

(ποιος)

g

Group owner (Ομάδα που ανήκει)

(ποιος)

o

Other (Υπόλοιποι χρήστες)

(ποιος)

a

All (όλοι, "world")

(ενέργεια)

+

Πρόσθεση αδειών

(ενέργεια)

-

Αφαίρεση αδειών

(ενέργεια)

=

Άμεσος ορισμός αδειών

(άδειες)

r

Read (Ανάγνωση)

(άδειες)

w

Write (Εγγραφή)

(άδειες)

x

Execute (Εκτέλεση)

(άδειες)

t

Sticky bit

(άδειες)

s

Set UID ή GID

Οι τιμές εισάγονται με την εντολή chmod(1) όπως πριν, αλλά με γράμματα. Για παράδειγμα, θα μπορούσατε να χρησιμοποιήσετε την ακόλουθη εντολή για να απαγορεύσετε σε άλλους χρήστες την πρόσβαση στο FILE:

% chmod go= FILE

Μπορούν να γίνουν πάνω από μία αλλαγές στις άδειες ενός αρχείου ταυτόχρονα διαχωρίζοντας τις αλλαγές με κόμμα. Για παράδειγμα, η ακόλουθη εντολή θα αφαιρέσει στην ομάδα και στον "υπόλοιπο κόσμο" την άδεια εγγραφής, και στη συνέχεια θα προσθέσει άδεια εκτέλεσης σε όλους.

% chmod go-w,a+x FILE

5.3.2. FreeBSD File Flags

Πέρα από τις άδειες αρχείων που συζητήθηκαν πριν από λίγο, το FreeBSD υποστηρίζει την χρήση των "file flags." Αυτά τα flags προσθέτουν ένα επιπρόσθετο επίπεδο ασφαλείας και ελέγχου σε αρχεία, αλλά όχι σε καταλόγους.

Αυτά τα flags προσθέτουν ένα πρόσθετο επίπεδο ελέγχου σε αρχεία, διασφαλίζοντας μας πως σε κάποιες περιπτώσεις ακόμη κι ο root να μην μπορεί να διαγράψει ή να μετατρέψει αρχεία.

Η μετατροπή των file flags γίνεται με την chflags(1), χρησιμοποιώντας μια απλή διασύνδεση. Για παράδειγμα, για να ενεργοποιήσουμε το flag του συστήματος μη διαγραφής αρχείου στο αρχείο file1, δίνουμε την ακόλουθη εντολή:

# chflags sunlink file1

Για να απενεργοποιήσουμε το flag του συστήματος μη διαγραφής αρχείου, απλά δίνουμε την προηγούμενη εντολή με "no" μπροστά από το sunlink. Παρατηρήστε:

# chflags nosunlink file1

Για να δείτε τα flags ενός αρχείου, χρησιμοποιήστε την εντολή ls(1) με το πρόθεμα -lo:

# ls -lo file1

Στην έξοδο θα πρέπει να δείτε κάτι παρόμοιο με το ακόλουθο:

-rw-r--r--  1 trhodes  trhodes  sunlnk 0 Mar  1 05:54 file1

Μερικά flags μπορούν να προστεθούν ή να αφαιρεθούν μόνο από τον χρήστη root. Στις υπόλοιπες περιπτώσεις, ο ιδιοκτήτης του αρχείου μπορεί να θέσει αυτά τα flags. Προτείνουμε στους διαχειριστές να διαβάσουν τις σελίδες βοηθείας chflags(1) και chflags(2) για περισσότερες πληροφορίες.

5.3.3. Οι Άδειες setuid, setgid και sticky

Εκτός από τις άδειες που έχουμε συζητήσει ήδη, υπάρχουν τρεις ακόμα τις οποίες κάθε διαχειριστής πρέπει να γνωρίζει. Πρόκειται για τις άδειες setuid, setgid και sticky.

Οι παραπάνω είναι σημαντικές για κάποιες λειτουργίες στο UNIX®, καθώς παρέχουν λειτουργίες που δεν είναι φυσιολογικά διαθέσιμες στους κοινούς χρήστες. Για να τις κατανοήσετε, θα πρέπει πρώτα να καταλάβετε την διαφορά μεταξύ του πραγματικού αναγνωριστικού χρήστη (real user ID) και του ενεργού αναγνωριστικού χρήστη (effective user ID).

Το πραγματικό ID του χρήστη, είναι το UID στο οποίο ανήκει, ή με το οποίο ξεκινά, μια διεργασία. Το ενεργό UID, είναι το αναγνωριστικό χρήστη το οποίο εκτελεί την διεργασία. Για παράδειγμα, το βοηθητικό πρόγραμμα passwd(1) εκτελείται με το πραγματικό ID του χρήστη που αλλάζει τον κωδικό του. Ωστόσο, για να μπορεί να διαχειριστεί την βάση δεδομένων με τους κωδικούς του συστήματος, το πρόγραμμα αυτό χρησιμοποιεί ως ενεργό ID αυτό του χρήστη root. Με αυτό τον τρόπο, επιτρέπεται στους απλούς χρήστες να αλλάζουν τους κωδικούς τους χωρίς να παίρνουν το μήνυμα λάθους Permission Denied (απαγόρευση πρόσβασης).

Η επιλογή nosuid στην εντολή mount(8) θα προκαλέσει αποτυχία εκτέλεσης αυτών των εντολών, και μάλιστα χωρίς κάποιο μήνυμα λάθους. Με λίγα λόγια, η εκτέλεση τους θα αποτύχει, και ο χρήστης δεν θα ενημερωθεί για αυτό. Η επιλογή αυτή δεν είναι επίσης απόλυτα ασφαλής, καθώς (σύμφωνα με τη σελίδα manual mount(8)) υπάρχει τρόπος να παρακαμφθεί μέσω κάποιου ενδιάμεσου nosuid προγράμματος (wrapper).

Μπορείτε να καθορίσετε την άδεια setuid, τοποθετώντας τον αριθμό τέσσερα (4) μπροστά από το γενικό σετ των αδειών, όπως φαίνεται στο ακόλουθο παράδειγμα:

# chmod 4755 suidexample.sh

Οι άδειες στο αρχείο suidexample.sh θα φαίνονται τώρα όπως παρακάτω:

-rwsr-xr-x   1 trhodes  trhodes    63 Aug 29 06:36 suidexample.sh

Παρατηρήστε στο παράδειγμα, ότι το s είναι πλέον μέλος του συνόλου αδειών που έχουν καθοριστεί για τον ιδιοκτήτη του αρχείου, και έχει αντικαταστήσει την αντίστοιχη άδεια εκτέλεσης. Με τον τρόπο αυτό λειτουργούν προγράμματα που χρειάζονται αυξημένα δικαιώματα, όπως για παράδειγμα η εντολή passwd.

Για να παρατηρήσετε αυτή τη λειτουργία την ώρα που συμβαίνει, ανοίξτε δύο τερματικά. Στο πρώτο, ξεκινήστε την εντολή passwd ως κανονικός χρήστης. Καθώς η εντολή εκτελείται και περιμένει για την εισαγωγή του νέου κωδικού, ελέγξτε τον πίνακα διεργασιών και αναζητήστε τις πληροφορίες του χρήστη που εκτελεί την εντολή passwd.

Στο τερματικό Α:

Changing local password for trhodes
Old Password:

Στο τερματικό Β:

# ps aux | grep passwd
trhodes  5232  0.0  0.2  3420  1608   0  R+    2:10AM   0:00.00 grep passwd
root     5211  0.0  0.2  3620  1724   2  I+    2:09AM   0:00.01 passwd

Όπως είπαμε παραπάνω, η εντολή passwd εκτελείται από ένα κανονικό χρήστη, αλλά χρησιμοποιεί το ενεργό UID του χρήστη root.

Η άδεια setgid εκτελεί την ίδια λειτουργία όπως και η setuid, αλλά επιδρά στις άδειες της ομάδας (group). Όταν εκτελέσετε μια τέτοια εφαρμογή ή βοηθητικό πρόγραμμα, θα χρησιμοποιεί τις άδειες της ομάδας στην οποία ανήκει το αρχείο, και όχι του χρήστη που την ξεκίνησε.

Για να θέσετε την άδεια setgid σε ένα αρχείο, θα πρέπει να τοποθετήσετε τον αριθμό δύο (2) μπροστά από το σύνολο αδειών, στην εντολή chmod. Δείτε το παρακάτω παράδειγμα:

# chmod 2755 sgidexample.sh

Όπως και πριν, θα παρατηρήσετε τη νέα άδεια s, αλλά αυτή τη φορά στο σετ των αδειών της ομάδας:

-rwxr-sr-x   1 trhodes  trhodes    44 Aug 31 01:49 sgidexample.sh

Στα παραδείγματα μας, αν και το αρχείο είναι ένα εκτελέσιμο script για κέλυφος, δεν θα εκτελεστεί με διαφορετικό ενεργό ID (EUID). Αυτό συμβαίνει γιατί σε αυτά τα scripts δεν επιτρέπεται η πρόσβαση στις κλήσεις setuid(2) του συστήματος.

Οι δύο πρώτες ειδικές άδειες που αναφέραμε, οι setuid και setgid, ενδεχομένως να μειώσουν την ασφάλεια του συστήματος, αφού επιτρέπουν σε προγράμματα να εκτελούνται με αυξημένα δικαιώματα. Υπάρχει ωστόσο μια τρίτη ειδική άδεια, η οποία μπορεί να αυξήσει την ασφάλεια του συστήματος: το sticky bit.

Όταν θέσετε το sticky bit σε ένα κατάλογο, επιτρέπεται η διαγραφή ενός αρχείου μόνο από τον ιδιοκτήτη του. Η άδεια αυτή είναι χρήσιμη για να αποφεύγεται η διαγραφή ενός αρχείου από κοινόχρηστους καταλόγους, όπως για παράδειγμα ο /tmp, από κάποιο χρήστη που δεν είναι ο ιδιοκτήτης του. Για να θέσετε αυτή την άδεια, τοποθετήστε τον αριθμό ένα (1) στην αρχή του σετ αδειών:

# chmod 1777 /tmp

Μπορείτε τώρα να δείτε το αποτέλεσμα, χρησιμοποιώντας την εντολή ls:

# ls -al / | grep tmp
drwxrwxrwt  10 root  wheel         512 Aug 31 01:49 tmp

Η άδεια sticky bit φαίνεται ως t στο τέλος του συνόλου των αδειών.

5.4. Δομή Καταλόγου

Η ιεραρχική δομή του FreeBSD είναι ένα βασικό στοιχείο που πρέπει να γνωρίζετε αν θέλετε να έχετε μια ολοκληρωμένη εικόνα του συστήματος. Η πιο σημαντική έννοια είναι αυτή του ριζικού (root) καταλόγου, "/". Αυτός ο κατάλογος προσαρτάται (mount) πρώτος κατά την εκκίνηση και περιέχει το βασικό σύστημα ικανό να ετοιμάσει το Λ.Σ. για λειτουργία multi-user. Ο root κατάλογος περιέχει επίσης σημεία προσάρτησης για άλλα συστήματα αρχείων που προσαρτώνται κατά την μετάβαση σε κατάσταση λειτουργίας multi-user.

Σημείο προσάρτησης (mount point) είναι ένας κατάλογος στον οποίο μπορούν να αναπτυχθούν πρόσθετα συστήματα αρχείων σε ένα γονικό σύστημα αρχείων (συνήθως στο root σύστημα αρχείων). Αυτό περιγράφεται αναλυτικά στην ενότητα Οργάνωση Δίσκου. Στα στάνταρντ σημεία προσάρτησης περιλαμβάνονται: οι /usr, /var, /tmp, /mnt, και /cdrom. Αυτοί οι κατάλογοι συνήθως είναι καταχωρημένοι στο αρχείο /etc/fstab. Το /etc/fstab είναι ένας πίνακας αντιστοιχίας διαφόρων συστημάτων αρχείων και σημείων προσάρτησης για αναφορά στο σύστημα. Τα περισσότερα συστήματα που αναφέρονται στο /etc/fstab προσαρτώνται αυτόματα κατά την εκκίνηση του συστήματος από το script rc(8) εκτός αν περιέχεται η επιλογή noauto. Λεπτομέρειες μπορείτε να βρείτε στο Το Αρχείο fstab.

Μια πλήρη περιγραφή της ιεραρχίας του συστήματος αρχείων είναι διαθέσιμη στο hier(7). Ακολουθεί μια σύντομη ανασκόπηση με τους πιο συνήθεις καταλόγους.

ΚατάλογοςΠεριγραφή

/

Ριζικός (root) κατάλογος του συστήματος αρχείων.

/bin/

Χρήσιμα εργαλεία για περιβάλλον ενός ή πολλαπλών χρηστών.

/boot/

Προγράμματα και αρχεία ρυθμίσεων που χρησιμοποιούνται κατά την εκκίνηση του λειτουργικού συστήματος.

/boot/defaults/

Προκαθορισμένα αρχεία ρυθμίσεων εκκίνησης, δείτε loader.conf(5).

/dev/

Αρχεία συσκευών, δείτε intro(4).

/etc/

Αρχεία ρυθμίσεων συστήματος και σενάρια εκκίνησης.

/etc/defaults/

Προκαθορισμένα αρχεία ρυθμίσεων συστήματος, δείτε την rc(8).

/etc/mail/

Αρχεία ρυθμίσεων για πράκτορες μεταφοράς ηλεκτρ. ταχυδρομείου (ΜΤΑ) όπως το sendmail(8).

/etc/namedb/

Αρχεία ρυθμίσεων named, δείτε named(8).

/etc/periodic/

Σενάρια λειτουργιών που τρέχουν σε ημερήσια, εβδομαδιαία, και μηνιαία βάση, cron(8); δείτε periodic(8).

/etc/ppp/

Αρχεία ρυθμίσεων ppp, δείτε τις ppp(8).

/mnt/

Κενός κατάλογος που συνήθως χρησιμοποιείται από τους διαχειριστές συστημάτων ως προσωρινό σημείο προσάρτησης.

/proc/

Σύστημα αρχείων διεργασιών, δείτε τις procfs(5), mount_procfs(8).

/rescue/

Προγράμματα με στατική σύνδεση (static link) για ασφαλή επαναφορά συστήματος, δείτε την rescue(8).

/root/

Προσωπικός κατάλογος του χρήστη root.

/sbin/

Προγράμματα συστήματος και χρήσιμα εργαλεία διαχείρισης για περιβάλλον ενός ή πολλαπλών χρηστών.

/tmp/

Προσωρινά αρχεία. Τα περιεχόμενα του /tmp συνήθως δεν διατηρούνται μετά από επανεκκίνηση του συστήματος. Στο /tmp συνήθως προσαρτάται ένα σύστημα αρχείων μνήμης. Αυτό μπορεί να επιτευχθεί αυτομάτως χρησιμοποιώντας τις σχετικές μεταβλητές tmpmfs του rc.conf(5) (ή με μια καταχώρηση στον /etc/fstab, δείτε την mdmfs(8)).

/usr/

Περιέχονται σχεδόν όλα τα βοηθητικά προγράμματα και οι εφαρμογές χρηστών.

/usr/bin/

Κοινόχρηστα βοηθητικά προγράμματα, εργαλεία προγραμματισμού, και εφαρμογές.

/usr/include/

Στάνταρ αρχεία συμπερίληψης C (include files).

/usr/lib/

Αρχεία βιβλιοθηκών.

/usr/libdata/

Διάφορα αρχεία δεδομένων βοηθητικών προγραμμάτων.

/usr/libexec/

Δαίμονες συστήματος & βοηθητικά προγράμματα συστήματος (εκτελούνται από άλλα προγράμματα).

/usr/local/

Τοπικά εκτελέσιμα, βιβλιοθήκες, κτλ. Επίσης είναι και ο προκαθορισμένος προορισμός για προγράμματα που εγκαθίστανται από τα ports του FreeBSD. Μέσα στον /usr/local, χρησιμοποιείται γενικά η διάταξη του /usr που περιγράφεται στο hier(7). Εξαιρούνται οι κατάλογοι σελίδων βοηθείας man, που βρίσκεται άμεσα κάτω από τον /usr/local και όχι κάτω από τον /usr/local/share, καθώς και η τεκμηρίωση κάθε port που βρίσκεται στον share/doc/port.

/usr/obj/

Δέντρο προορισμού που εξαρτάται από την αρχιτεκτονική του μηχανήματος και παράγεται μεταγλωττίζοντας το δέντρο /usr/src.

/usr/ports/

Η Συλλογή Ports του FreeBSD (προαιρετικό).

/usr/sbin/

Δαίμονες συστήματος & βοηθητικά προγράμματα συστήματος (εκτελούνται από χρήστες).

/usr/shared/

Αρχεία ανεξάρτητα από την Αρχιτεκτονική του μηχανήματος.

/usr/src/

Αρχεία BSD και/ή τοπικά αρχεία πηγαίου κώδικα.

/usr/X11R6/

Εκτελέσιμα, βιβλιοθήκες, κτλ. για την διανομή X11R6 (προαιρετικό).

/var/

Αρχεία αναφοράς (log) διαφόρων χρήσεων, temporary, transient, και spool. Μερικές φορές προσαρτάται στον /var ένα σύστημα αρχείων μνήμης. Αυτό μπορεί να επιτευχθεί αυτόματα χρησιμοποιώντας τις σχετικές μεταβλητές varmfs του rc.conf(5) (ή με μία καταχώρηση στο /etc/fstab, δείτε τις mdmfs(8)).

/var/log/

Διάφορα αρχεία συμβάντων του συστήματος.

/var/mail/

Αρχεία γραμματοκιβωτίου (mailbox) χρηστών.

/var/spool/

Διάφοροι κατάλογοι παροχέτευσης (spool) εκτυπωτών και ηλεκτρονικής αλληλογραφίας του συστήματος.

/var/tmp/

Προσωρινά (temporary) αρχεία. Τα αρχεία αυτά συνήθως διατηρούνται κατά την διάρκεια επανεκκίνησης του συστήματος, εκτός αν ο /var είναι ένα σύστημα αρχείων μνήμης.

/var/yp/

Απεικονίσεις (maps) NIS.

5.5. Οργάνωση Δίσκου

Η μικρότερη μονάδα οργάνωσης που χρησιμοποιεί το FreeBSD για να βρει αρχεία είναι το όνομα αρχείου. Τα ονόματα αρχείων είναι ευαίσθητα στα κεφαλαία- μικρά, το οποίο σημαίνει ότι το readme.txt και το README.TXT είναι δύο διαφορετικά αρχεία. Το FreeBSD δεν χρησιμοποιεί την επέκταση .txt αρχείου για να προσδιορίσει αν ένα αρχείο είναι πρόγραμμα, ή έγγραφο, ή άλλος τύπος δεδομένων.

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

Η αναφορά σε αρχεία και καταλόγους γίνεται δίνοντας το όνομα αρχείου ή το όνομα καταλόγου, ακολουθεί μία αριστερόστροφη κάθετος, / και έπειτα οποιοδήποτε άλλο κατάλληλο όνομα καταλόγου. Εάν έχετε τον κατάλογο foo, ο οποίος περιέχει τον κατάλογο bar, ο οποίος περιέχει το αρχείο readme.txt, τότε το ολοκληρωμένο όνομα, διαδρομή (path) στο αρχείο είναι foo/bar/readme.txt.

Κατάλογοι και αρχεία αποθηκεύονται σε ένα σύστημα αρχείων. Κάθε σύστημα αρχείων περιέχει ένα κατάλογο στο ανώτερο επίπεδο, που ονομάζεται root (ριζικός) κατάλογος για το συγκεκριμένο σύστημα αρχείων. Ο root κατάλογος μπορεί να περιέχει άλλους καταλόγους.

Αυτό πιθανώς είναι παρόμοιο με οποιοδήποτε άλλο λειτουργικό σύστημα έχετε χρησιμοποιήσει. Ωστόσο υπάρχουν μερικές διαφορές. Για παράδειγμα, το MS-DOS® χρησιμοποιεί \ για να διαχωρίζει ονόματα καταλόγων και αρχείων, ενώ το Mac OS® χρησιμοποιεί :.

Το FreeBSD δεν χρησιμοποιεί γράμματα οδηγών ή ονόματα οδηγών στη διαδρομή. Επομένως δεν θα πρέπει να γράφετε c:/foo/bar/readme.txt στο FreeBSD.

Αντιθέτως, ένα σύστημα αρχείων καθορίζεται ως root σύστημα αρχείων. Ο ριζικός κατάλογος του root συστήματος αρχείων αναφέρεται ως /. Κάθε άλλο σύστημα αρχείου προσαρτάται κάτω από το root σύστημα αρχείων Δεν έχει σημασία πόσους δίσκους έχετε στο FreeBSD σύστημα σας, κάθε κατάλογος εμφανίζεται να είναι μέρος του ίδιου δίσκου.

Ας υποθέσουμε πως έχετε τρία συστήματα αρχείων, τα ονομάζουμε A, B και C. Κάθε σύστημα αρχείου έχει έναν ριζικό κατάλογο, ο οποίος περιέχει δύο άλλους καταλόγους, που τους ονομάζουμε A1, A2 (και παρομοίως B1, B2 και C1, C2).

Ας θεωρήσουμε ότι το A είναι το root σύστημα αρχείων. Αν χρησιμοποιήσετε την εντολή ls για να δείτε τα περιεχόμενα αυτού του καταλόγου, θα δείτε δύο υποκαταλόγους, A1 και A2. Το δέντρο του καταλόγου μοιάζει σαν αυτό:

example dir1

Κάθε σύστημα αρχείων πρέπει να προσαρτάται σε ένα κατάλογο διαφορετικού συστήματος αρχείων. Ας υποθέσουμε πως θέλετε να προσαρτήσετε το σύστημα αρχείου B στον κατάλογο A1. Ο ριζικός κατάλογος του B αντικαθιστά τον A1, και οι κατάλογοι του B εμφανίζονται αναλόγως:

example dir2

Όλα τα αρχεία που περιέχονται στους καταλόγους B1 και B2 τα βρίσκουμε με τη διαδρομή /A1/B1 ή με /A1/B2 αντίστοιχα. Όλα τα αρχεία που βρίσκονταν στο /A1 είναι προσωρινά κρυμμένα. Θα επανεμφανιστούν όταν ο B θα αποπροσαρτηθεί από τον A.

Αν ο B είχε προσαρτηθεί στον A2 τότε το διάγραμμα θα έδειχνε κάπως έτσι:

example dir3

και οι διαδρομές θα ήταν /A2/B1 και /A2/B2 αντίστοιχα.

Τα συστήματα αρχείων μπορούν να προσαρτώνται στην κορυφή άλλων συστημάτων. Συνεχίζοντας το τελευταίο παράδειγμα, το σύστημα αρχείου C θα μπορούσε να προσαρτηθεί στην κορυφή του καταλόγου B1 στο σύστημα αρχείου B, οδηγώντας σε αυτήν την κατανομή:

example dir4

Ή ακόμη το C θα μπορούσε να προσαρτηθεί άμεσα στο σύστημα αρχείου A, κάτω από τον κατάλογο A1:

example dir5

Αν γνωρίζετε το σύστημα MS-DOS®, είναι παρόμοιο, αλλά όχι ακριβώς το ίδιο, με την εντολή join.

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

Είναι απόλυτα δυνατόν να έχετε ένα μεγάλο root σύστημα αρχείων, και να μην χρειάζεται να δημιουργήσετε άλλα. Με αυτή την τακτική υπάρχουν μερικά μειονεκτήματα και ένα πλεονέκτημα.

Προτερήματα Πολλαπλών Συστημάτων Αρχείων
  • Διαφορετικά συστήματα αρχείων μπορούν να έχουν διαφορετικές επιλογές προσάρτησης. Για παράδειγμα, με προσεκτικό σχεδιασμό, το root σύστημα αρχείων μπορεί να προσαρτηθεί μόνο για ανάγνωση, ώστε να είναι αδύνατη η διαγραφή ή η μετατροπή κάποιου σημαντικού αρχείου. Διαχωρίζοντας συστήματα αρχείων με δυνατότητα εγγραφής από τον χρήστη, όπως ο /home, επιτρέπει επίσης την προσάρτηση τους ως nosuid. Αυτή η επιλογή περιορίζει την χρήση εκτελέσιμων που είναι αποθηκευμένα στο σύστημα αρχείων, με ενεργοποιημένα τα bits suid/guid, βελτιώνοντας πιθανώς την ασφάλεια.

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

  • Τα συστήματα αρχείων του FreeBSD είναι πολύ ισχυρά. Ωστόσο, μια αδυναμία σε κάποιο σημαντικό σημείο μπορεί ακόμη να οδηγήσει σε κατάρρευση της δομής του συστήματος αρχείων. Ο διαχωρισμός των δεδομένων σας σε πολλαπλά συστήματα αρχείων κάνει πιο εύκολη μια πιθανή επαναφορά από backup, όταν αυτό είναι αναγκαίο.

Προτερήματα ενός Μονοκόμματου Συστήματος Αρχείου
  • Τα συστήματα αρχείων είναι συγκεκριμένου σταθερού μεγέθους. Αν δημιουργήσετε ένα σύστημα αρχείων κατά την εγκατάσταση του FreeBSD και του δώσετε ένα ορισμένο μέγεθος, μπορεί αργότερα να ανακαλύψετε πως χρειάζεστε να φτιάξετε μια μεγαλύτερη κατάτμηση. Αυτό δεν είναι εύκολα πραγματοποιήσιμο δίχως backup, αναδημιουργία του συστήματος αρχείου με το νέο μέγεθος, και επαναφορά των αποθηκευμένων δεδομένων.

    Στο FreeBSD περιέχεται η εντολή growfs(8), η οποία επιτρέπει να αυξήσουμε το μέγεθος ενός συστήματος αρχείων κατά τη λειτουργία του, αφαιρώντας αυτόν τον περιορισμό.

Τα συστήματα αρχείων περιέχονται σε κατατμήσεις (partitions). Αυτό δεν έχει την ίδια έννοια με την κοινή χρήση του όρου κατάτμηση (όπως για παράδειγμα, η κατάτμηση του MS-DOS®), λόγω της κληρονομιάς που φέρει το FreeBSD από το UNIX®. Κάθε κατάτμηση αναγνωρίζεται από ένα λατινικό χαρακτήρα ξεκινώντας από a έως το h. Κάθε κατάτμηση μπορεί να περιέχει μόνο ένα σύστημα αρχείων, το οποίο σημαίνει πως η αναφορά στα συστήματα αρχείων γίνεται είτε από το τυπικό σημείο προσάρτησης στην ιεραρχία του συστήματος αρχείων, είτε από το λατινικό χαρακτήρα της κατάτμησης.

Επίσης το FreeBSD χρησιμοποιεί μέρος από το δίσκο για χώρο swap. Ο χώρος Swap παρέχει στο FreeBSD εικονική μνήμη (virtual memory). Αυτό επιτρέπει στον υπολογιστή σας να συμπεριφέρεται σαν να είχε πολύ περισσότερη μνήμη από όσο πραγματικά έχει. Όταν το FreeBSD δεν έχει διαθέσιμη μνήμη μεταφέρει μερικά από τα δεδομένα που δεν χρησιμοποιούνται, την προκειμένη στιγμή, στον χώρο swap, και όταν τα χρειαστεί τα επαναφέρει (ενώ μεταφέρει κάποια άλλα δεδομένα στον χώρο swap).

Υπάρχουν κάποιες συμβάσεις σχετικά με τις κατατμήσεις

ΚατάτμησηΣύμβαση

a

Συνήθως περιλαμβάνει το root σύστημα αρχείων

b

Συνήθως περιλαμβάνει τον χώρο swap

c

Συνήθως ιδίου μεγέθους με την περιλαμβανόμενη φέτα (slice). Αυτό επιτρέπει σε βοηθητικά προγράμματα που πρέπει να δουλέψουν σε ολόκληρο το κομμάτι (για παράδειγμα, ένας ανιχνευτής κατεστραμμένων μπλοκ) να λειτουργούν στην c κατάτμηση. Κανονικά δεν θα πρέπει να δημιουργείτε σύστημα αρχείων σε αυτή την κατάτμηση.

d

Η κατάτμηση d είχε στο παρελθόν μια ειδική αντιστοιχία, κάτι που δεν ισχύει πλέον σήμερα, επομένως η d μπορεί να χρησιμοποιείται σαν μια κανονική κατάτμηση.

Κάθε κατάτμηση που περιέχει ένα σύστημα αρχείων αποθηκεύεται στο FreeBSD σε μια τοποθεσία που ονομάζεται φέτα (slice). Η φέτα είναι ένας όρος του FreeBSD για αυτό που κοινώς αποκαλείται κατάτμηση, και αυτό επίσης οφείλεται στην καταγωγή του FreeBSD από το UNIX®. Οι φέτες αριθμούνται αρχίζοντας από το 1 έως το 4.

Ο αριθμός της φέτας ακολουθεί το όνομα συσκευής μετά το πρόθεμα s ξεκινώντας από το 1. Επομένως, "da0s1" είναι η πρώτη φέτα του πρώτου οδηγού SCSI. Μπορούν να υπάρχουν μέχρι τέσσερις φέτες σε κάθε δίσκο, αλλά μπορείτε να δημιουργήσετε λογικές φέτες μέσα σε κατάλληλου τύπου φυσικές φέτες. Σε αυτές τις εκτεταμένες φέτες η αρίθμηση ξεκινάει από το 5, επομένως "ad0s5" είναι η πρώτη εκτεταμένη φέτα στον πρώτο δίσκο IDE. Αυτές οι συσκευές χρησιμοποιούνται από συστήματα αρχείων που πρέπει να καταλαμβάνουν μια ολόκληρη φέτα.

Οι φέτες, οι "επικίνδυνα αφοσιωμένοι (dangerously dedicated) " φυσικοί οδηγοί καθώς και άλλοι οδηγοί, περιέχουν κατατμήσεις, οι οποίες παρουσιάζονται με λατινικούς χαρακτήρες από το a έως το h. Αυτός ο χαρακτήρας αναφέρεται στο όνομα συσκευής, επομένως "da0a" είναι η a κατάτμηση στον πρώτο οδηγό da, ο οποίος είναι "επικίνδυνα αφοσιωμένος". Η "ad1s3e" είναι η πέμπτη κατάτμηση στην τρίτη φέτα του δεύτερου οδηγού δίσκου IDE.

Ολοκληρώνοντας, κάθε δίσκος στο σύστημα είναι μονόδρομα ορισμένος. Κάθε όνομα δίσκου ξεκινά με ένα κωδικό που υποδεικνύει τον τύπο του δίσκου, και ένα νούμερο που υποδηλώνει ποιος δίσκος είναι. Αντίθετα με τις φέτες, οι δίσκοι αριθμούνται ξεκινώντας από το 0. Οι πιο συνήθεις κωδικοί που θα συναντήσετε αναφέρονται στην Κωδικοί Συσκευών Δίσκων.

Όταν γίνεται αναφορά σε μια κατάτμηση, το FreeBSD ζητά να δηλωθεί επιπλέον η ονομασία της φέτας και του δίσκου που περιέχει την κατάτμηση, ενώ στην περίπτωση που αναφέρεστε σε μια φέτα θα πρέπει να δηλώνετε το όνομα του δίσκου. Επομένως, όταν αναφέρεστε σε μια κατάτμηση χρειάζεται να δηλώνετε το όνομα του δίσκου, s, τον αριθμό της φέτας, και τον χαρακτήρα της κατάτμησης. Παραδείγματα μπορείτε να βρείτε στην Υποδείγματα Ονομάτων Δίσκου, Φέτας, Κατάτμησης.

Η Εννοιολογικό Μοντέλο ενός Δίσκου παρουσιάζει ένα εννοιολογικό μοντέλο για τη δομή του δίσκου που θα σας βοηθήσει να καταλάβετε καλύτερα κάποια πράγματα.

Για να εγκαταστήσετε το FreeBSD πρέπει πρώτα να ρυθμίσετε τις φέτες του δίσκου, να δημιουργήσετε τις κατατμήσεις μέσα στις φέτες που θα χρησιμοποιήσετε για το FreeBSD, έπειτα να δημιουργήσετε ένα σύστημα αρχείων (ή χώρο swap) σε κάθε κατάτμηση, και τέλος να αποφασίσετε σε ποιο σημείο θα προσαρτηθεί το σύστημα αρχείων.

Πίνακας 2. Κωδικοί Συσκευών Δίσκων
ΚώδικαςΣημαίνει

ad

Δίσκος ATAPI (IDE)

da

Δίσκος SCSI άμεσης πρόσβασης

acd

ATAPI (IDE) CDROM

cd

SCSI CDROM

fd

Μονάδα Δισκέτας (Floppy)

Παράδειγμα 4. Υποδείγματα Ονομάτων Δίσκου, Φέτας, Κατάτμησης
ΟνομασίαΣημαίνει

ad0s1a

Η πρώτη κατάτμηση (a) στην πρώτη φέτα (s1) του πρώτου δίσκου IDE (ad0).

da1s2e

Η πέμπτη κατάτμηση (e) στην δεύτερη φέτα (s2) του δεύτερου δίσκου SCSI (da1).

Παράδειγμα 5. Εννοιολογικό Μοντέλο ενός Δίσκου

Το διάγραμμα παρουσιάζει μια εικόνα του πρώτου δίσκου IDE που είναι προσαρτημένος στο σύστημα. Ας υποθέσουμε πως ο δίσκος έχει μέγεθος 4 GB, και περιέχει δύο φέτες των 2 GB (κατατμήσεις MS-DOS®). Η πρώτη φέτα περιέχει ένα δίσκο MS-DOS®, C:, και η δεύτερη φέτα μία εγκατάσταση FreeBSD. Σε αυτό το παράδειγμα, η εγκατάσταση FreeBSD έχει τρεις κατατμήσεις δεδομένων και μία κατάτμηση swap.

Καθεμία από τις τρεις κατατμήσεις θα περιέχει ένα σύστημα αρχείων. Η κατάτμηση a θα χρησιμοποιηθεί για το root σύστημα αρχείων, η e για τη δομή κατάλογου /var, και η f για τη δομή καταλόγου /usr.

disk layout

5.6. Προσάρτηση και Αποπροσάρτηση Συστημάτων Αρχείων

Ένα σύστημα αρχείων αναπαριστάται καλύτερα σε μορφή δέντρου, με τις ρίζες του στο /. Οι κατάλογοι /dev, /usr, και άλλοι είναι κλαδιά του καταλόγου root, και μπορεί να έχουν με τη σειρά τους, τα δικά τους κλαδιά, όπως τον /usr/local, και ούτω καθεξής.

Υπάρχουν διάφοροι λόγοι για τους οποίους θα έπρεπε να τοποθετήσουμε κάποιους από αυτούς τους καταλόγους σε διαφορετικά συστήματα αρχείων. Ο κατάλογος /var περιέχει τους καταλόγους log/, spool/, και διάφορους άλλους τύπους προσωρινών αρχείων, και για το λόγο αυτό μπορεί να γεμίσει. Δεν θα ήταν καλή ιδέα να γεμίσει το root σύστημα αρχείων, επομένως ο διαχωρισμός του /var από τον / είναι συχνά επιθυμητός.

Ένας άλλος συνηθισμένος λόγος να έχουμε διάφορους καταλόγους σε διαφορετικά συστήματα αρχείων είναι όταν πρόκειται να φιλοξενηθούν σε διαφορετικούς φυσικούς δίσκους, ή είναι ξεχωριστοί εικονικοί δίσκοι, όπως συμβαίνει με το Δικτυακό Σύστημα Αρχείων (Network File System), και τους οδηγούς CDROM.

5.6.1. Το Αρχείο fstab

Κατά τη διεργασία εκκίνησης, τα συστήματα αρχείων που αναφέρονται στο /etc/fstab προσαρτώνται αυτόματα (εκτός αν αναφέρονται με την επιλογή noauto ).

Το αρχείο /etc/fstab περιέχει μια σειρά από γραμμές με διάταξη όπως η ακόλουθη:

device       /mount-point fstype     options      dumpfreq     passno
device

Όνομα συσκευής (η οποία θα πρέπει να υπάρχει), όπως εξηγείται στην Device Names.

mount-point

Κατάλογος (θα πρέπει να υπάρχει) στον οποίο προσαρτάται το σύστημα αρχείων.

fstype

Ο τύπος του συστήματος αρχείων που θα δοθεί στην mount(8). Το προκαθορισμένο σύστημα αρχείων του FreeBSD είναι το ufs.

options

Το rw για συστήματα αρχείων ανάγνωσης- εγγραφής (read- write), ή ro για συστήματα αρχείων μόνο ανάγνωσης (read-only), συμπληρωμένο με όποια άλλη επιλογή μπορεί να χρειάζεστε. Μία συνήθης επιλογή είναι η noauto για συστήματα αρχείων που δεν προσαρτώνται αυτόματα κατά τις διεργασίες εκκίνησης του συστήματος. Άλλες επιλογές αναφέρονται στην σελίδα βοήθειας mount(8).

dumpfreq

Αυτό το πεδίο χρησιμοποιείται από το dump(8) για να ορίσει ποια συστήματα αρχείων χρειάζονται dumping. Αν το πεδίο απουσιάζει, τότε η προκαθορισμένη τιμή του είναι μηδέν.

passno

Αυτό ορίζει την σειρά με την οποία θα ελέγχονται τα συστήματα αρχείων. Συστήματα αρχείων που δεν επιθυμούμε να ελεγχθούν θα πρέπει να έχουν στο πεδίο passno τιμή μηδέν. Το root σύστημα αρχείων (το οποίο πρέπει να ελεγχθεί πριν από όλα τα άλλα) θα έχει στο πεδίο passno την τιμή ένα και όλα τα άλλα συστήματα αρχείων θα έχουν στο πεδίο passno τιμές μεγαλύτερες από ένα. Αν περισσότερα από ένα συστήματα αρχείων έχουν την ίδια τιμή passno τότε το fsck(8) θα επιχειρήσει να ελέγξει παράλληλα τα συστήματα αρχείων, αν αυτό είναι εφικτό.

Συμβουλευτείτε την σελίδα βοηθείας fstab(5) για περισσότερες πληροφορίες για την μορφή του αρχείου /etc/fstab και για τις επιλογές που μπορεί να περιέχει.

5.6.2. Η Εντολή mount

Η εντολή mount(8) είναι αυτό ακριβώς που χρειάζεστε για την προσάρτηση συστημάτων αρχείων.

Η βασική μορφή της είναι:

# mount device mountpoint

Υπάρχει πληθώρα επιλογών, όπως αναφέρεται στην σελίδα βοηθείας mount(8), αλλά οι πιο συνήθεις είναι:

Επιλογές εντολής mount
-a

Προσάρτηση όλων των συστημάτων αρχείων που αναφέρονται στο /etc/fstab, εκτός αυτών που φέρουν την επιλογή "noauto", εξαιρούνται μέσω της επιλογής -t, ή αυτών που ήδη έχουν προσαρτηθεί.

-d

Κάνει τα πάντα εκτός από την πραγματική προσάρτηση του συστήματος. Αυτή η επιλογή είναι χρήσιμη σε συνεργασία με το πρόθεμα -v για να προσδιοριστεί τι ακριβώς προσπαθεί να κάνει η mount(8) την συγκεκριμένη στιγμή.

-f

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

-r

Προσαρτά το σύστημα αρχείων σε κατάσταση μόνο-ανάγνωσης. Είναι ακριβώς το ίδιο με τη χρήση του προθέματος ro με την επιλογή -o.

-t fstype

Προσαρτά το υπάρχον σύστημα αρχείων, χρησιμοποιώντας τον τύπο συστήματος αρχείων που δίνεται, ή προσαρτά μόνο συστήματα αρχείων του συγκεκριμένου τύπου, εάν δοθεί μαζί με την επιλογή -a.

Το "ufs" είναι ο προεπιλεγμένος τύπος συστήματος αρχείων.

-u

Ανανεώνει τις επιλογές προσάρτησης στο σύστημα αρχείων.

-v

Συμπεριλαμβάνει αναλυτική αναφορά.

-w

Προσαρτά το σύστημα αρχείων για ανάγνωση-εγγραφή (read-write).

Η επιλογή -o δέχεται μία σειρά από επιλογές χωρισμένες με κόμμα, περιλαμβάνοντας τις ακόλουθες:

noexec

Δεν επιτρέπεται η λειτουργία εκτελέσιμων σε αυτό το σύστημα αρχείων. Αυτό είναι επίσης μια επιλογή ασφαλείας.

nosuid

Δεν λαμβάνονται υπ' όψιν setuid ή setgid flags στο σύστημα αρχείων.

5.6.3. Η Εντολή umount

Η εντολή umount(8) παίρνει, ως παράμετρο, ένα εκ των σημείων προσάρτησης, το όνομα μιας συσκευής, ή τις επιλογές -a ή -A.

Όλοι οι τύποι δέχονται την -f για να εξαναγκάσουν σε αποπροσάρτηση, και την -v για αναλυτική αναφορά. Σας προειδοποιούμε πως η επιλογή -f γενικά δεν είναι καλή ιδέα. Η εξ' αναγκασμού αποπροσάρτηση μπορεί να οδηγήσει σε κατάρρευση τον υπολογιστή ή να καταστρέψει δεδομένα στο σύστημα αρχείων.

Οι -a και -A χρησιμοποιούνται για να αποπροσαρτήσουν όλα τα προσαρτημένα συστήματα αρχείων, σύμφωνα και με τις επιλογές που δίνονται από το -t, αν υπάρχει. Το -A, ωστόσο, δεν θα επιχειρήσει να αποπροσαρτήσει το root σύστημα αρχείων.

5.7. Διεργασίες

To FreeBSD είναι ένα λειτουργικό σύστημα multi-tasking. Αυτό σημαίνει πως κάθε στιγμή μπορούν να τρέχουν παραπάνω από ένα προγράμματα. Κάθε πρόγραμμα που τρέχει οποιαδήποτε στιγμή ονομάζεται διεργασία (process). Κάθε εντολή που τρέχετε ξεκινάει τουλάχιστον μία νέα διεργασία, και υπάρχουν κάποιες διεργασίες του συστήματος που τρέχουν συνέχεια για να κρατούν το σύστημα σε λειτουργία.

Κάθε διεργασία χαρακτηρίζεται από ένα μοναδικό αριθμό που ονομάζεται ID διεργασίας ή PID, και όπως ακριβώς συμβαίνει με τα αρχεία, κάθε διεργασία έχει έναν ιδιοκτήτη και ένα γκρουπ. Οι πληροφορίες του ιδιοκτήτη και του γκρουπ χρειάζονται για να προσδιορίζεται ποια αρχεία και συσκευές μπορεί να ανοίξει η συγκεκριμένη διεργασία, χρησιμοποιώντας τις άδειες αρχείων που συζητήσαμε νωρίτερα. Οι περισσότερες διεργασίες έχουν επίσης μία γονική διεργασία. Η γονική διεργασία είναι εκείνη η διεργασία που τις ξεκίνησε. Για παράδειγμα, εάν πληκτρολογείτε εντολές στο κέλυφος, τότε το κέλυφος είναι μία διεργασία, και κάθε εντολή που τρέχετε είναι επίσης μία διεργασία. Επομένως κάθε διεργασία που τρέχετε με αυτόν τον τρόπο θα έχει γονική διεργασία το κέλυφος σας. Η μόνη εξαίρεση είναι μία διεργασία που ονομάζεται init(8). Η init είναι πάντα η πρώτη διεργασία, και επομένως το PID της είναι πάντα 1. Η init ξεκινά αυτόματα από τον πυρήνα κατά την εκκίνηση του FreeBSD.

Δύο ιδιαίτερα χρήσιμες εντολές για να παρατηρείτε τις διεργασίες στο σύστημα, είναι οι ps(1) και top(1). Η εντολή ps χρησιμοποιείται για την προβολή μιας στατικής λίστας των τρέχοντων διεργασιών, και μπορεί να εμφανίζει το PID τους, πόση μνήμη χρησιμοποιούν, την εντολή με την οποία ξεκίνησαν, και άλλες πληροφορίες. Η εντολή top εμφανίζει όλες τις τρέχουσες διεργασίες, και ανανεώνει την οθόνη σας ανά λίγα δευτερόλεπτα, επομένως μπορείτε να παρατηρείτε τι ακριβώς κάνει ο υπολογιστή σας τη δεδομένη στιγμή.

Η ps, από προεπιλογή, εμφανίζει μόνο τις εντολές που τρέχουν και ανήκουν σε εσάς. Για παράδειγμα:

% ps
  PID  TT  STAT      TIME COMMAND
  298  p0  Ss     0:01.10 tcsh
 7078  p0  S      2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393  p0  I      0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630  p0  S      2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730  p0  IW     0:00.00 (dns helper) (navigator-linux-)
72210  p0  R+     0:00.00 ps
  390  p1  Is     0:01.14 tcsh
 7059  p2  Is+    1:36.18 /usr/local/bin/mutt -y
 6688  p3  IWs    0:00.00 tcsh
10735  p4  IWs    0:00.00 tcsh
20256  p5  IWs    0:00.00 tcsh
  262  v0  IWs    0:00.00 -tcsh (tcsh)
  270  v0  IW+    0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
  280  v0  IW+    0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
  284  v0  IW     0:00.00 /bin/sh /home/nik/.xinitrc
  285  v0  S      0:38.45 /usr/X11R6/bin/sawfish

Όπως μπορείτε να δείτε σε αυτό το παράδειγμα, η έξοδος από την ps προβάλλεται σε στήλες. PID είναι το PID της διεργασίας όπως αναφέραμε νωρίτερα. Τα PID διανέμονται από 1, έως 99999, και όταν υπερβούν το 99999 ξεκινούν από την αρχή (ένα PID δεν μπορεί να αποδοθεί ξανά αν είναι ήδη σε χρήση). Η στήλη TT δείχνει το τερματικό (tty) του προγράμματος που εκτελείται, και μπορεί να αγνοηθεί αυτή τη στιγμή δίχως πρόβλημα. Η STAT υποδεικνύει την κατάσταση του προγράμματος, και πάλι μπορεί να αγνοηθεί. Η TIME είναι η χρονική διάρκεια που το πρόγραμμα απασχολεί την CPU, αυτό συνήθως δεν είναι ο χρόνος εκτέλεσης αφού τα περισσότερα προγράμματα καθυστερούν με άλλες εργασίες πριν απασχολήσουν την CPU. Η τελευταία στήλη, η COMMAND είναι η γραμμή εντολής που δόθηκε για να τρέξει το πρόγραμμα.

Η ps(1) υποστηρίζει διάφορες επιλογές για να αλλάξει την γκάμα των πληροφοριών που εμφανίζονται. Μία από τις πιο χρήσιμες επιλογές είναι η auxww. Η a εμφανίζει πληροφορίες για όλες τις τρέχουσες διεργασίες, όχι μόνο τις δικές σας. Η u εμφανίζει το όνομα χρήστη του ιδιοκτήτη της διεργασίας, όπως και τη χρήσης της μνήμης. Η x εμφανίζει πληροφορίες σχετικά με τις διεργασίες των δαιμόνων και η ww αναγκάζει την ps(1) να εμφανίσει ολόκληρη την εντολή γραμμής για κάθε διεργασία, αφού συνήθως εμφανίζεται κομμένη λόγω του μήκους της που δεν χωρά να εμφανιστεί στην οθόνη.

Η έξοδος της top(1) είναι παρόμοια. Ένα δείγμα εργασίας της μοιάζει σαν αυτή:

% top
last pid: 72257;  load averages:  0.13,  0.09,  0.03    up 0+13:38:33  22:39:10
47 processes:  1 running, 46 sleeping
CPU states: 12.6% user,  0.0% nice,  7.8% system,  0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse

  PID USERNAME PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
72257 nik       28   0  1960K  1044K RUN      0:00 14.86%  1.42% top
 7078 nik        2   0 15280K 10960K select   2:54  0.88%  0.88% xemacs-21.1.14
  281 nik        2   0 18636K  7112K select   5:36  0.73%  0.73% XF86_SVGA
  296 nik        2   0  3240K  1644K select   0:12  0.05%  0.05% xterm
48630 nik        2   0 29816K  9148K select   3:18  0.00%  0.00% navigator-linu
  175 root       2   0   924K   252K select   1:41  0.00%  0.00% syslogd
 7059 nik        2   0  7260K  4644K poll     1:38  0.00%  0.00% mutt
...

Η έξοδος είναι χωρισμένη σε δύο τομείς. Η κεφαλίδα (οι πέντε πρώτες γραμμές) εμφανίζουν το PID της τελευταίας διεργασίας που έτρεξε, την μέση τιμή φορτίου (είναι μια μέτρηση που δείχνει πόσο απασχολημένο είναι το σύστημα), ο χρόνος λειτουργίας (uptime) του συστήματος (από την τελευταία επανεκκίνηση) και την τρέχουσα ώρα. Τα άλλα στοιχεία στην κεφαλίδα σχετίζονται με το νούμερο των διεργασιών που τρέχουν (47 σε αυτή τη περίπτωση), πόση μνήμη και χώρο swap κατέχουν και πόσο χρόνο ξοδεύει το σύστημα σε διάφορες καταστάσεις λειτουργίας της CPU.

Πιο κάτω ακολουθεί μια σειρά από στήλες, που περιέχουν παρόμοιες πληροφορίες με την έξοδο της ps. Όπως και νωρίτερα μπορείτε να δείτε το PID, το όνομα χρήστη, το ποσοστό χρήσης της CPU, και την εντολή με την οποία ξεκίνησε η διεργασία. Η top(1) από προεπιλογή, εμφανίζει επίσης το ποσοστό μνήμης που χρησιμοποιείται από τη διεργασία. Αυτή χωρίζεται σε δύο στήλες. Η μία είναι για το συνολικό μέγεθος μνήμης που χρειάστηκε η εφαρμογή, ενώ η άλλη για το μέγεθος της μνήμης που καταναλώνει την παρούσα στιγμή. Σε αυτό το παράδειγμα μπορείτε να δείτε ότι ο getenv(3) χρειάστηκε σχεδόν 30 MB RAM, αλλά την παρούσα στιγμή χρησιμοποιεί μόνο 9 MB.

Η top(1) αυτόματα ανανεώνει το περιεχόμενο της κάθε δύο δευτερόλεπτα. Αυτό μπορεί να ρυθμιστεί με την επιλογή s.

5.8. Δαίμονες, Σήματα, και Τερματισμός Διεργασιών

Όταν χρησιμοποιείτε ένα κειμενογράφο, είναι εύκολο να τον ελέγχετε, να φορτώνετε αρχεία, και οτιδήποτε άλλο. Αυτό συμβαίνει διότι ο κειμενογράφος παρέχει αυτές τις δυνατότητες, και επίσης επειδή είναι προσαρτημένος σε ένα τερματικό. Μερικά προγράμματα δεν είναι σχεδιασμένα να δουλεύουν με συνεχείς χειρισμούς από τον χρήστη, και επομένως αποσυνδέονται από το τερματικό με την πρώτη ευκαιρία. Για παράδειγμα, ένας εξυπηρετητής web ξοδεύει όλο του το χρόνο στο να απαντά σε αιτήματα web, επομένως δεν χρειάζεται καμιά εισαγωγή δεδομένων από τον χρήστη. Άλλο παραπλήσιο παράδειγμα εφαρμογής, είναι τα προγράμματα μεταφοράς μηνυμάτων ηλεκτρονικής αλληλογραφίας από μια τοποθεσία σε μιαν άλλη.

Ονομάζουμε αυτά τα προγράμματα δαίμονες (daemons). Οι δαίμονες ήταν χαρακτήρες της Ελληνικής μυθολογίας (ούτε καλοί - ούτε κακοί), ήταν απλά μικρά συνοδευτικά πνεύματα που έκαναν χρήσιμα πράγματα για την ανθρωπότητα, όπως ακριβώς και οι διακομιστές web και εξυπηρετητές ηλεκτρονικής αλληλογραφίας σήμερα κάνουν χρήσιμα πράγματα. Αυτός είναι και ο λόγος για τον οποίο η μασκότ του BSD είναι εδώ και πολύ καιρό ο χαρούμενος δαίμονας με πάνινα σπορ παπούτσια και την τρίαινα.

Η ονομασία των προγραμμάτων που τρέχουν σαν δαίμονες συμβατικά τελειώνει με "d". Το BIND είναι το Berkeley Internet Name Domain, αλλά το πραγματικό πρόγραμμα που τρέχει ονομάζεται named, το πρόγραμμα του εξυπηρετητή web Apache λέγεται httpd, ο δαίμονας ελέγχου των εκτυπωτών γραμμής είναι ο lpd και ούτω καθεξής. Αυτή είναι απλά μια σύμβαση, όχι απόλυτος κανόνας, για παράδειγμα, ο κύριος δαίμονας ηλεκτρονικής αλληλογραφίας για την εφαρμογή Sendmail ονομάζεται sendmail, και όχι maild, όπως θα ήταν αναμενόμενο.

Μερικές φορές θα χρειαστεί να επικοινωνείτε με τη διεργασία ενός δαίμονα. Ένας τρόπος για να γίνει αυτό είναι στέλνοντας (όπως και σε κάθε εκτελέσιμη διεργασία) σήματα (signals). Υπάρχουν διάφορα σήματα που μπορείτε να στείλετε - μερικά από αυτά έχουν μια συγκεκριμένη σημασία, ενώ άλλα ερμηνεύονται μέσα από την εφαρμογή, και επομένως για να ξέρουμε πως ερμηνεύονται τα σήματα θα πρέπει να διαβάσουμε την τεκμηρίωση της εφαρμογής. Μπορείτε να στείλετε σήμα σε μια διεργασία μόνο αν σας ανήκει. Αν στείλετε σήμα σε μια διεργασία που ανήκει σε κάποιον άλλο με kill(1) ή kill(2), δεν θα σας επιτραπεί. Η μοναδική εξαίρεση σε αυτό, είναι ο χρήστης root, που μπορεί να στέλνει σήματα στις διεργασίες οποιουδήποτε άλλου χρήστη του συστήματος.

Το FreeBSD στέλνει επίσης σήματα σε εφαρμογές σε μερικές περιπτώσεις. Αν μία εφαρμογή είναι γραμμένη άσχημα, και προσπαθεί να προσπελάσει μνήμη που δεν της ανήκει, το FreeBSD στέλνει στη διεργασία το σήμα Segmentation Violation (SIGSEGV). Αν μια εφαρμογή χρησιμοποίησε το σύστημα ειδοποίησης alarm(3) για να ειδοποιηθεί μετά την πάροδο μιας χρονικής περιόδου τότε το FreeBSD θα στείλει το Alarm signal (SIGALRM), και ούτω καθ’εξής.

Δύο σήματα μπορούν να χρησιμοποιηθούν για να σταματήσουν μία διαδικασία, το SIGTERM και το SIGKILL. Το SIGTERM είναι ο σωστός τρόπος για να σταματήσουμε μια διαδικασία. Η διεργασία αντιλαμβάνεται το σήμα, εκτελεί το σταμάτημα κλείνοντας όλα τα αρχεία αναφοράς (log files), που πιθανώς να είναι ανοιχτά, και γενικώς τελειώνει οτιδήποτε κάνει την συγκεκριμένη χρονική στιγμή πριν σταματήσει. Σε μερικές περιπτώσεις η διεργασία μπορεί να αγνοήσει το SIGTERM εάν βρίσκεται στα μισά κάποιας εργασίας που δεν μπορεί να διακοπεί.

Το σήμα SIGKILL δεν μπορεί να αγνοηθεί από μία διεργασία. Είναι σαν να λέει στη διεργασία, "Δεν με ενδιαφέρει τι κάνεις, σταμάτα τώρα αμέσως". Αν στείλετε το σήμα SIGKILL σε μια διαδικασία τότε το FreeBSD θα σταματήσει την διαδικασία άμεσα .

Άλλα σήματα που πιθανώς να θέλετε να χρησιμοποιήσετε είναι τα SIGHUP, SIGUSR1, και SIGUSR2. Αυτά είναι σήματα γενικής χρήσης, και όταν αποστέλλονται κάνουν διαφορετικά πράγματα ανάλογα με την εφαρμογή.

Ας υποθέσουμε πως αλλάξατε το αρχείο ρύθμισης του εξυπηρετητή διαδικτύου σας, και πως θα θέλατε να πείτε στον εξυπηρετητή να ξαναδιαβάσει τις ρυθμίσεις. Θα μπορούσατε να σταματήσετε και να επανεκκινήσετε το httpd, αλλά αυτό θα οδηγούσε σε μια χρονική περίοδο όπου ο εξυπηρετητής θα έμενε εκτός λειτουργίας, κάτι το οποίο μπορεί να είναι ανεπιθύμητο. Οι περισσότεροι δαίμονες είναι σχεδιασμένοι να απαντούν σε σήματα SIGHUP για την εκ νέου ανάγνωση του αρχείου ρύθμισης τους. Επομένως, αντί να σταματήσουμε και να επανεκκινήσουμε το httpd θα μπορούσαμε να του στείλουμε το σήμα SIGHUP. Επειδή δεν υπάρχει συγκεκριμένος τρόπος στην απάντηση αυτών των σημάτων, και διαφορετικοί δαίμονες έχουν διαφορετική συμπεριφορά, πρέπει να διαβάσετε πρώτα την τεκμηρίωση για τον συγκεκριμένο δαίμονα.

Τα σήματα στέλνονται χρησιμοποιώντας την εντολή kill(1), όπως υποδεικνύει το ακόλουθο παράδειγμα.

Procedure: Στέλνοντας Σήμα σε μία Διεργασία

Αυτό το παράδειγμα δείχνει πως να στείλετε σήμα στην inetd(8). Το αρχείο ρύθμισης της inetd είναι το /etc/inetd.conf, και η inetd θα ξανα-διαβάσει αυτό το αρχείο ρύθμισης όταν θα σταλεί το σήμα SIGHUP.

  1. Βρείτε το PID της διεργασίας, της οποίας επιθυμείτε να στείλετε το σήμα. Ενεργήστε χρησιμοποιώντας τις εντολές ps(1) και grep(1). Η εντολή grep(1) χρησιμοποιείται για να ψάξει στην έξοδο μιας εντολής, για τους αλφαριθμητικούς χαρακτήρες που έχετε ορίσει. Η εντολή εκτελείται από έναν απλό χρήστη, ενώ η inetd(8) εκτελείται από τον root, επομένως θα πρέπει να προσθέσετε την επιλογή ax στην ps(1).

    % ps -ax | grep inetd
      198  ??  IWs    0:00.00 inetd -wW

    Επομένως το PID της inetd(8) είναι το 198. Σε μερικές περιπτώσεις μπορεί να εμφανίζεται στην έξοδο η εντολή grep inetd. Αυτό οφείλεται στον τρόπο με τον οποίο η ps(1) ψάχνει την λίστα των ενεργών διεργασιών.

  2. Χρησιμοποιήστε την kill(1) για να στείλετε το σήμα. Επειδή η inetd(8) τρέχει από τον root θα πρέπει πρώτα να χρησιμοποιήσετε su(1) για να γίνετε πρώτα root.

    % su
    Password:
    # /bin/kill -s HUP 198

    Όπως και με τις περισσότερες εντολές στο UNIX®, η kill(1) δεν θα τυπώσει τίποτε στην έξοδο αν η εντολή είχε επιτυχία. Εάν στείλετε ένα σήμα σε μια διεργασία που δεν σας ανήκει θα δείτε kill: PID: Operation not permitted. Αν πληκτρολογήσετε λάθος το PID τότε ή θα στείλετε το σήμα σε λάθος διεργασία,κάτι που μπορεί να είναι άσχημο, ή, αν είστε τυχερός, θα έχετε στείλει το σήμα σε ένα PID που δεν χρησιμοποιείται τη συγκεκριμένη στιγμή, και θα δείτε kill: PID: No such process.

Γιατί να χρησιμοποιήσετε την εντολή /bin/kill;

Πολλά κελύφη παρέχουν την εντολή kill ως ενσωματωμένη εντολή. Αυτό σημαίνει πως το κέλυφος θα στείλει το σήμα άμεσα, αντί να τρέξει το /bin/kill. Αυτό μπορεί να είναι πολύ χρήσιμο, αλλά διαφορετικά κελύφη έχουν διαφορετική σύνταξη για τον καθορισμό το όνομα του σήματος που πρέπει να αποσταλεί. Αντί λοιπόν να πρέπει να μάθουμε όλες τις περιπτώσεις ,είναι ευκολότερο απλά να χρησιμοποιούμε την εντολή /bin/kill …​ άμεσα.

Η αποστολή άλλων σημάτων μοιάζει πάρα πολύ, απλά αντικαταστήστε το TERM ή το KILL στη γραμμή εντολών με κάποιο άλλο.

Η φόνευση τυχαίων διεργασιών στο σύστημα μπορεί να είναι κακή ιδέα. Ιδιαίτερα, η init(8), με PID 1, είναι πολύ ειδική. Η εκτέλεση της εντολής /bin/kill -s KILL 1 είναι ένας γρήγορος τρόπος να σβήσετε το σύστημα σας. Πάντα να ελέγχετε δύο φορές τις παραμέτρους που χρησιμοποιείτε με την kill(1) πριν πιέσετε Return.

5.9. Κελύφη

Στο FreeBSD ένα μεγάλο μέρος της καθημερινής εργασίας γίνεται σε ένα περιβάλλον γραμμής εντολών ονόματι κέλυφος (shell). Η κύρια δουλειά του κελύφους είναι να παίρνει εντολές από το κανάλι εισόδου και να τις εκτελεί. Μερικά κελύφη έχουν ενσωματωμένες λειτουργίες ώστε να βοηθούν στις καθημερινές προγραμματισμένες εργασίες όπως διαχείριση αρχείων, file globbing, επεξεργασία γραμμής εντολών, μακροεντολές, και μεταβλητές περιβάλλοντος. Το FreeBSD διατίθεται με διάφορα κελύφη, όπως το sh, το Bourne Shell και το tcsh, το βελτιωμένο C-shell. Διάφορα άλλα κελύφη είναι διαθέσιμα από την Συλλογή των Ports του FreeBSD, όπως τα zsh και bash.

Ποιο κέλυφος να χρησιμοποιήσετε; Είναι πραγματικά θέμα γούστου. Εάν είστε προγραμματιστής σε γλώσσα C θα αισθανθείτε περισσότερο οικείος με τα κελύφη τύπου C, όπως το tcsh. Εάν έρχεστε από το Linux ή είστε νέος σε περιβάλλον γραμμής εντολών UNIX® μπορείτε να δοκιμάσετε το bash. Η ουσία είναι πως κάθε κέλυφος έχει μοναδικές ιδιότητες που μπορεί να συνεργαστούν με το περιβάλλον εργασίας της προτίμησης σας, και επομένως είναι επιλογή σας ποιο κέλυφος να χρησιμοποιήσετε.

Μια κοινή ιδιότητα όλων των κελυφών είναι η αυτόματη συμπλήρωση ονομάτων αρχείων. Αφού έχετε πληκτρολογήσει τα πρώτα γράμματα μιας εντολής ή ενός ονόματος αρχείου αν πιέσετε το πλήκτρο Tab στο πληκτρολόγιο, τότε το κέλυφος αυτόματα θα ολοκληρώσει το υπόλοιπο της εντολής ή του ονόματος αρχείου. Ας δώσουμε ένα παράδειγμα. Ας υποθέσουμε πως έχετε δύο αρχεία foobar και foo.bar. Αν θέλετε να σβήσετε το foo.bar θα πρέπει να πληκτρολογήσετε rm fo[Tab].[Tab].

Το κέλυφος θα τυπώσει αυτόματα rm foo[BEEP].bar.

Το [BEEP] είναι το κουδούνι της κονσόλας, το οποίο μας πληροφορεί πως δεν ήταν δυνατόν να ολοκληρώσει το όνομα του αρχείου διότι υπάρχουν περισσότερα από ένα ονόματα αρχείων που ταιριάζουν. Όντως το foobar και το foo.bar ξεκινούν με fo, και το κέλυφος κατάφερε να συμπληρώσει ως το foo. Αν πληκτρολογήσετε επιπλέον ., και μετά πάλι Tab, το κέλυφος θα καταφέρει να συμπληρώσει το υπόλοιπο του ονόματος αρχείου για σας.

Άλλο ιδιαίτερο χαρακτηριστικό του κελύφους είναι η χρήση των μεταβλητών περιβάλλοντος. Οι μεταβλητές περιβάλλοντος είναι ένα ζεύγος μεταβλητών/κλειδιών αποθηκευμένα στον περιβάλλοντα χώρο του κελύφους Αυτός ο χώρος μπορεί να διαβαστεί από οποιοδήποτε πρόγραμμα που καλείται από το κέλυφος, και έτσι περιέχει πλήθος ρυθμίσεων προγραμμάτων. Ακολουθεί μία λίστα με συνήθεις μεταβλητές περιβάλλοντος και τη σημασία τους:

ΜεταβλητήΠεριγραφή

USER

Όνομα του τρέχοντα χρήστη.

PATH

Λίστα καταλόγων για την αναζήτηση εκτελέσιμων χωρισμένη με άνω-κάτω τελείες.

DISPLAY

Όνομα δικτύου της οθόνης X11 που είναι διαθέσιμη για σύνδεση, αν υπάρχει.

SHELL

Το ενεργό κέλυφος.

TERM

Το όνομα του τύπου του τερματικού χρήστη. Ορίζει τις δυνατότητες του τερματικού.

TERMCAP

Εγγραφή στη βάση δεδομένων κωδικών escape για διάφορες λειτουργίες τερματικών.

OSTYPE

Ο τύπος του λειτουργικού συστήματος π.χ., FreeBSD.

MACHTYPE

Η αρχιτεκτονική CPU στην οποία δουλεύει το σύστημα.

EDITOR

Ο προεπιλεγμένος κειμενογράφος του χρήστη.

PAGER

Το προεπιλεγμένο πρόγραμμα σελιδοποίησης του χρήστη.

MANPATH

Λίστα καταλόγων για την αναζήτηση των σελίδων βοηθείας (man pages) χωρισμένη με άνω-κάτω τελείες.

Ο ορισμός μιας μεταβλητής περιβάλλοντος διαφέρει κάπως από κέλυφος σε κέλυφος. Για παράδειγμα στα κελύφη τύπου-C, όπως τα tcsh και csh, θα πρέπει να χρησιμοποιήσετε την setenv για να ορίσετε μεταβλητές περιβάλλοντος. Σε κελύφη Bourne όπως τα sh και bash, θα πρέπει να χρησιμοποιείτε την export για να θέσετε τις τρέχουσες μεταβλητές περιβάλλοντος. Για παράδειγμα, για να ορίσετε ή να μετατρέψετε την μεταβλητή περιβάλλοντος EDITOR, σε csh ή tcsh θα πρέπει να δώσετε μια εντολή που να θέτει τη μεταβλητή EDITOR στο /usr/local/bin/emacs:

% setenv EDITOR /usr/local/bin/emacs

Για κελύφη Bourne:

% export EDITOR="/usr/local/bin/emacs"

Μπορείτε επίσης στα περισσότερα κελύφη να αναπτύσσετε τις μεταβλητές περιβάλλοντος τοποθετώντας μπροστά τους τον χαρακτήρα $. Για παράδειγμα, η echo $TERM θα τυπώσει την τιμή που έχουμε θέσει στην μεταβλητή, διότι το κέλυφος αναπτύσσει την $TERM και περνά την τιμή της στην echo.

Τα κελύφη χρησιμοποιούν μερικούς ειδικούς χαρακτήρες, που ονομάζονται meta-χαρακτήρες για εμφανίσεις ιδιαίτερων δεδομένων. Ο πιο κοινός εξ' αυτών είναι ο χαρακτήρας , ο οποίος αντιπροσωπεύει οποιοδήποτε αλφαριθμητικό χαρακτήρα σε ένα όνομα αρχείου. Αυτοί οι ειδικοί meta-χαρακτήρες μπορούν να χρησιμοποιηθούν για να κάνουν filename globbing. Για παράδειγμα, αν πληκτρολογήσετε echo * είναι σχεδόν το ίδιο με το να δώσετε ls διότι το κέλυφος παίρνει όλα τα αρχεία που ταιριάζουν με και τα προωθεί στην γραμμή εντολών για την echo.

Για να εμποδίσετε το κέλυφος να επεξεργαστεί αυτούς τους ειδικούς χαρακτήρες, μπορείτε να χρησιμοποιήσετε το σύμβολο διαφυγής (escape) τοποθετώντας μπροστά τους μια δεξιόστροφη κάθετο (\). Η echo $TERM τυπώνει τον τύπο του τερματικού σας, ενώ η echo \$TERM τυπώνει απλά $TERM.

5.9.1. Αλλάζοντας το Κέλυφος σας

Ο ευκολότερος τρόπος για να αλλάξετε το κέλυφος σας είναι να χρησιμοποιήσετε την εντολή chsh. Τρέχοντας την chsh θα οδηγηθείτε στον κειμενογράφο που έχετε θέσει στην μεταβλητή περιβάλλοντος EDITOR, ενώ αν δεν έχετε θέσει, θα οδηγηθείτε στο vi. Αλλάξτε κατάλληλα τη γραμμή "Shell:"

Μπορείτε επίσης να δώσετε στην chsh την επιλογή -s, αυτή θα θέσει το κέλυφος για σας, δίχως να χρειαστεί να χρησιμοποιήσετε τον κειμενογράφο. Για παράδειγμα, αν θέλετε να αλλάξετε το κέλυφος σας σε bash, η ακόλουθη εντολή είναι ακριβώς αυτό που χρειάζεστε:

% chsh -s /usr/local/bin/bash

Το κέλυφος στο οποίο επιθυμείτε να μεταβείτε πρέπει να είναι καταχωρημένο στο αρχείο /etc/shells. Αν έχετε εγκαταστήσει ένα κέλυφος από τη συλλογή των ports, τότε αυτό θα πρέπει να έχει ήδη γίνει. Αν εγκαταστήσατε το κέλυφος μόνοι σας, τότε θα πρέπει να εκτελέσετε τη διαδικασία που ακολουθεί.

Αν για παράδειγμα, εγκαταστήσατε το bash μόνοι σας και το τοποθετήσατε στον /usr/local/bin, τότε θα πρέπει να δώσετε:

# echo "/usr/local/bin/bash" >> /etc/shells

Και μετά ξανατρέξτε την chsh.

5.10. Κειμενογράφοι

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

Ο ευκολότερος και απλούστερος κειμενογράφος για να μάθετε ονομάζεται ee, που σημαίνει easy editor (εύκολος κειμενογράφος). Για να ξεκινήσετε τον ee, πρέπει να πληκτρολογήσετε στην γραμμή εντολών ee filename όπου filename είναι το όνομα του αρχείου που θέλετε να επεξεργαστείτε. Για παράδειγμα, για να επεξεργαστείτε το /etc/rc.conf, πληκτρολογείτε ee /etc/rc.conf. Μόλις εισέλθετε στο ee, όλες οι εντολές για να χειριστείτε τις λειτουργίες του κειμενογράφου αναφέρονται στο πάνω μέρος της οθόνης. Ο χαρακτήρας καπέλο ^ σημαίνει το πλήκτρο Ctrl, επομένως ^e σημαίνει πως πρέπει να πληκτρολογήσετε τον συνδυασμό πλήκτρων Ctrl+e. Για να βγείτε από το ee, πιέζετε το πλήκτρο Esc, και επιλέγετε leave editor. Ο κειμενογράφος θα σας προτρέψει να σώσετε τυχόν αλλαγές, αν έχετε επεξεργαστεί το αρχείο.

Το FreeBSD παρέχεται επίσης με πιο εξελιγμένους κειμενογράφους όπως το ενσωματωμένο στο βασικό σύστημα vi. Το Emacs και το vim, είναι μέρος της Συλλογής των Ports του FreeBSD (editors/emacs και editors/vim). Αυτοί οι κειμενογράφοι προσφέρουν πολλές περισσότερες λειτουργίες και δυνατότητες, με κόστος αυξημένη πολυπλοκότητα και δυσκολία εκμάθησης. Ωστόσο αν σχεδιάζετε να επεξεργαστείτε αρκετά κείμενα, η εκμάθηση ενός ισχυρού κειμενογράφου όπως το vim ή το Emacs θα σας γλυτώσει πολύ περισσότερο χρόνο επεξεργασίας στην πορεία.

Πολλές εφαρμογές που χρειάζεται να αλλάξουν κάποιο αρχείο ή απαιτούν από το χρήστη να πληκτρολογήσει κάποιο κείμενο, θα ανοίξουν αυτόματα κάποιο κειμενογράφο. Για να αλλάξετε τον προεπιλεγμένο κειμενογράφο, θα πρέπει να θέσετε κατάλληλη τιμή στην μεταβλητή περιβάλλοντος EDITOR. Δείτε την ενότητα Κελύφη για περισσότερες λεπτομέρειες.

5.11. Συσκευές και Αρχεία συσκευών

Συσκευή είναι ένας όρος που αναφέρεται σε σχέση με λειτουργίες hardware ενός συστήματος, περιλαμβάνοντας δίσκους, εκτυπωτές, κάρτες γραφικών και πληκτρολόγια. Κατά την εκκίνηση του FreeBSD οι περισσότερες πληροφορίες που αναγράφονται στην οθόνη είναι συσκευές που αναγνωρίζονται από το σύστημα. Μπορείτε να ξαναδείτε τα μηνύματα εκκίνησης, διαβάζοντας το /var/run/dmesg.boot.

Για παράδειγμα, acd0 είναι ο πρώτος οδηγός IDE CDROM, ενώ το kbd0 αντιπροσωπεύει το πληκτρολόγιο.

Στις περισσότερες από αυτές τις συσκευές σε ένα λειτουργικό σύστημα UNIX® η πρόσβαση πρέπει να γίνεται διαμέσου ειδικών αρχείων που ονομάζονται αρχεία συσκευών, και είναι τοποθετημένα στον κατάλογο /dev.

5.11.1. Δημιουργώντας Αρχεία Συσκευών

Όταν προσθέτετε μια νέα συσκευή στο σύστημα σας, ή μεταγλωττίζετε πηγαίο κώδικα για υποστήριξη νέων οδηγών, πρέπει να δημιουργούνται νέα αρχεία συσκευών.

5.11.1.1. DEVFS (DEVice File System)

Το σύστημα αρχείων συσκευών ή, DEVFS, παρέχει πρόσβαση στο χώρο ονομάτων συσκευών του πυρήνα (device namespace) στο global σύστημα αρχείων του συστήματος. Αντί να δημιουργείτε και να μετατρέπετε αρχεία συσκευών, το DEVFS συντηρεί για σας αυτό το ιδιαίτερο σύστημα αρχείων.

Δείτε την σελίδα βοηθείας devfs(5) για περισσότερες πληροφορίες.

5.12. Τύποι Εκτελέσιμων

Για να καταλάβετε γιατί το FreeBSD χρησιμοποιεί τον τύπο elf(5) θα πρέπει πρώτα να γνωρίζετε μερικά πράγματα για τους τρεις "κυρίαρχους" τύπους εκτελέσιμων για το UNIX®

  • a.out(5)

    Ο παλαιότερος και πιο "κλασσικός" τύπος αντικειμένων του UNIX®. Χρησιμοποιεί μια μικρή και συμπαγή κεφαλίδα με ένα μαγικό νούμερο στην αρχή που συχνά χρησιμοποιείται για να χαρακτηρίζει τον τύπο (δείτε για περισσότερες πληροφορίες την a.out(5)). Περιέχει τρία φορτωμένα τμήματα: .text, .data και .bss και επιπλέον ένα πίνακα συμβόλων και ένα πίνακα αλφαριθμητικών χαρακτήρων.

  • COFF

    Ο τύπος αντικειμένου SVR3. Η κεφαλίδα τώρα αποτελείται από ένα πίνακα τομέων, ώστε να μπορούμε να έχουμε κάτι παραπάνω από απλά .text, .data και .bss.

  • elf(5)

    Ο διάδοχος του COFF, περιλαμβάνει πολλαπλά τμήματα και δέχεται τιμές 32 ή 64 bit. Το βασικό μειονέκτημα: Ο ELF σχεδιάστηκε με την προϋπόθεση πως θα υπήρχε μόνο ένα ABI για κάθε αρχιτεκτονική συστήματος. Αυτή η υπόθεση είναι όμως εσφαλμένη τώρα, αφού ακόμη και στον εμπορικό κόσμο του SYSV (όπου υπάρχουν τουλάχιστον τρία ABI: SRV4, Solaris, SCO) δεν ισχύει.

    Το FreeBSD προσπαθεί να ξεπεράσει αυτό το πρόβλημα παρέχοντας ένα βοηθητικό πρόγραμμα με το οποίο μπορούμε να ενσωματώσουμε (branding) σε ένα εκτελέσιμο ELF τις πληροφορίες για το ABI που είναι συμβατό με αυτό. Δείτε την σελίδα manual του brandelf(1) για περισσότερες πληροφορίες.

Το FreeBSD προέρχεται από τον "κλασσικό" χώρο και μέχρι την αρχή της σειράς 3.X, χρησιμοποιούσε τον τύπο a.out(5), μια τεχνολογία δοκιμασμένη και αποδεδειγμένη σε πολλές γενιές εκδόσεων του BSD. Αν και η μεταγλώττιση και εκτέλεση εγγενών εκτελέσιμων (και πυρήνων) τύπου ELF ήταν δυνατή στα FreeBSD συστήματα ήδη από πολύ καιρό πριν, το FreeBSD αρχικά αντιστάθηκε στην "ώθηση" για καθιέρωση του ELF ως προκαθορισμένου τύπου. Γιατί; Όταν ο κόσμος του Λίνουξ έκανε την οδυνηρή μετάβαση προς το ELF, δεν ήταν τόσο για να ξεφύγει από τον τύπο εκτελέσιμων a.out όσο για να αντιμετωπίσει το δύσκαμπτο δικό τους μηχανισμό κοινόχρηστων βιβλιοθηκών, ο οποίος βασίζονταν σε jump-tables και προκαλούσε μεγάλη δυσχέρεια στην κατασκευή τους, τόσο στους προγραμματιστές όσο και στους μεταπωλητές. Από τη στιγμή που τα διαθέσιμα εργαλεία του ELF προσέφεραν λύση στο πρόβλημα των κοινών βιβλιοθηκών και έγινε γενικώς αποδεκτό πως ήταν "ο δρόμος προς τα εμπρός", έγινε αποδεκτό το αναγκαίο κόστος της μεταφοράς και επιτεύχθηκε η μετακίνηση. Ο μηχανισμός κοινόχρηστων βιβλιοθηκών του FreeBSD βασίζεται σε μεγάλο βαθμό στον αντίστοιχο μηχανισμό του SunOS™ της Sun και είναι πολύ εύκολος στη χρήση.

Τότε, γιατί υπάρχουν τόσοι διαφορετικοί τύποι;

Πίσω στο σκοτεινό παρελθόν, υπήρχε απλό hardware. Αυτό το απλό hardware υποστήριζε ένα απλό, μικρό σύστημα. Το a.out ήταν απόλυτα κατάλληλο για την αναπαράσταση εκτελέσιμων σε αυτό το απλό σύστημα (ένα PDP-11). Όταν ο κόσμος άρχισε να μεταφέρει το UNIX® από αυτό το απλό σύστημα, διατηρήθηκε ο τύπος a.out γιατί ήταν ικανοποιητικός για τα πρώτα ports του UNIX® σε αρχιτεκτονικές όπως η Motorola 68k, VAXen, κτλ.

Μετέπειτα κάποιος λαμπρός μηχανικός hardware αποφάσισε πως αφού μπορούσε να εξαναγκάζει το λογισμικό να κάνει τόσα πρόχειρα κόλπα, θα μπορούσε επίσης να παραλείψει μερικές πύλες από το σχεδιασμό ώστε να επιτρέψει στον πυρήνα της CPU να τρέχει γρηγορότερα. Αν και διασκευάσθηκε ώστε να δουλεύει με αυτό το νέο είδος hardware (γνωστό σήμερα ως RISC), ο τύπος a.out ήταν τελικά ακατάλληλος για αυτό, και έτσι σχεδιάστηκαν πολλοί νέοι τύποι για να επιτευχθεί καλύτερη απόδοση από το hardware από ότι ήταν δυνατόν με τον απλό και περιοριστικό τύπο a.out. Εφευρέθηκαν διάφοροι τύποι όπως οι COFF, ECOFF, και μερικοί άλλοι λιγότερο γνωστοί, και ερευνήθηκαν οι περιορισμοί τους ώσπου τα πράγματα σταθεροποιήθηκαν στο ELF.

Επιπλέον, το μέγεθος των προγραμμάτων γινόταν όλο και μεγαλύτερο και οι δίσκοι (και η φυσική μνήμη) ήταν ακόμη σχετικά μικροί και κάπως έτσι γεννήθηκε η ιδέα της κοινής βιβλιοθήκης. Το σύστημα VM έγινε επίσης περισσότερο περίπλοκο. Κάθε μία από τις βελτιώσεις γινόταν με βάση τον τύπο a.out, που όμως γινόταν όλο και πιο δύσχρηστος με κάθε νέα προσθήκη. Επιπρόσθετα, ο κόσμος ήθελε να φορτώνει τμήματα δυναμικά ενώ το σύστημα ήταν σε φάση εκτέλεσης, ή να εξαλείφει μέρη προγραμμάτων αφού είχε εκτελεστεί ο κώδικας αρχικοποίησης (init) ώστε να εξοικονομηθεί φυσική μνήμη και χώρος swap. Οι γλώσσες προγραμματισμού γινόντουσαν ακόμα πιο περίπλοκες και ο κόσμος ήθελε αυτόματη φόρτωση και εκτέλεση κώδικα πριν την κλήση της main. Έγιναν πρόχειρες διορθώσεις (hacks) στον τύπο a.out ώστε να συμβαδίζει με όλες αυτές τις αλλαγές, και πράγματι, για μια περίοδο έδειχνε να λειτουργεί. Με τον καιρό όμως, φάνηκε ότι ο τύπος a.out δεν θα μπορούσε να αντεπεξέλθει σε όλα αυτά τα προβλήματα, αφού θα έπρεπε να αναπτύσσεται συνεχώς και με περίπλοκο τρόπο. Αν και το ELF έλυνε πολλά από αυτά τα προβλήματα, η μετάβαση σε αυτό ενός συστήματος που βασικά λειτουργούσε, θα οδηγούσε σε οδυνηρές καταστάσεις. Έτσι ο τύπος ELF έπρεπε να περιμένει μέχρι τη στιγμή όπου η παραμονή στο a.out θα δημιουργούσε περισσότερα προβλήματα από ότι η μετάβαση στο ELF.

Ωστόσο, όσο ο καιρός περνούσε, και τα εργαλεία μεταγλώττισης από τα οποία προέρχονται τα αντίστοιχα εργαλεία του FreeBSD (ειδικότερα ο assembler και ο loader), αναπτύχθηκαν παράλληλα σε δύο δέντρα. Το δέντρο του FreeBSD πρόσθεσε κοινές βιβλιοθήκες και διόρθωσε κάποια σφάλματα. Η ομάδα του GNU που είχε αρχικά γράψει αυτά τα προγράμματα, τα έγραψε ξανά και πρόσθεσε ευκολότερη υποστήριξη για κατασκευή cross compilers, την ενσωμάτωση διαφορετικών τύπων κατά βούληση, κλπ. Αν και πολλοί ζητούσαν να κατασκευαστούν cross compilers για FreeBSD, ήταν άτυχοι, αφού ο παλιός πηγαίος κώδικας του FreeBSD για τα as και ld τα έκανε ακατάλληλα. Η νέα αλυσίδα εργαλείων του GNU (binutils) υποστηρίζει cross compiling, ELF, κοινές βιβλιοθήκες, προεκτάσεις C++, κτλ. Επιπλέον, πολλοί τρίτοι κατασκευαστές προσφέρουν εκτελέσιμα ELF, και είναι πολύ καλό να μπορούν να εκτελεστούν στο FreeBSD.

Ο ELF είναι πιο εκφραστικός από τον a.out και περισσότερο επεκτάσιμος στο βασικό σύστημα. Τα εργαλεία ELF είναι ευκολότερα στην συντήρηση και προσφέρουν υποστήριξη για cross compilers, κάτι που είναι πολύ σημαντικό για μερικούς ανθρώπους. Μπορεί ο ELF να είναι λίγο πιο αργός από τον a.out, αλλά η διαφορά δεν είναι αισθητή. Υπάρχουν επίσης πολλές άλλες διαφορές μεταξύ τους, σε λεπτομέρειες όπως τον τρόπο που αντιστοιχίζουν σελίδες, που χειρίζονται τον κώδικα init, κλπ. Καμιά από αυτές δεν είναι πολύ σημαντική, αλλά ωστόσο δεν παύουν να είναι διαφορές. Με τον καιρό η υποστήριξη για το a.out θα απομακρυνθεί από τον πυρήνα GENERIC, και τελικά θα αφαιρεθεί εντελώς από τον πυρήνα όταν εκλείψει ολοκληρωτικά η ανάγκη εκτέλεσης παλαιών προγραμμάτων τύπου a.out.

5.13. Για Περισσότερες Πληροφορίες

5.13.1. Σελίδες Βοηθείας

Η πιο κατανοητή τεκμηρίωση στο FreeBSD προσφέρεται με τη μορφή των σελίδων βοηθείας (manual pages). Σχεδόν για κάθε πρόγραμμα του συστήματος δίνεται μια σύντομη αναφορά που εξηγεί τις βασικές λειτουργίες και διάφορα άλλα θέματα. Αυτές οι σελίδες προβάλλονται με την εντολή man. Η χρήση της εντολής man είναι απλή:

% man command

όπου command είναι το όνομα της εντολής για την οποία επιθυμείτε να μάθετε περισσότερες πληροφορίες. Για παράδειγμα, για να μάθετε περισσότερα για την εντολή ls πληκτρολογήστε:

% man ls

Το online manual χωρίζεται σε τέσσερις αριθμημένες ενότητες:

  1. Εντολές χρήστη.

  2. Κλήσεις συστήματος και αριθμοί σφαλμάτων.

  3. Συναρτήσεις των βιβλιοθηκών της C.

  4. Οδηγοί συσκευών.

  5. Τύποι αρχείων.

  6. Παιχνίδια και άλλες εφαρμογές διασκέδασης.

  7. Διάφορες πληροφορίες.

  8. Συντήρηση συστήματος και εντολές λειτουργίας.

  9. Ανάπτυξη πυρήνα.

Σε μερικές περιπτώσεις, το ίδιο θέμα μπορεί να εμφανίζεται σε περισσότερες ενότητες των σελίδων βοηθείας. Για παράδειγμα, υπάρχει η εντολή χρήστη chmod και η κλήση συστήματος chmod(). Σε αυτή τη περίπτωση, μπορείτε να πείτε στην εντολή man ποια ακριβώς θέλετε επιλέγοντας την ενότητα:

% man 1 chmod

Με αυτόν τον τρόπο θα εμφανιστεί η σελίδα βοηθείας για την εντολή χρήστη chmod. Οι αναφορές σε μια ειδική ενότητα των σελίδων βοηθείας τοποθετούνται παραδοσιακά μέσα σε παρένθεση στην τυπωμένη τεκμηρίωση, επομένως το chmod(1) αναφέρεται στην εντολή χρήστη chmod και το chmod(2) αναφέρεται στην κλήση συστήματος.

Αυτό είναι χρήσιμο όταν γνωρίζουμε το όνομα της εντολής και απλά επιθυμούμε να μάθουμε πως να την χρησιμοποιήσουμε, αλλά τι γίνεται αν δεν γνωρίζουμε το όνομα της; Μπορείτε να χρησιμοποιήσετε το man για να αναζητήσετε λέξεις κλειδιά από τις περιγραφές των εντολών χρησιμοποιώντας την επιλογή -k:

% man -k mail

Με την εντολή αυτή θα εμφανιστεί μία λίστα από εντολές που περιέχουν την λέξη κλειδί "mail" στην περιγραφή τους. Αυτό είναι αντίστοιχο με το να χρησιμοποιήσετε την εντολή apropos.

Επομένως, βλέπετε όλες αυτές τις γουστόζικες εντολές στον /usr/bin αλλά δεν έχετε την παραμικρή ιδέα του τι πραγματικά κάνουν; Απλά πληκτρολογήστε:

% cd /usr/bin
% man -f *

ή

% cd /usr/bin
% whatis *

το οποίο κάνει ακριβώς το ίδιο πράγμα.

5.13.2. GNU Info Files

Το FreeBSD περιλαμβάνει πολλές εφαρμογές και βοηθητικά προγράμματα που έχουν δημιουργηθεί από την Free Software Foundation (FSF). Πέρα από τις σελίδες βοηθείας, τα προγράμματα αυτά παρέχονται με τεκμηρίωση μορφής hypertext σε αρχεία που ονομάζονται info και τα οποία μπορείτε να προβάλλετε με την εντολή info ή, αν έχετε εγκαταστήσει το emacs, μέσω της κατάστασης λειτουργίας info mode του emacs.

Για να χρησιμοποιήσετε την εντολή info(1), απλά πληκτρολογήστε:

% info

Για μια σύντομη εισαγωγή, πληκτρολογήστε h. Για μια γρήγορη αναφορά εντολής, πληκτρολογήστε ?.

Chapter 6. Εγκατάσταση Εφαρμογών: Πακέτα και Ports

6.1. Σύνοψη

Το FreeBSD συνοδεύεται από μία πλούσια συλλογή από προγράμματα σαν μέρος του βασικού συστήματος. Όμως, λίγα μπορεί να κάνει κάποιος πριν βρεθεί στην ανάγκη να εγκαταστήσει μια πρόσθετη εφαρμογή για να υλοποιήσει μια πραγματική εργασία. Το FreeBSD παρέχει δυο συμπληρωματικές τεχνολογίες για να εγκαταστήσετε πρόσθετες εφαρμογές στο σύστημα σας: τη Συλλογή των Ports (Ports Collection, για εγκατάσταση από τον πηγαίο κώδικα), και τα πακέτα (packages, για εγκατάσταση από προ-μεταγλωττισμένα εκτελέσιμα πακέτα). Κάθε μία από τις δυο μεθόδους μπορεί να χρησιμοποιηθεί για να εγκαταστήσετε τις νεότερες εκδόσεις από τις αγαπημένες σας εφαρμογές, από τοπικά αποθηκευτικά μέσα ή απευθείας από το δίκτυο.

Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:

  • Πως να εγκαθιστάτε προ-μεταγλωττισμένα πακέτα λογισμικού.

  • Πως να μεταγλωττίζετε πρόσθετο λογισμικό από τον πηγαίο κώδικα χρησιμοποιώντας την Συλλογή των Ports.

  • Πως να κάνετε απεγκατάσταση εγκαταστημένων πακέτων ή ports.

  • Πως να αλλάζετε τις προκαθορισμένες ρυθμίσεις που χρησιμοποιεί η Συλλογή των Ports.

  • Πως να βρίσκετε τα κατάλληλα πακέτα λογισμικού.

  • Πως να αναβαθμίζετε τις εφαρμογές σας.

6.2. Επισκόπησή της εγκατάστασης λογισμικού

Αν έχετε χρησιμοποιήσει ένα UNIX® σύστημα στο παρελθόν, θα γνωρίζετε ότι η συνηθισμένη διαδικασία για την εγκατάσταση πρόσθετου λογισμικού είναι περίπου η παρακάτω:

  1. "Κατέβασμα" του λογισμικού, που μπορεί να διανέμεται σε μορφή πηγαίου κώδικα, ή σαν εκτελέσιμο.

  2. Αποσυμπίεση του λογισμικού από την μορφή της διανομής του (συνήθως ένα tarball συμπιεσμένο με το compress(1), gzip(1), ή bzip2(1)).

  3. Εντοπισμός της τεκμηρίωσης (πιθανώς ένα αρχείο INSTALL ή README ή μερικά αρχεία μέσα σε ένα υποκατάλογο doc/) και ανάγνωσή τους για το πως θα εγκατασταθεί το λογισμικό.

  4. Αν το λογισμικό διανέμεται με τη μορφή πηγαίου κώδικα, μεταγλώττιση του. Αυτό μπορεί να περιλαμβάνει την επεξεργασία ενός Makefile, ή την εκτέλεση ενός configure script, και άλλες εργασίες.

  5. Δοκιμή και εγκατάσταση του λογισμικού.

Και αυτά μόνο αν όλα πάνε καλά. Αν εγκαθιστάτε ένα λογισμικό που δεν έχει μεταφερθεί στο FreeBSD ίσως να πρέπει να τροποποιήσετε τον πηγαίο κώδικα για να δουλέψει σωστά.

Αν το θέλετε, μπορείτε να συνεχίσετε να εγκαθιστάτε λογισμικό με τον "παραδοσιακό" τρόπο στο FreeBSD. Όμως, το FreeBSD παρέχει δυο τεχνολογίες που μπορούν να σας γλιτώσουν από πολύ κόπο: τα πακέτα και τα ports. Την στιγμή που γράφτηκε αυτό το κείμενο, διατίθονταν με αυτόν τον τρόπο πάνω από 36000 πρόσθετες εφαρμογές.

Για οποιαδήποτε εφαρμογή, το αντίστοιχο FreeBSD πακέτο της είναι ένα μοναδικό αρχείο που πρέπει εσείς να "κατεβάσετε". Το πακέτο περιέχει προ-μεταγλωττισμένα αντίγραφα από όλες τις εντολές της εφαρμογής, όπως επίσης και αρχεία παραμετροποίησης ή τεκμηρίωσης. Ένα τέτοιο πακέτο σε μορφή αρχείου, μπορείτε να το χειριστείτε με τις εντολές διαχείρισής πακέτων του FreeBSD, όπως οι pkg_add(1), pkg_delete(1), pkg_info(1), και πάει λέγοντας. Η εγκατάσταση μιας νέας εφαρμογής μπορεί να γίνει με μία μόνο εντολή.

Ένα FreeBSD port για μία εφαρμογή είναι μια συλλογή από αρχεία σχεδιασμένα για να αυτοματοποιήσουν την διαδικασία μεταγλώττισης της εφαρμογής από τον πηγαίο κώδικα.

Θυμηθείτε ότι υπάρχουν μερικά βήματα που θα πρέπει λογικά να κάνετε αν μεταγλωττίσετε ένα πρόγραμμα μόνος σας ("κατέβασμα", αποσυμπίεση, προσαρμογή (patching), μεταγλώττιση, εγκατάσταση). Τα αρχεία που αποτελούν ένα port περιέχουν όλες τις απαραίτητες πληροφορίες για να επιτρέψουν στο σύστημα να κάνει όλα αυτά για εσάς. Εσείς εκτελείτε μερικές απλές εντολές, και ο πηγαίος κώδικας για την εφαρμογή αυτόματα "κατεβαίνει", αποσυμπιέζεται, προσαρμόζεται, μεταγλωττίζεται, και εγκαθίσταται για εσάς.

Στην πραγματικότητα, το σύστημα ports μπορεί επίσης να χρησιμοποιηθεί για να δημιουργηθούν πακέτα που μπορείτε αργότερα να διαχειριστείτε με την pkg_add και τις άλλες εντολές διαχείρισής πακέτων που θα αναφερθούν σε λίγο.

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

Έχοντας αναφέρει ότι οι δύο τεχνολογίες είναι αρκετά όμοιες, ίσως να αναρωτιέστε γιατί το FreeBSD προσφέρει και τις δύο. Τα πακέτα και τα ports αμφότερα έχουν τα δικά τους πλεονεκτήματα, και το τι θα χρησιμοποιήσετε εξαρτάται από την δική σας προτίμηση.

Πλεονεκτήματα των Πακέτων
  • Ένα συμπιεσμένο tarball πακέτου είναι συνήθως μικρότερο από το συμπιεσμένο tarball που περιέχει τον πηγαίο κώδικα για την εφαρμογή.

  • Τα πακέτα δεν χρειάζονται μεταγλώττιση. Για μεγάλες εφαρμογές, όπως είναι ο Mozilla, το KDE, ή το GNOME αυτό μπορεί να είναι σημαντικό, ιδιαίτερα αν βρίσκεστε σε ένα αργό μηχάνημα.

  • Τα πακέτα δεν απαιτούν να κατανοήσετε την διαδικασία που σχετίζεται με την μεταγλώττιση λογισμικού στο FreeBSD.

Πλεονεκτήματα των Ports
  • Τα πακέτα συνήθως είναι μεταγλωττισμένα με συντηρητικές επιλογές, επειδή πρέπει να λειτουργούν στον μέγιστο αριθμό συστημάτων. Με εγκατάσταση από το port, μπορείτε να ρυθμίσετε τις επιλογές μεταγλώττισης (για παράδειγμα) να δημιουργήσουν εκτελέσιμο κώδικα που να εκμεταλλεύεται τις ικανότητες ενός Pentium 4 ή Athlon επεξεργαστή.

  • Μερικές εφαρμογές έχουν επιλογές μεταγλώττισης που σχετίζονται με το τι μπορούν να κάνουν και τι όχι. Για παράδειγμα, ο Apache μπορεί να μεταγλωττιστεί με ένα ευρύ φάσμα από επιλογές. Μεταγλωττίζοντας τον από το port, δεν είναι ανάγκη να δεχτείτε τις προεπιλεγμένες επιλογές, μπορείτε να κάνετε τις δικές σας.

    Σε μερικές περιπτώσεις, μπορεί να υπάρχουν πολλαπλά πακέτα για την ίδια εφαρμογή, με διαφορετικές ρυθμίσεις. Για παράδειγμα, το Ghostscript διατίθεται ως ένα πακέτο ghostscript και ένα πακέτο ghostscript-nox11, αναλόγως αν θα εγκαταστήσετε ή όχι έναν X11 server. Αυτού του τύπου οι ρυθμίσεις είναι δυνατές με τα πακέτα, αλλά γρήγορα γίνονται αδύνατες αν μία εφαρμογή έχει περισσότερες από μία ή δύο διαφορετικές ρυθμίσεις μεταγλώττισης.

  • Οι συνθήκες των αδειών διανομής από μερικές διανομές λογισμικού, απαγορεύουν την διανομή εκτελέσιμου κώδικα. Πρέπει να διανεμηθούν με την μορφή πηγαίου κώδικα.

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

  • Αν έχετε τοπικά, δικά σας patches, θα χρειαστείτε τον πηγαίο κώδικα για να τα εφαρμόσετε.

  • Μερικά άτομα γουστάρουν να έχουν τον πηγαίο κώδικα, ώστε να τον διαβάσουν αν βαρεθούνε, να τον αλλάξουν (hack), να δανειστούν από αυτόν (αν βέβαια το επιτρέπει η άδεια), κ.λ.π.

Για να είστε ενήμερος για τα ανανεωμένα ports, εγγραφείτε στην ηλεκτρονική λίστα των FreeBSD ports και στην ηλεκτρονική λίστα αναφορών προβλημάτων των FreeBSD ports.

Πριν εγκαταστήσετε οποιοδήποτε εφαρμογή, πρέπει να ελέγχετε το http://vuxml.freebsd.org/ για θέματα ασφαλείας που σχετίζονται με την εφαρμογή σας.

Μπορείτε επίσης να εγκαταστήσετε το ports-mgmt/portaudit το οποίο αυτόματα θα ελέγχει όλες τις εγκαταστημένες εφαρμογές για γνωστά τρωτά σημεία. Έλεγχος επίσης θα πραγματοποιείται πριν τη μεταγλώττιση οποιουδήποτε port. Στο ενδιάμεσο, μπορείτε να χρησιμοποιείτε την εντολή portaudit -F -a αφότου έχετε πρώτα εγκαταστήσει μερικά πακέτα.

Το υπόλοιπο αυτού του κεφαλαίου εξηγεί πως να χρησιμοποιήσετε τα πακέτα και τα ports για να εγκαταστήσετε και να διαχειριστείτε πρόσθετο λογισμικό στο FreeBSD.

6.3. Βρίσκοντας την Εφαρμογή σας

Πριν εγκαταστήσετε οποιαδήποτε εφαρμογή πρέπει να γνωρίζετε τι θέλετε να κάνει, και πως ονομάζεται η εφαρμογή.

Η λίστα των διαθέσιμων εφαρμογών στο FreeBSD μεγαλώνει συνεχώς. Ευτυχώς, υπάρχουν πολλοί τρόποι να βρείτε αυτό που θέλετε:

  • Στη δικτυακή τοποθεσία του FreeBSD θα βρείτε μια λίστα από όλες τις διαθέσιμες εφαρμογές, στο http://www.FreeBSD.org/ports/. Η λίστα αυτή ανανεώνεται συχνά, ενώ υπάρχει και δυνατότητα αναζήτησης. Τα ports είναι χωρισμένα σε κατηγορίες, και μπορείτε να αναζητήσετε μία εφαρμογή είτε με το όνομα (αν το ξέρετε), ή να δείτε όλες τις εφαρμογές που είναι διαθέσιμες σε μια κατηγορία. *

    Ο Dan Langille διατηρεί το FreshPorts, στο http://www.FreshPorts.org/. Το FreshPorts καταγράφει τις αλλαγές των εφαρμογών στο δέντρο των ports καθώς συμβαίνουν, επιτρέποντάς σας να "παρακολουθείτε" ένα ή περισσότερα ports, και μπορεί να σας στείλει email όταν αυτά ανανεώνονται. *

    Αν δεν γνωρίζετε το όνομα της εφαρμογής που θέλετε, δοκιμάστε να χρησιμοποιήσετε ένα site σαν το Freecode(http://www.freecode.com/) για να βρείτε μία εφαρμογή, και μετά μπορείτε να ελέγξετε ξανά το site του FreeBSD για να δείτε αν η εφαρμογή έχει γίνει port.

  • Αν ξέρετε το ακριβές όνομα του port, και θέλετε μόνο να βρείτε σε ποια κατηγορία είναι, μπορείτε να χρησιμοποιήσετε την εντολή whereis(1). Απλά γράψτε whereis αρχείο, όπου αρχείο είναι το πρόγραμμα που θέλετε να εγκαταστήσετε. Αν αυτό βρίσκεται στο σύστημα σας, η εντολή θα σας πει που είναι, όπως παρακάτω:

    # whereis lsof
    lsof: /usr/ports/sysutils/lsof

    Αυτό μας λέει ότι το lsof (ένα εργαλείο συστήματος) μπορεί να βρεθεί στον κατάλογο /usr/ports/sysutils/lsof.

  • Επιπρόσθετα, μπορείτε να χρησιμοποιήσετε μια απλή εντολή echo(1) για να εντοπίσετε την τοποθεσία κάποιου προγράμματος μέσα στα ports. Για παράδειγμα:

    # echo /usr/ports/*/*lsof*
    /usr/ports/sysutils/lsof

    Σημειώστε ότι το παραπάνω θα δείξει επίσης και οποιαδήποτε αρχεία έχουν κατέβει στον κατάλογο /usr/ports/distfiles εφόσον ταιριάζουν στην αναζήτηση.

  • Ακόμη ένας τρόπος να βρείτε ένα συγκεκριμένο port, είναι χρησιμοποιώντας τον εσωτερικό μηχανισμό αναζήτησης της Συλλογής των Ports. Γα να χρησιμοποιήσετε αυτό τον τρόπο αναζήτησης, Θα χρειαστεί να βρίσκεστε στον κατάλογο /usr/ports. Όταν βρεθείτε σε αυτόν τον κατάλογο, εκτελέστε το make search name=όνομα—​προγράμματος όπου όνομα—​προγράμματος είναι το όνομα του προγράμματος που θέλετε να βρείτε. Για παράδειγμα, αν αναζητάτε το lsof:

    # cd /usr/ports
    # make search name=lsof
    Port:   lsof-4.56.4
    Path:   /usr/ports/sysutils/lsof
    Info:   Lists information about open files (similar to fstat(1))
    Maint:  obrien@FreeBSD.org
    Index:  sysutils
    B-deps:
    R-deps:

    Το τμήμα της εξόδου που πρέπει να προσέξετε ιδιαίτερα είναι η γραμμή "Path:", αφού αυτή σας λέει που να βρείτε το port. Οι υπόλοιπες πληροφορίες που παρέχονται δεν χρειάζονται για να εγκατασταθεί το port, για αυτό δεν θα αναλυθούν εδώ.

    Για πιο λεπτομερή αναζήτηση μπορείτε να χρησιμοποιήσετε επίσης make search key=φράση όπου φράση είναι κάποιο κείμενο προς αναζήτηση. Αυτό αναζητά ονόματα port, σχόλια, περιγραφές και εξαρτήσεις, και μπορεί να χρησιμοποιηθεί για να βρεθούν ports που σχετίζονται με ένα συγκεκριμένο θέμα, εάν δεν γνωρίζετε το όνομα του προγράμματος που αναζητάτε.

    Σε όλες τις παραπάνω περιπτώσεις, η φράση προς αναζήτηση είναι case-insensitive (δεν λαμβάνει υπόψη τις διαφορές κεφαλαίων-μικρών). Η αναζήτηση για το "LSOF", θα δώσει τα ίδια αποτελέσματα με την αναζήτηση για το "lsof".

6.4. Χρησιμοποιώντας το Σύστημα των Πακέτων

Υπάρχουν διάφορα εργαλεία με τα οποία μπορείτε να διαχειριστείτε τα πακέτα στο FreeBSD:

  • Σε ένα σύστημα που βρίσκεται ήδη σε λειτουργία, μπορείτε να εκτελέσετε το sysinstall για να εγκαταστήσετε, να διαγράψετε, και να δείτε τις εγκατεστημένες και τις διαθέσιμες εφαρμογές. Για περισσότερες πληροφορίες, δείτε το Εγκατάσταση Πακέτων.

  • Τα διάφορα εργαλεία διαχείρισης μέσω της γραμμής εντολών, που αποτελούν και το αντικείμενο συζήτησης αυτής της ενότητας.

6.4.1. Εγκαθιστώντας ένα Πακέτο

Μπορείτε να χρησιμοποιήσετε το εργαλείο pkg_add(1) για να εγκαταστήσετε ένα πακέτο λογισμικού του FreeBSD από ένα τοπικά αποθηκευμένο αρχείο ή από έναν διακομιστή στο δίκτυο.

Παράδειγμα 6. "Κατέβασμα" ενός πακέτου χειροκίνητα και εγκατάσταση του τοπικά
# ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230-     This machine is in Vienna, VA, USA, hosted by Verio.
230-         Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375       00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
# pkg_add lsof-4.56.4.tgz

Εάν δεν έχετε μία τοπική πηγή πακέτων (όπως είναι ένα FreeBSD CD-ROM set) τότε ίσως είναι ευκολότερο να χρησιμοποιήσετε την επιλογή -r για το pkg_add(1). Αυτή θα κάνει το εργαλείο να καθορίσει αυτόματα τη σωστή μορφή και έκδοση και έπειτα να ανακτήσει και να εγκαταστήσει το πακέτο από ένα FTP site.

# pkg_add -r lsof

Το παραπάνω παράδειγμα θα "κατεβάσει" και θα εγκαταστήσει το σωστό πακέτο χωρίς περαιτέρω επέμβαση του χρήστη. Αν δεν θέλετε να χρησιμοποιήσετε το κύριο site διανομής πακέτων, μπορείτε να χρησιμοποιήσετε κάποιο mirror. Για το σκοπό αυτό, θα πρέπει να ρυθμίσετε σωστά την τιμή της PACKAGESITE, ώστε να παρακάμψετε τις προεπιλεγμένες ρυθμίσεις. Το pkg_add(1) χρησιμοποιεί το fetch(3) για να "κατεβάσει" τα αρχεία, και αυτό με τη σειρά του χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των FTP_PASSIVE_MODE, FTP_PROXY, και FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσετε μία ή περισσότερες από αυτές αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το fetch(3) για την πλήρη λίστα των μεταβλητών. Προσέξτε ότι στο παραπάνω παράδειγμα χρησιμοποιείται το lsof αντί του lsof-4.56.4. Όταν γίνεται απομακρυσμένη λήψη, πρέπει να αφαιρεθεί ο αριθμός έκδοσης του πακέτου. Το pkg_add(1) θα "κατεβάσει" αυτόματα την τελευταία έκδοση της εφαρμογής.

Το pkg_add(1) θα "κατεβάσει" την τελευταία έκδοση της εφαρμογής αν χρησιμοποιείτε FreeBSD-CURRENT ή FreeBSD-STABLE. Αν τρέχετε μια -RELEASE έκδοση, θα "κατεβάσει" την έκδοση του πακέτου που έχει μεταγλωττιστεί με την έκδοση σας. Είναι δυνατό να το αλλάξετε αυτό, αλλάζοντας την PACKAGESITE. Για παράδειγμα, αν τρέχετε ένα σύστημα FreeBSD 8.1-RELEASE, το pkg_add(1), από προεπιλογή, θα προσπαθήσει να "κατεβάσει" πακέτα από το ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/. Αν θέλετε να αναγκάσετε το pkg_add(1) να "κατεβάσει" πακέτα του FreeBSD 8-STABLE, θέστε την PACKAGESITE ως ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/.

Τα αρχεία των πακέτων διανέμονται σε μορφές .tgz και .tbz. Μπορείτε να τα βρείτε στο ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, ή στα CD-ROM της διανομής του FreeBSD. Κάθε CD στο FreeBSD 4-CD set (και στο PowerPak, κλπ.) περιέχει πακέτα στον κατάλογο /packages. Η κατηγοριοποίηση των πακέτων ακολουθεί την δομή του δέντρου /usr/ports. Κάθε κατηγορία έχει το δικό της κατάλογο, και κάθε πακέτο μπορεί να βρεθεί στον κατάλογο All.

Η δομή των καταλόγων του συστήματος πακέτων ταιριάζει με την αντίστοιχη των ports. Τα δύο συστήματα συνεργάζονται μεταξύ τους για να δημιουργήσουν το συνολικό σύστημα πακέτων/ports.

6.4.2. Διαχείριση των Πακέτων

Το pkg_info(1) είναι ένα εργαλείο που παραθέτει και περιγράφει τα διάφορα πακέτα που είναι εγκαταστημένα.

# pkg_info
cvsup-16.1          A general network file distribution system optimized for CV
docbook-1.2         Meta-port for the different versions of the DocBook DTD
...

Το pkg_version(1) είναι ένα εργαλείο που συνοψίζει τις εκδόσεις όλων των εγκαταστημένων πακέτων. Συγκρίνει την έκδοση κάθε πακέτου, με την τρέχουσα έκδοση που βρίσκεται στο δέντρο των ports.

# pkg_version
cvsup                       =
docbook                     =
...

Τα σύμβολα στην δεύτερη στήλη δηλώνουν την σχετική ηλικία μεταξύ των εγκατεστημένων εκδόσεων και των εκδόσεων που είναι διαθέσιμες στο τοπικό δέντρο των ports.

ΣύμβολοΣημασία

=

Η έκδοση του εγκατεστημένου πακέτου ταιριάζει με αυτή που είναι διαθέσιμη στο τοπικό δέντρο των ports.

<

Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που είναι διαθέσιμη στο δέντρο των ports.

>

Η εγκατεστημένη έκδοση είναι νεότερη από αυτή που είναι διαθέσιμη στο τοπικό δέντρο των ports. (Το τοπικό δέντρο των ports είναι πιθανότατα απαρχαιωμένο.)

?

Το εγκατεστημένο πακέτο δεν βρίσκεται στα περιεχόμενα των ports. (Αυτό μπορεί να συμβεί, για παράδειγμα, αν ένα εγκατεστημένο port έχει αφαιρεθεί από την Συλλογή των Ports, ή έχει μετονομαστεί.)

*

Υπάρχουν πολλαπλές εκδόσεις του πακέτου.

!

Το εγκατεστημένο πακέτο υπάρχει στο index, αλλά για κάποιο λόγο το pkg_version δεν κατάφερε να συγκρίνει την έκδοση του εγκατεστημένου πακέτου με την αντίστοιχη καταχώρηση στο index.

6.4.3. Αφαιρώντας ένα Πακέτο

Για να αφαιρέσετε ένα εγκατεστημένο πακέτο λογισμικού, χρησιμοποιήστε το εργαλείο pkg_delete(1).

# pkg_delete xchat-1.7.1

Σημειώστε ότι το pkg_delete(1) απαιτεί το πλήρες όνομα και αριθμό έκδοσης του πακέτου. Η παραπάνω εντολή δεν θα λειτουργήσει αν δώσετε απλώς xchat αντί για xchat-1.7.1. Είναι ωστόσο εύκολο να χρησιμοποιήσετε την pkg_version(1) για να βρείτε την έκδοση του εγκατεστημένου πακέτου. Αντί για αυτό, μπορείτε επίσης να χρησιμοποιήσετε ένα μπαλαντέρ:

# pkg_delete xchat\*

Στην περίπτωση αυτή, θα διαγραφούν όλα τα πακέτα που τα ονόματα τους αρχίζουν με xchat.

6.4.4. Διάφορα

Όλες οι πληροφορίες για τα πακέτα είναι αποθηκευμένες στον κατάλογο /var/db/pkg. Στα αρχεία αυτού του καταλόγου, θα βρείτε τη περιγραφή κάθε πακέτου, καθώς και τη λίστα των αρχείων που εγκαθιστά.

6.5. Χρησιμοποιώντας την Συλλογή των Ports

Τα παρακάτω τμήματα δίνουν βασικές οδηγίες χρήσης της Συλλογής των Ports για εγκατάσταση ή διαγραφή προγραμμάτων στο σύστημα σας. Μπορείτε να βρείτε λεπτομερή περιγραφή των διαθέσιμων επιλογών του make και των μεταβλητών περιβάλλοντος στο ports(7).

6.5.1. Ανακτώντας την Συλλογή των Ports

Πριν μπορέσετε να εγκαταστήσετε προγράμματα μέσω των ports, πρέπει πρώτα να ανακτήσετε την Συλλογή των Ports. Πρόκειται ουσιαστικά για μια συλλογή από Makefiles, patches, και αρχεία περιγραφής που τοποθετούνται στο /usr/ports.

Όταν εγκαταστήσατε το FreeBSD σύστημα σας, το sysinstall σας ρώτησε αν θέλατε να εγκαταστήσετε την Συλλογή των Ports. Αν επιλέξατε όχι, μπορείτε να ακολουθήσετε αυτές τις οδηγίες για να ανακτήσετε την Συλλογή των Ports:

Procedure: Μέθοδος CVSup

Αυτή είναι μια γρήγορη μέθοδος για να ανακτήσετε και να διατηρήσετε ένα ανανεωμένο αντίγραφο της Συλλογής των Ports, χρησιμοποιώντας το πρωτόκολλο CVSup. Αν θέλετε να μάθετε περισσότερα για το CVSup, δείτε το Χρησιμοποιώντας το CVSup.

Η υλοποίηση του CVSup που περιλαμβάνεται σε ένα σύστημα FreeBSD, ονομάζεται csup.

Σιγουρευθείτε ότι το /usr/ports είναι άδειο πριν εκτελέσετε το csup για πρώτη φορά! Εάν έχετε ήδη ανακτήσει τη Συλλογή των Ports μέσω κάποιας άλλης πηγής, το csup δεν θα διαγράψει patches που έχουν αφαιρεθεί στο μεταξύ.

  1. Εκτελέστε το csup:

    # csup -L 2 -h cvsup.FreeBSD.org /usr/shared/examples/cvsup/ports-supfile

    Αλλάξτε το cvsup.FreeBSD.org με έναν κοντινό σας διακομιστή CVSup. Δείτε το CVSup Mirrors (Τοποθεσίες CVSup) για την πλήρη λίστα των mirror sites.

    Αν θέλετε, μπορείτε να χρησιμοποιήσετε το δικό σας ports-supfile, ώστε να αποφύγετε (για παράδειγμα) να δηλώσετε τον διακομιστή CVSup στην γραμμή εντολών.

    1. Σε αυτή την περίπτωση, ως root, αντιγράψτε το /usr/shared/examples/cvsup/ports-supfile σε μία νέα τοποθεσία, όπως το /root ή τον δικό σας home κατάλογο.

    2. Τροποποιήστε το ports-supfile.

    3. Αλλάξτε το CHANGE_THIS.FreeBSD.org με έναν κοντινό σας διακομιστή CVSup.Δείτε το CVSup Mirrors (Τοποθεσίες CVSup) για την πλήρη λίστα των mirror sites.

    4. Εκτελέστε τώρα το csup, με τον ακόλουθο τρόπο:

      # csup -L 2 /root/ports-supfile
  2. Εκτελώντας την εντολή csup(1) αργότερα, θα "κατεβάσει" και θα εφαρμόσει όλες τις πρόσφατες αλλαγές στην Συλλογή των Ports, εκτός από το να επανα-μεταγλωττίσει τα ports για το σύστημα σας.

Procedure: Μέθοδος Portsnap

Το Portsnap είναι ένα εναλλακτικό σύστημα για την διανομή της Συλλογής των Ports. Παρακαλώ ελέγξτε το Χρησιμοποιώντας το Portsnap για μία λεπτομερή περιγραφή όλων των χαρακτηριστικών της εφαρμογής.

  1. "Κατεβάστε" ένα συμπιεσμένο snapshot της Συλλογής των Ports /var/db/portsnap. Αν θέλετε, μπορείτε να αποσυνδεθείτε από το Διαδίκτυο μετά από αυτό το βήμα.

    # portsnap fetch
  2. Αν εκτελείτε το Portsnap για πρώτη φορά, κάντε εξαγωγή του snapshot μέσα στο /usr/ports:

    # portsnap extract

    Εάν ήδη έχετε ένα γεμάτο /usr/ports και απλώς το ανανεώνετε, εκτελέστε την ακόλουθη εντολή:

    # portsnap update

Procedure: Μέθοδος Sysinstall

Αυτή η μέθοδος χρησιμοποιεί το sysinstall για την εγκατάσταση της Συλλογής των Ports από το μέσο εγκατάστασης. Σημειώστε ότι με αυτό τον τρόπο θα εγκαταστήσετε το παλαιό αντίγραφο της Συλλογής των Ports, που αντιστοιχεί στην ημερομηνία της έκδοσης του FreeBSD που χρησιμοποιείτε. Εάν έχετε πρόσβαση στο Διαδίκτυο, πρέπει πάντα να χρησιμοποιείτε μία από τις μεθόδους που αναφέρθηκαν πιο πάνω.

  1. Ως root, εκτελέστε το sysinstall όπως φαίνεται παρακάτω:

    # sysinstall
  2. Επιλέξτε το Configure, και πιέστε Enter.

  3. Επιλέξτε το Distributions, και πιέστε Enter.

  4. Μετακινηθείτε στο ports, και πιέστε Space.

  5. Μετακινηθείτε στο Exit, και πιέστε Enter.

  6. Επιλέξτε το μέσο εγκατάστασης της επιθυμίας σας, όπως CDROM, FTP, και πάει λέγοντας.

  7. Μετακινηθείτε στο Exit και πιέστε Enter.

  8. Πιέστε X για να βγείτε από το sysinstall.

6.5.2. Εγκαθιστώντας Ports

Το πρώτο πράγμα που πρέπει να διευκρινιστεί σχετικά με την Συλλογή των Ports είναι η έννοια του όρου "skeleton (σκελετός)". Με λίγα λόγια, ένα port skeleton είναι η ελάχιστη συλλογή αρχείων που καθοδηγούν ένα σύστημα FreeBSD ώστε να μεταγλωττίσει και να εγκαταστήσει σωστά ένα πρόγραμμα. Κάθε port skeleton περιέχει:

  • Ένα Makefile. Το Makefile περιέχει διάφορες δηλώσεις που ορίζουν πως πρέπει να μεταγλωττιστεί η εφαρμογή και που πρέπει να εγκατασταθεί στο σύστημά σας.

  • Ένα αρχείο distinfo. Αυτό το αρχείο περιέχει πληροφορίες για τα αρχεία που πρέπει να "κατέβουν" για την μεταγλώττιση του port, και τα checksums τους (χρησιμοποιώντας το sha256(1)), για να επιβεβαιωθεί ότι τα αρχεία δεν έχουν αλλοιωθεί κατά την διάρκεια της μεταφοράς τους.

  • Έναν κατάλογο files. Αυτός ο κατάλογος περιέχει τα patches που επιτρέπουν στο πρόγραμμα να μεταγλωττιστεί και εγκατασταθεί στο FreeBSD σύστημα σας. Τα patches είναι μικρά αρχεία που ορίζουν αλλαγές σε συγκεκριμένα αρχεία. Είναι σε μορφή κοινού κειμένου, και βασικά λένε "Αφαίρεσε την γραμμή 10" ή "Μετέτρεψε τη γραμμή 26 σε αυτό …​". Τα patches είναι επίσης γνωστά ως "diffs" επειδή δημιουργούνται με το πρόγραμμα diff(1).

    Αυτός ο κατάλογος μπορεί να περιέχει και άλλα αρχεία που χρησιμοποιούνται για να μεταγλωττιστεί το port.

  • Ένα αρχείο pkg-descr. Αυτό είναι μία πιο λεπτομερής, συχνά πολλών γραμμών, περιγραφή του προγράμματος.

  • Ένα αρχείο pkg-plist. Αυτό περιέχει μια λίστα όλων των αρχείων που θα εγκατασταθούν από το port. Επίσης καθοδηγεί το σύστημα των ports τι αρχεία να αφαιρέσει κατά την απεγκατάσταση.

Μερικά ports έχουν και άλλα αρχεία, όπως το pkg-message. Το σύστημα των ports χρησιμοποιεί αυτά τα αρχεία για να χειριστεί ειδικές περιστάσεις. Αν θέλετε περισσότερες λεπτομέρειες για αυτά τα αρχεία, και τα ports γενικότερα, δείτε το FreeBSD Porter’s Handbook.

Το port περιέχει οδηγίες για το πως να μεταγλωττιστεί ο πηγαίος κώδικας, αλλά δεν περιέχει τον πηγαίο κώδικα. Μπορείτε να προμηθευτείτε τον πηγαίο κώδικα από ένα CD-ROM ή από το Διαδίκτυο. Ο πηγαίος κώδικας διανέμεται με οποιοδήποτε τρόπο επιθυμεί ο δημιουργός του. Συχνά είναι ένα tarred και gzipped αρχείο, αλλά μπορεί να είναι συμπιεσμένος με κάποιο άλλο εργαλείο ή να είναι ακόμα και ασυμπίεστος. Ο πηγαίος κώδικας του προγράμματος, σε οποιαδήποτε μορφή κι αν διατίθεται, λέγεται "distfile". Οι δύο μέθοδοι για να εγκαταστήσετε ένα FreeBSD port περιγράφονται παρακάτω.

Πρέπει να συνδεθείτε ως root για να εγκαταστήσετε ports.

Πριν εγκαταστήσετε οποιαδήποτε port, πρέπει να σιγουρευτείτε ότι έχετε μία ανανεωμένη Συλλογή των Ports, και πρέπει να ελέγξετε το http://vuxml.freebsd.org/ για θέματα ασφαλείας σχετικά με το port που ενδιαφέρεστε.

Αν θέλετε να ελέγχετε αυτόματα για τυχόν προβλήματα ασφαλείας πριν από κάθε εγκατάσταση νέας εφαρμογής, μπορείτε να χρησιμοποιήσετε το portaudit. Θα βρείτε αυτό το εργαλείο στην Συλλογή των Ports (ports-mgmt/portaudit). Είναι καλή ιδέα να εκτελέσετε το portaudit -F πριν εγκαταστήσετε ένα νέο port, για να ανακτήσετε την τρέχουσα βάση δεδομένων προβλημάτων ασφαλείας. Αντίστοιχος έλεγχος και ανανέωση της βάσης δεδομένων εκτελείται επίσης αυτόματα κατά τον καθημερινό έλεγχο ασφαλείας του συστήματος. Για περισσότερες πληροφορίες διαβάστε τις σελίδες manual portaudit(1) και periodic(8).

Η Συλλογή των Ports προϋποθέτει ότι έχετε λειτουργική σύνδεση με το Διαδίκτυο. Εάν δεν έχετε, θα χρειαστεί να βάλετε μόνος σας ένα αντίγραφο του distfile μέσα στο /usr/ports/distfiles.

Αρχικά, μετακινηθείτε στον κατάλογο του port που θέλετε να εγκαταστήσετε:

# cd /usr/ports/sysutils/lsof

Μόλις βρεθείτε στον κατάλογο lsof, θα δείτε τον port skeleton. Το επόμενο βήμα είναι να μεταγλωττίσετε, ή να "κτίσετε (build)", το port. Αυτό γίνεται απλά πληκτρολογώντας make στην γραμμή εντολών. Όταν το κάνετε, θα δείτε κάτι όπως αυτό:

# make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===>  Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===>  Patching for lsof-4.57
===>  Applying FreeBSD patches for lsof-4.57
===>  Configuring for lsof-4.57
...
[configure output snipped]
...
===>  Building for lsof-4.57
...
[compilation output snipped]
...
#

Προσέξτε ότι μόλις η μεταγλώττιση ολοκληρωθεί θα επιστρέψετε στην γραμμή εντολών. Το επόμενο βήμα είναι να εγκαταστήσετε το port. Για να το εγκαταστήσετε, χρειάζεται απλώς να προσθέσετε μια λέξη στην εντολή make, και αυτή η λέξη είναι install:

# make install
===>  Installing for lsof-4.57
...
[installation output snipped]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.57
===>   Registering installation for lsof-4.57
===>  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
#

Μόλις επιστρέψετε στην γραμμή εντολών, θα πρέπει να μπορείτε να εκτελέσετε την εφαρμογή που μόλις εγκαταστήσατε. Θα δείτε μια προειδοποίηση ασφαλείας, επειδή το lsof είναι ένα πρόγραμμα που τρέχει με αυξημένα προνόμια. Κατά την μεταγλώττιση και εγκατάσταση των ports, θα πρέπει να προσέχετε οποιαδήποτε προειδοποίηση εμφανιστεί.

Μια καλή ιδέα, είναι να διαγράψετε τον υποκατάλογο που περιέχει όλα τα προσωρινά αρχεία που χρησιμοποιήθηκαν κατά την μεταγλώττιση. Όχι μόνο καταναλώνουν πολύτιμο χώρο, άλλα μπορεί να προκαλέσουν προβλήματα αργότερα όταν θα θελήσετε να εγκαταστήσετε μια νεότερη έκδοση του port.

# make clean
===>  Cleaning for lsof-4.57
#

Μπορείτε να γλιτώσετε δύο πρόσθετα βήματα απλώς εκτελώντας make install clean αντί για make, make install και make clean ως τρία ξεχωριστά βήματα.

Μερικά κελύφη κρατάνε μια λίστα από τις εντολές που βρίσκονται διαθέσιμες στους καταλόγους που αναφέρονται στην μεταβλητή περιβάλλοντος PATH, για να επιταχύνουν τις αναζητήσεις για τα εκτελέσιμα αρχεία αυτών των εντολών. Αν χρησιμοποιείτε ένα από αυτά τα κελύφη, θα πρέπει να χρησιμοποιήσετε την εντολή rehash μετά την εγκατάσταση ενός port, πριν μπορέσετε να χρησιμοποιήσετε τις νέες εντολές. Αυτή η εντολή λειτουργεί σε κελύφη όπως το tcsh. Χρησιμοποιήστε την εντολή hash -r για κελύφη όπως το sh. Δείτε την τεκμηρίωση του κελύφους σας για περισσότερες πληροφορίες.

Μερικά προϊόντα τρίτων κατασκευαστών σε DVD-ROM, όπως το FreeBSD Toolkit από το FreeBSD Mall, περιέχουν distfiles. Αυτά μπορούν να χρησιμοποιηθούν με την Συλλογή των Ports. Προσαρτήστε το DVD-ROM στο /cdrom. Αν χρησιμοποιείτε κάποιο διαφορετικό σημείο προσάρτησης, ρυθμίστε την μεταβλητή CD_MOUNTPTS του make. Τα αναγκαία distfiles θα χρησιμοποιηθούν αυτόματα αν υπάρχουν στο δισκάκι.

Πρέπει να γνωρίζετε ότι οι άδειες μερικών ports δεν επιτρέπουν την διανομή τους σε CD-ROM. Αυτό μπορεί να οφείλεται π.χ. στο ότι πρέπει να συμπληρώσετε μια φόρμα εγγραφής πριν "κατεβάσετε" την εφαρμογή, ή στο ότι δεν επιτρέπεται η επαναδιανομή, ή σε κάποιο άλλο λόγο. Εάν θέλετε να εγκαταστήσετε ένα port που δεν περιλαμβάνεται στο CD-ROM, θα χρειαστεί να είστε συνδεδεμένος στο Διαδίκτυο για να το επιτύχετε.

Το σύστημα των ports χρησιμοποιεί το fetch(3) για να "κατεβάσει" τα αρχεία. Το fetch(3) χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των FTP_PASSIVE_MODE, FTP_PROXY, και FTP_PASSWORD. Ίσως χρειαστεί να ρυθμίσετε μία ή περισσότερες αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το fetch(3) για μια πλήρη λίστα των μεταβλητών αυτών.

Για χρήστες που δεν μπορούν να είναι συνδεδεμένοι όλη την ώρα, διατίθεται η επιλογή make fetch. Απλώς εκτελέστε την εντολή στον κατάλογο (/usr/ports) και τα απαραίτητα αρχεία θα "κατέβουν" για εσάς. Η εντολή αυτή θα λειτουργήσει και σε υποκαταλόγους, όπως για παράδειγμα: /usr/ports/net. Προσέξτε ότι αν ένα port εξαρτάται από βιβλιοθήκες ή άλλα ports, η εντολή αυτή δεν θα ανακτήσει τα distfiles τους. Αντικαταστήστε το fetch με το fetch-recursive αν θέλετε μαζί με το port να ανακτήσετε και όλες τις εξαρτήσεις του.

Μπορείτε να μεταγλωττίσετε όλα τα ports σε μία κατηγορία ή ακόμα και σε όλες, εκτελώντας το make στον αρχικό κατάλογο, όπως με την προαναφερθείσα make fetch μέθοδο. Αυτό όμως είναι επικίνδυνο, γιατί μερικά ports δεν μπορούν να συνυπάρχουν. Σε άλλες περιπτώσεις, μερικά ports μπορεί να εγκαταστήσουν δυο διαφορετικά αρχεία με το με το ίδιο όνομα.

Σε μερικές σπάνιες περιπτώσεις, οι χρήστες μπορεί να χρειάζεται να ανακτήσουν τα tarballs από ένα site διαφορετικό από τα MASTER_SITES (η τοποθεσία από όπου "κατεβαίνουν" τα αρχεία). Μπορείτε να αλλάξετε την επιλογή MASTER_SITES με την ακόλουθη εντολή:

# cd /usr/ports/directory
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

Σε αυτό το παράδειγμα αλλάξαμε την επιλογή MASTER_SITES σε ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.

Μερικά ports επιτρέπουν (ή απαιτούν) να δώσετε επιλογές μεταγλώττισης που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν τμήματα της εφαρμογής που είναι αχρείαστα, συγκεκριμένες επιλογές ασφαλείας, και άλλες τροποποιήσεις. Κοινά παραδείγματα τέτοιων ports είναι τα www/firefox, security/gpgme, και το mail/sylpheed-claws. Όταν υπάρχουν διαθέσιμες τέτοιες επιλογές, θα εμφανιστεί στην οθόνη σας σχετικό μήνυμα.

6.5.2.1. Παρακάμπτοντας τους Προεπιλεγμένους Καταλόγους των Ports

Μερικές φορές είναι χρήσιμο (ή επιτακτικό) να χρησιμοποιήσετε ένα διαφορετικό κατάλογο εργασίας και εγκατάστασης. Οι μεταβλητές WRKDIRPREFIX και PREFIX μπορούν να παρακάμψουν τους προεπιλεγμένους καταλόγους. Για παράδειγμα, η εντολή:

# make WRKDIRPREFIX=/usr/home/example/ports install

θα μεταγλωττίσει το port στο /usr/home/example/ports και θα εγκαταστήσει τα πάντα στο /usr/local, ενώ η εντολή:

# make PREFIX=/usr/home/example/local install

θα μεταγλωττίσει το port στο /usr/ports και θα το εγκαταστήσει στο /usr/home/example/local.

Και φυσικά η εντολή:

# make WRKDIRPREFIX=../ports PREFIX=../local install

θα συνδυάσει και τα δυο (είναι πολύ μεγάλη για να την δείξουμε εδώ, άλλα πρέπει να πήρατε την γενική ιδέα).

Εναλλακτικά, αυτές οι μεταβλητές μπορούν να ρυθμιστούν ως μέρος του περιβάλλοντος σας. Διαβάστε την σελίδα manual για το κέλυφος σας, για να βρείτε τις σχετικές οδηγίες.

6.5.2.2. Αντιμετωπίζοντας το imake

Μερικά ports που χρησιμοποιούν το imake (μέρος του X Window System) δεν συνεργάζονται σωστά με το PREFIX, και επιμένουν να εγκατασταθούν στο /usr/X11R6. Όμοια, μερικά Perl ports αγνοούν το PREFIX και εγκαθίστανται στο δέντρο Perl. Το να κάνετε αυτά τα ports να σέβονται το PREFIX είναι μία δύσκολη ή αδύνατη δουλειά.

6.5.2.3. Επαναρύθμιση Επιλογών Ports

Όταν μεταγλωττίζετε κάποια ports, μπορεί να εμφανιστεί στην οθόνη σας ένα μενού επιλογών (βασισμένο σε ncurses) το οποίο να σας επιτρέπει να αλλάξετε διάφορες επιλογές μεταγλώττισης. Δεν είναι σπάνιο κάποιοι χρήστες να θέλουν να επισκεφτούν ξανά αυτό το μενού, για να προσθέσουν, να αφαιρέσουν ή να αλλάξουν κάποιες επιλογές, μετά την μεταγλώττιση του port. Μια επιλογή είναι να μετακινηθείτε στον κατάλογο του port και να γράψετε make config, με το οποίο θα εμφανιστεί ξανά το μενού με τις προηγούμενες ρυθμίσεις σας ήδη επιλεγμένες. Μια άλλη δυνατότητα, είναι να χρησιμοποιήσετε την εντολή make showconfig, με την οποία θα δείτε όλες τις επιλεγμένες ρυθμίσεις του port. Τέλος, μια ακόμα επιλογή είναι να εκτελέσετε την εντολή make rmconfig η οποία θα αφαιρέσει όλες τις αποθηκευμένες επιλογές και θα σας επιτρέψει να ξεκινήσετε ξανά από την αρχή. Όλες αυτές οι επιλογές, και ακόμα περισσότερες, εξηγούνται στη σελίδα manual του ports(7).

6.5.3. Αφαιρώντας Εγκατεστημένα Ports

Τώρα που γνωρίσατε πως να εγκαθιστάτε ports, πιθανώς θα αναρωτιέστε πως αφαιρούνται, στην περίπτωση που εγκαταστήσατε ένα και αργότερα αποφασίσατε ότι εγκαταστήσατε το λάθος port. Θα αφαιρέσουμε το προηγούμενο παράδειγμα (που ήταν το lsof για όσους δεν το πρόσεξαν). Τα ports αφαιρούνται όπως και τα πακέτα (το αναλύσαμε στην ενότητα Χρησιμοποιώντας το Σύστημα των Πακέτων), χρησιμοποιώντας την εντολή pkg_delete(1):

# pkg_delete lsof-4.57

6.5.4. Αναβαθμίζοντας τα Ports

Αρχικά, δείτε τα παρωχημένα ports για τα οποία υπάρχουν διαθέσιμες νεότερες εκδόσεις στην Συλλογή των Ports, με την εντολή pkg_version(1):

# pkg_version -v
6.5.4.1. /usr/ports/UPDATING

Μόλις ανανεώσετε την Συλλογή των Ports, πρέπει να ελέγξετε το αρχείο /usr/ports/UPDATING, πριν επιχειρήσετε την αναβάθμιση ενός port. Αυτό το αρχείο περιγράφει διάφορα πιθανά προβλήματα, καθώς και ενδεχόμενα πρόσθετα βήματα που πρέπει να εκτελέσετε όταν ανανεώνετε ένα port. Παραδείγματα των παραπάνω, είναι η αλλαγή μορφής κάποιων αρχείων, αλλαγή στην τοποθεσία των αρχείων ρυθμίσεων, ή άλλες ασυμβατότητες με παλαιότερες εκδόσεις.

Αν το UPDATING αναιρεί κάτι που διαβάσατε εδώ, θεωρήστε ότι ισχύει το UPDATING.

6.5.4.2. Αναβαθμίζοντας Ports με το Portupgrade

Το εργαλείο portupgrade είναι σχεδιασμένο για να αναβαθμίζει εύκολα εγκατεστημένα ports. Διατίθεται από το ports-mgmt/portupgrade port. Εγκαταστήστε το όπως κάθε port, χρησιμοποιώντας την εντολή make install clean:

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

Η εντολή pkgdb -F θα διαβάσει και θα διορθώσει όλες τις ασυνέπειες που ίσως υπάρχουν στη λίστα των εγκατεστημένων ports. Είναι καλή ιδέα είναι να την εκτελείτε συχνά, ενδεχομένως πριν από κάθε αναβάθμιση.

Όταν εκτελείτε το portupgrade -a, το portupgrade θα αρχίσει να αναβαθμίζει όλα τα παρωχημένα ports που είναι εγκατεστημένα στο σύστημα σας. Χρησιμοποιήστε την επιλογή -i αν θέλετε να σας ρωτά για επιβεβαίωση για κάθε ξεχωριστή αναβάθμιση.

# portupgrade -ai

Αν θέλετε να αναβαθμίσετε μόνο μία συγκεκριμένη εφαρμογή, και όχι όλα τα διαθέσιμα ports, χρησιμοποιήστε το portupgrade pkgname. Συμπεριλάβετε την επιλογή -R αν το portupgrade πρέπει πρώτα να αναβαθμίσει όλα τα ports που απαιτούνται για την συγκεκριμένη εφαρμογή.

# portupgrade -R firefox

Για να χρησιμοποιήσετε πακέτα αντί για ports στην εγκατάσταση, δώστε την επιλογή -P. Με αυτή την επιλογή το portupgrade αναζητά τους τοπικούς καταλόγους που ορίζονται στο PKG_PATH, ή ανακτά τα πακέτα από απομακρυσμένα sites εάν δεν βρεθούν τοπικά. Αν τα πακέτα δεν μπορούν να ανακτηθούν με τους παραπάνω τρόπους, το portupgrade θα χρησιμοποιήσει τα ports. Για να αποφύγετε εντελώς την χρήση των ports, καθορίστε την επιλογή -PP.

# portupgrade -PR gnome2

Για να ανακτήσετε απλώς τα distfiles (ή τα πακέτα, αν έχετε ορίσει την επιλογή -P) χωρίς να μεταγλωττίσετε ή να εγκαταστήσετε τίποτα, χρησιμοποιήστε το -F. Για περισσότερες πληροφορίες, δείτε το portupgrade(1).

6.5.4.3. Αναβαθμίζοντας Ports με το Portmanager

Το Portmanager είναι ένα ακόμα εργαλείο για εύκολη αναβάθμιση εγκατεστημένων ports. Διατίθεται από το ports-mgmt/portmanager port:

# cd /usr/ports/ports-mgmt/portmanager
# make install clean

Όλα τα εγκατεστημένα ports μπορούν να αναβαθμιστούν χρησιμοποιώντας αυτή την απλή εντολή:

# portmanager -u

Μπορείτε να προσθέσετε την επιλογή -ui στην παραπάνω εντολή (portmanager -u -ui) για να ερωτηθείτε να επιβεβαιώσετε κάθε βήμα που θα εκτελέσει το Portmanager. Το Portmanager μπορεί επίσης να χρησιμοποιηθεί για να εγκαταστήσετε νέα ports στο σύστημα. Σε αντίθεση με την εντολή make install clean, το Portmanager θα αναβαθμίσει όλες τις εξαρτήσεις πριν την μεταγλώττιση και εγκατάσταση του επιλεγμένου port.

# portmanager x11/gnome2

Αν υπάρχουν προβλήματα που σχετίζονται με τις εξαρτήσεις ενός επιλεγμένου port, μπορείτε να χρησιμοποιήσετε το Portmanager για να τις επανα-μεταγλωττίσει όλες με την σωστή σειρά. Μόλις τελειώσει με τις εξαρτήσεις, θα επανα-μεταγλωττίσει και το προβληματικό port.

# portmanager graphics/gimp -f

Για περισσότερες πληροφορίες δείτε τη σελίδα manual portmanager(1).

6.5.4.4. Αναβαθμίζοντας τα Ports μέσω του Portmaster

Το Portmaster είναι ένα ακόμα εργαλείο για την αναβάθμιση των εγκατεστημένων ports. Το Portmaster σχεδιάστηκε ώστε να χρησιμοποιεί τα εργαλεία που παρέχει το "βασικό" σύστημα (δεν εξαρτάται από άλλα ports) και χρησιμοποιεί τις πληροφορίες του /var/db/pkg για να καθορίσει ποια ports θα αναβαθμίσει. Είναι διαθέσιμο μέσω του port ports-mgmt/portmaster:

# cd /usr/ports/ports-mgmt/portmaster
# make install clean

Το Portmaster ομαδοποιεί τα ports σε τέσσερις κατηγορίες:

  • Root ports (δεν εξαρτώνται από άλλα, και ούτε άλλα εξαρτώνται από αυτά)

  • Trunk ports (δεν εξαρτώνται από άλλα, ωστόσο κάποια πακέτα εξαρτώνται από αυτά)

  • Branch ports (έχουν εξαρτήσεις και προς τις δύο κατευθύνσεις)

  • Leaf ports (εξαρτώνται από άλλα, αλλά όχι το αντίθετο)

Μπορείτε να δείτε μια λίστα όλων των εγκατεστημένων ports και να ψάξετε για ενημερωμένες εκδόσεις, χρησιμοποιώντας την επιλογή -L:

# portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
        ===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
        ===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
        ===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports

===>>> 137 total installed ports
        ===>>> 83 have new versions available

Μπορείτε να αναβαθμίσετε όλα τα εγκατεστημένα ports με την παρακάτω απλή εντολή:

# portmaster -a

Από προεπιλογή, το Portmaster θα δημιουργήσει αντίγραφο ασφαλείας του εγκατεστημένου πακέτου πριν το διαγράψει. Αν η εγκατάσταση της νέας έκδοσης είναι επιτυχής, το Portmaster θα σβήσει το αντίγραφο αυτό. Αν χρησιμοποιήσετε την επιλογή -b, το Portmaster δεν θα σβήσει αυτόματα το αντίγραφο. Αν χρησιμοποιήσετε την επιλογή -i, θα θέσετε το Portmaster σε διαδραστική λειτουργία, όπου θα σας ζητάει επιβεβαίωση πριν την αναβάθμιση κάθε port.

Αν αντιμετωπίσετε λάθη κατά τη διαδικασία της αναβάθμισης, μπορείτε να χρησιμοποιήσετε την επιλογή -f για να αναβαθμίσετε και να μεταγλωττίσετε ξανά όλα τα ports:

# portmaster -af

Μπορείτε επίσης να χρησιμοποιήσετε το Portmaster για να εγκαταστήσετε νέα ports στο σύστημα σας, αναβαθμίζοντας και όλες τις εξαρτήσεις τους πριν τη μεταγλώττιση και εγκατάσταση τους:

# portmaster shells/bash

Παρακαλούμε δείτε τη σελίδα manual του portmaster(8) για περισσότερες πληροφορίες.

6.5.5. Ports και Αποθηκευτικός Χώρος

Η Συλλογή των Ports καταναλώνει διαθέσιμο χώρο στο δίσκο με την πάροδο του χρόνου. Μετά την μεταγλώττιση και εγκατάσταση λογισμικού από τα ports, πρέπει πάντα να θυμάστε να καθαρίζετε τους προσωρινούς καταλόγους work χρησιμοποιώντας την εντολή make clean. Mπορείτε να καθαρίσετε όλη την Συλλογή των Ports με την ακόλουθη εντολή:

# portsclean -C

Με την πάροδο του χρόνου, θα συσσωρευτούν πολλά αρχεία διανομής πηγαίου κώδικα στον κατάλογο distfiles. Μπορείτε να τα αφαιρέσετε χειροκίνητα, ή μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να διαγράψετε όλα τα distfiles που δεν σχετίζονται πλέον με κανένα port:

# portsclean -D

Ή για να αφαιρέσετε όλα τα distfiles που δεν σχετίζονται με κανένα port που βρίσκεται εγκατεστημένο στο σύστημα σας:

# portsclean -DD

Το εργαλείο portsclean εγκαθίσταται ως μέρος του portupgrade.

Μην ξεχνάτε να αφαιρείτε τα εγκατεστημένα ports όταν δεν τα χρειάζεστε πλέον. Ένα καλό εργαλείο για να αυτοματοποιηθεί αυτή η εργασία, είναι το port ports-mgmt/pkg_cutleaves.

6.6. Ενέργειες μετά την Εγκατάσταση

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

Τα ακριβή βήματα που θα χρειαστούν για να ρυθμίσετε κάθε εφαρμογή, θα είναι προφανώς διαφορετικά. Όμως, αν μόλις εγκαταστήσατε μια νέα εφαρμογή και αναρωτιέστε "Τώρα τι;" οι παρακάτω συμβουλές μπορεί να σας βοηθήσουν:

  • Χρησιμοποιήστε το pkg_info(1) για να δείτε τι αρχεία εγκαταστάθηκαν, και που. Για παράδειγμα, αν μόλις εγκαταστήσατε το FooPackage version 1.0.0, τότε η εντολή:

    # pkg_info -L foopackage-1.0.0 | less

    θα σας δείξει όλα τα αρχεία που εγκαταστάθηκαν από αυτό το πακέτο. Προσέξτε τα αρχεία στον κατάλογο man/, που θα είναι σελίδες manual, τους κατάλογους etc/, όπου θα είναι τα αρχεία ρυθμίσεων, και το doc/, όπου θα βρίσκεται πιο περιεκτική τεκμηρίωση.

    Αν δεν είστε σίγουρος ποια έκδοση της εφαρμογής εγκαταστήσατε, μια εντολή όπως αυτή:

    # pkg_info | grep -i foopackage

    θα βρει όλα τα εγκατεστημένα πακέτα που έχουν το foopackage στο όνομα του πακέτου. Αντικαταστήστε το foopackage στην γραμμή εντολών με το πακέτο που αναζητάτε.

  • Μόλις δείτε που βρίσκονται τα manual pages της εφαρμογής, δείτε τα με την man(1). Όμοια, δείτε τα παραδείγματα των αρχείων ρύθμισης, και όποια άλλη πρόσθετη τεκμηρίωση διατίθεται.

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

    # pkg_info foopackage-1.0.0

    Αν υπάρχει γραμμή WWW:, θα πρέπει να έχει το URL για το web site της εφαρμογής.

  • Ports που πρέπει να ξεκινούν κατά την εκκίνηση (όπως διακομιστές Internet) συνήθως εγκαθιστούν ένα script στο /usr/local/etc/rc.d. Πρέπει να ελέγξετε το script για την ορθότητα του και να το τροποποιήσετε ή να το μετονομάσετε αν χρειάζεται. Δείτε το Εκκινώντας Υπηρεσίες για περισσότερες πληροφορίες.

6.7. Αντιμετωπίζοντας Χαλασμένα Ports

Αν έρθετε αντιμέτωπος με ένα port το οποίο δεν λειτουργεί, υπάρχουν κάποια πράγματα που μπορείτε να κάνετε:

  1. Δείτε αν εκκρεμεί κάποια διόρθωση για το port στο Problem Report database. Εάν ναι, μπορείτε να χρησιμοποιήσετε τη προτεινόμενη διόρθωση.

  2. Ζητήστε βοήθεια από τον συντηρητή του port. Πληκτρολογήστε make maintainer ή διαβάστε το Makefile για να βρείτε την διεύθυνση email του συντηρητή. Στο μήνυμα σας, θυμηθείτε να συμπεριλάβετε το όνομα και την έκδοση του port (στείλτε τη γραμμή $FreeBSD: από το Makefile) καθώς και την έξοδο του σφάλματος.

    Μερικά ports δεν συντηρούνται από κάποιο συγκεκριμένο άτομο, αλλά από κάποια mailing list. Πολλές, αν όχι όλες, από αυτές τις διευθύνσεις έχουν την μορφή freebsd-listname@FreeBSD.org. Παρακαλούμε να το έχετε υπόψη σας κατά τη διατύπωση των ερωτήσεων σας.

    Συγκεκριμένα, τα ports που φαίνονται ότι συντηρούνται από το ports@FreeBSD.org, δεν συντηρούνται από κανέναν στην πραγματικότητα. Διορθώσεις και υποστήριξη, αν υπάρχουν, έρχονται γενικά από την κοινότητα που συμμετέχει στην συγκεκριμένη mailing list. Χρειαζόμαστε πάντοτε περισσότερους εθελοντές!

    Αν δεν λάβετε απάντηση, μπορείτε να χρησιμοποιήσετε το send-pr(1) για να στείλετε μια αναφορά σφάλματος (δείτε το Γράφοντας Αναφορές Σφάλματος για το FreeBSD).

  3. Διορθώστε το! Το Porter’s Handbook περιέχει λεπτομερείς πληροφορίες για την υποδομή των "Ports" ώστε να μπορείτε να διορθώσετε το περιστασιακό προβληματικό port ή ακόμα και να δημιουργήσετε ένα δικό σας port!

  4. Ανακτήστε το πακέτο από ένα κοντινό σας FTP site. Η "κύρια" συλλογή πακέτων βρίσκεται στο ftp.FreeBSD.org, στον κατάλογο πακέτων. Πριν τη χρησιμοποιήσετε, ελέγξτε πρώτα το τοπικό σας mirror. Τα πακέτα είναι πιο σίγουρο ότι θα λειτουργήσουν, από το να προσπαθείτε να μεταγλωττίσετε τον πηγαίο κώδικα, και η διαδικασία τελειώνει πιο γρήγορα. Χρησιμοποιήστε το πρόγραμμα pkg_add(1) για να εγκαταστήσετε το πακέτο στο σύστημα σας.

Chapter 7. Το Σύστημα X Window

7.1. Σύνοψη

Το FreeBSD χρησιμοποιεί το X11 για να παρέχει στους χρήστες ένα ισχυρό γραφικό περιβάλλον εργασίας. Το περιβάλλον X11 είναι μια υλοποίηση ανοικτού κώδικα του συστήματος X Window που υλοποιείται στο Xorg (καθώς και σε άλλο λογισμικό που δεν περιγράφεται εδώ). Η προεπιλεγμένη και επίσημη διανομή του X11 είναι το Xorg, ο X11 server που αναπτύχθηκε από το X.Org Foundation με άδεια χρήσης αρκετά όμοια με αυτή που χρησιμοποιείται από το FreeBSD. Υπάρχουν επίσης διαθέσιμοι εμπορικοί X servers για το FreeBSD.

Για περισσότερες πληροφορίες που σχετίζονται με τις κάρτες γραφικών που υποστηρίζονται από το περιβάλλον X11, δείτε την δικτυακή τοποθεσία Xorg.

Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:

  • Τα διάφορα τμήματα του συστήματος X Window, και πως συνεργάζονται μεταξύ τους.

  • Πως να εγκαταστήσετε και να ρυθμίσετε το περιβάλλον X11.

  • Πως να εγκαταστήσετε και να ρυθμίσετε διαφορετικούς διαχειριστές παραθύρων (window managers).

  • Πως να χρησιμοποιήσετε TrueType® γραμματοσειρές στο X11.

  • Πως να ρυθμίσετε το σύστημα σας για σύνδεση (login) μέσω γραφικού περιβάλλοντος (XDM).

Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:

7.2. Κατανόηση του περιβάλλοντος X11

Η χρήση του περιβάλλοντος X11 για πρώτη φορά μπορεί να προκαλέσει μια μικρή ταραχή σε όποιον έχει συνηθίσει σε άλλα γραφικά περιβάλλοντα, όπως τα Microsoft® Windows® ή το Mac OS®.

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

7.2.1. Γιατί λέγεται X11 το περιβάλλον εργασίας;

Το X δεν είναι το πρώτο περιβάλλον εργασίας που γράφτηκε για συστήματα UNIX®, αλλά είναι σήμερα το πιο δημοφιλές. Η αρχική ομάδα ανάπτυξης του X είχε δουλέψει σε ένα άλλο σύστημα πριν γράψει το X. Το όνομα του παλιότερου συστήματος ήταν "W" (από την Αγγλική λέξη "window"). Το γράμμα X ήταν απλά το επόμενο γράμμα στο Λατινικό αλφάβητο.

Μπορείτε να αναφέρεσθε στο X με τα ονόματα "X", "X Window System", "X11", καθώς και με μερικούς άλλους όρους. Προσοχή όμως: κάποιοι άνθρωποι θεωρούν προσβλητικό τον όρο "X Windows". Για περισσότερες πληροφορίες σχετικά με αυτό, δείτε τη σελίδα manual X(7).

7.2.2. Το Μοντέλο Πελάτη/Διακομιστή των X11

Το περιβάλλον X11 έχει σχεδιαστεί από την αρχή έτσι ώστε να έχει εγγενή δικτυακή υποστήριξη, με βάση ένα μοντέλο "πελάτη-διακομιστή".

Στο μοντέλο λειτουργίας του X11, ο "διακομιστής X" εκτελείται στον υπολογιστή στον οποίο έχει συνδεθεί το πληκτρολόγιο, η οθόνη και το ποντίκι. Ο διακομιστής X είναι υπεύθυνος για τη διαχείριση της οθόνης, της εισόδου από το πληκτρολόγιο, το ποντίκι, και άλλες συσκευές εισόδου ή εξόδου (για παράδειγμα, μια "ταμπλέτα" μπορεί να χρησιμοποιείται ως συσκευή εισόδου και ένας video-προβολέας ως εναλλακτική συσκευή εξόδου). Κάθε εφαρμογή X (π.χ. το XTerm ή το getenv(3)) είναι ένας "πελάτης". Ένας πελάτης στέλνει μηνύματα στον διακομιστή όπως "Παρακαλώ σχεδίασε ένα παράθυρο σε αυτές τις συντεταγμένες", και ο διακομιστής στέλνει πίσω μηνύματα όπως "Ο χρήστης μόλις πάτησε το πλήκτρο OK".

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

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

Είναι σημαντικό να θυμάστε ότι ο διακομιστής X είναι το μηχάνημα με την οθόνη και το πληκτρολόγιο, και οι πελάτες X είναι τα προγράμματα που εμφανίζουν τα παράθυρα.

Δεν υπάρχει τίποτα στο πρωτόκολλο που να αναγκάζει τα μηχανήματα των πελατών και του διακομιστή να εκτελούνται στο ίδιο λειτουργικό σύστημα, ή ακόμη να εκτελούνται στον ίδιο τύπο υπολογιστή. Είναι απόλυτα εφικτό να εκτελείται ένας διακομιστής X στα Microsoft® Windows® ή στο Mac OS® της Apple, και υπάρχουν διαθέσιμες διάφορες ελεύθερες και εμπορικές εφαρμογές που κάνουν ακριβώς αυτό.

7.2.3. Ο Διαχειριστής Παραθύρων

Η φιλοσοφία σχεδιασμού του X μοιάζει πολύ με την φιλοσοφία σχεδιασμού του UNIX®, "εργαλεία, όχι πολιτική". Αυτό σημαίνει ότι το X δεν προσπαθεί να υπαγορεύσει πως θα υλοποιηθεί μια εργασία. Αντίθετα, παρέχονται εργαλεία στον χρήστη, και είναι δική του ευθύνη να αποφασίσει πως θα τα χρησιμοποιήσει.

Αυτή η φιλοσοφία επεκτείνεται στο ότι το X δεν υπαγορεύει πως πρέπει να εμφανίζονται τα παράθυρα στην οθόνη, πως θα μετακινηθούν με το ποντίκι, τι συνδυασμοί πλήκτρων πρέπει να χρησιμοποιηθούν για να μετακινηθούμε μεταξύ των παραθύρων (π.χ., Alt+Tab, στην περίπτωση των Microsoft® Windows®), πώς πρέπει να μοιάζουν οι μπάρες τίτλων σε κάθε παράθυρο, αν θα έχουν ή όχι πλήκτρα κλεισίματος πάνω τους, κ.o.κ.

Αντίθετα, το X αναθέτει αυτήν την ευθύνη σε μία εφαρμογή που ονομάζεται "Διαχειριστής Παραθύρων". Υπάρχουν πάρα πολλοί διαχειριστές παραθύρων διαθέσιμοι για το περιβάλλον X. Ορισμένοι από αυτούς είναι οι: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker, και πολλοί άλλοι. Κάθε ένας από αυτούς τους διαχειριστές παραθύρων έχει διαφορετική αίσθηση και εμφάνιση. Μερικοί από αυτούς υποστηρίζουν "εικονικές επιφάνειες εργασίας", μερικοί επιτρέπουν προσαρμοσμένους συνδυασμούς πλήκτρων για την διαχείριση της επιφάνειας εργασίας, μερικοί έχουν ένα πλήκτρο "Start" ή κάτι παρόμοιο, μερικοί υποστηρίζουν "θέματα" (themes), επιτρέποντας την ολοκληρωτική αλλαγή εμφάνισης με την εφαρμογή ενός νέου θέματος. Οι διαχειριστές παραθύρων που έχουμε αναφέρει ως τώρα, και πολλοί άλλοι, είναι διαθέσιμοι στην κατηγορία x11-wm της Συλλογής των Ports.

Επιπλέον, τα δύο πιο δημοφιλή ολοκληρωμένα περιβάλλοντα εργασίας, το KDE και το GNOME, έχουν τον δικό τους διαχειριστή παραθύρων που είναι ενσωματωμένος με το υπόλοιπο περιβάλλον εργασίας.

Κάθε διαχειριστής παραθύρων έχει επίσης και διαφορετικό μηχανισμό ρύθμισης: μερικοί ρυθμίζονται συμπληρώνοντας με χειροκίνητο τρόπο ένα αρχείο ρυθμίσεων, άλλοι διαθέτουν γραφικά εργαλεία για τις περισσότερες ρυθμίσεις. Υπάρχει ακόμα κι ένας (Sawfish) που έχει αρχείο ρυθμίσεων γραμμένο σε μια διάλεκτο της γλώσσας Lisp.

Πολιτική Εστίασης

Άλλο ένα θέμα για το οποίο είναι υπεύθυνος ο διαχειριστής παραθύρων είναι η "πολιτική εστίασης" του ποντικιού. Κάθε σύστημα παραθύρων χρειάζεται κάποιο τρόπο επιλογής του παραθύρου που θα δέχεται αυτά που πληκτρολογούνται, και θα πρέπει να φαίνεται κάπως ότι αυτό το παράθυρο είναι ενεργό.

Μία γνωστή πολιτική εστίασης λέγεται "click-to-focus". Αυτό το μοντέλο χρησιμοποιείται στα Microsoft® Windows®, όπου ένα παράθυρο γίνεται ενεργό αν δεχτεί ένα πάτημα του ποντικιού.

Το X δεν υποστηρίζει καμία συγκεκριμένη πολιτική εστίασης. Αντίθετα, ο διαχειριστής παραθύρων ελέγχει ποίο παράθυρο έχει εστιαστεί κάθε στιγμή. Διαφορετικοί διαχειριστές παραθύρων υποστηρίζουν διαφορετικές μεθόδους εστίασης. Όλοι τους υποστηρίζουν την μέθοδο click to focus, και οι περισσότεροι από αυτούς υποστηρίζουν και αρκετές άλλες.

Οι πιο δημοφιλείς μέθοδοι εστίασης είναι:

focus-follows-mouse

Το παράθυρο που βρίσκεται κάτω από τον δείκτη του ποντικιού είναι το παράθυρο που έχει την εστίαση. Το ενεργό παράθυρο δεν είναι απαραίτητο να είναι αυτό που βρίσκεται πάνω από όλα τα άλλα. Η εστίαση αλλάζει με την στόχευση ενός άλλου παραθύρου, χωρίς να είναι απαραίτητο το κλικ πάνω του.

sloppy-focus

Αυτή η πολιτική είναι μια μικρή επέκταση του focus-follows-mouse. Με την πολιτική εστίασης focus-follows-mouse, αν το ποντίκι βρεθεί πάνω από το αρχικό (root) παράθυρο (ή το παρασκήνιο) δεν υπάρχει εστίαση σε κανένα παράθυρο, και ότι πληκτρολογείται απλώς χάνεται. Με τη sloppy-focus, η εστίαση αλλάζει μόνο αν ο δείκτης βρεθεί πάνω από ένα νέο παράθυρο, και όχι όταν φεύγει από το τρέχον παράθυρο.

click-to-focus

Το ενεργό παράθυρο επιλέγεται με κλικ του ποντικιού. Το παράθυρο τότε "ανασηκώνεται", και εμφανίζεται μπροστά από όλα τα άλλα παράθυρα. Ότι πληκτρολογηθεί θα οδηγηθεί σε αυτό το παράθυρο, ακόμα και αν ο δείκτης μετακινηθεί σε άλλο παράθυρο.

Πολλοί διαχειριστές παραθύρων υποστηρίζουν ακόμα πιο εξωτικές πολιτικές εστίασης, καθώς και παραλλαγές των παραπάνω. Συμβουλευθείτε την τεκμηρίωση του εκάστοτε διαχειριστή παραθύρων για περισσότερες λεπτομέρειες.

7.2.4. Γραφικά Στοιχεία Διεπαφής (Widgets)

Η προσέγγιση του X να διαθέτει εργαλεία και όχι να υπαγορεύει τον τρόπο χρήσης τους, διευρύνεται και στα γραφικά στοιχεία διεπαφής (widgets) που φαίνονται στην οθόνη σε κάθε εφαρμογή.

Τα "widgets" είναι ένας όρος για όλα τα αντικείμενα στο περιβάλλον του χρήστη που μπορεί κάποιος να κάνει κλικ ή να τα χειριστεί με κάποιον τρόπο: πλήκτρα, πλαίσια επιλογής, πλήκτρα εναλλαγής, εικονίδια, λίστες, και άλλα. Τα Microsoft® Windows® τα ονομάζουν "controls (χειριστήρια)".

Τα Microsoft® Windows® και το Mac OS® της Apple έχουν και τα δύο πολύ αυστηρή πολιτική γραφικών στοιχείων διεπαφής. Οι προγραμματιστές εφαρμογών πρέπει υποτίθεται να εξασφαλίσουν ότι οι εφαρμογές τους θα έχουν κοινή αίσθηση και εμφάνιση (look and feel). Στο X, δεν θεωρήθηκε απαραίτητο να γίνει επιβολή ενός συγκεκριμένου στυλ γραφικών, ή να τεθούν κάποια υποχρεωτικά γραφικά στοιχεία διεπαφής.

Σαν αποτέλεσμα, μην περιμένετε τις εφαρμογές για X να έχουν κοινή εμφάνιση. Υπάρχουν διάφορες δημοφιλείς συλλογές γραφικών στοιχείων διεπαφής και παραλλαγές τους, συμπεριλαμβανομένης και της αυθεντικής Athena συλλογής γραφικών στοιχείων διεπαφής του MIT, Motif® (παραλλαγή της οποίας είναι και η συλλογή γραφικών στοιχείων διεπαφής των Microsoft® Windows®, με λοξές γωνίες και τρεις διαβαθμίσεις του γκρι), το OpenLook, και άλλα.

Οι περισσότερες νέες X εφαρμογές σήμερα χρησιμοποιούν μια συλλογή γραφικών στοιχείων διεπαφής με μοντέρνα εμφάνιση, είτε το Qt, που χρησιμοποιείται από το KDE, είτε το GTK+, που χρησιμοποιείται από το GNOME. Από αυτή την άποψη, υπάρχει κάποια σύγκλιση στην εμφάνιση του UNIX® desktop, το οποίο οπωσδήποτε κάνει τα πράγματα ευκολότερα για τον νέο χρήστη.

7.3. Εγκατάσταση του X11

Το Xorg είναι η προεπιλεγμένη υλοποίηση X11 για το FreeBSD. Το Xorg είναι ο διακομιστής Χ της υλοποίησης X Window System του X.Org Foundation, και είναι ανοικτού κώδικα. Ο Xorg είναι βασισμένος στον κώδικα του XFree86™ 4.4RC2 και του X11R6.6. Η έκδοση του Xorg που διατίθεται από την Συλλογή των Ports του FreeBSD είναι η 7.7.

Για να μεταγλωττίσετε και να εγκαταστήσετε το Xorg από την Συλλογή των Ports:

# cd /usr/ports/x11/xorg
# make install clean

Για να μεταγλωττίσετε ολόκληρο το Xorg σιγουρευθείτε ότι έχετε το λιγότερο 4 GB ελεύθερο χώρο διαθέσιμο.

Εναλλακτικά, το X11 μπορεί να εγκατασταθεί άμεσα από πακέτα. Υπάρχουν διαθέσιμα έτοιμα πακέτα του Χ11 για χρήση με το εργαλείο pkg_add(1). Αν χρησιμοποιήσετε τη δυνατότητα του pkg_add(1) για λήψη μέσω δικτύου, δεν θα πρέπει στην γραμμή εντολών να δώσετε τον αριθμό έκδοσης (version number) του πακέτου. Το pkg_add(1) θα "κατεβάσει" αυτόματα την τελευταία έκδοση της εφαρμογής.

Έτσι, για να γίνει η λήψη και η εγκατάσταση του Xorg, απλώς εκτελέστε:

# pkg_add -r xorg

Τα παραπάνω παραδείγματα θα εγκαταστήσουν ολόκληρη την διανομή X11 που περιλαμβάνει διακομιστές, πελάτες, γραμματοσειρές κλπ. Διατίθενται επίσης ξεχωριστά, τμηματικά πακέτα και ports για το X11.

Για να εγκαταστήσετε την ελάχιστη δυνατή διανομή X11, μπορείτε εναλλακτικά να χρησιμοποιήσετε το port x11/xorg-minimal.

Το υπόλοιπο του κεφαλαίου θα σας εξηγήσει πως ρυθμίζεται το X11, και πως να στήσετε ένα παραγωγικό desktop περιβάλλον.

7.4. Ρύθμιση του X11

7.4.1. Πριν ξεκινήσετε

Στις περισσότερες περιπτώσεις, το Χ11 ρυθμίζεται αυτόματα. Αν το σύστημα σας είναι παλιό ή διαθέτει εξεζητημένα εξαρτήματα, θα είναι χρήσιμο να μαζέψετε κάποιες επιπλέον πληροφορίες σχετικά με το υλικό σας πριν ξεκινήσετε τη ρύθμιση.

  • Συχνότητες λειτουργίας της οθόνης σας

  • Chipset της κάρτας γραφικών

  • Μνήμη της κάρτας γραφικών

Η ανάλυση της οθόνης και ο ρυθμός ανανέωσης προσδιορίζονται από τις οριζόντιες και κατακόρυφες συχνότητες συγχρονισμού της οθόνης. Σχεδόν όλες οι οθόνες υποστηρίζουν αυτόματη ανίχνευση αυτών των τιμών. Κάποια μοντέλα δεν παρέχουν αυτές τις τιμές τις οποίες θα πρέπει να βρείτε στο εγχειρίδιο της οθόνης ή στην ιστοσελίδα του κατασκευαστή.

Το chipset (ολοκληρωμένο κύκλωμα) της κάρτας γραφικών ανιχνεύεται επίσης αυτόματα και χρησιμοποιείται για να επιλεγεί το κατάλληλο πρόγραμμα οδήγησης. Είναι ωστόσο χρήσιμο να γνωρίζετε το μοντέλο για την περίπτωση που η αυτόματη ανίχνευση δεν είναι επιτυχής.

Η μνήμη της κάρτας γραφικών καθορίζει την ανάλυση και το βάθος χρώματος στο οποίο μπορεί να δουλέψει το σύστημα.

7.4.2. Ρύθμιση του X11

Το Xorg χρησιμοποιεί το HAL για την αυτόματη ανίχνευση του πληκτρολογίου και του ποντικιού. Τα ports sysutils/hal και devel/dbus εγκαθίστανται ως εξαρτήσεις του x11/xorg, αλλά θα πρέπει να ενεργοποιηθούν με τις ακόλουθες εγγραφές στο /etc/rc.conf:

hald_enable="YES"
dbus_enable="YES"

Θα πρέπει να ξεκινήσετε τις υπηρεσίες αυτές (είτε χειροκίνητα, είτε κάνοντας επανεκκίνηση) πριν συνεχίσετε με τη ρύθμιση ή την χρήση του Xorg.

Το Xorg μπορεί συχνά να λειτουργήσει χωρίς καμιά επιπλέον ρύθμιση, γράφοντας απλώς στη γραμμή εντολών:

% startx

Σε κάποιες περιπτώσεις, η αυτόματη ρύθμιση μπορεί να μη λειτουργήσει σωστά, ή να μη ρυθμίσει τις συσκευές ακριβώς όπως επιθυμείτε. Στις περιπτώσεις αυτές, θα χρειαστεί να κάνετε χειροκίνητες ρυθμίσεις.

Κάποια γραφικά περιβάλλοντα, όπως το GNOME το KDE ή το XFCE, διαθέτουν εργαλεία που επιτρέπουν στο χρήστη να ρυθμίσει με εύκολο τρόπο διάφορες παραμέτρους της οθόνης, όπως η ανάλυση. Αν η προεπιλεγμένη ρύθμιση δεν είναι αποδεκτή, και σκοπεύετε να εγκαταστήσετε κάποιο από αυτά τα περιβάλλοντα, μπορείτε να συνεχίσετε με την εγκατάσταση του, και να ολοκληρώσετε τις ρυθμίσεις σας χρησιμοποιώντας το κατάλληλο γραφικό εργαλείο.

Το πρώτο βήμα είναι η δημιουργία ενός αρχικού αρχείου ρυθμίσεων. Ως root, απλώς εκτελέστε:

# Xorg -configure

Αυτό θα δημιουργήσει ένα πρότυπο αρχείο ρυθμίσεων του X11 στον κατάλογο /root με το όνομα xorg.conf.new (είτε χρησιμοποιήσετε το su(1) είτε συνδεθείτε απευθείας, η μεταβλητή καταλόγου $HOME αλλάζει δείχνοντας τον κατάλογο του root). Το X11 θα προσπαθήσει να ανιχνεύσει το υποσύστημα γραφικών του συστήματος και να δημιουργήσει ένα αρχείο ρυθμίσεων που θα φορτώνει τους σωστούς οδηγούς συσκευών για το υλικό που ανιχνεύθηκε στο σύστημα σας.

Το επόμενο βήμα είναι ο έλεγχος των υπάρχοντων ρυθμίσεων για να επιβεβαιώσετε ότι το Xorg λειτουργεί με το υποσύστημα γραφικών του συστήματος σας. Πληκτρολογήστε:

# Xorg -config xorg.conf.new -retro

Εάν εμφανιστεί ένα μαύρο και γκρι πλέγμα και ένας δείκτης ποντικιού με μορφή X, η ρύθμιση ήταν επιτυχής. Για να τερματίσετε τη δοκιμή, μεταβείτε στην εικονική κονσόλα από την οποία την ξεκινήσατε, πιέζοντας Ctrl+Alt+Fn (F1 για την πρώτη εικονική κονσόλα) και πιέστε Ctrl+C.

Μπορείτε επίσης να χρησιμοποιήσετε τον συνδυασμό πλήκτρων Ctrl+Alt+Backspace για τον τερματισμό του προγράμματος. Για να τον ενεργοποιήσετε, δώστε την παρακάτω εντολή σε κάποιο τερματικό του X:

% setxkbmap -option terminate:ctrl_alt_bksp

Εναλλακτικά, δημιουργήστε ένα αρχείο ρυθμίσεων πληκτρολογίου για το hald με την ονομασία x11-input.fdi και αποθηκεύστε το στον κατάλογο /usr/local/etc/hal/fdi/policy. Το αρχείο αυτό θα πρέπει να περιέχει τις παρακάτω γραμμές:

<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	  <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
    </match>
  </device>
</deviceinfo>

Θα χρειαστεί να επανεκκινήσετε το μηχάνημα σας για να εξαναγκάσετε το hald να διαβάσει αυτό το αρχείο.

Θα πρέπει επίσης να προσθέσετε την παρακάτω γραμμή στο αρχείο xorg.conf.new, στην ενότητα ServerLayout ή ServerFlags:

Option	"DontZap"	"off"

Αν το ποντίκι δεν λειτουργεί, θα χρειαστεί να το ρυθμίσετε πριν συνεχίσετε. Δείτε το Ρυθμίσεις Ποντικιού (Mouse Settings) στο κεφάλαιο εγκατάστασης του FreeBSD. Επιπρόσθετα, στις πρόσφατες εκδόσεις του Xorg, οι ενότητες InputDevice στο xorg.conf αγνοούνται καθώς γίνεται χρήση των συσκευών που ανιχνεύθηκαν αυτόματα. Για να επαναφέρετε την παλιά συμπεριφορά, προσθέστε την παρακάτω γραμμή στην ενότητα ServerLayout ή ServerFlags του αρχείου ρυθμίσεων:

Option "AutoAddDevices" "false"

Θα μπορείτε έπειτα να ρυθμίσετε τις συσκευές εισόδου όπως στις προηγούμενες εκδόσεις του Xorg, χρησιμοποιώντας και όποιες άλλες επιλογές χρειάζεστε (π.χ. εναλλαγή πληκτρολογίου).

Όπως εξηγήσαμε και προηγουμένως, ο δαίμονας hald αναλαμβάνει να ανιχνεύσει αυτόματα το πληκτρολόγιο σας. Υπάρχει περίπτωση να μην γίνει σωστή ανίχνευση του μοντέλου ή της διάταξης, ωστόσο κάποια γραφικά περιβάλλοντα όπως το GNOME το KDE και το Xfce παρέχουν τα δικά τους εργαλεία για τη ρύθμιση του. Μπορείτε όμως να ρυθμίσετε τις ιδιότητες του πληκτρολογίου και απευθείας, είτε μέσω του βοηθητικού προγράμματος setxkbmap(1) είτε με την προσθήκη ενός κανόνα στο hald.

Για παράδειγμα, αν κάποιος θέλει να χρησιμοποιήσει ένα πληκτρολόγιο 102 πλήκτρων με γαλλική διάταξη, θα πρέπει να δημιουργήσει ένα αρχείο ρυθμίσεων για το hald με το όνομα x11-input.fdi και να το αποθηκεύσει στον κατάλογο /usr/local/etc/hal/fdi/policy. Το αρχείο αυτό θα περιέχει τις παρακάτω γραμμές:

<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	  <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
	  <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
    </match>
  </device>
</deviceinfo>

Αν το αρχείο αυτό υπάρχει ήδη, απλώς αντιγράψτε τις παραπάνω γραμμές μέσα στο υπάρχον περιεχόμενο.

Θα πρέπει να επανεκκινήσετε το μηχάνημα σας για να εξαναγκάσετε το hald να διαβάσει το αρχείο.

Μπορείτε επίσης να κάνετε την ίδια ρύθμιση μέσα από ένα τερματικό στα Χ ή ακόμα και από ένα script, εκτελώντας την παρακάτω εντολή:

% setxkbmap -model pc102 -layout fr

Μπορείτε να βρείτε τις διαθέσιμες επιλογές πληκτρολογίων και διατάξεων στο αρχείο /usr/local/shared/X11/xkb/rules/base.lst.

Έπειτα, προσαρμόστε το αρχείο ρυθμίσεων xorg.conf.new στις προτιμήσεις σας. Ανοίξτε το με έναν συντάκτη κειμένου όπως ο emacs(1) ή ο ee(1). Αν η οθόνη σας είναι παλιό ή εξεζητημένο μοντέλο και δεν υποστηρίζει αυτόματη ανίχνευση των συχνοτήτων λειτουργίας της, μπορείτε να τις καταχωρίσετε χειροκίνητα στο xorg.conf.new στην ενότητα "Monitor":

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    30-107
        VertRefresh  48-120
EndSection

Οι περισσότερες οθόνες υποστηρίζουν αυτόματη ανίχνευση των συχνοτήτων λειτουργίας, καθιστώντας έτσι αχρείαστη τη χειροκίνητη καταχώριση αυτών των τιμών. Για τις λίγες περιπτώσεις που δε υποστηρίζεται η αυτόματη ανίχνευση, συνίσταται να χρησιμοποιήσετε τις τιμές που δίνει ο κατασκευαστής για να αποφύγετε πιθανές βλάβες στο υλικό σας.

Το X επιτρέπει τη χρήση των δυνατοτήτων DPMS (Energy Star) σε οθόνες που υποστηρίζουν την αντίστοιχη λειτουργία. Το πρόγραμμα xset(1) ελέγχει τους χρόνους και μπορεί να επιβάλλει τις καταστάσεις standby, suspend, ή off. Αν θέλετε να ενεργοποιήσετε τις δυνατότητες DPMS της οθόνης σας, πρέπει να προσθέσετε την ακόλουθη γραμμή στο Section monitor:

        Option       "DPMS"

Όσο το αρχείο ρυθμίσεων xorg.conf.new είναι ακόμα ανοικτό σε έναν συντάκτη κειμένου, επιλέξτε την ανάλυση και το βάθος χρωμάτων που επιθυμείτε. Αυτό καθορίζεται στο Section "Screen":

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection

Η μεταβλητή DefaultDepth ορίζει το προεπιλεγμένο βάθος χρώματος που θα χρησιμοποιηθεί. Μπορείτε να την παρακάμψετε με τον διακόπτη -depth στη γραμμή εντολών του Xorg(1). Η επιλογή Modes ορίζει την ανάλυση με την οποία θα λειτουργεί η οθόνη σε ένα συγκεκριμένο βάθος χρωμάτων. Προσέξτε ότι υποστηρίζονται μόνο κανονικές καταστάσεις VESA, όπως ορίζονται από το υποσύστημα γραφικών του συστήματος. Στο παραπάνω παράδειγμα, το καθορισμένο βάθος χρωμάτων είναι εικοσιτέσσερα bits ανά pixel. Σε αυτό το βάθος χρωμάτων, η αποδεκτή ανάλυση είναι 1024Χ768 pixels.

Τέλος, αποθηκεύστε το αρχείο ρυθμίσεων και ελέγξτε το με την μέθοδο ελέγχου που εξηγήσαμε παραπάνω.

Ένα από τα εργαλεία που μπορεί να σας βοηθήσουν κατά την διαδικασία επίλυσης προβλημάτων, είναι τα αρχεία X11 log, που περιέχουν πληροφορίες για κάθε συσκευή που επικοινωνεί με τον διακομιστή X11. Τα αρχεία Xorg log ονομάζονται με την μορφή /var/log/Xorg.0.log. Το ακριβές όνομα ενός log μπορεί να είναι Xorg.0.log έως Xorg.8.log και πάει λέγοντας.

Αν όλα είναι καλά, το αρχείο ρυθμίσεων πρέπει να τοποθετηθεί σε μια κοινή τοποθεσία ώστε να εντοπίζεται από το Xorg(1). Αυτή συνήθως είναι η /etc/X11/xorg.conf ή /usr/local/etc/X11/xorg.conf.

# cp xorg.conf.new /etc/X11/xorg.conf

Η διαδικασία ρύθμισης του X11 έχει τώρα ολοκληρωθεί. Το Xorg μπορείτε να το ξεκινήσετε με το βοηθητικό πρόγραμμα startx(1). Ο διακομιστής X11 μπορεί επίσης να εκκινήσει με τη βοήθεια του xdm(1).

7.4.3. Εξειδικευμένα Θέματα Ρυθμίσεων

7.4.3.1. Ρυθμίσεις για τα Intel® i810 Graphics Chipsets

Για να χρησιμοποιήσετε κάρτα βασισμένη στα Intel® i810 integrated chipsets, απαιτείται το agpgart, η διεπαφή προγραμματισμού των X11 για το AGP. Δείτε την σελίδα manual του προγράμματος οδήγησης agp(4) για περισσότερες πληροφορίες.

Mε αυτό τον τρόπο, η ρύθμιση του υλικού σας θα μπορεί να γίνει όπως και σε κάθε άλλη κάρτα γραφικών. Προσοχή, σε συστήματα χωρίς ενσωματωμένο τον οδηγό agp(4), ο οδηγός δεν θα φορτωθεί με την εντολή kldload(8). Ο οδηγός αυτός πρέπει να βρίσκεται στον πυρήνα κατά την εκκίνηση, είτε στατικά μεταγλωττισμένος, είτε με χρήση του /boot/loader.conf.

7.4.3.2. Προσθέτοντας μια Widescreen Επίπεδη Οθόνη

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

Οι τρέχουσες αναλύσεις widescreen (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, κ.α.) υποστηρίζουν formats και aspect ratios (αναλογίες) 16:10 και 16:9 που μπορεί να δημιουργήσουν προβλήματα. Παραδείγματα μερικών κοινών αναλύσεων για αναλογία 16:10 είναι τα:

  • 2560x1600

  • 1920x1200

  • 1680x1050

  • 1440x900

  • 1280x800

Κάποια στιγμή, η ρύθμιση θα γίνεται πολύ απλά προσθέτοντας την ανάλυση ως ένα πιθανό Mode στο Section "Screen" όπως εδώ:

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24
SubSection "Display"
	Viewport  0 0
	Depth     24
	Modes     "1680x1050"
EndSubSection
EndSection

Το Xorg είναι αρκετά έξυπνο ώστε να ανακτήσει τις πληροφορίες της ανάλυσης της widescreen οθόνης μέσω των πληροφοριών I2C/DDC, γνωρίζοντας έτσι τι μπορεί να χειριστεί η οθόνη όσο αφορά τις συχνότητες και τις αναλύσεις.

Αν αυτές οι ModeLines δεν υπάρχουν στους οδηγούς, μπορεί να χρειαστεί να τις δώσετε εσείς στο Xorg. Χρησιμοποιώντας το /var/log/Xorg.0.log μπορείτε να ανακτήσετε αρκετές πληροφορίες ώστε να δημιουργήσετε μόνοι σας ένα ModeLine που να λειτουργεί. Απλώς αναζητήστε πληροφορίες που θα μοιάζουν με αυτό:

(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
(II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

Αυτές ονομάζονται πληροφορίες EDID. Η δημιουργία ενός ModeLine από αυτές, γίνεται βάζοντας απλώς τους αριθμούς στη σωστή σειρά:

ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

Τελικά, το ModeLine στο Section "Monitor" στο παράδειγμα μας θα μοιάζει με αυτό:

Section "Monitor"
Identifier      "Monitor1"
VendorName      "Bigname"
ModelName       "BestModel"
ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option          "DPMS"
EndSection

Τώρα που έχετε τελειώσει με αυτά τα απλά βήματα, το X θα πρέπει να λειτουργήσει στη νέα widescreen οθόνη σας.

7.5. Χρήση Γραμματοσειρών στο X11

7.5.1. Γραμματοσειρές τύπου Type1

Οι προκαθορισμένες γραμματοσειρές που συνοδεύουν το X11 δεν είναι ιδανικές για εφαρμογές επιτραπέζιας τυπογραφίας. Οι μεγάλες γραμματοσειρές παρουσίασης φαίνονται οδοντωτές και ερασιτεχνικές, και οι μικρές γραμματοσειρές στο getenv(3) είναι σχεδόν ακατάληπτες. Ευτυχώς όμως, υπάρχουν διαθέσιμες αρκετές, υψηλής ποιότητας γραμματοσειρές Type1 (PostScript®) που μπορούν να χρησιμοποιηθούν άμεσα από το X11. Για παράδειγμα, η συλλογή γραμματοσειρών URW (x11-fonts/urwfonts) περιέχει εκδόσεις υψηλής ποιότητας των συνηθισμένων type1 γραμματοσειρών (Times Roman™, Helvetica™, Palatino™ και άλλες). Η συλλογή Freefonts (x11-fonts/freefonts) περιέχει πολλές περισσότερες γραμματοσειρές, αλλά οι περισσότερες από αυτές είναι για λογισμικό γραφικών όπως το Gimp, και δεν είναι κατάλληλες για γραμματοσειρές οθόνης. Ακόμη, το X11 μπορεί με ελάχιστο κόπο να ρυθμιστεί ώστε να χρησιμοποιεί TrueType® γραμματοσειρές. Για περισσότερες λεπτομέρειες, δείτε την σελίδα manual X(7) ή το τμήμα σχετικά με τις γραμματοσειρές TrueType®.

Για να εγκαταστήσετε τις παραπάνω συλλογές γραμματοσειρών Type1 από την Συλλογή των Ports, εκτελέστε τις παρακάτω εντολές:

# cd /usr/ports/x11-fonts/urwfonts
# make install clean

Με παρόμοιο τρόπο μπορείτε να εγκαταστήσετε και την freefont ή άλλες συλλογές. Για να ανιχνεύσει ο X server αυτές τις γραμματοσειρές, προσθέστε την κατάλληλη γραμμή στο αρχείο ρυθμίσεων του (/etc/X11/xorg.conf):

FontPath "/usr/local/lib/X11/fonts/URW/"

Εναλλακτικά, εκτελέστε στην γραμμή εντολών μιας συνόδου X:

% xset fp+ /usr/local/lib/X11/fonts/URW
% xset fp rehash

Αυτό θα λειτουργήσει, αλλά όταν τερματίσει η σύνοδος X, οι ρυθμίσεις θα χαθούν, εκτός αν προστεθούν στο αρχείο εκκίνησης (το ~/.xinitrc για μία συνηθισμένη σύνοδο μέσω startx, η το ~/.xsession αν συνδέεστε μέσω ενός γραφικού διαχειριστή σύνδεσης όπως ο XDM). Ένας ακόμη τρόπος είναι να χρησιμοποιήσετε το αρχείο /usr/local/etc/fonts/local.conf: δείτε το τμήμα anti-aliasing (εξομάλυνσης).

7.5.2. Γραμματοσειρές TrueType®

Το Xorg έχει ενσωματωμένη υποστήριξη απεικόνισης γραμματοσειρών TrueType®. Υπάρχουν δύο διαφορετικά modules (αρθρώματα) που μπορούν να ενεργοποιήσουν αυτήν την λειτουργία. Σε αυτό το παράδειγμα χρησιμοποιείται το freetype module επειδή είναι πιο συνεργάσιμο με τα άλλα back-ends απεικόνισης γραμματοσειρών. Για να ενεργοποιήσετε το freetype module, απλώς προσθέστε την παρακάτω γραμμή στο τμήμα "Module" του αρχείου /etc/X11/xorg.conf.

Load  "freetype"

Τώρα, δημιουργήστε έναν κατάλογο για τις γραμματοσειρές TrueType® (για παράδειγμα, /usr/local/lib/X11/fonts/TrueType) και αντιγράψτε όλες τις γραμματοσειρές TrueType® σε αυτόν. Προσέξτε ότι οι γραμματοσειρές TrueType® δεν μπορούν να είναι από ένα σύστημα Macintosh® πρέπει να είναι σε μορφή UNIX®/MS-DOS®/Windows® για να λειτουργούν στο X11. Μόλις αντιγραφούν τα αρχεία στον κατάλογο, χρησιμοποιήστε το ttmkfdir για να δημιουργήσετε το αρχείο fonts.dir, ώστε ο X font renderer να γνωρίζει την ύπαρξη των νέων αυτών αρχείων. Το ttmkfdir διατίθεται από την Συλλογή των Ports του FreeBSD ως x11-fonts/ttmkfdir.

# cd /usr/local/lib/X11/fonts/TrueType
# ttmkfdir -o fonts.dir

Τώρα, πρoσθέστε τον κατάλογο TrueType® στη διαδρομή των fonts. Αυτό γίνεται με τον ίδιο τρόπο που περιγράψαμε παραπάνω στις Type1 γραμματοσειρές, χρησιμοποιώντας το

% xset fp+ /usr/local/lib/X11/fonts/TrueType
% xset fp rehash

ή απλά προσθέστε μια γραμμή FontPath στο αρχείο xorg.conf.

Αυτό ήταν. Τώρα ο getenv(3), το Gimp, το StarOffice™, και όλες οι άλλες εφαρμογές X πρέπει να αναγνωρίζουν τις εγκαταστημένες TrueType® γραμματοσειρές. Πολύ μικρές γραμματοσειρές (όπως αυτές που φαίνονται στο κείμενο μιας ιστοσελίδας σε υψηλή ανάλυση) και πολύ μεγάλες γραμματοσειρές (στο StarOffice™) θα φαίνονται τώρα πολύ καλύτερα.

7.5.3. Anti-Aliased Γραμματοσειρές

Όλες οι γραμματοσειρές X11 που βρίσκονται στο /usr/local/lib/X11/fonts/ και το ~/.fonts/ είναι αυτόματα διαθέσιμες για anti-aliasing σε εφαρμογές Xft-aware, συμπεριλαμβανομένων του KDE, GNOME και Firefox.

Για να ελέγξετε ποίες γραμματοσειρές είναι anti-aliased, ή να ρυθμίσετε τις ιδιότητες του anti-aliasing, δημιουργήστε (ή τροποποιήστε, αν ήδη υπάρχει) το αρχείο /usr/local/etc/fonts/local.conf. Μέσω αυτού του αρχείου μπορούν να ρυθμιστούν αρκετά εξειδικευμένα χαρακτηριστικά του συστήματος γραμματοσειρών Xft. Αυτό το τμήμα περιγράφει μόνο μερικές απλές δυνατότητες. Για περισσότερες λεπτομέρειες, δείτε το fonts-conf(5).

Το αρχείο αυτό πρέπει να είναι μορφής XML. Δώστε μεγάλη προσοχή στα πεζά / κεφαλαία, και σιγουρευθείτε ότι όλα τα tags έχουν κλείσει σωστά. Το αρχείο ξεκινά με την συνηθισμένη επικεφαλίδα XML και ένα ορισμό DOCTYPE, και έπειτα ακολουθεί το <fontconfig> tag:

      <?xml version="1.0"?>
      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
      <fontconfig>

Όπως είπαμε προηγουμένως, όλες οι γραμματοσειρές στο /usr/local/lib/X11/fonts/ όπως και στο ~/.fonts/ διατίθενται ήδη σε Xft-aware εφαρμογές. Αν θέλετε να προσθέσετε και άλλους καταλόγους εκτός από αυτούς τους δύο, προσθέστε μια γραμμή παρόμοια με αυτή που ακολουθεί στο /usr/local/etc/fonts/local.conf:

<dir>/path/to/my/fonts</dir>

Αφού προσθέσετε νέες γραμματοσειρές, και ειδικότερα νέους καταλόγους γραμματοσειρών, πρέπει να εκτελέσετε την ακόλουθη εντολή για να αναδημιουργήσετε την cache γραμματοσειρών:

# fc-cache -f

Το anti-aliasing κάνει τα άκρα ελαφρώς συγκεχυμένα, κάνοντας έτσι τα πολύ μικρά γράμματα πιο αναγνώσιμα, και αφαιρεί τις "κλίμακες" (σκαλοπάτια) από τα μεγάλα γράμματα, αλλά μπορεί να προκαλέσει ενοχλήσεις στα μάτια αν χρησιμοποιηθεί σε κανονικά μεγέθη. Για να εξαιρέσετε από το anti-aliasing μεγέθη γραμματοσειρών μικρότερα από 14 point, προσθέστε αυτές τις γραμμές:

        <match target="font">
            <test name="size" compare="less">
                <double>14</double>
            </test>
            <edit name="antialias" mode="assign">
                <bool>false</bool>
            </edit>
        </match>
        <match target="font">
            <test name="pixelsize" compare="less" qual="any">
                <double>14</double>
            </test>
            <edit mode="assign" name="antialias">
                <bool>false</bool>
            </edit>
        </match>

Το spacing (διαστήματα) σε μερικές monospaced γραμματοσειρές μπορεί επίσης να είναι ακατάλληλο όταν χρησιμοποιείται anti-aliasing. Αυτό φαίνεται να αποτελεί ιδιαίτερο πρόβλημα με το KDE. Μια διόρθωση για αυτό, είναι να επιβάλλετε στο spacing την τιμή 100 για αυτές τις γραμματοσειρές. Προσθέστε τις ακόλουθες γραμμές:

       <match target="pattern" name="family">
           <test qual="any" name="family">
               <string>fixed</string>
           </test>
           <edit name="family" mode="assign">
               <string>mono</string>
           </edit>
        </match>
        <match target="pattern" name="family">
            <test qual="any" name="family">
                <string>console</string>
            </test>
            <edit name="family" mode="assign">
                <string>mono</string>
            </edit>
        </match>

(αυτό μετονομάζει τα άλλα κοινά ονόματα των fixed γραμματοσειρών ως "mono"), και έπειτα προσθέστε:

         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>mono</string>
             </test>
             <edit name="spacing" mode="assign">
                 <int>100</int>
             </edit>
         </match>

Συγκεκριμένες γραμματοσειρές, όπως οι Helvetica, μπορεί να εμφανίζουν πρόβλημα όταν είναι anti-aliased. Το πρόβλημα συχνά εκδηλώνεται ως μία γραμματοσειρά κομμένη κάθετα στην μέση. Στην χειρότερη περίπτωση, μπορεί να κάνει κάποιες εφαρμογές να καταρρεύσουν. Για να το αποφύγετε αυτό, μπορείτε να προσθέσετε το ακόλουθο στο local.conf:

         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>Helvetica</string>
             </test>
             <edit name="family" mode="assign">
                 <string>sans-serif</string>
             </edit>
         </match>

Μόλις τελειώσετε την μετατροπή του local.conf σιγουρευθείτε ότι κλείσατε το αρχείο με το </fontconfig> tag. Αν δεν το κάνετε, οι αλλαγές σας θα αγνοηθούν.

Τέλος, οι χρήστες μπορούν να προσθέσουν τις δικές τους ρυθμίσεις μέσω των προσωπικών τους αρχείων .fonts.conf. Για να γίνει αυτό, κάθε χρήστης πρέπει απλώς να δημιουργήσει ένα ~/.fonts.conf. Αυτό το αρχείο πρέπει να είναι επίσης XML μορφής.

Κάτι τελευταίο: σε μία LCD οθόνη, μπορεί να είναι επιθυμητός ο δειγματισμός sub-pixel. Ο δειγματισμός χειρίζεται χωριστά τα (οριζόντια διαχωρισμένα) κόκκινα, πράσινα και μπλε στοιχεία ώστε να βελτιώσει την οριζόντια ανάλυση. Τα αποτελέσματα μπορεί να είναι δραματικά καλύτερα. Για να τον ενεργοποιήσετε, προσθέστε την παρακάτω γραμμή κάπου στο αρχείο local.conf:

         <match target="font">
             <test qual="all" name="rgba">
                 <const>unknown</const>
             </test>
             <edit name="rgba" mode="assign">
                 <const>rgb</const>
             </edit>
         </match>

Ανάλογα με τον τύπο της οθόνης, το rgb μπορεί να χρειαστεί να αλλάξει σε bgr, vrgb ή vbgr: πειραματιστείτε και δείτε ποίο λειτουργεί καλύτερα.

7.6. Ο X Display Manager

7.6.1. Εισαγωγή

Ο X Display Manager (XDM) είναι ένα προαιρετικό μέρος του συστήματος X Windows που χρησιμοποιείται για διαχείριση συνδέσεων (logins). Αυτό είναι χρήσιμο σε πολλές περιπτώσεις, όπως σε απλά "X Terminals", σε desktop μηχανήματα, καθώς και σε διακομιστές μεγάλων δικτύων. Αφού το σύστημα X Windows είναι ανεξάρτητο πρωτοκόλλων και δικτύων, υπάρχει μεγάλο εύρος πιθανών ρυθμίσεων για την λειτουργία X πελατών και διακομιστών σε διαφορετικά μηχανήματα συνδεδεμένα σε ένα δίκτυο. Ο XDM παρέχει ένα γραφικό περιβάλλον για την επιλογή του διακομιστή με τον οποίο θα γίνει η σύνδεση, και για την είσοδο πληροφοριών πιστοποίησης όπως του ονόματος χρήστη και του κωδικού πρόσβασης.

Σκεφθείτε τον XDM ως μια εφαρμογή που παρέχει τις ίδιες δυνατότητες στον χρήστη με το εργαλείο getty(8) (δείτε το Ρύθμιση για λεπτομέρειες). Το XDM εκτελεί συνδέσεις (logins) στον διακομιστή και έπειτα εκτελεί ένα διαχειριστή συνεδρίας (session manager, συνήθως έναν X διαχειριστή παραθύρων, window manager) για λογαριασμό του χρήστη. Ο XDM έπειτα περιμένει να τερματίσει αυτό το πρόγραμμα, που σηματοδοτεί ότι ο χρήστης τελείωσε και πρέπει να αποσυνδεθεί. Σε αυτό το σημείο, ο XDM μπορεί να εμφανίσει ξανά την οθόνη εισόδου (login) και την οθόνη επιλογής γραφικής σύνδεσης ώστε να συνδεθεί ένας άλλος χρήστης.

7.6.2. Χρήση του XDM

Για να ξεκινήσετε να χρησιμοποιείτε το XDM, εγκαταστήστε το port x11/xdm (δεν εγκαθίσταται από προεπιλογή στις πρόσφατες εκδόσεις του Xorg). Μπορείτε έπειτα να βρείτε τον δαίμονα XDM στο /usr/local/bin/xdm. Αυτό το πρόγραμμα μπορεί να εκτελεστεί οποιαδήποτε στιγμή ως root και θα ξεκινήσει να διαχειρίζεται την οθόνη του X στο τοπικό μηχάνημα. Αν ο XDM πρέπει να εκτελείται κάθε φορά που εκκινείται το μηχάνημα, ένας βολικός τρόπος είναι η προσθήκη μιας γραμμής στο /etc/ttys. Για περισσότερες πληροφορίες σχετικά με την μορφή και την χρήση αυτού του αρχείου, δείτε το Προσθέτοντας μια Καταχώριση στο /etc/ttys. Υπάρχει μία γραμμή στο αρχικό /etc/ttys αρχείο για την εκτέλεση του XDM σε ένα εικονικό τερματικό:

ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure

Αρχικά αυτή η λειτουργία είναι απενεργοποιημένη - για να την ενεργοποιήσετε αλλάξτε το πεδίο 5 από off σε on και επαννεκίνηστε το init(8) χρησιμοποιώντας τις οδηγίες του Εξαναγκάστε την init να Ξαναδιαβάσει το /etc/ttys. Το πρώτο πεδίο, το όνομα του τερματικού που θα διαχειρίζεται το πρόγραμμα, είναι το ttyv8. Αυτό σημαίνει ότι ο XDM θα εκτελείται στο 9ο εικονικό τερματικό.

7.6.3. Ρύθμιση του XDM

Ο κατάλογος ρυθμίσεων του XDM βρίσκεται στο /usr/local/lib/X11/xdm. Σε αυτόν τον κατάλογο υπάρχουν πολλά αρχεία που χρησιμοποιούνται για να αλλάξουν την συμπεριφορά και εμφάνιση του XDM. Τυπικά, θα βρείτε τα παρακάτω αρχεία:

ΑρχείοΠεριγραφή

Xaccess

Κανόνες πιστοποίησης πελατών.

Xresources

Προκαθορισμένες τιμές X resource.

Xservers

Λίστα απομακρυσμένων και τοπικών οθονών (Χ displays) στις οποίες θα γίνεται διαχείριση.

Xsession

Προεπιλεγμένο script συνόδων για logins.

Xsetup_*

Script για την εκτέλεση εντολών πριν την εμφάνιση του περιβάλλοντος σύνδεσης (login screen).

xdm-config

Ρυθμίσεις για όλες τις απεικονίσεις (displays) που εκτελούνται σε αυτό το μηχάνημα.

xdm-errors

Λάθη που δημιουργούνται από το πρόγραμμα.

xdm-pid

Το ID της διεργασίας του τρέχοντος XDM.

Επίσης σε αυτόν τον κατάλογο υπάρχουν μερικά scripts και προγράμματα που χρησιμοποιούνται για να ρυθμίσουν την επιφάνεια εργασίας όταν εκτελείται το XDM. Θα περιγράψουμε περιληπτικά το σκοπό καθενός από αυτά τα αρχεία. Η ακριβής σύνταξη και χρήση όλων αυτών των αρχείων περιγράφεται στο xdm(1).

Η προκαθορισμένη ρύθμιση είναι ένα απλό ορθογώνιο παράθυρο σύνδεσης με το όνομα του μηχανήματος να φαίνεται στην κορυφή με μεγάλα γράμματα και τις προτροπές "Login:" και "Password:" από κάτω. Αυτό είναι ένα καλό σημείο εκκίνησης για να αλλάξετε την εμφάνιση του XDM.

7.6.3.1. Xaccess

Το πρωτόκολλο για σύνδεση με απεικονίσεις που ελέγχονται από το XDM ονομάζεται X Display Manager Connection Protocol (XDMCP). Το αρχείο αυτό είναι ένα σύνολο κανόνων για των έλεγχο των συνδέσεων XDMCP από απομακρυσμένα μηχανήματα. Αγνοείται, εκτός και αν το xdm-config έχει ρυθμιστεί ώστε να δέχεται εισερχόμενες συνδέσεις. Η προεπιλογή είναι να μην επιτρέπεται σε κανένα πελάτη να συνδεθεί.

7.6.3.2. Xresources

Πρόκειται για το αρχείο προκαθορισμένων τιμών για τις εφαρμογές εμφάνισης του παράθυρου σύνδεσης (login) και επιλογέα απεικόνισης (display chooser). Μέσα από αυτό μπορεί να τροποποιηθεί η εμφάνιση του προγράμματος login. Η μορφή του είναι ίδια με το αρχείο app-defaults που περιγράφεται στην τεκμηρίωση του X11.

7.6.3.3. Xservers

Αυτή είναι μια λίστα των απομακρυσμένων σταθμών που πρέπει να εμφανίζονται ως επιλογές στο πρόγραμμα (chooser).

7.6.3.4. Xsession

Αυτό είναι το προκαθορισμένο session script που εκτελεί το XDM μετά τη σύνδεση κάποιου χρήστη. Κανονικά, κάθε χρήστης θα έχει ένα τροποποιημένο, δικό του, session script στο ~/.xsession που θα παρακάμπτει αυτό το script.

7.6.3.5. Xsetup_*

Τα αρχεία αυτά εκτελούνται αυτόματα πριν την εμφάνιση των παραθύρων επιλογής ή σύνδεσης. Υπάρχει ένα script για κάθε display που χρησιμοποιείται, που ονομάζεται Xsetup_ με το νούμερο του display στο τέλος (για παράδειγμα Xsetup_0). Κανονικά αυτά τα scripts θα εκτελούν ένα ή δυο προγράμματα στο παρασκήνιο όπως π.χ. το xconsole.

7.6.3.6. xdm-config

Το αρχείο αυτό περιέχει ρυθμίσεις στην μορφή των app-defaults, που εφαρμόζονται σε κάθε display που διαχειρίζεται η συγκεκριμένη εγκατάσταση.

7.6.3.7. xdm-errors

Το αρχείο αυτό περιέχει την έξοδο των διακομιστών X που προσπαθεί να εκτελέσει το XDM. Αν ένα display που προσπαθεί να εκκινήσει o XDM κολλήσει για κάποιο λόγο, καλό είναι να αναζητήσετε εδώ τυχόν μηνύματα σφαλμάτων. Τα μηνύματα αυτά καταγράφονται και στα αρχεία χρηστών ~/.xsession-errors.

7.6.4. Διατηρώντας έναν Διακομιστή Απομακρυσμένων Συνδέσεων

Για να συνδέονται και άλλοι πελάτες στον διακομιστή οθόνης, τροποποιήστε τους κανόνες ελέγχου πρόσβασης, και ενεργοποιήστε τις εισερχόμενες συνδέσεις. Τα παραπάνω είναι, από προεπιλογή ρυθμισμένα σε συντηρητικές τιμές. Για να κάνετε το XDM να δέχεται συνδέσεις, αρχικά μετατρέψτε σε σχόλιο την παρακάτω γραμμή στο αρχείο xdm-config:

! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:     0

και μετά επανεκκινήστε τον XDM. Να έχετε υπόψιν σας ότι τα σχόλια στα αρχεία app-defaults ξεκινούν με τον χαρακτήρα "!", και όχι τον συνήθη "#". Μπορεί να επιθυμείτε πιο αυστηρούς κανόνες ελέγχου πρόσβασης. Δείτε τα παραδείγματα στο Xaccess, και συμβουλευθείτε τη σελίδα manual του xdm(1).

7.6.5. Αντικαταστάτες του XDM

Υπάρχουν αρκετοί αντικαταστάτες για το πρόγραμμα XDM. Ένας από αυτούς, ο KDM (έρχεται με το KDE) αναλύεται αργότερα σε αυτό το κεφάλαιο. Ο KDM display manager προσφέρει πολλά προτερήματα στα γραφικά και διακοσμητικά στοιχεία, όπως επίσης και την δυνατότητα να επιλέγουν οι χρήστες τον επιθυμητό διαχειριστή παραθύρων την στιγμή της σύνδεσης.

7.7. Γραφικά Περιβάλλοντα

Αυτό το τμήμα περιγράφει μερικά γραφικά περιβάλλοντα που διατίθενται για το X στο FreeBSD. Η έννοια "γραφικό περιβάλλον" μπορεί να σημαίνει οτιδήποτε, από έναν απλό διαχειριστή παραθύρων μέχρι ένα ολοκληρωμένα πακέτο desktop εφαρμογών, όπως το KDE ή το GNOME.

7.7.1. GNOME

7.7.1.1. Σχετικά με το GNOME

Το GNOME είναι ένα φιλικό προς τον χρήστη γραφικό περιβάλλον που επιτρέπει στους χρήστες να χρησιμοποιούν και να ρυθμίζουν εύκολα τους υπολογιστές τους. Το GNOME διαθέτει ένα panel (για την εκκίνηση εφαρμογών και την προβολή κατάστασης), επιφάνεια εργασίας (όπου εμφανίζονται δεδομένα και εφαρμογές), ένα πλήθος από διαδεδομένα εργαλεία και εφαρμογές, καθώς και ένα σύνολο τυποποιήσεων που επιτρέπει στις εφαρμογές να συνεργάζονται μεταξύ τους και να δείχνουν ένα συνεπές περιβάλλον εργασίας. Οι χρήστες άλλων λειτουργικών συστημάτων ή περιβάλλoντων θα αισθάνονται σαν στο σπίτι τους χρησιμοποιώντας το πανίσχυρο γραφικό περιβάλλον που παρέχει το GNOME. Περισσότερες πληροφορίες σχετικά με το GNOME στο FreeBSD μπορούν να βρεθούν στο διαδικτυακό τόπο του FreeBSD GNOME Project. Η τοποθεσία περιέχει επίσης και αναλυτικά FAQs σχετικά με την εγκατάσταση, την ρύθμιση, και την διαχείριση του GNOME.

7.7.1.2. Εγκατάσταση του GNOME

Το GNOME μπορεί να εγκατασταθεί εύκολα από πακέτα ή από την Συλλογή των Ports:

Για να εγκαταστήσετε το έτοιμο πακέτο του GNOME από το δίκτυο, απλώς πληκτρολογήστε:

# pkg_add -r gnome2

Για να μεταγλωττίσετε το GNOME από τον πηγαίο κώδικα, χρησιμοποιήστε την Συλλογή των Ports:

# cd /usr/ports/x11/gnome2
# make install clean

Το GNOME χρειάζεται το σύστημα αρχείων /proc για να λειτουργήσει σωστά. Προσθέστε τη γραμμή

proc           /proc       procfs  rw  0   0

στο αρχείο /etc/fstab για να γίνεται αυτόματα προσάρτηση του procfs(5) κατά την εκκίνηση του συστήματος.

Μόλις εγκατασταθεί το GNOME, θα πρέπει να ρυθμιστεί ο διακομιστής X ώστε να εκκινεί το GNOME αντί για τον προκαθορισμένο διαχειριστή παραθύρων.

Ο ευκολότερος τρόπος για να εκκινήσετε το GNOME είναι με το GDM, τον GNOME Display Manager. Το GDM εγκαθίσταται ως μέρος του GNOME, αλλά είναι ανενεργό αρχικά. Μπορεί να ενεργοποιηθεί με την προσθήκη της γραμμής

gdm_enable="YES"

στο αρχείο /etc/rc.conf.

Μόλις κάνετε επανεκκίνηση, το GDM θα ξεκινήσει αυτόματα.

Επιπρόσθετα, είναι χρήσιμο να ξεκινούν όλες οι υπηρεσίες τις οποίες απαιτεί το GNOME ταυτόχρονα με την εκκίνηση του GDM. Για να γίνεται αυτό προσθέστε τη γραμμή

gnome_enable="YES"

στο αρχείο /etc/rc.conf.

Το GNOME μπορεί επίσης να ξεκινήσει από την γραμμή εντολών ρυθμίζοντας κατάλληλα το αρχείο .xinitrc. Αν υπάρχει ήδη το αρχείο .xinitrc, απλώς αντικαταστήστε την γραμμή που εκκινεί τον τρέχοντα διαχειριστή παραθύρων με μία που να εκκινεί το /usr/local/bin/gnome-session. Αν δεν θέλετε να κάνετε περισσότερες ρυθμίσεις στο αρχείο, χρειάζεται απλά να γράψετε:

% echo "/usr/local/bin/gnome-session" > ~/.xinitrc

Έπειτα, πληκτρολογήστε startx, και θα ξεκινήσει το γραφικό περιβάλλον του GNOME

Αν χρησιμοποιείτε κάποιο παλαιότερο display manager, όπως το XDM, το παραπάνω δεν θα λειτουργήσει. Στην περίπτωση αυτή, δημιουργήστε ένα εκτελέσιμο αρχείο .xsession το οποίο να περιέχει την ίδια εντολή. Τροποποιήστε το αρχείο .xsession και αντικαταστήστε την εντολή του τρέχοντος διαχειριστή παραθύρων με το /usr/local/bin/gnome-session:

% echo "#!/bin/sh" > ~/.xsession
% echo "/usr/local/bin/gnome-session" >> ~/.xsession
% chmod +x ~/.xsession

Άλλη μια επιλογή είναι να ρυθμιστεί ο display manager ώστε να επιτρέπει την επιλογή του διαχειριστή παραθύρων κατά την σύνδεση. Το τμήμα Λεπτομέρειες KDE εξηγεί πως μπορεί να γίνει αυτό μέσω του KDM, του display manager του KDE.

7.7.2. KDE

7.7.2.1. Σχετικά με το KDE

Το KDE είναι ένα σύγχρονο, εύκολο στη χρήση, γραφικό περιβάλλον. Μερικά πράγματα που προσφέρει το KDE στον χρήστη είναι:

  • Ένα όμορφο σύγχρονο περιβάλλον

  • Ένα περιβάλλον με πλήρη δικτυακή διαφάνεια

  • Ένα ενσωματωμένο σύστημα βοήθειας που επιτρέπει εύκολη, συνεπή πρόσβαση στην βοήθεια για την χρήση του KDE και των εφαρμογών του

  • Συνεπής εμφάνιση και συμπεριφορά όλων των εφαρμογών του KDE

  • Τυποποιημένα menu και γραμμές εργαλείων (toolbars), συνδυασμοί πλήκτρων, χρωματικοί συνδυασμοί, κλπ.

  • Διεθνείς ρυθμίσεις: το KDE διατίθεται σε περισσότερες από 55 γλώσσες

  • Κεντρικό και συνεπές σύστημα ρυθμίσεων βασισμένο σε διαλόγους

  • Μεγάλο αριθμό χρήσιμων εφαρμογών, σχεδιασμένων ειδικά για το KDE

Το KDE συνοδεύεται από έναν περιηγητή (browser) που ονομάζεται Konqueror, και ανταγωνίζεται σοβαρά τους άλλους περιηγητές των συστημάτων UNIX®. Περισσότερες πληροφορίες για το KDE μπορείτε να βρείτε στο KDE website. Για πληροφορίες σχετικές με το FreeBSD και το KDE, συμβουλευθείτε τον διαδικτυακό τόπο του KDE/FreeBSD.

Υπάρχουν διαθέσιμες δύο εκδόσεις του KDE για το FreeBSD. Η Έκδοση 3, κυκλοφορεί αρκετό καιρό και είναι ακόμα διαθέσιμη στη Συλλογή των Ports αν και δεν συντηρείται πλέον και παρουσιάζει προβλήματα. Η έκδοση 4 ανανεώνεται συνεχώς και είναι η προεπιλογή των χρηστών του KDE. Οι δύο αυτές εκδόσεις μπορούν κάλιστα να συνυπάρχουν στον ίδιο υπολογιστή.

7.7.2.2. Εγκατάσταση του KDE

Όπως και με το GNOME ή κάθε άλλο γραφικό περιβάλλον, το λογισμικό μπορεί να εγκατασταθεί εύκολα μέσω πακέτων ή από την Συλλογή των Ports:

Για να εγκαταστήσετε το KDE 3 μέσω πακέτων από το δίκτυο, απλώς πληκτρολογήστε:

# pkg_add -r kde

Για να εγκαταστήσετε το KDE 4 μέσω πακέτων από το δίκτυο, απλώς πληκτρολογήστε:

# pkg_add -r kde4

Το pkg_add(1) θα ανακτήσει αυτόματα την τελευταία έκδοση της εφαρμογής.

Για να μεταγλωττίσετε το KDE 3 από τον πηγαίο κώδικα, χρησιμοποιήστε τη Συλλογή των Ports:

# cd /usr/ports/x11/kde3
# make install clean

Για να μεταγλωττίσετε το KDE 4 από τον πηγαίο κώδικα, χρησιμοποιήστε τη Συλλογή των Ports:

# cd /usr/ports/x11/kde4
# make install clean

Αφού εγκατασταθεί το KDE, θα πρέπει να ρυθμιστεί ο διακομιστής X ώστε να το εκκινεί αντί για τον προκαθορισμένο διαχειριστή παραθύρων. Αυτό γίνεται με την αλλαγή του αρχείου .xinitrc:

Για το KDE 3:

% echo "exec startkde" > ~/.xinitrc

Για το KDE 4:

% echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc

Τώρα, όποτε το X Window System εκκινείται μέσω του startx, το γραφικό περιβάλλον θα είναι το KDE.

Αν χρησιμοποιείτε κάποιο display manager όπως το XDM, η ρύθμιση είναι λίγο διαφορετική. Θα πρέπει αντί για το .xinitrc να τροποποιήσετε το .xsession. Οδηγίες για το KDM δίνονται αργότερα στο κεφάλαιο αυτό.

7.7.3. Περισσότερες Λεπτομέρειες για το KDE

Τώρα που το KDE έχει εγκατασταθεί στο σύστημα, μπορείτε να ανακαλύψετε τις περισσότερες λειτουργίες μέσω των σελίδων βοήθειας ή δοκιμάζοντας μενού και επιλογές. Οι χρήστες των Windows® η του Mac® θα αισθάνονται σαν στο σπίτι τους.

Η καλύτερη βοήθεια για το KDE είναι η on-line τεκμηρίωση. Το KDE συνοδεύεται από τον δικό του περιηγητή, τον Konqueror, πολλές χρήσιμες εφαρμογές, και αναλυτική τεκμηρίωση. Το υπόλοιπο αυτής της ενότητας συζητά τεχνικά θέματα που είναι δύσκολο να ανακαλυφθούν με δοκιμές.

7.7.3.1. Ο KDE Display Manager

Ο διαχειριστής ενός πολυχρηστικού συστήματος θέλει ενδεχομένως η σύνδεση των χρηστών να γίνεται μέσω γραφικού περιβάλλοντος. Όπως περιγράψαμε πρίν, μπορεί να χρησιμοποιηθεί το XDM. Όμως, το KDE περιέχει μια εναλλακτική επιλογή, το KDM, το οποίο έχει σχεδιαστεί να είναι ποίο ελκυστικό και παρέχει περισσότερες επιλογές κατά τη σύνδεση. Συγκεκριμένα, οι χρήστες μπορούν εύκολα να επιλέξουν (μέσω μενού) ποίο γραφικό περιβάλλον (KDE, GNOME, ή κάποιο άλλο) θα εκτελεστεί μετά την σύνδεση τους.

Για να ενεργοποιήσετε το KDM, θα πρέπει να επεξεργαστείτε κάποια αρχεία, τα οποία είναι διαφορετικά ανάλογα με την έκδοση του KDE που θα χρησιμοποιήσετε.

Για το KDE 3, θα πρέπει να τροποποιήσετε την εγγραφή για το ttyv8 στο /etc/ttys, όπως φαίνεται παρακάτω:

ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure

Για το KDE 4, θα πρέπει να προσαρτήσετε το procfs(5) και να προσθέσετε την παρακάτω γραμμή στο /etc/rc.conf:

kdm4_enable="YES"

7.7.4. Xfce

7.7.4.1. Σχετικά με το Xfce

Το Xfce είναι ένα γραφικό περιβάλλον που στηρίζεται στην βιβλιοθήκη GTK+ που χρησιμοποιείται και από το GNOME, αλλά είναι πολύ πιο ελαφρύ και προορίζεται για όσους θέλουν ένα απλό, αποτελεσματικό γραφικό περιβάλλον που είναι εύκολο να χρησιμοποιηθεί και να ρυθμιστεί. Οπτικά, μοιάζει πολύ με το CDE, που συναντάται σε εμπορικά συστήματα UNIX®. Μερικά από τα χαρακτηριστικά του Xfce είναι:

  • Ένα απλό, εύκολο στην χρήση γραφικό περιβάλλον

  • Πλήρως παραμετροποιήσιμο με το ποντίκι, με drag and drop, κλπ.

  • Κεντρικό panel παρόμοιο με του CDE, με μενού, μικρο-εφαρμογές και πλήκτρα εκκίνησης εφαρμογών

  • Ολοκληρωμένος διαχειριστής παραθύρων, διαχειριστής αρχείων, διαχειριστής ήχου, συμβατότητα με το GNOME, και άλλα

  • Δυνατότητα χρήσης θεμάτων (themes, αφού χρησιμοποιεί το GTK+)

  • Γρήγορο, ελαφρύ και αποτελεσματικό: ιδανικό για παλαιότερα/πιο αργά μηχανήματα ή μηχανήματα με λίγη μνήμη

Περισσότερες πληροφορίες για το Xfce μπορείτε να βρείτε στη δικτυακή τοποθεσία του Xfce.

7.7.4.2. Εγκατάσταση του Xfce

Υπάρχει (την ώρα που γράφονται αυτές οι γραμμές) έτοιμο πακέτο για το Xfce. Για να το εγκαταστήσετε, απλώς πληκτρολογήστε:

# pkg_add -r xfce4

Εναλλακτικά, για να το μεταγλωττίσετε από τον πηγαίο κώδικα, χρησιμοποιήστε την Συλλογή των Ports:

# cd /usr/ports/x11-wm/xfce4
# make install clean

Τώρα, πείτε στον διακομιστή X να εκκινήσει το Xfce την επόμενη φορά που θα γίνει εκκίνηση του γραφικού περιβάλλοντος. Απλώς πληκτρολογήστε το παρακάτω:

% echo "/usr/local/bin/startxfce4" > ~/.xinitrc

Την επόμενη φορά που θα εκκινήσετε το Χ, θα εμφανιστεί το Xfce. Όπως και προηγουμένως, αν χρησιμοποιείτε κάποιο display manager όπως το XDM, δημιουργήστε ένα αρχείο .xsession, όπως περιγράφεται στην παράγραφο του GNOME, αλλά με την εντολή /usr/local/bin/startxfce4, ή ρυθμίστε τον display manager να επιτρέπει την επιλογή γραφικού περιβάλλοντος, όπως περιγράφεται στην παράγραφο σχετικά με το kdm.

path: "/books/handbook/" --- :leveloffset: +1

Part II: Desktop Εφαρμογές

Chapter 8. Σύνοψη

Το FreeBSD μπορεί να εκτελέσει μια ευρεία γκάμα desktop εφαρμογών, όπως φυλλομετρητές (browsers) και επεξεργαστές κειμένου. Οι περισσότερες από αυτές είναι διαθέσιμες ως πακέτα (packages) ή μπορούν να εγκατασταθούν αυτόματα από την Συλλογή των Ports. Πολλοί νέοι χρήστες αναμένουν να βρουν τέτοιου είδους εφαρμογές στο desktop τους. Το κεφάλαιο αυτό θα σας δείξει πως να εγκαταστήσετε χωρίς κόπο τις πιο δημοφιλείς desktop εφαρμογές, είτε από πακέτα είτε από τη Συλλογή των Ports.

Σημειώστε ότι όταν εγκαθιστάτε προγράμματα από τη Συλλογή των Ports, γίνεται μεταγλώττιση από τον πηγαίο κώδικα. Αυτό μπορεί να χρειαστεί πολύ χρόνο, καθώς εξαρτάται από το πρόγραμμα το οποίο μεταγλωττίζετε και την υπολογιστική ισχύ του μηχανήματός σας. Αν το χρονικό διάστημα το οποίο χρειάζεται η μεταγλώττιση είναι απαγορευτικά μεγάλο, μπορείτε να εγκαταστήσετε τα περισσότερα προγράμματα της Συλλογής των Ports από προ-μεταγλωττισμένα πακέτα.

Καθώς το FreeBSD διαθέτει συμβατότητα με εκτελέσιμα προγράμματα για Linux, πολλές εφαρμογές που αναπτύχθηκαν αρχικά για το Linux είναι διαθέσιμες για το desktop σας. Σας συνιστούμε θερμά να διαβάσετε το Συμβατότητα με Εκτελέσιμα του Linux πριν εγκαταστήσετε οποιαδήποτε από τις εφαρμογές Linux. Πολλά από τα ports που χρησιμοποιούν τη συμβατότητα με Linux έχουν ονόματα που ξεκινούν με "linux-". Θυμηθείτε το όταν ψάχνετε για κάποιο συγκεκριμένο port, για παράδειγμα με την whereis(1). Στο κείμενο που ακολουθεί θεωρείται ότι έχετε ενεργοποιήσει την συμβατότητα με εκτελέσιμα προγράμματα Linux πριν εγκαταστήσετε οποιαδήποτε από τις εφαρμογές του Linux.

Οι κατηγορίες που καλύπτονται από αυτό το κεφάλαιο είναι οι εξής:

  • Φυλλομετρητές (όπως Firefox, Opera, KonquerorChromium)

  • Εφαρμογές γραφείου (όπως KOffice, AbiWord, The GIMP, OpenOffice.org, LibreOffice)

  • Προγράμματα προβολής εγγράφων (όπως Acrobat Reader®, gv, Xpdf, GQview)

  • Χρηματοοικονομικές εφαρμογές (όπως GnuCash, Gnumeric, Abacus)

Πριν διαβάσετε αυτό το κεφάλαιο θα πρέπει:

Για πληροφορίες σχετικά με την εγκατάσταση πολυμεσικού περιβάλλοντος διαβάστε το Πολυμέσα. Αν θέλετε να ρυθμίσετε και να χρησιμοποιήσετε κάποια υπηρεσία ηλεκτρονικού ταχυδρομείου δείτε το Ηλεκτρονικό Ταχυδρομείο.

Chapter 9. Φυλλομετρητές (Browsers)

Το FreeBSD δεν έχει προεγκατεστημένο κάποιο συγκεκριμένο φυλλομετρητή. Στον κατάλογο www της συλλογής Ports μπορείτε να βρείτε αρκετούς φυλλομετρητές, έτοιμους για εγκατάσταση. Αν δεν έχετε χρόνο για να μεταγλωττίσετε ότι χρειάζεστε (ίσως χρειαστείτε αρκετή ώρα), πολλοί από αυτούς είναι διαθέσιμοι και ως έτοιμα πακέτα.

Τα KDE και GNOME, ως πλήρη περιβάλλοντα εργασίας, παρέχουν τους δικούς τους φυλλομετρητές HTML. Δείτε το Γραφικά Περιβάλλοντα για περισσότερες πληροφορίες σχετικά με την εγκατάσταση τους.

Αν ενδιαφέρεστε για ελαφρείς (από άποψη κατανάλωσης πόρων) φυλλομετρητές, δείτε τις ακόλουθες εφαρμογές στη συλλογή των Ports: www/dillo2, www/links, ή www/w3m.

Το τμήμα αυτό καλύπτει τις παρακάτω εφαρμογές:

Όνομα ΕφαρμογήςΑπαιτούμενοι ΠόροιΕγκατάσταση από PortsΒασικές Εξαρτήσεις

Firefox

μεσαία

βαριά

Gtk+

Opera

λίγοι (ελαφριά)

ελαφριά

Υπάρχουν διαθέσιμες εκδόσεις για FreeBSD και Linux. Η έκδοση για Linux εξαρτάται από την δυαδική συμβατότητα με Linux (Linux Binary Compatibility) και το linux-openmotif.

Konqueror

μεσαία

βαριά

Βιβλιοθήκες KDE

Chromium

μεσαία

μεσαία

Gtk+

9.1. Firefox

Ο Firefox είναι ένας μοντέρνος, ελεύθερος, ανοιχτός και σταθερός φυλλομετρητής, ο οποίος είναι πλήρως προσαρμοσμένος για χρήση στο FreeBSD. Διαθέτει μηχανή απεικόνισης η οποία εναρμονίζεται πλήρως με τις τυποποιήσεις της HTML, και δυνατότητες όπως εμφάνιση πολλαπλών σελίδων σε tabs, μπλοκάρισμα αναδυόμενων παραθύρων (popups), πρόσθετα προγράμματα, βελτιωμένη ασφάλεια και πολλά ακόμη. Ο Firefox βασίζεται στον αρχικό πηγαίο κώδικα του Mozilla.

Εγκαταστήστε το πακέτο γράφοντας:

# pkg_add -r firefox

Η παραπάνω εντολή θα εγκαταστήσει την τελευταία σταθερή έκδοση του Firefox. Αν θέλετε να εγκαταστήσετε την παλιά έκδοση εκτεταμένης υποστήριξης (Extended Support Release, ESR), πληκτρολογήστε:

# pkg_add -r firefox-esr

Μπορείτε επίσης να χρησιμοποιήσετε την Συλλογή των Ports αν προτιμάτε να μεταγλωττίσετε από τον πηγαίο κώδικα:

# cd /usr/ports/www/firefox
# make install clean

Για τον Firefox ESR, αντικαταστήστε στην παραπάνω εντολή τη λέξη firefox με firefox-esr.

9.2. Ο Firefox και το Πρόσθετο (plugin) της Java™

Σε αυτό το τμήμα και τα δύο επόμενα, θεωρούμε ότι έχετε ήδη εγκαταστήσει τον Firefox.

Εγκαταστήστε το OpenJDK 6 από τη Συλλογή των Ports, πληκτρολογώντας:

# cd /usr/ports/java/openjdk6
# make install clean

Εγκαταστήστε έπειτα το port java/icedtea-web:

# cd /usr/ports/java/icedtea-web
# make install clean

Βεβαιωθείτε ότι δεν αλλάξατε τις προεπιλεγμένες επιλογές στις οθόνες ρυθμίσεων και των δύο ports.

Ξεκινήστε το φυλλομετρητή σας, γράψτε about:plugins στη γραμμή διευθύνσεων και πιέστε Enter. Θα δείτε μια σελίδα με όλα τα εγκατεστημένα πρόσθετα. Στη σελίδα αυτή θα πρέπει να δείτε και την καταχώριση για το πρόσθετο της Java™.

Αν ο φυλλομετρητής δεν καταφέρει να εντοπίσει το πρόσθετο, κάθε χρήστης θα χρειαστεί να εκτελέσει την παρακάτω εντολή και να επανεκκινήσει το φυλλομετρητή του:

% ln -s /usr/local/lib/IcedTeaPlugin.so \
  $HOME/.mozilla/plugins/

9.3. Ο Firefox και το Adobe® Flash™ Plugin

Το Adobe® Flash™ plugin δεν διατίθεται για το FreeBSD. Ωστόσο, υπάρχει ένα επίπεδο εξομοίωσης (software layer, wrapper) για την εκτέλεση του αντίστοιχου plugin του Linux. To wrapper αυτό υποστηρίζει επίσης και τα plugins για τον Adobe® Acrobat®, το RealPlayer και άλλα.

Εκτελέστε τα παρακάτω βήματα, ανάλογα με την έκδοση του FreeBSD που χρησιμοποιείτε:

  1. Για το FreeBSD 7.X

    Εγκαταστήστε το port www/nspluginwrapper. Το port αυτό απαιτεί το emulators/linux_base-fc4 το οποίο είναι μεγάλο.

    Το επόμενο βήμα είναι η εγκατάσταση του port www/linux-flashplugin9. Θα εγκατασταθεί η έκδοση Flash™ 9.X η οποία γνωρίζουμε ότι δουλεύει σωστά στο FreeBSD 7.X.

    Σε εκδόσεις του FreeBSD παλαιότερες από την 7.1-RELEASE, θα πρέπει να εγκαταστήσετε το πακέτο www/linux-flashplugin7 και να παραλείψετε το βήμα σχετικά με το linprocfs(5) που φαίνεται παρακάτω.

  2. Για το FreeBSD 8.X ή Νεώτερη Έκδοση

    Εγκαταστήστε το port www/nspluginwrapper. Το port αυτό απαιτεί το emulators/linux_base-f10 το οποίο είναι μεγάλο.

    Το επόμενο βήμα είναι η εγκατάσταση του Flash™ 11.X από το port www/linux-f10-flashplugin11.

    Για να λειτουργήσει σωστά αυτή η έκδοση, θα χρειαστεί να δημιουργήσετε τον συμβολικό σύνδεσμο που φαίνεται παρακάτω:

    # ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \
      /usr/local/lib/browser_plugins/

    Θα χρειαστεί να δημιουργήσετε χειροκίνητα τον κατάλογο /usr/local/lib/browser_plugins αν δεν υπάρχει στο σύστημα σας.

Μετά την εγκατάσταση του σωστού (σύμφωνα με την έκδοση του FreeBSD) Flash™ port, ο κάθε χρήστης θα πρέπει να ολοκληρώσει την προσωπική του εγκατάσταση του plugin εκτελώντας την παρακάτω εντολή του nspluginwrapper:

% nspluginwrapper -v -a -i

Μετά την εγκατάσταση του plugin, ξεκινήστε το φυλλομετρητή σας, γράψτε about:plugins στη γραμμή διευθύνσεων και πιέστε Enter. Θα πρέπει να δείτε μια λίστα με όλα τα τρέχοντα διαθέσιμα plugins.

9.4. Ο Firefox και το Swfdec Flash™ Plugin

To Swfdec είναι μια βιβλιοθήκη για αποκωδικοποίηση και αναπαραγωγή σκηνών Flash™. Το Swfdec-Mozilla είναι ένα plugin για τους φυλλομετρητές Firefox το οποίο χρησιμοποιεί αυτή τη βιβλιοθήκη για την αναπαραγωγή αρχείων SWF. Είναι ακόμα στο στάδιο της ανάπτυξης.

Αν δεν μπορείτε ή δεν θέλετε να το μεταγλωττίσετε, απλώς εγκαταστήστε το πακέτο από το δίκτυο:

# pkg_add -r swfdec-plugin

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να το μεταγλωττίσετε και να το εγκαταστήσετε από τη Συλλογή των Ports:

# cd /usr/ports/www/swfdec-plugin
# make install clean

Μετά την εγκατάσταση, επανεκκινήστε το φυλλομετρητή σας για να ενεργοποιηθεί το plugin.

9.5. Opera

Ο Opera είναι ένας φυλλομετρητής με πλήρεις δυνατότητες και συμβατός με τα πρότυπα. Έρχεται επίσης με ενσωματωμένο πρόγραμμα ανάγνωσης ταχυδρομείου (mail) και ειδήσεων (news), πρόγραμμα για IRC, αναγνώστη για RSS/Atom και πολλά ακόμα. Παρ’όλα αυτά, ο Opera είναι μια σχετικά ελαφριά και πολύ γρήγορη εφαρμογή. Έρχεται σε δύο τύπους: μια "εγγενής" έκδοση για το FreeBSD και μια έκδοση που εκτελείται μέσω της συμβατότητας με το Linux.

Για να χρησιμοποιήσετε την FreeBSD έκδοση του Opera, εγκαταστήστε το πακέτο:

# pkg_add -r opera

Ορισμένες τοποθεσίες FTP δεν διαθέτουν όλα τα πακέτα, αλλά μπορείτε να έχετε το ίδιο αποτέλεσμα μέσω της συλλογής των Ports, γράφοντας:

# cd /usr/ports/www/opera
# make install clean

Για να εγκαταστήσετε την Linux έκδοση του Opera, αντικαταστήστε με linux-opera το opera στα παραπάνω παραδείγματα.

Το πρόσθετο Adobe® Flash™ δεν είναι διαθέσιμο για το FreeBSD. Διατίθεται ωστόσο μια έκδοση κατάλληλη για το Linux®. Για να την χρησιμοποιήσετε θα πρέπει αρχικά να εγκαταστήσετε το port www/linux-f10-flashplugin11 και έπειτα το port www/opera-linuxplugins:

# cd /usr/ports/www/linux-f11-flashplugin10
# make install clean
# cd /usr/ports/www/opera-linuxplugins
# make install clean

Μπορείτε να ελέγξετε εύκολα την ύπαρξη του plugin: ξεκινήστε τον φυλλομετρητή σας, γράψτε opera:plugins στη γραμμή διευθύνσεων και πιέστε Enter. Θα πρέπει να δείτε μια λίστα με όλα τα διαθέσιμα πρόσθετα.

Για να προσθέσετε το πρόσθετο της Java™, ακολουθήστε τις αντίστοιχες οδηγίες για τον Firefox.

9.6. Konqueror

Ο Konqueror είναι κομμάτι του KDE αλλά μπορεί να χρησιμοποιηθεί και έξω από το KDE με την εγκατάσταση του x11/kdebase3. Ο Konqueror είναι πολύ περισσότερο από ένας απλός φυλλομετρητής, είναι επίσης διαχειριστής αρχείων και πρόγραμμα προβολής αρχείων πολυμέσων.

Ο Konqueror διατίθεται επίσης με ένα σετ από plugins, στο misc/konq-plugins.

Ο Konqueror υποστηρίζει τόσο το WebKit όσο και το δικό του KHTML. Το WebKit χρησιμοποιείται από πολλούς σύγχρονους φυλλομετρητές, συμπεριλαμβανομένου και του Chromium. Για να χρησιμοποιήσετε το WebKit με τον Konqueror στο FreeBSD:

# cd /usr/ports/www/kwebkitpart
# make install clean

Μετά την εγκατάσταση, στον Konqueror κάντε κλικ στο "Settings", "Configure Konqueror" και τέλος στο "Change KHTML to WebKit".

Ο Konqueror υποστηρίζει επίσης Flash™ και οι σχετικές οδηγίες (How To) είναι διαθέσιμες στο http://freebsd.kde.org/howtos/konqueror-flash.php.

9.7. Chromium

Ο Chromium είναι μια εφαρμογή browser ανοικτού κώδικα που στοχεύει στη βελτίωση της εμπειρίας του χρήστη παρέχοντας ένα φυλλομετρητή ο οποίος είναι ασφαλέστερος, ταχύτερος και πιο σταθερός. Ο Chromium παρέχει δυνατότητα εμφάνισης σελίδων σε καρτέλες, αποκλεισμό αναδυόμενων παραθύρων (popup blocker), πρόσθετα (extensions) και πολλά ακόμα. Ο Chromium είναι το Έργο ανοικτού κώδικα στο οποίο βασίζεται ο φυλλομετρητής Google Chrome.

Ο Chromium μπορεί να εγκατασταθεί από πακέτο, με την εντολή:

# pkg_add -r chromium

Εναλλακτικά, μπορείτε να μεταγλωττίσετε τον Chromium χρησιμοποιώντας τη Συλλογή των Ports:

# cd /usr/ports/www/chromium
# make install clean

Ο Chromium εγκαθιστάται ως /usr/local/bin/chrome και όχι ως /usr/local/bin/chromium.

9.8. Ο Chromium και το Πρόσθετο της Java™

Στην ενότητα αυτή θεωρούμε ότι έχετε ήδη εγκαταστήσει τον Chromium.

Εγκαταστήστε το OpenJDK 6 μέσω της Συλλογής των Ports, γράφοντας:

# cd /usr/ports/java/openjdk6
# make install clean

Έπειτα, εγκαταστήστε το java/icedtea-web από τη Συλλογή των Ports:

# cd /usr/ports/java/icedtea-web
# make install clean

Ξεκινήστε τον Chromium και πληκτρολογήστε about:plugins στη γραμμή διευθύνσεων. Θα πρέπει να δείτε το IcedTea-Web να εμφανίζεται ως ένα από τα πρόσθετα.

Αν το πρόσθετο δεν εμφανίζεται στον Chromium, εκτελέστε τις παρακάτω εντολές και επανεκκινήστε το φυλλομετρητή σας:

# mkdir -p /usr/local/shared/chromium/plugins
#  ln -s /usr/local/lib/IcedTeaPlugin.so \
  /usr/local/shared/chromium/plugins/

9.9. Ο Chromium και το Πρόσθετο Adobe® Flash™

Στην ενότητα αυτή θεωρούμε ότι έχετε ήδη εγκαταστήσει τον Chromium.

Για τη ρύθμιση του Chromium για χρήση με το πρόσθετο Adobe® Flash™, χρησιμοποιήστε τις οδηγίες για τον Firefox. Στον προηγούμενο σύνδεσμο θα βρείτε πλήρεις οδηγίες για την εγκατάσταση του Adobe® Flash™ στο FreeBSD. Δεν απαιτούνται επιπλέον βήματα, καθώς ο Chromium μπορεί να χρησιμοποιήσει κάποια πρόσθετα από άλλους φυλλομετρητές.

Chapter 10. Εφαρμογές Γραφείου

Όσο αφορά τις εφαρμογές γραφείου, οι νέοι χρήστες συχνά αναζητούν μια καλή σουίτα εφαρμογών ή ένα φιλικό επεξεργαστή κειμένου. Αν και κάποια γραφικά περιβάλλοντα όπως το KDE παρέχουν τη δική τους σουίτα εφαρμογών γραφείου, δεν υπάρχει ωστόσο προεπιλεγμένη εφαρμογή. Το FreeBSD παρέχει ότι χρειάζεστε, άσχετα από το περιβάλλον εργασίας σας.

Το τμήμα αυτό καλύπτει τις παρακάτω εφαρμογές:

Όνομα ΕφαρμογήςΑπαιτούμενοι ΠόροιΕγκατάσταση από PortsΒασικές Εξαρτήσεις

KOffice

λίγοι (ελαφριά)

βαριά

KDE

AbiWord

λίγοι (ελαφριά)

ελαφριά

Gtk+ ή GNOME

The Gimp

λίγοι (ελαφριά)

βαριά

Gtk+

OpenOffice.org

πολλοί (βαριά)

εξαιρετικά βαριά

JDK™, Mozilla

LibreOffice

σχετικά βαριά

τεράστια

Gtk+ ή KDE/ GNOME ή JDK™

10.1. KOffice

Η κοινότητα του KDE εξοπλίζει το γραφικό της περιβάλλον με μια σουίτα εφαρμογών γραφείου που μπορεί να χρησιμοποιηθεί και έξω από το KDE. Περιλαμβάνει τα τέσσερα βασικά προγράμματα που μπορείτε επίσης να βρείτε και σε άλλες σουίτες γραφείου. Το KWord είναι ο επεξεργαστής κειμένου, το KSpread είναι το πρόγραμμα υπολογιστικών φύλλων, το KPresenter διαχειρίζεται τις παρουσιάσεις, ενώ το Kontour σας επιτρέπει να δημιουργήσετε έγγραφα με γραφικά.

Πριν εγκαταστήσετε το τελευταίο KOffice, βεβαιωθείτε ότι έχετε ανανεωμένη έκδοση του KDE.

Για να εγκαταστήσετε το KOffice για το KDE4 ως πακέτο, δώστε την ακόλουθη εντολή:

# pkg_add -r koffice-kde4

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports. Για παράδειγμα, για να εγκαταστήσετε το KOffice για το KDE4, πληκτρολογήστε:

# cd /usr/ports/editors/koffice-kde4
# make install clean

10.2. AbiWord

Το AbiWord είναι ένα ελεύθερο πρόγραμμα επεξεργασίας κειμένου, όμοιο στην αίσθηση και την εμφάνιση με το Microsoft® Word. Είναι κατάλληλο για την πληκτρολόγηση άρθρων, γραμμάτων, αναφορών, υπενθυμίσεων κ.ο.κ. Είναι πολύ γρήγορο, έχει αρκετές δυνατότητες και είναι ιδιαίτερα φιλικό στο χρήστη.

Το AbiWord μπορεί να εισάγει ή να εξάγει αρχεία διάφορων μορφών, περιλαμβανομένων και κάποιων κλειστών όπως το .doc της Microsoft®.

Το AbiWord είναι διαθέσιμο ως πακέτο. Μπορείτε να το εγκαταστήσετε γράφοντας:

# pkg_add -r abiword

Αν το πακέτο δεν είναι διαθέσιμο για κάποιο λόγο, μπορείτε να το μεταγλωττίσετε από την Συλλογή των Ports. Σε αυτή την περίπτωση πιθανώς να εγκαταστήσετε νεώτερη έκδοση σε σχέση με το έτοιμο πακέτο. Μπορείτε να το κάνετε ως εξής:

# cd /usr/ports/editors/abiword
# make install clean

10.3. Το GIMP

Το The GIMP είναι ένα ιδιαίτερα εξελιγμένο πρόγραμμα διαχείρισης γραφικών για δημιουργία εικόνων ή επεξεργασία φωτογραφιών. Μπορεί να χρησιμοποιηθεί ως απλό πρόγραμμα ζωγραφικής ή σαν σουίτα επεξεργασίας και διόρθωσης φωτογραφιών. Περιέχει μεγάλο αριθμό από plugins ενώ διαθέτει και scripting interface. Το The GIMP μπορεί να διαβάσει και να γράψει μεγάλο φάσμα αρχείων εικόνας. Περιλαμβάνει επίσης διεπαφές διασύνδεσης με σαρωτές και tablets.

Μπορείτε να εγκαταστήσετε το πακέτο δίνοντας την εντολή:

# pkg_add -r gimp

Αν η τοποθεσία FTP που χρησιμοποιείτε δεν διαθέτει αυτό το πακέτο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports. Ο κατάλογος graphics της Συλλογής των Ports περιέχει επίσης και το The Gimp Manual (εγχειρίδιο χρήσης). Δείτε παρακάτω πως να το εγκαταστήσετε:

# cd /usr/ports/graphics/gimp
# make install clean
# cd /usr/ports/graphics/gimp-manual-pdf
# make install clean

Ο κατάλογος graphics της συλλογής των Ports έχει επίσης την υπό εξέλιξη έκδοση της εφαρμογής The GIMP στο graphics/gimp-devel. Μπορείτε να βρείτε την HTML έκδοση του εγχειριδίου, The Gimp Manual στο graphics/gimp-manual-html.

10.4. OpenOffice.org

Το OpenOffice.org περιέχει όλες τις απαραίτητες εφαρμογές σε μια πλήρη σουίτα εφαρμογών γραφείου: επεξεργαστή κειμένου, υπολογιστικό φύλλο, διαχειριστή παρουσιάσεων και πρόγραμμα σχεδίασης. Το περιβάλλον εργασίας του είναι πολύ όμοιο με άλλες σουίτες γραφείου, και μπορεί να χρησιμοποιήσει διάφορους δημοφιλείς τύπους αρχείων. Είναι διαθέσιμο σε πολλές διαφορετικές γλώσσες, τόσο ως προς το περιβάλλον εργασίας όσο και ως προς τα λεξικά και τον ορθογραφικό έλεγχο.

Ο επεξεργαστής κειμένου του OpenOffice.org χρησιμοποιεί εγγενώς μορφή αρχείου XML για αυξημένη φορητότητα και ευελιξία. Το πρόγραμμα υπολογιστικών φύλλων διαθέτει γλώσσα μακροεντολών και μπορεί να διασυνδεθεί με εξωτερικές βάσεις δεδομένων. Το OpenOffice.org είναι σταθερή εφαρμογή και εκτελείται εγγενώς στα Windows®, το Solaris™, το Linux, το FreeBSD, καθώς και στο Mac OS® X. Περισσότερες πληροφορίες για το OpenOffice.org μπορείτε να βρείτε στη δικτυακή τοποθεσία του OpenOffice.org. Για πληροφορίες σχετικά με την έκδοση για FreeBSD, καθώς και για απευθείας κατέβασμα πακέτων, χρησιμοποιήστε την δικτυακή τοποθεσία FreeBSD OpenOffice.org Porting Team.

Για να εγκαταστήσετε το OpenOffice.org, γράψτε:

# pkg_add -r openoffice.org

Αν χρησιμοποιείτε -RELEASE έκδοση του FreeBSD, το παραπάνω πρέπει να δουλέψει. Διαφορετικά, θα πρέπει να δείτε την δικτυακή τοποθεσία του FreeBSD OpenOffice.org Porting Team για να κατεβάσετε και να εγκαταστήσετε το αντίστοιχο πακέτο χρησιμοποιώντας την pkg_add(1). Τόσο η τρέχουσα όσο και η υπό εξέλιξη έκδοση είναι διαθέσιμες για κατέβασμα από την παραπάνω τοποθεσία.

Από τη στιγμή που το πακέτο εγκατασταθεί, πρέπει να γράψετε απλώς την παρακάτω εντολή για να εκτελέσετε το OpenOffice.org:

% openoffice.org

Κατά την πρώτη εκκίνηση, θα σας γίνουν διάφορες ερωτήσεις και θα δημιουργηθεί ένας κατάλογος με όνομα .openoffice.org μέσα στον προσωπικό σας κατάλογο.

Αν τα πακέτα του OpenOffice.org δεν είναι διαθέσιμα, έχετε πάντα την επιλογή να μεταγλωττίσετε το αντίστοιχο port. Ωστόσο, να έχετε υπόψη σας ότι αυτό απαιτεί αρκετό χώρο στο δίσκο και θα χρειαστεί και πάρα πολύ χρόνο για να ολοκληρωθεί.

# cd /usr/ports/editors/openoffice.org-3
# make install clean

Αν θέλετε να δημιουργήσετε μια έκδοση με τις δικές σας τοπικές ρυθμίσεις, αντικαταστήστε την προηγούμενη γραμμή εντολών με την επόμενη:

# make LOCALIZED_LANG=your_language install clean

Πρέπει να αντικαταστήσετε το your_language με το σωστό ISO κωδικό για τη γλώσσα σας. Η λίστα με τους υποστηριζόμενους κωδικούς γλωσσών είναι διαθέσιμη στο αρχείο files/Makefile.localized, το οποίο βρίσκεται στον κατάλογο του port.

Μόλις γίνει αυτό, μπορείτε να ξεκινήσετε την εφαρμογή OpenOffice.org δίνοντας την εντολή:

% openoffice.org

10.5. LibreOffice

Το LibreOffice είναι μια ελεύθερη σουίτα εφαρμογών γραφείου η οποία αναπτύσσεται από το The Document Foundation. Είναι συμβατή με τις άλλες γνωστές σουίτες γραφείου και διατίθεται για τις περισσότερες πλατφόρμες. Πρόκειται για fork της γνωστής εφαρμογής OpenOffice.org η οποία περιλαμβάνει όλα τα απαραίτητα μιας σουίτας γραφείου: επεξεργαστή κειμένου, υπολογιστικό φύλλο, πρόγραμμα παρουσιάσεων, πρόγραμμα σχεδίασης και ένα εργαλείο για δημιουργία και επεξεργασία μαθηματικών τύπων. Διατίθεται σε πλήθος γλωσσών - η διεθνής υποστήριξη επεκτείνεται μάλιστα τόσο στο περιβάλλον όσο και στα επιπλέον προγράμματα ελέγχου ορθογραφίας και λεξικών.

Ο επεξεργαστής κειμένου του OpenOffice χρησιμοποιεί εγγενώς μορφή αρχείου XML το οποίο εξασφαλίζει αυξημένη φορητότητα και ευελιξία. Το υπολογιστικό φύλλο διαθέτει μια γλώσσα μακροεντολών και μπορεί να διασυνδεθεί με εξωτερικές βάσεις δεδομένων. Το LibreOffice είναι ήδη σταθερό και διατίθεται σε εκδόσεις για Windows®, Linux®, FreeBSD και Mac OS® X. Για περισσότερες πληροφορίες σχετικά με το LibreOffice επισκεφθείτε την δικτυακή τοποθεσία του.

Για να εγκαταστήσετε το LibreOffice από έτοιμο πακετό, γράψτε:

# pkg_add -r libreoffice

Το παραπάνω θα λειτουργήσει αν τρέχετε κάποιο επίσημο -RELEASE του FreeBSD.

Μετά την εγκατάσταση του πακέτου, πληκτρολογήστε το παρακάτω για να εκτελέσετε το LibreOffice:

% libreoffice

Κατά την πρώτη εκκίνηση, θα σας γίνουν κάποιες ερωτήσεις και θα δημιουργηθεί ένας κατάλογος .libreoffice μέσα στον προσωπικό σας κατάλογο.

Αν δεν υπάρχουν διαθέσιμα πακέτα για το LibreOffice, έχετε επίσης την επιλογή να το μεταγλωττίσετε από το αντίστοιχο port. Θα πρέπει ωστόσο να γνωρίζετε ότι απαιτείται αρκετός χώρος στο δίσκο και αρκετός χρόνος για τη μεταγλώττιση.

# cd /usr/ports/editors/libreoffice
# make install clean

Αν θέλετε να δημιουργήσετε μια έκδοση με υποστήριξη κάποιας συγκεκριμένης γλώσσας, αντικαταστήστε την προηγούμενη εντολή με:

# make LOCALIZED_LANG=your_language install clean

Θα πρέπει να αντικαταστήσετε το your_language με το σωστό ISO κωδικό της γλώσσας που επιθυμείτε να χρησιμοποιήσετε. Για να βρείτε τον κωδικό, δείτε το αρχείο Makefile του port και ειδικότερα την ενότητα pre-fetch.

Μπορείτε έπειτα να εκτελέσετε το LibreOffice χρησιμοποιώντας την παρακάτω εντολή:

% libreoffice

Chapter 11. Προγράμματα Προβολής Εγγράφων

Πρόσφατα έχουν γίνει αρκετά δημοφιλείς κάποιες νέες μορφές αρχείων. Τα προγράμματα προβολής που απαιτούνται για τα αρχεία αυτά ίσως να μην είναι διαθέσιμα στο βασικό σύστημα. Στο τμήμα αυτό θα δούμε πως μπορείτε να τα εγκαταστήσετε.

Το τμήμα αυτό καλύπτει τις εφαρμογές:

Όνομα ΕφαρμογήςΑπαιτούμενοι ΠόροιΕγκατάσταση από PortsΒασικές Εξαρτήσεις

Acrobat Reader®

λίγοι (ελαφριά)

ελαφριά

Δυαδική συμβατότητα με Linux (Linux Binary Compatibility)

gv

λίγοι (ελαφριά)

ελαφριά

Xaw3d

Xpdf

λίγοι (ελαφριά)

ελαφριά

FreeType

GQview

λίγοι (ελαφριά)

ελαφριά

Gtk+ ή GNOME

11.1. Acrobat Reader®

Πολλά έγγραφα διανέμονται πλέον ως αρχεία PDF το οποίο σημαίνει "Portable Document Format" (Φορητή Μορφή Εγγράφου). Ένα από τα συνιστώμενα προγράμματα προβολής για αυτό τον τύπο αρχείων είναι το Acrobat Reader®, το οποίο η Adobe διαθέτει για Linux. Καθώς το FreeBSD μπορεί να χρησιμοποιήσει εκτελέσιμα του Linux, η εφαρμογή είναι επίσης διαθέσιμη για το FreeBSD.

Για να εγκαταστήσετε το Acrobat Reader® 8 από τη Συλλογή των Ports, γράψτε:

# cd /usr/ports/print/acroread8
# make install clean

Δεν υπάρχει διαθέσιμο πακέτο, λόγω περιορισμών στην άδεια χρήσης.

11.2. gv

Το gv είναι ένα πρόγραμμα προβολής εγγράφων για αρχεία PostScript® και PDF. Είναι αρχικά βασισμένο στην εφαρμογή ghostview αλλά έχει καλύτερη εμφάνιση χάρη στη βιβλιοθήκη Xaw3d. Είναι γρήγορο, και το interface του είναι ξεκάθαρο. Το gv έχει πολλές δυνατότητες, όπως προσανατολισμό και μέγεθος χαρτιού, εμφάνιση υπό κλίμακα και βελτίωση εμφάνισης γραμματοσειρών (antialias). Σχεδόν κάθε λειτουργία του μπορεί να εκτελεστεί τόσο από το πληκτρολόγιο όσο και από το ποντίκι.

Για να εγκαταστήσετε το gv ως πακέτο, γράψτε:

# pkg_add -r gv

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports:

# cd /usr/ports/print/gv
# make install clean

11.3. Xpdf

Αν θέλετε ένα μικρό πρόγραμμα προβολής αρχείων PDF για το FreeBSD, το Xpdf είναι ελαφρύ και αποδοτικό. Απαιτεί ελάχιστους πόρους και είναι ιδιαίτερα σταθερό. Χρησιμοποιεί τις βασικές γραμματοσειρές των X και δεν απαιτεί χρήση του Motif® ή άλλης εργαλειοθήκης των Χ.

Για να εγκαταστήσετε το Xpdf ως πακέτο, δώστε την εντολή:

# pkg_add -r xpdf

Αν το πακέτο δεν είναι διαθέσιμο ή προτιμάτε να χρησιμοποιήσετε την Συλλογή των Ports, γράψτε:

# cd /usr/ports/graphics/xpdf
# make install clean

Μόλις ολοκληρωθεί η εγκατάσταση, μπορείτε να ξεκινήσετε το Xpdf και να χρησιμοποιήσετε το δεξί πλήκτρο του ποντικιού για να ενεργοποιήσετε το μενού.

11.4. GQview

Το GQview είναι ένας διαχειριστής εικόνων. Μπορείτε να δείτε ένα αρχείο με ένα απλό κλικ, να ξεκινήσετε ένα εξωτερικό πρόγραμμα επεξεργασίας, να δείτε προεπισκόπηση σε μορφή thumbnail και πολλά άλλα. Διαθέτει επίσης προβολή παρουσίασης και κάποιες βασικές λειτουργίες αρχείων. Μπορείτε να διαχειριστείτε συλλογές εικόνων και να βρείτε με εύκολο τρόπο τις διπλές. Το GQview μπορεί να χρησιμοποιηθεί για προβολή σε πλήρη οθόνη και υποστηρίζει τοπικές / διεθνείς ρυθμίσεις.

Αν θέλετε να εγκαταστήσετε το GQview ως πακέτο, γράψτε:

# pkg_add -r gqview

Αν το πακέτο δεν είναι διαθέσιμο, ή προτιμάτε να χρησιμοποιήσετε την Συλλογή των Ports, γράψτε:

# cd /usr/ports/graphics/gqview
# make install clean

Chapter 12. Χρηματοοικονομικές Εφαρμογές

Αν, για οποιοδήποτε λόγο, θέλετε να διαχειρίζεστε τα χρηματοοικονομικά σας μέσω του FreeBSD desktop σας, υπάρχουν κάποιες ισχυρές και εύκολες στη χρήση εφαρμογές, έτοιμες προς εγκατάσταση. Ορισμένες από αυτές είναι συμβατές με διαδεδομένες μορφές αρχείων, όπως αυτές που χρησιμοποιούνται στα έγγραφα του Quicken ή του Excel.

Το τμήμα αυτό καλύπτει τις εφαρμογές:

Όνομα ΕφαρμογήςΑπαιτούμενοι ΠόροιΕγκατάσταση Από PortsΒασικές Εξαρτήσεις

GnuCash

λίγοι (ελαφριά)

βαριά

GNOME

Gnumeric

λίγοι (ελαφριά)

βαριά

GNOME

Abacus

λίγοι (ελαφριά)

ελαφριά

Tcl/Tk

KMyMoney

λίγοι (ελαφριά)

βαριά

KDE

12.1. GnuCash

Το GnuCash είναι μέρος της προσπάθειας του GNOME να παρέχει φιλικές εφαρμογές στους τελικούς χρήστες. Με το GnuCash, μπορείτε να κρατάτε λογαριασμό των εσόδων και εξόδων σας, των τραπεζικών σας λογαριασμών και των μετοχών σας. Διαθέτει περιβάλλον εργασίας το οποίο είναι εύκολο στη χρήση χωρίς να χρειάζεται ιδιαίτερη εκμάθηση, αλλά είναι ταυτόχρονα και πολύ επαγγελματικό.

Το GnuCash παρέχει έξυπνο σύστημα καταχώρησης, ιεραρχικό σύστημα λογαριασμών, πολλά πλήκτρα συντομεύσεων πληκτρολογίου, καθώς και μεθόδους αυτόματης συμπλήρωσης. Μπορεί να διαχωρίσει μια συναλλαγή σε πολλά λεπτομερή τμήματα. Το GnuCash μπορεί να εισάγει και να συγχωνεύσει αρχεία QIF του Quicken. Μπορεί επίσης να χειριστεί τις περισσότερες διεθνείς μορφές ημερομηνιών και νομισματικών μονάδων.

Για να εγκαταστήσετε το GnuCash στο σύστημα σας, γράψτε:

# pkg_add -r gnucash

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports:

# cd /usr/ports/finance/gnucash
# make install clean

12.2. Gnumeric

Το Gnumeric είναι ένα υπολογιστικό φύλλο και αποτελεί μέρος του περιβάλλοντος εργασίας GNOME. Διαθέτει βολική αυτόματη "πρόβλεψη" της εισόδου του χρήστη σύμφωνα με τη μορφή του κελιού καθώς και σύστημα αυτόματης συμπλήρωσης (autofill) για διάφορες ακολουθίες. Μπορεί να εισάγει αρχεία διάφορων δημοφιλών μορφών, όπως αυτά που χρησιμοποιούνται στο Excel, το Lotus 1-2-3, ή το Quattro Pro. Το Gnumeric υποστηρίζει γραφήματα μέσω του προγράμματος γραφικών math/guppi. Έχει μεγάλο αριθμό ενσωματωμένων συναρτήσεων και επιτρέπει όλες τις συνήθεις μορφές κελιών, όπως αριθμούς, νομισματικές μονάδες, ημερομηνίες, ώρες και πολλές ακόμα.

Για να εγκαταστήσετε το Gnumeric ως πακέτο, γράψτε:

# pkg_add -r gnumeric

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports, γράφοντας:

# cd /usr/ports/math/gnumeric
# make install clean

12.3. Abacus

Το Abacus είναι ένα μικρό και εύκολο στη χρήση υπολογιστικό φύλλο. Περιλαμβάνει πολλές ενσωματωμένες συναρτήσεις οι οποίες είναι χρήσιμες σε διάφορα πεδία, όπως η στατιστική, τα χρηματοοικονομικά και τα μαθηματικά. Μπορεί να εισάγει και να εξάγει αρχεία του Excel. Το Abacus μπορεί να παράγει έξοδο μορφής PostScript®.

Για να εγκαταστήσετε το Abacus ως πακέτο, γράψτε:

# pkg_add -r abacus

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports, γράφοντας:

# cd /usr/ports/deskutils/abacus
# make install clean

12.4. KMyMoney

Το KMyMoney είναι μια εφαρμογή διαχείρισης των προσωπικών σας οικονομικών, φτιαγμένη για το περιβάλλον KDE. To KMyMoney στοχεύει να παρέχει και να ενσωματώσει όλες τις λειτουργίες που διατίθενται σε αντίστοιχες εμπορικές εφαρμογές. Το KMyMoney μπορεί να εισάγει αρχεία του προτύπου QIF (Quicken Interchange Format), να τηρεί καταγραφή των επενδύσεων σας, να χειρίζεται πολλαπλές νομισματικές μονάδες και να παρέχει πλήθος αναφορών. Μέσα από ξεχωριστό plugin, παρέχεται επίσης η δυνατότητα εισαγωγής αρχείων OFX.

Για να εγκαταστήσετε το KMyMoney ως πακέτο, εκτελέστε την εντολή:

# pkg_add -r kmymoney2

Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports, όπως φαίνεται παρακάτω:

# cd /usr/ports/finance/kmymoney2
# make install clean

Chapter 13. Περίληψη

Αν και το FreeBSD είναι δημοφιλές στους παροχείς Internet (ISPs) για την απόδοση και τη σταθερότητα του, είναι επίσης έτοιμο και για καθημερινή χρήση ως desktop. Με αρκετές χιλιάδες εφαρμογές διαθέσιμες ως πακέτα ή ports, μπορείτε να δημιουργήσετε το τέλειο desktop που καλύπτει όλες τις ανάγκες σας.

Παρακάτω, φαίνεται μια γρήγορη περίληψη όλων των desktop εφαρμογών που παρουσιάστηκαν σε αυτό το κεφάλαιο:

Όνομα ΕφαρμογήςΌνομα ΠακέτουΌνομα Port

Opera

opera

www/opera

Firefox

firefox

www/firefox

Chromium

chromium

www/chromium

KOffice

koffice-kde4

editors/koffice-kde4

AbiWord

abiword

editors/abiword

The GIMP

gimp

graphics/gimp

OpenOffice.org

openoffice

editors/openoffice.org-3

LibreOffice

libreoffice

editors/libreoffice

Acrobat Reader®

acroread

print/acroread8

gv

gv

print/gv

Xpdf

xpdf

graphics/xpdf

GQview

gqview

graphics/gqview

GnuCash

gnucash

finance/gnucash

Gnumeric

gnumeric

math/gnumeric

Abacus

abacus

deskutils/abacus

KMyMoney

kmymoney2

finance/kmymoney2

Chapter 14. Πολυμέσα

14.1. Σύνοψη

Το FreeBSD υποστηρίζει μεγάλη ποικιλία από κάρτες ήχου, επιτρέποντας σας έτσι να απολαύσετε υψηλής πιστότητας ήχο από τον υπολογιστή σας. Περιλαμβάνεται η δυνατότητα να εγγράψετε και να αναπαράγετε ήχο MPEG Audio Layer 3 (MP3), WAV, και Ogg Vorbis καθώς και πολλά άλλα formats. Το FreeBSD Ports Collection επίσης περιέχει εφαρμογές που σας επιτρέπουν να επεξεργαστείτε τον ηχογραφημένο σας ήχο, να προσθέσετε ηχητικά εφέ, και να ελέγξετε συσκευές MIDI.

Με λίγο πειραματισμό, το FreeBSD μπορεί να υποστηρίξει αναπαραγωγή αρχείων video και DVD. Ο αριθμός των εφαρμογών που κωδικοποιούν, μετατρέπουν, και αναπαράγουν διάφορους τύπους video είναι πιο περιορισμένος από τον αριθμό των εφαρμογών ήχου. Για παράδειγμα, όταν γράφηκε αυτό το κείμενο, δεν υπήρχε καμιά καλή εφαρμογή επανακωδικοποίησης στη συλλογή των Ports του FreeBSD, που θα μπορούσε να χρησιμοποιηθεί για μετατροπή μεταξύ formats, όπως το audio/sox. Παρ' όλα αυτά, το τοπίο σε αυτό τον τομέα, και όσο αφορά το λογισμικό, αλλάζει ραγδαία.

Το κεφάλαιο αυτό θα περιγράψει τα απαραίτητα βήματα για τη ρύθμιση της κάρτας ήχου σας. Η ρύθμιση και εγκατάσταση του X11 (Το Σύστημα X Window) έχει ήδη φροντίσει για τα πιθανά προβλήματα υλικού της κάρτας γραφικών σας, αν και μπορεί να χρειάζεται να εφαρμόσετε κάποιες ακόμα μικρο-ρυθμίσεις για καλύτερη αναπαραγωγή.

Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:

  • Πως να ρυθμίσετε το σύστημα σας ώστε να αναγνωρίζεται η κάρτα ήχου σας.

  • Μεθόδους για να ελέγξετε τη λειτουργία της κάρτας σας.

  • Πως να επιλύσετε προβλήματα σχετικά με τις ρυθμίσεις ήχου.

  • Πως να αναπαράγετε και να κωδικοποιήσετε MP3 και άλλους τύπους αρχείων ήχου.

  • Πως υποστηρίζεται το video από τον X server.

  • Κάποια ports αναπαραγωγής/κωδικοποίησης video που δίνουν καλά αποτελέσματα.

  • Πως να αναπαράγετε DVD, και αρχεία .mpg και .avi.

  • Πως να κάνετε rip το περιεχόμενο CD και DVD σε αρχεία.

  • Πως να ρυθμίσετε μια κάρτα τηλεόρασης.

  • Πως να ρυθμίσετε ένα σαρωτή εικόνων.

Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:

Αν προσπαθήσετε να προσαρτήσετε μουσικά CD με την εντολή mount(8) θα προκληθεί κατ' ελάχιστον σφάλμα, ή στη χειρότερη περίπτωση kernel panic. Τέτοια μέσα έχουν εξειδικευμένες κωδικοποιήσεις που διαφέρουν από το συνηθισμένο σύστημα αρχείων ISO.

14.2. Ρύθμιση της Κάρτας Ήχου

14.2.1. Ρυθμίζοντας το Σύστημα

Πριν ξεκινήσετε, θα πρέπει να ξέρετε το μοντέλο της κάρτας που έχετε, το ολοκληρωμένο κύκλωμα που χρησιμοποιεί, καθώς και αν είναι PCI ή ISA. Το FreeBSD υποστηρίζει μεγάλη ποικιλία καρτών ήχου, τόσο PCI όσο και ISA. Ελέγξτε τις υποστηριζόμενες συσκευές ήχου στις Σημειώσεις Υλικού για να δείτε αν η κάρτα σας υποστηρίζεται. Στις Σημειώσεις Υλικού αναφέρεται επίσης ποιο πρόγραμμα οδήγησης υποστηρίζει την κάρτα σας.

Για να χρησιμοποιήσετε την συσκευή ήχου που διαθέτετε, θα πρέπει να φορτώσετε τον κατάλληλο οδηγό συσκευής. Αυτό μπορεί να επιτευχθεί με δύο τρόπους. Ο ευκολότερος είναι απλώς να φορτώσετε ένα module (άρθρωμα) για την κάρτα ήχου στον πυρήνα, χρησιμοποιώντας την εντολή kldload(8), με τη βοήθεια της γραμμής εντολών:

# kldload snd_emu10k1

ή προσθέτοντας την κατάλληλη γραμμή στο αρχείο /boot/loader.conf όπως παρακάτω:

snd_emu10k1_load="YES"

Τα παραπάνω παραδείγματα είναι για μια κάρτα ήχου Creative SoundBlaster® Live!. Υπάρχουν διαθέσιμα και άλλα modules για κάρτες ήχου και μπορείτε να τα δείτε στο αρχείο /boot/defaults/loader.conf. Αν δεν είστε σίγουρος για το πρόγραμμα οδήγησης που πρέπει να χρησιμοποιήσετε, μπορείτε να προσπαθήσετε να φορτώσετε το module snd_driver:

# kldload snd_driver

Πρόκειται για ένα μετα-πρόγραμμα οδήγησης, το οποίο φορτώνει με μιας όλα τα κοινά προγράμματα οδήγησης για κάρτες ήχου. Με τον τρόπο αυτό μπορείτε να επιταχύνετε την ανίχνευση για το σωστό οδηγό. Μπορείτε επίσης να φορτώσετε όλα τα προγράμματα οδήγησης μέσω του αρχείου /boot/loader.conf.

Αν επιθυμείτε να βρείτε το επιλεγμένο πρόγραμμα οδήγησης της κάρτας σας μετά τη φόρτωση του snd_driver, μπορείτε να ελέγξετε το αρχείο /dev/sndstat με την βοήθεια της εντολής cat /dev/sndstat.

Μια δεύτερη μέθοδος είναι να μεταγλωττίσετε την υποστήριξη της κάρτας ήχου σας, στατικά, απευθείας στον πυρήνα. Το παρακάτω τμήμα παρέχει τις πληροφορίες που χρειάζεστε για να προσθέσετε υποστήριξη για το υλικό σας με αυτό τον τρόπο. Για περισσότερες πληροφορίες σχετικά με την μεταγλώττιση του πυρήνα, δείτε το Ρυθμίζοντας τον Πυρήνα του FreeBSD.

14.2.1.1. Δημιουργώντας Προσαρμοσμένο Πυρήνα με Υποστήριξη Ήχου

Αρχικά, πρέπει να προσθέσετε το γενικό πρόγραμμα οδήγησης ήχου (audio framework driver) sound(4) στον πυρήνα σας. Θα χρειαστεί να προσθέσετε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα:

device sound

Έπειτα, θα πρέπει να προσθέσετε υποστήριξη για την κάρτα ήχου σας. Πρέπει να γνωρίζετε από πριν ποιο πρόγραμμα οδήγησης την υποστηρίζει. Ελέγξτε τη λίστα των υποστηριζόμενων καρτών στις Σημειώσεις Υλικού, για να καθορίσετε το σωστό οδηγό για την δική σας. Για παράδειγμα, ή Creative SoundBlaster® Live!, υποστηρίζεται από τον οδηγό snd_emu10k1(4). Για να προσθέσετε υποστήριξη για αυτή την κάρτα, χρησιμοποιήστε την ακόλουθη γραμμή:

device snd_emu10k1

Βεβαιωθείτε ότι διαβάσατε την σελίδα του manual για το πρόγραμμα οδήγησης, ώστε να χρησιμοποιήσετε τη σωστή σύνταξη. Η ακριβής σύνταξη για κάθε υποστηριζόμενη κάρτα ήχου στο αρχείο ρυθμίσεων πυρήνα, μπορεί να βρεθεί επίσης στο αρχείο /usr/src/sys/conf/NOTES.

Για κάρτα ήχου τύπου ISA που δεν είναι Plug’N’Play μπορεί να χρειαστεί να δώσετε στον πυρήνα πληροφορίες σχετικά με τις ρυθμίσεις της (όπως το IRQ, θύρα I/O κλπ), όπως γίνεται τυπικά σε αυτές τις περιπτώσεις. Αυτό μπορεί να γίνει μέσω του αρχείου /boot/device.hints. Κατά τη διαδικασία της εκκίνησης, ο loader(8) θα διαβάσει το αρχείο και θα μεταβιβάσει τις ρυθμίσεις στον πυρήνα. Για παράδειγμα, μια παλιά Creative SoundBlaster® 16 ISA μη-PnP κάρτα χρησιμοποιεί το πρόγραμμα οδήγησης 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 του sound(4) καθώς και στη σελίδα manual του αντίστοιχου προγράμματος οδήγησης.

Οι ρυθμίσεις που φαίνονται παραπάνω είναι οι προεπιλεγμένες. Σε ορισμένες περιπτώσεις, μπορεί να χρειαστεί να αλλάξετε το IRQ ή άλλες ρυθμίσεις ώστε να ταιριάζουν με τις ρυθμίσεις της κάρτας σας. Δείτε τη σελίδα manual της snd_sbc(4) για περισσότερες πληροφορίες σχετικά με την κάρτα αυτή.

14.2.2. Δοκιμάζοντας την Κάρτα Ήχου

Αφού κάνετε επανεκκίνηση με τον νέο πυρήνα (ή αφού φορτώσετε το απαραίτητο module), Θα πρέπει να δείτε μηνύματα σχετικά με την κάρτα ήχου στην προσωρινή μνήμη (buffer) καταγραφής του συστήματος (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:

# 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 και να το αναπαράγετε με το πρόγραμμα cdcontrol(1):

% cdcontrol -f /dev/acd0 play 1

Άλλες εφαρμογές, όπως το audio/workman παρέχουν φιλικότερο περιβάλλον εργασίας. Ίσως θέλετε να εγκαταστήσετε μια εφαρμογή όπως το audio/mpg123 για να αναπαράγετε αρχεία ήχου MP3.

Ένας άλλος γρήγορος τρόπος για να ελέγξετε την κάρτα ήχου σας, είναι να στείλετε δεδομένα στην συσκευή /dev/dsp, όπως παρακάτω:

% cat filename > /dev/dsp

όπου το filename μπορεί να είναι οποιοδήποτε αρχείο. Η παραπάνω εντολή θα πρέπει να παράγει κάποιο ήχο (θόρυβο) επιβεβαιώνοντας τη σωστή λειτουργία της κάρτας ήχου.

Τα αρχεία συσκευών /dev/dsp* δημιουργούνται αυτόματα όταν χρειάζεται. Δεν υπάρχουν αν δεν χρησιμοποιούνται και δεν θα εμφανιστούν στην έξοδο της ls(1)

Η ένταση ήχου της κάρτας μπορεί να αλλάξει μέσω της εντολής mixer(8). Περισσότερες πληροφορίες μπορείτε να βρείτε στην σελίδα του manual της mixer(8).

14.2.2.1. Συνηθισμένα Προβλήματα
ΠρόβλημαΛύση

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.

Ένα ακόμα πρόβλημα δημιουργείται από ορισμένες σύγχρονες κάρτες γραφικών οι οποίες περιέχουν μια δική τους συσκευή ήχου για χρήση μέσω συνδέσεων HDMI ή αντίστοιχων. Σε ορισμένες περιπτώσεις, είναι πιθανόν αυτή η συσκευή να εντοπισθεί πριν την κανονική κάρτα ήχου με αποτέλεσμα να πάρει τη θέση της προεπιλεγμένης συσκευής ήχου. Για να ελέγξετε αν συμβαίνει αυτό, εκτελέστε την εντολή dmesg και ψάξτε για τη λέξη pcm. Η έξοδος θα μοιάζει με την παρακάτω:

...
hdac0: HDA Driver Revision: 20100226_0142
hdac1: HDA Driver Revision: 20100226_0142
hdac0: HDA Codec #0: NVidia (Unknown)
hdac0: HDA Codec #1: NVidia (Unknown)
hdac0: HDA Codec #2: NVidia (Unknown)
hdac0: HDA Codec #3: NVidia (Unknown)
pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0
pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0
pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0
pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0
hdac1: HDA Codec #2: Realtek ALC889
pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1
pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1
pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1
pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1
...

Στο παράδειγμα μας, η κάρτα γραφικών (NVidia) εντοπίστηκε πριν την κανονική κάρτα ήχου (Realtek ALC889). Για να χρησιμοποιήσετε την πραγματική κάρτα ήχου ως την προεπιλεγμένη συσκευή ήχου, αλλάξτε το hw.snd.default_unit όπως φαίνεται παρακάτω:

# sysctl hw.snd.default_unit=n

Το n είναι ο αριθμός της συσκευής που θα χρησιμοποιηθεί, στο παράδειγμα μας το 4. Προσθέστε την παρακάτω γραμμή στο /etc/sysctl.conf για να γίνει μόνιμη αυτή η αλλαγή:

hw.snd.default_unit=4

14.2.3. Χρησιμοποιώντας Πολλαπλές Πηγές Ήχου

Είναι πολλές φορές επιθυμητό να έχουμε πολλαπλές πηγές ήχου που να αναπαράγονται ταυτόχρονα, όπως όταν για παράδειγμα το esound ή το artsd δεν επιτρέπουν κοινή χρήση της συσκευής ήχου σε κάποια συγκεκριμένη εφαρμογή.

Το FreeBSD επιτρέπει αυτή τη λειτουργία μέσω των Εικονικών Καναλιών Ήχου (Virtual Sound Channels), τα οποία μπορούν να ενεργοποιηθούν μέσω των δυνατοτήτων που παρέχονται από το sysctl(8). Τα Εικονικά Κανάλια σας επιτρέπουν να πολυπλέξετε τους ήχους που αναπαράγει η κάρτα σας, αναμιγνύοντας τον ήχο στον πυρήνα.

Για να ρυθμίσετε το πλήθος των εικονικών καναλιών, υπάρχουν τρεις ρυθμίσεις sysctl που μπορούν να γίνουν αν είστε ο χρήστης root, όπως φαίνεται παρακάτω:

# sysctl dev.pcm.0.play.vchans=4
# sysctl dev.pcm.0.rec.vchans=4
# sysctl hw.snd.maxautovchans=4

Το παραπάνω παράδειγμα παραχωρεί τέσσερα εικονικά κανάλια, τα οποία άνετα επαρκούν για καθημερινή χρήση. Οι τιμές dev.pcm.0.play.vchans=4 και dev.pcm.0.rec.vchans=4 αναφέρονται στον αριθμό των εικονικών καναλιών που διαθέτει η συσκευή pcm0 για αναπαραγωγή και εγγραφή, και μπορούν να ρυθμιστούν μετά την προσάρτηση της συσκευής. Η μεταβλητή hw.snd.maxautovchans είναι ο αριθμός των εικονικών καναλιών που παραχωρούνται σε μια νέα συσκευή ήχου όταν αυτή προσαρτάται μέσω της εντολής kldload(8). Καθώς το module pcm μπορεί να φορτωθεί ανεξάρτητα από τα προγράμματα οδήγησης του υλικού, το hw.snd.maxautovchans μπορεί να αποθηκεύσει το μέγιστο πλήθος των εικονικών καναλιών που θα παραχωρηθούν σε όσες συσκευές ήχου προσαρτηθούν αργότερα. Δείτε τη σελίδα manual pcm(4) για περισσότερες λεπτομέρειες.

Δεν μπορείτε να αλλάξετε τον αριθμό των εικονικών καναλιών μιας συσκευής όσο αυτή είναι σε χρήση. Πρώτα κλείστε όσα προγράμματα χρησιμοποιούν τη συσκευή, όπως προγράμματα αναπαραγωγής μουσικής ή δαίμονες ήχου.

Η σωστή συσκευή pcm αποδίδεται αυτόματα και διάφανα σε κάθε πρόγραμμα που ζητά να χρησιμοποιήσει το /dev/dsp0.

14.2.4. Ρυθμίζοντας Προεπιλεγμένες Τιμές για τα Κανάλια του Μίκτη

Οι προεπιλεγμένες τιμές για τα διάφορα κανάλια του μίκτη, είναι ενσωματωμένες στον πηγαίο κώδικα του προγράμματος οδήγησης pcm(4). Υπάρχουν πολλές διαφορετικές εφαρμογές και δαίμονες που σας επιτρέπουν να αλλάξετε τιμές στο μίκτη, απομνημονεύοντας τις μεταξύ διαδοχικών κλήσεων, αλλά ή λύση αυτή δεν είναι και η καλύτερη. Είναι δυνατόν να ορίσετε προεπιλεγμένες τιμές μίξης σε επίπεδο προγράμματος οδήγησης. Αυτό μπορεί να επιτευχθεί με την ρύθμιση κατάλληλων τιμών στο αρχείο /boot/device.hints, π.χ.:

hint.pcm.0.vol="50"

Το παραπάνω ρυθμίζει την ένταση του ήχου στην προεπιλεγμένη τιμή 50, όταν φορτωθεί το module pcm(4).

14.3. Ήχος MP3

Τα αρχεία ήχου MP3 (MPEG Layer 3 Audio) επιτυγχάνουν ποιότητα ήχου πολύ κοντά στο μουσικό CD, και είναι καλό να έχετε δυνατότητα αναπαραγωγής τους στο FreeBSD σύστημα σας.

14.3.1. Προγράμματα Αναπαραγωγής 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 στη γραμμή εντολών. Θεωρώντας ότι η συσκευή ήχου είναι το /dev/dsp1.0 και θέλετε να αναπαράγετε το αρχείο Foobar-GreatestHits.mp3, θα χρησιμοποιήσετε την παρακάτω εντολή:

# 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

14.3.2. Αποθήκευση (Rip) Αρχείων από Μουσικά CD

Πριν κωδικοποιήσετε ένα ολόκληρο CD ή ένα κομμάτι από CD σε αρχείο MP3, θα πρέπει να αντιγράψετε τα μουσικά δεδομένα από το CD στο σκληρό σας δίσκο. Αυτό γίνεται γράφοντας τα δεδομένα τύπου CDDA (CD Digital Audio) σε αρχεία WAV.

Το εργαλείο cdda2wav, το οποίο ανήκει στη συλλογή εργαλείων sysutils/cdrtools μπορεί να χρησιμοποιηθεί τόσο για την ανάκτηση των δεδομένων ήχου από μουσικά CD, όσο και πληροφοριών που σχετίζονται με αυτά.

Έχοντας το μουσικό CD στον οδηγό, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή (ως root) για να αποθηκεύσετε ένα ολόκληρο CD σε χωριστά (ανά κομμάτι) αρχεία WAV:

# cdda2wav -D 0,1,0 -B

Το cdda2wav υποστηρίζει οδηγούς CDROM τύπου ATAPI (IDE). Για να διαβάσετε δεδομένα από μια συσκευή IDE, χρησιμοποιήστε το όνομα συσκευής αντί για τον αριθμό μονάδας SCSI. Για παράδειγμα, για να αποθηκεύσετε το κομμάτι 7 από ένα οδηγό IDE:

# cdda2wav -D /dev/acd0 -t 7

Το -D 0,1,0 δείχνει τη συσκευή SCSI 0,1,0, που αντιστοιχεί στην έξοδο της εντολής cdrecord -scanbus.

Για να διαβάσετε μεμονωμένα κομμάτια, χρησιμοποιήστε την επιλογή -t όπως φαίνεται παρακάτω:

# cdda2wav -D 0,1,0 -t 7

Το παράδειγμα αυτό διαβάζει το κομμάτι επτά του μουσικού CD. Για να διαβάσετε μια σειρά από κομμάτια, για παράδειγμα από το ένα ως το επτά, καθορίστε μια περιοχή:

# cdda2wav -D 0,1,0 -t 1+7

Μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα dd(1) για να διαβάσετε μουσικά κομμάτια από οδηγούς ATAPI. Διαβάστε το Duplicating Audio CDs για περισσότερες πληροφορίες σχετικά με αυτή τη δυνατότητα.

14.3.3. Κωδικοποιώντας MP3

Στις μέρες μας, το προτιμώμενο πρόγραμμα κωδικοποίησης είναι το Lame. Μπορείτε να το βρείτε στη συλλογή των ports, στο audio/lame.

Χρησιμοποιώντας τα αρχεία WAV που έχετε αποθηκεύσει, μπορείτε να μετατρέψετε το αρχείο audio01.wav σε audio01.mp3 με την εντολή:

# 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 που θα προκύψει, ωστόσο και η ποιότητα θα είναι υψηλότερη. Η επιλογή -h ενεργοποιεί τη δυνατότητα "υψηλότερης ποιότητας αλλά ελαφρά πιο αργής κωδικοποίησης". Οι επιλογές που ξεκινούν με --t δείχνουν ετικέτες (tags) ID3, οι οποίες συνήθως περιέχουν πληροφορίες σχετικές με το τραγούδι και οι οποίες μπορούν να ενσωματωθούν μέσα σε αρχεία MP3. Μπορείτε να βρείτε περισσότερες επιλογές σχετικά με την κωδικοποίηση, αν συμβουλευτείτε τη σελίδα manual του προγράμματος lame.

14.3.4. Αποκωδικοποιώντας MP3

Για να μπορέσετε να γράψετε μουσικό CD από αρχεία MP3, θα πρέπει να τα μετατρέψετε ξανά σε μορφή ασυμπίεστου αρχείου WAV. Τόσο το XMMS όσο και το mpg123 υποστηρίζουν εξαγωγή αρχείου MP3 σε ασυμπίεστη μορφή αρχείου.

Γράφοντας στο Δίσκο μέσω του XMMS:

  1. Ξεκινήστε το XMMS.

  2. Κάντε δεξί κλικ στο παράθυρο της εφαρμογής για να ανοίξετε το μενού του XMMS.

  3. Επιλέξτε Preferences από τα Options.

  4. Αλλάξτε το Output Plugin σε "Disk Writer Plugin".

  5. Πιέστε Configure.

  6. Γράψτε (ή επιλέξτε browse) ένα κατάλογο για να αποθηκεύσετε τα αποσυμπιεσμένα αρχεία.

  7. Φορτώστε το αρχείο MP3 στο XMMS όπως συνήθως, με την ένταση στο 100% και τις ρυθμίσεις EQ ανενεργές.

  8. Πιέστε το Play. Το XMMS θα φαίνεται ότι αναπαράγει το MP3, αλλά δεν θα ακούγεται κανείς ήχος. Στην πραγματικότητα αναπαράγει το MP3 σε αρχείο.

  9. Όταν τελειώσετε, βεβαιωθείτε ότι επαναφέρατε τη ρύθμιση του προεπιλεγμένου Output Plugin στην προηγούμενη επιλογή της, για να μπορέσετε να ακούσετε ξανά αρχεία MP3.

Γράφοντας στην έξοδο μέσω του mpg123:

  1. Εκτελέστε mpg123 -s audio01.mp3 > audio01.pcm

Το XMMS γράφει αρχεία σε μορφή WAV, ενώ το mpg123 μετατρέπει το MP3 σε μη- επεξεργασμένα (raw) δεδομένα ήχου PCM. Και οι δύο αυτές μορφές μπορούν να χρησιμοποιηθούν με την εφαρμογή cdrecord για τη δημιουργία μουσικών CD. Για την εφαρμογή burncd(8) θα πρέπει να χρησιμοποιήσετε δεδομένα PCM. Αν χρησιμοποιήσετε αρχεία WAV θα παρατηρήσετε ένα μικρό ήχο (tick) στην αρχή κάθε κομματιού. Ο ήχος αυτός προέρχεται από την επικεφαλίδα (header) του αρχείου WAV. Μπορείτε να αφαιρέσετε την επικεφαλίδα με τη βοήθεια του προγράμματος SoX (μπορείτε να το εγκαταστήσετε από το port audio/sox ή το αντίστοιχο πακέτο):

% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw

Διαβάστε το Creating and Using CD Media για περισσότερες πληροφορίες σχετικά με τη χρήση CD εγγραφής στο FreeBSD

14.4. Αναπαραγωγή Video

Η αναπαραγωγή video είναι μια καινούρια και ραγδαία αναπτυσσόμενη περιοχή εφαρμογών. Θα χρειαστεί να δείξετε υπομονή. Δεν πρόκειται να λειτουργήσουν όλα τόσο ομαλά όπως στον ήχο.

Πριν ξεκινήσετε, θα πρέπει να γνωρίζετε το μοντέλο της κάρτας γραφικών που έχετε καθώς και το ολοκληρωμένο κύκλωμα που χρησιμοποιεί. Αν και το Xorg υποστηρίζει μεγάλη γκάμα από κάρτες γραφικών, αυτές που παρέχουν καλή απόδοση είναι λιγότερες. Για να πάρετε μια λίστα των εκτεταμένων δυνατοτήτων που υποστηρίζονται από την κάρτα σας, χρησιμοποιήστε την εντολή xdpyinfo(1) την ώρα που εκτελούνται τα X11.

Είναι γενικά καλή ιδέα να έχετε ένα μικρό αρχείο MPEG το οποίο μπορεί να χρησιμοποιηθεί για δοκιμές διαφορετικών επιλογών και προγραμμάτων αναπαραγωγής. Κάποια προγράμματα αναπαραγωγής DVD αναζητούν από προεπιλογή το δίσκο DVD στη συσκευή /dev/dvd. Σε ορισμένα το όνομα της συσκευής είναι ενσωματωμένο στον κώδικα του προγράμματος. Για το λόγο αυτό, ίσως είναι χρήσιμο να φτιάξετε συμβολικές συνδέσεις προς τις πραγματικές συσκευές:

# ln -sf /dev/acd0 /dev/dvd
# ln -sf /dev/acd0 /dev/rdvd

Σημειώστε ότι λόγω της φύσης του συστήματος devfs(5), αυτού του είδους οι συνδέσεις δεν παραμένουν μετά την επανεκκίνηση του συστήματος σας. Για να δημιουργούνται οι συμβολικές συνδέσεις αυτόματα σε κάθε εκκίνηση του συστήματος σας, προσθέστε τις ακόλουθες γραμμές στο αρχείο /etc/devfs.conf:

link acd0 dvd
link acd0 rdvd

Επιπρόσθετα, η αποκωδικοποίηση DVD, η οποία χρειάζεται κλήση ειδικών λειτουργιών του DVD-ROM, απαιτεί και άδεια εγγραφής (write permission) στις συσκευές DVD.

Για τη βελτίωση της λειτουργίας της κοινόχρηστης μνήμης του συστήματος X11, συνίσταται να αυξήσετε τις τιμές κάποιων μεταβλητών sysctl(8):

kern.ipc.shmmax=67108864
kern.ipc.shmall=32768

14.4.1. Προσδιορισμός Δυνατοτήτων Κάρτας Γραφικών

Υπάρχουν αρκετοί διαφορετικοί τρόποι για την απεικόνιση video στο X11. Το τι θα δουλέψει τελικά, εξαρτάται σε μεγάλο βαθμό από το υλικό σας. Κάθε μέθοδος που περιγράφουμε παρακάτω θα δώσει διαφορετική ποιότητα σε διαφορετικό υλικό. Επίσης, η αναπαραγωγή video στο X11 είναι ένα θέμα στο οποίο πρόσφατα δίνεται μεγάλη σημασία, και πιθανόν θα υπάρχουν αρκετές βελτιώσεις σε κάθε νέα έκδοση του Xorg.

Κατάλογος κοινών διεπαφών video:

  1. X11: Συνηθισμένη έξοδος του X11 με χρήση κοινόχρηστης μνήμης.

  2. XVideo: μια επέκταση της διεπαφής X11 που υποστηρίζει αναπαραγωγή video σε οποιαδήποτε σχεδιάσιμη επιφάνεια του X11.

  3. SDL: Simple Directmedia Layer.

  4. DGA: Direct Graphics Access.

  5. SVGAlib: Επίπεδο γραφικών χαμηλού επιπέδου για κονσόλα.

14.4.1.1. XVideo

Το Xorg διαθέτει μια επέκταση που ονομάζεται XVideo (γνωστή και ως Xvideo, Xv, xv) και το οποίο επιτρέπει την απευθείας απεικόνιση video σε σχεδιάσιμα αντικείμενα μέσω ειδικής επιτάχυνσης. Η επέκταση αυτή παρέχει αναπαραγωγή πολύ καλής ποιότητας, ακόμα και σε μηχανήματα χαμηλών προδιαγραφών.

Για να δείτε αν χρησιμοποιείται η επέκταση, χρησιμοποιήστε την εντολή xvinfo:

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

14.4.1.2. Το Επίπεδο Simple Directmedia Layer

Το Simple Directmedia Layer, SDL, προορίζονταν να γίνει ένα επίπεδο συμβατότητας μεταξύ των Microsoft® Windows®, BeOS, και του UNIX®, επιτρέποντας ανάπτυξη εφαρμογών ήχου και εικόνας, κατάλληλες για κάθε μια από αυτές τις πλατφόρμες (cross-platform). Το επίπεδο SDL παρέχει χαμηλού επιπέδου πρόσβαση στο υλικό, και σε ορισμένες περιπτώσεις μπορεί να είναι πιο αποδοτικό από την διεπαφή X11.

Το SDL μπορεί να βρεθεί στο devel/sdl12.

14.4.1.3. Το Επίπεδο Direct Graphics Access

Το Direct Graphics Access είναι μια επέκταση του X11 που επιτρέπει σε ένα πρόγραμμα να προσπεράσει τον X server και να αλλάξει απευθείας τα περιεχόμενα του framebuffer (μνήμης γραφικών). Δεδομένου ότι βασίζεται σε διαχείριση μνήμης χαμηλού επιπέδου, τα προγράμματα που το χρησιμοποιούν πρέπει να εκτελούνται ως root.

Η επέκταση DGA μπορεί να ελεγχθεί και να μετρηθεί ως προς την απόδοση της με το πρόγραμμα dga(1). Όταν εκτελείται η εντολή dga, αλλάζει τα χρώματα της οθόνης σε κάθε πίεση ενός πλήκτρου. Για να ακυρώσετε την εκτέλεση, πιέστε q.

14.4.2. Πακέτα και Ports που Σχετίζονται με Video

Το τμήμα αυτό περιγράφει το λογισμικό που διατίθεται στη συλλογή των ports του FreeBSD και το οποίο μπορεί να χρησιμοποιηθεί για αναπαραγωγή video. Ο τομέας της αναπαραγωγής video είναι ιδιαίτερα ενεργός όσο αφορά την ανάπτυξη λογισμικού, και έτσι οι δυνατότητες των εφαρμογών πιθανώς να αποκλίνουν κάπως από αυτές που περιγράφονται εδώ.

Είναι αρχικά σημαντικό να γνωρίζετε ότι αρκετές από τις εφαρμογές video που εκτελούνται στο FreeBSD αναπτύχθηκαν αρχικά ως εφαρμογές Linux. Πολλές από αυτές τις εφαρμογές είναι ακόμα ποιότητας beta. Κάποια από τα προβλήματα που μπορεί να συναντήσετε στις εφαρμογές video του FreeBSD περιλαμβάνουν:

  1. Μια εφαρμογή δεν μπορεί να αναπαράγει ένα αρχείο που δημιουργήθηκε από κάποια άλλη.

  2. Μια εφαρμογή δεν μπορεί να αναπαράγει ένα αρχείο που δημιούργησε η ίδια.

  3. Η ίδια εφαρμογή, σε δυο διαφορετικά μηχανήματα, και αφού έχει μεταγλωττιστεί σε κάθε μηχάνημα ειδικά για αυτό, αναπαράγει το ίδιο αρχείο με διαφορετικό τρόπο.

  4. Κάποιο φαινομενικά απλό φίλτρο, όπως αυτό της αλλαγής μεγέθους εικόνας (rescaling), έχει ως αποτέλεσμα την δημιουργία κακής ποιότητας video (τεχνουργημάτων) εξαιτίας προβληματικής ρουτίνας μεγέθυνσης

  5. Κάποια εφαρμογή τερματίζεται απότομα συχνά.

  6. Δεν εγκαθίσταται η τεκμηρίωση του προγράμματος κατά την εγκατάσταση του port, ενώ μπορεί να βρεθεί είτε στο δικτυακό τόπο του προγράμματος είτε στον κατάλογο work του port.

Πολλές από τις εφαρμογές αυτές μπορεί επίσης να παρουσιάσουν συμπτώματα "Linux-ισμού". Μπορεί δηλ. να εμφανίζουν προβλήματα που οφείλονται στον τρόπο με τον οποίο υλοποιούνται κάποιες στάνταρ βιβλιοθήκες στις διανομές του Linux, ή ίσως οι συγγραφείς να έχουν θεωρήσει ως δεδομένες κάποιες δυνατότητες του πυρήνα όπως υπάρχουν στο Linux. Τα προβλήματα αυτά δεν είναι σίγουρο ότι ανακαλύπτονται και διορθώνονται πάντα από τους συντηρητές του port, το οποίο μπορεί να οδηγήσει σε προβλήματα όπως τα παρακάτω:

  1. Χρήση του αρχείου /proc/cpuinfo για την ανίχνευση των δυνατοτήτων του επεξεργαστή.

  2. Κακή χρήση των threads (νημάτων) το οποίο οδηγεί το πρόγραμμα σε κόλλημα αντί για κανονικό τερματισμό στο τέλος της εκτέλεσης.

  3. Χρήση λογισμικού που δεν υπάρχει ακόμα στη συλλογή των ports του FreeBSD σε συνδυασμό με την εφαρμογή.

Μέχρι στιγμής οι συγγραφείς των εφαρμογών αυτών έχουν αποδειχθεί συνεργάσιμοι με τους συντηρητές των ports, ώστε να ελαχιστοποιηθούν οι επεμβάσεις που χρειάζονται για την μετατροπή (porting) των εφαρμογών.

14.4.2.1. MPlayer

Ο MPlayer είναι μια εφαρμογή αναπαραγωγής video που αναπτύχθηκε πρόσφατα και εξελίσσεται ταχύτατα. Οι στόχοι της ομάδας ανάπτυξης του MPlayer είναι η ταχύτητα και η ευελιξία στο Linux και στα άλλα Unix. Η δημιουργία του ξεκίνησε όταν ο αρχηγός της ομάδας ανάπτυξης κουράστηκε να αντιμετωπίζει τα προβλήματα αναπαραγωγής των μέχρι τότε διαθέσιμων προγραμμάτων. Κάποιοι υποστηρίζουν ότι το γραφικό περιβάλλον θυσιάστηκε για να δημιουργηθεί μια ομοιόμορφη σχεδίαση. Ωστόσο, μόλις συνηθίσετε τις επιλογές που δίνονται από τη γραμμή εντολών και τα αντίστοιχα πλήκτρα, θα μπορέσετε να τον χρησιμοποιήσετε αρκετά καλά.

14.4.2.1.1. Μεταγλώττιση του MPlayer

Ο MPlayer βρίσκεται στο multimedia/mplayer. Ο MPlayer κάνει πλήθος ελέγχων του υλικού κατά τη διαδικασία της μεταγλώττισης, φτιάχνοντας έτσι ένα εκτελέσιμο το οποίο δεν έχει φορητότητα από ένα σύστημα σε ένα άλλο. Για το σκοπό αυτό, είναι σημαντικό να τον εγκαταστήσετε από τα ports και όχι από έτοιμο πακέτο. Επιπρόσθετα, μπορείτε να καθορίσετε πλήθος επιλογών στην γραμμή εντολών του make όπως περιγράφεται στο Makefile και κατά την έναρξη της διαδικασίας μεταγλώττισης:

# cd /usr/ports/multimedia/mplayer
# 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®.

14.4.2.1.2. Χρησιμοποιώντας τον MPlayer

Κάθε χρήστης του MPlayer πρέπει να δημιουργήσει ένα υποκατάλογο .mplayer μέσα στον προσωπικό του κατάλογο. Για να δημιουργήσετε τον απαραίτητο υποκατάλογο, μπορείτε να γράψετε το παρακάτω:

% cd /usr/ports/multimedia/mplayer
% make install-user

Οι επιλογές της γραμμής εντολών του mplayer περιγράφονται στη σελίδα του manual. Για ακόμα περισσότερες λεπτομέρειες, υπάρχει τεκμηρίωση σε μορφή HTML. Στο τμήμα αυτό θα περιγράψουμε μερικές μόνο κοινές χρήσεις.

Για να αναπαράγετε ένα αρχείο, όπως το testfile.avi, μέσω ενός από τα αρκετά video interfaces χρησιμοποιήστε την επιλογή -vo:

% mplayer -vo xv testfile.avi
% mplayer -vo sdl testfile.avi
% mplayer -vo x11 testfile.avi
# mplayer -vo dga testfile.avi
# mplayer -vo 'sdl:dga' testfile.avi

Αξίζει τον κόπο να δοκιμάσετε όλες αυτές τις επιλογές, καθώς η απόδοση τους εξαρτάται από πολλούς παράγοντες και διαφοροποιείται αρκετά ανάλογα με το υλικό του υπολογιστή σας.

Για αναπαραγωγή από DVD, αντικαταστήστε το testfile.avi με dvd://N -dvd-device DEVICE όπου το N είναι ο αριθμός του τίτλου (title number) που επιθυμείτε να αναπαράγετε και DEVICE είναι το όνομα συσκευής του DVD-ROM. Για παράδειγμα, για να αναπαράγετε τον τίτλο 3 από τη συσκευή /dev/dvd:

# mplayer -vo xv dvd://3 -dvd-device /dev/dvd

Η προεπιλεγμένη συσκευή DVD μπορεί να καθοριστεί κατά τη διάρκεια της μεταγλώττισης του MPlayer port μέσω της επιλογής WITH_DVD_DEVICE. Από προεπιλογή, η συσκευή αυτή είναι η /dev/acd0. Μπορείτε να βρείτε περισσότερες πληροφορίες στο αρχείο Makefile του port.

Για τα πλήκτρα που χρησιμοποιούνται για παύση, διακοπή, μετακίνηση κλπ. κατά τη διάρκεια της αναπαραγωγής, συμβουλευτείτε την βοήθεια που μπορείτε να δείτε εκτελώντας mplayer -h ή διαβάστε τη σελίδα του manual.

Επιπρόσθετα, σημαντικές επιλογές αναπαραγωγής είναι: -fs -zoom το οποίο ενεργοποιεί απεικόνιση σε πλήρη οθόνη και το -framedrop το οποίο βοηθάει στην αύξηση της απόδοσης.

Για να μείνει το μέγεθος της γραμμής εντολών το δυνατόν μικρό, ο χρήστης μπορεί να δημιουργήσει ένα αρχείο .mplayer/config και να ορίσει εκεί τις προεπιλεγμένες επιλογές:

vo=xv
fs=yes
zoom=yes

Τέλος, ο mplayer μπορεί να χρησιμοποιηθεί για την εξαγωγή (rip) ενός τίτλου DVD σε ένα αρχείο .vob file. Για την εξαγωγή του δεύτερου τίτλου από ένα DVD, γράψτε:

# mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd

Το αρχείο εξόδου, out.vob, θα είναι τύπου MPEG και μπορείτε να το μεταχειριστείτε μέσω άλλων πακέτων video που περιγράφονται σε αυτό το τμήμα.

14.4.2.1.3. mencoder

Πριν χρησιμοποιήσετε το mencoder είναι καλή ιδέα να εξοικειωθείτε με τις επιλογές που αναφέρονται στην τεκμηρίωση HTML. Υπάρχει σελίδα manual, αλλά δεν είναι πολύ χρήσιμη χωρίς την HTML τεκμηρίωση. Υπάρχουν πάρα πολλοί τρόποι για να βελτιώσετε την ποιότητα, να μειώσετε το ρυθμό δεδομένων (bitrate) να αλλάξετε μορφή αρχείου, και κάποια από αυτά τα κόλπα μπορεί να κάνουν τη διαφορά μεταξύ καλής και κακής απόδοσης. Εδώ θα δείτε μερικά παραδείγματα για να ξεκινήσετε. Πρώτα μια απλή αντιγραφή:

% mencoder input.avi -oac copy -ovc copy -o output.avi

Λανθασμένοι συνδυασμοί στη γραμμή εντολών, μπορεί να δώσουν αρχεία εξόδου τα οποία δεν μπορεί να αναπαράγει ούτε ο ίδιος ο mplayer. Έτσι, αν απλώς θέλετε να κάνετε rip ένα αρχείο, μείνετε στην επιλογή -dumpfile του mplayer.

Για να μετατρέψετε το input.avi σε codec MPEG4 με ήχο MPEG3 (απαιτείται το audio/lame):

% mencoder input.avi -oac mp3lame -lameopts br=192 \
	 -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi

Με τον τρόπο αυτό παράγεται έξοδος που μπορεί να αναπαραχθεί από τον mplayer και το xine.

Μπορείτε να αντικαταστήσετε το input.avi με την επιλογή dvd://1 -dvd-device /dev/dvd και να το εκτελέσετε ως root για να επανακωδικοποιήσετε απευθείας ένα τίτλο DVD. Μια και πιθανώς δεν θα μείνετε ικανοποιημένος με το αποτέλεσμα από την πρώτη φορά, σας συνιστούμε να κατεβάσετε τον τίτλο σε ένα αρχείο και να δουλέψετε σε αυτό.

14.4.2.2. Το Πρόγραμμα Αναπαραγωγής xine

Το xine είναι ένα project με ευρύ σκοπό, το οποίο προορίζεται όχι μόνο να γίνει ένα πρόγραμμα όλα σε ένα όσο αφορά το video, αλλά επίσης στο να παράγει μια επαναχρησιμοποιήσιμη βασική βιβλιοθήκη και ένα αρθρωτό εκτελέσιμο το οποίο μπορεί να επεκταθεί με πρόσθετα (plugins). Μπορείτε να το εγκαταστήσετε τόσο από πακέτο, όσο και από το port, multimedia/xine.

Το xine είναι ακόμα κάπως χοντροκομμένο, αλλά σίγουρα έχει ξεκινήσει καλά. Στην πράξη, το xine χρειάζεται είτε γρήγορο επεξεργαστή και κάρτα γραφικών, ή υποστήριξη της επέκτασης XVideo. Το γραφικό περιβάλλον είναι χρησιμοποιήσιμο, αλλά κάπως αδέξια φτιαγμένο.

Την ώρα που γράφονταν αυτές οι γραμμές δεν διανέμονταν module μαζί με την εφαρμογή xine, ικανό να αναπαράγει DVD με CSS κωδικοποίηση. Υπάρχουν εκδόσεις από τρίτους κατασκευαστές οι οποίες έχουν ενσωματωμένο το παραπάνω module αλλά καμιά από αυτές δεν βρίσκεται στην συλλογή των ports του FreeBSD.

Σε σύγκριση με τον MPlayer, το xine κάνει περισσότερα για το χρήστη, αλλά την ίδια στιγμή, δεν επιτρέπει τόσο λεπτομερειακό έλεγχο. Το xine αποδίδει καλύτερα σε λειτουργία XVideo.

Από προεπιλογή, το xine θα ξεκινήσει σε γραφικό περιβάλλον (GUI). Μπορείτε να χρησιμοποιήσετε το μενού για να ανοίξετε ένα συγκεκριμένο αρχείο:

% xine

Εναλλακτικά, μπορείτε να το καλέσετε να αναπαράγει ένα αρχείο απευθείας από την γραμμή εντολών, χωρίς τη χρήση του GUI:

% xine -g -p mymovie.avi
14.4.2.3. Τα Βοηθητικά Προγράμματα transcode

Η εφαρμογή transcode δεν είναι πρόγραμμα αναπαραγωγής, αλλά μια σουίτα εργαλείων για επανακωδικοποίηση αρχείων video και ήχου. Με την εφαρμογή transcode, έχετε την δυνατότητα να αναμίξετε αρχεία video, να επισκευάσετε χαλασμένα αρχεία, χρησιμοποιώντας εργαλεία της γραμμής εντολών τα οποία χειρίζονται δεδομένα από τα κανάλια stdin/stdout.

Μεγάλο πλήθος εφαρμογών μπορούν να καθοριστούν κατά τη διάρκεια της μεταγλώττισης του port multimedia/transcode και συνιστούμε την ακόλουθη γραμμή εντολών για τη μεταγλώττιση του transcode:

# 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):

% transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
% 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 για περισσότερες πληροφορίες και παραδείγματα.

14.4.3. Επιπλέον Διάβασμα

Υπάρχει ραγδαία εξέλιξη στα διαθέσιμα πακέτα video για το FreeBSD. Είναι αρκετά πιθανό ότι στο άμεσο μέλλον πολλά από τα προβλήματα που αναφέρονται εδώ θα έχουν επιλυθεί. Στο ενδιάμεσο διάστημα, όσοι ενδιαφέρονται να χρησιμοποιήσουν τις δυνατότητες A/V του FreeBSD στο έπακρο θα πρέπει να συνδυάσουν γνώσεις από διάφορα FAQ και tutorials και να χρησιμοποιήσουν αρκετές διαφορετικές εφαρμογές. Το τμήμα αυτό υπάρχει ακριβώς για να δείξει στον αναγνώστη που μπορεί να βρει τέτοιες πρόσθετες πληροφορίες.

Η Τεκμηρίωση του Mplayer είναι αρκετά πληροφοριακή όσο αφορά το τεχνικό επίπεδο. Αν έχετε σκοπό να αποκτήσετε υψηλό ποσοστό εμπειρίας σε σχέση με το video στο UNIX®, θα πρέπει οπωσδήποτε να την συμβουλευτείτε. Η λίστα αλληλογραφίας του MPlayer είναι εχθρική σε όποιον δεν έχει κάνει τον κόπο να διαβάσει την τεκμηρίωση, έτσι αν σκοπεύετε να κάνετε αναφορές σφαλμάτων, βεβαιωθείτε ότι την έχετε διαβάσει.

Το xine HOWTO περιέχει ένα κεφάλαιο σχετικά με την βελτίωση της απόδοσης, το οποίο είναι κοινό για όλα τα προγράμματα αναπαραγωγής.

Τέλος, υπάρχουν κάποιες άλλες πολλά υποσχόμενες εφαρμογές που ίσως επιθυμείτε να δοκιμάσετε:

14.5. Ρύθμιση Κάρτας Τηλεόρασης

14.5.1. Εισαγωγή

Οι κάρτες τηλεόρασης σας επιτρέπουν να βλέπετε τηλεόραση, κανονική ή καλωδιακή, στον υπολογιστή σας. Οι περισσότερες από αυτές δέχονται επίσης σήμα σύνθετου (composite) video, μέσω εισόδου RCA ή S-video, και κάποιες από αυτές διαθέτουν και ραδιοφωνικό δέκτη FM.

Το FreeBSD παρέχει υποστήριξη για κάρτες TV τύπου PCI που χρησιμοποιούν τα ολοκληρωμένα κυκλώματα σύλληψης video, Brooktree Bt848/849/878/879 ή Conexant CN-878/Fusion 878a με το πρόγραμμα οδήγησης bktr(4). Θα πρέπει επίσης να βεβαιωθείτε ότι η κάρτα έρχεται με δέκτη που υποστηρίζεται. Συμβουλευτείτε τη σελίδα manual του bktr(4) για να δείτε τη λίστα των υποστηριζόμενων δεκτών.

14.5.2. Εγκαθιστώντας το Πρόγραμμα Οδήγησης

Για να χρησιμοποιήσετε την κάρτα θα πρέπει να φορτώσετε το πρόγραμμα οδήγησης 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 του sysctl(8) καθώς και επιλογές στο αρχείο ρυθμίσεων πυρήνα. Για παράδειγμα, να θέλετε να επιβάλετε ο δέκτης να είναι τύπου Philips SECAM, θα πρέπει να προσθέσετε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα σας:

options OVERRIDE_TUNER=6

ή μπορείτε να χρησιμοποιήσετε απευθείας το sysctl(8):

# sysctl hw.bt848.tuner=6

Δείτε τη σελίδα manual του bktr(4) καθώς και το αρχείο /usr/src/sys/conf/NOTES για περισσότερες λεπτομέρειες σχετικά με τις διαθέσιμες επιλογές.

14.5.3. Χρήσιμες Εφαρμογές

Για να χρησιμοποιήσετε την κάρτα τηλεόρασης, θα πρέπει να εγκαταστήσετε μια από τις παρακάτω εφαρμογές:

  • Το multimedia/fxtv παρέχει δυνατότητα να δείτε τηλεόραση σε παράθυρο, καθώς και την δυνατότητα σύλληψης εικόνας / ήχου / video.

  • Το multimedia/xawtv είναι επίσης εφαρμογή τηλεόρασης, με δυνατότητες όμοιες με το fxtv.

  • Το misc/alevt αποκωδικοποιεί και απεικονίζει Videotext/Teletext.

  • Το audio/xmradio είναι μια εφαρμογή για να χρησιμοποιήσετε το δέκτη FM που είναι ενσωματωμένος σε κάποιες κάρτες τηλεόρασης.

  • Το audio/wmtune είναι μια βολική desktop εφαρμογή για ραδιοφωνικούς δέκτες.

Μπορείτε να βρείτε περισσότερες εφαρμογές στη συλλογή των Ports του FreeBSD.

14.5.4. Αντιμετώπιση Προβλημάτων

Αν αντιμετωπίσετε κάποιο πρόβλημα με την κάρτα τηλεόρασης, θα πρέπει πρώτα να ελέγξετε αν το ολοκληρωμένο σύλληψης video καθώς και ο δέκτης υποστηρίζονται από το πρόγραμμα οδήγησης bktr(4) και αν έχετε χρησιμοποιήσει τις σωστές ρυθμίσεις στις επιλογές σας. Για επιπλέον υποστήριξη καθώς και διάφορες ερωτήσεις σχετικά με την κάρτα σας, ίσως θέλετε να επικοινωνήσετε με τη λίστα ηλεκτρονική λίστα του FreeBSD για τα πολυμέσα και να διαβάσετε τις παλιότερες δημοσιεύσεις από τα αρχεία της λίστας.

14.6. MythTV

Το MythTV είναι ένα πρόγραμμα τύπου PVR (Προσωπικός καταγραφέας video).

Στον κόσμο του Linux® το MythTV είναι ένα γνωστό πρόγραμμα με πολλές εξαρτήσεις οι οποίες δυσκολεύουν την εγκατάσταση του. Το port του FreeBSD απλοποιεί το μεγαλύτερο μέρος της διαδικασίας αλλά ορισμένα τμήματα του πρέπει να εγκατασταθούν χειροκίνητα. Η ενότητα αυτή περιέχει οδηγίες που θα σας βοηθήσουν να ρυθμίσετε το MythTV.

14.6.1. Υλικό

Το MythTV έχει σχεδιαστεί να χρησιμοποιεί το V4L για την πρόσβαση σε συσκευές video όπως κωδικοποιητές (encoders) και δέκτες. Τη δεδομένη στιγμή, το MythTV λειτουργεί καλύτερα με κάρτες DVB-S/C/T με διασύνδεση USB που υποστηρίζονται από το multimedia/webcamd καθώς το webcamd παρέχει μια εφαρμογή χρήστη για το V4L. Οποιαδήποτε κάρτα DVB που υποστηρίζεται από το webcamd θα πρέπει φυσιολογικά να λειτουργεί με το MythTV. Μπορείτε ωστόσο να βρείτε εδώ μια λίστα με δοκιμάσμενες κάρτες. Για κάρτες τις Hauppauge μπορείτε να βρείτε προγράμματα οδήγησης στα πακέτα multimedia/pvr250 και multimedia/pvrxxx, αλλά να έχετε υπόψη σας ότι χρησιμοποιούν μια μη-τυποποιημένη διεπαφή η οποία δεν λειτουργεί με εκδόσεις του MythTV μεταγενέστερες της 0.23.

Το HTPC περιέχει μια λίστα όλων των διαθέσιμων προγραμμάτων οδήγησης DVB.

14.6.2. Εξαρτήσεις

Καθώς το MythTV είναι ευέλικτο και αρθρωτό, επιτρέπει στο χρήστη να έχει το frontend και το backend σε διαφορετικά μηχανήματα.

Για το frontend, απαιτείται το multimedia/mythtv-frontend και ο εξυπηρετητής X τον οποίο μπορείτε να βρείτε στο x11/xorg. Ιδανικά, ο υπολογιστής που θα εκτελεί το frontend θα πρέπει επίσης να έχει μια κάρτα γραφικών η οποία να υποστηρίζει XvMC και προαιρετικά ένα τηλεχειριστήριο συμβατό με LIRC.

Για το backend, χρειάζεται το multimedia/mythtv όπως και μια βάση δεδομένων MySQL™ και προαιρετικά ένας δέκτης και αποθηκευτικός χώρος για εγγραφές. Το πακέτο για την MySQL™ θα πρέπει να εγκατασταθεί αυτόματα ως εξάρτηση κατά την εγκατάσταση του multimedia/mythtv.

14.6.3. Εγκατάσταση MythTV

Για να εγκαταστήσετε το MythTV, χρησιμοποιήστε τα παρακάτω βήματα. Αρχικά εγκαταστήστε το MythTV από την Συλλογή των Ports του FreeBSD:

# cd /usr/ports/multimedia/mythtv
# make install

Εγκαταστήστε τη βάση δεδομένων του MythTV:

# mysql -uroot -p < /usr/local/shared/mythtv/database/mc.sql

Ρυθμίστε το backend:

# mythtv-setup

Ξεκινήστε το backend:

# echo 'mythbackend_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/mythbackend start

14.7. Σαρωτές Εικόνας

14.7.1. Εισαγωγή

Στο FreeBSD η πρόσβαση σε σαρωτές παρέχεται από το SANE (Scanner Access Now Easy) API το οποίο διατίθεται μέσα από την συλλογή των Ports του FreeBSD. Το SANE χρησιμοποιεί επίσης κάποιους οδηγούς συσκευών του FreeBSD για να αποκτήσει πρόσβαση στο υλικό του σαρωτή.

Το FreeBSD υποστηρίζει σαρωτές SCSI και USB. Βεβαιωθείτε ότι ο σαρωτής σας υποστηρίζεται από το SANE πριν ξεκινήσετε οποιαδήποτε εγκατάσταση και ρύθμιση. Το SANE διαθέτει μια λίστα υποστηριζόμενων συσκευών η οποία παρέχει πληροφορίες για την υποστήριξη κάθε σαρωτή και την εξέλιξη της. Σε συστήματα πριν το FreeBSD 8.X θα βρείτε επίσης τη λίστα των υποστηριζόμενων USB σαρωτών στη σελίδα manual του uscanner(4).

14.7.2. Ρύθμιση του Πυρήνα

Όπως είπαμε παραπάνω, υποστηρίζονται σαρωτές τόσο SCSI όσο και USB. Ανάλογα με το τρόπο διασύνδεσης του σαρωτή σας, θα χρειαστείτε διαφορετικούς οδηγούς συσκευών.

14.7.2.1. Διασύνδεση USB

Ο πυρήνας GENERIC, από προεπιλογή, περιέχει τους οδηγούς συσκευών που απαιτούνται για την υποστήριξη σαρωτών USB. Αν αποφασίσετε να χρησιμοποιήσετε εξειδικευμένο πυρήνα, βεβαιωθείτε ότι έχετε τις ακόλουθες γραμμές στο αρχείο ρυθμίσεων σας:

device usb
device uhci
device ohci
device ehci

Σε συστήματα πριν το FreeBSD 8.X, θα χρειαστείτε επίσης την παρακάτω γραμμή:

device uscanner

Σε αυτές τις εκδόσεις του FreeBSD, η υποστήριξη των σαρωτών USB γίνεται μέσω της συσκευής uscanner(4). Από το FreeBSD 8.0 και μετά, η υποστήριξη αυτή παρέχεται απευθείας από τη βιβλιοθήκη libusb(3).

Αφού επανεκκινήσετε με το σωστό πυρήνα, συνδέστε το USB σαρωτή σας. Θα πρέπει να δείτε μια γραμμή σχετική με την ανίχνευση του σαρωτή στην προσωρινή μνήμη μηνυμάτων του συστήματος (dmesg(8)):

ugen0.2: <EPSON> at usbus0

ή σε ένα σύστημα FreeBSD 7.X:

uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

Τα μηνύματα αυτά δείχνουν ότι ο σαρωτής μας χρησιμοποιεί την συσκευή /dev/ugen0.2 ή την συσκευή /dev/uscanner0 ανάλογα με την έκδοση του FreeBSD που χρησιμοποιείται. Στο παράδειγμα μας, χρησιμοποιήσαμε ένα σαρωτή EPSON Perfection® 1650 USB.

14.7.2.2. Διασύνδεση Τύπου 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 με την βοήθεια της εντολής camcontrol(8):

# 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:

# 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 scsi(4) και camcontrol(8).

14.7.3. Ρύθμιση του SANE

Το σύστημα SANE χωρίζεται σε δύο κομμάτια: στο backend (graphics/sane-backends) και στο frontend (graphics/sane-frontends). Το backend παρέχει πρόσβαση στον ίδιο το σαρωτή. Στη λίστα υποστηριζόμενων συσκευών του SANE μπορείτε να βρείτε ποιο backend υποστηρίζει τον σαρωτή σας. Είναι υποχρεωτικό να βρείτε το σωστό backend για να μπορέσετε να χρησιμοποιήσετε το σαρωτή σας. Το τμήμα του frontend παρέχει το γραφικό περιβάλλον εργασίας για τη σάρωση (xscanimage).

Το πρώτο βήμα είναι να εγκαταστήσετε το port ή το πακέτο graphics/sane-backends. Μετά χρησιμοποιήστε την εντολή sane-find-scanner για να ελέγξετε την ανίχνευση του σαρωτή σας από το σύστημα SANE:

# sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3

Η έξοδος θα σας δείξει το είδος σύνδεσης του σαρωτή καθώς και το όνομα συσκευής που χρησιμοποιείται για τη σύνδεση με το σύστημα σας. Το όνομα του κατασκευαστή και του μοντέλου ίσως να μην εμφανιστούν, αλλά αυτό δεν είναι σημαντικό.

Ορισμένοι USB σαρωτές απαιτούν τη φόρτωση firmware. Η διαδικασία εξηγείται στη σελίδα manual του backend. Θα πρέπει επίσης να διαβάσετε τις σελίδες manual sane-find-scanner(1) και linprocfs(7).

Πρέπει τώρα να ελέγξουμε αν ο σαρωτής θα αναγνωριστεί από το frontend πρόγραμμα σάρωσης. Από προεπιλογή, το SANE backend έρχεται με ένα εργαλείο γραμμής εντολών, το sane(1). Η εντολή αυτή σας επιτρέπει την απαρίθμηση των συσκευών και τη σάρωσης εικόνας από τη γραμμή εντολών. Η επιλογή -L χρησιμοποιείται για την απαρίθμηση των συσκευών σάρωσης:

# scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner

Ή για παράδειγμα με τον σαρωτή που χρησιμοποιήσαμε στο Διασύνδεση USB:

# scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner

Η παραπάνω έξοδος προέρχεται από ένα σύστημα FreeBSD 8.X και η γραμμή 'epson2:libusb:/dev/usb:/dev/ugen0.2' μας πληροφορεί για το όνομα του backend (epson2) και το όνομα της συσκευής (/dev/ugen0.2) που χρησιμοποιεί ο σαρωτής μας.

Αν δεν δείτε έξοδο, ή δείτε ένα μήνυμα ότι δεν ανιχνεύθηκε σαρωτής, σημαίνει ότι το sane(1) δεν μπόρεσε να αναγνωρίσει το σαρωτή. Αν συμβεί αυτό, θα χρειαστεί να επεξεργαστείτε το αρχείο ρυθμίσεων του backend και να ορίσετε το σαρωτή που θα χρησιμοποιηθεί. Ο κατάλογος /usr/local/etc/sane.d/ περιέχει όλα τα αρχεία ρυθμίσεων του backend. Το πρόβλημα αναγνώρισης εμφανίζεται σε ορισμένα μοντέλα USB σαρωτών.

Για παράδειγμα, με το σαρωτή USB που χρησιμοποιείται στο Διασύνδεση USB, η εντολή sane-find-scanner δίνει τις ακόλουθες πληροφορίες:

# sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

Ο σαρωτής βρέθηκε, χρησιμοποιεί διασύνδεση USB και το όνομα συσκευής του είναι /dev/uscanner0. Τώρα πρέπει να δούμε αν αναγνωρίζεται και σωστά:

# 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/epson2.conf. Το μοντέλο σαρωτή που χρησιμοποιήθηκε ήταν το EPSON Perfection® 1650, έτσι ξέρουμε ότι ο σαρωτής θα χρησιμοποιεί το backend epson2. Βεβαιωθείτε ότι διαβάσατε τα βοηθητικά σχόλια στα αρχεία ρυθμίσεων του backend. Είναι αρκετά απλό να αλλάξετε γραμμές: Μετατρέψτε σε σχόλια όσες γραμμές δείχνουν λάθος τύπο διασύνδεσης για το σαρωτή σας (στην περίπτωση μας θα μετατρέψουμε σε σχόλια όλες τις γραμμές που ξεκινάνε με τη λέξη scsi καθώς ο σαρωτής μας χρησιμοποιεί διασύνδεση USB), και προσθέστε στο τέλος του αρχείου μια γραμμή που να ορίζει το είδος διασύνδεσης και το όνομα συσκευής που χρησιμοποιείτε. Στην περίπτωση μας προσθέσαμε την ακόλουθη γραμμή:

usb /dev/uscanner0

Σας παρακαλούμε να βεβαιωθείτε ότι διαβάσατε τα σχόλια που παρέχονται στο αρχείο ρυθμίσεων του backend καθώς και στις αντίστοιχες σελίδες manual για περισσότερες λεπτομέρειες καθώς και για τη σύνταξη που πρέπει να χρησιμοποιήσετε. Μπορούμε τώρα να επιβεβαιώσουμε ότι ο σαρωτής αναγνωρίζεται:

# scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner

Ο USB σαρωτής μας αναγνωρίστηκε. Δεν είναι σημαντικό ότι η μάρκα και το μοντέλο δεν ταιριάζουν ακριβώς με το δικό μας. Το βασικό σημείο είναι το πεδίο epson:/dev/uscanner0', το οποίο δείχνει το σωστό backend και όνομα συσκευής.

Μόλις η εντολή scanimage -L μπορέσει να δει το σαρωτή, η ρύθμιση έχει ολοκληρωθεί. Η συσκευή είναι έτοιμη να χρησιμοποιηθεί.

Αν και η sane(1) μας επιτρέπει να σαρώσουμε εικόνα από τη γραμμή εντολών, είναι προτιμότερο να χρησιμοποιήσουμε κάποιο πρόγραμμα σε γραφικό περιβάλλον για την εργασία αυτή. Το SANE μας προσφέρει ένα απλό αλλά αποδοτικό γραφικό περιβάλλον: το xscanimage (graphics/sane-frontends).

Το Xsane (graphics/xsane) είναι επίσης ένα δημοφιλές frontend πρόγραμμα σάρωσης. To frontend αυτό προσφέρει προχωρημένες δυνατότητες, όπως διαφορετικούς τρόπους σάρωσης (φωτοτυπία, fax, κλπ) διόρθωση χρωμάτων, πολλαπλή σάρωση κ.α. Και οι δύο αυτές εφαρμογές διατίθενται επίσης σαν πρόσθετο (plugin) πρόγραμμα για χρήση με το GIMP.

14.7.4. Δίνοντας σε Άλλους Χρήστες Πρόσβαση στο Σαρωτή σας

Όλες οι παραπάνω λειτουργίες έγιναν με τα προνόμια του χρήστη root. Μπορεί ωστόσο, να θέλετε να δώσετε πρόσβαση στο σαρωτή σας και σε άλλους χρήστες. Ο χρήστης χρειάζεται άδεια ανάγνωσης και εγγραφής στο αρχείο συσκευής που χρησιμοποιείται από το σαρωτή. Σαν παράδειγμα, ο σαρωτής μας χρησιμοποιεί το αρχείο συσκευής /dev/ugen0.2 το οποίο στην πραγματικότητα είναι ένας συμβολικός δεσμός προς το πραγματικό αρχείο συσκευής, το /dev/usb/0.2.0 (μπορείτε να το επιβεβαιώσετε εύκολα με μια ματιά στον κατάλογο /dev). Τόσο ο συμβολικός δεσμός όσο και το αρχείο συσκευής ανήκουν στις ομάδες wheel και operator. Αν προσθέσουμε το χρήστη joe σε αυτές τις ομάδες, θα μπορεί να χρησιμοποιήσει το σαρωτή. Για λόγους ασφαλείας όμως θα πρέπει να είμαστε ιδιαίτερα προσεκτικοί όταν προσθέτουμε ένα χρήστη σε μια ομάδα, ειδικά αν πρόκειται για την wheel. Μια καλύτερη λύση θα ήταν να δημιουργήσουμε μια ομάδα ειδικά για τη χρήση των συσκευών USB, και να επιτρέψουμε πρόσβαση στον σαρωτή στα μέλη της ομάδας αυτής.

Για παράδειγμα, θα χρησιμοποιήσουμε μια ομάδα με το όνομα usb. Το πρώτο βήμα είναι η δημιουργία αυτής της ομάδας με τη βοήθεια της εντολής pw(8):

# pw groupadd usb

Θα πρέπει έπειτα να αλλάξουμε τα δικαιώματα του συμβολικού δεσμού /dev/ugen0.2 και του αρχείου συσκευής /dev/ugen0.2.0 ώστε να είναι προσβάσιμα από την ομάδα usb με δυνατότητα εγγραφής (δικαιώματα 0660 ή 0664). Από προεπιλογή, μόνο ο ιδιοκτήτης αυτών των αρχείων (ο root) έχει τα απαραίτητα δικαιώματα εγγραφής. Όλα τα παραπάνω μπορούν να γίνουν με τις παρακάτω γραμμές στο αρχείο /etc/devfs.rules:

[system=5]
add path ugen0.2 mode 660 group usb
add path usb/0.2.0 mode 0660 group usb

Οι χρήστες του FreeBSD 7.X θα χρειαστούν τις παρακάτω γραμμές, με το σωστό αρχείο συσκευής (τις περισσότερες φορές θα είναι το /dev/uscanner0):

[system=5]
add path uscanner0 mode 0660 group usb

Έπειτα, προσθέστε την ακόλουθη γραμμή στο αρχείο /etc/rc.conf και επανεκκινήστε το μηχάνημα:

devfs_system_ruleset="system"

Περισσότερες πληροφορίες σχετικά με αυτές τις γραμμές, μπορείτε να βρείτε στη σελίδα manual του devfs(8).

Έπειτα από τα παραπάνω βήματα, για να δώσετε πρόσβαση στο USB σαρωτή σε κάποιο χρήστη, αρκεί να προσθέσετε το λογαριασμό του στην ομάδα usb:

# pw groupmod usb -m joe

Για περισσότερες λεπτομέρειες, διαβάστε τη σελίδα manual του pw(8).

Chapter 15. Ρυθμίζοντας τον Πυρήνα του FreeBSD

15.1. Σύνοψη

Ο πυρήνας είναι η καρδιά του λειτουργικού συστήματος FreeBSD. Είναι υπεύθυνος για τη διαχείριση της μνήμης, την επιβολή των ρυθμίσεων ασφαλείας, τη δικτύωση, την πρόσβαση στο δίσκο, και πολλά άλλα. Ένα συνεχώς αυξανόμενο μέρος του FreeBSD μπορεί να ρυθμιστεί δυναμικά, αλλά υπάρχουν ακόμα περιπτώσεις οι οποίες απαιτούν ρυθμίσεις και μεταγλώττιση του πυρήνα του FreeBSD με προσαρμοσμένες παραμέτρους.

Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:

  • Για ποιους λόγους μπορεί να χρειαστεί να φτιάξετε ένα προσαρμοσμένο πυρήνα.

  • Πως να γράψετε ένα αρχείο ρυθμίσεων πυρήνα, ή να αλλάξετε ένα υπάρχον αρχείο ρυθμίσεων.

  • Πως να χρησιμοποιήσετε το αρχείο ρυθμίσεων του πυρήνα για να φτιάξετε και να μεταγλωττίσετε ένα νέο πυρήνα.

  • Πως να εγκαταστήσετε το νέο πυρήνα.

  • Πως να επιλύσετε τυχόν προβλήματα με το νέο πυρήνα.

Όλες οι εντολές που εμφανίζονται σε αυτό το κεφάλαιο ως παραδείγματα πρέπει να εκτελεστούν ως root για να είναι επιτυχείς.

15.2. Γιατί να Φτιάξετε Προσαρμοσμένο Πυρήνα;

Κατά παράδοση, το FreeBSD είχε αυτό που αποκαλούμε "μονολιθικό" πυρήνα. Αυτό σημαίνει ότι ο πυρήνας ήταν ένα μεγάλο πρόγραμμα, υποστήριζε ένα σταθερό αριθμό συσκευών, και αν θέλατε να αλλάξετε τη συμπεριφορά του, θα έπρεπε να μεταγλωττίσετε καινούριο και να επανεκκινήσετε τον υπολογιστή σας με αυτόν.

Σήμερα, το FreeBSD κινείται ταχύτατα προς ένα μοντέλο όπου οι περισσότερες λειτουργίες του πυρήνα περιέχονται σε modules (αρθρώματα) τα οποία μπορούν να φορτωθούν και να αποφορτωθούν κατά απαίτηση, δυναμικά στον πυρήνα. Αυτό επιτρέπει στον πυρήνα να προσαρμόζεται σε υλικό το οποίο ενεργοποιείται τη δεδομένη στιγμή (όπως για παράδειγμα όταν εισέρχεται μια κάρτα PCMCIA σε ένα φορητό υπολογιστή). Επίσης επιτρέπει στον πυρήνα να επεκτείνει δυναμικά τη λειτουργικότητά του, προσθέτοντας χαρακτηριστικά τα οποία δεν ήταν απαραίτητα όταν είχε μεταγλωττιστεί αρχικά. Αυτού του είδους ο πυρήνας είναι γνωστός ως modular (αρθρωτός).

Παρ' όλα αυτά, είναι ακόμα απαραίτητο να γίνουν κάποιες στατικές ρυθμίσεις στον πυρήνα. Σε ορισμένες περιπτώσεις, αυτό συμβαίνει επειδή η συγκεκριμένη λειτουργία είναι τόσο στενά συνδεμένη με τον πυρήνα ώστε δεν μπορεί να φορτωθεί δυναμικά. Σε άλλες, συμβαίνει επειδή απλά κανείς δεν έχει ακόμα ασχοληθεί να γράψει ένα δυναμικό module που να παρέχει αυτή τη λειτουργικότητα.

Η δημιουργία προσαρμοσμένου πυρήνα είναι από τις πλέον σημαντικές τελετουργίες κάθε προχωρημένου χρήστη του BSD. Η διαδικασία αυτή, αν και χρονοβόρα, θα αποβεί ιδιαίτερα ωφέλιμη για το FreeBSD σύστημα σας. Σε αντίθεση με τον πυρήνα GENERIC, ο οποίος πρέπει να υποστηρίξει μεγάλο εύρος συσκευών, ένας προσαρμοσμένος πυρήνας περιέχει υποστήριξη μόνο για το υλικό του δικού σας υπολογιστή. Έτσι έχετε κάποια οφέλη, όπως:

  • Ταχύτερη εκκίνηση. Καθώς ο πυρήνας θα ανιχνεύει μόνο το υλικό που έχετε στο σύστημα σας, ο χρόνος που χρειάζεται για την εκκίνηση του συστήματος σας θα μειωθεί δραματικά.

  • Χαμηλότερη κατανάλωση μνήμης. Ένας προσαρμοσμένος πυρήνας, συχνά χρησιμοποιεί λιγότερη μνήμη από τον πυρήνα GENERIC, αφού απουσιάζουν από αυτόν συσκευές και χαρακτηριστικά που δεν χρησιμοποιούνται. Αυτό είναι σημαντικό, καθώς ο πυρήνας βρίσκεται πάντα φορτωμένος στη φυσική μνήμη, μειώνοντας έτσι τη μνήμη που είναι διαθέσιμη για εφαρμογές. Για το λόγο αυτό, ο προσαρμοσμένος πυρήνας είναι ιδιαίτερα χρήσιμος σε συστήματα με μικρό μέγεθος φυσικής μνήμης (RAM).

  • Επιπρόσθετη υποστήριξη συσκευών. Ο προσαρμοσμένος πυρήνας σας επιτρέπει να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν υπάρχουν στον GENERIC πυρήνα, όπως για παράδειγμα για κάρτες ήχου.

15.3. Ανακαλύπτοντας τις Συσκευές του Συστήματος σας

Πριν ξεκινήσετε με τη ρύθμιση του πυρήνα σας, θα ήταν σκόπιμο να κάνετε μια απογραφή υλικού του υπολογιστή σας. Σε περιπτώσεις που το FreeBSD δεν είναι το βασικό σας λειτουργικό σύστημα, μπορείτε εύκολα να δημιουργήσετε αυτή τη λίστα, εξετάζοντας τις ρυθμίσεις του τρέχοντος λειτουργικού συστήματος. Για παράδειγμα, η Διαχείριση Συσκευών (Device Manager) της Microsoft® δείχνει συνήθως σημαντικές πληροφορίες σχετικά με τις εγκατεστημένες συσκευές. Μπορείτε να βρείτε την Διαχείριση Συσκευών στον πίνακα ελέγχου.

Μερικές εκδόσεις των Microsoft® Windows® διαθέτουν ένα εικονίδιο με τίτλο Σύστημα (System). Από την οθόνη που εμφανίζεται μπορείτε να επιλέξετε την Διαχείριση Συσκευών.

Αν δεν υπάρχει άλλο λειτουργικό σύστημα στον υπολογιστή, ο διαχειριστής θα πρέπει να βρει αυτές τις πληροφορίες χειροκίνητα. Μια μέθοδος είναι με τη χρήση του βοηθητικού προγράμματος dmesg(8) και της εντολής man(1). Τα περισσότερα προγράμματα οδήγησης του FreeBSD διαθέτουν σελίδα manual, η οποία δείχνει το υποστηριζόμενο υλικό. Κατά τη διάρκεια της εκκίνησης, εμφανίζεται μια λίστα με τις συσκευές που ανιχνεύθηκαν. Για παράδειγμα, οι παρακάτω γραμμές δείχνουν ότι το πρόγραμμα οδήγησης psm εντόπισε ένα ποντίκι:

psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0

Αυτό το πρόγραμμα οδήγησης θα πρέπει να περιληφθεί στο αρχείο ρυθμίσεων του προσαρμοσμένου πυρήνα σας, ή να φορτωθεί δυναμικά μέσω του loader.conf(5).

Σε ορισμένες περιπτώσεις, η έξοδος της dmesg μπορεί να δείχνει μόνο τα μηνύματα του συστήματος και όχι τα αποτελέσματα της ανίχνευσης συσκευών. Στις περιπτώσεις αυτές, μπορείτε να δείτε την επιθυμητή έξοδο στα περιεχόμενα του αρχείου /var/run/dmesg.boot.

Μια άλλη μέθοδος για την ανίχνευση του υλικού, είναι μέσω του βοηθητικού προγράμματος pciconf(8), το οποίο παρέχει πιο αναλυτική περιγραφή. Για παράδειγμα:

ath0@pci0:3:0:0:        class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor     = 'Atheros Communications Inc.'
device     = 'AR5212 Atheros AR5212 802.11abg wireless'
class      = network
subclass   = ethernet

Η παραπάνω έξοδος, που λήφθηκε μέσω της εντολής pciconf -lv, δείχνει ότι το πρόγραμμα οδήγησης ath εντόπισε μια συσκευή ασύρματου Ethernet. Μπορείτε να δείτε την αντίστοιχη σελίδα manual του προγράμματος ath(4), χρησιμοποιώντας την εντολή man ath.

Μπορείτε επίσης να πάρετε χρήσιμες πληροφορίες από την εντολή man(1), αν δώσετε την επιλογή -k. Στο παραπάνω παράδειγμα, δίνοντας:

....`Atheros`
....

Θα δείτε μια λίστα από σελίδες manual που περιέχουν τη συγκεκριμένη λέξη:

ath(4)                   - Atheros IEEE 802.11 wireless network driver
ath_hal(4)               - Atheros Hardware Access Layer (HAL)

Έχοντας διαθέσιμη την απογραφή υλικού του υπολογιστή σας, η διαδικασία δημιουργίας προσαρμοσμένου πυρήνα σίγουρα φαίνεται λιγότερο αποθαρρυντική.

15.4. Προγράμματα Οδήγησης, Υποσυστήματα και Αρθρώματα (modules)

Πριν δημιουργήσετε ένα προσαρμοσμένο πυρήνα, θα πρέπει πρώτα να σκεφτείτε για ποιους λόγους τον χρειάζεστε. Σε πολλές περιπτώσεις, η υποστήριξη κάποιας συγκεκριμένης συσκευής μπορεί να επιτευχθεί με την χρήση κάποιου αρθρώματος (module).

Τα αρθρώματα του πυρήνα βρίσκονται στον κατάλογο /boot/kernel/ και μπορούν να φορτωθούν δυναμικά στον πυρήνα που εκτελείται τη δεδομένη στιγμή, με τη χρήση της εντολής kldload(8). Τα περισσότερα, αν και όχι όλα, τα προγράμματα οδήγησης στον πυρήνα, διατίθενται και σε μορφή αρθρώματος· έχουν επίσης τη δική του σελίδα βοήθειας το καθένα. Για παράδειγμα, στην προηγούμενη ενότητα, είδαμε το πρόγραμμα οδήγησης ασύρματου Ethernet ath. Η σελίδα βοήθειας για αυτή τη συσκευή αναφέρει:

Alternatively, to load the driver as a module at boot time, place the
following line in man:loader.conf[5]:

      if_ath_load="YES"

Όπως αναφέρεται στις οδηγίες, αν βάλετε την γραμμή if_ath_load="YES" στο αρχείο /boot/loader.conf, το άρθρωμα θα φορτωθεί δυναμικά κατά την εκκίνηση του συστήματος σας.

Σε μερικές περιπτώσεις ωστόσο, δεν υπάρχει άρθρωμα που να σχετίζεται με κάποιο πρόγραμμα οδήγησης. Αυτό ισχύει περισσότερο για κάποια ιδιαίτερα υποσυστήματα και πολύ σημαντικά προγράμματα οδήγησης. Για παράδειγμα, το πρόγραμμα οδήγησης του συστήματος αρχείων fast file system (FFS) απαιτείται να είναι ενσωματωμένο στον πυρήνα. Το ίδιο συμβαίνει και με την υποστήριξη δικτύου (INET). Δυστυχώς, ο μόνος τρόπος για να δείτε αν ένα πρόγραμμα οδήγησης πρέπει να είναι υποχρεωτικά ενσωματωμένο στον πυρήνα, είναι να ελέγξετε αν υπάρχει το αντίστοιχο άρθρωμα.

Είναι αρκετά εύκολο να αφαιρέσετε την υποστήριξη για κάποια συσκευή ή άλλη επιλογή, και να καταλήξετε με ένα πυρήνα που δεν μπορεί να ξεκινήσει. Για παράδειγμα, αν βγάλετε το πρόγραμμα οδήγησης ata(4) από το αρχείο ρυθμίσεων του πυρήνα σας, αν το σύστημα σας χρησιμοποιεί δίσκους ATA δεν θα μπορεί να ξεκινήσει. Στην περίπτωση αυτή θα πρέπει να βάλετε την αντίστοιχη γραμμή στο αρχείο loader.conf για να φορτώσετε το σχετικό άρθρωμα. Αν δεν είστε σίγουροι, ελέγξτε για την ύπαρξη του αρθρώματος και απλώς αφήστε την υποστήριξη ενσωματωμένη στον πυρήνα.

15.5. Δημιουργία και Εγκατάσταση Προσαρμοσμένου Πυρήνα

Χρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του FreeBSD για να μεταγλωττίσετε τον πυρήνα.

Αρχικά, θα κάνουμε μια γρήγορη παρουσίαση του καταλόγου στον οποίο γίνεται η μεταγλώττιση του πυρήνα. Όλοι οι κατάλογοι που θα αναφέρουμε βρίσκονται κάτω από τον κατάλογο /usr/src/sys ο οποίος είναι επίσης προσβάσιμος μέσω της διαδρομής /sys. Υπάρχει εδώ ένας αριθμός υποκαταλόγων ο οποίος αντιπροσωπεύει διαφορετικά τμήματα του πυρήνα, αλλά οι πλέον σημαντικοί για το σκοπό μας είναι οι arch/conf, όπου θα επεξεργαστείτε τις ρυθμίσεις για τον προσαρμοσμένο πυρήνα σας, και ο compile, που είναι ο χώρος εργασίας στον οποίο θα γίνει η μεταγλώττιση του. Ο arch αντιπροσωπεύει ένα από τα i386, amd64, ia64, powerpc, sparc64, ή pc98 (ένας εναλλακτικός τύπος PC, διαδεδομένος στην Ιαπωνία). Οτιδήποτε βρίσκεται μέσα στον συγκεκριμένο κατάλογο μιας αρχιτεκτονικής, σχετίζεται μόνο με την αρχιτεκτονική αυτή. Το υπόλοιπο του κώδικα, είναι ανεξάρτητο από την αρχιτεκτονική και κοινό σε κάθε πλατφόρμα όπου θα μπορούσε να μεταγλωττιστεί το FreeBSD. Παρατηρήστε τη λογική οργάνωση της δομής των καταλόγων, όπου κάθε υποστηριζόμενη συσκευή, σύστημα αρχείων και επιλογή βρίσκεται στο δικό της κατάλογο.

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

Αν δεν υπάρχει ο κατάλογος /usr/src/ στο σύστημα σας (ή αν είναι άδειος), τότε δεν έχετε εγκαταστήσει τον πηγαίο κώδικα. Ο ευκολότερος τρόπος για να εγκαταστήσετε τον πλήρη πηγαίο κώδικα, είναι να μέσω του csup(1) όπως περιγράφεται στο Συγχρονίζοντας τον Πηγαίο σας Κώδικα. Θα πρέπει επίσης να δημιουργήσετε ένα συμβολικό δεσμό προς τον κατάλογο /usr/src/sys/:

# ln -s /usr/src/sys /sys

Έπειτα, μετακινηθείτε στον κατάλογο arch/conf και αντιγράψτε το αρχείο ρυθμίσεων GENERIC στο όνομα το οποίο θέλετε να δώσετε στο νέο σας πυρήνα. Για παράδειγμα:

# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL

Κατά παράδοση, το όνομα αυτό γράφεται εξ' ολοκλήρου με κεφαλαία γράμματα και αν έχετε πολλά μηχανήματα FreeBSD με διαφορετικό υλικό, είναι καλή ιδέα να του δώσετε το όνομα του μηχανήματος. Για το παράδειγμα μας, θα το αποκαλούμε MYKERNEL.

Δεν είναι γενικά καλή ιδέα να αποθηκεύσετε το αρχείο ρυθμίσεων σας απευθείας στον κατάλογο /usr/src. Αν αντιμετωπίσετε προβλήματα, ίσως μπείτε στον πειρασμό να διαγράψετε απλώς τον κατάλογο /usr/src και να ξεκινήσετε από την αρχή. Συνήθως λίγα δευτερόλεπτα μετά από αυτό θα συνειδητοποιήσετε ότι έχετε επίσης διαγράψει το αρχείο ρυθμίσεων του πυρήνα σας. Επίσης, μην επεξεργάζεστε απευθείας το αρχείο GENERIC, καθώς μπορεί οι αλλαγές σας να χαθούν την επόμενη φορά που θα ανανεώσετε τον πηγαίο σας κώδικα.

Καλό θα είναι να αποθηκεύσετε το αρχείο ρυθμίσεων σε άλλο κατάλογο και να δημιουργήσετε ένα συμβολικό δεσμό προς το αρχείο, στον κατάλογο i386.

Για παράδειγμα:

# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL

Τώρα, τροποποιήστε το αρχείο MYKERNEL με τον επεξεργαστή κειμένου που προτιμάτε. Αν ξεκινάτε μόλις τώρα, πιθανόν ο μόνος διαθέσιμος επεξεργαστής κειμένου να είναι το vi, ο οποίος είναι αρκετά πολύπλοκος για να τον εξηγήσουμε εδώ, αλλά καλύπτεται αρκετά καλά από πλήθος βιβλίων στην βιβλιογραφία. Ωστόσο, το FreeBSD διαθέτει επίσης ένα ευκολότερο επεξεργαστή κειμένου, τον ee ο οποίος είναι η κατάλληλη επιλογή αν είστε αρχάριος. Αλλάξτε κατά βούληση τα σχόλια στην αρχή του αρχείου ρυθμίσεων ώστε να αντανακλούν τις αλλαγές που έχετε κάνει και οι οποίες το διαχωρίζουν από το GENERIC.

Αν έχετε δημιουργήσει πυρήνα στο SunOS™ ή σε κάποιο άλλο λειτουργικό σύστημα τύπου BSD, το μεγαλύτερο μέρος αυτού του αρχείου θα σας φανεί γνωστό. Από την άλλη, αν έρχεστε από κάποιο άλλο λειτουργικό, όπως το DOS το αρχείο ρυθμίσεων GENERIC ίσως να σας είναι δύσκολο στην κατανόηση, για το λόγο αυτό ακολουθήστε αργά και προσεκτικά τις περιγραφές του τμήματος Αρχείο Ρυθμίσεων.

Αν συγχρονίσετε τον πηγαίο κώδικα με τις τελευταίες αλλαγές του FreeBSD project, να διαβάσετε το αρχείο /usr/src/UPDATING πριν προχωρήσετε σε οποιοδήποτε βήμα αναβάθμισης. Το αρχείο αυτό περιγράφει πιθανά σημαντικά προβλήματα ή περιοχές που χρειάζονται ιδιαίτερη προσοχή όσο αφορά τον ανανεωμένο πηγαίο κώδικα. Το αρχείο /usr/src/UPDATING ταιριάζει πάντα με την έκδοση του πηγαίου κώδικα του FreeBSD που έχετε, και είναι για αυτό το λόγο πιο ενημερωμένο σε σχέση με ότι διαβάσετε στο παρόν βιβλίο.

Θα πρέπει τώρα να μεταγλωττίσετε τον πηγαίο κώδικα του πυρήνα.

Procedure: Μεταγλώττιση του Πυρήνα

Χρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του FreeBSD για να μεταγλωττίσετε τον πυρήνα.

  1. Μετακινηθείτε στον κατάλογο /usr/src:

    # cd /usr/src
  2. Μεταγλωττίστε τον πυρήνα:

    # make buildkernel KERNCONF=MYKERNEL
  3. Εγκαταστήστε το νέο πυρήνα:

    # make installkernel KERNCONF=MYKERNEL

Από προεπιλογή, όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα, δημιουργούνται επίσης και όλα τα modules (αρθρώματα) πυρήνα. Αν θέλετε να κάνετε πιο γρήγορη ανανέωση του πυρήνα ή να δημιουργήσετε μόνο συγκεκριμένα modules, θα πρέπει να τροποποιήσετε το αρχείο /etc/make.conf πριν ξεκινήσετε τη δημιουργία του πυρήνα:

MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

Στη μεταβλητή αυτή δίνετε μια λίστα των modules που θέλετε να δημιουργηθούν, αντί να δημιουργηθούν όλα.

WITHOUT_MODULES = linux acpi sound ntfs

Στη μεταβλητή αυτή δίνετε μια λίστα βασικών (top level) modules που θέλετε να παραλείψετε κατά τη διαδικασία δημιουργίας. Για άλλες μεταβλητές που ίσως είναι χρήσιμες στη διαδικασία δημιουργίας πυρήνα, δείτε τη σελίδα manual του make.conf(5).

Ο νέος πυρήνας θα αντιγραφεί στον κατάλογο /boot/kernel με το όνομα /boot/kernel/kernel ενώ ο παλιός πυρήνας θα μετακινηθεί στο /boot/kernel.old/kernel. Τερματίστε τώρα το σύστημα σας και επανεκκινήστε για να χρησιμοποιήσετε το νέο πυρήνα. Αν κάτι πάει στραβά, υπάρχουν κάποιες πληροφορίες για Αντιμετώπιση Προβλημάτων που ίσως σας φανούν χρήσιμες, στο τέλος αυτού του κεφαλαίου. Βεβαιωθείτε ότι διαβάσατε το τμήμα που εξηγεί πως να επαναφέρετε το σύστημα σας σε περίπτωση που ο νέος πυρήνας δεν εκκινεί.

Άλλα αρχεία που σχετίζονται με τη διαδικασία εκκίνησης, όπως ο loader(8) και οι ρυθμίσεις του, βρίσκονται στον κατάλογο /boot. Εξειδικευμένα modules ή modules τρίτων κατασκευαστών μπορούν να τοποθετηθούν στον κατάλογο /boot/kernel, αν και οι χρήστες θα πρέπει να γνωρίζουν ότι είναι σημαντικό τα modules να είναι σε συγχρονισμό με τον πυρήνα. Modules τα οποία δεν προορίζονται για εκτέλεση με τον τρέχοντα πυρήνα, μπορούν να προκαλέσουν αστάθεια ή εσφαλμένη λειτουργία του συστήματος σας.

15.6. Το Αρχείο Ρυθμίσεων

Η γενική μορφή ενός αρχείου ρυθμίσεων πυρήνα, είναι αρκετά απλή. Κάθε γραμμή περιέχει μια λέξη-κλειδί και ένα ή περισσότερα ορίσματα. Για λόγους απλότητας, οι περισσότερες γραμμές περιέχουν μόνο ένα όρισμα. Οτιδήποτε βρίσκεται μετά το σύμβολο # θεωρείται σχόλιο και αγνοείται. Στα επόμενα τμήματα θα βρείτε περιγραφή για τις λέξεις-κλειδιά, με τη σειρά που εμφανίζονται στο αρχείο ρυθμίσεων GENERIC. Για εξαντλητική λίστα των παραμέτρων και συσκευών που εξαρτώνται από την αρχιτεκτονική, δείτε το αρχείο NOTES το οποίο βρίσκεται στον ίδιο κατάλογο με το αρχείο GENERIC. Για επιλογές και ρυθμίσεις που είναι ανεξάρτητες από την αρχιτεκτονική, δείτε το αρχείο /usr/src/sys/conf/NOTES.

Μπορείτε να χρησιμοποιήσετε την οδηγία include στα αρχεία ρυθμίσεων. Η οδηγία αυτή επιτρέπει την λογική συμπερίληψη ενός άλλου αρχείου ρυθμίσεων μέσα στο τρέχον, κάνοντας πιο εύκολη τη συντήρηση του όταν οι αλλαγές που χρειάζονται είναι λίγες σε σχέση με το αρχικό αρχείο. Για παράδειγμα, αν χρειάζεστε ένα πυρήνα GENERIC με λίγες μόνο παραπάνω επιλογές ή προγράμματα οδήγησης, μπορείτε να δημιουργήσετε ένα μικρό αρχείο διαφορών σε σχέση με τον GENERIC:

include GENERIC
ident MYKERNEL

options         IPFIREWALL
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPDIVERT

Πολλοί διαχειριστές βρίσκουν ότι αυτό το μοντέλο προσφέρει σημαντικά πλεονεκτήματα σε σχέση με τον παραδοσιακό τρόπο συγγραφής αρχείων ρυθμίσεων από το μηδέν: το τοπικό αρχείο ρυθμίσεων περιέχει μόνο τις διαφορές από ένα πυρήνα GENERIC. Καθώς γίνονται αναβαθμίσεις στο σύστημα, τα νέα χαρακτηριστικά και δυνατότητες που προστίθενται στον GENERIC θα προστεθούν και στον προσαρμοσμένο πυρήνα, εκτός αν το αποτρέψετε χρησιμοποιώντας το nooptions ή το nodevice. Το υπόλοιπο αυτού του κεφαλαίου, εξηγεί το περιεχόμενο ενός τυπικού αρχείου ρυθμίσεων και το ρόλο που έχουν οι διάφορες επιλογές και τα προγράμματα οδήγησης που εμφανίζονται σε αυτό.

Για να δημιουργήσετε ένα αρχείο το οποίο να περιέχει όλες τις διαθέσιμες επιλογές, όπως γίνεται συνήθως για δοκιμές, εκτελέστε την ακόλουθη εντολή ως root:

# cd /usr/src/sys/i386/conf && make LINT

Το παρακάτω είναι ένα παράδειγμα του αρχείου ρυθμίσεων GENERIC με επιπρόσθετα διευκρινιστικά σχόλια όπου είναι απαραίτητο. Το παράδειγμα θα πρέπει να ταιριάζει αρκετά καλά με το αντίγραφο του αρχείου πού έχετε στο /usr/src/sys/i386/conf/GENERIC.

machine		i386

Πρόκειται για την αρχιτεκτονική του μηχανήματος. Πρέπει να είναι amd64, i386, ia64, pc98, powerpc, ή sparc64.

cpu          I486_CPU
cpu          I586_CPU
cpu          I686_CPU

Η παραπάνω επιλογή καθορίζει τον τύπο της CPU που έχετε στο σύστημα σας. Μπορεί να έχετε παραπάνω από μια τέτοιες γραμμές (αν για παράδειγμα δεν είστε σίγουρος αν θα πρέπει να χρησιμοποιήσετε I586_CPU ή I686_CPU), αλλά για ένα προσαρμοσμένο πυρήνα είναι καλύτερα να καθορίσετε μόνο τη CPU που έχετε. Αν δεν είστε σίγουρος για τον τύπο της CPU μπορείτε να ελέγξετε το αρχείο /var/run/dmesg.boot για να δείτε τα μηνύματα εκκίνησης του συστήματος σας.

ident          GENERIC

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

#To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         # Default places to look for devices.

Το αρχείο device.hints(5) χρησιμοποιείται για τον καθορισμό επιλογών που σχετίζονται με τους οδηγούς συσκευών. Η προεπιλεγμένη θέση την οποία ελέγχει ο loader(8) κατά την εκκίνηση είναι το /boot/device.hints. Χρησιμοποιώντας την επιλογή hints μπορείτε να ενσωματώσετε στατικά τις οδηγίες αυτές μέσα στον πυρήνα. Στην περίπτωση αυτή δεν υπάρχει λόγος να δημιουργήσετε το αρχείο device.hints στον κατάλογο /boot.

makeoptions     DEBUG=-g          # Build kernel with gdb(1) debug symbols

Η φυσιολογική διαδικασία δημιουργίας του FreeBSD περιλαμβάνει πληροφορίες εκσφαλμάτωσης (debugging) όταν ο πυρήνας δημιουργείται με την επιλογή -g, επιτρέποντας έτσι την χρήση τους όταν δοθούν στο gcc(1).

options          SCHED_ULE         # ULE scheduler

Ο προεπιλεγμένος scheduler του FreeBSD. Κρατήστε την επιλογή αυτή.

options          PREEMPTION         # Enable kernel thread preemption

Επιτρέπει σε νήματα του πυρήνα να προσπεραστούν από άλλα, υψηλότερης προτεραιότητας. Βοηθάει στην αύξηση απόκρισης του συστήματος και επιτρέπει σε νήματα διακοπών (interrupts) να εκτελεστούν πιο γρήγορα, αντί να μένουν σε αναμονή.

options          INET              # InterNETworking

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

options          INET6             # IPv6 communications protocols

Η επιλογή αυτή ενεργοποιεί τα πρωτόκολλα επικοινωνίας IPv6.

options          FFS               # Berkeley Fast Filesystem

Πρόκειται για το βασικό σύστημα αρχείων του σκληρού δίσκου. Αφήστε την επιλογή αυτή ενεργοποιημένη, αν ξεκινάτε από το σκληρό δίσκο.

options          SOFTUPDATES       # Enable FFS Soft Updates support

Η επιλογή αυτή ενεργοποιεί τα Soft Updates στον πυρήνα, το οποίο βοηθάει την επιτάχυνση της εγγραφής στους δίσκους. Ακόμα και αν η λειτουργία αυτή παρέχεται από τον πυρήνα, θα πρέπει επίσης να ενεργοποιηθεί για συγκεκριμένους δίσκους. Δείτε την έξοδο της εντολής mount(8) για να δείτε αν είναι ενεργοποιημένα τα Soft Updates στους δίσκους του συστήματος σας. Αν δεν δείτε την επιλογή soft-updates θα χρειαστεί να την ενεργοποιήσετε με την εντολή tunefs(8) (για υπάρχοντα συστήματα αρχείων) ή newfs(8) (για νέα συστήματα αρχείων).

options          UFS_ACL           # Support for access control lists

Με την επιλογή αυτή, ενεργοποιείται η υποστήριξη του πυρήνα για λίστες ελέγχου πρόσβασης (access control lists). Τα ACLs εξαρτιούνται από τη χρήση εκτεταμένων ιδιοτήτων και από το σύστημα αρχείων UFS2, και περιγράφονται με λεπτομέρεια στο File System Access Control Lists. Τα ACLs είναι ενεργοποιημένα από προεπιλογή, και δεν θα πρέπει να τα απενεργοποιήσετε από τον πυρήνα αν έχουν χρησιμοποιηθεί στο παρελθόν σε κάποιο σύστημα αρχείων, καθώς αυτό θα τα αφαιρέσει από τα αρχεία, αλλάζοντας έτσι τον τρόπο προστασίας τους με απρόβλεπτους τρόπους.

options          UFS_DIRHASH       # Improve performance on big directories

Με την επιλογή αυτή, περιλαμβάνονται λειτουργίες που αυξάνουν την ταχύτητα πρόσβασης του δίσκου σε μεγάλους καταλόγους, με κόστος τη χρήση επιπρόσθετης μνήμης. Φυσιολογικά, θα θέλετε να κρατήσετε την επιλογή αυτή σε ένα μεγάλο εξυπηρετητή ή σταθμό εργασίας, και να την αφαιρέσετε όταν χρησιμοποιείτε το FreeBSD σε ένα μικρό σύστημα όπου η μνήμη είναι περιορισμένη και η ταχύτητα πρόσβασης στο δίσκο είναι λιγότερο σημαντική, όπως για παράδειγμα σε ένα firewall.

options          MD_ROOT           # MD is a potential root device

Με την επιλογή αυτή ενεργοποιείται η υποστήριξη χρήσης ενός εικονικού δίσκου στη μνήμη RAM (ramdrive) για χρήση ως συσκευή root.

options          NFSCLIENT         # Network Filesystem Client
options          NFSSERVER         # Network Filesystem Server
options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT

Το δικτυακό σύστημα αρχείων. Αν δεν έχετε σκοπό να προσαρτήσετε συστήματα αρχείων από άλλο εξυπηρετητή αρχείων UNIX® μέσω TCP/IP, μπορείτε να μετατρέψετε αυτές τις γραμμές σε σχόλια.

options          MSDOSFS           # MSDOS Filesystem

Το σύστημα αρχείων του MS-DOS®. Αν δεν σκοπεύετε να προσαρτήσετε δίσκο DOS κατά την εκκίνηση, μπορείτε με ασφάλεια να μετατρέψετε την επιλογή αυτή σε σχόλιο. Η υποστήριξη θα φορτωθεί αυτόματα την πρώτη φορά που θα προσαρτήσετε κατάτμηση DOS όπως περιγράψαμε παραπάνω. Επίσης, το εξαιρετικό πρόγραμμα emulators/mtools σας επιτρέπει να έχετε πρόσβαση σε δισκέτες DOS χωρίς να χρειάζεται να τις προσαρτήσετε και να αποπροσαρτήσετε (και επίσης δεν απαιτεί τη χρήση του MSDOSFS).

options          CD9660            # ISO 9660 Filesystem

Το σύστημα αρχείων ISO 9660 για CDROM. Μετατρέψτε το σε σχόλιο αν δεν έχετε οδηγό CDROM ή αν σπάνια προσαρτάτε CD δεδομένων (καθώς θα φορτωθεί δυναμικά την πρώτη φορά που θα προσαρτήσετε τέτοιο CD ). Τα μουσικά CD δεν χρειάζονται αυτό το σύστημα αρχείων.

options          PROCFS            # Process filesystem (requires PSEUDOFS)

Αυτό το σύστημα αρχείων περιέχει τις διεργασίες του συστήματος. Πρόκειται για ένα "εικονικό" σύστημα αρχείων το οποίο προσαρτάται στον κατάλογο /proc και επιτρέπει σε προγράμματα όπως το ps(1) να δίνουν περισσότερες πληροφορίες για τις διεργασίες που εκτελούνται. Η χρήση του PROCFS δεν απαιτείται στις περισσότερες περιπτώσεις, καθώς τα περισσότερα εργαλεία παρακολούθησης και εκσφαλμάτωσης έχουν προσαρμοστεί να εκτελούνται χωρίς το PROCFS. Στις νέες εγκαταστάσεις, αυτό το σύστημα αρχείων δεν προσαρτάται από προεπιλογή.

options          PSEUDOFS          # Pseudo-filesystem framework

Πυρήνες που χρησιμοποιούν το PROCFS πρέπει επίσης να παρέχουν υποστήριξη για το PSEUDOFS.

options          GEOM_PART_GPT     # GUID Partition Tables.

Προσθέτει υποστήριξη για Πίνακα Κατατμήσεων GUID. Το GPT δίνει δυνατότητα ύπαρξης μεγάλου αριθμού κατατμήσεων στο δίσκο, μέχρι 128 με τις τυπικές ρυθμίσεις.

options          COMPAT_43         # Compatible with BSD 4.3 [KEEP THIS!]

Συμβατότητα με το 4.3BSD. Αφήστε την επιλογή αυτή ενεργή: κάποια προγράμματα θα συμπεριφέρονται παράξενα αν την απενεργοποιήσετε.

options          COMPAT_FREEBSD4   # Compatible with FreeBSD4

Η επιλογή αυτή απαιτείται για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί σε παλιότερες εκδόσεις του FreeBSD και οι οποίες χρησιμοποιούν παλιές διεπαφές και κλήσεις συστήματος. Συνίσταται να υπάρχει αυτή η επιλογή σε όλα τα συστήματα i386™ τα οποία εκτελούν παλιότερες εφαρμογές. Αρχιτεκτονικές όπως η ia64 και η sparc64 που άρχισαν να υποστηρίζονται από την έκδοση 5.Χ και μετά δεν χρειάζονται αυτή την επιλογή.

options          COMPAT_FREEBSD5   # Compatible with FreeBSD5

Η επιλογή αυτή απαιτείται στο για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο FreeBSD 5.X και χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.

options          COMPAT_FREEBSD6   # Compatible with FreeBSD6

Η επιλογή αυτή απαιτείται στο για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο FreeBSD 6.X και χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.

options          COMPAT_FREEBSD7   # Compatible with FreeBSD75

Η επιλογή αυτή απαιτείται στο για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο FreeBSD 7.X και χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.

options          SCSI_DELAY=5000  # Delay (in ms) before probing SCSI

Με την επιλογή αυτή ο πυρήνας περιμένει 5 δευτερόλεπτα πριν ανιχνεύσει κάθε συσκευή SCSI στο σύστημα σας. Αν έχετε μόνο IDE δίσκους μπορείτε να την αγνοήσετε, διαφορετικά μπορείτε να δοκιμάσετε να μειώσετε τον αριθμό αυτό, για να επιταχύνετε την εκκίνηση. Φυσικά, αν το κάνετε αυτό και ανακαλύψετε ότι το FreeBSD έχει πρόβλημα στην αναγνώριση των συσκευών σας, θα πρέπει να την ανεβάσετε ξανά.

options          KTRACE            # ktrace(1) support

Η επιλογή αυτή ενεργοποιεί το tracing των διεργασιών του πυρήνα, το οποίο είναι χρήσιμο στην εκσφαλμάτωση.

options          SYSVSHM           # SYSV-style shared memory

Η επιλογή αυτή ενεργοποιεί την κοινόχρηστη μνήμη σύμφωνα με το πρότυπο του System V. Η πλέον κοινή χρήση της, είναι η επέκταση XSHM στα Χ η οποία χρησιμοποιείται αυτόματα από πολλές βαριές εφαρμογές γραφικών για καλύτερη ταχύτητα. Αν χρησιμοποιείτε Χ, σίγουρα θέλετε να περιλάβετε αυτή την επιλογή.

options          SYSVMSG           # SYSV-style message queues

Υποστήριξη για μηνύματα του System V. Η επιλογή αυτή προσθέτει μόνο μερικές εκατοντάδες bytes στον πυρήνα.

options          SYSVSEM           # SYSV-style semaphores

Υποστήριξη σηματοφορέων του System V. Χρησιμοποιείται λιγότερο συχνά, αλλά προσθέτει μόνο μερικές εκατοντάδες bytes στον πυρήνα.

Η επιλογή -p της εντολής ipcs(1) θα σας δείξει ποιες διεργασίες χρησιμοποιούν κάθε μια από αυτές τις λειτουργίες του System V.

options 	     _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions

Επεκτάσεις πραγματικού χρόνου (Real-time) που προστέθηκαν στο POSIX® το 1993. Χρησιμοποιείται από κάποιες εφαρμογές στη συλλογή των ports (όπως το StarOffice™).

options          KBD_INSTALL_CDEV  # install a CDEV entry in /dev

Η επιλογή αυτή είναι απαραίτητη για τη δημιουργία του αρχείου συσκευής πληκτρολογίου στον κατάλογο /dev.

options          ADAPTIVE_GIANT    # Giant mutex is adaptive.

Το Giant είναι το όνομα ενός συστήματος αμοιβαίου αποκλεισμού (sleep mutex) το οποίο προστατεύει ένα μεγάλο αριθμό πόρων του πυρήνα. Στις μέρες μας, αυτό θεωρείται ανεπίτρεπτο από πλευράς απόδοσης και αντικαθίσταται με κλειδώματα τα οποία προστατεύουν συγκεκριμένους πόρους. Η επιλογή ADAPTIVE_GIANT επιτρέπει στο Giant να συμπεριληφθεί στο σετ των mutexes που μπορούν να εκτελεστούν επιλεκτικά. Έτσι, αν ένα νήμα θέλει να κλειδώσει το Giant mutex, αλλά αυτό είναι ήδη κλειδωμένο από ένα νήμα σε μια άλλη CPU, το πρώτο νήμα θα συνεχίσει να εκτελείται, και θα περιμένει για την απελευθέρωση του κλειδώματος. Φυσιολογικά, το νήμα θα επέστρεφε στην κατάσταση ύπνου (sleep) και θα περίμενε για την επόμενη ευκαιρία εκτέλεσης του. Αν δεν είστε σίγουρος, αφήστε αυτή την επιλογή ενεργή.

Σημειώστε ότι από το FreeBSD 8.0-RELEASE και τις επόμενες εκδόσεις, όλα τα mutexes έχουν από προεπιλογή τη δυνατότητα προσαρμογής, εκτός αν έχει επίτηδες γίνει διαφορετική ρύθμιση, χρησιμοποιώντας την επιλογή NO_ADAPTIVE_MUTEXES κατά τη μεταγλώττιση. Το Giant έχει επίσης δυνατότητα προσαρμογής πλέον, και έτσι η επιλογή ADAPTIVE_GIANT έχει αφαιρεθεί από το αρχείο ρυθμίσεων πυρήνα.

device          apic               # I/O APIC

Η συσκευή apic επιτρέπει τη χρήση του I/O APIC για την παράδοση των interrupts (διακοπών). Η συσκευή apic μπορεί να χρησιμοποιηθεί τόσο σε πυρήνες για ένα επεξεργαστή (UP) όσο και για πολλαπλούς (SMP), αλλά στη δεύτερη περίπτωση είναι απαραίτητη. Προσθέστε την επιλογή options SMP για να έχετε υποστήριξη πολλαπλών επεξεργαστών.

Η συσκευή apic υπάρχει μόνο στην αρχιτεκτονική i386, η γραμμή αυτή δεν θα πρέπει να χρησιμοποιηθεί σε άλλες αρχιτεκτονικές.

device          eisa

Θα πρέπει να συμπεριλάβετε την επιλογή αυτή αν έχετε μητρική με δίαυλο τύπου EISA. Ενεργοποιείται έτσι η αυτόματη ανίχνευση και ρύθμιση όλων των συσκευών στο δίαυλο EISA.

device          pci

Θα πρέπει να συμπεριλάβετε αυτή την επιλογή αν έχετε μητρική με δίαυλο PCI. Ενεργοποιείται έτσι η αυτόματη ανίχνευση των καρτών PCI και η επικοινωνία μεταξύ των διαύλων PCI και ISA.

# Floppy drives
device          fdc

Πρόκειται για τον ελεγκτή μονάδας δισκέτας.

# ATA and ATAPI devices
device          ata

Αυτός ο οδηγός υποστηρίζει όλες τις συσκευές τύπου ATA και ATAPI. Χρειάζεστε μόνο μια καταχώρηση device ata για να ανιχνεύσει ο πυρήνας όλες τις συσκευές ATA/ATAPI τύπου PCI στα σύγχρονα μηχανήματα.

device          atadisk                 # ATA disk drives

Η επιλογή αυτή απαιτείται μαζί με το device ata για την υποστήριξη δίσκων ATA.

device          ataraid                 # ATA RAID drives

Η επιλογή αυτή απαιτείται μαζί με το device ata για την υποστήριξη δίσκων ATA RAID.

device          atapicd                 # ATAPI CDROM drives

Η επιλογή αυτή απαιτείται μαζί με το device ata για την υποστήριξη οδηγών ATAPI CDROM.

device          atapifd                 # ATAPI floppy drives

Η επιλογή αυτή απαιτείται μαζί με το device ata για την υποστήριξη οδηγών δισκέτας ATAPI.

device          atapist                 # ATAPI tape drives

Η επιλογή αυτή απαιτείται μαζί με το device ata για την υποστήριξη μονάδων ταινίας ATAPI.

options         ATA_STATIC_ID           # Static device numbering

Με την επιλογή αυτή, ο αριθμός του ελεγκτή γίνεται στατικός. Χωρίς αυτή, οι αριθμοί συσκευών αποδίδονται δυναμικά.

# SCSI Controllers
device          ahb        # EISA AHA1742 family
device          ahc        # AHA2940 and onboard AIC7xxx devices
options         AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~128k to driver.
device          ahd        # AHA39320/29320 and onboard AIC79xx devices
options         AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~215k to driver.
device          amd        # AMD 53C974 (Teckram DC-390(T))
device          isp        # Qlogic family
#device         ispfw      # Firmware for QLogic HBAs- normally a module
device          mpt        # LSI-Logic MPT-Fusion
#device         ncr        # NCR/Symbios Logic
device          sym        # NCR/Symbios Logic (newer chipsets + those of `ncr')
device          trm        # Tekram DC395U/UW/F DC315U adapters

device          adv        # Advansys SCSI adapters
device          adw        # Advansys wide SCSI adapters
device          aha        # Adaptec 154x SCSI adapters
device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device          bt         # Buslogic/Mylex MultiMaster SCSI adapters

device          ncv        # NCR 53C500
device          nsp        # Workbit Ninja SCSI-3
device          stg        # TMC 18C30/18C50

Ελεγκτές SCSI. Μπορείτε να μετατρέψετε σε σχόλιο οποιονδήποτε δεν έχετε στο σύστημα σας. Αν το σύστημα σας έχει μόνο συσκευές IDE, μπορείτε να αφαιρέσετε όλες τις γραμμές. Οι γραμμές τύπου *_REG_PRETTY_PRINT χρησιμοποιούνται για να δίνουν περισσότερες διαγνωστικές πληροφορίες για τους αντίστοιχους οδηγούς.

# SCSI peripherals
device          scbus      # SCSI bus (required for SCSI)
device          ch         # SCSI media changers
device          da         # Direct Access (disks)
device          sa         # Sequential Access (tape etc)
device          cd         # CD
device          pass       # Passthrough device (direct SCSI access)
device          ses        # SCSI Environmental Services (and SAF-TE)

Περιφερειακά SCSI. Μπορείτε και πάλι να μετατρέψετε σε σχόλιο όσες συσκευές δεν έχετε, ή αν έχετε μόνο συσκευές IDE, μπορείτε να αφαιρέσετε εντελώς αυτές τις γραμμές.

Ο οδηγός USB umass(4) και κάποιοι άλλοι οδηγοί χρησιμοποιούν το υποσύστημα SCSI αν και δεν είναι πραγματικές SCSI συσκευές. Για το λόγο αυτό, σιγουρευτείτε ότι δεν αφαιρέσατε την υποστήριξη SCSI αν περιλαμβάνονται τέτοιοι οδηγοί στο αρχείο ρύθμισης του πυρήνα σας.

# RAID controllers interfaced to the SCSI subsystem
device          amr        # AMI MegaRAID
device          arcmsr     # Areca SATA II RAID
device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
device          ciss       # Compaq Smart RAID 5*
device          dpt        # DPT Smartcache III, IV - See NOTES for options
device          hptmv      # Highpoint RocketRAID 182x
device          hptrr      # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device          iir        # Intel Integrated RAID
device          ips        # IBM (Adaptec) ServeRAID
device          mly        # Mylex AcceleRAID/eXtremeRAID
device          twa        # 3ware 9000 series PATA/SATA RAID

# RAID controllers
device          aac        # Adaptec FSA RAID
device          aacp       # SCSI passthrough for aac (requires CAM)
device          ida        # Compaq Smart RAID
device          mfi        # LSI MegaRAID SAS
device          mlx        # Mylex DAC960 family
device          pst        # Promise Supertrak SX6000
device          twe        # 3ware ATA RAID

Υποστηριζόμενοι ελεγκτές RAID. Αν δεν έχετε κανένα από αυτούς, μπορείτε να τους μετατρέψετε σε σχόλια ή να τους αφαιρέσετε εντελώς.

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc     # AT keyboard controller

Ο ελεγκτής πληκτρολογίου (atkbdc) παρέχει υπηρεσίες I/O για πληκτρολόγια τύπου AT και συσκευές κατάδειξης (ποντίκια) τύπου PS/2. Ο ελεγκτής απαιτείται για τη λειτουργία του οδηγού πληκτρολογίου (atkbd) και του οδηγού συσκευής κατάδειξης PS/2 (psm).

device          atkbd      # AT keyboard

Ο οδηγός atkbd, μαζί με τον ελεγκτή atkbdc, παρέχει πρόσβαση σε πληκτρολόγιο τύπου AT 84 ή εκτεταμένου AT το οποίο συνδέεται στον ελεγκτή πληκτρολογίου.

device          psm        # PS/2 mouse

Χρησιμοποιήστε αυτή τη συσκευή αν το ποντίκι σας συνδέεται στην θύρα PS/2.

device          kbdmux        # keyboard multiplexer

Βασική υποστήριξη πολυπλεξίας πληκτρολογίων. Αν δε σκοπεύετε να χρησιμοποιήσετε περισσότερα από ένα πληκτρολόγια στο σύστημα σας, μπορείτε με ασφάλεια να αφαιρέσετε αυτή τη γραμμή.

device          vga        # VGA video card driver

Το πρόγραμμα οδήγησης της κάρτας γραφικών.

device          splash     # Splash screen and screen saver support

Γραφική οθόνη (splash) κατά την εκκίνηση! Η συσκευή αυτή χρησιμοποιείται επίσης από τα προγράμματα προφύλαξης οθόνης (κονσόλας).

# syscons is the default console driver, resembling an SCO console
device          sc

Ο οδηγός sc είναι ο προεπιλεγμένος οδηγός κονσόλας και προσομοιώνει κονσόλα τύπου SCO. Καθώς τα περισσότερα προγράμματα πλήρους οθόνης αποκτούν πρόσβαση στην κονσόλα μέσω κάποιας βιβλιοθήκης βάσης δεδομένων τερματικών όπως το termcap, δεν θα πρέπει να έχει σημασία αν χρησιμοποιήσετε αυτόν τον οδηγό ή τον vt ο οποίος είναι συμβατός με κονσόλα VT220. Μετά την είσοδο σας στο σύστημα, θέστε την μεταβλητή TERM στην τιμή scoansi αν κάποια προγράμματα πλήρους οθόνης έχουν πρόβλημα όταν χρησιμοποιείται αυτή η κονσόλα.

# Enable this for the pcvt (VT220 compatible) console driver
#device          vt
#options         XSERVER          # support for X server on a vt console
#options         FAT_CURSOR       # start with block cursor

Πρόκειται για ένα οδηγό κονσόλας συμβατό με VT220, και με προς τα πίσω συμβατότητα με VT100/102. Λειτουργεί καλά σε κάποιους φορητούς υπολογιστές που έχουν ασυμβατότητα υλικού με τον sc. Μετά την είσοδο σας στο σύστημα, θέστε την μεταβλητή TERM σε vt100 ή vt220. Ο οδηγός μπορεί επίσης να αποδειχθεί χρήσιμος όταν συνδέεστε σε μεγάλο αριθμό από διαφορετικά μηχανήματα μέσω δικτύου, όπου δεν υπάρχουν καταχωρήσεις για τη συσκευή sc στο termcap ή terminfo - το vt100 θα πρέπει να είναι διαθέσιμο πρακτικά σε κάθε πλατφόρμα.

device          agp

Συμπεριλάβετε τη συσκευή αυτή αν έχετε AGP κάρτα στο σύστημα σας. Θα ενεργοποιήσετε με αυτό τον τρόπο την υποστήριξη για AGP και AGP GART για μητρικές που υποστηρίζουν αυτές τις λειτουργίες.

# Power management support (see NOTES for more options)
#device          apm

Υποστήριξη Advanced Power Management (προχωρημένης διαχείρισης ισχύος). Χρήσιμο για φορητά, αν και η επιλογή αυτή, από προεπιλογή, είναι ανενεργή στον πυρήνα GENERIC.

# Add suspend/resume support for the i8254.
device           pmtimer

Πρόγραμμα οδήγησης μετρητή χρόνου (Timer) για συμβάντα που σχετίζονται με διαχείριση ενέργειας όπως το APM και το ACPI.

# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device          cbb               # cardbus (yenta) bridge
device          pccard            # PC Card (16-bit) bus
device          cardbus           # CardBus (32-bit) bus

Υποστήριξη PCMCIA. Την χρειάζεστε αν χρησιμοποιείτε φορητό υπολογιστή.

# Serial (COM) ports
device          sio               # 8250, 16[45]50 based serial ports

Πρόκειται για τις σειριακές θύρες οι οποίες είναι γνωστές στον κόσμο του MS-DOS®/Windows® ως θύρες COM.

Αν έχετε εσωτερικό μόντεμ στη θύρα COM4 και έχετε και σειριακή θύρα COM2, θα πρέπει να αλλάξετε το IRQ του μόντεμ στο 2 (για περίεργους τεχνικούς λόγους, IRQ2 = IRQ 9) για να μπορέσετε να το χρησιμοποιήσετε από το FreeBSD. Αν έχετε κάρτα πολλαπλών σειριακών εξόδων, ελέγξτε τη σελίδα manual του sio(4) για περισσότερες πληροφορίες σχετικά με τις σωστές τιμές που πρέπει να προσθέσετε στο /boot/device.hints. Κάποιες κάρτες γραφικών (ειδικά αυτές που βασίζονται σε ολοκληρωμένα S3) χρησιμοποιούν διευθύνσεις IO μορφής 0x*2e8, και καθώς πολλές φτηνές σειριακές κάρτες δεν αποκωδικοποιούν πλήρως τη 16 bit περιοχή διευθύνσεων, συγκρούονται με τις κάρτες αυτές, καθιστώντας έτσι πρακτικά άχρηστη τη θύρα COM4.

Κάθε σειριακή πόρτα χρειάζεται να έχει μια μοναδική IRQ (εκτός αν χρησιμοποιείτε κάρτα πολλαπλών σειριακών που υποστηρίζει κοινή χρήση interrupts), και έτσι δεν μπορούν να χρησιμοποιηθούν τα προεπιλεγμένα interrupts για την COM3 και την COM4.

# Parallel port
device          ppc

Πρόκειται για την παράλληλη θύρα στο δίαυλο ISA.

device          ppbus      # Parallel port bus (required)

Παρέχει υποστήριξη για το δίαυλο της παράλληλης θύρας.

device          lpt        # Printer

Παρέχει υποστήριξη για εκτυπωτές παράλληλης θύρας.

Χρειάζεστε και τα τρία παραπάνω για να ενεργοποιήσετε την υποστήριξη εκτυπωτή παράλληλης θύρας.

device          plip       # TCP/IP over parallel

Πρόκειται για το πρόγραμμα οδήγησης δικτύου μέσω παράλληλης θύρας.

device          ppi        # Parallel port interface device

Πρόγραμμα I/O γενικής χρήσης ("geek port") + IEEE1284 I/O.

#device         vpo        # Requires scbus and da

Χρησιμοποιείται για μονάδα δισκέτας Iomega Zip. Απαιτεί υποστήριξη από τους οδηγούς scbus και da. Η καλύτερη απόδοση επιτυγχάνεται με θύρα σε κατάσταση λειτουργίας EPP 1.9.

#device         puc

Ενεργοποιήστε αυτή τη συσκευή αν έχετε μια "χαζή" σειριακή ή παράλληλη PCI κάρτα η οποία υποστηρίζεται από το πρόγραμμα οδήγησης puc(4) (glue driver).

# PCI Ethernet NICs.
device          de         # DEC/Intel DC21x4x (Tulip)
device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
device          ixgb       # Intel PRO/10GbE Ethernet Card
device          txp        # 3Com 3cR990 (Typhoon)
device          vx         # 3Com 3c590, 3c595 (Vortex)

Διάφορα προγράμματα οδήγησης για PCI κάρτες δικτύου. Μετατρέψτε σε σχόλιο ή αφαιρέστε τελείως όσες δεν υπάρχουν στο σύστημα σας.

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device          miibus     # MII bus support

Η υποστήριξη διαύλου MII απαιτείται για κάποιες κάρτες δικτύου Ethernet PCI 10/100, ειδικά για αυτές που χρησιμοποιούν πομποδέκτη συμβατό με MII ή έχουν διεπαφή ελέγχου που λειτουργεί παρόμοια με τον MII. Προσθέτοντας device miibus στο αρχείο ρύθμισης του πυρήνα, θα έχετε υποστήριξη για το γενικό API του miibus και για όλους τους οδηγούς PHY, συμπεριλαμβανομένου και ενός γενικού για PHYs που δεν υποστηρίζονται από κάποιο συγκεκριμένο οδηγό.

device          bce        # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device          bfe        # Broadcom BCM440x 10/100 Ethernet
device          bge        # Broadcom BCM570xx Gigabit Ethernet
device          dc         # DEC/Intel 21143 and various workalikes
device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
device          lge        # Level 1 LXT1001 gigabit ethernet
device          msk        # Marvell/SysKonnect Yukon II Gigabit Ethernet
device          nge        # NatSemi DP83820 gigabit ethernet
device          nve        # nVidia nForce MCP on-board Ethernet Networking
device          pcn        # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device          re         # RealTek 8139C+/8169/8169S/8110S
device          rl         # RealTek 8129/8139
device          sf         # Adaptec AIC-6915 (Starfire)
device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
device          sk         # SysKonnect SK-984x & SK-982x gigabit Ethernet
device          ste        # Sundance ST201 (D-Link DFE-550TX)
device          stge       # Sundance/Tamarack TC9021 gigabit Ethernet
device          ti         # Alteon Networks Tigon I/II gigabit Ethernet
device          tl         # Texas Instruments ThunderLAN
device          tx         # SMC EtherPower II (83c170 EPIC)
device          vge        # VIA VT612x gigabit ethernet
device          vr         # VIA Rhine, Rhine II
device          wb         # Winbond W89C840F
device          xl         # 3Com 3c90x (Boomerang, Cyclone)

Προγράμματα οδήγησης που χρησιμοποιούν τον κώδικα του διαύλου ελέγχου MII.

# ISA Ethernet NICs.  pccard NICs included.
device          cs         # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device          ed         # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device          ex         # Intel EtherExpress Pro/10 and Pro/10+
device          ep         # Etherlink III based cards
device          fe         # Fujitsu MB8696x based cards
device          ie         # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device          lnc        # NE2100, NE32-VL Lance Ethernet cards
device          sn         # SMC's 9000 series of Ethernet chips
device          xe         # Xircom pccard Ethernet

# ISA devices that use the old ISA shims
#device         le

Προγράμματα οδήγησης καρτών Ethernet τύπου ISA. Δείτε το αρχείο /usr/src/sys/i386/conf/NOTES για λεπτομέρειες σχετικά με το ποιες κάρτες υποστηρίζονται από ποιον οδηγό.

# Wireless NIC cards
device          wlan            # 802.11 support

Γενική υποστήριξη του 802.11. Η γραμμή αυτή απαιτείται για ασύρματη δικτύωση.

device          wlan_wep        # 802.11 WEP support
device          wlan_ccmp       # 802.11 CCMP support
device          wlan_tkip       # 802.11 TKIP support

Υποστήριξη κρυπτογράφησης για συσκευές 802.11. Οι γραμμές αυτές χρειάζονται αν σκοπεύετε να χρησιμοποιήσετε κρυπτογράφηση και πρωτόκολλα ασφαλείας 802.11i.

device          an         # Aironet 4500/4800 802.11 wireless NICs.
device          ath             # Atheros pci/cardbus NIC's
device          ath_hal         # Atheros HAL (Hardware Access Layer)
device          ath_rate_sample # SampleRate tx rate control for ath
device          awi        # BayStack 660 and others
device          ral        # Ralink Technology RT2500 wireless NICs.
device          wi         # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device         wl         # Older non 802.11 Wavelan wireless NIC.

Υποστήριξη για διάφορες ασύρματες κάρτες.

# Pseudo devices
device   loop          # Network loopback

Πρόκειται για τη γενική συσκευή εσωτερικού δικτύου (loopback) του TCP/IP. Η σύνδεση μέσω telnet ή FTP στο localhost (γνωστό επίσης και ως 127.0.0.1) πραγματοποιείται μέσω αυτής της συσκευής. Η ύπαρξη αυτής της συσκευής είναι υποχρεωτική.

device   random        # Entropy device

Κρυπτογραφικά ασφαλής γεννήτρια τυχαίων αριθμών.

device   ether         # Ethernet support

Η γραμμή ether απαιτείται μόνο αν έχετε κάρτα δικτύου Ethernet. Περιέχει γενικό κώδικα για το πρωτόκολλο Ethernet.

device   sl            # Kernel SLIP

Η γραμμή sl παρέχει υποστήριξη SLIP. Η υποστήριξη αυτή έχει σχεδόν ολοκληρωτικά ξεπεραστεί από το PPP, το οποίο είναι ευκολότερο στη ρύθμιση, υποστηρίζει καλύτερα τις συνδέσεις μέσω μόντεμ, και παρέχει καλύτερες δυνατότητες.

device   ppp           # Kernel PPP

Η γραμμή αυτή είναι για υποστήριξη PPP μέσω του πυρήνα για επιλογικές (dial-up) συνδέσεις. Υπάρχει επίσης μια έκδοση PPP η οποία υλοποιείται ως εφαρμογή χρήστη (userland), χρησιμοποιεί το tun και προσφέρει περισσότερη ευελιξία και λειτουργίες όπως κλήση κατά απαίτηση (demand dialing).

device   tun           # Packet tunnel.

Η συσκευή αυτή χρησιμοποιείται από το πρόγραμμα PPP χρήστη (userland). Δείτε το τμήμα PPP αυτού του βιβλίου για περισσότερες πληροφορίες.

device   pty           # Pseudo-ttys (telnet etc)

Πρόκειται για συσκευή "ψευδό-τερματικού" ή προσομοίωσης θύρας login. Χρησιμοποιείται για εισερχόμενες συνδέσεις telnet και rlogin, από το xterm, και από κάποιες άλλες εφαρμογές όπως το Emacs.

device   md            # Memory disks

Ψευτό-συσκευές δίσκου με χρήση μνήμης (ramdrives).

device   gif           # IPv6 and IPv4 tunneling

Η συσκευή αυτή υλοποιεί IPv6 σε IPv4 tunneling, IPv4 σε IPv6 tunneling, IPv4 σε IPv4 tunneling, και IPv6 σε IPv6 tunneling. Η συσκευή gif "αυτό-κλωνοποιείται", και δημιουργεί τα αντίστοιχα αρχεία συσκευών όπως απαιτούνται.

device   faith         # IPv6-to-IPv4 relaying (translation)

Αυτή η ψεύδο-συσκευή συλλαμβάνει πακέτα που στέλνονται προς αυτήν και τα ανακατευθύνει προς το δαίμονα μετάφρασης του IPv4/IPv6.

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device   bpf           # Berkeley packet filter

Πρόκειται για το φίλτρο πακέτων Berkeley. Αυτή η ψεύδο-συσκευή επιτρέπει σε κάρτες δικτύου να λειτουργούν σε κατάσταση promiscuous (πλήρους ακρόασης), συλλαμβάνοντας με αυτό τον τρόπο κάθε πακέτο ενός δικτύου (π.χ. Ethernet). Τα πακέτα αυτά μπορεί να αποθηκεύονται στο δίσκο ή να εξετάζονται με τη βοήθεια του προγράμματος tcpdump(1).

Η συσκευή bpf(4) χρησιμοποιείται επίσης από το dhclient(8) για την ανάκτηση της διεύθυνσης IP της προεπιλεγμένης πύλης κ.ο.κ. Αν χρησιμοποιείτε DHCP, αφήστε αυτή την επιλογή ενεργοποιημένη.

# USB support
device          uhci          # UHCI PCI->USB interface
device          ohci          # OHCI PCI->USB interface
device          ehci          # EHCI PCI->USB interface (USB 2.0)
device          usb           # USB Bus (required)
#device         udbp          # USB Double Bulk Pipe devices
device          ugen          # Generic
device          uhid          # Human Interface Devices
device          ukbd          # Keyboard
device          ulpt          # Printer
device          umass         # Disks/Mass storage - Requires scbus and da
device          ums           # Mouse
device          ural          # Ralink Technology RT2500USB wireless NICs
device          urio          # Diamond Rio 500 MP3 player
device          uscanner      # Scanners
# USB Ethernet, requires mii
device          aue           # ADMtek USB Ethernet
device          axe           # ASIX Electronics USB Ethernet
device          cdce          # Generic USB over Ethernet
device          cue           # CATC USB Ethernet
device          kue           # Kawasaki LSI USB Ethernet
device          rue           # RealTek RTL8150 USB Ethernet

Υποστήριξη για διάφορες συσκευές USB.

# FireWire support
device          firewire      # FireWire bus code
device          sbp           # SCSI over FireWire (Requires scbus and da)
device          fwe           # Ethernet over FireWire (non-standard!)

Υποστήριξη για διάφορες συσκευές Firewire.

Για περισσότερες πληροφορίες και επιπλέον συσκευές που υποστηρίζονται από το FreeBSD, δείτε το αρχείο /usr/src/sys/i386/conf/NOTES.

15.6.1. Λειτουργία με Μεγάλη Ποσότητα Μνήμης (PAE)

Μηχανήματα με μεγάλη ποσότητα μνήμης, χρειάζονται πρόσβαση σε μνήμη που υπερβαίνει το όριο των 4 gigabytes των Εικονικών Διευθύνσεων Χρήστη+Πυρήνα (User+Kernel Virtual Address, KVA). Εξαιτίας αυτού του περιορισμού, η Intel πρόσθεσε υποστήριξη για 36bit φυσικών διευθύνσεων, από τον επεξεργαστή Pentium® Pro και μετά.

Η δυνατότητα Επέκτασης Φυσικών Διευθύνσεων, (Physical Address Extension, PAE) των Intel® Pentium® Pro και μεταγενέστερων CPU, επιτρέπει χρήση μνήμης ως 64 gigabytes. To FreeBSD παρέχει υποστήριξη για τη δυνατότητα αυτή μέσω της ρύθμισης πυρήνα PAE, η οποία διατίθεται για όλες τις τρέχουσες σταθερές εκδόσεις του FreeBSD. Λόγω περιορισμών στην αρχιτεκτονική του συστήματος μνήμης της Intel, δεν γίνεται διάκριση για τη μνήμη που βρίσκεται πάνω ή κάτω από τα 4 gigabytes. Η μνήμη που εκχωρείται πάνω από τα 4 gigabytes, απλώς προστίθεται στο μέγεθος της διαθέσιμης μνήμης.

Για να ενεργοποιήσετε την υποστήριξη PAE στον πυρήνα, απλώς προσθέστε την ακόλουθη γραμμή στο αρχείο των ρυθμίσεων σας:

options		    PAE

Η υποστήριξη PAE στο FreeBSD είναι διαθέσιμη μόνο για επεξεργαστές αρχιτεκτονικής Intel® IA-32. Θα πρέπει επίσης να σημειώσουμε ότι η υποστήριξη PAE στο FreeBSD δεν έχει δοκιμαστεί εκτεταμένα, και θα πρέπει να θεωρείται ποιότητας beta σε σχέση με τα άλλα σταθερά χαρακτηριστικά του FreeBSD.

Η υποστήριξη PAE στο FreeBSD υπόκειται σε κάποιους περιορισμούς:

  • Μια διαδικασία δεν έχει πρόσβαση σε περισσότερα από 4 gigabytes χώρου VM.

  • Οδηγοί συσκευών που δεν χρησιμοποιούν τη διεπαφή bus_dma(9) ίσως προκαλέσουν καταστροφή δεδομένων σε ένα PAE πυρήνα και για το λόγο αυτό δεν συνίσταται η χρήση τους. Στο FreeBSD παρέχεται ένα αρχείο ρυθμίσεων PAE στο οποίο έχουν εξαιρεθεί όλα τα προγράμματα οδήγησης που είναι γνωστό ότι δεν δουλεύουν σε πυρήνα τύπου PAE.

  • Κάποιες μεταβλητές συστήματος (system tunables) εξακριβώνουν τη χρήση της μνήμης, βλέποντας το ποσό της διαθέσιμης φυσικής μνήμης. Αυτές οι μεταβλητές μπορεί να χρησιμοποιήσουν αδικαιολόγητα μεγάλη ποσότητα μνήμης, λόγω της φύσης του συστήματος PAE. Ένα τέτοιο παράδειγμα είναι η ρύθμιση sysctl kern.maxvnodes η οποία ελέγχει το μέγιστο αριθμό vnodes που επιτρέπονται στον πυρήνα. Είναι σκόπιμο να ρυθμίσετε αυτή και άλλες παρόμοιες παραμέτρους σε λογικές τιμές.

  • Ίσως χρειαστεί να ρυθμίσετε τις εικονικές διευθύνσεις του πυρήνα (KVA) ή να μειώσετε την ποσότητα κάποιου συγκεκριμένου πόρου που έχει μεγάλη χρήση (δείτε παραπάνω) για να αποφύγετε την εξάντληση του KVA. Μπορείτε να αυξήσετε το μέγεθος του KVA μέσω της επιλογής KVA_PAGES.

Για λόγους σταθερότητας και απόδοσης, σας συμβουλεύουμε να διαβάσετε τη σελίδα manual tuning(7). Επίσης η σελίδα pae(4) περιέχει ενημερωμένες πληροφορίες σχετικά με την υποστήριξη PAE στο FreeBSD.

15.7. Αν Κάτι Πάει Λάθος

Υπάρχουν τέσσερις κατηγορίες προβλημάτων που μπορούν να παρουσιαστούν όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα:

Αποτυχία της εντολής config

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

config: line 17: syntax error

Βεβαιωθείτε ότι η λέξη-κλειδί στη γραμμή αυτή είναι σωστή, συγκρίνοντας τη με την αντίστοιχη στο αρχείο GENERIC ή σε άλλο αρχείο αναφοράς.

Αποτυχία της εντολής make

Αν αποτυγχάνει η εντολή make, συνήθως αυτό σημαίνει κάποιο λάθος στο αρχείο ρυθμίσεων το οποίο δεν είναι αρκετά σοβαρό για να το καταλάβει η config(8). Κοιτάξτε ξανά το αρχείο ρυθμίσεων σας και αν ακόμα δεν μπορείτε να εντοπίσετε το πρόβλημα, στείλτε το μαζί με το αρχείο με mail στην ηλεκτρονική λίστα γενικών ερωτήσεων του FreeBSD και θα εντοπιστεί πολύ γρήγορα.

Ο πυρήνας δεν εκκινεί:

Αν ο νέος σας πυρήνας δεν εκκινεί ή αποτυγχάνει να αναγνωρίσει τις συσκευές σας, μην πανικοβάλλεστε! Ευτυχώς, το FreeBSD έχει ένα εξαιρετικό μηχανισμό για να επανέλθετε από μη-συμβατούς πυρήνες. Απλώς επιλέξτε τον πυρήνα από τον οποίο θέλετε να ξεκινήσετε μέσω του συστήματος εκκίνησης (boot loader) του FreeBSD. Έχετε πρόσβαση σε αυτό, την ώρα που εμφανίζεται το μενού επιλογών εκκίνησης. Επιλέξτε "Escape to a loader prompt", αριθμός έξι. Στην προτροπή που εμφανίζεται, γράψτε την εντολή boot kernel.old ή το όνομα αρχείου ενός άλλου πυρήνα που ξεκινάει κανονικά. Όταν φτιάχνετε ένα νέο πυρήνα, είναι πάντα καλή ιδέα να έχετε πρόχειρο ένα πυρήνα που ξέρετε ότι δουλεύει.

Αφού εκκινήσετε με ένα καλό πυρήνα, μπορείτε να ελέγξετε το αρχείο ρυθμίσεων σας από την αρχή, και να προσπαθήσετε ξανά. Μια χρήσιμη πηγή πληροφοριών είναι το αρχείο /var/log/messages το οποίο μεταξύ άλλων καταγράφει όλα τα μηνύματα του πυρήνα από κάθε επιτυχημένη εκκίνηση. Επίσης η εντολή dmesg(8) θα σας δείξει όλα τα μηνύματα του πυρήνα της τρέχουσας εκκίνησης.

Αν έχετε πρόβλημα στη δημιουργία πυρήνα, βεβαιωθείτε ότι έχετε κρατήσει ένα πυρήνα GENERIC, ή κάποιο άλλο που γνωρίζετε ότι λειτουργεί, χρησιμοποιώντας ένα διαφορετικό όνομα ώστε να μη διαγραφεί στην επόμενη μεταγλώττιση. Δεν μπορείτε να βασιστείτε στον πυρήνα kernel.old, γιατί κάθε φορά που εγκαθιστάτε νέο πυρήνα, το kernel.old αντικαθίσταται με τον τελευταίο εγκατεστημένο πυρήνα, ο οποίος μπορεί να μην λειτουργεί. Επίσης, όσο το δυνατόν πιο σύντομα, μετακινήστε τον πυρήνα που λειτουργεί στην σωστή θέση, /boot/kernel, διαφορετικά εντολές όπως η ps(1) ίσως να μη λειτουργούν σωστά. Για να το κάνετε αυτό, απλώς μετονομάστε τον κατάλογο που περιέχει τον καλό πυρήνα, π.χ:

# mv /boot/kernel /boot/kernel.bad
# mv /boot/kernel.good /boot/kernel
Ο νέος πυρήνας λειτουργεί, αλλά η ps(1) δεν λειτουργεί πλέον

Αν εγκαταστήσετε πυρήνα διαφορετικής έκδοσης από αυτόν με τον οποίο έχουν φτιαχτεί τα εργαλεία συστήματος, για παράδειγμα εάν βάλετε ένα πυρήνα της σειράς -CURRENT σε ένα σύστημα -RELEASE, πολλές από τις εντολές που σχετίζονται με την κατάσταση του συστήματος όπως ή ps(1) και η vmstat(8) δεν θα λειτουργούν πλέον. Θα πρέπει να μεταγλωττίσετε και να εγκαταστήσετε όλο το βασικό σύστημα (world) χρησιμοποιώντας ίδια έκδοση του πηγαίου κώδικα με αυτή του πυρήνα σας. Αυτός είναι και ένας λόγος για τον οποίο δεν είναι συνήθως καλή ιδέα να χρησιμοποιείτε διαφορετική έκδοση πυρήνα από το υπόλοιπο του λειτουργικού συστήματος.

Chapter 16. Εκτυπώσεις

16.1. Σύνοψη

Μπορείτε να χρησιμοποιήσετε το FreeBSD για να κάνετε εκτυπώσεις σε διάφορους τύπους εκτυπωτών, από τον παλαιότερο κρουστικό ως τον πιο σύγχρονο laser εκτυπωτή, καθώς και οποιασδήποτε άλλης τεχνολογίας ανάμεσα τους, και να δημιουργήσετε εκτυπώσεις υψηλής ποιότητας με τις εφαρμογές που εκτελείτε.

Το FreeBSD μπορεί επίσης να ρυθμιστεί ώστε να λειτουργεί ως εξυπηρετητής εκτυπώσεων δικτύου. Με αυτή τη δυνατότητα το FreeBSD μπορεί να λαμβάνει εργασίες εκτύπωσης από διάφορους άλλους υπολογιστές, συμπεριλαμβανομένων υπολογιστών FreeBSD, Windows® και Mac OS®. Το FreeBSD μπορεί να εξασφαλίζει ότι μόνο μια εργασία θα τυπώνεται κάθε χρονική στιγμή και μπορεί να τηρεί στατιστικά για τους χρήστες και τα μηχανήματα που θα κάνουν τις περισσότερες εκτυπώσεις, να παράγει σελίδες "banner" που να δείχνουν σε ποιόν ανήκει η κάθε εκτύπωση, και πολλά άλλα.

Αφού διαβάσετε αυτό το κεφάλαιο θα ξέρετε:

  • Πως να ρυθμίσετε την ουρά εκτυπώσεων (print spooler) του FreeBSD.

  • Πως να εγκαθιστάτε φίλτρα εκτύπωσης, να χειρίζεστε ειδικές εργασίες εκτύπωσης (π.χ. τη μετατροπή εισερχόμενων κειμένων σε μορφές εκτύπωσης που είναι κατανοητές από τους εκτυπωτές σας).

  • Πως να ενεργοποιήσετε σελίδες τύπου κεφαλίδας ή banner στις εκτυπώσεις σας.

  • Πως να εκτυπώνετε σε εκτυπωτές που είναι συνδεδεμένοι σε άλλους υπολογιστές.

  • Πως να εκτυπώνετε σε εκτυπωτές που είναι συνδεδεμένοι απευθείας στο δίκτυο.

  • Πως να ελέγχετε τους περιορισμούς εκτύπωσης, συμπεριλαμβανομένων των περιορισμών μεγέθους των εργασιών εκτύπωσης, και πως να παρεμποδίζετε την δυνατότητα εκτύπωσης σε συγκεκριμένους χρήστες.

  • Πως να κρατήσετε στατιστικά για τον εκτυπωτή, και καταγραφή για τη χρήση του εκτυπωτή από κάθε χρήστη.

  • Πως να αντιμετωπίσετε προβλήματα στις εκτυπώσεις.

Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:

16.2. Εισαγωγή

Για να χρησιμοποιήσετε εκτυπωτές στο FreeBSD, θα χρειαστεί να ρυθμίσετε τη λειτουργία τους με το σύστημα παροχέτευσης (spooling) εκτυπωτών γραμμής του Berkeley, γνωστό επίσης και ως σύστημα παροχέτευσης LPD, ή απλά LPD. Αυτό είναι το προκαθορισμένο σύστημα ελέγχου εκτυπωτών στο FreeBSD. Το κεφάλαιο αυτό είναι μια εισαγωγή στο LPD και θα σας καθοδηγήσει στις ρυθμίσεις του.

Εάν σας είναι οικείο το LPD ή κάποιο άλλο σύστημα παροχέτευσης εκτυπωτών, τότε μπορείτε να μεταπηδήσετε στην ενότητα Βασική Εγκατάσταση.

Το LPD μπορεί να ελέγχει εξ' ολοκλήρου όλες τις λειτουργίες των εκτυπωτών ενός υπολογιστή. Είναι κυρίως υπεύθυνο για ένα πλήθος λειτουργιών:

  • Ελέγχει την πρόσβαση σε απευθείας συνδεμένους εκτυπωτές και εκτυπωτές προσαρτημένους σε άλλους κόμβους στο δίκτυο.

  • Επιτρέπει σε χρήστες να στέλνουν αρχεία προς εκτύπωση. Οι αποστολές αυτές είναι γνωστές ως εργασίες (jobs).

  • Διατηρεί ουρά αναμονής (queue) για κάθε εκτυπωτή, ώστε να προλαμβάνει την ταυτόχρονη πρόσβαση από πολλούς χρήστες.

  • Μπορεί να εκτυπώνει σελίδες κεφαλίδας (γνωστές επίσης ως banner ή σελίδες burst) ώστε οι χρήστες να μπορούν εύκολα να ξεχωρίσουν τις εργασίες τους μέσα στην στοίβα εκτυπώσεων.

  • Φροντίζει για την ορθότητα των παραμέτρων επικοινωνίας των εκτυπωτών που είναι συνδεδεμένοι σε σειριακές θύρες.

  • Μπορεί μέσω του δικτύου να στείλει εργασίες σε σύστημα παροχέτευσης LPD διαφορετικού υπολογιστή.

  • Μπορεί να εκτελέσει διάφορα φίλτρα για να προσαρμόσει εργασίες ώστε να είναι δυνατή η εκτύπωση τους σε εκτυπωτές που χρησιμοποιούν διαφορετικές γλώσσες ή έχουν διαφορετικές δυνατότητες.

  • Μπορεί να κάνει καταμέτρηση χρήσης του εκτυπωτή.

Μέσω του αρχείου ρύθμισης (/etc/printcap), και με τη βοήθεια ειδικών προγραμμάτων φίλτρων, μπορείτε να ενεργοποιήσετε το σύστημα LPD να κάνει όλες ή κάποιες από τις παραπάνω εργασίες σε μια μεγάλη γκάμα συσκευών εκτύπωσης.

16.2.1. Γιατί θα πρέπει να χρησιμοποιείτε τον Spooler

Αν είστε ο μοναδικός χρήστης του συστήματος, θα αναρωτιέστε γιατί θα έπρεπε να ενδιαφερθείτε για τον spooler αφού δεν χρειάζεστε έλεγχο πρόσβασης, σελίδες κεφαλίδας, ή αναφορές εκτύπωσης. Αν και μπορείτε να ενεργοποιήσετε την άμεση πρόσβαση στον εκτυπωτή, είναι καλύτερα να χρησιμοποιείτε τον spooler για τους παρακάτω λόγους:

  • το LPD εκτυπώνει τις εργασίες στο παρασκήνιο, δεν χρειάζεται να περιμένετε να αντιγραφούν τα δεδομένα στον εκτυπωτή.

  • Το LPD μπορεί άνετα να εκτελεί μια εργασία εκτύπωσης διαμέσου φίλτρων και να προσθέτει κεφαλίδες ημερομηνίας/ώρας ή να μετατρέπει κάποιο ειδικό τύπο αρχείου (όπως ένα αρχείο TeX DVI) σε ένα τύπο κατανοητό από τον εκτυπωτή σας. Αυτές οι διαδικασίες δεν χρειάζεται να γίνονται χειροκίνητα.

  • Πολλά από τα ελεύθερα και εμπορικά διαθέσιμα προγράμματα που παρέχουν διευκολύνσεις στην εκτύπωση, συνήθως επιζητούν να επικοινωνήσουν με τον spooler του συστήματος σας. Ρυθμίζοντας το σύστημα παροχέτευσης, θα μπορείτε ευκολότερα να υποστηρίζετε λογισμικό τρίτων, που μπορεί ήδη να έχετε ή που πρόκειται να εγκαταστήσετε στο μέλλον.

16.3. Βασική Εγκατάσταση

Από το FreeBSD 8.0 και μετά, τα αρχεία συσκευών για τις σειριακές θύρες μετονομάστηκαν από /dev/ttydN σε /dev/ttyuN. Οι χρήστες του FreeBSD 7.X θα πρέπει να προσαρμόσουν την τεκμηρίωση που ακολουθεί με βάση αυτές τις αλλαγές.

Για να χρησιμοποιήσετε εκτυπωτές με το σύστημα παροχέτευσης LPD, θα πρέπει να εγκαταστήσετε τόσο το hardware του εκτυπωτή σας όσο και το λογισμικό LPD. Αυτό το έγγραφο περιγράφει την εγκατάσταση σε δύο στάδια:

  • Δείτε την ενότητα Βασικές Ρυθμίσεις Εκτυπωτών για να μάθετε πως γίνεται η σύνδεση εκτυπωτών, με ποιο τρόπο επικοινωνεί το LPD με τους εκτυπωτές, και πως να εκτυπώνετε απλά αρχεία κειμένου.

  • Δείτε την ενότητα Ρυθμίσεις Εκτυπωτών για Προχωρημένους για να μάθετε πως να εκτυπώνετε αρχεία ειδικής μορφής διαφόρων τύπων, πως να εκτυπώνετε σελίδες κεφαλίδας, πως να εκτυπώνετε σε ένα δίκτυο, πως να ελέγχετε την πρόσβαση στους εκτυπωτές, και πως να χρησιμοποιείτε την καταγραφή εκτυπώσεων.

16.3.1. Βασικές Ρυθμίσεις Εκτυπωτών

Αυτή η ενότητα περιγράφει πως να ρυθμίσετε το hardware του εκτυπωτή και το λογισμικό LPD. Παρέχει βασικές γνώσεις για τα εξής θέματα:

  • Η Ενότητα Ρυθμίσεις Hardware υποδεικνύει πως να συνδέσετε τον εκτυπωτή σε μια θύρα του υπολογιστή σας.

  • Η Ενότητα Ρυθμίσεις Λογισμικού υποδεικνύει πως να εγκαταστήσετε το αρχείο ρύθμισης του συστήματος παροχέτευσης LPD: το αρχείο /etc/printcap.

Αν προσπαθείτε να εγκαταστήσετε έναν εκτυπωτή που δέχεται δεδομένα μέσω πρωτοκόλλου δικτύου και όχι μέσω διασύνδεσης τοπικής θύρας, τότε δείτε την ενότητα Εκτυπωτές Με Συνδέσεις Δικτύου.

Αν και αυτή η ενότητα ονομάζεται "Βασικές Ρυθμίσεις Εκτυπωτών", στην πραγματικότητα είναι αρκετά περίπλοκη. Το δυσκολότερο στάδιο στην εγκατάσταση είναι η επιτυχής λειτουργία στην επικοινωνία του εκτυπωτή με τον υπολογιστή σας και το σύστημα παροχέτευσης LPD. Οι επιλογές για προχωρημένους, όπως οι σελίδες κεφαλίδας και αναφοράς είναι σχετικά εύκολες να επιτευχθούν, μετά την επιτυχή ρύθμιση της βασικής λειτουργίας εκτύπωσης.

16.3.1.1. Ρυθμίσεις Hardware

Αυτή η ενότητα εξηγεί τους διάφορους τρόπους σύνδεσης του εκτυπωτή με τον υπολογιστή σας. Περιγράφει τους διάφορους τύπους θυρών και καλωδίων, και τις ρυθμίσεις που πρέπει να κάνετε στον πυρήνα για να ενεργοποιήσετε την επικοινωνία μεταξύ FreeBSD και εκτυπωτή.

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

16.3.1.1.1. Θύρες και Καλώδια

Οι εκτυπωτές που διατίθενται σήμερα για χρήση με Η/Υ παρέχονται με μία ή περισσότερες εκ των ακολούθων τριών διασυνδέσεων:

  • Οι Σειριακές διασυνδέσεις, γνωστές και ως RS-232 ή θύρες COM, χρησιμοποιούν την σειριακή θύρα του υπολογιστή σας για να στείλουν δεδομένα στον εκτυπωτή. Οι σειριακές διασυνδέσεις είναι συνήθεις στην βιομηχανία κατασκευής Η/Υ και τα καλώδια είναι εκτενώς διαδεδομένα και επίσης εύκολα να κατασκευαστούν. Οι σειριακές διασυνδέσεις μερικές φορές χρειάζονται ειδικά καλώδια και μπορεί να σας ζητηθούν πολύπλοκες επικοινωνιακές ρυθμίσεις. Οι περισσότερες σειριακές θύρες των Η/Υ έχουν μέγιστη ταχύτητα μετάδοσης 115200 bps, κάνοντας δύσκολη την εργασία εκτύπωσης γραφικών μεγάλων διαστάσεων.

  • Οι Παράλληλες διασυνδέσεις χρησιμοποιούν την παράλληλη θύρα του υπολογιστή σας για να στέλνουν δεδομένα στον εκτυπωτή. Οι παράλληλες διασυνδέσεις είναι διαδεδομένες στο εμπόριο και είναι γρηγορότερες από τις σειριακές RS-232. Τα καλώδια διατίθενται έτοιμα, αλλά είναι δυσκολότερο να κατασκευαστούν χειρωνακτικά. Με τις παράλληλες διασυνδέσεις δεν προβλέπονται επιλογές ρύθμισης επικοινωνίας, κάνοντας την ρύθμιση τους εξαιρετικά απλή.

    Οι παράλληλες διασυνδέσεις είναι γνωστές και ως διασυνδέσεις "Centronics", ονομασία προερχόμενη από τον τύπο του ακροδέκτη του εκτυπωτή.

  • Οι διασυνδέσεις USB, συντομογραφία από το Universal Serial Bus, δουλεύουν σε ακόμη μεγαλύτερες ταχύτητες από την παράλληλη και την RS-232 σειριακή διασύνδεση. Τα καλώδια τους είναι απλά και φτηνά. Η USB είναι ανώτερη από την Σειριακή RS-232 και από την Παράλληλη στην εκτύπωση, αλλά δυστυχώς δεν υποστηρίζεται καλά από τα συστήματα UNIX®. Ένας τρόπος για να αποφύγετε αυτό το πρόβλημα είναι να αγοράσετε εκτυπωτή που φέρει διασύνδεση USB και Παράλληλη, όπως συμβαίνει με πολλούς εκτυπωτές.

Γενικά, οι Παράλληλες διασυνδέσεις προσφέρουν συνήθως μίας κατεύθυνσης επικοινωνία (από τον υπολογιστή στον εκτυπωτή) ενώ η σειριακή και η USB δίνουν αμφίδρομη. Στο FreeBSD οι πιο πρόσφατες παράλληλες θύρες (EPP και ECP) καταφέρνουν αμφίδρομη επικοινωνία με τους εκτυπωτές, όταν χρησιμοποιούνται καλώδια που συμμορφώνονται με το πρότυπο IEEE-1284.

Η αμφίδρομη επικοινωνία με εκτυπωτές διαμέσου παράλληλης θύρας μπορεί να επιτευχθεί γενικά με δύο τρόπους. Ο πρώτος τρόπος χρησιμοποιεί ένα προσαρμοσμένο πρόγραμμα οδήγησης εκτυπωτή, ώστε να μπορεί το FreeBSD να συνομιλεί στην γλώσσα του εκτυπωτή. Αυτό είναι σύνηθες με εκτυπωτές inkjet και μπορεί επίσης να χρησιμοποιηθεί για αναφορές διαθέσιμης ποσότητας μελανιού και για άλλες πληροφορίες λειτουργίας. Η δεύτερη μέθοδος χρησιμοποιείται όταν ο εκτυπωτής έχει δυνατότητα υποστήριξης PostScript®.

Οι εργασίες PostScript® είναι στην πραγματικότητα προγράμματα που αποστέλλονται στον εκτυπωτή, δεν είναι απαραίτητο να παράγουν εκτυπώσεις, ενώ μπορούν να επιστρέψουν το αποτέλεσμα τους απευθείας στον υπολογιστή. Το PostScript® χρησιμοποιεί αμφίδρομη επικοινωνία για να ενημερώσει τον υπολογιστή για τυχόν προβλήματα, όπως σφάλματα στο πρόγραμμα PostScript® ή μπλοκάρισμα τροφοδοσίας χαρτιού. Οι χρήστες σας, θα σας είναι ευγνώμονες για αυτές τις πληροφορίες. Επιπλέον, ο καλύτερος τρόπος για να κάνετε σωστή καταμέτρηση με ένα αμφίδρομο εκτυπωτή PostScript® είναι: να ρωτήσετε τον εκτυπωτή για την συνολική καταμέτρηση των σελίδων του (πόσες σελίδες εκτύπωσε σε όλη τη διάρκεια ζωής του), μετά να αποστείλετε την εργασία του χρήστη, και έπειτα να ξαναρωτήσετε για την καταμέτρηση των σελίδων του. Αφαιρέστε τις δύο τιμές και θα γνωρίζετε πόσες σελίδες να χρεώσετε στον χρήστη.

16.3.1.1.2. Παράλληλες Θύρες

Για να συνδέσετε έναν εκτυπωτή σε παράλληλη θύρα, συνδέστε το καλώδιο Centronics μεταξύ εκτυπωτή και υπολογιστή. Οι οδηγίες που συνοδεύουν τον εκτυπωτή και τον υπολογιστή θα σας καθοδηγήσουν να ολοκληρώσετε την σύνδεση.

Θυμηθείτε ποια παράλληλη θύρα χρησιμοποιείτε στον υπολογιστή. Η πρώτη παράλληλη θύρα στο FreeBSD είναι η ppc0, η δεύτερη είναι η ppc1, και ούτω καθεξής. Το όνομα συσκευής του εκτυπωτή χρησιμοποιεί την ίδια αρίθμηση: /dev/lpt0 για τον εκτυπωτή στην πρώτη παράλληλη θύρα κ.τ.λ.

16.3.1.1.3. Σειριακές Θύρες

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

Αν δεν είστε σίγουροι ποιο είναι το "κατάλληλο σειριακό καλώδιο", μπορείτε να δοκιμάσετε μία από τις ακόλουθες εναλλακτικές:

  • Ένα καλώδιο modem ενώνει κάθε pin του ακροδέκτη από τη μια πλευρά του καλωδίου κατευθείαν με το αντίστοιχο pin του ακροδέκτη στο άλλο άκρο. Αυτός ο τύπος καλωδίου είναι γνωστός και ως καλώδιο "DTE-to-DCE".

  • Ένα καλώδιο null-modem ενώνει κατευθείαν μερικά pins, ανταλλάσσει μερικά άλλα (για παράδειγμα, τα pins αποστολής και λήψης), ενώ βραχυκυκλώνει μερικά άλλα, εσωτερικά, στο προστατευτικό κάλυμμα κάθε ακροδέκτη. Αυτός ο τύπος καλωδίου είναι γνωστός και ως καλώδιο "DTE-to-DTE".

  • Ένα καλώδιο σειριακού εκτυπωτή, που απαιτείται από κάποιους λιγότερο συνηθισμένους εκτυπωτές, είναι σαν το καλώδιο null-modem, αλλά στέλνει ισοδύναμα σήματα και στα δύο άκρα αντί να τα βραχυκυκλώνει εσωτερικά.

Θα πρέπει επίσης να ρυθμίσετε τις παραμέτρους επικοινωνίας του εκτυπωτή, συνήθως από τον μπροστινό πίνακα ελέγχου ή από τους 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"). Να θυμάστε αυτές τις ρυθμίσεις, για το στάδιο ρύθμισης λογισμικού που ακολουθεί.

16.3.1.2. Ρυθμίσεις Λογισμικού

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

Μια γενική άποψη των ενεργειών που πρέπει να ακολουθήσετε είναι:

  1. Ρυθμίστε τον πυρήνα σας, αν είναι αναγκαίο, για την θύρα που χρησιμοποιείτε για τον εκτυπωτή σας. Οι απαραίτητες ρυθμίσεις περιγράφονται στην ενότητα Ρυθμίσεις Πυρήνα.

  2. Ρυθμίστε την κατάσταση επικοινωνίας για την παράλληλη θύρα, αν πρόκειται να την χρησιμοποιήσετε. Η ενότητα Ρυθμίσεις Κατάστασης Επικοινωνίας για την Παράλληλη Θύρα περιέχει λεπτομέρειες.

  3. Ελέγξτε αν το λειτουργικό σύστημα μπορεί να στείλει δεδομένα στον εκτυπωτή. Η ενότητα Έλεγχος Επικοινωνίας του Εκτυπωτή παρέχει μερικές συμβουλές για το πως θα μπορούσε να γίνει ο έλεγχος.

  4. Ρυθμίστε το LPD για τον εκτυπωτή σας, τροποποιώντας το αρχείο /etc/printcap. Θα βρείτε οδηγίες για αυτές τις ρυθμίσεις σε επόμενο τμήμα αυτού του κεφαλαίου.

16.3.1.2.1. Ρυθμίσεις Πυρήνα

Ο πυρήνας του λειτουργικού συστήματος έχει μεταγλωττιστεί έτσι ώστε να δουλεύει με ένα συγκεκριμένο σύνολο συσκευών. Η σειριακή και η παράλληλη διασύνδεση του εκτυπωτή είναι μέρος αυτού του συνόλου. Επομένως, ίσως να είναι αναγκαίο να προσθέσετε υποστήριξη για κάποια πρόσθετη σειριακή ή παράλληλη θύρα, αν δεν είναι ήδη ρυθμισμένη στον πυρήνα σας.

Για να ελέγξετε αν ο πυρήνας σας μπορεί να υποστηρίξει μια σειριακή διασύνδεση, πληκτρολογήστε:

# grep sioN /var/run/dmesg.boot

Όπου N είναι ο αριθμός της σειριακής θύρας, ξεκινώντας από το μηδέν. Αν δείτε στην έξοδο του τερματικού σας κάτι παρόμοιο με:

sio2 at port 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A

τότε ο πυρήνας υποστηρίζει αυτή τη θύρα.

Για να ελέγξετε αν ο πυρήνας σας υποστηρίζει παράλληλες διασυνδέσεις, πληκτρολογήστε:

# 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

τότε ο πυρήνας υποστηρίζει αυτή τη θύρα.

Για να μπορεί το λειτουργικό σύστημα να αναγνωρίζει και να χρησιμοποιεί την θύρα (παράλληλη ή σειριακή) για τον εκτυπωτή σας, ίσως χρειαστεί να επαναπροσαρμόσετε τον πυρήνα σας.

Για την υποστήριξη σειριακής θύρας, δείτε την ενότητα στις ρυθμίσεις του πυρήνα. Για την υποστήριξη παράλληλης θύρας, δείτε την ίδια ενότητα και την ενότητα που ακολουθεί.

16.3.1.3. Ρυθμίσεις Κατάστασης Επικοινωνίας για την Παράλληλη Θύρα

Όταν χρησιμοποιείτε την παράλληλη διασύνδεση, μπορείτε να επιλέξετε αν η επικοινωνία του FreeBSD με τον εκτυπωτή θα είναι τύπου interrupt-driven ή polled. Ο γενικός οδηγός συσκευής του εκτυπωτή (lpt(4)) στο FreeBSD χρησιμοποιεί το σύστημα ppbus(4), το οποίο ελέγχει την θύρα του chipset με τον οδηγό ppc(4).

  • Η μέθοδος interrupt-driven είναι προεπιλεγμένη στον πυρήνα GENERIC. Με αυτή τη μέθοδο, το λειτουργικό σύστημα χρησιμοποιεί ένα σήμα IRQ για να προσδιορίσει αν ο εκτυπωτής είναι έτοιμος για δεδομένα.

  • Η μέθοδος polled οδηγεί το λειτουργικό σύστημα να ζητά κατά επανάληψη από τον εκτυπωτή αν είναι έτοιμος για πρόσθετα δεδομένα. Όταν απαντήσει θετικά, ο πυρήνας στέλνει πρόσθετα δεδομένα.

Η μέθοδος interrupt-driven είναι συνήθως κάπως γρηγορότερη αλλά χρησιμοποιεί μια πολύτιμη γραμμή IRQ. Έχει παρατηρηθεί πως κάποιοι σύγχρονοι εκτυπωτές HP δε δουλεύουν σωστά σε κατάσταση interrupt, πιθανώς λόγω κάποιων (όχι απόλυτα εξακριβωμένων) προβλημάτων συγχρονισμού. Αυτοί οι εκτυπωτές χρειάζονται την μέθοδο polled. Θα πρέπει να χρησιμοποιείτε την αποτελεσματικότερη κατάσταση λειτουργίας. Κάποιοι εκτυπωτές δουλεύουν και στις δυο καταστάσεις, αλλά είναι οδυνηρά αργοί στην κατάσταση λειτουργίας interrupt.

Μπορείτε να ρυθμίσετε την κατάσταση επικοινωνίας με δύο τρόπους: ρυθμίζοντας τον πυρήνα ή χρησιμοποιώντας το πρόγραμμα lptcontrol(8).

Για να θέσετε την κατάσταση επικοινωνίας ρυθμίζοντας τον πυρήνα:

  1. Επεξεργαστείτε το αρχείο ρύθμισης του πυρήνα. Δείτε την καταχώριση ppc0. Αν εγκαθιστάτε την δεύτερη παράλληλη θύρα, τότε χρησιμοποιείστε ppc1. Για την τρίτη θύρα ppc2 και ούτω καθεξής.

    • Αν επιθυμείτε κατάσταση λειτουργίας interrupt-driven, επεξεργαστείτε την ακόλουθη γραμμή:

      hint.ppc.0.irq="N"

      στο αρχείο /boot/device.hints και αντικαταστήστε το N με τον σωστό αριθμό IRQ. Το αρχείο ρύθμισης του πυρήνα πρέπει επίσης να περιέχει τον οδηγό ppc(4):

      device ppc
    • Αν επιθυμείτε κατάσταση λειτουργίας polled, διαγράψτε από το αρχείο /boot/device.hints, την ακόλουθη γραμμή:

      hint.ppc.0.irq="N"

    Σε μερικές περιπτώσεις, το παραπάνω δεν είναι αρκετό για να θέσετε την θύρα σε κατάσταση polled. Τις περισσότερες φορές το πρόβλημα προέρχεται από τον οδηγό acpi(4), ο οποίος έχει την ευχέρεια να εξετάζει και να προσαρτά συσκευές, και επομένως, να ελέγχει τον τρόπο πρόσβασης στην θύρα του εκτυπωτή. Θα πρέπει να ελέγξετε τις ρυθμίσεις του acpi(4) για να διορθώσετε αυτό το πρόβλημα.

  2. Αποθηκεύστε το αρχείο. Ρυθμίστε, μεταγλωττίστε, και εγκαταστήστε τον πυρήνα, και έπειτα κάντε επανεκκίνηση. Για περισσότερες λεπτομέρειες, δείτε τις ρυθμίσεις του πυρήνα.

Για να θέσετε την κατάσταση επικοινωνίας με το lptcontrol(8):

  1. Πληκτρολογήστε:

    # lptcontrol -i -d /dev/lptN

    για να θέσετε την κατάσταση λειτουργίας interrupt-driven για το lptN.

  2. Πληκτρολογήστε:

    # lptcontrol -p -d /dev/lptN

    για να θέσετε την κατάσταση λειτουργίας polled για το lptN.

Θα μπορούσατε να καταχωρίσετε αυτές τις εντολές στο δικό σας αρχείο /etc/rc.local. Έτσι θα εκτελούνται αυτόματα κατά την εκκίνηση του συστήματος σας. Για περισσότερες πληροφορίες δείτε το lptcontrol(8).

16.3.1.4. Έλεγχος Επικοινωνίας του Εκτυπωτή

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

Θα ελέγξουμε τον εκτυπωτή στέλνοντας μερικά δεδομένα κειμένου. Για εκείνους τους εκτυπωτές που μπορούν να εκτυπώνουν άμεσα τους χαρακτήρες που έχουν αποσταλεί, το πρόγραμμα lptest(1) είναι τέλειο: Παράγει όλους τους εκτυπώσιμους χαρακτήρες (96) ASCII σε 96 γραμμές.

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

Όταν αυτό το έγγραφο αναφέρεται σε μια γλώσσα εκτυπωτή, εννοείται μια γλώσσα όπως η PostScript®, αλλά όχι η PCL της Hewlett Packard - η PCL είναι μια γλώσσα ευρείας λειτουργικότητας η οποία επιτρέπει την ανάμιξη απλού κειμένου με ακολουθίες διαφυγής. Η PostScript® δεν μπορεί να εκτυπώσει άμεσα απλό κείμενο, και αυτός είναι ακριβώς ο τύπος της γλώσσας εκτυπωτή που θα πρέπει να διευθετήσουμε κατάλληλα.

16.3.1.4.1. Έλεγχος Παράλληλου Εκτυπωτή

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

Για να ελέγξετε έναν εκτυπωτή σε παράλληλη θύρα:

  1. Γίνετε root με su(1).

  2. Στείλτε δεδομένα στον εκτυπωτή.

    • Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο, τότε χρησιμοποιήστε το lptest(1). Πληκτρολογήστε:

      # lptest > /dev/lptN

      Όπου N είναι ο αριθμός της παράλληλης θύρας, ξεκινώντας από το μηδέν.

    • Εάν ο εκτυπωτής καταλαβαίνει PostScript® ή κάποια άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα στον εκτυπωτή. Πληκτρολογήστε:

      # cat > /dev/lptN

      Έπειτα πληκτρολογήστε το πρόγραμμα μία προς μία γραμμή, προσεκτικά, γιατί δεν μπορείτε να επεξεργαστείτε μια γραμμή αφότου έχετε πιέσει το πλήκτρο RETURN ή ENTER. Αφού τελειώσετε με την καταχώριση του προγράμματος, πιέστε CONTROL+D, ή άλλο πλήκτρο τερματισμού αρχείου.

      Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα σε ένα αρχείο και να πληκτρολογήσετε:

      # cat file > /dev/lptN

    Όπου file είναι το όνομα του αρχείου που περιέχει το πρόγραμμα που θέλετε να στείλετε στον εκτυπωτή.

Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το κείμενο δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα.

16.3.1.4.2. Έλεγχος Σειριακού Εκτυπωτή

Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το FreeBSD μπορεί να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε σειριακή θύρα.

Για να ελέγξετε έναν εκτυπωτή σε σειριακή θύρα:

  1. Γίνετε root με su(1).

  2. Επεξεργαστείτε το αρχείο /etc/remote. Προσθέστε την ακόλουθη καταχώριση:

    printer:dv=/dev/port:br#bps-rate:pa=parity

    Όπου port είναι η καταχώριση συσκευής για την σειριακή πόρτα (ttyu0, ttyu1, κτλ.), bps-rate είναι η ταχύτητα bits-per-second επικοινωνίας με τον εκτυπωτή, και parity η ισοτιμία που απαιτείται από τον εκτυπωτή (even, odd, none, ή zero).

    Παρακάτω φαίνεται ένα υπόδειγμα καταχώρισης, για έναν εκτυπωτή συνδεδεμένο μέσω σειριακής γραμμής στην τρίτη σειριακή θύρα με ταχύτητα 19200 bps και χωρίς parity:

    printer:dv=/dev/ttyu2:br#19200:pa=none
  3. Συνδεθείτε στον εκτυπωτή με tip(1). Πληκτρολογήστε:

    # tip printer

    Αν αυτό το στάδιο δεν δουλεύει, επεξεργαστείτε πάλι το αρχείο /etc/remote και προσπαθήστε το χρησιμοποιώντας /dev/cuaaN αντί για /dev/ttyuN.

  4. Στείλτε δεδομένα στον εκτυπωτή.

    • Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο, χρησιμοποιήστε lptest(1). Γράψτε:

      % $lptest
    • Εάν ο εκτυπωτής καταλαβαίνει PostScript® ή κάποια άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα στον εκτυπωτή. Πληκτρολογήστε το πρόγραμμα, μία προς μία γραμμή, πολύ προσεκτικά, καθώς ο εκτυπωτής μπορεί να ερμηνεύει διαφορετικά την χρήση χαρακτήρων όπως το backspace ή άλλων που παράγονται από διάφορα πλήκτρα επεξεργασίας. Μπορεί επίσης να χρειαστεί να πληκτρολογήσετε κάποιο ειδικό πλήκτρο τερματισμού αρχείου για τον εκτυπωτή ώστε να γνωρίζει πότε ολοκληρώνεται το πρόγραμμα. Για εκτυπωτές PostScript®, πιέστε CONTROL+D.

      Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα σε ένα αρχείο και να πληκτρολογήσετε:

      % >file

    Όπου file είναι το όνομα του αρχείου που περιέχει το πρόγραμμα. Αφού το tip(1) στείλει το αρχείο, πιέστε το κατάλληλο πλήκτρο τερματισμού αρχείου, αν απαιτείται.

Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το κείμενο δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα.

16.3.1.5. Ενεργοποίηση του Spooler: το Αρχείο /etc/printcap

Σε αυτό το σημείο, ο εκτυπωτής σας θα πρέπει να είναι συνδεμένος, ο πυρήνας σας ρυθμισμένος να επικοινωνεί μαζί του (αν χρειάζεται), και έχετε πετύχει να στείλετε κάποια δοκιμαστικά δεδομένα στον εκτυπωτή. Είστε τώρα έτοιμοι να ρυθμίσετε το LPD για να ελέγχετε την πρόσβαση στον εκτυπωτή σας.

Μπορείτε να ρυθμίσετε το LPD με επεξεργασία του αρχείου /etc/printcap. Το σύστημα παροχέτευσης LPD διαβάζει αυτό το αρχείο κάθε φορά που χρησιμοποιείται ο spooler, επομένως πιθανές αναβαθμίσεις του μπαίνουν άμεσα σε εφαρμογή.

Είναι εύκολο να κατανοήσετε την μορφή του αρχείου printcap(5). Χρησιμοποιήστε τον κειμενογράφο που προτιμάτε για να κάνετε αλλαγές στο /etc/printcap. Η μορφή του είναι παρόμοια με άλλα αρχεία περιγραφής δυνατοτήτων, όπως τα /usr/shared/misc/termcap και /etc/remote. Δείτε την cgetent(3) για λεπτομερείς πληροφορίες σχετικά με την μορφή του αρχείου.

Η πιο απλή ρύθμιση του spooler αποτελείται από τα ακόλουθα βήματα:

  1. Επιλέξτε ένα όνομα (και λίγα βολικά παρωνύμια) για τον εκτυπωτή, και τοποθετήστε τα στο αρχείο /etc/printcap. Δείτε την ενότητα Ονοματοδότηση Εκτυπωτή για περισσότερες πληροφορίες σχετικά με την ονομασία των εκτυπωτών.

  2. Απενεργοποιήστε τις σελίδες κεφαλίδας (είναι ενεργές από προεπιλογή) εισάγοντας την ικανότητα sh. Για περισσότερες πληροφορίες δείτε την ενότητα Παρεμπόδιση Σελίδων Κεφαλίδας.

  3. Δημιουργήστε ένα κατάλογο παροχέτευσης, και καθορίστε την τοποθεσία του με την ικανότητα sd. Για περισσότερες πληροφορίες δείτε την ενότητα Δημιουργία Καταλόγου Παροχέτευσης.

  4. Καθορίστε την κατάλληλη καταχώριση /dev για τον εκτυπωτή, και σημειώστε τη στο /etc/printcap με την ικανότητα lp. Για περισσότερες πληροφορίες, δείτε την ενότητα Αναγνώριση της Συσκευής Εκτύπωσης. Επίσης, αν ο εκτυπωτής είναι σε σειριακή θύρα, εγκαταστήστε τις παραμέτρους επικοινωνίας με την ικανότητα ms# η οποία αναλύεται στην ενότητα Ρυθμίσεις Παραμέτρων Επικοινωνίας του Spooler.

  5. Εγκαταστήστε φίλτρα εισόδου απλού κειμένου. Δείτε την ενότητα Εγκατάσταση Φίλτρου Κειμένου για περισσότερες πληροφορίες.

  6. Ελέγξτε την εγκατάσταση εκτυπώνοντας οτιδήποτε με την εντολή lpr(1). Περισσότερες πληροφορίες είναι διαθέσιμες στις ενότητες Δοκιμή του Spooler και Εντοπισμός Βλαβών.

Εκτυπωτές που βασίζονται σε γλώσσες εκτύπωσης, όπως οι εκτυπωτές PostScript®, δεν μπορούν να εκτυπώσουν άμεσα απλό κείμενο. Ο απλός τρόπος ρύθμισης που δείξαμε παραπάνω και που θα περιγράψουμε εκτενέστερα στις επόμενες ενότητες, προϋποθέτει πως αν ρυθμίζετε έναν τέτοιο εκτυπωτή θα μπορείτε να εκτυπώσετε μόνον αρχεία γραμμένα στη γλώσσα του.

Οι χρήστες συνήθως νομίζουν πως μπορούν να εκτυπώσουν απλό κείμενο σε όλους τους εκτυπωτές που είναι εγκατεστημένοι στο σύστημα τους. Τα προγράμματα που χρησιμοποιούν το LPD για να εκτυπώσουν, κάνουν ακριβώς την ίδια υπόθεση. Αν προσπαθείτε να εγκαταστήσετε έναν τέτοιο εκτυπωτή και θέλετε να μπορείτε να τυπώνετε εργασίες στην γλώσσα του εκτυπωτή αλλά και σε απλό κείμενο, σας συνιστούμε να προσθέσετε ένα επιπλέον βήμα στην διαδικασία εγκατάστασης που περιγράψαμε παραπάνω: Εγκαταστήστε ένα πρόγραμμα αυτόματης μετατροπής από απλό κείμενο σε PostScript (ή σε άλλη γλώσσα εκτυπωτή). Η ενότητα Συμβατότητα Εργασιών Απλού Κειμένου σε εκτυπωτές PostScript® εξηγεί πως να ενεργήσετε.

16.3.1.5.1. Ονοματοδότηση Εκτυπωτή

Το πρώτο (εύκολο) βήμα είναι να επιλέξετε όνομα για τον εκτυπωτή σας. Δεν έχει σημασία αν θα προτιμήσετε ένα λειτουργικό ή κάποιο εξωτικό όνομα αφού μπορείτε επίσης να προσθέσετε και μερικά παρωνύμια (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.

16.3.1.5.2. Παρεμπόδιση Σελίδων Κεφαλίδας

Το σύστημα παροχέτευσης 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). Κάθε γραμμή καταχώρισης (εκτός από την τελευταία) τελειώνει με μια αριστερόστροφη κάθετο.

16.3.1.5.3. Δημιουργία Καταλόγου Παροχέτευσης

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

Λόγω της μεταβαλλόμενης φύσης των καταλόγων παροχέτευσης, συνηθίζεται να τοποθετούνται κάτω από τον κατάλογο /var/spool. Δεν είναι αναγκαίο να παίρνετε αντίγραφα ασφαλείας των καταλόγων παροχέτευσης. Η επαναδημιουργία τους είναι τόσο απλή όσο να τρέξουμε την εντολή mkdir(1).

Είναι επίσης συνηθισμένο να ονομάζεται ο κατάλογος με το ίδιο όνομα με τον εκτυπωτή, όπως φαίνεται παρακάτω:

# mkdir /var/spool/printer-name

Ωστόσο, αν έχετε αρκετούς εκτυπωτές στο δίκτυο, ίσως επιθυμείτε να τοποθετήσετε τους καταλόγους παροχέτευσης κάτω από ένα μοναδικό κατάλογο που θα χρησιμοποιείται αποκλειστικά για εκτυπώσεις με το LPD. Θα κάνουμε ακριβώς αυτό για τα παραδείγματα μας με τους εκτυπωτές rattan και bamboo:

# mkdir /var/spool/lpd