Linux και BSD: Οι διαφορές ανάμεσά τους


Tα λογότυπα των δυο λειτουργικών συστημάτων (εικόνα από educba.com)

Δεν είναι λίγοι αυτοί που συγχέουν το BSD με το Linux, νομίζοντας ότι το πρώτο είναι ένα παράγωγο ή μια διανομή του δεύτερου. Αυτό όμως είναι απόλυτα λαθεμένο.

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

Τι είναι το BSD Unix;

Η οικογένεια συστημάτων BSD Unix είναι βασισμένη στον πηγαίο κώδικα του πραγματικού Unix που αναπτύχθηκε στα εργαστήρια Bell Labs και αργότερα αγοράστηκε από το πανεπιστήμιο της Καλιφόρνια (Berkeley Software Distribution). Τα σύγχρονα συστήματα BSD στέκονται πάνω στον πηγαίο κώδικα που εκδόθηκε στις αρχές του 1990 (Net/2 Lite και 386/BSD έκδοση).

Το BSD είναι πίσω από την φιλοσοφία της δικτύωσης TCP/IP και κατά συνέπεια του διαδικτύου, είναι ένα αναπτυγμένο σύστημα Unix με προχωρημένες δυνατότητες. Εκτός από το ιδιοταγές BSD/OS, η ανάπτυξη του οποίου διακόπηκε, υπάρχουν σήμερα κάμποσα συστήματα BSD. Τα FreeBSD, NetBSD, OpenBSD, και OSX το οποίο προήλθε από το FreeBSD. Υπάρχουν επίσης ανάλογα forks των παραπάνω.

Σκοπός των παραπάνω forks είναι να συμπεριλάβουν διάφορα χαρακτηριστικά που λείπουν από τα παραπάνω συστήματα BSD, από τα οποία είναι εξαρτημένα, χωρίς να λαμβάνεται υπόψη το πόσο καλά είναι σχεδιασμένα. Ορισμένα έχουν περισσότερες γραφικές δυνατότητες από το FreeBSD, αλλά δεν υπάρχουν ουσιώδεις διαφορές ανάμεσα τους. Κάποια δεν μπορουν από μόνα τους να “αναπνεύσουν” χωρίς το FreeBSD, ενώ το FreeBSD και OpenBSD είναι ανεξάρτητα μεταξύ τους.

Τι είναι το Linux;

Μολονότι οι χρήστες αρέσκονται να χρησιμοποιούν τον όρο Linux για κάθε διανομή Linux, όπως Red Hat, Mageia Linux κλπ, για τους επαγγελματίες της επιστήμης υπολογιστών το Linux είναι μόνο ο πυρήνας. Το Linux ξεκίνησε στα 1991 όπου ο συγγραφέας του, Linus Torvalds, ξεκίνησε την εργασία του πάνω σε έναν δωρεάν αντικαταστάτη του Minix. Οι μηχανικοί λογισμικού που ανέπτυξαν μερικά Linux system utilities, χρησιμοποίησαν τον πηγαίο κώδικα από το BSD, καθώς τα δύο αυτά συστήματα αναπτύσσονταν παράλληλα, την ίδια χρονική περίοδο (1992-1993) ως λογισμικό ανοικτού κώδικα.

Σήμερα υπάρχουν κάποιοι, αν όχι αρκετοί μηχανικοί ανάπτυξης λογισμικού, που ανέπτυξαν δικούς τους πυρήνες, όπως FreeDOS, Agnix, ReactOS, Inferno κλπ. Αλλά αυτοί οι τύποι απλώς δεν μπήκαν στο τρένο όταν πέρναγε. Δεν έχασαν βέβαια κάτι, εκτός από το γεγονός πως θα μπορούσαν να γινόντουσαν καλύτεροι προγραμματιστές. Και σίγουρα την αναγνώριση και το feedback από το κοινό.

O Linus έχτισε τη δόξα του επίσης από την εργασία πολλών μηχανικών ανάπτυξης λογισμικού, επιβιβάστηκε δε στο τρένο στη σωστή στιγμή. Έτσι, ο ίδιος αξίζει μια διάκριση σαν εμπνευστής της ιδέας του λογισμικού αυτού.

Το OpenBSD σε σύγκριση με το Linux

