Γιατί ένας Slackware user να χρησιμοποιήσει BSD; (was: Re: provlima se Ubuntu)

Giorgos Keramidas keramida at ceid.upatras.gr
Sun May 6 22:15:06 EEST 2007


On 2007-05-06 19:10, Giannis Karampas <jonny_b at hellug.gr> wrote:
>Giorgos Keramidas wrote:
>>> <flamebait>
>>> <bofh>Και πολύ καλά σού 'κανε</bofh>
>>> Άκου εκεί Slackware.  Γιατί να βάλεις ένα Linux που θέλει να
>>> γίνει BSD, και να μη βάλεις το Αληθινό BSD(TM) μια και καλή;
>>> </flamebait>
>
> Apo tin stigmi pou yparxoun toses dianomes ekei eksw to ti dianomi
> doulevei o kathenas einai ypokeimeniko, kathws kathe mia exei ta
> pronomia tis kai ta ellatwmata tis opote dialegeis ti sou tairiazei.

Σωστός.  Το αρχικό post ήταν επίτηδες μαρκαρισμένο με <flamebait> tags,
γιατί δεν είναι 100% «σοβαρό» :)

> Me tin idia skepsi giati na mi valw ubuntu pantou kai na ta vrw ola
> etoima?  I mipws debian,fedora i kai na gyrisw pisw sta windows stin
> teliki? To slackware me volevei, sto slackware prospathw na mathw
> perissotera gia to linux kovontas kai ravontas, to slackware tha
> doulepsw. Den exw vrei akoma logo na kanw migration kapou allou opote
> giati na valw BSD?....

Πέρα από την πλάκα του αρχικού post, δεν είναι πολύ κακό αυτό που
γράφεις παραπάνω:

    To slackware me volevei, sto slackware prospathw na mathw
    perissotera gia to linux kovontas kai ravontas

[-- πιο-σοβαρή-απάντηση από την προηγούμενη --]

Το Slackware ήταν, την περίοδο 1994-1999 περίπου, και το δικό μου
αγαπημένο distribution.  Είναι πολύ σημαντικό να μπορείς να στήσεις ένα
μινιμαλιστικό Linux, όπως ένα Slackware με ελάχιστα πακέτα από το βασικό
σετ.  Είναι επίσης πολύ σημαντικό να μπορείς να μεταγλωττίσεις και να
«χτίσεις» εσύ το δικό σου στυλ από Linux.

Το Slackware είχε, τότε που το χρησιμοποιούσα κι εγώ αφειδώς, το πιο
απλό σύστημα από rc scripts και δεν ήταν λίγες οι φορές που με φίλους
κάναμε τα εντελώς δικά μας startup scripts, κομμένα και ραμμένα 100% στα
δικά μας μέτρα και σταθμά.

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

Οι λόγοι για τους οποίους αξίζει κάποιος Slackware fan να ασχοληθεί με
το BSD είναι διπλής φύσεως: τεχνικοί και κοινωνικοί.

