Gobolinux

rpil | Τρί, 07/13/2010 - 22:45 | 20' | 3

Επιχειρώ μια παρουσίαση, βασισμένη στις πληροφορίες της Wikipedia, σε μια δική μου πρόχειρη μετάφραση, μιας περίεργης διανομής Linux με το αστείο όνομα Gobolinux!  Θα πρέπει να πω ότι προσπαθούσα από την έκδοση 013 να εγκαταστήσω το Gobo στον υπολογιστή μου, δυστυχώς όμως, ουδέποτε κατάφερα να το κάνω να μπουτάρει! Βέβαια, τότε δεν είχα την εμπειρία που έχω σήμερα, αλλά θα έπρεπε, εφ' όσον έβγαζε ότι η εγκατάσταση έγινε με επιτυχία, να μπαίνει κανονικά και να μη βγάζει errors με διάφορα νουμεράκια κάθε φορά!  Επειδή συμπαθώ το Gobo, παρότι δεν μου έκανε τη χάρη να εγκατασταθεί στο PC μου, το παρουσιάζω να το γνωρίσετε κι εσείς. Και -πού ξέρετε- ίσως να είσθε εσείς οι τυχεροί!

Το GoboLinux είναι ένα ελεύθερο open source λειτουργικό σύστημα, του οποίου το σημαντικότερο χαρακτηριστικό είναι η αναδιοργάνωση του παραδοσιακού συστήματος αρχείων του Linux. Αντί ν' ακολουθεί την κλασσική ιεραρχία του συστήματος αρχείων (Filesystem) όπως τα περισσότερα Unix-οειδή συστήματα, κάθε πρόγραμμα σ' ένα σύστημα GoboLinux, έχει το δικό του δέντρο υποκαταλόγων, όπου όλα τα αρχεία του (συμπεριλαμβανομένων των ειδικών ρυθμίσεων για το εν λόγω πρόγραμμα) μπορούν να βρεθούν. Έτσι, ένα πρόγραμμα "Foo", πχ, έχει όλα τα συγκεκριμένα αρχεία και βιβλιοθήκες του στην "/ Programs / Foo". Σύμφωνα με τους προγραμματιστές του GoboLinux, αυτό οδηγεί σε ένα καθαρότερο σύστημα με βάση το επίπεδο διάταξης των αρχείων.

File:GoboLinux.png

 

Επισκόπηση

 


Η ιεράρχηση του GoboLinux είναι μια ριζική αποστασιοποίηση από την ιεραρχία του filesystem που παραδοσιακά χρησιμοποιούν τα περισσότερα UNIX-like λειτουργικά συστήματα, όπου οι συγκεκριμένοι τύποι αρχείων που αποθηκεύονται μαζί σε κοινούς standard υποκαταλόγους (όπως / bin για εκτελέσιμα και / etc για τα αρχεία ρυθμίσεων) και οι διαχειριστές πακέτων χρησιμοποιούνται για να παρακολουθούν ποιο αρχείο ανήκει σε ποιο πρόγραμμα. Στο GoboLinux, αρχεία από διάφορα προγράμματα διαχωρίζονται σύμφωνα με τους αντίστοιχους υποκαταλόγους τους. Οι ιθύνοντες του GoboLinux λένε ότι "το σύστημα αρχείων είναι ο ίδιος ο διαχειριστής πακέτων", καθώς και το σύστημα διαχείρισης πακέτων του GoboLinux χρησιμοποιεί το ίδιο το σύστημα αρχείων ως βάση δεδομένων του πακέτου. Το Gobo (όπως λέγεται χαϊδευτικά), χρησιμοποιεί symlinks και ένα προαιρετικό module του πυρήνα που ονομάζεται GoboHide, ώστε να επιτύχουμε όλα αυτά, διατηρώντας παράλληλα πλήρη συμβατότητα με την παραδοσιακή ιεραρχία του συστήματος αρχείων του Linux .