Είναι συχνά δύσκολο να πεις τι είναι καλύτερο όταν συγκρίνεις δύο πράγματα, χωρίς να συγκεκριμενοποιήσεις τον σκοπό χρήσης τους. Το Mobile Internet ίσως φαίνεται καλύτερο για κάποιον που ταξιδεύει συχνά, αλλά για κάποιον που εργάζεται στο σπίτι, δεν είναι απαραίτητο.
Έτσι μοιάζει χαζή η ερώτηση “Τι είναι πιο καλό, το κινητό ή το σταθερό internet”; Αυτό εξαρτάται.

Αν συγκρίνει κάποιος το Linux και το OpenBSD για τις δυνατότητες τους στο γραφείο, το Linux προσφέρει περισσότερες εφαρμογές από το OpenBSD, αλλά ως λύση εξυπηρετητή, τα συστήματα BSD είναι γνωστά ως εύρωστα, περισσότερο σταθερά και ασφαλή, και μάλιστα χωρίς πολλά patches τα οποία οι διανομείς εκδίδουν αμέσως μετά από κάποια έκδοση του Linux, όταν η τελευταία έρχεται στο φως. Επίσης, τα συστήματα BSD βασίζονται στον γνήσιο πηγαίο κώδικα Unix, συγκρινόμενα με το Linux το οποίο αναπτύχθηκε από “scratch” (πυρήνας).

Διαφορές ανάμεσα σ ε BSD και Linux

1) . Άδειες

Η άδεια BSD επιτρέπει σε χρήστες ή εταιρίες να αλλάξουν τον πηγαίο κώδικα ενός προγράμματος, χωρίς να δημοσιεύσουν τις αλλαγές στο κοινό. Με άλλα λόγια, οι άδειες BSD επιτρέπουν εμπορική χρήση και εταιρική συγχώνευση του κώδικα μέσα σε ιδιοταγή εμπορικά προϊόντα. Με αυτόν τον τρόπο η Microsoft ενσωμάτωσε το δικτυακό μέρος του BSD στα προϊόντα της, αλλά και το Mac OS X κερδίζει χρήματα από το BSD.

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

2) . To core system

Το BSD έχει το λεγόμενο core system (χωρίς πακέτα). Το core system αποτελείται από βασικά utilities (όπως ssh, fdisk, διάφορες εντολές όπως chmod ή sysctl, σελίδες manual και άλλα), και οτιδήποτε πέρα από αυτά θεωρείται αυστηρά ως πρόσθετο. To Linux από την άλλη, και βεβαίως όχι μόνο ο πυρήνας, συνήθως πακετάρεται σαν ένα ολοκληρωμένο σύστημα, όπου αυτή η αλλαγή δεν είναι εμφανής.

3) . Directories

Σε συστήματα BSD, όλα τα πρόσθετα πακέτα (add-on) είναι αυστηρά τοποθετημένα μέσα στο /usr/local directory:

documents στο user/local/share/docs/application_name,

themes και άλλα πράγματα στο /usr/local/share/application_name,

binaries στο /usr/local/bin/application_name.

Λέγοντας “application_name” εννοούμε το όνομα ενός προγράμματος, έτσι αν εγκαταστήσετε το IceWM για παράδειγμα, το binary του θα είναι εδώ:

/usr/local/bin/icewm.

Στο Linux από την άλλη, όλες οι εφαρμογές πάνε ως επί το πλείστον στο /usr/bin directory.

4) . Τα ports και τα πακέτα

Τα BSD, χρησιμοποιούν το σύστημα των “ports”, τα οποία είναι fingerprints των εφαρμογών μέσα στο /usr/ports directory, όπου ένας χρήστης μπορεί να κάνει “cd”, και να εκτελέσει μια εντολή make, η οποία θα κατεβάσει μέσω μιας ντιρεκτίβας που εμπεριέχεται στον κώδικα ενός τέτοιου fingerprint, το source της εφαρμογής και το σύστημα θα την κάνει επίσης compile.

Τα “ports” είναι στην πραγματικότητα add-on πακέτα για BSD συστήματα και είναι επίσης πακεταρισμένα σε αποθετήριο πακέτων ενός μονολιθικού (concrete) συστήματος BSD.
Μπορούν να εγκατασταθούν και ως binaries με τη χρήση του “pkg_add” είτε απευθείας από το διαδίκτυο, είτε τοπικά. Αλλά τα “ports” έχουν το πλεονέκτημα πως αν ο συγγραφέας ενός πακέτου, φτιάξει μια νέα βερσιόν, ένας χρήστης μπορεί να πάρει κατευθείαν την καινούργια ανανεωμένη βερσιόν. Πακέτα που εκδίδονται για μια συγκεκριμένη έκδοση BSD, όπως OpenBSD 4.1, δεν αναβαθμίζονται, και οι χρήστες πρέπει να περιμένουν για την επόμενη έκδοση του BSD, (όπως OpenBSD 4.2).

