Εισαγωγή στα Λειτουργικά Συστήματα

Γενικά

Μαθησιακά Αποτελέσματα

Το μάθημα αυτό είναι εισαγωγικό στο γνωστικό αντικείμενο των Λειτουργικών Συστημάτων και έχει ως βασικό στόχο την κατανόηση των γενικών αρχών των Λειτουργικών Συστημάτων μέσω της χρήσης και προγραμματισμού στο UNIX. Στόχος του μαθήματος είναι οι φοιτητές να μελετήσουν και να γνωρίσουν ένα Λ.Σ. που εξ’ αρχής δημιουργήθηκε για προγραμματιστές καθώς και να διακρίνουν την φιλοσοφία που κρύβει ένα Λ.Σ. «πίσω» από τα γραφικά περιβάλλοντα. Στο μάθημα καλούνται να κατανοήσουν και να εξετάσουν τον τρόπο χρήσης ενός κελύφους καθώς και πως αυτό αλληλεπιδρά με το λειτουργικό σύστημα. Σκοπός του μαθήματος είναι οι φοιτητές να κατανοήσουν πως λειτουργεί ένα “Λειτουργικό Σύστημα” και πως μπορούν να το αξιοποιήσουν. Κατά την διάρκεια του μαθήματος οι φοιτητές έχουν την δυνατότητα να γνωρίσουν τα ισχυρά όπλα που έχει ένας προγραμματιστής χρησιμοποιώντας ένα Λ.Σ. σε επίπεδο κελύφους και να γνωρίσουν την φιλοσοφία του «κάνω περίπλοκες ενέργειες συνδυάζοντας απλές αυτόνομες εντολές που επικοινωνούν μεταξύ τους». Τέλος οι φοιτητές θα γνωρίσουν την δομή του Λειτουργικού Συστήματος Android, το οποίο ανήκει και αυτό στην οικογένεια των UNIX Λειτουργικών Συστημάτων. Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής θα πρέπει να:

  • Έχει κατανοήσει τις βασικές αρχές του λειτουργικού συστήματος UNIX και του τρόπου λειτουργίας του Λ.Σ., αρχεία, χρήστες, ομάδες χρηστών, διεργασίες, πυρήνας καθώς και την σχέση Εφαρμογές-Κέλυφος-Πυρήνας.
  • Να είναι σε θέση να χρησιμοποιεί στο κέλυφος βασικές εντολές, μεταβλητές κελύφους, μεταβλητές, εισαγωγικά, χαρακτήρες μπαλαντέρ, διαχείριση και επεξεργασία αρχείων
  • Να κατανοήσει την έννοια των διεργασιών, τις ιδιότητές τους και τα σήματα (signals) και να μπορεί να τα χειριστεί εποικοδομητικά
  • Να γνωρίσει τους τρόπους επικοινωνίας των διεργασιών και να μπορεί να συνθέσει περίπλοκες εντολές με συνδυασμό απλών καθώς και να κατανοήσει την φιλοσοφία των φίλτρων. Θα πρέπει να μπορεί να δημιουργήσει φίλτρα και να συνδυάσει εποικοδομητικά υπάρχοντα φίλτρα.
  • Να κατανοήσει την χρήση των κανονικών εκφράσεων και να μπορεί να δημιουργεί κανονικές εκφράσεις χρησιμοποιώντας εντολές του λειτουργικού συστήματος.
  • Να κατανοήσει τον τρόπο χειρισμού των σεναρίων και των γλωσσών τύπου “interpreter” από το Λειτουργικό Σύστημα καθώς και να γνωρίσει τις δυνατότητες του κελύφους σε σχέση με τον έλεγχο εκτέλεσης εντολών, τους τελεστές εντολών και τις δομές επανάληψης και να αποκτήσει την ευχέρεια να δημιουργεί σενάρια κελύφους (αλλά και άλλων γλωσσών προγραμματισμού).
  • Να γνωρίσει την δομή του Λειτουργικού Συστήματος android που χρησιμοποιείται σε φορητές συσκευές.