Οι δημιουργοί του GoboLinux δηλώνουν ότι ο σχεδιασμός τους έχει άλλους "μοντερνισμούς", όπως είναι η απομάκρυνση ορισμένων διακρίσεων ανάμεσα σε παρεμφερείς παραδοσιακούς καταλόγους (όπως είναι οι τοποθεσίες των εκτελέσιμων /bin, /usr/bin και /usr/local/bin). Οι σχεδιαστές του GoboLinux, ισχυρίζονται ότι αυτό έχει αντίκτυπο στα shell scripts, σπάζοντας λιγότερο συχνά από ό,τι σε άλλες διανομές Linux. Το GoboLinux επιτρέπει επίσης στο χρήστη να έχει διαφορετικές εκδοχές του ίδιου προγράμματος (και ακόμη και να τους τρέχουν ταυτόχρονα). Επιπλέον, προβάλλεται ο ισχυρισμός ότι ο δείκτης διαχείρισης πακ

 

έτων δεν μπορεί ποτέ να βγει από συγχρονισμό, ως αναφορές σε ανύπαρκτα αρχεία, απλά είναι σπασμένα links, και ως εκ τούτου ανενεργά. Οι αλλαγές του filesystem στο GoboLinux, επίσης επιτρέπουν και άλλες καινοτομίες, όπως ένα εντελώς νέο σύστημα εκκίνησης που δεν χρησιμοποιεί τα init συστήματα System V ή BSD.

Ιεραρχία Αρχείων


File:Gobolinux-filesystem-bashdirectory.png
 
Screenshot του filesystem
 
 

O σχεδιασμός του GoboLinux έχει επιρρεαστεί από παλαιότερα συστήματα όπως τα NEXTSTEP, AtheOS και BeOS, τα οποία υιοθέτησαν τις αυθεντικές δομές διατηρώντας παράλληλα ένα υψηλό βαθμό συμβατότητας με το Unix. Στη ρίζα του δέντρου του GoboLinux, υπάρχουν έξι καταλόγοι: Programs, Users, System, Files, Mount και Depot. Το περιεχόμενο κάθε καταλόγου, περιγράφεται παρακάτω.

  
  * /Programs / - Αυτός ο κατάλογος περιέχει έναν κατάλογο για κάθε πρόγραμμα που εγκαθίσταται στον υπολογιστή. Κάθε κατάλογος προγράμματος, με τη σειρά του, περιλαμβάνει μία ή  περισσότερες εκδόσεις καταλόγων και, προαιρετικά, Ρυθμίσεις και μεταβλητούς υποκαταλόγους. Παραδείγματα διαδρομών στο πλαίσιο προγραμμάτων είναι τα /Programs/Bash/3.0/bin/bash και /Programs/Xorg-Server/Settings/X11/xorg.conf.


 
   * /Users/ - Αυτός ο κατάλογος περιέχει καταλόγους home των χρηστών, έτσι, ένα userid όνομα "harley" θα έχει έναν κεντρικό κατάλογο "/Users/harley".


    
