FreeBSD

μικρογραφία|Εκκίνηση του FreeBSD 14 σε εικονικό περιβάλλον  VirtualBox

Το **FreeBSD** είναι ένα Unix-συμβατό ελεύθερο και ανοικτού κώδικα δωρεάν λειτουργικό σύστημα, το οποίο έχει τις καταβολές του στο Research Unix μέσω του Berkeley Software Distribution  (BSD). Το FreeBSD είναι άμεσος απόγονος του BSD, το οποίο ιστορικά ονομαζόταν "BSD Unix" ή "Berkeley Unix" (κατά παράβαση του εμπορικού σήματος UNIX). Η πρώτη έκδοση του FreeBSD κυκλοφόρησε το 1993, και από το 2005 είναι η πιο ευρέως χρησιμοποιούμενη ανοικτού κώδικα διανομή του BSD, καθώς βρίσκεται εγκατεστημένη σε περισσότερο από τα τρία τέταρτα όλων των συστημάτων που τρέχουν ανοικτού κώδικα διανομές του BSD.

Το FreeBSD έχει ομοιότητες με το Linux, με δύο σημαντικές όμως διαφορές. Πρώτον, το FreeBSD αποτελεί ένα πλήρες λειτουργικό σύστημα, δηλαδή παρέχει τον πυρήνα, προγράμματα οδήγησης συσκευών, βοηθητικά προγράμματα για τον χώρο χρήστη και τεκμηρίωση, σε αντίθεση με το Linux το οποίο παρέχει μόνο τον πυρήνα και τα προγράμματα οδήγησης, και βασίζεται σε τρίτους για το λογισμικό συστήματος. Δεύτερον, ο πηγαίος κώδικας του FreeBSD διανέμεται κάτω από την ανεκτική (αγγλ: permissive) άδεια BSD, σε αντίθεση με τη copyleft άδεια GPL που χρησιμοποιείται από το Linux.

Το FreeBSD project περιλαμβάνει ομάδα ασφαλείας, η οποία επιβλέπει όλο το λογισμικό το οποίο διανέμεται στο βασικό σύστημα. Ένα ευρύ φάσμα από πρόσθετες εφαρμογές τρίτων μπορεί να εγκατασταθεί χρησιμοποιώντας το σύστημα διαχείρισης πακέτων pkg ή τα Ports του FreeBSD, ή μεταγλωττίζοντας απ' ευθείας τον πηγαίο κώδικα. Λόγω των ανεκτικών όρων της άδειας του, μεγάλο μέρος του κώδικα του FreeBSD έχει γίνει αναπόσπαστο μέρος άλλων λειτουργικών συστημάτων, όπως το Darwin της Apple (που είναι η βάση για τα macOS, iOS, watchOS, και tvOS λειτουργικά συστήματα της Apple), το FreeNAS (open source NAS/SAN λειτουργικό σύστημα), το Nintendo Switch system software, και τα λειτουργικά συστήματα των PlayStation 3 και PlayStation 4.

## Ιστορία

### Υπόβαθρο
Η ιστορία του FreeBSD ξεκινά από το Πανεπιστήμιο της Καλιφόρνια, Berkeley, όταν αυτό απέκτησε μια άδεια για τον πηγαίο κώδικα του UNIX από την AT&T. Φοιτητές του πανεπιστημίου άρχισαν να τροποποιούν και να βελτιώνουν το AT&T Unix και ονόμασαν αυτή τη τροποποιημένη έκδοση "Berkeley Unix" ή "BSD", υλοποιόντας χαρακτηριστικά όπως το TCP/IP, εικονική μνήμη και το Unix File System. Το BSD project ιδρύθηκε το 1976 από τον Bill Joy, αλλά από τη στιγμή που το BSD περιείχε κώδικα από το AT&T Unix, όλοι όσοι το αποκτούσαν έπρεπε να πάρουν πρώτα άδεια από την AT&T για να τον χρησιμοποιήσουν.

Τον Ιούνιο του 1989, κυκλοφόρησε το "Networking Release 1" ή απλά Net-1 – η πρώτη δημόσια έκδοση του BSD. Μετά την κυκλοφορία του Net-1, ο Keith Bostic, προγραμματιστής του BSD, πρότεινε την αντικατάσταση όλου του κώδικα της AT&T με ανοικτό κώδικα κάτω από την άδεια BSD. Οι εργασίες για την αντικατάσταση ξεκίνησαν και 18 μήνες μετά, ο κώδικας της AT&T είχε αντικατασταθεί, εκτός από έξι αρχεία που παρέμειναν στον πυρήνα και περιείχαν κώδικα της AT&T. Οι προγραμματιστές του BSD, ωστόσο, αποφάσισαν να κυκλοφορήσουν το 1991 το "Networking Release 2" (Net-2) χωρίς αυτά τα έξι αρχεία.

