Τμήμα Πληροφορικής - Εαρινό Εξάμηνο 2003

Η/Υ 445: Λειτουργικά Συστήματα

Υποχρεωτικό μάθημα 4ου εξαμήνου  


Εξέταση Εργασίας στο MINIX

Η εξέταση της εργασίας στο MINIX (1ο και 2ο μέρος) θα γίνει τις μέρες Τρίτη 27/5, Τετάρτη, 28/5 και Πέμπτη 29/5 στο γραφείο μου. Η εξέταση της εργασίας είναι υποχρεωτική και θα πρέπει όλοι όσοι έχετε παραδώσει την εργασία να έρθετε στην προφορική της εξέταση. Όσοι φοιτητές δεν μπορέσουν να έρθουν θα πρέπει να με ενημερώσουν πριν την εξέταση, διαφορετικά η εργασία τους θα μηδενιστεί. Οι φοιτητές που έχουν παραδώσει την εργασία και θέλουν να εξεταστούν θα πρέπει να δηλώσουν την ώρα της προτίμησής τους σε έναν από τους πίνακες που έχουν αναρτηθεί έξω από το γραφείο μου. Τα δύο μέλη κάθε ομάδας πρέπει να εξεταστούν το ένα μετά το άλλο χωρίς κενό χρόνου ανάμεσά τους. Θα πρέπει επομένως να δηλώσετε την ώρα της προτίμησής σας ανά ομάδα.


Γενικά | Ανακοινώσεις | Ημερολόγιο | Διαφάνειες Διαλέξεων & Άλλο Υλικό | MINIX


Γενικές Πληροφορίες

Διδάσκουσα:                                           Παναγιώτα Φατούρου
Γραφείο:                                                  26 (Α´ ορόφου)
Ώρες Γραφείου:                                       Δευτέρα, 17:00 – 18:00 &  Τρίτη, 13:00-17:00
Ηλεκτρονική Διεύθυνση:                        
Τηλέφωνο:                                               (26510) 98808

Βοηθός Μαθήματος:                                Ιωάννης Σταγάκης 
Γραφείο Βοηθού:                                     Β27
Ώρες Γραφείου Βοηθού:                          Δευτέρα, 14:00-15:00 & Πέμπτη, 14:00-16:00
Ηλεκτρονική Διεύθυνση Βοηθού:            stagakisATcs.uoi.gr
Τηλέφωνο:                                                (26510) 98842

Ηλεκτρονική Διεύθυνση Μαθήματος:    

Ώρες και Αίθουσες Διδασκαλίας

Δευτέρα, 13:00-17:00, στην αίθουσα Ι-2.
Τετάρτη, 10:00-12:00, στην αίθουσα Ι-2. Το μάθημα της Τετάρτης θα γίνεται μερικές φορές 9-11 ή 13:00-15:00 (όταν γίνεται Γενική Συνέλευση στο Τμήμα).
 

Ώρες και Αίθουσα Φροντιστηρίου

Τρίτη, 18:00-20:00, στην αίθουσα Ι-2

 

Σύνοψη Μαθήματος

Το μάθημα θα εστιάσει στη μελέτη βασικών αρχών, εννοιών και αλγορίθμων λειτουργικών συστημάτων. Τι είναι ένα λειτουργικό σύστημα, Βασικές έννοιες, υπηρεσίες, και δομή λειτουργικών συστημάτων, Διεργασίες (Διαδιεργασιακή Επικοινωνία, Χρονοπρογραμματισμός), Διαχείριση Μνήμης, Συστήματα Αρχείων, Είσοδος/Έξοδος, Αδιέξοδα, Προστασία, καθώς και περιπτώσεις μελέτης συγκεκριμένων λειτουργικών συστημάτων, όπως π.χ., το Unix. Τέλος, θα μελετηθούν θέματα σχεδίασης και υλοποίησης λειτουργικών συστημάτων.

 

Βιβλία

q       A. S. Tanenbaum, “Σύγχρονα Λειτουργικά Συστήματα”, Prentice-Hall International, Κλειδάριθμος, Αθήνα.

q       A. Silberschatz and A. Galvin, «Operating System Concepts», Addison-Wesley Publishing Company, 5th Edition1998.