* /System/ - Σημαντικά αρχεία του συστήματος. Τα περισσότερα τα διαχειρίζονται οι εφαρμογές του συστήματος (για παράδειγμα, /System/Settings/passwd) και τα GoboLinux scripts (για παράδειγμα, /System/Links).


    
* /Links/ - Περιέχει "links" καταλόγων που υποδεικνύουν τα αρχεία υπό το /Programs.


   
* /Environment/ - Links σε αρχεία περιβάλλοντος. Αυτά γίνονται compile σε ένα αρχείο Cache και φορτώνονται από το κέλυφος, επιτρέπoντας στα προγράμματα να καταγράψουν τις δικές τους μεταβλητές περιβάλλοντος.

   * /Executables/ - Περιέχει συνδέσμους σε αρχεία από τα αρχεία bin και sbin των προγραμμάτων.

  • Headers/ - Αυτό το αρχείο περιέχει links σε files από τα περιλαμβανόμενα αρχεία των προγραμμάτων.
  • Libraries/ - Links σε files από τα lib αρχεία των προγραμμάτων.
  • Manuals/ - Περιλαμβάνει manuals και πληροφοριακά αρχεία.
  • Shared/ - Links σε files από τα διαμοιραζόμενα αρχεία των προγραμμάτων.
  • Tasks/ - Links σε διεργασίες boot προγραμμάτων από τα αρχεία τους των πόρων/διεργασιών.
  • Settings/ - Αρχεία ρυθμίσεων και links σε φακέλους από τα αρχεία Settings των προγραμμάτων.
    • BootScripts/ - Scripts που χρησιμοποιούνται κατά την εκκίνηση του συστήματος. Αυτό είναι ένα symlink για τα Settings/BootScripts/ υπό το /Programs/BootScripts.
  • Variable/ - Multi-purpose log, προσωρινά, παροδικά και μπερδεμένα αρχεία.
    • tmp/ - Προσωρινά αρχεία.
  • Kernel/ - Αρχεία σχετικά με τον Πυρήνα.
    • Boot/ - Προγράμματα και αρχεία ρυθμίσεων που χρησιμοποιούνται κατά τη διάρκεια της εκκίνησης του λειτουργικού. Εκεί βρίσκονται, η εικόνα του πυρήνα και ο τα αρχεία ρυθμίσεων του bootloader.
    • Devices/ - Αρχεία Συσκευών (τα διαχειρίζεται το Udev).
    • Modules/ - Περιέχει τα διάφορα kernel modules, που στήνονται από την έκδοση του πυρήνα.
    • Objects/ - Παρέχει μια προβολή δέντρου συσκευών του πυρήνα (που εισήχθη με το σύστημα αρχείων sysfs στον πυρήνα της σειράς 2.6).
    • Status/ - Αρχεία κατάστασης του πυρήνα (που διαχειρίζεται το proc filesystem ).
  • /Files/ - Τα αρχεία κρατούν δομημένα δεδομένα που χρησιμοποιούνται από τα προγράμματα, αλλά που δεν αποτελούν μέρος των ίδιων των προγραμμάτων. Τα εν λόγω αρχεία είναι συνήθως μεμονωμένα πράγματα, όπως γραμματοσειρές, codecs και plugins (και ως εκ τούτου, δεν απαιτούν διαχείριση των πακέτων). Επιπλέον, οι εφαρμογές μπορούν να ορίσουν στους υποκαταλόγους τους ν' αποθηκεύουν συγκεριμένα δεδομένα - Το Compile, το εργαλείο μεταγλωττισμού πακέτων του GoboLinux, το χρησιμοποιεί.

    /Mount/ - Χώρος ενσωμάτωσης (mount) για πρόσθετα τοπικά η απομακρυσμένα filesystems. Κοινοί υποκατάλογοι είναι οι CD-ROM, Floppy και Zip.

  • /Depot/ - Repository για τα αρχεία του user. Αυτό το αποθετήριο μπορεί να οργανωθεί όπως ο χρήστης θεωρεί ότι του ταιριάζει. Κανένας υποκατάλογος του /Depot δεν θεωρείται μέρος της standard ιεραρχίας του GoboLinux.

Το πρόγραμμα "Compile"

Το "Compile" είναι ένα πρόγραμμα που κατεβάζει, αποσυμπιέζει, μεταγλωττίζει τα tarballs της πηγής του κώδικα και εγκαθιστά τον εξαγόμενο εκτελεστικό κώδικα, όλα αυτά με μια απλή εντολή (όπως πχ. "Compile foo") χρησιμοποιώντας απλά scripts μεταγλώττισης, γνωστών ως "συνταγές" ("recipes").

Το Compile είναι κάτι ανάλογο με το Portage του Gentoo, το οποίο είναι βασισμένο στη συλλογή ports του FreeBSD και ολοκληρώνει τις παραπάνω ενέργειες με scripts, τα γνωστά μας "ebuilds". Αλλά το Portage είναι φτιαγμένο για την παραδοσιακή ιεραρχία των αρχείων, συμβατό με την standard Διάταξη Αρχείων, ενώ το Compile επεκτείνει τις δυνατότητες του ξεχωριστού συστήματος αρχείων του GoboLinux, στο πεδίο της διαχείρισης των πακέτων. Έτσι, στο GoboLinux, το σύστημα αρχείων είναι ο διαχειριστής πακέτων.

