Skip to content

polizois/operating_systems_shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Σιώης Πολυζώης 8535

***************************** Decompress **************************************
Για να αποσυμπιέσουμε το αρχείο 8535.tar.gz τρέχουμε την εντολή:
                      "tar -zxvf 8535.tar.gz"
Και παίρνουμε έναν φάκελο με όνομα "8535"
*******************************************************************************

******************************* Compile ***************************************

Εντός του φσκέλου 8535, για να κάνουμε compile το "src/myshell.c" τρέχουμε την
εντολή "make".
Από το compile προκπύτει το εκτελέσιμο με διαδρομή "bin/myshell"
*******************************************************************************

****************************** Modes ******************************************

Το shell μπορεί να τρέξει σε 2 modes:
  - Ineractive mode
  - Batch mode
*******************************************************************************

***************************** Batch mode **************************************

Για batch mode τρέχουμε "bin/myshell batchFile", όπου batchFile το όνομα
ενός αρχείου κειμένου που περιέχει εντόλες για εκτέλεση. (στο παραδωτέο
δοκιμάστε αντί για batchFile -> test.sh)
*******************************************************************************


*************************** Interactive mode **********************************

Για interactive mode τρέχουμε "bin/myshell" και εμφανίζονται επαναληπτικά prompt
όπου μπορούμε να εισάγουμε εντολές για εκτέλεση.
*******************************************************************************

****************************** Δυνατότητες ************************************

Τόσο στο batch, όσο και στο interactive mode υποστηρίζεται η εισαγωγή πολλαπλών
εντολών διαχωρισμένων με ; η &&.
*******************************************************************************

****************************** Διαχωρηστικά ***********************************

; -  Επιτρεπει την εκτέλεση της εντολής που το ακολουθεί ανεξάρτητα απο την
     επιτυχή η μη ολοκλήρωση αυτής που προηγονταν.
&& - Δεν επιτρέπει την εκτέλεση της εντολής που το ακολουθεί , αν αυτή που
     προηγονταν έχει αποτύχει.
*******************************************************************************

***************************** Περιορισμοί *************************************

Η εισαγωγή περισσότερων απο 512 χαρακτήρων αν γραμμή(είτε στο prompt, είτε στο
batchFile) οδηγεί σε σφάλμα.
*******************************************************************************

****************************** Περιγραφή **************************************

H επιλογή του mode γίνεται απο τον αριθμο των ορισμάτων που δίνονται κατα την
κλήση του shell.

Το shell δέχεται επαναληπτικά μια γραμμή κειμένου είτε απο το promp(σε
Interactive mode) ειτε απο κάποιο αρχείο κειμένου(σε batch mode).

Ξεχωρίζει τις εντολες με βαση τα διαχωριστικα και έπειτα σπάει τις εντολές αυτές
σε ορίσματα.

Για κάθε εντολή (άν η λογική των διαχωριστικών το επιτρέπει) σηκώνεται θηγατρικό
process το οποίο την εκτελεί.Άν η εκτέλση της εντολής είναι επιτυχής,
τυπώνεται το αποτέλεσμά της, αλλιώς τυπώνεται μύνημα σφάλματος.

Το κυρίως περιμένει την επιστροφή του θηγατρικού για να συνεχίσει την εκτέλεση του.

Η εξοδος απο το shell γίνεται με την εντολή quit (ή αν η ανάγνωση φτάσει στο
τέλος του αρχείου στην batch mode).
*******************************************************************************

***************************** Τεκμηρίωση **************************************

Για πιο αναλυτική τεκμιρίωση του κώδικα, μπορείτε να διαβάσετε τον σχολιασμό
στον ίδιο τον κώδικα (src/myshell.c).

*******************************************************************************

About

Basic implemantation of a linux shell in c

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published