💾 Archived View for magaz.hellug.gr › 13 › 04_lin_for_dummies2 › index.gmi captured on 2024-08-31 at 12:12:26. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-02-05)

-=-=-=-=-=-=-

Linux για τους νοητικά ασθενείς part II

Κοτσιφάκης Θρασύβουλος
Μαρ 1999

Συνέχεια του άρθρου του προηγούμενου μήνα. Τα πρώτα σας βηματάκια στο Linux και στα τερτίπια του .Strictly for beginers.

1. Ό LI.LO. (άκου όνομα κι αυτός).

2. Τα αρχεία συστήματος

3. Επίλογος (άντε γιατί βαρεθήκαμε).

[1. Ό LI.LO. (άκου όνομα κι αυτός).]

Χαιρετώ τα πλήθη και μπαίνω κατ' ευθείαν στο ψητό. LI.LO. εστί Linux Loader, και τι κάνει αυτός ε; λοιπόν αυτός φροντίζει να ξεκινήσει(σουν) το(τα) λειτουργικό(ά) μας. Προφανώς όταν κάνατε εγκατάσταση του Linux, σας ζητήθηκε να τον εγκαταστήσετε κάπου. 'ν δεν έχετε κάποιο λειτουργικό με δικό του loader (π.χ. OS/2) εγκαταστήστε τον στο MBR (master boot record).Φτιάξτε τα boot volumes μέσα από τις ρουτίνες που διαθέτει κάθε Distribution, δώστε τους ονομασία και όταν ξεκινήσει ο κουβάς σας θα δείτε ένα μήνυμα μετά από την εκκίνηση του bios όπως το παρακάτω:

LΙLO:

Δώστε τώρα το όνομα που δώσατε στο boot volume του Linux και συνεχίστε με τα βήματα που διαβάσατε στο πρώτο άρθρο της σειράς για να κάνετε login. Πάμε τώρα να βγάλουμε τα μάτια στον lilo και να μάθουμε μερικά ψιλά για το πως θα τον κάνουμε να δουλεύει όπως θέλουμε εμείς.

Κατά την εγκατάσταση του συστήματος σας στο σημείο που εγκαταστήσατε τον lilo συνέβησαν τα εξής:

α.  Καθορίστηκαν οι εγγραφές για το τι λειτουργικά συστήματα πρέπει να είναι έτοιμος ο lilo να ξεκινήσει.
β.  Καθορίστηκαν οι ονομασίες αυτών (boot labels)
γ.  Καθορίστηκε η θέση τους (σε ποιο δίσκο, σε ποιο partition )
δ.  Καθορίστηκε ποιο λειτουργικό θα είναι το default.
ε.  Τροποποιήθηκε το MBR 
στ. Γράφτηκαν οι αλλαγές στο configuration file του LILO.

Αυτά βέβαια με απλά λόγια διότι οι διαδικασίες αυτές είναι much much more complicated απ' όσον ακούγονται, (διαβάστε το /usr/doc/lilo/README και θα καταλάβετε τι εννοώ.) Πάμε τώρα να αλλάξουμε τα φώτα στον lilo.

Μεταφερθείτε στο /etc directory και ψάξτε για ένα αρχείο με το όνομα lilo.conf. Ανοίξτε το με κάποιον editor (vi, pico, joe ή όποιον άλλο εσείς πλέον χρησιμοποιείτε -συνιστώ ανεπιφύλακτα τον pico). Αυτό που θα δείτε είναι περίπου το παρακάτω :

# LILO global section start
boot=/dev/hda
prompt
timeout=100
vga = normal
# End LILO global section
#
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda6
label = linux
# Linux bootable partition config ends
#
# Winblows bootable partition config begins
other = /dev/hda1
label = w95
table = /dev/hda
# Winblows bootable partition config ends

