Εισαγωγή
Για το παρόν βιβλίο - Εργαστηριακό οδηγό
Το παρόν βιβλίο γράφηκε, για να αποτελέσει κυρίως έναν εργαστηριακό οδηγό για το μάθημα
«Εισαγωγή στα Λειτουργικά Συστήματα», όπως αυτό διδάσκεται στο Τμήμα Μηχανικών Πληροφορικής του Αλεξάνδρειου
ΤΕΙ Θεσσαλονίκης. Προφανώς, όμως, μπορεί να το χρησιμοποιήσει οποιοσδήποτε ενδιαφέρεται να μάθει τα βασικά στοιχεία του Λειτουργικού Συστήματος UNIX ή Linux.
Το μάθημα «Εισαγωγή στα Λειτουργικά Συστήματα» είναι εισαγωγικό στο γνωστικό αντικείμενο των Λειτουργικών Συστημάτων και έχει ως βασικό στόχο την κατανόηση των γενικών αρχών των Λειτουργικών Συστημάτων μέσω της χρήσης και προγραμματισμού στο UNIX.
Στόχος του μαθήματος είναι οι φοιτητές να μελετήσουν και να γνωρίσουν ένα Λειτουργικό Σύστημα
που εξαρχής δημιουργήθηκε για προγραμματιστές,
καθώς και να διακρίνουν τη φιλοσοφία που κρύβει ένα Λειτουργικό Σύστημα «πίσω» από τα γραφικά περιβάλλοντα.
Στο μάθημα καλούνται να κατανοήσουν και να εξετάσουν τον τρόπο χρήσης ενός κελύφους καθώς και πώς αυτό αλληλεπιδρά με το Λειτουργικό Σύστημα.
Σκοπός του μαθήματος είναι οι φοιτητές να κατανοήσουν πώς λειτουργεί ένα «Λειτουργικό Σύστημα»
και πώς μπορούν να το αξιοποιήσουν.
Κατά τη διάρκεια του μαθήματος οι φοιτητές έχουν τη δυνατότητα να γνωρίσουν τα ισχυρά «όπλα» που έχει ένας προγραμματιστής χρησιμοποιώντας ένα Λειτουργικό Σύστημα σε επίπεδο κελύφους και να γνωρίσουν τη φιλοσοφία του
«κάνω περίπλοκες ενέργειες συνδυάζοντας απλές αυτόνομες εντολές που επικοινωνούν μεταξύ τους».
Με τη μελέτη του παρόντος εργαστηριακού οδηγού και την επιτυχή ολοκλήρωση του μαθήματος,
ο φοιτητής θα πρέπει:
- να κατανοήσει τις βασικές αρχές του Λειτουργικού Συστήματος UNIX και του τρόπου λειτουργίας του Λειτουργικού Συστήματος σε σχέση με τη διαχείριση αρχείων, χρηστών, ομάδων χρηστών, διεργασιών και πυρήνα.
- να κατανοήσει τη σχέση Εφαρμογές-Κέλυφος-Πυρήνας,
- να είναι σε θέση να χρησιμοποιεί στο κέλυφος βασικές εντολές, μεταβλητές κελύφους, μεταβλητές περιβάλλοντος
- να κατανοήσει τη χρήση των εισαγωγικών ("quotes"),
- να μπορεί να εφαρμόσει βασικές εντολές διαχείρισης και επεξεργασίας αρχείων,
- να κατανοήσει τη φιλοσοφία λειτουργίας των συστημάτων αρχείων,
- να χρησιμοποιεί τους χαρακτήρες μπαλαντέρ,
- να κατανοήσει την έννοια των διεργασιών, τις ιδιότητές τους και τα σήματα (signals) και να μπορεί να τα χειριστεί εποικοδομητικά,
- να γνωρίσει τους τρόπους επικοινωνίας των διεργασιών και να μπορεί να συνθέσει περίπλοκες εντολές με συνδυασμό απλών εντολών,
- να κατανοήσει τη φιλοσοφία των φίλτρων και να μπορεί να δημιουργήσει φίλτρα ή να συνδυάσει εποικοδομητικά υπάρχοντα φίλτρα,
- να κατανοήσει τη χρήση των Κανονικών Εκφράσεων και να μπορεί να δημιουργεί Κανονικές Εκφράσεις,
- να κατανοήσει τον τρόπο χειρισμού των σεναρίων και των γλωσσών τύπου διερμηνευτή (interpreter) από το Λειτουργικό Σύστημα,
- να γνωρίσει τις δυνατότητες του κελύφους σε σχέση με τον έλεγχο εκτέλεσης εντολών, τους τελεστές εντολών και τις δομές επανάληψης.
Σε συντομία το περιεχόμενο του μαθήματος περιλαμβάνει:
- εισαγωγή στο UNIX: κατανόηση του Λειτουργικού Συστήματος UNIX, Περιγραφή της φιλοσοφίας και του τρόπου λειτουργίας του Λ.Σ., Αρχεία, χρήστες, ομάδες χρηστών, διεργασίες, πυρήνας,
- εφαρμογές-κέλυφος-πυρήνας: εισαγωγή στη χρήση του κελύφους, χρήση βασικών εντολών, μεταβλητές κελύφους, μεταβλητές περιβάλλοντος, quotes, βασικές εντολές διαχείρισης και επεξεργασίας αρχείων,
- σύστημα αρχείων: πρόσβαση στο σύστημα αρχείων, διαδρομές, άδειες πρόσβασης, διαχείριση αρχείων, σύνδεσμοι, βασικοί τύποι συστημάτων αρχείων του UNIX και άλλων Λειτουργικών Συστημάτων (fat, ntfs, ext, ...), συσκευές στο UNIX,
- κέλυφος και αρχεία: χρήση χαρακτήρων μπαλαντέρ,
- διεργασίες: διαχείριση διεργασιών, ιδιότητες, σήματα, το σύστημα /proc,
- επικοινωνία διεργασιών: διασωλήνωση και ανακατεύθυνση, χρήση και προγραμματισμός φίλτρων,
- Κανονικές Εκφράσεις και η χρήση τους μέσα από εργαλεία του UNIX (grep, sed),
- προγραμματισμός στο κέλυφος: διερμηνευτές εντολών στο UNIX, έλεγχος εκτέλεσης εντολών, τελεστές εντολών, δομές επανάληψης.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής έχει αποκτήσει τις παρακάτω γνώσεις και δεξιότητες:
- Μέσα από τις εργαστηριακές ασκήσεις έχει την ευχέρεια να χρησιμοποιήσει εποικοδομητικά ένα Λειτουργικό Σύστημα UNIX και μπορεί να προγραμματίζει χρησιμοποιώντας γνωστά εργαλεία που του δίνονται από το Λειτουργικό Σύστημα.
- Κατανοεί τις βασικές αρχές λειτουργίας ενός Λειτουργικού Συστήματος, ώστε να εμβαθύνει παρακάτω στο μάθημα «Αρχές σχεδίασης Λειτουργικών Συστημάτων».
- Διευρύνει τις γνώσεις του και τις ικανότητές του σε σχέση με τους τρόπους χρήσης υπολογιστών πέρα από την κλασική χρήση μέσω των παραθυρικών περιβαλλόντων.