Στους τεχνικούς λόγους περιέχονται τουλάχιστον και οι εξής:

  * Αυτό που κάνει ο Volkerding με το Slackware είναι ακριβώς ότι κάνουν
    τα BSD συστήματα εδώ καιπάνω από 25 χρόνια.

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

    Αυτό που κάνει ένα άτομο για το Slackware, λέγεται 'release
    engineering'.  Στο FreeBSD, για παράδειγμα, η ομάδα που ασχολείται
    με το release engineering είναι απλώς άλλη μία από τις δεκάδες
    task-based ομάδες στις οποίες συμμετέχουν τόσο core FreeBSD
    developers όσο και εξωτερικοί συνεργάτες.

  * Ο πυρήνας λογισμικού γύρω από τον οποίο χτίζεται ένα ολοκληρωμένο
    BSD είναι πιο κεντρικά ελεγχόμενος.

    Υπάρχουν φοβερές διαφορές μεταξύ των διαφόρων διανομών Linux, και το
    Slackware είναι απλά μία από αυτές.  Δεν είναι εύκολο πάντα να βρει
    κανείς ένα κεντρικό σημείο με το πλήρες source tree ενός 'Linux',
    γιατί απλά δεν υπάρχει το Ένα Μοναδικό(TM) Linux.  Στο BSD όλος ο
    πηγαίος κώδικας και όλα τα εργαλεία για την παραγωγή ενός πλήρους,
    λειτουργικού συστήματος υπάρχουν σε ένα πολύ συγκεκριμένο σημείο.
    Δεν υπάρχει σε ένα BSD σύστημα ο πανικός του να ψάχνει κανείς ποιο
    package repository χρειάζεται να βάλει σήμερα στο randomly chosen
    ανά distribution `/etc/whatever/package-mirrors/tade.conf'.  Όλες οι
    εκδόσεις ενός FreeBSD release είναι π.χ. reproducible 100% από
    οποιονδήποτε έχει όλο το source tree.

  * Σχεδιασμός του πηγαίου κώδικα.

    Υπάρχουν πολύ σαφή, συγκεκριμένα και εκτενώς τεκμηριωμένα standards
    τα οποία πρέπει να ακολουθεί ο πηγαίος κώδικας για να είναι «αρκετά
    καλής ποιότητας» για να γίνει μέρος ενός BSD.  Αυτό προφανώς μπορεί
    να ενδιαφέρει μόνο όσους χρήστες είναι προγραμματιστές, αλλά στο BSD
    μας αρέσει να αντιμετωπίζουμε όλους τους χρήστες μας σαν δυνητικούς
    contributors πηγαίου κώδικα, γιατί σήμερα μπορεί να μην έχουν την
    εμπειρία, τη διάθεση ή το χρόνο να το κάνουν, αλλά μεθαύριο μπορεί
    να τα έχουν όλα αυτά.

  * Σχεδιασμός του εγκατεστημένου συστήματος

    Στο Linux υπάρχουν file system standards, αλλά δεν είναι ούτε τόσο
    αυστηρά, ούτε εφαρμόζονται το ίδιο από όλους τους δημιουργούς
    διανομών.  Έτσι, για παράδειγμα, στο Debian υπάρχουν config files
    στο /etc/network με ονόματα όπως 'interfaces' και 'options', αλλά
    στο Redhat είναι σε άλλο σημείο τα network interface options ή
    ακολουθούν διαφορετικό format.  Στο SuSE υπάρχει ένα τρίτος τρόπος
    να ρυθμίσει κανείς network interfaces, και στο Arch Linux ένας
    τέταρτος.

    Η γνώση που αποκτά κανείς δουλεύοντας σε μια διανομή Linux δεν είναι
    αυτόματα «μεταφέρσιμη» σε ένα άλλο Linux distribution.

    Το εντελώς ανάποδο ισχύει σε ένα BSD.  Τα network interfaces
    ρυθμίζονται σε όλα τα FreeBSD στο ίδιο σημείο, από τότε που
    το FreeBSD ήταν στην έκδοση 2.X πριν από μια δεκαετία και
    βάλε.  Η γνώση που αποκτά κανείς δουλεύοντας σε ένα BSD
    σήμερα, θα είναι χρήσιμη και σε δέκα χρόνια.  Είναι ήδη, και
    σήμερα, χρήσιμη ακόμα και σε άλλα BSD.

    Τα αρχεία ρυθμίσεων σε κάποια Linux μετακινούνται χαρούμενα από το
    ένα μέρος σε ένα άλλο.  Σε ένα BSD αυτό δε γίνεται ΠΟΤΕ, ή αν γίνει
    υπάρχει standard τρόπος για backwards compatible ρυθμίσεις.

  * Binary συμβατότητα μεταξύ διαφορετικών εκδόσεων.

    Πάρα πολλές φορές, σε ένα Linux σύστημα χρειάζεται να
    μεταγλωττιστούν ξανά δεκάδες προγράμματα γιατί π.χ. άλλαξε ένα
    header στον πυρήνα, μεταξύ έκδοσης X.Y.Z και X.Y.(Z+1) του πυρήνα.
    Αυτό δε θα γίνει ΠΟΤΕ σε ένα STABLE branch ενός BSD, ή αν γίνει κατά
    λάθος θα διορθωθεί αυτόματα.

    Η εγγύηση σταθερότητας των Application Programming Interfaces και
    Application Binary Interfaces που παρέχει το BSD κατά την πλήρη
    διάρκεια ζωής ενός STABLE branch είναι κάτι μοναδικό στον κόσμο του
    free software.  Μπορεί να συγκριθεί μόνο με το binary compatibility
    του Solaris, το οποίο μόλις πρόσφατα έγινε μέρος της free software &
    open source βάσης λογισμικού του κόσμου.

  * Η τεκμηρίωση των BSD είναι `first class citizen'

    Στα BSD συστήματα δεν υπάρχει περίπτωση να τρέξει κανείς εντολές
    όπως `man package-manager' και να δει χαζά μηνύματα του στυλ ``This
    program needs a manpage''.  Αν κάτι δεν έχει τεκμηρίωση, μπορεί
    ακόμα και να γίνει backout και να βγει από το επίσημο source tree,
    με αίτημα να γραφτεί πιο καλή και πλήρης τεκμηρίωση.

    Αυτό μπορεί να φαίνεται ασήμαντο στην αρχή, αλλά είναι πολύ χρήσιμο
    και δείχνει την σοβαρότητα με την οποία αντιμετωπίζει η κοινότητα
    του BSD τους χρήστες της.  Είναι απαράδεκτο να βρεθεί κάποιος σε
    σημείο να έχει μόνο ένα SSH connection ανοιχτό σε ένα remote server,
    σε κάποιο colocation service στην άλλη άκρη της γης, και να μη
    μπορεί να αναβαθμίσει το σύστημα επειδή πρέπει να βρει κάπως ποιές
    επιλογές δέχεται το version 1.2.3-beta19-jfk της εντολής
    pkg-foobar-map-whatever ή κάτι αντίστοιχο.

  * Chaos vs. Order

    Αυτό που κάνει το BSD να ξεχωρίζει είναι ότι υπάρχουν τα εξής βασικά
    πράγματα:

        - Ένα σαφώς καθορισμένο ``βασικό σύστημα''
        - Το Ports Tree από thirdparty software
        - Μια σταθερή πολιτική και οργάνωση Release Engineering
        - Πολύ καλή τεκμηρίωση και υποστήριξη για upgrades

    Ο τρόπος με τον οποίο χτίζεται ένα release είναι πάρα πολύ καλά
    ορισμένος, ελεγχόμενος και διαφανής.  Αυτό που κάνει το BSD είναι να
    διανέμει ένα πλήρως λειτουργικό, ολοκληρωμένο UNIX(R) ως βασικό
    σύστημα, και γύρω από αυτό «χτίζει» ένα σύστημα οργάνωσης,
    εγκατάστασης, διανομής και αναβάθμισης thirdparty λογισμικού.  Αυτό
    που κάνουν τα περισσότερα Linux είναι να παίρνουν περίπου «τυχαία»
    κομμάτια και να προσπαθούν να δώσουν την ψευδαίσθηση ενός
    «συστήματος» με πολλή προσπάθεια συναρμολόγησης ενός απέραντου
    puzzle.
 
    Για ορισμένες δουλειές (όπως π.χ. τον πειραματισμό με τον τρόπο που
    δουλεύει ένα UNIX(R) σύστημα), το puzzle παίζει μια χαρά.  Για
    άλλες, πιο σοβαρές δουλειές, το puzzle καταλήγει να είναι ένα σοβαρό
    bottleneck, και ένα απέραντο ναρκοπέδιο από πράγματα που μπορεί να
    πάνε στραβά.  Στη δεύτερη περίπτωση το BSD δείχνει με λαμπερό τρόπο
    την αξία του.

Επειδή ακριβώς ανέφερες ότι «δεν έχεις χρόνο», αξίζει πραγματικά να
αφιερώσεις ΛΙΓΟ χρόνο για να δεις πως δουλεύει σε καθημερινή βάση ένα
BSD.  Όλος ο σχεδιασμός και η υλοποίηση ενός BSD έχει φτιαχτεί με
γνώμονα την ευκολία με την οποία μπορεί ένα σύστημα να στηθεί έτσι που η
εγκατάσταση και οι αναβαθμίσεις να είναι όσο πιο ελεύθερες γίνεται από
ηλιθιότητες του στυλ «έκανα update το kernel μου και ξαφνικά δεν παίζει
το USB mouse, επειδή τώρα πια ο πυρήνας έχει απαίτηση να αλλάξω από
devfs σε udev» και αντίστοιχα πράγματα.  Η ελάχιστη επένδυση σε χρόνο
που απαιτεί ένα BSD για να το μάθεις, θα αποδώσει τα μέγιστα και πολύ
γρήγορα, αν πραγματικά σε ενδιαφέρει να μη σπαταλάς χρόνο σε ανούσιες
τετριμμένες λεπτομέρειες της εγκατάστασης και ρύθμισης του συστήματος,
και της ευκολίας με την οποία μπορείς να υποστηρίξεις και να
αναβαθμίσεις αυτές τις ρυθμίσεις.

Στους κοινωνικούς λόγους συμπεριλαμβάνονται οι παρακάτω:

  * Καλή οργάνωση σε task-based ομάδες

    Η πλήρης ομάδα ανάπτυξης π.χ. του FreeBSD είναι οργανωμένη σε πιο
    μικρές, task-based ομάδες, που είναι ανοιχτές όσο πιο πολύ γίνεται
    στο «κοινό».  Υπάρχουν τουλάχιστον οι εξής ομάδες:

        core       - κεντρική όμαδα οργάνωσης του FreeBSD
        re         - release engineers
        bugmeister - bug database admins
        portmgr    - ports tree overseers
        doceng	   - documentation + www tree overseers
        accounts   - υπεύθυνοι λογαριασμών @ freebsd.org
        admins	   - ομάδα διαχείρισης συστημάτων @ freebsd.org
        webmaster  - ομάδα διαχείρισης του web site
        secteam	   - ομάδα διαχείρισης security προβλήματων
        press	   - υπεύθυνοι για press releases & δημοσιότητα
        marketing  - ομάδα προώθησης και διαφήμισης
        soc	   - ομάδα διαχείρισης Google SoC projects

    Υπάρχουν και πολλές ακόμα ομάδες προσανατολισμένες σε ένα ρόλο, έτσι
    που να μπορεί οποιοδήποτε μέλος της ομάδας ανάπτυξης του FreeBSD να
    είναι μέλος, να συνεισφέρει, να κατευθύνει ή να δίνει ιδέες σε ένα ή
    περισσότερα πράγματα που αφορούν το γενικότερο «FreeBSD Project».

    Ο ρόλος τον οποίο καλύπτει ο Volkerding για το Slackware είναι
    κυρίως αυτός του release engineer, και λίγο αυτός που ανήκει στην
    ομάδα secteam.  Στο FreeBSD έχουμε μια πιο καθολική κάλυψη για τα
    θέματα που αφορούν τόσο την δομή, την οργάνωση και λειτουργία της
    ίδιας της ομάδας ανάπτυξης, όσο και την εικόνα μας προς τον έξω
    κόσμο -- είτε αυτή αφορά μια δημοσίευση στον τύπο, είτε την
    αντιμετώπιση ενός critical security προβλήματος, το οποίο μπορεί να
    επηρεάσει εκατοντάδες, ή ακόμα και χιλιάδες, κόσμο.

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

  * Η ομάδα των BSD είναι από τις πιο δημοφιλείς και πετυχημένες
    merit-based ομάδες ανάπτυξης λογισμικού

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

    Η εκτίμηση της κοινότητας των BSD για τα άτομα που δείχνουν ότι
    _έχουν_ την θέληση και τη διάθεση να προσφέρουν είναι άμεση, εμφανής
    και καθολική.  Κανείς από την ομάδα π.χ. του FreeBSD δε μπορεί να
    ασκήσει βέτο σε μια αλλαγή επειδή «δεν του αρέσει η φάτσα του τάδε».
    Αν οι αλλαγές έχουν το σωστό τεχνικό υπόβαθρο, είναι σχεδιασμένες με
    τρόπο που να μην δημιουργούν τεχνικά ή κοινωνικά προβλήματα στην
    ομάδα, τότε είναι σίγουρο ότι θα έχουν τουλάχιστον μια σοβαρή
    ευκαιρία για εκτενές review και σοβαρή πιθανότητα για approval.

  * Η ομάδα ανάπτυξης και οι χρήστες δεν είναι ελιτιστές μπάσταρδοι

    Όσο και αν φαίνεται περίεργο αυτό, ειδικά σε συνδυασμό με τα ακραία
    μερικές φορές μηνύματα που στέλνω εγώ στην l-g-u, η ομάδα ανάπτυξης
    των BSD δεν είναι ελιτιστές μπάσταρδοι.  Δεν μας ενδιαφέρει να
    «αποδείξουμε» σε κανέναν ότι «είμαστε οι καλύτεροι».  Απλά μας
    ενδιαφέρει ιδιαίτερα η «ποιότητα» κι όχι τόσο πολύ η «ποσότητα» σε
    ότι φτιάχνουμε, και αυτό μερικές φορές παρεξηγείται από εξωτερικούς
    παρατηρητές ως μια μορφή ελιτισμού (κυρίως όταν κάποιος δεν κάνει
    την ελάχιστη προσπάθεια που απαιτείται για να «μάθει τις νόρμες και
    τον τρόπο λειτουργίας της ομάδας», με αποτέλεσμα να απορρίπτονται
    σωρηδόν οι αλλαγές τις οποίες προτείνει).

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

Για όλους αυτούς τους λόγους, κι ακριβώς επειδή ο σχεδιασμός του
Slackware (από τεχνικής άποψης τουλάχιστον) μοιάζει αρκετά με αυτόν του
FreeBSD base system, εγώ προτείνω σε όποιον του αρέσει το Slackware να
ρίξει μια ματιά και στο FreeBSD.  Η κοινότητα του FreeBSD είναι δεκτική
σε νέα μέλη, κι αν αυτά τα μέλη έχουν περάσει ήδη από το μονοπάτι του
Slackware, μας αρέσει ιδιαίτερα και εκτιμάμε πολύ το γεγονός ότι ο
τελικός χρήστης είναι ήδη εξοικειωμένος με τον τρόπο που δουλεύει ένα
UNIX(R) σύστημα.  Το Slackware είναι ιδανικό σαν 'pool' από
εκπαιδευόμενους μελλοντικούς χρήστες και ενεργά μέλη της ομάδας
ανάπτυξης του FreeBSD.

Οπότε, όποιος Slackware fan θέλει να δει και ένα «διαφορετικό», πιθανόν
πιο ορθολογικά σχεδιασμένο σύστημα, με ομάδα ανάπτυξης που αριθμεί
εκατοντάδες μέλη (κι όχι έναν Patrick), είναι σαφώς καλοδεχούμενος στο
FreeBSD ;-)

- Γιώργος




More information about the Linux-greek-users mailing list