Νομίζω ότι με κάποια προσεκτική ανάγνωση καταλαβαίνετε τι κάνει αυτό το αρχείο αλλά και πως το κάνει.Βέβαια εδώ δεν διαβάζουμε για να γίνουμε Πυθίες γι αυτό ας εξηγήσουμε μερικά πράγματα.

Προσέξτε τις εγγραφές ανάμεσα από τα σχόλια "#LILO global section start" και "# End LILO global section". Εδώ βρίσκονται οι γενικές (σφαιρικές) καταχωρίσεις για την αρχική συμπεριφορά του συστήματος μας.

boot=... : Εδώ καθοδηγούμε το σύστημα για το που βρίσκεται το boot record. Συνήθως είναι /dev/hda ή /dev/sda (αν ξεκινάμε τον lilo από hard-disk ) ή και /dev/fd0 (αν ξεκινάμε από δισκέττα -ναι, και αυτό γίνεται).

prompt : Ενεργοποιείται το LILO prompt που βλέπουμε στην εκκίνηση και μας καλεί να επιλέξουμε λειτουργικό για την εκκίνηση.

timeout=...tenthsofsecs : Εδώ βάζουμε τον χρόνο που θα καθυστερήσει ο lilo στο prompt πριν ξεκινήσει το default λειτουργικό.Το 100 που έχει το lilo.conf παραπάνω σημαίνει 10 seconds.

vga=... : Εδώ μπορούμε να χρησιμοποιήσουμε μία τιμή ανάλυσης σε χαρακτήρες για την απεικόνιση των τερματικών μας. Οι επιλογές που έχουμε είναι normal (80x25) ext (80x50) ή ask όπου ερωτούμαστε για την ανάλυση (στο 2.2 kernel η παράμετρος ask δείχνει τον πραγματικό της εαυτό αφού μπορούμε να εκκινήσουμε σε SVGA Mode).

Προς στιγμήν ας αφήσουμε το global section στο οποίο θα επιστρέψουμε δριμύτεροι για να του αλλάξουμε τα φώτα, και ας ρίξουμε μία ματιά στο section # Linux bootable partition config begins