### Η γέννηση του FreeBSD
Το 1992, αρκετούς μήνες μετά την κυκλοφορία του Net-2, οι William Jolitz και Lynne Jolitz έγραψαν κώδικα για να αντικαταστήσουν τα έξι αρχεία που έλειπαν, προσάρμοσαν το BSD ώστε να εκτελείται στους Intel 80386 μικροεπεξεργαστές, και ονόμασαν το νέο λειτουργικό σύστημα 386BSD, το οποίο και κυκλοφόρησαν μέσω ενός ανώνυμου FTP server. Η ανάπτυξη, όμως, του 386BSD ήταν αργή και ύστερα από μια περίοδο εγκατάλειψης, ορισμένοι χρήστες του 386BSD αποφάσισαν να δημιουργήσουν τη δική τους διανομή, έτσι ώστε να μπορούν να διατηρούν το λειτουργικό σύστημα ενημερωμένο. Στις 19 Ιουνίου 1993, επέλεξαν το FreeBSD ως όνομα της νέας διανομής και η πρώτη έκδοση του κυκλοφόρησε το Νοέμβριο του 1993.

Κατά τον πρώτο καιρό του project, η εταιρεία Walnut Creek CDROM, μετά από πρόταση των FreeBSD developers, συμφώνησε να κυκλοφορήσει το λειτουργικό σύστημα σε CD-ROM. Επιπλέον, η εταιρεία προσέλαβε τους Jordan Hubbard και Ντέιβιντ Greenman (Ιδρυτικά μέλη), εκτελούσε το FreeBSD στους servers της, χορηγούσε συνέδρια με θεματική το FreeBSD και δημοσίευσε βιβλία σχετικά με το FreeBSD, συμπεριλαμβανομένου του*The Complete FreeBSD* από τον Greg Lehey. Από το 1997, το FreeBSD ήταν "το πιο επιτυχημένο προϊόν" του Walnut Creek. Μάλιστα, η ίδια η εταιρεία μετονομάστηκε αργότερα σε *Τhe FreeBSD Mall* και αργότερα σε iXsystems.

Σήμερα, το FreeBSD χρησιμοποιείται από πολλές εταιρίες πληροφορικής όπως η IBM, η Nokia, η Juniper Networks, και NetApp για να δημιουργήσουν τα προϊόντα τους. Ορισμένα μέρη του Mac OS X βασίζονται στο FreeBSD. Το λειτουργικό σύστημα του PlayStation 3 δανείζεται ορισμένα στοιχεία από το FreeBSD, ενώ το λειτουργικό σύστημα του PlayStation 4 προέρχεται από το FreeBSD 9. Τα Netflix, WhatsApp, και FlightAware είναι επίσης παραδείγματα μεγάλων, επιτυχημένων και σε μεγάλο βαθμό δικτυοκεντρικών εταιρειών που χρησιμοποιούν το FreeBSD.

### Δικαστική διαμάχη
Το 386BSD και το FreeBSD και τα δύο προέρχονται από την έκδοση του BSD το 1992. Τον Ιανουάριο του 1992, η Berkeley Software Design Inc.  (BSDi) άρχισε να κυκλοφορεί το BSD/386, που αργότερα ονομάστηκε BSD/OS, ένα λειτουργικό σύστημα παρόμοιο με το FreeBSD και βασισμένο στην έκδοση του BSD του 1992. Η AT&T κατέθεσε αγωγή κατά της BSDi και ισχυρίστηκε ότι υπήρξε διανομή πηγαίου κώδικα ιδιοκτησίας της, κατά παράβαση των συμφωνηθέντων στην άδεια. Η αγωγή επιλύθηκε εξωδικαστικά και οι ακριβείς όροι δεν έγιναν γνωστοί. Το μόνο που έγινε γνωστό ήταν ότι το BSDi θα πρέπει να βασίσει τον κώδικα του σε αυτόν του 4.4 BSD-Lite. Αν και το FreeBSD δεν ήταν στους άμεσα εμπλεκόμενους της αγωγής τού προτάθηκε να κάνει το ίδιο. Το FreeBSD 2.0, το οποίο κυκλοφόρησε το Νοέμβριο του 1994, ήταν η πρώτη έκδοση του FreeBSD, χωρίς καθόλου κώδικα από την AT&T.

## Χαρακτηριστικά
μικρογραφία|Εκκίνηση του FreeBSD 9.1 με console login prompt