Το Compile εισήχθη στην έκδοση 011 του Gobo. Πριν απ' αυτό, γίνονταν συζητήσεις σχετικά με το αν μπορούσαν να μεταφέρουν το Portage του Gentoo στο GoboLinux και ν' αναπτύξουν το port ως ένα SourceForge.net project, με το όνομα name GoboPortage.

Άλλα χαρακτηριστικά του Compile:

1. Η χρήση download sites του ίδιου του project.
           Το αποθετήριο της διανομής (ή κάποιος από τους mirrors του), χρησιμοποιείται μόνο για να κατεβάζουμε συνταγές (recipes).
2. Μινιμαλιστικά και δηλωτικά προσανατολισμένα scripts μεταγλωττισμού.
Το τυπικό "configure, make, make install" λογισμικό, μπορεί να γίνει script σε δυο γραμμές, με πολύ εύκολη συντήρηση.
3. Υποστήριξη των εξαρτήσεων αλά GoboLinux.
Το λογισμικό που μεταγλωττίζεται "με το χέρι" από το χρήστη, λαμβάνεται υπόψιν από τον μηχανισμό ανίχνευσης.
4. Path-agnosticism
Δουλεύει επίσης σε μια rootless εγκατάσταση GoboLinux, πχ, μέσα σ' ένα home directory κάθε άλλης διανομής.

Οι διαφορές με τις παραδοσιακές διανομές

Διάταξη Αρχείων

Στην ιεραρχία του GoboLinux, τα files ομαδοποιούνται ανάλογα με τη λειτουργικότητά τους, χρησιμοποιώντας symbolic links, που βρίσκονται στο /System/Links: όλα τα εκτελέσιμα είναι προσβάσιμα στο /System/Links/Executables, όλες οι βιβλιοθήκες είναι προσβάσιμες στο /System/Links/Libraries κ.ο.κ. Αυτό εξαλείφει πολλές παραδοσιακές διακρίσεις στην standars διάταξη αρχείων, όπως η διάκριση που γίνεται ανάμεσα σε μη ουσιώδη αρχεία που είναι αποθηκευμένα στο /usr και ουσιώδη, αρχεία ανάγκης που είναι αποθηκευμένα απ' ευθείας στους υποκαταλόγους του root. Οι developers ισχυρίζονται ότι, αν και αυτές οι διαφοροποιήσεις ήταν κάποτε πολύ χρήσιμες, δεν είναι πλέον απαραίτητες στο ριζικά διαφορετικό, σύγχρονο περιβάλλον τους.

Symlinks

Υπάρχουν symbolic links που σχετίζουν τα περισσότερα από τα συνηθισμένα Unix directories στο δέντρο του GoboLinux. Ως εκ τούτου, μπορεί κανείς να βρει καταλόγους όπως στα /etc, /var/log και /usr/bin στις αναμενόμενες θέσεις. Αυτά τα συμβολικά links οδηγούν στο λειτουργικό ισοδύναμο, στο /System/Links, έτσι ώστε τα κρίσιμα pathnames όπως τα /bin/sh και /etc/passwd να επιλύονται σωστά. Αυτά τα αρχεία συμβατότητας αποκρύπτονται από την προβολή, χρησιμοποιώντας μια προσαρμοσμένη τροποποίηση του πυρήνα, που ονομάζεται GoboHide - η τροποποίηση αυτή, η οποία εφαρμόζει υποστήριξη για τα κρυφά αρχεία στο Linux, χρησιμοποιείται μόνο για λόγους καλαισθησίας και είναι προαιρετική.

Superuser

Το όνομα του υπερχρήστη, που γνωρίζουμε παραδοσιακά ως "root" με ένα UID του 0, είναι επιλέξιμο με την εγκατάσταση στο GoboLinux. Καθώς, σε αντίθεση με άλλες διανομές, ο υπερχρήστης δεν αποκτά κατάλογο /root ως /home directory, αντίθετα, χρησιμοποιεί το /Users/NAME όπως για κάθε άλλον χρήστη. Σύμφωνα με άρθρο του developer Hisham Muhammad, η απόφαση αυτή πάρθηκε, γιατί ποτέ δεν του άρεσε η ιδέα ενός ξεχωριστού superuser.

Εκκίνηση