5) . Εκδόσεις, σταθερές εκδόσεις, development εκδόσεις κλπ.

Τα BSD συστήματα έχουν επίσης τις σταθερές τους εκδόσεις. Στο FreeBSD για παράδειγμα, έχουμε μια FreeBSD-Release (που μπορεί να χρησιμοποιείται κανονικά), μια FreeBSD-Stable (περισσότερο ελεγμένη για σφάλματα και κενά ασφαλείας), και μια Development Version – Current, η οποία δεν είναι σταθερή και δε συνίσταται για νορμάλ χρήση. Ορισμένες διανομές του Linux άρχισαν να υιοθετούν αυτή τη φιλοσοφία των εκδόσεων, αλλά στα συστήματα BSD αυτός ο τρόπος διανομής έχει γίνει ο κανόνας.

6) . Πυρήνας

Φυσικά, ο πυρήνας, (BSD σε σύγκριση με Linux) είναι εντελώς διαφορετικός.

7) . Σύστημα αρχείων

Το BSD έχει το σύστημα αρχείων FFS, είναι το μόνο σύστημα αρχείων σε αντίθεση με το Linux, όπου έχεις πολλά συστήματα αρχείων όπως ext2, ext3, ext4, ReiserFS, XFS κλπ.

8) . Κατατμήσεις και εσωτερικές διαιρέσεις

Τα συστήματα BSD διαιρούν τις κατατμήσεις τους εσωτερικά. Αυτό σημαίνει πως μετά την εγκατάσταση ενός BSD στο σκληρό δίσκο, προγράμματα όπως το fdisk, Partition Magic, Norton Ghost και άλλα, δε θα δουν αυτή την εσωτερική διαίρεση ενός BSD (FFS) δίσκου. Έτσι, η διαδικασία επανακατάτμησης ενός δίσκου δεν είναι τόσο επίπονη όταν οι διαχειριστές συστημάτων ζητούν ένα αυστηρό partitioning (για τα /home, /tmp, /var, /etc directories). Σαν αποτέλεσμα των παραπάνω, η ονομασία των κατατμήσεων επίσης διαφέρει λίγο.

Ένας δίσκος /dev/ad0s3b στο FreeBSD σημαίνει πως έχεις να κάνεις με το “slice” 3 (“s3”) το οποίο σε Linux αντιστοιχεί στο /dev/hda3. Το εσωτερικό partition έχει την ονομασία ενός γράμματος “a”, “b”, “e”, κλπ. (Το “b” είναι μια swap partition). Τα συστήματα BSD χρησιμοποιούν επίσης άλλα συμβατικά ονόματα για τις συσκευές (δίσκους κλπ).

9) . Κατατμήσεις και εγκατάσταση

Εκτός της περίπτωσης να κάνετε ένα kernel hack, τα λειτουργικά BSD μπορούν να εγκαθίστανται μόνο στην πρωτεύουσα κατάτμηση (primary partition). Αυτό, δεν είναι κανόνας για το Linux. Βέβαια, εφ’ όσον τα λειτουργικά BSD ακολουθούν εσωτερικές διαιρέσεις όπως είπαμε, αυτό δεν είναι μεγάλο θέμα. Η αρχιτεκτονική των PC για το IDE, ακολουθεί τον κανόνα του να υπάρχουν μέχρι 4 primary partitions. Στο Linux θα τα λέγαμε: dev/hda1 (πρώτο partition στον master δίσκο στο πρώτο IDE κανάλι), dev/hda2 (δεύτερο partition), dev/hda3 (τρίτο partition) και dev/hda4 (τέταρτο partition).

Στη συνέχεια, η αρχιτεκτονική του PC, επιτρέπει τη δημιουργία των λεγόμενων λογικών δίσκων (logical disks) σε ένα φυσικό δίσκο, (dev/hda5, dev/hda6) κλπ. Μπορείς να κάνεις λοιπόν κατατμήσεις “λογικούς δίσκους”, όσους θέλεις, και μπορείς να εγκαταστήσεις το Linux σε έναν τέτοιο “logical disk”. Απο την άλλη, το να εγκαταστήσεις το BSD σε λογική κατάτμηση (logical partition) είναι αδύνατον υπό κανονικές συνθήκες.