### Χρήσεις
Ως γενικού σκοπού λειτουργικό σύστημα, το FreeBSD μπορεί να χρησιμοποιηθεί σε διάφορα σενάρια:

; Εξυπηρετητές (Servers)
: Το FreeBSD περιέχει πληθώρα λογισμικού για χρήση σε εξυπηρετητές, τόσο στο βασικό σύστημα όσο και στη συλλογή των ports. Το FreeBSD είναι δυνατόν να ρυθμιστεί και να χρησιμοποιηθεί ως mail server, web server, Firewall, FTP server, DNS server και router, μεταξύ άλλων.

; Επιφάνεια εργασίας
: Το X Window System δεν είναι εγκατεστημένο από προεπιλογή, αλλά είναι διαθέσιμο στη συλλογή των ports του FreeBSD. Μια σειρά από γραφικά περιβάλλοντα όπως το GNOME, το KDE, το Xfce και το Lumina, και υπολογιστικά μη-απαιτητικούς διαχειριστές παραθύρων όπως το Openbox, Fluxbox, dwm και bspwm είναι επίσης διαθέσιμα για το FreeBSD.

; Ενσωματωμένα συστήματα
: Αν και κύρια το FreeBSD επικεντρώνεται στις IA-32 και x86-64 αρχιτεκτονικές, παρέχει υποστήριξη και για άλλες σε μικρότερο βαθμό όπως οι ARM, PowerPC και MIPS.

### Δικτύωση
Το TCP/IP υποσύστημα του FreeBSD βασίζεται σε αυτό του 4.2 BSD, το οποίο συνέβαλε σημαντικά στην ευρεία υιοθέτηση αυτών των πρωτοκόλλων. Tο FreeBSD υποστηρίζει τα πρωτόκολλα IPv6, SCTP, IPSec, καθώς και ασύρματη δικτύωση (Wi-Fi). Τα IPv6 και IPSec υποσυστήματα ελήφθησαν από το KAME project. Επίσης, το FreeBSD υποστηρίζει τα IPX και AppleTalk πρωτόκολλα, τα οποία όμως θεωρούνται παλιά και έχει προγραμματιστεί η υποστήριξή τους να λήξει ξεκινώντας από το FreeBSD 11.0.

Από το FreeBSD 5.4 και μετά παρέχεται υποστήριξη για το  Common Address Redundancy Protocol (CARP), του οποίου ο κώδικας προέρχεται από το OpenBSD project. Το πρωτόκολλο αυτό επιτρέπει σε πολλαπλούς κόμβους να μοιράζονται ένα σύνολο από IP διευθύνσεις, ώστε αν κάποιος από τους κόμβους καταρρεύσει, οι υπόλοιποι μπορούν να συνεχίσουν να εξυπηρετούν τα εισερχόμενα αιτήματα.

### Αποθήκευση
Το FreeBSD έχει πολλά μοναδικά χαρακτηριστικά που σχετίζονται με την αποθήκευση δεδομένων. Κάποια από αυτά είναι: τα Soft updates τα οποία προστατεύουν τη ακεραιότητα του UFS filesystem (ευρέως χρησιμοποιούμενο στις BSD διανομές) σε περίπτωση κατάρρευσης του συστήματος. Τα στιγμιότυπα του συστήματος αρχείων (αγγλ: filesystem snapshots) επιτρέπουν τη λήψη μιας εικόνας του συστήματος αρχείων UFS σε μια στιγμή στο χρόνο, επιτρέποντας έτσι την αξιόπιστη δημιουργία αντιγράφων ασφαλείας όσο το σύστημα είναι σε λειτουργία. Το GEOM είναι ένα αρθρωτό υποσύστημα, το οποίο επιτρέπει τη δημιουργία συστοιχιών RAID (επιπέδων 0, 1 και 3 επί του παρόντος), την πλήρη κρυπτογράφηση δίσκου, τη δυνατότητα για journaling, τον συνδυασμό ξεχωριστών δίσκων σε έναν εικονικό δίσκο, την χρήση κρυφής μνήμης (αγγλ: caching) για καλύτερη απόδοση και τη δυνατότητα για πρόσβαση σε δικτυακά μέσα αποθήκευσης. Με τον συνδυασμό όλων το προηγούμενων το GEOM κάνει εφικτή τη δημιουργία περίπλοκων συστημάτων αποθήκευσης. Το FreeBSD παρέχει δύο υποσυστήματα για την κρυπτογράφηση δεδομένων: το GBDE και το Geli, τα οποία και τα δύο λειτουργούν στο επίπεδο του δίσκου. Το GBDE γράφτηκε από τον Poul-Henning Kamp και διανέμεται υπό την two-clause BSD άδεια. Το Geli αποτελεί εναλλακτική του πρώτου το οποίο έγραψε ο Pawel Jakub Dawidek και εμφανίστηκε για πρώτη φορά στο FreeBSD 6.0.

