Γιατί ένας 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