10) . Ρύθμιση του συστήματος

Η ρύθμιση του συστήματος γίνεται χειροκίνητα ως επί το πλείστον, αλλά μερικοί κλώνοι όπως το PC BSD σπάνε τον κανόνα. Η χειροκίνητη προσέγγιση είναι πολύ καλό πράγμα καθώς οι administrators έχουν τα πάντα υπό έλεγχο, χωρίς να χάνουν τον καιρό τους σε ένα λαβύρινθο από μενού. Μια καλή παρομοίωση γι’ αυτό, είναι ένας μηχανικός να προσπαθεί να επισκευάσει τη μηχανή ενός αυτοκίνητου που είναι καλυμμένο με ένα κάλυμμα.

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

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

To Linux φημίζεται λοιπόν και σαν καλό desktop λειτουργικό, και σαν server, αλλά οι καλοί διαχειριστές συστημάτων δε χρειάζονται τα Χ. Και όσο περισσότερο λογισμικό είναι εγκατεστημένο στον σκληρό σας δίσκο, τόσα πιο πολλά προβλήματα ασφαλείας θα αντιμετωπίζετε, διότι δεν μπορείς να παρακολουθείς το κάθε πακέτο κάτω από περίεργες συνθήκες. Τα καλά και ασφαλή συστήματα είναι απλά, λιτά και “δεμένα”.

11). Συμβατότητες προγραμμάτων

Όλα τα συστήματα BSD έχουν Linux emulation υποστήριξη. Το να τρέξεις όμως BSD binaries σε Linux είναι πιο δύσκολο.

12) . Υποστήριξη υλικού

Τα BSD λειτουργικά έχουν μικρότερη υποστήριξη για οδηγούς υλικού από τους κατασκευαστές. Έτσι, υστερούν σ’ αυτό τον τομέα, καθώς οι περισσότεροι κατασκευαστές υποστηρίζουν Microsoft και Linux. Έτσι, εάν σας ενδιαφέρει το BSD θα πρέπει να κάνετε πρώτα μια έρευνα για υποστηριζόμενο υλικό, chipsets και άλλα, πριν αγοράσετε hardware.

13) . Unix System V “runlevel scripts”

Τα λειτουργικά συστήματα BSD δε χρησιμοποιούν τα Unix System V “runlevel scripts” (initialization startup scripts) όπως το Linux.

14) . Επίπεδα ασφαλείας

Οι πυρήνες BSD μπορούν να ρυθμιστούν σε διαφορετικά επίπεδα ασφαλείας. Αυτό μπορεί να γίνει και με το Linux, αλλά το BSD έχει ειδική μέριμνα σε αυτή τη δυνατότητα ρύθμισης του πυρήνα (kernel-tuning feature), η οποία καθιστά σχεδόν αδύνατο να γίνονται αλλαγές σε αρχεία σε υψηλά επίπεδα ασφαλείας, (δεν μπορείς επίσης να τα διαγράφεις).

15) . Συμβατότητες και πακέτα

Τα BSD λειτουργικά συστήματα έχουν τα πάντα κάτω από την ίδια στέγη. Αντίθετα, σε Linux, διάφορα linux προγράμματα δεν είναι συμβατά σε όλες τις διανομές. Για παράδειγμα, αν εγκαταστήσεις ένα SuSE RPM πακέτο στο Mageia μπορεί να μη λειτουργήσει. Τα BSDs λοιπόν έχουν μια συγκεντρωμένη ισχύ σε αυτό, και αν ποτέ μετακινηθείτε από το Linux στο FreeBSD θα δείτε σύντομα πως βγαίνετε έξω από αυτό το χάος.

Θέλετε ένα πακέτο; Απλώς επισκεφθείτε το About FreeBSD Ports | The FreeBSD Project και κατεβάστε το.
Θα δουλέψει σε όλες τις περιπτώσεις, εκτός αν ο προγραμματιστής έχει κάποια προγραμματιστικά λάθη μέσα.

16) . Ταχύτητα εκκίνησης