image=/boot/vmlinuz : Εδώ λέμε στον lilo πού θα βρεί τον πυρήνα (vmlinuz είναι το όνομα που θα συναντήσετε και που αργότερα θα χρησιμοποιείτε κι εσείς για την ονομασία των custom kernel που θα φτιάχνετε, π.χ. vmlinuz_2_0_36 vmlinuz_2_2 κ.λ.π. /boot φυσικά είναι το directory όπου αποθηκεύετε τους πυρήνες σας.

root =/dev/hda6 : Έδώ φυσικά καθοδηγούμε τον lilo για το που κάνουμε mount το root (/)

label = linux : Έδω του λέμε τι entry να περιμένει στο prompt. Πληκτρολογώντας δηλαδή linux και πατώντας το enter θα ξεκινήσει να φορτώνει το Linux του οποίου το loadable kernel βρίσκεται στο /boot ,ονομάζεται vmlinuz και το root directory του "κάθεται" στο /dev/hda6

Ας πειράξουμε τώρα λίγο το συγκεκριμένο αρχείο.Μπείτε σε μια άλλη κονσόλα και ανοίξτε τον editor της αρεσκείας σας. Πληκτρολογείστε ότι σας κατέβει για μήνυμα έναρξης και σώστε το π.χ. με ένα όνομα όπως my_welcome_msg. Γυρίστε τώρα στο τερματικό που έχετε ανοιχτό το lilο.conf και γράψτε στο global section την εξής εγγραφή.

message=.../my_welcome_msg όπου έχω τελείες εσείς βάλτε το path για το my_welcome_msg π.χ. /boot/my_welcome_msg

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

timeout= 300

Επειδή όμως και αυτός ο χρόνος είναι μικρός για το επίσης μικρό και νωθρό νευρικό σας σύστημα ας ανατρέξουμε στις παρακάτω ενότητες για να αλλάξουμε και τα labels και να τα κάνουμε μικρότερα

label=l

label=w

Αλλά επειδή αν και πτωχοί τω πνεύματι είμαστε ανήσυχοι και διαβάσαμε το άρθρο του φίλου μου Βαγγέλη στο προηγούμενο τεύχος και έχουμε κάνει complile έναν kernel τον οποίο θέλουμε να δοκιμάσουμε για να καμαρώσουμε τι ωραία και γρήγορα που (δεν) ξεκινάει το μασίνι μας αφού απαντήσαμε αρνητικά σε ότι μας ρώτησε κατά την διάρκεια του config ας φτιάξουμε και ένα section για το δικό μας kernel που με περηφάνεια ονομάσαμε vmlinuz_siga_kai_8a_bootarei.

# LILO global section start
boot=/dev/hda
message=/boot/my_welcome_msg
prompt
timeout=300
vga = normal                     
# End LILO global section
#
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda6
label = l
# Linux bootable partition config ends
#
# Winblows bootable partition config begins    
other = /dev/hda1
label = w
table = /dev/hda
# Winblows bootable partition config ends
#
#to neo section me to kernel poy ftiajame jekina edw
image= /boot/vmlinuz_siga_kai_8a_bootarei   #elpizw oti to antigrapsate sto /boot
root = /dev/hda6
label = l1                                 #elpizw na prolauete na to plhktrologhsete 
#edw teleiwnoume (ponhroulia mou!) 

Αφού κάναμε τις αλλαγές μας σώζουμε το lilo.conf και περήφανοι για την πρόοδο μας επανεκκινούμε τον κουβά μας, βλέπουμε το LILO prompt και γράφουμε l, πατάμε το enter και παίρνουμε τ' _ _ _ _ _ια μας ,μας λέει ο lilos ότι λέει δεν υπάρχει τέτοιο πράμα. Πατάμε το Tab για να δούμε τι επιλογές έχουμε και τι θωρούν τα μάτια μας; linux και w95 μα αφού τα αλλάξαμε με τα ίδια τα χεράκια μας , και το καινούριο kernel που είναι; Well αφήστε το linux να μπουτάρει όσο θα σας εξηγώ.

Όταν μετατρέπουμε το αρχείο lilo.conf πρέπει να εγκαταστήσουμε τον lilo ξανά για να αλλάξουν τα settings του /boot/map το οποίο δεν μεταβάλλεται αν δεν τρέξουμε το :

/sbin/lilo

Αφού τώρα το ξέρουμε πάμε να εφαρμόσουμε την γνώση μας. Tο μήνυμα που θα πάρουμε μετά από την εκτέλεση του /sbin/lilo θα είναι

Added l*
Added w
Added l1

Ο αστερίσκος που βλέπετε πλάι στο l δείχνει ότι το l είναι το image που θα φορτώσει σε (πολύ) πιθανό timeout . Αν τώρα θέλετε να ξεκινά by default τα ΑΚΑΤΑΝΟΜΑΣΤΑ(c) τότε κάντε σκάντζα το linux section με το Winblows section (το Winblows πρώτο) και ξανατρέξτε το /sbin/lilo, να πάτε τώρα τρέχοντας να εξομολογηθείτε την αμαρτία σας σ' ένα παπά (τον αφορισμό τον έχετε σίγουρο, μόνο ο Χριστοδου(λοπου)λος σας σώζει που αυτός όλα τα συγχωρεί). Τέλος πάντων ξεκινήστε τον κουβά και βλέπουμε.Και τώρα όπως βλέπετε και το μηνυματάκι σας φαίνεται στην οθόνη έναρξης και το νέο kernel δεν μπουτάρει και γενικώς τα κάνατε θάλασσα.

[2. Τα αρχεία συστήματος]

Τα αρχεία συστήματος είναι κάτι αρχεία τα οποία διαβάζει ο κουβάς μας κατά την διαδικασία εκκίνησης του για να πάρει γενικές κατευθύνσεις και για να ξέρει τι υπηρεσίες θα ξεκινήσει.Τα αρχεία αυτά θα τα συναντήσετε μέσα στο /etc και στα directories των εκάστοτε user (/root , /home/...).Γενικά οι τροποποιήσεις αυτών των αρχείων (ειδικά των γενικών αρχείων που βρίσκονται στο /etc) κρίνεται απαγορευμένη για μωρά και ηλιθίους αλλά μάλλον -με πάσα επιφύλαξη- εσείς δεν ανήκετε σε καμμία από τις δύο παραπάνω κατηγορίες.Έχοντας υπ' όψιν τα παραπάνω λοιπόν συνιστώ ανεπιφύλακτα να κάνετε ένα backup των αρχείων πριν ξεκινήσετε να τα τσακίζετε στις αλλαγές προς το καλύτερο -κούνια που σας κούναγε.

Αρχεία συστήματος στο LINUX, λοιπόν, είναι τα κάτωθι

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

Φυσικά config file είναι και το lilo.conf αλλά και τα παρακάτω που βρίσκονται στους καταλόγους του κάθε χρήστη (συνήθως /home/{username}).

[2.1 /etc/fstab]

Λοιπόν αυτό το αρχείο είναι ίσως το πιο απλό στο editing αφού διαβάζεται πανεύκολα. Ας εξηγήσουμε όμως τι κάνει.

Με απλά λόγια καθοδηγεί στην εκκίνηση το linuxoboxo μας για το τι filesystems υπάρχουν στον κουβά μας, για το που γίνονται mount και τις διαδικασίες ελέγχου για κάθε ένα απ' αυτά.

Η μορφή του είναι ως κάτω:

Συσκευή     mount-point   filesystem-type   mount-options    dumps(backups)     fschk
 
Ας δώσουμε όμως και δύο-τρία παραδειγματάκια :
<p>
Για ένα filesystem ext2 στο πρώτο partition του πρώτου IDE harddisk που θέλουμε να χρησιμοποιήσουμε σαν root οι εγγραφές στο fstab θα είναι :
<verb>
/dev/hda1     /       ext2          default     1    1

Για το δεύτερο partition του δεύτερου δίσκου που κατά τραγική τύχη είναι Fat32 και γίνεται mount στο directory /winblows οι εγγραφές θα είναι:

/dev/hdb2    /winblows           vfat         default(ή και rw)        0    0

Για ένα cdrom master στον δεύτερο IDE controller που θέλουμε να γίνεται αυτόματα mount στην εκκίνηση στον κατάλογο /mnt/cdrom οι εγγραφές είναι:

/dev/hdc     /mnt/cdrom        iso9660    ro,auto                     0    0

Αυτά τα ολίγα για το fstab και πάμε παρακάτω.

[2.2 /etc/profile]

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

Η δομή του είναι περίπου αυτή που θα είχε και ένα πρόγραμμα της C. Από εδώ μέσα ορίζουμε το πως θα συμπεριφέρονται οι μεταβλητές συστήματος , ποια directories θα είναι μόνιμα στο PATH , που βρίσκονται οι ΜΑΝ σελίδες, τι aliases θα χρησιμοποιηθούν, τι γλώσσα κ.λ.π.

Αυτό που ακολουθεί είναι ένα μικρό δείγμα profile αρχείου . Οι εξηγήσεις για το κάθε τι βρίσκονται στα comments(#)

 # /etc/profile

PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin   #καθορίζεται το path για τα εκτελέσιμα αρχεία
export PATH                                        #γνωστοποιείται στο σύστημα

export LANG=gr_GR                                  #καθορίζεται η γλώσσα

LC_ALL=gr_GR         #αλλάζουν όλες οι ρυθμίσεις της γλώσσας και συμβολισμών σε ελληνικά (καθαρά C macro)
export LC_ALL=gr_GR  #και εδώ γίνονται διαθέσιμες οι νέες ρυθμίσεις στο shell                                    
export LC_CTYPE=iso-8859_7    #αλλάζουν και καθορίζονται οι λειτουργίες που έχουν να κάνουν με επεξεργασία χαρακτήρων
                              #σε κωδικοσελίδα iso 8859-7 (ελληνική)                    

MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man    #καθορίζεται το path για το που βρίσκονται οι man σελίδες
export MANPATH                                    #γνωστοποιείται στο σύστημα το path των man

PS1="\t:\W\"                       #καθορίζεται η πρωτεύουσα συμπεριφορά του shell prompt
PS2='> '                            #καθορίζεται η δευτερεύουσα συμπεριφορά του shell prompt
export PS1 PS2                      #γνωστοποιούνται στο σύστημα

alias ls='ls -l --color=tty '    
alias dir='ls -l'                    
alias ll='ls -l'                    #Διάφορα aliases
alias la='ls -la'                   
alias l='ls -alF'                   
alias ls-l='ls -l'                  

clear                                #καθαρίζει τον buffer από τα μηνύματα

if   [ -x /tmp/osslinux-3.7.1z/osslinux.runme ] ; then       #κάνει έλεγχο για την ύπαρξη  αρχείου με όνομα osslinux.runme 
   echo "the sound services can be initialized with  /tmp/osslinux-3.7.1z/osslinux.runme "     #ειδοποιεί για την ύπαρξη του αρχείου 
else 
   echo "if you do not have a sound ready kernel compile one"    #αν δεν υπάρχει  ειδοποιεί και προτείνει
fi 


Μέσα στο profile μπορούν να οριστούν εκφράσεις όπως if...then.....else , loops και άλλα περίεργα και εντυπωσιακά για καλύτερο έλεγχο και παραμετροποίηση του συστήματος, αυτό βέβαια απαιτεί από εσάς να μάθετε καλά το πως λειτουργεί το κέλυφος εργασίας.

Όπως θα καταλάβατε το profile μπορεί να γίνει a real pain in our ass με την πολυπλοκότητα που μπορεί να λάβει. Μία προσεκτική ανάγνωση στην man bash θα μας διώξει τις πολλές απορίες. Και συνεχίζουμε ακάθεκτοι.

[2.3 /etc/printcap]

Α-χα! εδώ μπαίνουμε στο πιο πονεμένο θέμα για τον στραβόγιαννο χρήστη.Ο ΕΚΤΥΠΩΤΗΣ ΜΟΥ και πως αυτός θα δουλέψει. Μεγάλο θέμα και σηκώνει ώρες συζήτησης. Φυσικά δέν θα σας κάνω την χάρη (εδώ είδα κι έπαθα να κάνω τον δικό μου εκτυπωτή να δουλέψει θα κάνω τον δικό σας;).

Λοιπόν το printcap είναι το αρχείο που διαχειρίζεται τους εκτυπωτές μας. Μέσα απ' αυτό περιγράφεται η συμπεριφορά του εκτυπωτή, η ονομασία του, το που θα γίνονται spool τα έγγραφα προς εκτύπωση, το πώς θα μετατραπεί και θα εκτυπωθεί ένα αρχείο που δεν είναι ASCII. Η απλούστερη μορφή του είναι η παρακάτω η οποία όμως είναι ικανή να τυπώσει μόνο ASCII κείμενο

# epson colonas pro:      # ονομασία του  printer
lp:lp=/dev/lp1            # ποια συσκευή είναι  
:sd=/usr/spool/lp1        #το spool directory
:sh                       #παράμετρος που εμποδίζει την εκτύπωση του ονόματος του
                          #owner των προς εκτύπωση σελίδων σαν επικεφαλίδα 

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

Μία ματιά στην man printcap και στο THE LINUX PRINTING HOWTO θα σας διαφωτίσει για το πώς θα εγκαταστήσετε διάφορα φίλτρα εκτύπωσης. Οι περισσότερες distributions πάντως έχουν και κάποια φίλτρα για εκτυπωτές. Η RH έχει τα redhat print filters τα οποία μπορείτε να εγκαταστήσετε μέσω του printool. Αντίστοιχα η SUSE έχει τα apsfilters τα οποία μπορείτε να εγκαταστήσετε μέσω του yast, ενώ επίσης μπορείτε να βρείτε και commercial φίλτρα στο διαδίκτυο.

[2.4 /etc/rc.config]

Εδώ έχομεν το αρχείο το οποίο είναι υπεύθυνο για την έναρξη των δαιμόνων (daemons) για την επιλογή της ρύθμισης γλώσσας, της χρησιμοποιούμενης γραμματοσειράς για την έναρξη και το σετάρισμα των υπηρεσιών δικτύου και άλλων όμορφων και χορταστικών πραγμάτων.Ένα πολύ μικρό δείγμα rc.config είναι και το ακόλουθο

MOUSE="/dev/psaux" #που βρίσκεται το mouse
MODEM="/dev/ttyS2" #που βρίσκεται το modem
KEYTABLE="us.map.gz"#το console map για τους χαρακτήρες 
CONSOLE_FONT="8x14alt"#τίθεται το font της κονσόλας
KBD_NUMLOCK="yes"#αν το numlock θα είναι on κατά την εκκίνηση
KBD_CAPSLOCK="no"#αν το capslock θα είναι on 
TIMEZONE="Europe/Athens"#ρυθμίσεις ώρας  (/usr/lib/zoneinfo/localtime)
START_LOOPBACK="yes"έναρξη μίας εικονικής υπηρεσίας δικτύου (χρήσιμη για την λειτουργία εκτυπωτή) 
NETCONFIG=""#configuration για LAN και δίκτυα γενικά
IPADDR_0=""
IPADDR_1=""
IPADDR_2=""
IPADDR_3=""
NETDEV_0="ppp0"#το όνομα του πρωτοκόλλου (συσκευής) δικτύου που μπορεί να ενεργοποιηθεί
NETDEV_1="eth0"
NETDEV_2=""
NETDEV_3=""
SETUPDUMMYDEV=yes#dummy net device χρειάζεται για σύνδεση με ppp (internet)
FQHOSTNAME="1.local"#το hostname (από το /etc/hosts)
NAMESERVER="193.91.1.1"το DNS του server που επιχειρεί πρώτη σύνδεση (εδώ της forthnet)
START_KERNELD="yes"#εκκίνηση του kernel daemon
START_GPM="yes"εκκίνηση του gpm για την υποστήριξη mouse σε τερματικό
GPM_PARAM=" -t ps2 -m /dev/mouse"#παράμετροι για το mouse και το gpm
START_LPD=yes#εκκίνηση του printer daemon

Όπως καταλαβαίνετε το rc.config είναι το βασικό αρχείο συστήματος το οποίο και διαβάζουν τα scripts κατά την εκκίνηση του Linux για να πληροφορηθούν για την μορφή που πρέπει να πάρει το σύστημα.Μην το αλλάζετε εκτός και αν ξέρετε πολύ καλά τι κάνετε.

[2.5 /etc/inittab]

Είναι ένα μάλλον απλό αρχείο του οποίου η σημασία όμως είναι πολύ μεγάλη και για να καταλάβουμε πως λειτουργεί θα πρέπει να πούμε μερικά πράγματα για την /sbin/init και τι κάνει.

Λοιπόν αυτή η init καθορίζει την συμπεριφορά του μηχανήματος . Όλοι φαντάζομαι έχετε δώσει κάποια από τις εντολές reboot, halt, shutdown κλπ, λοιπόν το τί θα κάνουν αυτές καθορίζεται από τα init scripts που βρίσκονται στο /sbin/init.d και τα οποία διαβάζει η init η οποία είναι και το πρώτο πράγμα που φορτώνει ο kernel στην εκκίνηση για να ελέγξει τις processes που θα εκκινηθούν. Φαίνεται απλό ε; Ε λοιπόν δεν είναι, αφού στο Linux υπάρχουν διάφορα επίπεδα κάτω από τα οποία μπορεί να τρέξει. Αυτά χαρακτηρίζονται από ένα αριθμό (αν παρατηρήσετε τα μηνύματα στην εκκίνηση θα δείτε που εκκινεί κάθε run-level και πιο είναι το τελευταίο που χρησιμοποιείται ).

Ένας πίνακας με τα run-levels παρατίθεται εδώ (με πάσα επιφύλαξη για τα του red hat)

SUSE
0 halt
S single user
1 multi-user χωρίς δίκτυο 
2 multi-user με δίκτυο
3 multi-user με δίκτυο και γραφικό login (xdm ή kdm καθορίζεται στο rc.config μαζί με τον window manager)
6 reboot

RED HAT
0 halt
1 single user
2 multi user χωρίς network
3 full multi-user
5 γραφικό login όλες οι υπηρεσίες
6 reboot

Έσείς προφανώς με όποια distribution και αν δουλεύετε σε full multi - user περιβάλλον θα κάνετε login.

Και φτάνουμε τώρα στο inittab το οποίο καθορίζει την συμπεριφορά της init και των ενεργειών που θα γίνουν σε κάθε runlevel. Παρακάτω ένα inittab με τα σχόλια του.

# /etc/inittab
id:2:initdefault: #Έδω καθορίζετε ως default runlevel το 2 (#suse multiusr+network)

si:I:bootwait:/sbin/init.d/boot #το πρώτο script που διαβάζει (αυτό που ξεκινά τον 
                                #kerneld για τα modules 
                                # ενεργοποιεί το swap ,κάνει fschk κ.λ.π.)

l0:0:wait:/sbin/init.d/rc 0  #
l1:1:wait:/sbin/init.d/rc 1  #ΕΝΤΟΛΕΣ ΓΙΑ ΚΑΘΥΣΤΕΡΗΣΗ ΣΤΗΝ ΜΕΤΑΒΑΣΗ ΤΩΝ
l2:2:wait:/sbin/init.d/rc 2  #RUN-LEVELS ΓΙΑ ΝΑ ΓΙΝΟΥΝ MOUNT ΤΑ FILESYSTEMS
l3:3:wait:/sbin/init.d/rc 3  #
l6:6:wait:/sbin/init.d/rc 6  #

ls:S:wait:/sbin/init.d/rc S   #οδηγίες για περίπτωση που θα μεταβούμε
~~:S:respawn:/sbin/sulogin    #σε single user mode (κατι ανάλογο με safe mode)

ca::ctrlaltdel:/sbin/shutdown -r -t 4 now #η συμπεριφορά του three finger salute 
                                          #(for those about to rock  We salute you)

Για να καταλάβετε καλύτερα πως λειτουργεί η init και το inittab καλό θα ήταν να ρίξετε μια ματιά στα script που βρίσκονται στο /sbin/init.d και στους υποκαταλόγους του (rc0.d ,rc2.d κλπ) αλλά και στην man init

[2.6 /etc/conf.modules]

Εδώ δεν έχουμε και πολλά να πούμε γιατί το αρχείο αυτό το μόνο πράγμα που περιέχει είναι οι ρυθμίσεις αυτών των κομματιών του hardware που ξεκινάνε με το kerneld τον daemon δηλαδή που φορτώνει τα modules (ας πούμε drivers που φορτώνονται και ξεφορτώνονται δυναμικά) και επίσης aliases δηλαδή μετονομασίες των modules π.χ. alias ppp0 ppp ή alias iso9660 isofs . Οι ρυθμίσεις τώρα που αναφέρονται στα modules έχουν να κάνουν με διευθύνσεις io και τα irq. Ένα αρχείο λοιπόν που μάλλον δεν θα το αγγίξετε ποτέ αλλά μόνο για να διαγράψετε κάνα δυο comments από συσκευές που θέλετε να φορτώνουν αυτόματα μετά από κάποιο επιτυχημένο (θα περάσουν χρόνια) kernel compilation που θα κάνετε.

[2.7 Τα αρχεία autoexec.bat και config.sys]

Καλά μεγάλε άμα δεν τα ξέρεις αυτά τα αρχεία έπαιξες και έχασες. Μη με ρωτάς καθόλου γιατί. Θα έπρεπε να ξέρεις.Τέλος πάντων ας σας εξηγήσω λίγα πράγματα γι' αυτά. Είναι αρχεία που ασχολούνται με το φόρτωμα των απαιτούμενων drivers, που καθορίζουν τα path των εκτελέσιμων (στο dos) και άλλα χορταστικά .Στο LINUX εμφανίζονται με ενιαία μορφή που είναι η παρακάτω.

#autoexec.bat
#config.sys
set path=/read_my_lips/den_yparxoun_tetoia_arxeia_sto_linux_ma_ _ka/ 
fi

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

Ξεκαθαρίζουμε λοιπόν. ΔΕΝ ΥΠΑΡΧΟΥΝ ΑΡΧΕΙΑ CONFIG.SYS ΚΑΙ AUTOEXEC.BAT ΣΤΟ LINUX. 'ντε πια με τρελλάνατε. (Το παραπάνω περιστατικό είναι πέρα για πέρα αληθινό και συνέβη αρχές Φεβρουαρίου, μάρτυς η γυναίκα μου).

[3. Επίλογος (άντε γιατί βαρεθήκαμε).]

Και αφού διαβάσαμε εδώ για όλα αυτά τα περίεργα και μάλλον δύσκολα -για αρχάριους-, ας παινέψουμε και λίγο το linuxακι μας και την βαβούρα του.Well well τι μπορούμε να πούμε ,τι strings μπροστά στα πόδια μας, τι παράμετροι συσκευών, τι επικοινωνία με το μηχάνημα. Πείτε μου βρε άθλιοι είδατε πουθενά στα ΑΚΑΤΑΝΟΜΑΣΤΑ(c) τόση γνώση για τις διεργασίες και τα εσωτερικά της λειτουργίας του κουβά σας; Εδώ με το linux έχει αρχίσει το μυαλό και ξυπνάει που είχε καταντήσει σαν την βιοχλαπάτσα με όλα αυτά τα λειτουργικά που κάτω από ένα πέπλο μυστικότητας τα έκαναν όλα. Εδώ τα πάντα είναι παραμετροποιήσημα , η επικοινωνία με τις συσκευές διαφανής και στα χέρια του χρήστη (μέχρι καφέ μπορείτε να φτιάξετε με το linuxακι σας).

Να θυμίσω ότι στα τεύχη 08/98[1] και 09/98[2] ο φίλος μου Βαγγέλης έγραψε δύο υπέροχα άρθρα (ούτε καν τα διάβασα) για το bash και πως θα δουλέψουμε παραγωγικότερα μαζί του. Αξίζει να τους ρίξετε μία ματιά αφού μου φαίνεται πως είναι το μοναδικό documentation για το bash στα ελληνικά. Καλό διάβασμα λοιπόν και φρόνιμα.

1: ../08/05_bash1.html

2: ../09/06_bash2.html

Σημειώνω ότι τα scripts που δίνονται εδώ σαν παραδείγματα, δεν είναι ολοκληρωμένα ούτε, απαραίτητα, λειτουργικά. Ένα copy και paste δεν θα σας σώσει δηλαδή από την διαδικασία του scripting για να βάλετε ελληνικά ή για να κάνετε το Linux σας να αναγνωρίζει τον καινούργιο δίσκο του. 

the expression ΑΚΑΤΑΝΟΜΑΣΤΑ(c) is a copyright of Papadogiannakis Vaggelis. 


Αρχική Σελίδα