Linus comments on kernel "overhaul"

Giorgos Keramidas keramida at ceid.upatras.gr
Wed May 10 14:41:04 EEST 2006


On 2006-05-10 11:21, DJ Art <djart at linux.gr> wrote:
>On Wednesday 10 May 2006 10:24, Christos Ricudis wrote:
>>DJ Art wrote:
>>> Και να κόψουνε το "δυναμικό" development μοντέλο, δηλαδή το
>>> μπαλώνουμε, ράβουμε, ξηλώνουμε οτιδήποτε όταν και όποτε αυτό μας
>>> καυλώσει.
>>
>> An to development model tou pyrhna exei toso amesh sxesh me to "user
>> experience", opws to perigrafeis, tote giati olos o kosmos de
>> xrhsimopoiei FreeBSD?
>
> Έχω πολύ καιρό να δώ πως τα πηγαίνει το FreeBSD, αλλά είχα μείνει στην
> εικόνα του ότι το FreeBSD είναι απλά το άλλο άκρο.

Οι βασικές διαφορές έχουν σχέση ή είναι αποτελέσματα κυρίως του
διαφορετικού μοντέλου ανάπτυξης[1].

Θεωρητικά, πριν από κάθε Linux kernel release υπάρχει μια περίοδος κατά
την οποία δεν μπαίνουν καινούρια features, διορθώνονται μόνο bugs, κλπ.
Πρακτικά, αυτό δε συμβαίνει πάντα στο Linux.

Στο FreeBSD συμβαίνει πιο συχνά, αφού κάθε νέο release ελέγχεται από την
ομάδα των "release engineers", οι οποίοι κλειδώνουν το CVS και απαιτούν
review από κάθε diff που θα γίνει commit, ακόμη κι αν αυτό είναι αλλαγή
μιας γραμμής σε ένα manpage.  Κάθε release περνάει από συγκεκριμένα,
πάντα τα ίδια, στάδια[2] και έχει συγκεκριμένους, γνωστούς σε όλους τους
developers & users στόχους[3,4].

Ολα αυτά έχουν το πλεονέκτημα ότι δίνουν σε μια ομάδα developers, της
οποίας τα μέλη είναι διάσπαρτα σε όλο τον κόσμο[5], μια οργάνωση που
έχει ιδιαίτερο νόημα όταν πρέπει να γίνει με (σχετικά) προβλέψιμο τρόπο
ένα release.  Δεν παίζει πάντα σωστά (βλ. 5.X-release fiasco που άργησε
και τελικά δεν είχε την ποιότητα που έπρεπε), αλλά με τις τελευταίες
αλλαγές στο release policy (με ένα major release ανά 18 μήνες και minor
releases ανά περίπου 4-6 μήνες), ελπίζουμε ότι θα αρχίσει ακόμα καλύτερα
να γίνεται σταθερός, προβλέψιμος, προγραμματισμένος κι ελεγχόμενος ο
τρόπος με τον οποίο οι νέοι ή παλιότεροι χρήστες επιλέγουν κάποιο
release -- είτε επειδή έχει τα νέα features που θέλουν, είτε επειδή έχει
τη σταθερότητα που απαιτούν σε πιο παλιά features.

Ακριβώς αυτή η δυνατότητα να ξέρει κανείς από πριν ποιά νέα features θα
έχει ένα επερχόμενο release, *ΕΧΕΙ* σχέση με το user experience.  Για
ορισμένους χρήστες, τουλάχιστον.

[1] http://www.freebsd.org/doc/en_US.ISO8859-1/books/dev-model/
[2] http://www.freebsd.org/doc/en_US.ISO8859-1/books/dev-model/proc-releng.png
[3] http://www.freebsd.org/releng/#schedule
[4] http://www.freebsd.org/releases/6.1R/todo.html
[5] http://people.freebsd.org/~keramida/committer-locations.png

> Οπότε αν στο Linux υπάρχουν 15 αυτοματισμοί που στηρίζονται στον
> πυρήνα για να βελτιώσουν το user experience και φυσικά ψευτοπαίζουν,
> στο FreeBSD υπάρχουν 2-3 αυτοματισμοί, άρα δε μιλάμε καν για user
> experience, μιλάμε κατευθείαν για user hacking, όπως δηλαδή ήταν το
> Linux λίγα χρόνια πρίν .....
>
> Αλλά μπορεί να κάνω και λάθος.