Γενικά, τα BSD συστήματα εκκινούν πιο γρήγορα από τα Linux συστήματα. Βέβαια, και τα Linux λειτουργικά συστήματα μπορούν να το κάνουν αυτό, αλλά συνήθως έρχονται σε “βαριά” DVD και από την άλλη έχουν συμπιεσμένο πυρήνα. Τα BSD συστήματα δε χρησιμοποιούν, αν και μπορούν να το κάνουν, έναν εξ’ αρχής συμπιεσμένο πυρήνα, και έτσι το σύστημα εκκινεί πάντα πιο γρήγορα.

Όπως είπα και προηγουμένως στο άρθρο, οι διανομείς Linux χρησιμοποιούν πολλές φορές services τα οποία δε χρειάζονται, για παράδειγμα δε χρειάζεσαι τη Samba (file και print services) και πολλά άλλα. Η επανεκκίνηση σε Linux διαρκεί περισσότερο, και αυτό γιατί πρέπει να απενεργοποιηθούν αυτά τα services. Πολλοί χρήστες Linux μάλιστα, αγνοούν και τον σκοπό αυτών των services.

17) . Ταχύτητα και λιτότητα

Συγκρινόμενες με το BSD, οι περισσότερες διανομές Linux είναι παραφουσκωμένες.
Ορισμένοι χρήστες σωστά επισήμαναν αυτό το πράγμα στο παρελθόν, και μια νέα τάση στον κόσμο του Linux αρχίζει να έρχεται, με ιδέες πιο κοντά στο στυλ του BSD. Μια διανομή με αυτή την τάση είναι το Gentoo Linux αλλά και το Slackware, το οποίο διατήρησε τη σιλουέτα του από την εποχή που πρωτοεκδόθηκε στα 1993. Η σελίδα του Gentoo, gentoo.org , αναφέρει πως το Gentoo είναι ένα ελεύθερο λειτουργικό σύστημα βασισμένο στο Linux ή το BSD. Συνεπώς, διανομές όπως Gentoo ή Slackware θα εκκινούν πάντα πιο γρήγορα από άλλα Linux.

18) . Μεταγλωττίσεις πακέτων

Εάν μεταγλωττίσετε (compile) προγράμματα από ports δε θα πέσετε σε σφάλματα μεταγλώττισης, καθώς οι πακεταριστές του BSD προετοιμάζουν τα πακέτα τους πολύ προσεκτικά, έτσι ώστε οι χρήστες να τα μεταγλωττίζουν με επιτυχία. Αυτό δε συμβαίνει πάντοτε σε Linux.

Συμπερασματικά

Πραγματικά, μου αρέσουν όλα τα συστήματα BSD, και αν ενδιαφέρεστε, ρίξτε μια ματιά στην τεκμηρίωση του FreeBSD, ένα από τα καλύτερα documentation. Θα σας δώσει μια καλή οπτική, την ιστορία, και τη σκληρή δουλειά που έχει γίνει πάνω στην ανάπτυξη αυτών των συμπαγών συστημάτων. Σήμερα τα BSD λειτουργικά συστήματα είναι η μόνη εναλλακτική λύση ποιότητας απέναντι στο Linux στον κόσμο του ανοικτού λογισμικού.

6 «Μου αρέσει»

Μόνο που ξέρω είναι πως περισσότεροι (όλοι;) προτιμούν Linux από BSD σε servers. Πάντως ίσως αυτό ίσχυε πριν 15 χρόνια όταν υπήρχαν αρκετές υστερήσεις σε Linux σε σχέση με BSD.

Επίσης για FreeBSD, ZFS, που βασικά είναι/ήταν από τα σημαντικά πλεονεκτήματα χρήσης ενώ το DragonFly χρησιμοποιεί το HAMMER σύστημα. Φυσικά αυτά όταν μιλάμε για εγκατάσταση (“root on X”). Διαφορετικά όλα τα BSD έχουν rw δυνατότητα στα Linux-native συστήματα.

Εδώ νομίζω εννοείς ως κατάτμηση το slice στη BSD και primary partition στη Linux/Windows ορολογία ενώ η εσωτερική διαίρεση είναι η κατάτμηση στη BSD και logical partition στη Linux/Windows ορολογία; Η εσωτερική διαίρεση υπάρχει και σε Linux όπου οι περισσότεροι έκαναν (προ-GPT, καθώς τώρα όλα είναι primary) κατατμήσεις για /, /home, και /tmp (σε tmpfs), ενώ κάποιοι και για /var.