q       A. Tanenbaum and A. Woodhull, «Operating Systems: Design and Implementation», Prentice Hall, 2hn Edition, 1996.

q       M. Bauch, «The Design of the UNIX Operating System», Prentice/Hall International, Inc., New Jersey, 1986.

Το βιβλίο που θα μοιραστεί στους φοιτητές είναι το 1ο από τα παραπάνω και το μάθημα θα βασιστεί κυρίως σε αυτό το βιβλίο. Οι διαφάνειες του μαθήματος μαζί με τις σημειώσεις που μπορείτε να κρατάτε κατά την παράδοση και οποιοδήποτε άλλο υλικό σας δοθεί στην τάξη θα σας βοηθήσουν να διεκπεραιώσετε επιτυχώς το μάθημα.

Πρόγραμμα

1η εβδομάδα

Εισαγωγή, Τι είναι ένα λειτουργικό σύστημα, Ιστορία, Βασικές Έννοιες, Υπηρεσίες.

2η εβδομάδα

Διαδιεργασιακή Επικοινωνία

3η εβδομάδα

Διαδιεργασιακή Επικοινωνία

4η εβδομάδα

Χρονοπρογραμματισμός Διεργασιών

5η εβδομάδα

Διαχείριση Μνήμης

6η εβδομάδα

Διαχείριση Μνήμης

7η εβδομάδα

Συστήματα Αρχείων

8η εβδομάδα

Συστήματα Αρχείων, Είσοδος/Έξοδος 

9η εβδομάδα

Είσοδος/Έξοδος

10η εβδομάδα

Αδιέξοδα

11η εβδομάδα

Προστασία

12η εβδομάδα

Το λειτουργικό Σύστημα Unix
13η Εβδομάδα Το λειτουργικό Σύστημα Unix

 

Εργασίες και Βαθμολόγηση

Κατά τη διάρκεια του εξαμήνου θα δοθούν συνολικά 2 ασκήσεις (των οποίων το μεγαλύτερο βάρος θα είναι προγραμματιστικό) και 1 εργασία (project) στο MINIX. Ο προγραμματισμός θα γίνει σε γλώσσα C, ενώ θα χρησιμοποιηθούν διάφορες κλήσεις συστήματος του Unix. Κάθε εργασία θα πρέπει να επιστρέφεται πριν από την αναγραφόμενη ημερομηνία και ώρα προκειμένου να βαθμολογείται με άριστα το 10. Ωστόσο, παράδοση ασκήσεων μπορεί να γίνει καθυστερημένα βάσει του εξής αλγόριθμου:

§         Αν η παράδοση της άσκησης γίνει μέχρι και τρία 24ωρα μετά την προθεσμία, η άσκηση βαθμολογείται με μείωση βαθμού κατά 1.0/10.0 μονάδα για κάθε μέρα καθυστέρησης. 

§         Αν η παράδοση της άσκησης γίνει αφού έχουν περάσει τρία 24ωρα μετά τη λήξη της προθεσμίας (και φυσικά πριν την εξέταση της άσκησης), η άσκηση βαθμολογείται με άριστα το 5.0/10.0.

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

Οι φοιτητές μπορούν να χρησιμοποιήσουν οποιονδήποτε υπολογιστή για τις προγραμματιστικές ασκήσεις τους. Για τη βαθμολόγηση της άσκησής τους όμως, το πρόγραμμα θα εκτελείται στα μηχανήματα κάποιου εργαστηρίου του Τμήματος. Στα μηχανήματα αυτά θα είναι εγκατεστημένο και το απαραίτητο λογισμικό για τις ασκήσεις. Όσοι από τους φοιτητές επιθυμούν να εργαστούν σε άλλα μηχανήματα θα πρέπει να σιγουρευτούν ότι ο κώδικας τους τρέχει σωστά και στα παραπάνω μηχανήματα. Στα μηχανήματα των εργαστηρίων του Τμήματος εκτελείται το λειτουργικό σύστημα unix και η μεταγλώτιση των προγραμμάτων γίνεται με τον μεταγλωτιστή gcc της C.