Το GoboLinux χρησιμοποιεί δική του διαδικασία εκκίνησης, σε αντίθεση με τις περισσότερες διανομές Linux που χρησιμοποιούν την BSD ή την System V διαδικασία. Στο /System/Settings/BootScripts υπάρχουν μερικά files που υποβάλουν ολόκληρη την διαδικασία εκκίνησης: Το BootUp και το Shutdown τρέχουν κατά την εκκίνηση και τον τερματισμό λειτουργίας του συστήματος, αντίστοιχα. Επιπλέον, είναι δυνατόν να οριστούν "runlevel" scripts για να καθορίσουμε διαφορετικούς τρόπους για ν' αρχικοποιηθεί το σύστημα (για παράδειγμα, Single για Απλό Χρήστη, Multi για πολλούς χρήστες, Graphical για εκκίνηση σε graphic mode, και ούτω καθεξής) και να τα ελέγχουμε από το μενού του bootloader (φορτωτή εκκίνησης).  Tο αρχείο /System/Settings/BootOptions διαχωρίζει τα site-specific settings από τα υπόλοιπα scripts. Application-specific tasks μπορούν να βρεθούν στο /System/Links/Tasks και να κληθούν από τα boot scripts.

Εκδόσεις

Τα Releases αριθμούνται σύμφωνα με το octal base system. Σύμφωνα με τους συντάκτες, επιλέχθηκε επειδή διατηρεί μπροστά το χαρακτηριστικό μηδέν που είναι παρόν σε πολλές εκδόσεις free software (αφού το αρχικό μηδέν είναι ο δείκτης για τα οκταδικά νούμερα στην γλώσσα C), και συνεχίζει το παιχνίδι της "κούρσας του αριθμού έκδοσης" που ξεκίνησε μεταξύ διανομών Linux, γύρω στο 1999. Μέχρι την έκδοση 013, το GoboLinux δεν έκανε κανένα «point release», προκειμένου να αποφευχθεί η υπόνοια να θεωρηθούν ορισμένες κυκλοφορίες ως πιο σταθερές από ό,τι άλλες. Η παράδοση αυτή έσπασε με την 014,01, ένα update της 014 που επικεντρώθηκε σε διορθώσεις σφαλμάτων (bugs).

  • 014.01 - 30 Μαρτίου 2008: Update της 014, που περιλάμβανε bug fixes και κάποια package updates.
  • 014 - 31 Δεκεμβρίου 2007: νέα σταθερή έκδοση, που περιείχε package updates, bug fixes και νέες versions των management tools του Gobo.
  • 013 - 2 Νοεμβρίου 2006: εισάγεται το Listener, ένα εργαλείο listening για filesystem events και για ανάθεση ενεργειών που πρέπει να γίνονται αυτομάτως.
  • 012 - 6 Ιουνίου 2005: εισάγεται ο Manager, ένα γραφικό εργαλείο management του συστήματος.
  • 011 - 7 Ιουνίου 2004: εισάγεται το Compile, το εργαλείο μεταγλώττισης πακέτων του GoboLinux.
  • 010 - 7 Ιανουαρίου 2004: προστίθεται ένας γραφικός εγκαταστάτης (graphical installer), προσβάσιμος μέσω του περιβάλλοντος εργασίας ενός Live CD.
  • 007 - 22 Οκτωβρίου 2003: προστίθεται ένα per-package metadata directory με το όνομα Resources.
  • 006 - 9 Μαΐου 2003: εισάγεται το GoboHide.
  • 005 - 2003: πρώτη δημόσια έκδοση που βγαίνει στον αέρα.
  • Εκδόσεις προ της 005 χρησιμοποιούνταν από το group των developers μόνο.

 

Δώσε αστέρια!
Σχόλια

Ευχαριστώ, Grigris. Πιστεύω ότι θα πρέπει να δώσουμε χώρο σε κάποιες διανομές που δεν προβάλονται ιδιαίτερα. Το Gobo είναι μία απ' αυτές. :)

------------------------------------------------------------------------------------------------

"Όταν βλέπεις τον πιγκουίνο, ξέρεις τι πρέπει να κάνεις": ΒΑΖΕΙΣ LINUX!