Τα NetBSD και OpenBSD επιτρέπουν εγκατάσταση σε logical partition.

Βασικά ο καλός διαχειριστής προσπαθεί να μειώσει τη δουλειά που έχει. Γι´ αυτό και σε servers χρησιμοποιούνται “μεγάλες” διανομές όπως Ubuntu, CentOS, SUSE, etc ώστε να μπορεί να κάνει off-shore τη δουλειά συντήρησης των πακέτων σε κάποιον άλλον. (Και άλλωστε γι´ αυτό αυτές οι διανομές έχουν repos μόνο με security updates.)

Κάνουμε καλό marketing φαίνεται.

gifs from the crypt

Άλλα τα διάφορα προγράμματα είναι συμβατά στα διάφορα BSD λειτουργικά συστήματα; Για παράδειγμα ξέροντας ένα πρόγραμμα/πακέτο τρέχει σε FreeBSD είναι σαν να ξέρω ένα πρόγραμμα τρέχει σε Ubuntu. Δεν είναι αναγκαίο αυτό να τρέχει σε OpenBSD άρα γιατί να είναι αναγκαίο να τρέχει σε Fedora;

Θα ήθελα να δω μια σύγκριση σε αυτό. Ποντάρω πως δεν ισχύει και μάλιστα η διαφορά θα είναι σημαντική (υπέρ Linux). Επίσης ενδιαφέρον πως πιθανώς η συμπίεση, ειδικά με νέους αλγόριθμους (lz4), οδηγεί σε καλύτερη ταχύτητα με το decompression (σε νεώτερες CPU) να γίνεται πιο γρήγορα από το read.

1 «Μου αρέσει»

Μάλλον, πλατφόρμες σαν το Netflix και πολλοί κατασκευαστές ρουτερομόντεμ κάτι παραπάνω θα βρίσκουν (όχι πως δε φτιάχνονται και με Linux αλλά, νομίζω, ότι είναι λιγότερα).

Όσο θυμάμαι, το έκαναν από προεπιλογή.

Εκτός αν αύριο η Blue Shoes :innocent: αποφασίσει να τερματίσει τη λειτουργία τους.

Πάντα, αλλά ισχύει

Ίσως, είναι λάθος σύνταξη και χρόνος, αλλά συμβαίνει (αν θυμάμαι καλά το έκανε το σημερινό TrueOS).

Βελτιώθηκε πολύ το Linux σε αυτό τον τομέα (κάποτε άπλα βάζαμε μόνιμα σε αναστολή τα μηχανήματα επειδή βαριόμασταν το boot), αλλά με τις ρυθμίσεις του Autoboot Options παίρνει κεφάλι το BSD.

Σε μια μακρινή εποχή το BSD είχε νομικά προβλήματα με την AT&T. Πάνω που είχαν αρχίσει να ξεκαθαρίζουν τα πράγματα βγήκε το Linux και η ιστορία του UNIX άλλαξε για πάντα. Σε μια εναλλακτική πραγματικότητα θα είχαμε το BSD αντί για το Linux. Αλλά ζούμε σε αυτήν την πραγματικότητα. Σε μια πραγματικότητα όπου χιλιάδες προσπάθησαν να τρέξουν το Linux στον υπολογιστή τους και έφτιαξαν drivers και γραφικά περιβάλλοντα.

Θα μπορούσε να είχε υπάρξει αυτή η διαφορετική πραγματικότητα; Χλωμό το βλέπω και το βασικό πρόβλημα είναι η άδεια χρήσης. Το BSD είναι ευάλωτο γιατί δεν είναι πλήρες ελεύθερο λογισμικό. Το ρούτερ μου έχει κώδικα από το BSD, τα Windows έχουν κώδικα από το BSD. Πρακτικά ότι συνδέετε σε δίκτυο έχει κώδικα από το BSD. Και το BSD δεν από αυτό δεν έχει την παραμικρή ωφέλεια. Αν δεν υπήρχε το GPL Linux θα είχαμε τη δεκαετία του 90 αντί για τις πρώτες διανομές μικρές εταιρίες που θα σφάζονταν μεταξύ τους με ιδιόκτητους και ασύμβατους κλώνους του BSD. Και αν υπήρχαν κάποιες κοινοτικά BSD θα ήταν πάντα λιγότερα καλά από τα εμπορικά μιας και αυτά θα μπορούσαν να πάρουν χωρίς κανένα πρόβλημα ότι καλό έφτιαχναν χωρίς να δώσουν τίποτα πίσω.