Οι φοιτητές είναι υπεύθυνοι για την κακή χρήση του λογαριασμού τους. Το password τους θα πρέπει να παραμείνει μυστικό και ο λογαριασμός τους να χρησιμοποιείτε μόνο από αυτούς. Θα πρέπει τέλος να φροντίζουν η προστασία του καταλόγου στον οποίο βρίσκονται τα προγράμματά τους να μην επιτρέπει ανάγνωση (ή ακόμη χειρότερα εγγραφή) από άλλους (η εντολή chmod είναι πολύ χρήσιμη).

Η τελική εξέταση θα γίνει με ανοιχτά βιβλία. Άλλου είδους χαρτιά και σημειώσεις απαγορεύονται. Στην τελική εξέταση θα πρέπει όλοι οι εξεταζόμενοι φοιτητές να έχουν μαζί τους το πάσο τους. Φοιτητές που δεν έχουν μαζί τους το πάσο τους δεν θα γίνονται δεκτοί στην εξέταση.  

Ο τελικός βαθμός θα εξαρτηθεί τόσο από τη βαθμολογία των ασκήσεων, όσο και από την επίδοση των φοιτητών στην τελική εξέταση, ως εξής:

Σειρές Ασκήσεων: 30%
Τελική Εξέταση: 70%

Μόνο οι φοιτητές που έχουν συγκεντρώσει συνολική βαθμολογία 5 (ασκήσεις + τελικό) θα περάσουν το μάθημα. Ωστόσο, ένας φοιτητής που θα γράψει λιγότερο από 4.0 στο τελικό διαγώνισμα δεν θα περάσει το μάθημα ανεξάρτητα από το πόσο καλές είναι οι ασκήσεις/εργασίες που έχει παραδώσει. Ομοίως, ένας φοιτητής που έχει βαθμό μικρότερο του 3.5 στις ασκήσεις ή στο project δεν θα περάσει το μάθημα ανεξάρτητα από το πόσο καλό θα είναι το γραπτό του στην τελική εξέταση.

Ο ίδιος αλγόριθμος για την διεξαγωγή της βαθμολογίας ισχύει και στην εξέταση του Σεπτεμβρίου.

 

Παρακολούθηση

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

   

E-mailing Λίστα & Λογαριασμός Μαθήματος

Για το  μάθημα θα υπάρχει e-mailing λίστα η οποία θα χρησιμοποιείται για την αποστολή e-mail σε όλους τους φοιτητές που έχουν δηλώσει το μάθημα. Οι φοιτητές υποχρεούνται να εγγραφούν στη λίστα το αργότερο μέχρι τις 24/2/03. Για να εγγραφείτε στη λίστα αρκεί να στείλετε ένα ηλεκτρονικό μήνυμα (e-mail) στη διεύθυνση 

με κενό θέμα και σώμα:

Όποιος φοιτητής δεν εγγραφεί στη λίστα, θα διαγραφεί από το μάθημα. Το e-mail address της λίστας είναι

 Όλα τα e-mails προς αυτή τη διεύθυνση θα λαμβάνονται από όλους τους φοιτητές που έχουν εγγραφεί στη λίστα.

Για το μάθημα υπάρχει επίσης λογαριασμός με e-mail address:

Το e-mail του λογαριασμού αυτού ελέγχεται συχνά από τον βοηθό του μαθήματος. Μπορείτε να στέλνετε e-mails με απορίες τόσο στον λογαριασμό όσο και στη λίστα. Τα e-mails σας θα πρέπει να απευθύνονται προς τη λίστα μόνο αν πιστεύετε πως αυτά που γράφετε ή ρωτάτε είναι χρήσιμα και ενδιαφέροντα σε όλους τους συμφοιτητές σας.

Παρατήρηση

Συνίσταται ισχυρά οι φοιτητές να έχουν διεκπεραιώσει με επιτυχία τα μαθήματα της «Εισαγωγής στον Προγραμματισμό», της «Εισαγωγής στους Η/Υ» και του "Προγραμματισμού σε C".  Επίσης, θα βοηθούσε πολύ να έχουν διεκπεραιωθεί επιτυχώς τα μαθήματα "Δομές Δεδομένων" και "Αρχιτεκτονική Υπολογιστών". Απαιτείται πολύ καλή γνώση της γλώσσας Προγραμματισμού  C.

   

Άλλη Βιβλιογραφία

 

Βιβλία σε C

 