Γενικές Ικανότητες
  • Mέσα από τις εργαστηριακές ασκήσεις ο φοιτητής θα έχει την ευχέρεια να χρησιμοποιήσει εποικοδομητικά ένα λειτουργικό σύστημα UNIX και να μπορεί να προγραμματίζει χρησιμοποιώντας γνωστά εργαλεία που του δίνονται από το Λειτουργικό σύστημα.
  • Ο φοιτητής θα έχει κατανοήσει τις βασικές αρχές λειτουργίας ενός Λειτουργικού Συστήματος ώστε να εμβαθύνει παρακάτω στο μάθημα “Αρχές Σχεδίασης Λειτουργικών Συστημάτων”.
  • Θα έχει διευρύνει τις γνώσεις του και τις ικανότητές του σε σχέση με τους τρόπους χρήσης υπολογιστών πέρα από την κλασσική χρήση μέσω των παραθυρικών περιβαλλόντων.

Περιεχόμενο Μαθήματος

  • Εισαγωγή στο UNIX: Κατανόηση του λειτουργικού συστήματος UNIX, Περιγραφή της φιλοσοφίας και του τρόπου λειτουργίας του Λ.Σ., Αρχεία, χρήστες, ομάδες χρηστών, διεργασίες, πυρήνας.
  • Εφαρμογές-Κέλυφος-Πυρήνας: Εισαγωγή στην χρήση του κελύφους, χρήση βασικών εντολών, μεταβλητές κελύφους, μεταβλητές περιβάλλοντος, quotes, βασικές εντολές διαχείρισης και επεξεργασίας αρχείων.
  • Σύστημα αρχείων: Πρόσβαση στο σύστημα αρχείων, διαδρομές, άδειες πρόσβασης, διαχείριση αρχείων, σύνδεσμοι, βασικοί τύποι συστημάτων αρχείων του UNIX και άλλων λειτουργικών συστημάτων (fat, ntfs, ext, …), συσκευές στο UNIX.
  • Κέλυφος και αρχεία: χρήση χαρακτήρων μπαλαντέρ.
  • Διεργασίες: διαχείριση διεργασιών, ιδιότητες, σήματα, το σύστημα /proc.
  • Επικοινωνία διεργασιών: διασωλήνωση & ανακατεύθυνση, χρήση και προγραμματισμός φίλτρων.
  • Κανονικές εκφράσεις και η χρήση τους μέσα από εργαλεία του UNIX (grep, sed).
  • Προγραμματισμός στο κέλυφος: Διερμηνευτές εντολών στο UNIX, Έλεγχος εκτέλεσης εντολών, τελεστές εντολών, δομές επανάληψης.
  • Εισαγωγή στην δομή ΛΣ κινητών συσκευών: Πυρήνας, Χρήστες, Ομάδες Χρηστών, Εφαρμογές, Σύστημα αρχείων.

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παράδοσης
  • Οι διαλέξεις του μαθήματος πραγματοποιούνται στις διδακτικές αίθουσες του τμήματος Μηχανικών Πληροφορικής και Ηλεκτρονικών Συστημάτων.
Οργάνωση Διδασκαλίας
Δραστηριότητα Φόρτος εργασίας εξαμήνου
Διαλέξεις52
Ασκήσεις και εξάσκηση στο Εργαστήριο13
Ατομική Μελέτη και ανάλυση βιβλιογραφίας40
Επίλυση Ασκήσεων και Εξάσκηση στο σπίτι75
Σύνολο 180
Αξιολόγηση φοιτητών

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

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος "Εύδοξος"
  1. ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΤΟ UNIX/LINUX, Σιδηρόπουλος Αντώνης, ISBN: 9786182210284, Κωδικός Βιβλίου στον Εύδοξο: 122077484:
  2. Το περιβάλλον προγραμματισμού UNIX, Kernigham & Pike, ISBN: 978-960-332-208-5, Κωδικός Βιβλίου στον Εύδοξο: 12530814
  3. Linux, Μάργαρης Αθανάσιος, Κωδικός Βιβλίου στον Εύδοξο: 102072090
Συμπληρωματική ελληνόγλωσση βιβλιογραφία
  1. Beginning Modern Unix, ISBN: 9781484235287, Κωδικός Βιβλίου στον Εύδοξο: 91677536