Από την έκδοση 7.0 και μετά, το FreeBSD υποστηρίζει το σύστημα αρχείων (αγγλ: filesystem) ZFS. Το ZFS στο παρελθόν ήταν ανοικτού κώδικα και αναπτύχθηκε από την Sun Microsystems, αλλά όταν η τελευταία εξαγοράστηκε από την Oracle, το ZFS μετατράπηκε σε κλειστού κώδικα προϊόν. Ωστόσο, το FreeBSD project συνεχίζει να αναπτύσσει και να βελτιώνει το ZFS μέσω του OpenZFS.

### Ασφάλεια
Το FreeBSD παρέχει αρκετά χαρακτηριστικά που σχετίζονται με την ασφάλεια, όπως λίστες ελέγχου πρόσβασης (ACLs), έλεγχο συμβάντων ασφαλείας, εκτεταμένο σύστημα αρχείων χαρακτηριστικά, υποχρεωτικός έλεγχος πρόσβασης (MAC) και σύστημα δυνατοτήτων (capabilities system). Τα παραπάνω χαρακτηριστικά αναπτύχθηκαν από το **TrustedBSD**, το οποίο ιδρύθηκε από Robert Watson, με στόχο την εφαρμογή των συστάσεων που περιέχονται στο Common Criteria for Information Technology Security Evaluation ISO πρότυπο και στο Trusted Computer System Evaluation Criteria (Πορτοκαλί Βιβλίο) πρότυπο του Υπουργείου Άμυνας των Ηνωμένων Πολιτειών. Το project αυτό είναι σε εξέλιξη και πολλές από τις επεκτάσεις του έχουν ενσωματωθεί στο FreeBSD. Το TrustedBSD υποστηρίζεται από μια ποικιλία οργανισμών, συμπεριλαμβανομένων των DARPA, NSA, Network Associates Laboratories, Safeport Network Services, Πανεπιστήμιο της Πενσυλβάνια, Yahoo!, McAfee, SPARTA, Apple Computer, nCircle Network Security, Google, Εργαστήριο Υπολογιστών του Πανεπιστημίου του Cambridge και άλλων.

Το TrustedBSD έχει επίσης μεταφέρει την υλοποίηση του FLASK/TE  της NSA από το SELinux στο FreeBSD. Ακόμα έχει αναπτύξει το OpenBSM, το οποίο αποτελεί μέρος του FreeBSD από την έκδοση 6.2. Άλλα υποσυστήματα του FreeBSD που αναπτύχθηκαν από το TrustedBSD συμπεριλαμβάνουν το GEOM και το OpenPAM.

Τα περισσότερα συστατικά του TrustedBSD ενσωματώνονται στο τέλος στον πηγαίο κώδικα του FreeBSD, αλλά και σε άλλα λειτουργικά συστήματα μόλις θεωρηθούν πλήρως λειτουργικά. Παραδείγματα αποτελούν το OpenPAM που έχει υιοθετηθεί από το NetBSD και το TrustedBSD MAC Framework από την Apple για το macOS.

Το FreeBSD διατίθεται με τρία διαφορετικά τείχη προστασίας: τα IPFW, pf και IPFilter. Το IPFW ήταν το αρχικό τείχος προστασίας του FreeBSD, το pf μεταφέρθηκε από το OpenBSD και το IPFilter μεταφέρθηκε στο FreeBSD από τον Darren Reed.

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

Το Νοέμβριο του 2012, η Ομάδα Ασφαλείας του FreeBSD ανακοίνωσε ότι χάκερ απέκτησαν μη εξουσιοδοτημένη πρόσβαση σε δύο από τους διακομιστές του project. Οι διακομιστές αυτοί απενεργοποιήθηκαν άμεσα και περαιτέρω έρευνα έδειξε ότι η πρώτη μη εξουσιοδοτημένη πρόσβαση από τους χάκερ συνέβη στις 19 Σεπτεμβρίου. Οι χάκερ απέκτησαν πρόσβαση στους διακομιστές, με την κλοπή των κλειδιών SSH ενός από τους προγραμματιστές και όχι εκμεταλλευόμενοι κάποιο bug στο λειτουργικό σύστημα. Οι δύο αυτοί διακομιστές χρησιμοποιούνταν για την κατασκευή των πακέτων λογισμικού τρίτων. Η Ομάδα Ασφαλείας έλεγξε την ακεραιότητα των πακέτων και ανακοίνωσε ότι δεν παρατηρήθηκε καμία μη εξουσιοδοτημένη αλλαγή σε αυτά, αλλά δήλωσε ότι δεν μπορεί να εγγυηθεί την ακεραιότητα των πακέτων που είχαν μεταφορτωθεί από τους διακομιστές μεταξύ 19 Σεπτεμβρίου και 11 Νοεμβρίου.