Δεν είναι απαραίτητα σωστό αυτό:

    Οπότε αν στο Linux υπάρχουν 15 αυτοματισμοί που στηρίζονται
    στον πυρήνα για να βελτιώσουν το user experience και φυσικά
    ψευτοπαίζουν, στο FreeBSD υπάρχουν 2-3 αυτοματισμοί, άρα δε
    μιλάμε καν για user experience, μιλάμε κατευθείαν για user
    hacking, όπως δηλαδή ήταν το Linux λίγα χρόνια πρίν .....

Τα πράγματα δεν είναι ακριβώς τόσο ασπρόμαυρα.  Πολλές είναι οι φορές
που στο Linux χρειάζεται ``user-hacking'' (π.χ. να γράψεις ένα init.d
script με το χέρι), ενώ αντίθετα στο FreeBSD όχι.

Η πραγματικότητα είναι κάπου στη μέση, αλλά θα συμφωνήσω πως σε σύγκριση
με Linux distributions όπως το Ubuntu (στα οποία ο χρήστης άντε, στη
χειρότερη, να χρειαστεί να διαλέξει σε τι γλώσσα θέλει να ξεκινάει το
σύστημα για να κάνει μια γρήγορη εγκατάσταση) το FreeBSD μπορεί να
χαρακτηριστεί κάπως πιο 'hardcore' σε ορισμένα πράγματα.  Αυτό είναι
άλλες φορές καλό κι άλλες όχι.

Από την άλλη, κάποια από τα πιο δημοφιλή χαρακτηριστικά του FreeBSD δεν
έχουν κάτι αντίστοιχο σε Linux.  Χαρακτηριστικά όπως τα Ports, το
κεντρικό buildworld/installworld για updates του συστήματος, το rc.d
σύστημα με το auto-discovery των dependencies, κλπ. δεν υπάρχουν σε
πολλά Linux ή όπου υπάρχουν είναι σε εμβρυακή κατάσταση ακόμα με
γρήγορους ρυθμούς ανάπτυξης μεν, πάρα πολλά μικρο-προβλήματα που στην
"άλλη μεριά" είναι ήδη λυμένα δε (για παράδειγμα βλ. Gentoo Portage vs.
FreeBSD Ports).

Ενας άλλος λόγος για τον οποίο δεν είναι απαραίτητα σωστό αυτό είναι
αποτέλεσμα ακριβώς του μντέλου ανάπτυξης που λέγαμε πριν.  Στο Linux
υπάρχει περίπτωση να έχεις ταυτόχρονα επιλογή από 5 διαφορετικά
features, που κάνουν όλα το ίδιο πράγμα, με διαφορετικά bugs το καθένα.
Στο FreeBSD, το ενδιαφέρον επικεντρώνεται σε λιγότερα features,
υλοποιημένα πιο 'προσεκτικά' ώστε να επιτυγχάνονται ταυτόχρονα σε όσο το
δυνατόν μεγαλύτερο βαθμό οι στόχοι:

    α) Να μειώνεται στο ελάχιστο δυνατόν η "έκπληξη" που θα νιώσει
       κάποιος όταν μεταβεί από την έκδοση Χ.Υ στην Χ.(Υ+1) ή ακόμα και
       στην έκδοση (X+1).Z

    β) Όταν αυτό είναι δυνατόν, με βάση τους περιορισμούς που έχει η
       ομάδα σε πόρους & χρόνο, να είναι υλοποιημένα όσο πιο σωστά και
       όσο πιο σταθερά γίνεται τα features που υπάρχουν.

Φυσικά, επειδή ο κόσμος δεν είναι τέλειος, δε μπορώ (εγώ τουλάχιστον) να
εγγυηθώ ότι αυτοί οι στόχοι γίνονται πάντα πραγματικότητα.  Αλλά είναι
αλήθεια ότι τουλάχιστον γίνεται μια προσπάθεια προς αυτή την κατεύθυνση
και κατά ένα μεγάλο ποσοστό έχει επιτυχία :-)

- Γιώργος





More information about the Linux-greek-users mailing list