Περιγραφή των Συστημάτων BSD | ||
---|---|---|
Προηγ |
Τελικά ποια είναι η διαφορά μεταξύ, ας πούμε, του Debian Linux και του FreeBSD; Για τον μέσο χρήστη, η διαφορά είναι στην πραγματικότητα μικρή: και τα δυο είναι λειτουργικά συστήματα που μοιάζουν με το UNIX®. Και τα δυο αναπτύσσονται από μη εμπορικές κοινότητες (αυτό δεν ισχύει για πολλές άλλες διανομές του Linux φυσικά). Στις επόμενες παραγράφους, θα πούμε λίγα πράγματα για το BSD και θα το συγκρίνουμε με το Linux. Η περιγραφή ταιριάζει πιο πολύ στο FreeBSD, το οποίο είναι περίπου το 80% των εγκατεστημένων BSD, αλλά οι διαφορές από το NetBSD, το OpenBSD και το DragonFlyBSD είναι μικρές.
Δεν υπάρχει ένα άτομο ή οργανισμός στον οποίο να ανήκει το BSD. Αναπτύσσεται και διανέμεται από μια κοινότητα προγραμματιστών από όλο τον κόσμο που έχουν αρκετές γνώσεις και είναι αφοσιωμένοι στην ανάπτυξή του. Κάποια από τα κομμάτια του BSD είναι ανεξάρτητα Open Source projects που συντηρούνται από κάποια διαφορετική ομάδα ή άτομο.
Οι BSD πυρήνες αναπτύσσονται ακολουθώντας το Open Source μοντέλο ανάπτυξης. Κάθε ομάδα διατηρεί ένα δέντρο πηγαίου κώδικα στο οποίο έχουν όλοι πρόσβαση, χρησιμοποιώντας το Concurrent Versions System (CVS). Το δέντρο πηγαίου κώδικα περιέχει όλο τον πηγαίο κώδικα για τα αρχεία του συστήματος, καθώς και τεκμηρίωση ή άλλα σχετικά αρχεία. Το CVS επιτρέπει στους χρήστες να «εξάγουν» (με άλλα λόγια να πάρουν ένα αντίγραφο) οποιασδήποτε έκδοσης του συστήματος.
Ένας μεγάλος αριθμός προγραμματιστών από όλο τον κόσμο συνεισφέρουν με βελτιώσεις για το BSD. Χωρίζονται σε τρεις κατηγορίες:
Οι Contributors γράφουν κώδικα ή τεκμηρίωση. Δεν έχουν δικαίωμα να κάνουν commit (να προσθέσουν κώδικα) απευθείας στον πηγαίο κώδικα. Για να μπει ο κώδικάς τους στο σύστημα πρέπει να περάσει από έλεγχο και να δοκιμαστεί από κάποιον προγραμματιστή που έχει τέτοια δικαιώματα, ο οποίος λέγεται και committer.
Οι Committers είναι προγραμματιστές με δικαίωμα να προσθέτουν πράγματα απευθείας στον πηγαίο κώδικα. Για να γίνει κάποιος committer πρέπει να δείξει ότι έχει ικανότητες σε κάποιο συγκεκριμένο τομέα, στον οποίο είναι ενεργός.
Αφήνεται στην διακριτικότητα του committer το αν θα πρέπει να πάρει άδεια πριν κάνει αλλαγές σε ένα συγκεκριμένο μέρος του πηγαίου κώδικα. Γενικά, ένας έμπειρος committer μπορεί να κάνει αλλαγές που είναι προφανώς σωστές χωρίς να ζητήσει άδεια. Για παράδειγμα, ένας committer από την ομάδα τεκμηρίωσης μπορεί να διορθώνει ορθογραφικά ή γραμματικά λάθη χωρίς να ζητήσει επιβεβαίωση. Από την άλλη, προγραμματιστές που κάνουν μεγάλες ή περίπλοκες αλλαγές θα πρέπει να δίνουν κάπως τις αλλαγές τους στους άλλους για έλεγχο πριν κάνουν commit. Σε εξαιρετικές περιπτώσεις, ένα μέλος της βασικής ομάδας (core team) με την ιδιότητα του Principal Architect μπορεί να απαιτήσει οι αλλαγές να αφαιρεθούν από τον πηγαίο κώδικα, μια διαδικασία που λέγεται backing out. Όλοι οι committers παίρνουν mail που περιγράφουν κάθε ξεχωριστή αλλαγή που γίνεται commit, οπότε δεν είναι δυνατόν να προστεθεί κάτι κρυφά.
Η Core team. Τέλος, το FreeBSD και το NetBSD έχουν το καθένα μια βασική ομάδα (core team) που έχει την διαχείριση του συστήματος. Η βασική ομάδα έχει αναπτυχθεί στην πορεία του project, και ο ρόλος της δεν είναι πάντα σαφώς καθορισμένος. Δεν είναι απαραίτητο να είναι κάποιος προγραμματιστής, αν και συνήθως τα μέλη της βασικής ομάδας είναι από τα άτομα που αναπτύσσουν το BSD. Οι κανόνες για την βασική ομάδα διαφέρουν από το ένα project στο άλλο, αλλά γενικά η γνώμη της βασικής ομάδας μετράει περισσότερο στην κατεύθυνση του project από αυτή των υπόλοιπων.
Αυτή η οργάνωση διαφέρει από αυτή του Linux σε διάφορα σημεία:
Δεν υπάρχει ένα μοναδικό άτομο που να ελέγχει τα περιεχόμενα του συστήματος. Πρακτικά, αυτή η διαφορά υπερεκτιμάται, αφού ο Principal Architect μπορεί να απαιτήσει κάποιος κώδικας να αφαιρεθεί, και ακόμα και στο Linux υπάρχουν αρκετά άτομα που τους επιτρέπεται να κάνουν αλλαγές.
Από την άλλη, υπάρχει ένα κεντρικό repository, ένα μέρος που μπορείτε να βρείτε ολόκληρο το λειτουργικό σύστημα σε μορφή πηγαίου κώδικα, σε οποιαδήποτε έκδοση, ακόμα και παλιότερες.
Τα BSD project συντηρούν ολόκληρο το «Λειτουργικό Σύστημα», κι όχι μόνο τον πυρήνα. Αυτή η διαφορά είναι μόνο οριακά χρήσιμη. Ούτε το BSD, ούτε το Linux δεν είναι πολύ χρήσιμα χωρίς εφαρμογές. Οι εφαρμογές που χρησιμοποιούνται στο BSD είναι συχνά οι ίδιες εφαρμογές που χρησιμοποιούνται κάτω από το Linux.
Σαν αποτέλεσμα της κεντρικής και σαφώς ορισμένης συντήρησης ενός CVS δέντρου πηγαίου κώδικα, η ανάπτυξη του BSD είναι ξεκάθαρη, και είναι εύκολη η πρόσβαση σε οποιαδήποτε έκδοση του συστήματος είτε με αριθμό έκδοσης, είτε με ημερομηνία. Το CVS επίσης επιτρέπει αθροιστικές αλλαγές στο σύστημα. Για παράδειγμα, το repository του FreeBSD ενημερώνεται περίπου 100 φορές τη μέρα. Οι πιο πολλές από αυτές τις αλλαγές είναι μικρές.
Οι ομάδες ανάπτυξης των FreeBSD, NetBSD και OpenBSD διαθέτουν το σύστημα σε τρεις διαφορετικές «εκδόσεις». Όπως και με το Linux, σε κάθε έκδοση δίνεται ένας αριθμός, π.χ. 1.4.1 ή 3.5. Εκτός από αυτό, ο αριθμός της έκδοσης έχει ένα επίθεμα, το οποίο υποδηλώνει το σκοπό της έκδοσης:
Η πειραματική έκδοση του συστήματος λέγεται CURRENT. Το FreeBSD ορίζει ένα αριθμό έκδοσης για το CURRENT, για παράδειγμα FreeBSD 5.0-CURRENT. Το NetBSD χρησιμοποιεί ένα κάπως διαφορετικό τρόπο ονοματολογίας και προσθέτει γράμμα στο τέλος του αριθμού έκδοσης το οποίο αντιστοιχεί σε αλλαγές εσωτερικών λειτουργιών, για παράδειγμα NetBSD 1.4.3G. Το OpenBSD δεν ορίζει κάποιο αριθμό («OpenBSD-current»). Η ανάπτυξη καινούριων πραγμάτων πάντα γίνεται σε αυτόν τον κλάδο.
Σε τακτά χρονικά διαστήματα, από δυο μέχρι και τέσσερεις φορές το χρόνο, τα project ανακοινώνουν μια RELEASE έκδοση του συστήματος, η οποία διατίθεται σε CD-ROM και μπορεί κάποιος να την κατεβάσει από FTP εξυπηρετητές, για παράδειγμα ανακοινώνεται το OpenBSD 2.6-RELEASE ή το NetBSD 1.4-RELEASE. Η RELEASE έκδοση απευθύνεται σε τελικούς χρήστες, και είναι η κανονική μορφή του συστήματος. Το NetBSD διαθέτει επίσης και patch εκδόσεις με ένα τρίτο ψηφίο, όπως για παράδειγμα την NetBSD 1.4.2.
Καθώς προβλήματα βρίσκονται σε κάποια RELEASE έκδοση, διορθώνονται, και οι αλλαγές προστίθενται στο CVS. Στο FreeBSD, το αποτέλεσμα ονομάζεται η STABLE έκδοση, ενώ στο NetBSD και στο OpenBSD συνεχίζει να λέγεται η RELEASE έκδοση. Μικρά καινούρια χαρακτηριστικά μπορεί να προστεθούν και σε αυτόν τον κλάδο μετά από μια δοκιμαστική περίοδο στον CURRENT κλάδο.
Το Linux, σε αντίθεση, συντηρεί δυο ξεχωριστά δέντρα πηγαίου κώδικα. Την σταθερή και την πειραματική έκδοση. Οι σταθερές εκδόσεις έχουν ένα ζυγό αριθμό έκδοσης, όπως 2.0, 2.2 ή 2.4. Οι πειραματικές εκδόσεις έχουν περιττό αριθμό έκδοσης, όπως 2.1, 2.3 ή 2.5. Σε κάθε περίπτωση, ο αριθμός ακολουθείται από ένα ακόμα αριθμό που υποδεικνύει την ακριβή έκδοση. Ακόμα, κάθε διανομέας προσθέτει τα δικά του προγράμματα χρήστη και εργαλεία, οπότε το όνομα της διανομής είναι επίσης σημαντικό. Κάθε διανομέας επίσης προσθέτει τον δικό του αριθμό στην διανομή, οπότε μια πλήρης περιγραφή μπορεί να είναι κάτι σαν «TurboLinux 6.0 με πυρήνα 2.2.14»
Σε αντίθεση με τις διανομές του Linux, υπάρχουν μόνο τέσσερα διαφορετικά open source BSD. Κάθε BSD ομάδα συντηρεί τον δικό της πηγαίο κώδικα και τον δικό της πυρήνα. Πρακτικά, φυσικά, υπάρχουν πολύ λιγότερες διαφορές στα προγράμματα χρήστη των BSD ομάδων από ότι υπάρχουν στο Linux.
Είναι δύσκολο να κατηγοριοποιηθούν οι σκοποί της κάθε BSD ομάδας. Οι διαφορές είναι πολύ υποκειμενικές. Βασικά,
Το FreeBSD έχει ως στόχο την υψηλή απόδοση και την ευκολία χρήσης από τους τελικούς χρήστες. Είναι επίσης το αγαπημένο των υπηρεσιών παροχής περιεχομένου στον παγκόσμιο ιστό. Τρέχει σε αρκετές πλατφόρμες: συστήματα βασισμένα στην i386™ αρχιτεκτονική («PC»), συστήματα βασισμένα στους AMD 64-bit επεξεργαστές, συστήματα βασισμένα στην αρχιτεκτονική UltraSPARC®, συστήματα με επεξεργαστές Alpha της Compaq και συστήματα βασισμένα στο πρότυπο PC-98 της NEC. Το FreeBSD έχει σημαντικά περισσότερους χρήστες από τα άλλα projects.
Το NetBSD στοχεύει στην μέγιστη μεταφερσιμότητα: «μα φυσικά και τρέχει NetBSD». Τρέχει σε μηχανές από υπολογιστές χειρός μέχρι μεγάλους εξυπηρετητές, και έχει χρησιμοποιηθεί ακόμα και σε αποστολές της NASA. Είναι μια πολύ καλή επιλογή για παλιό μη-Intel® hardware.
Το OpenBSD δίνει μεγάλη σημασία στην ασφάλεια και στην καθαρότητα του κώδικα: χρησιμοποιεί ένα συνδυασμό από ιδέες open source και λεπτομερή έλεγχο του κώδικα για να φτιάξει ένα σύστημα που είναι ολοφάνερα σωστό, κάτι που το κάνει να είναι η επιλογή των οργανισμών που δίνουν σημασία στην ασφάλεια, όπως τράπεζες, χρηματιστήρια και παραρτήματα της κυβέρνησης των ΗΠΑ. Όπως και το NetBSD τρέχει σε αρκετές πλατφόρμες.
Το DragonFlyBSD στοχεύει στην ανάπτυξη ενός συστήματος μεγάλης απόδοσης και scalability σε οτιδήποτε από ένα απλό σύστημα ενός επεξεργαστή μέχρι τεράστια clusters συστημάτων. Το DragonFlyBSD έχει αρκετούς στόχους ευρείας εμβέλειας, αλλά μέχρι τώρα οι προσπάθειες της ομάδας ανάπτυξής του επικεντρώνονται στην υλοποίηση μιας SMP πλατφόρμας που είναι εύκολο να κατανοηθεί, να συντηρηθεί και ευνοεί την περαιτέρω ανάπτυξη.
Υπάρχουν ακόμη και δύο BSD λειτουργικά συστήματα που δεν είναι open source, το BSD/OS και το Mac OS® X της Apple:
Το BSD/OS είναι το πιο παλιό από τα βασισμένα στο 4.4BSD λειτουργικά συστήματα. Δεν ήταν open source, παρόλο που άδειες πηγαίου κώδικα ήταν διαθέσιμες με σχετικά χαμηλό κόστος. Έμοιαζε πολύ με το FreeBSD. Δύο χρόνια μετά την εξαγορά της BSDi από τη Wind River Systems, το BSD/OS απέτυχε να επιβιώσει σαν ανεξάρτητο προϊόν. Μπορεί ακόμα να είναι διαθέσιμη υποστήριξη και πηγαίος κώδικας από την Wind River, αλλά όλη η ανάπτυξη γίνεται πλέον στο embedded λειτουργικό σύστημα VxWorks.
Το Mac OS X είναι η πιο πρόσφατη έκδοση του λειτουργικού συστήματος για την γραμμή υπολογιστών Macintosh® της Apple Computer Inc. Ο πυρήνας του λειτουργικού συστήματος, ο οποίος είναι βασισμένος στο BSD και λέγεται Darwin, είναι διαθέσιμος ως ένα πλήρες λειτουργικό σύστημα ανοιχτού κώδικα για υπολογιστές x86 και PPC. Το σύστημα γραφικών Aqua/Quartz και πολλά άλλα εμπορικά μέρη του Mac OS X δεν είναι διαθέσιμα σε μορφή πηγαίου κώδικα. Αρκετά μέλη της ομάδας ανάπτυξης του Darwin συμμετέχουν στην ανάπτυξη του FreeBSD κι ανάποδα.
Το Linux διατίθεται σύμφωνα με τους όρους της GNU General Public License (GPL), η οποία είναι σχεδιασμένη για να αποκλείσει το μη-ελεύθερο λογισμικό. Ειδικότερα, οποιοδήποτε προϊόν βασισμένο σε κάποιο προϊόν διαθέσιμο σύμφωνα με τους όρους της GPL πρέπει κι αυτό να δίνεται σε μορφή πηγαίου κώδικα αν ζητηθεί. Αντίθετα, η BSD άδεια είναι λιγότερο περιοριστική: διανομές οι οποίες είναι διαθέσιμες μόνο σε εκτελέσιμη μορφή επιτρέπονται. Αυτό είναι πολύ χρήσιμο σε embedded εφαρμογές.
Επειδή λιγότερες εφαρμογές είναι διαθέσιμες για BSD από ότι για Linux, οι προγραμματιστές του BSD έγραψαν ένα πακέτο συμβατότητας με το Linux, που επιτρέπει σε προγράμματα για Linux να τρέξουν κάτω από BSD. Το πακέτο περιλαμβάνει τόσο αλλαγές στον πυρήνα, έτσι ώστε να εκτελούνται σωστά οι κλήσεις συστήματος του Linux, όσο και αρχεία συμβατότητας με το Linux όπως η βιβλιοθήκη της C. Δεν υπάρχει πρακτικά διαφορά στην ταχύτητα εκτέλεσης μεταξύ μιας εφαρμογής για Linux που τρέχει σε ένα Linux μηχάνημα και μιας εφαρμογής για Linux που τρέχει σε ένα BSD μηχάνημα ίδιας ταχύτητας.
Η λογική του BSD, «όλα από μια πηγή», σημαίνει ότι οι αναβαθμίσεις είναι πολύ πιο εύκολες να γίνουν από ότι στο Linux. Το BSD παρέχει επίσης και βιβλιοθήκες συμβατότητας με παλιότερες εκδόσεις, οπότε μπορείτε να τρέχετε εκτελέσιμα που είναι αρκετά χρόνια παλιά χωρίς προβλήματα.
Κι αυτό τι υποτίθεται ότι σημαίνει πρακτικά; Ποιος θά 'πρεπε να χρησιμοποιεί BSD, και ποιος θά 'πρεπε να χρησιμοποιεί Linux;
Αυτή είναι μια πολύ δύσκολη ερώτηση να απαντήσει κανείς. Ας δούμε μερικές γενικές οδηγίες:
«Αν δεν έχει χαλάσει, μην το φτιάξετε»: Αν ήδη χρησιμοποιείτε κάποιο open source λειτουργικό σύστημα, και είστε ικανοποιημένοι από αυτό, μάλλον δεν υπάρχει κανένας καλός λόγος να το αλλάξετε.
Τα BSD συστήματα, και ειδικά το FreeBSD, μπορούν να έχουν αξιοσημείωτα καλύτερη απόδοση από το Linux. Αλλά αυτό δεν ισχύει πάντα. Σε πολλές περιπτώσεις, δεν υπάρχει διαφορά στην απόδοση ή είναι πολύ μικρή. Σε μερικές περιπτώσεις μπορεί το Linux να αποδίδει καλύτερα από το FreeBSD.
Γενικά, τα BSD συστήματα έχουν καλύτερη φήμη όσον αφορά στην αξιοπιστία που έχουν, κυρίως σαν αποτέλεσμα της πιο ώριμης βάσης κώδικα.
Τα BSD συστήματα έχουν τη φήμη ότι έχουν πιο ποιοτική και ολοκληρωμένη τεκμηρίωση. Οι διάφορες ομάδες τεκμηρίωσης προσπαθούν να παρέχουν ενημερωμένη τεκμηρίωση σε πολλές γλώσσες, να κρατούν την τεκμηρίωση ενημερωμένη και να καλύπτουν κάθε χαρακτηριστικό του συστήματος σε βάθος.
Η BSD άδεια μπορεί να σας αρέσει περισσότερο από την GPL.
Το BSD μπορεί να τρέξει ένα μεγάλο ποσοστό από τα εκτελέσιμα των προγραμμάτων για Linux, ενώ το Linux δε μπορεί να τρέξει BSD εκτελέσιμα. Πολλές BSD υλοποιήσεις μπορούν να τρέξουν ακόμη κι εκτελέσιμα από άλλα UNIX συστήματα. Αυτό πιθανόν να έχει ως αποτέλεσμα η μετάβαση από κάποιο άλλο σύστημα σε BSD να είναι πιο εύκολη από ότι σε Linux.
Το BSD μπορεί να τρέξει εκτελέσιμα του Linux, ενώ το Linux δεν μπορεί να εκτελέσει προγράμματα για BSD. Σαν αποτέλεσμα, περισσότερο λογισμικό είναι διαθέσιμο για BSD από ότι για Linux.
Η BSDi / FreeBSD Mall, Inc. πάντα παρείχε υποστήριξη για το BSD/OS και πρόσφατα ανακοίνωσε ότι παρέχει συμβόλαια υποστήριξης και για το FreeBSD.
Επίσης, κάθε ένα από τα BSD έχει μια λίστα με consultants που μπορείτε να προσλάβετε: για το FreeBSD, το NetBSD, και το OpenBSD.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.