### Φορητότητα
Τo FreeBSD έχει μεταφερθεί σε μια ποικιλία από αρχιτεκτονικές συνόλου εντολών. Το FreeBSD project οργανώνει τις αρχιτεκτονικές σε κατηγορίες αντίστοιχα με το επίπεδο της υποστήριξης που παρέχεται. Οι αρχιτεκτονικές Κατηγορίας 1 υποστηρίζονται πλήρως, οι αρχιτεκτονικές Κατηγορίας 2 βρίσκονται υπό σημαντική ανάπτυξη. Στην Κατηγορία 3 βρίσκονται οι αρχιτεκτονικές σε πειραματικό στάδιο ή αυτές που δεν αναπτύσσονται πλέον ενεργά και στη Κατηγορία 4, οι αρχιτεκτονικές που δεν έχουν καμία υποστήριξη.

Έως τον Δεκέμβριο του 2023, το FreeBSD έχει μεταφερθεί στις ακόλουθες αρχιτεκτονικές:

Αν και οι ARM και MIPS εκδόσεις του FreeBSD προσανατολίζονται κυρίως στην υποστήριξη ενσωματωμένων συστημάτων, το FreeBSD/ARM είναι συμβατό με αρκετά single-board computers, συμπεριλαμβανομένων των BeagleBone Black, Raspberry Pi και Wandboard.

### Λογισμικό τρίτων
[μικρογραφία|250x250εσ|Screenshot από το FreeBSD 11.0, το οποίο χρησιμοποιεί το γραφικό περιβάλλον [XFCE|Xfce 4.12.]]
Το FreeBSD διαθέτει αποθετήριο λογισμικού με πάνω από 26.000 εφαρμογές που έχουν αναπτυχθεί από τρίτους. Παραδείγματα περιλαμβάνουν: παραθυρικά συστήματα, προγράμματα περιήγησης στο web, προγράμματα ηλεκτρονικού ταχυδρομείου, σουίτες γραφείου και ούτω καθεξής. Σε γενικές γραμμές, οι προγραμματιστές του FreeBSD δεν αναπτύσσουν οι ίδιοι το λογισμικό αυτό, αλλά παρέχουν μόνο το πλαίσιο το οποίο διευκολύνει αυτά τα προγράμματα να εγκατασταθούν, γνωστό και ως η συλλογή των Ports. Οι εφαρμογές μπορούν να είναι είτε μεταγλωττισμένες από τονπηγαίο κώδικα ("ports") (αν οι όροι της άδειας χρήσης τους, το επιτρέπουν αυτό) είτε σε μορφή προ-μεταγλωττισμένου εκτελέσιμου ("πακέτα"). Η συλλογή των Ports υποστηρίζει την τρέχουσα και την υπό ανάπτυξη έκδοση του FreeBSD. Παλαιότερες εκδόσεις δεν υποστηρίζονται και είναι πιθανό να μην λειτουργούν σωστά με τη τρέχουσα συλλογή των Ports.

Τα Ports κάνουν χρήση των Makefiles ώστε να ανακτούν αυτόματα τον πηγαίου κώδικα της εκάστοτε εφαρμογής είτε από κάποιο τοπικό είτε από κάποιο απομακρυσμένο αποθετήριο, να τον αποσυμπιέζουν, και να τον μεταγλωττίζουν. Ανάλογα με το μέγεθος του πηγαίου κώδικα, η μεταγλώττιση μπορεί να πάρει πολύ χρόνο, αλλά δίνει στον χρήστη περισσότερες επιλογές παραμετροποίησης τόσο της διαδικασία όσο και του αποτελέσματος. Τα περισσότερα Ports διαθέτουν και αντίστοιχο πακέτο (μορφή προ-μεταγλωττισμένου εκτελέσιμου), επιτρέποντας στον χρήστη να επιλέξει. Παρόλο που αυτή η μέθοδος είναι ταχύτερη, ο χρήστης έχει λιγότερες δυνατότητες παραμετροποίησης.Sfn1LucasΗ έκδοση 10.0 του FreeBSD εισήγαγε το package manager pkg το οποίο αντικατέστησε τα προηγούμενα εργαλεία για την διαχείριση των πακέτων. Το pkg είναι λειτουργικά παρόμοιο με το apt και το yum των Linux διανομών και επιτρέπει την εγκατάσταση, αναβάθμιση και αφαίρεση πακέτων, αλλά και Ports. Επιπλέον του pkg, το PackageKit μπορεί επίσης να χρησιμοποιηθεί τη διαχείριση της συλλογής των Ports.

