ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Μελέτη και υλοποίηση σε γλώσσα Assembly ενός απλοποιημένου Λειτουργικού Συστήματος στο περιβάλλον του Emu8086 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΦΟΙΤΗΤΗΣ ΜΑΔΕΜΛΗΣ ΙΩΑΝΝΗΣ ΕΥΑΓΓΕΛΟΠΟΥΛΟΣ ΠΕΡΙΚΛΗΣ
ΣΚΟΠΟΣ Μελέτη της αρχιτεκτονικής και του προγραμματισμού του επεξεργαστή 8088/8086 της Intel, καθώς επίσης και του περιβάλλοντος του προγράμματος EMU8086 Υλοποίηση σε γλώσσα Assembly στον emulator EMU8086 ενός απλοποιημένου λειτουργικού συστήματος που θα εκτελείται πάνω στην πλατφόρμα του MS-DOS Χρήση Command Line Interface, εκτέλεση εντολών παρόμοιων με αυτών του MS-DOS Διαχείριση αρχείων και καταλόγων στο σύστημα αρχείων του υπολογιστή
ΠΕΡΙΛΗΨΗ ΚΕΦΑΛΑΙΟ 1: Ιστορικά στοιχεία - Ο επεξεργαστής Intel 8086 αναλυτικότερα και η ιστορία του MS-DOS ΚΕΦΑΛΑΙΟ 2: Προγραμματισμός με Assembly – Η γλώσσα προγραμματισμού Assembly και ο emulator emu8086 ΚΕΦΑΛΑΙΟ 3: Ο προγραμματισμός του συστήματος «Percules» - Χρησιμότητα του προγράμματος, το command prompt και σετ των δεκτών εντολών ΚΕΦΑΛΑΙΟ 4: Ο κώδικας πίσω από το σύστημα που αναπτύχθηκε
ΚΕΦΑΛΑΙΟ 1 Ιστορικά στοιχεία Ο μικροεπεξεργαστής 8086 της Intel Εσωτερική αρχιτεκτονική 16 bit Κυκλοφόρησε το 1978 Data Bus των 16 bit Address Bus των 20 bit Συχνότητα λειτουργίας 4,77 – 8 MHz Σετ εντολών με 90 εντολές συνολικά 14 συνολικά καταχωρητές των 16 bit (4 από αυτούς χωρίζονται σε 2 των 8 bit)
Η ιστορία του MS-DOS Η IBM ψάχνει για ένα νέο λειτουργικό σύστημα που θα εισήγαγε στον νέο IBM PC (τέλη του 1980) Η Microsoft αγοράζει τα δικαιώματα του QDOS από την Seattle Computer Products και τον δημιουργό του Tim Paterson Μετατροπή του QDOS (Quick and Dirty Operating System) ώστε να γίνει συμβατό με τις προδιαγραφές της IBM Κυκλοφορεί το 1982 το PC της IBM που ονομάστηκε PC DOS με το νέο λειτουργικό σύστημα MS-DOS
Η ιστορία του MS-DOS Γραμμή εντολών (command prompt) Χρησιμοποιήθηκε ευρέως σε προσωπικούς υπολογιστές από τη δεκαετία του ’80 μέχρι τα μέσα της δεκαετίας του ’90 Το 1995 η Microsoft ανακοίνωσε την κατάργηση του MS-DOS και την αντικατάστασή του από τα Windows 95 που παρείχαν γραφική διεπαφή με το χρήστη Το MS-DOS κυκλοφόρησε σε 8 συνολικά εκδόσεις μέχρι που σταμάτησε η ανάπτυξή του το 2000
ΚΕΦΑΛΑΙΟ 2 Προγραμματισμός με Assembly Γλώσσα χαμηλού επιπέδου (είναι πολύ κοντά στη γλώσσα μηχανής και στο υλικό του υπολογιστή) Χρησιμοποιεί συμβολική αναπαράσταση για να παρουσιάσει τον αριθμητικό κώδικα μηχανής και άλλες σταθερές απαραίτητες για τον προγραμματισμό ενός επεξεργαστή Σήμερα χρησιμοποιείται κυρίως για άμεσο χειρισμό hardware καθώς έχει αντικατασταθεί από γλώσσες προγραμματισμού υψηλού επιπέδου Η μετάφραση ενός προγράμματος από συμβολική γλώσσα σε γλώσσα μηχανής πραγματοποιείται από τον συμβολομεταφραστή (assembler)
Η γλώσσα προγραμματισμού Assembly Αρχικά τα προγράμματα γραφόταν σε γλώσσα μηχανής Η Assembly τότε βοήθησε τη ζωή των προγραμματιστών Για τη συγγραφή του κώδικα της πτυχιακής χρησιμοποιήθηκε η γλώσσα Assembly στο περιβάλλον του emu8086 v4.08 Μία τυπική εντολή σε Assembly είναι η ακόλουθη: MOV al, 84h MOV είναι η εντολή (move), δηλαδή μετακίνησε Η συγκεκριμένη εντολή γράφει τη δεκαεξαδική τιμή 84 στον καταχωρητή που έχει όνομα AL
Το πρόγραμμα Emu8086 Το πρόγραμμα emu8086 συνδυάζει έναν συντάκτη κώδικα (editor), assembler και έναν εξομοιωτή λογισμικού Έχει τη δυνατότητα να τρέξει στο δικό του περιβάλλον το πρόγραμμα που γράφεται, αλλά μπορεί να δημιουργήσει και εκτελέσιμα αρχεία (.com) που μπορούν να τρέξουν ανεξάρτητα σε περιβάλλον MS-DOS Ο emu8086 μπορεί να τρέξει το πρόγραμμα εντολή-εντολή, και να παρατηρεί ο προγραμματιστής τις αλλαγές που πραγματοποιεί η κάθε εντολή στα περιεχόμενα των καταχωρητών και της μνήμης http://www.emu8086.com/ ο διαδικτυακός τόπος του κατασκευαστή του emulator
Το πρόγραμμα Emu8086
Procedures, μακροεντολές και interrupts στον Emu8086 Για να χρησιμοποιηθεί το πληκτρολόγιο και η οθόνη για εισαγωγή και εμφάνιση δεδομένων στον emulator, χρησιμοποιείται η βιβλιοθήκη emu8086.inc Το αρχείο αυτό περιέχει μία σειρά από μακροεντολές και procedures που βοηθούν σημαντικά τη ζωή του προγραμματιστή Ο emulator υποστηρίζει μία σειρά από interrupts Το interrupt μπορεί να θεωρηθεί ως μία σειρά από λειτουργίες και καθιστά τον προγραμματισμό πολύ ευκολότερο Τα interrupt καλούνται με την εντολή INT και τον αριθμό του interrupt Τα περισσότερα interrupt παίρνουν παραμέτρους από τον καταχωρητή AH αλλά και από άλλους καταχωρητές
Τα interrupts στον Emu8086 Έπαιξαν σημαντικό ρόλο στην ανάπτυξη του κώδικα αυτής της πτυχιακής Παράδειγμα χρήσης interrupt: mov dx, offset message ; Μήνυμα προς εμφάνιση mov ah, 9 ; Αριθμός του interrupt (αποθηκεύεται στον AH) int 21h ; Κλήση της interrupt int 21h (h = δεκαεξαδικό) message: db “Hello world$” ; Τα string πρέπει να τελειώνουν με το ; χαρακτήρα $ Ο παραπάνω κώδικας εμφανίζει το μήνυμα “Hello world” στην οθόνη
ΚΕΦΑΛΑΙΟ 3 Ο προγραμματισμός του Percules Το πρόγραμμα που αναπτύχθηκε με ονομασία “Percules” αποτελεί ένα απλοποιημένο λειτουργικό σύστημα βασισμένο στο MS-DOS της Microsoft Είναι σε θέση να εκτελεί ένα υποσύνολο εντολών σαν λειτουργικό σύστημα παρόμοιων με αυτών του MS-DOS Πραγματοποιεί διαχείριση αρχείων και καταλόγων στα drives του Η/Υ όπου εκτελείται Το εκτελέσιμο αρχείο του προγράμματος (OS_VER62.com) εκτελείται πάνω στην πλατφόρμα του MS-DOS Προορίζεται για εκπαιδευτικούς κυρίως σκοπούς και γι’ αυτό το λόγο σχεδιάστηκε να είναι ιδιαίτερα φιλικό με το χρήστη παρ’ όλο που δεν παρέχει γραφικό περιβάλλον
Το λειτουργικό σύστημα Percules Χρησιμοποιεί πληθώρα από MS-DOS interrupts Χρήση command prompt παρόμοιο με αυτό του MS-DOS Τα ονόματα των εντολών είναι όσο το δυνατόν πιο περιγραφικά όσον αφορά τη λειτουργία τους και μοιάζουν με ονόματα εντολών του MS-DOS και άλλοτε του UNIX Για τη διευκόλυνση του χρήστη το σετ των διαθέσιμων εντολών εμφανίζεται πάντα μετά την εκτέλεση κάποιας εντολής και επιστροφή στο command prompt Ο χρήστης δεν απαιτείται να γνωρίζει εντολές με πολύπλοκες παραμέτρους Οι τυχόν παράμετροι που απαιτούνται από κάποιες εντολές ζητούνται από το χρήστη μετά την εισαγωγή της εντολής στο σύστημα
Το command prompt του Percules Η οθόνη υποδοχής και το command prompt του συστήματος Εκτέλεση της εντολής “ver” (δεξιά)
Σύγκριση του string που εισήχθη με όλο το σετ εντολών Η ροή του προγράμματος ΑΡΧΗ command prompt (Εισαγωγή εντολής) Σύγκριση του string που εισήχθη με όλο το σετ εντολών ΕΝΤΟΛΗ ΔΕΚΤΗ; ΝΑΙ ΟΧΙ Αποτελείται πράγματι η εντολή από Χ χαρακτήρες; ΟΧΙ Εμφάνιση μηνύματος (εντολή μη αποδεκτή) ΝΑΙ Εκτέλεση εντολής
Οι εντολές του Percules Εκτέλεση της εντολής “help” η οποία εμφανίζει στην οθόνη το σετ εντολών του συστήματος και επεξήγησή τους
Οι βασικότερες εντολές του Percules (dir, dir2) Παράδειγμα χρήσης της dir
Οι βασικότερες εντολές του Percules (write, type/read) Μπορεί να δημιουργήσει ένα νέο αρχείο κειμένου ή να γράψει σε κάποιο ήδη υπάρχον Εάν το αρχείο κειμένου προϋπάρχει τα περιεχόμενα του διαγράφονται Η εισαγωγή του κειμένου σταματά με τη λέξη “stop” Η εντολή “type” κάνει την ίδια ακριβώς δουλειά με την “read” Οι “read/type” εμφανίζουν στην οθόνη του χρήστη τα περιεχόμενα ενός αρχείου κειμένου Το αρχείο κειμένου προς εμφάνιση πρέπει να τελειώνει με ENTER
Οι βασικότερες εντολές του Percules (type/read) Παράδειγμα χρήσης της εντολής read – Εμφανίζει στην οθόνη τα περιεχόμενα του αρχείου ser.txt
Οι βασικότερες εντολές του Percules (copy, move) Στον προορισμό το αρχείο μπορεί να έχει διαφορετικό όνομα, ωστόσο τα περιεχόμενα του παραμένουν ίδια Η εντολή “move” μετακινεί ένα αρχείο από «πηγή σε προορισμό» Η υλοποίηση της “move” είναι ίδια με αυτήν της “copy” με τη διαφορά ότι η “move” έχει μία επιπλέον υπορουτίνα που αναλαμβάνει να διαγράψει το αρχικό αρχείο (αντιγραφή του αρχικού αρχείου στο αρχείο προορισμού και έπειτα διαγραφή του αρχικού)
Άλλες εντολές του Percules MKDIR: Δημιουργεί ένα νέο φάκελο (Make Directory) RMDIR: Διαγράφει ένα φάκελο (Remove Directory) CHDIR: Αλλάζει τον τρέχοντα φάκελο (Change Directory) BYE/EXIT: Τερματίζει το πρόγραμμα MEM: Εμφανίζει το μέγεθος της μνήμης (περιορίζεται στα 640 KB) CLS: Καθαρίζει την οθόνη (Clear Screen) VER: Εμφάνιση της τρέχουσας έκδοσης του Percules (Version 1.62) DATE/TIME: Εμφάνιση ώρας και ημερομηνίας STIME: Αλλάζει την ώρα (δε λειτουργεί στα σύγχρονα PC) COLOR: Αλλαγή χρώματος των χαρακτήρων και υποβάθρου (επίδειξη – μία από τρεις επιλογές)
Άλλες εντολές του Percules VIDEO: Αλλαγή μεγέθους του παραθύρου (video mode). Δεν υποστηρίζεται από το DOS στα σύγχρονα λειτουργικά Windows CURSOR: Αλλάζει τη μορφή του κέρσορα BIOS: Εμφανίζει τη λίστα συσκευών από το bios DRIVE: Εμφανίζει τον τρέχοντα οδηγό – Ο χρήστης μπορεί να αλλάξει τον τρέχοντα οδηγό πληκτρολογώντας το γράμμα του οδηγού και άνω κάτω τελεία (π.χ. d:) DEL: Διαγράφει ένα αρχείο (Delete) REN: Μετονομάζει ένα αρχείο (Rename) HELP: Εμφάνιση επεξήγησης για τις εντολές του Percules
Η εντολή BATCT (Bat Control) Δυνατότητα εκτέλεσης εντολών μέσα από αρχείο με δέσμες εντολών (Batch File) Τα batch files προστέθηκαν στα πρώτα λειτουργικά συστήματα για να διευκολύνουν το χρήστη να εκτελεί ορισμένες τακτικές εργασίες ακόμα και χωρίς την παρουσία του Στο Percules η εντολή “batct” δίνει τη δυνατότητα στο χρήστη να τρέξει ένα αρχείο δέσμης που έχει δημιουργήσει ο ίδιος Μερικές εντολές (π.χ. write) απαιτούν τη συνεχή παρουσία του χρήστη για την εκτέλεσή τους και γι’ αυτό δεν υλοποιήθηκαν για εκτέλεση μέσω batch file (αντίθετο με τη φιλοσοφία των batch files) Οι εντολές στα αρχεία δέσμης μπορούν να συνοδεύονται από παραμέτρους που χωρίζονται από το χαρακτήρα κενό (space)
Η εντολή BATCT (Bat Control) Δυνατότητα μίας εντολής να έχει μέχρι 2 παραμέτρους Το σύστημα είναι σε θέση να γνωρίζει ποιες εντολές επιδέχονται παραμέτρους Τα αρχεία δέσμης πρέπει να περιέχουν μία εντολή ανά γραμμή και να τελειώνουν με ENTER Οι εντολές που γίνονται δεκτές από τα batch files στο Percules έχουν τη μορφή: Εντολή ή Εντολή παράμετρος1 Εντολή παράμετρος1 παράμετρος2
Προτάσεις για μελλοντική επέκταση εφαρμογής Θα μπορούσε να αναπτυχθεί ένα πραγματικό εκπαιδευτικό πρόγραμμα, ένας simulator για DOS – UNIX, που θα απευθύνεται σε πρωτοετείς φοιτητές ή νεότερους μαθητές ώστε οι ίδιοι να μάθουν να χειρίζονται αποτελεσματικά τα προαναφερθέντα λειτουργικά Δικτυακή έκδοση του προγράμματος – Οι μαθητευόμενοι θα εκτελούν το πρόγραμμα στο δικό τους Η/Υ στο δίκτυο με βάση τις οδηγίες του επιβλέποντα Ο επιβλέπων να έχει τη δυνατότητα να παρατηρεί στην οθόνη του τη δραστηριότητα των μαθητών