Το ρούτερ μου (μάλλον) τρέχει BSD. Τι θα άλλαζε για μένα αν έτρεχε οτιδήποτε άλλο;

Σήμερα ένα BSD δεν έχει το παραμικρό πλεονέκτημα έναντι του Linux[1]. Το δομικό πλεονέκτημα του Linux είναι πως μπορεί να πάρει ότι καλό έχει το BSD αλλά δεν μπορεί να γίνει το αντίθετο. Στις αρχές αυτής της χιλιετίας το BSD είχε νόημα σε servers καθώς είχε καλύτερα χαρακτηριστικά ασφάλειας (πχ jails). Σήμερα ζούμε στην εποχή των docker containers.

Αν έχει κάτι καλό το BSD Ίσως να είναι το παράδειγμα του Καθεδρικού. Τα πάντα στο BSD είναι στο ίδιο αποθετήριο. Όταν αλλάξει κάτι αλλάζουν και εξελίσσονται τα πάντα μαζί. Στο Linux κάθε κομμάτι τρέχει με διαφορετικές ταχύτητες και αναπτύσσετε χωριστά και έχεις πάντα την προς τα πίσω συμβατότητα να σε φρενάρει. Το systemd ακολουθεί αυτό το μοντέλο. Το τμήμα λογισμικού ανάμεσα στον πυρήνα και τα ανώτερα στρώματα είναι στο ίδιο αποθετήριο, κάτι που του επιτρέπει να εξελίσσετε μαζί σαν σύνολο. Κάτι που έχει φέρει μόνο γκρίνια και (εσφαλμένες) κριτικές για μονολιθικότητα. Παρόμοια οι οδηγοί των συσκευών είναι στο ίδιο αποθετήριο με τον πυρήνα και εξελίσσονται ταυτόχρονα. Κάτι που δεν μπορείς να πεις για τα γραφικά περιβάλλοντα. Το gtk είναι σε άλλο αποθετήριο απο το Gnome. Το Qt σε άλλο αποθετήριο απο το KDE. Στην διανομή μου τα μισά προγράμματα είναι σε gtk3 και τα άλλα σε gkt4.

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

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

ΥΓ1: Δε λέω να μη δοκιμάσει κάνεις το BSD. Αξίζει τον κόπο. Μόνο που θα βρεθείς σε ένα ελαφρά διαφορετικό περιβάλλον αξίζει τον κόπο και θα ενισχύσει τη γνώση στο UNIX γενικά. Άσε που θα εκτιμήσεις καλύτερα το Linux με αυτόν τον τρόπο :-)

ΥΓ2: Κάποιες φορές οι ιδέες διαμορφώνουν την πραγματικότητα. Αλλά όταν συμβεί το αντίθετο σαν λογικά όντα αναζητούμε την ιδέα που διαμόρφωσε την πραγματικότητα. Το κείμενο «ο καθεδρικός και το παζάρι» ήρθε εκ των υστέρων να παρέχει μια εκτίμηση που να εξηγεί μια ήδη διαμορφωμένη πραγματικότητα, σαν πρώτη εκτίμηση επικράτησε. Αλλά η ιδέα υπήρχε διατυπωμένη άλλου, ήταν η ιδέα των Commons διατυπωμένη από τη βραβευμένη με «Νόμπελ οικονομικών» Elinor Ostrom το 2009. Τα commons ήταν παλιότερα, το βιβλίο βγήκε εκείνη την εποχή, αλλά δεν έγινε ευρύτερα γνωστό έτσι η σύνδεση έγινε πολύ αργότερα.

[1] Έχει όμως πλεονεκτήματα για της εταιρίες όπως τους κατασκευαστές ρούτερ η τη Microsoft. Έχουν τσάμπα ένα λειτουργικό η ένα network stack, που μπορούν να το πάρουν και να φτιάξουν το κλειστό τους προϊόν το οποίο για τον τελικό καταναλωτή είναι ένα μαύρο κουτί.

1 «Μου αρέσει»