Ανακοινώσεις

  Το μέρος Δρομολόγηση Δίσκων έχει δοθεί στο φωτοτυπικό. 

H εξέταση της εργασίας στο MINIX (1ο και 2ο μέρος) θα γίνει τις μέρες Τρίτη 27/5, Τετάρτη, 28/5 και Πέμπτη 29/5 στο γραφείο μου. Η εξέταση της εργασίας είναι υποχρεωτική και θα πρέπει όλοι όσοι έχετε παραδώσει την εργασία να έρθετε στην προφορική της εξέταση. Όσοι φοιτητές δεν μπορέσουν να έρθουν θα πρέπει να με ενημερώσουν πριν την εξέταση, διαφορετικά η εργασία τους θα μηδενιστεί. Οι φοιτητές που έχουν παραδώσει την εργασία και θέλουν να εξεταστούν θα πρέπει να δηλώσουν την ώρα της προτίμησής τους σε έναν από τους πίνακες που έχουν αναρτηθεί έξω από το γραφείο μου. Τα δύο μέλη κάθε ομάδας πρέπει να εξεταστούν το ένα μετά το άλλο χωρίς κενό χρόνου ανάμεσά τους. Θα πρέπει επομένως να δηλώσετε την ώρα της προτίμησής σας ανά ομάδα..

 


Ημερολόγιο

Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή
10/2

 Συζήτηση επί του μαθήματος. Syllabus. 

Εισαγωγή. Μελέτη Ενοτήτων 1.1, 1.2, 1.3, Tanenbaum.

 

 

 

11/2

 


 

 

 

 

12/2

Απουσία Διδάσκουσας στο Εξωτερικό.

 

 

 

 

 

 

13/2

 

 

 

 

 

 

 

14/2

 

 

 

 

 

 

 

17/2

Εισαγωγή. Μελέτη διαφανειών. Μελέτη Ενοτήτων 1.4, 1.5, 1.6, 1.7, Τanenbaum. Μελέτη Κεφαλαίου 1 & 2, Silberschatz & Galvin (φωτοτυπίες των κεφαλαίων αυτών έχουν δοθεί για φωτοτύπηση).

 

18/2

Διεργασίες - Διαδιεργασιακή Επικοινωνία. Μελέτη Διαφανειών. Μελέτη Ενοτήτων 2.1 και 2.3.1-2.3.5, Tanenbaum. 

(Αναπλήρωση μαθήματος Τετάρτης 12/2).

 

19/2

Διαδιεργασιακή Επικοινωνία. Μελέτη διαφανειών. Μελέτη Ενοτήτων 2.3.6-2.3.8, Tanenbaum.

 

 

 

20/2

 

 

 

 

 

 

21/2

 

 

 

 

 

 

24/2

Διαδιεργασιακή Επικοινωνία. Μελέτη Διαφανειών & Ενότητας 2.2.9, προηγούμενη έκδοση Tanenbaum (υλικό που μοιράστηκε στο μάθημα).

 

 

 

25/2

Εργαστηριακή  Απασχόληση 

 

 


 

 

26/2

Διαδιεργασιακή Επικοινωνία. Μελέτη Διαφανειών & Ενότητας 2.4, Tanenbaum.

Η ύλη για την 1η άσκηση έχει  καλυφθεί. Η έμφαση θα πρέπει να δοθεί στον προγραμματισμό της άσκησής σας.

1η άσκηση

27/2 

 

 


 

 


28/2 

 

 


 

 


3/3

Χρονοπρογραμματισμός Διεργασιών. Μελέτη Διαφανειών, μέρους του υλικού από το βιβλίο Silberschatz & Galvin που σας μοιράστηκε στο μάθημα & Ενοτήτων 2.4.2, 2.4.4.

 

4/3

Εργαστηριακή Απασχόληση

 

 


5/3

Χρονοπρογραμματισμός Διεργασιών. Μελέτη Διαφανειών, υλικού από το βιβλίο Silberschatz & Galvin που σας μοιράστηκε στο μάθημα & Ενοτήτων 2.4.1, 2.4.3. 2.4.5-2.4.7.

 

6/3

7/3

 

10/3

 Αργία

11/3

 Αργία

12/3

Φροντιστηριακή Απασχόληση

13/3

 

14/3

 

17/3