### Κελιά (Jails)
Τα κελιά εμφανίστηκαν για πρώτη φορά στην έκδοση 4 του FreeBSD και αποτελούν μηχανισμό ασφαλείας, ο οποίος υλοποιεί εικονικοποίηση (virtualization) επιπέδου λειτουργικού συστήματος. Αυτό επιτρέπει στο χρήστη να εκτελεί πολλαπλά φιλοξενούμενα λειτουργικά συστήματα πάνω από το FreeBSD. Αποτελόυν ουσιαστικά μια βελτιωμένη έκδοση του chroot μηχανισμού. Μια διεργασία που εκτελείται μέσα σε ένα κελί δεν είναι σε θέση να έχει πρόσβαση στους πόρους έξω από αυτό. Κάθε κελί έχει το δικό του όνομα δικτύου και διεύθυνση IP. Η παράλληλε εκτέλεση πολλαπλών κελιών είναι εφικτή, αλλά όλα μοιράζονται τον ίδιο πυρήνα. Ως εκ τούτου, μόνο λογισμικό που υποστηρίζεται από τον πυρήνα του FreeBSD μπορεί να εκτελεστεί μέσα σε ένα κελί.

### Εικονικοποίηση (Virtualization)
Το bhyve, ένα καινούργιο σύστημα εικονικοποίησης, το οποίο εισήχθη στο FreeBSD 10.0 και επιτρέπει στο χρήστη να εκτελεί μια σειρά από φιλοξενούμενα λειτουργικά συστήματα (FreeBSD, OpenBSD, Linuxκαι Microsoft Windows) ταυτόχρονα. Υποστήριξη για περισότερεα λειτουργικά συστήματα όπως το Illumos έχει προγραμματιστεί. Το bhyve γράφτηκε από τους Neel Natu και Peter Grehan και ανακοινώθηκε το 2011 στο συνέδριο BSDCan για πρώτη φορά. Η κύρια διαφορά μεταξύ του bhyve και του συστήματος των κελιών είναι ότι τα κελία υλοποιούν εικονικοποίηση (virtualization) επιπέδου λειτουργικού συστήματος και είναι περιορισμένα μόνο σε φιλοξενούμενα FreeBSD, ενώ bhyve είναι τύπου 2 hypervisor και δεν περιορίζεται μόνο στο FreeBSD. Για σύγκριση, το bhyve είναι παρόμοια με το KVM, ενώ τα κελιά είναι πιο κοντά στα LXC containers ή στα Solaris Zones.

Το VirtualBox (χωρίς τα closed-source Πακέτα Επέκτασης) και το QEMU είναι διαθέσιμα για το FreeBSD.

### Επίπεδα συμβατότητας λειτουργικού συστήματος
Το μεγαλύτερο μέρος του λογισμικού που τρέχει σε Linux μπορεί να τρέξει και στο FreeBSD κάνοντας χρήση ενός ενσωματωμένου προαιρετικού επιπέδου συμβατότητας. Επομένως, τα περισσότερα εκτελέσιμα του Linux μπορούν να τρέξουν στο FreeBSD, συμπεριλαμβανομένων και εφαρμογές κλειστού κώδικα που διανέμονται μόνο σε εκτελέσιμη μορφή (και δεν μπορούν να μεταγλωττιστούν για το FreeBSD). Αυτό το επίπεδο συμβατότητας δεν είναι αποτελεί μορφή εξομοίωσης (αγγλ: emulation). Αντίθετα ο πυρήνας του FreeBSD παρέχει ειδική διεπαφή που υλοποιεί τις κλήσεις συστήματος του Linux και, ως εκ τούτου, τα εκτελέσιμα και οι κοινόχρηστες βιβλιοθήκες του Linux αντιμετωπίζονται  από το λειτουργικό σύστημα με τον ίδιο που αντιμετωπίζονται και τα αντίστοιχα του FreeBSD. Επιπλέον, το FreeBSD παρέχει επίπεδα συμβατότητας και για πολλά άλλα Unix-συμβατά λειτουργικά συστήματα, εκτός από το Linux, όπως το BSD/OS και το System V Release 4, ωστόσο, είναι πιο συνηθισμένο για τους χρήστες να μεταγλωττίζουν τα προγράμματα απευθείας για το FreeBSD.