Για Netflix δεν γνωρίζω (ίσως λόγο legacy, έστησαν τους servers στο παρελθόν και δεν βρήκαν νόημα στη μετακίνηση σε άλλο σύστημα) αλλά για embedded συστήματα σημαντικός λόγος προτίμησης BSD είναι η άδεια που επιτρέπει στους κατασκευαστές να διατηρήσουν τις όποιες τροποποιήσεις κλειστές.

Το bsd απο παλια ειχε την ιδιοτητα να σερβιρει πιο καλα βιντεο περιεχομενο. Το γιατι δεν το εψαξα ποτε. Το youtube ειχε το video delivery σε bsd , το netflix το ιδιο κτλ. Οχι οι ιστοσελιδες τους, το video delivery… Ισως οπως λεγεται παραπανω η ταχυτητα του στα δικτυακα προτυπα να ειναι αυτη που επιτρεπει καλυτερο video delivery…

Έψαξα λίγο. Σύμφωνα με ένα NF engineer η επιλογή έγινε το ~2012 αλλά δεν αναφέρονται κάποιοι λόγοι. Μόνο του ότι έπεσαν αρκετές ώρες δουλειάς (καταλήγοντας σε σημαντικές προσθήκες στο FreeBSD όπως async sendfile και kTLS) και πριν λίγα χρόνια που έγινε κάποια σύγκριση για το συγκεκριμένο φόρτο εργασίας το FreeBSD (με τις όποιες τροποποιήσεις του NF) είχε καλύτερη επίδοση (χωρίς να δίνονται κάποια benchmarks). Από τον ίδιο engineer το license έπαιξε ρόλο στην επιλογή.

Στην κλίματα του Netflix μια βελτίωση της τάξης του 0.5\% μεταφράζετε σε πολλά εκατομμύρια σε μείωση του κόστους. Αυτό που θέλει να κάνει το Netflix είναι ένα μεγάλης κλίμακας CDN που να μεταφέρει τεράστιο όγκο περιεχομένου με DRM. Τίποτα περισσότερο, τίποτα λιγότερο.

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

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

μια βελτίωση της τάξης του 0.5% μεταφράζετε

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

Αν είχαν Linux θα έπρεπε να κάνουν νομική επαλήθευση σε κάθε κομμάτι

Ναι εάν έπρεπε να γίνει διάθεση του λογισμικού. Αν τρέχει μόνο σε δικούς τους servers δεν έχουν νομικό πρόβλημα. Απ´ ότι είδα δίνουν κάποιες συσκευές σε ISPs. Οπότε εδώ είναι το θέμα. Αν αυτές οι συσκευές ανήκουν στον ISP ή παραμένουν ιδιοκτησία του NF.

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

Σαν επαγγελματιας με ενα απο τα αντικειμενα μου τη διαχειρηση server, πιστευω πως καθε εταιρεια τετοιου μεγεθους πριν κανει οποια κινηση γινονται αρκετα business plan πανω στο software που θα χρησιμοποιηθει.

Για παραδειγμα η google πηρε το gentoo οχι επειδη το βρηκε καπου και το εφτιαξε chrome os, αλλα λογικα εγιναν απειρα συμβουλια για το ποια πλατφορμα θα χρησιμοποιηθει.

Ολα αυτα τα λειτουργικα συστηματα εξυπηρετουν εναν σκοπο. Δεν τρεχουν desktop και η φιλοσοφια ειναι να τρεχει αποδοτικα μια και μονο εργασια. Αν ενα λειτουργικο συστημα υπερυσχυει σε μια εργασια ειναι πολυ πιθανο να το χρησιμοποιησει μια εταιρεια για να φτιαξει ενα προιον. Οπως ειπε και ο @Asfodelus ακομη και ενα 0.5% κανει τεραστια διαφορα οταν μιλαμε για καποια εκατομμύρια.

Ενδιαφερον εχει το παραπανω συγκριτικο 4 διανομων linux εναντι 4 bsd. Θα παρατηρησετε οτι το linux ειναι πιο γρηγορο στις περισσοτερες εργασιες αλλα το bsd ειναι σε καποιες αλλες εργασιες γρηγοροτερο.

Τα εξοδα που γινονται για τη διαχειρηση ενος bsd η ενος linux συστηματος αυτης της κλιμακας νομιζω ειναι αμελητεα σε σχεση με το project

Αν καποια εταιρεια θεωρησει οτι της κανει το templeos η το menuetos δεν θα ηταν απιθανο να τα ξαναδουμε μπροστα μας αναβαθμισμενα και με νεες λειτουργιες