Φροντιστηριακή Απασχόληση

1η άσκηση due 

 

 

 

 

 

18/3

 Extra δίωρο (αναπλήρωση μαθημάτων που χάθηκαν λόγω αργιών).

Βασική Διαχείριση Μνήμης, Εναλλαγή. Μελέτη Διαφανειών & Ενοτήτων 4.1 - 4.2, Tanenbaum.


19/3

Εικονική Μνήμη, Αλγόριθμοι Αντικατάστασης Σελίδων. Μελέτη Διαφανειών & Ενοτήτων 4.3, 4.4.1-4.4.5, Tanenbaum.

Η έμφαση θα πρέπει να δοθεί στον προγραμματισμό της άσκησής σας.

2η άσκηση

20/3 

 

 

 

 


 

21/3

 

 

 

 

 

 

 

24/3

Αλγόριθμοι Αντικατάστασης Σελίδων, Μοντελοποίηση των Αλγορίθμων Αντικατάστασης Σελίδας. Μελέτη Διαφανειών & Ενοτήτων 4.4.6-4.410, 4.5, Tanenbaum.

Η έμφαση θα πρέπει να δοθεί στον προγραμματισμό της άσκησής σας.

25/3

Φροντιστηριακή Απασχόληση

 

 

 

 

 

 

 

26/3

Θέματα Σχεδιασμού για τα Συστήματα Σελιδοποίησης, Ζητήματα Υλοποίησης. Μελέτη Διαφανειών & Ενοτήτων 4.6, 4.7, Tanenbaum.

 

 

 

 

27/3

 

 

 

 

 

 

 

 

28/3

 

 

 

 

 

 

 

 

31/3

 Απουσία Διδάσκουσας.

 

 

1/4

Φροντιστηριακή Απασχόληση

 

 

2/4

Κατάτμηση. Μελέτη Διαφανειών, Ενότητας 4.8, Tanenbaum & Υλικού που έχει δοθεί για φωτοτύπηση.

3/4

 

 

4/4

 

 

 

7/4

Αρχεία, Κατάλογοι. Μελέτη Διαφανειών & Ενοτήτων  6.1 & 6.2, Tanenbaum.


 

8/4

Extra δίωρο. 

Υλοποίηση Συστήματος Αρχείων. Μελέτη Διαφανειών & Ενοτήτων 6.3-6.4, Tanenbaum.

Η ύλη για το project έχει καλυφθεί.

9/4

Φοιτητικές Εκλογές

 2η άσκηση due

 

 

10/4

Extra δίωρο. Εγκατάσταση MINIX.

ΜΙΝΙΧ project

 


11/4

Extra δίωρο. 

Είσοδος-Έξοδος. Μελέτη διαφανειών & Υλικού που έχει δοθεί για φωτοτύπηση.


14/4 

To Σύστημα Αρχείων του MINIX. Συζήτηση επί του project.

Μελέτη υλικού που έχει δοθεί για φωτοτύπηση.

 

15/4

 Extra Δίωρο. 

 Αδιέξοδα. Μελέτη Διαφανειών & Υλικού που έχει δοθεί για φωτοτύπηση.

 

16/4

Αδιέξοδα. Μελέτη Διαφανειών & Υλικού που έχει δοθεί για φωτοτύπηση.


17/4

 



 

18/4

 


 

21/4

 

22/4

 

23/4

 

24/4 

 

25/4

 

5/5

Ασφάλεια Συστημάτων, Μελέτη διαφανειών  

Το βάρος θα πρέπει να δοθεί στο project

6/5

 

 

 

7/5

 Φοιτητικές Εκλογές

 

 

8/5

 

 

 

9/5

 

 

 

12/5 

UNIX, Μελέτη διαφανειών

Το βάρος θα πρέπει να δοθεί στο project

13/5

 

 

 

14/5 

UNIX, Μελέτη Διαφανειών

 

15/5 

 

 

 

16/5

 

 

 

19/5

Φροντιστηριακή Απασχόληση

project due, Mέρος A

20/5

 

 

21/5

 Φροντιστηριακή Απασχόληση

 

22/5

 

 

23/5

 

 

26/5

project due, Μέρος Β

27/5

Eξέταση project

28/5

Εξέταση project

29/5

Εξέταση project 