Κατά την εκτέλεση Linux εφαρμογών δεν έχουν παρατηρηθεί μειωμένες επιδόσεις και σε ορισμένες περιπτώσεις μπορεί να εκτελούνται ακόμη και πιο ομαλά από ότι στο Linux. Ωστόσο, το επίπεδο δεν είναι εντελώς διάφανο για τις εφαρμογές και κάποια εκτελέσιμα του Linux δεν μπορούν να χρησιμοποιηθούν ή εμφανίζουν περιορισμένη λειτουργικότητα στο FreeBSD. Υποστηρίζονται κλήσεις συστήματος μέχρι και την έκδοση 2.6.18 του Linux. Από την έκδοση 10.3 και μετά, το FreeBSD μπορεί να τρέξει 64-bit Linux εκτελέσιμα.

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

### Πυρήνας
ο πυρήνας του FreeBSD παρέχει υποστήριξη για βασικές εργασίες, όπως τη διαχείριση των διεργασιών και την επικοινωνία μεταξύ τους, την εκκίνηση του λειτουργικού και συστήματα αρχείων. Ο πυρήνας του FreeBSD είναι μονολιθικός, με αρθρωματικό (αγγλ: modular) σχεδιασμό. Τα διάφορα μέρη του πυρήνα, όπως τα προγράμματα οδήγησης, έχουν σχεδιαστεί ως αρθρώματα. Ο χρήστης μπορεί να φορτώσει και να ξεφορτώσει τα αρθρώματα αυτά ανά πάσα στιγμή. Ο προεπιλεγμένος χρονοπρογραμματιστής (αγγλ: scheduler) του FreeBSD από την έκδοση 7.1 και μετά είναι ο ULE, ο οποίος υποστηρίζει SMP και SMT. Ο πυρήνας του FreeBSD διαθέτει επίσης και μια κλιμακούμενη (αγγλ: scalable) διεπαφή ειδοποιήσεων, που ονομάζεται kqueue και η οποία έχει μεταφερθεί σε άλλα BSD λειτουργικά συστήματα όπως το OpenBSD και το NetBSD. Η νηματοποίηση πυρήνα (αγγλ: kernel threading) εισήχθη στην έκδοση 5.0 και βασιζόταν στο M:N μοντέλο νηματοποίησης. Αν και αυτό το μοντέλο λειτουργεί καλά στη θεωρία, είναι δύσκολο να υλοποιηθεί στη πράξη και λίγα λειτουργικά συστήματα το υποστηρίζουν. Η υλοποίηση του FreeBSD αν και λειτουργική, δεν παρουσίαζε καλή απόδοση και από την έκδοση 7.0 και μετά, το FreeBSD ξεκίνησε να χρησιμοποιεί ένα 1:1 μοντέλο νηματοποίησης, που ονομάζεται libthr.

### Τεκμηρίωση και υποστήριξη
Η τεκμηρίωση του FreeBSD, η οποία συντηρείται κυρίως από την Ομάδα Τεκμηρίωσης του FreeBSD αποτελείται από εγχειρίδια, σελίδες οδηγιών (αγγλ: manual pages), αρχεία των λιστών ηλεκτρονικού ταχυδρομείου, έγγραφα συχνών ερωτήσεων (FAQs) και μια ποικιλία από άρθρα. Η τεκμηρίωση του έχει μεταφραστεί σε πολλές γλώσσες και όλα τα επίσημα έγγραφά της κυκλοφορούν κάτω από τη FreeBSD Documentation License, "μια ανεκτική non-copyleft άδεια ελεύθερης τεκμηρίωσης που είναι συμβατή με την GNU FDL". Η τεμκηρίωση του FreeBSD τεκμηρίωση περιγράφεται ως "υψηλής ποιότητας".

Το FreeBSD διατηρεί μια ποικιλία από λίστες ταχυδρομείου. Από τις πιο δημοφιλείς λίστες είναι η FreeBSD-questions (για γενικές ερωτήσεις) και η FreeBSD-hackers (για ερωτήσεις τεχνικού χαρακτήρα).

Από το 2004, το BSD Users Group της Νέας Υόρκης παρέχει μια βάση δεδομένων με πληροφορίες ανακτημένες μέσω της εντολής dmesg για μια πλειάδα υπολογιστικών συστημάτων (φορητοί υπολογιστές, σταθμοί εργασίας, ενσωματωμένα συστήματα, εικονικές μηχανές, κλπ.) που τρέχουν το FreeBSD.