30/5

 

 


Διαφάνειες Διαλέξεων & Άλλο Υλικό

  To project σε MINIX είναι διαθέσιμo (project.doc).


MINIX

Οδηγίες εγκατάστασης

  1. Αποφασίστε το μέλος της ομάδας στου οποίου το λογαριασμό θα δουλέψετε το project.
  2. Δημιουργήστε ένα directory με το όνομα myminix στον λογαριασμό αυτό.
  3. Δημιουργήστε soft links στα αρχεία του καταλόγου /opt/MINIX. Αυτό γίνεται αυτόματα τρέχοντας το script setup_minix. Αντιγράψτε το script setup_minix στο βασικό σας κατάλογο, αλλάξτε τα permissions ώστε να είναι εκτελέσιμο (chmod 700 setup_minix) και εκτελέστε το. 
  4. Αντικαταστήστε τα soft links myminix/disks/root και myminix/src/tools/.minix με αντίγραφα από τα πραγματικά αρχεία /opt/MINIX/disks/root και /opt/MINIX/src/tools/.minix. Για παράδειγμα, για το αρχείο .minix πρέπει να εκτελέσετε τις ακόλουθες δύο γραμμές από το home directory σας:

rm myminix/src/tools/.minix
cp
/opt/MINIX/src/tools/.minix myminix/src/tools

 Μετά από όλα αυτά, θα χρησιμοποιηθούν περίπου 6,4 MBytes στον λογαριασμό σας για το MINIX.

  1. Θα χρειαστεί να θέσετε επίσης κάποιες μεταβλητές περιβάλλοντος. Οι εντολές για csh και tcsh έχουν ως εξής:
       setenv MX_LIB ~/myminix/src/lib
       setenv MX_INCL ~/myminix/include
       setenv PATH ~/myminix/bin:${PATH}

και πρέπει να τοποθετήσετε τις εντολές αυτές στο αρχείο .cshrc. Κάθε φορά που αλλάζετε το αρχείο .cshrc θα πρέπει να το εκτελείτε. Αυτό γίνεται με την ενοτλή:

source .cshrc

Οι εντολές για bash έχουν ως εξής 

       export MX_LIB=~/myminix/src/lib
       export MX_INCL=~/myminix/include
       export PATH=~/myminix/bin:${PATH}
και πρέπει να τοποθετήσετε τις εντολές αυτές στο αρχείο .profile. Κάθε φορά που αλλάζετε το αρχείο .profile θα πρέπει να το εκτελείτε. Αυτό γίνεται με την εντολή:

./.profile

Tα αρχεία .profile και .cshrc βρίσκονται στο home directory της περιοχής σας. Τις αλλαγές στα αρχεία αυτά θα πρέπει να τις κάνετε μόνο μία φορά ακόμη και αν εγκαταστήσετε το MINIX πολλές φορές κατά τη διάρκεια διεκπεραίωσης της εργασίας σας.

Ελέγξτε το path εκτελώντας την εντολή "which minix" για να βεβαιωθείτε ότι τρέχετε το σωστό minix (από τον προσωπικό σας κατάλογο). 


1η Εμπειρία με το MINIX

  1. Mπείτε στο myminix/src/tools και τρέξτε την εντολή minix. (ΠΡΟΣΟΧΗ: το minix τρέχει μόνο μέσα από csh ή tcsh.) Το λειτουργικό σύστημα minix αρχίζει να τρέχει ως μία διεργασία χρήστη του Solaris.
  2. Μπείτε στο minix ως root (δεν έχει password αρχικά) και καθορίστε το password της αρεσκείας σας (το password καθορίζεται ή αλλάζει εκτελώντας την εντολή passwd). Κάνετε το ίδιο για τον λογαριασμό bin. 
  3. Δείτε τις διαθέσιμες εντολές του minix κάνοντας ls τo /bin και το /usr/bin. To minix έχει τους editors elvis (που είναι παρόμοιος με τον vi; ένας σύντομος οδηγός αναφοράς για τον vi παρέχεται εδώ) και uemacs (θα χρειαστείτε τις εντολές control-n, control-p, control-f, control-b για να κινηθείτε μέσα στο αρχείο (κάτω, πάνω, δεξιά, αριστερά, αντίστοιχα), και control-x, control-s για σώσιμο του αρχείου και control-x control-c για έξοδο.
  4. Για να δημιουργήσετε λογαριασμό για ένα νέο χρήστη με login name π.χ., david, θα πρέπει να κάνετε τα ακόλουθα:

david::20:3:David Smith:/usr/david:/usr/bin/ash

mkdir /usr/david
cp /.profile /usr/david
cp /.ashrc /usr/david
chown -R david /usr/david
chgrp -R other /usr/david

  1. Για να τερματίσετε το minix, πρέπει να κάνετε login ως root και να εκτελέσετε την εντολή shutdown now.

Μultiuser ΜΙΝΙΧ 

 


Γράφοντας προγράμματα για το MINIX


Τα προγράμματα που θα φτιάξετε για το MINIX θα τα αναπτύξετε εκτός MINIX (έστω π.χ., ότι έχετε φτιάξει ένα απλό πρόγραμμα, hello.c, σε C στο λογαριασμό σας στο SOLARIS). Συγκεκριμένα: 

Πιθανό πρόβλημα:

Τροποποιώντας το ίδιο το MINIX

  1. Από τη στιγμή που όλα τα αρχεία στον κατάλογο myminix είναι soft links σε αρχεία του συστήματος, δεν μπορείτε προφανώς να τα τροποποιήσετε. Θα πρέπει να αντικαταστήσετε τα links των αρχείων που θα τροποποιήσετε με κανονικά αντίγραφα από τα αρχεία στο /opt/MINIX. Πρέπει επομένως να αντικαταστήσετε όλα τα links του directory ~/myminix/src/fs με τα πραγματικά αρχεία.

  2. Θα πρέπει επίσης να αντικαταστήστε τα soft links myminix/src/mm/mm.map, myminix/src/fs/fs.map, myminix/src/inet/inet.map και myminix/src/tools/image με αντίγραφα από τα πραγματικά αρχεία (ή να σβήσετε αυτά τα αρχεία: εκτελώντας make image στη συνέχεια όλα τα αρχεία αυτά θα ξαναδημιουργηθούν).

  3. Κάθε φορά που κάνετε αλλαγές σε κάποιο αρχείο, θα πρέπει να πηγαίνετε στον κατάλογο myminix/src/tools και να εκτελείτε την εντολή "make image".

  4. Για να δείτε αν όλα πήγαν καλά, τρέξτε και πάλι το minix.

  5. Δοκιμάστε να τοποθετήσετε μια printf στη συνάρτηση main() του αρχείου main.c στον κατάλογο fs και ακολουθήστε την παραπάνω διαδικασία για να δείτε αν όλα δουλεύουν σωστά.


Έλεγχος αλλαγών στο κώδικα του MINIX

  1. Ξεκινήστε το MINIX με την εντολή "minix -d" για να ενεργοποιήσετε το μηχανισμό αποσφαλμάτωσης.

  2. Μπορείτε να χρησιμοποιείτε την εντολή printf για να ελέγχετε τη ροή του προγράμματος σας (τα μηνύματα που τυπώνετε τα βλέπετε κανονικά στην οθόνη).

  3. Στον κατάλογο myminix/src/test εκτελέστε την εντολή "make all". Στη συνέχεια, log in στο MINIX σαν root και πηγαίνετε στον κατάλογο /usr/test. Τροποποιήστε το αρχείο testload του καταλόγου: στην γραμμή sunosdir δηλώστε το πλήρες όνομα διαδρομής του test καταλόγου στο λογαριασμό σας στο SOLARIS. Στη συνέχεια, εκτελέστε την εντολή ./testload και αμέσως μετά την εντολή ./run για να τρέξετε τα tests και να ελέγξετε το σύστημα.. Μερικά tests μπορεί να αποτυγχάνουν όταν τα τρέχετε σαν root γιατί πρέπει να τρέξουν από το λογαριασμό bin. Αφού βγείτε από τον λογαριασμό root και μπείτε στον bin ξαναεκτελέστε την εντολή ./run για να τρέξετε και τα υπόλοιπα προγράμματα.


Βιβλιογραφία

 


Τελευταία  τροποποίηση:26/2/03
Κατασκευή και συντήρηση σελίδων:  Παναγιώτα Φατούρου