### Κέλυφος (Shell)
Το προεπιλεγμένο κέλυφος του υπερχρήστη (root) σε εκδόσεις παλαιότερες του FreeBSD 13 είναι το tcsh shell, ενώ σε FreeBSD 14 και νεότερες εκδόσεις το sh shell. Αντίθετα, το προεπιλεγμένο κέλυφος ενός κανονικού χρήστη είναι το sh.

## Ιστορικό εκδόσεων

Η τρέχουσα έκδοση FreeBSD είναι η 14, με ημερομηνία έκδοσης 20 Νοεμβρίου του 2023 και υποστήριξη έως 30 Νοεμβρίου του 2028. Η νέα έκδοση φέρνει ορισμένα νέα χαρακτηριστικά και αναβαθμίσεις:

* Ενημέρωση του OpenSSH στην έκδοση 9.5p1.
* Το OpenSSL αναβαθμίστηκε στην έκδοση 3.0.12, μία σημαντική ενημέρωση από την έκδοση OpenSSL 1.1.1t του FreeBSD 13.2-RELEASE.
* Υποστήριξη έως και 1024 πυρήνων σε πλατφόρμες amd64 και arm64.
* Αναβάθμιση του ZFS σε OpenZFS 2.2, με σημαντικές βελτιώσεις απόδοσης.
* Πειραματικές εικόνες ZFS είναι τώρα διαθέσιμες για AWS και Azure.
* Ο προεπιλεγμένος μηχανισμός ελέγχου συμφόρησης για TCP είναι τώρα το CUBIC.

## Παράγωγα
Υπάρχει ένας αριθμός διανομών λογισμικού που βασίζονται στο FreeBSD. Αξιοσημείωτα παράγωγα αποτελούν:

* DesktopBSD (λειτουργικό σύστημα με στόχο την χρήση ως desktop, αρχικά βασισμένο σε KDE)
* TrueNAS (για αποθηκευτικά μέσα συνδεδμένα μέσω δικτύου)
* FreeSBIE (live CD)
* GhostBSD (διανομή βασισμένη σε MATE, που προσφέρει επίσης και άλλα γραφικά περιβάλλοντα)
* MidnightBSD
* NanoBSD
* PicoBSD
* pfSense (τείχος προστασίας)
* TrueOS, προηγουμένως γνωστό ως PC-BSD
* TrustedBSD
Όλες αυτές οι διανομές έχουν καθόλου ή ελάχιστες διαφορές συγκριτικά με το αρχικό βασικό σύστημα του FreeBSD. Η κύρια διαφορά με το FreeBSD είναι ότι έχουν προ-εγκατεστημένο και προ-παραμετροποιημένο λογισμικό για συγκεκριμένες χρήσεις. Αυτό μπορεί να συγκριθεί με τις διανομές Linux, που είναι δυαδικά συμβατές καθώς χρησιμοποιούν τον ίδιο πηρύνα και τα ίδια βασικά εργαλεία, μεταγλωττιστές και βιβλιοθήκες, ενώ διαθέτουν ξεχωριστές εφαρμογές και επιλογές.

Εκτός από αυτές τις διανομές, υπάρχουν και μερικά αυτόνομα λειτουργικά συστήματα βασισμένα στο FreeBSD. Το DragonFly BSD είναι ένας κλάδος του FreeBSD 4.8 που στοχεύει σε διαφορετική στρατηγική multiprocessor synchronization από αυτή που έχει επιλεχθεί για το FreeBSD 5. Δεν στοχεύει να παραμείνει συμβατή με το FreeBSD και έχει μεγάλες διαφορές στον πυρήνα και στο userland. Το MidnightBSD είναι κλάδος του FreeBSD 6.1 που δανίζεται χαρακτηριστικά από το NeXTSTEP, ιδιαίτερα στον τομέα της διεπαφής χρήστη. 

Το Darwin, ο πυρήνας του macOS της Apple, περιλαμβάνει ένα εικονικό σύστημα αρχείων και network stack που προέρχονται από το FreeBSD. 

Μερικές συνδρομητικές υπηρεσίες που βασίζονται άμεσα στο FreeBSD είναι:

* Το WhatsApp –  που κατέχει 2 εκατομμύρια ταυτόχρονες TCP συνδέσεις ανά εξυπηρετητή.

Ενσωματωμένα συστήματα βασιζόμενα στο FreeBSD είναι:

* PlayStation 4 ("Orbis OS")

## Παραπομπές


Κατηγορία:Λειτουργικά συστήματα