2.1 Λογισμικό Συστήματος και Λογισμικό Εφαρμογών
Μπορούμε να χωρίσουμε το Λογισμικό στις παρακάτω μεγάλες κατηγορίες:
- το Λογισμικό Συστήματος (System Software),
- το Λογισμικό Εφαρμογών (Application Software
Λογισμικό Συστήματος (System Software)
Τo Λογισμικό Συστήματος διαχειρίζεται το υλικό του υπολογιστή, παρέχει στοιχειώδη λειτουργικότητα προς τον χρήστη και αποτελεί τη βάση πάνω στην οποία αναπτύσσεται και εκτελείται το Λογισμικό Εφαρμογών. Περιλαμβάνει:
- το Λειτουργικό Σύστημα (Operating System - OS),
- οδηγούς συσκευών (drivers),
- διαγνωστικά εργαλεία,
- το παραθυρικό σύστημα,
- βοηθητικά προγράμματα, και άλλα.
Λειτουργικό Σύστημα (Operating System)
Το Λειτουργικό Σύστημα ή ΛΣ (Operating System ή OS) αποτελεί το λογισμικό του υπολογιστή που είναι υπεύθυνο για τη διαχείριση και τον συντονισμό των εργασιών, καθώς και την κατανομή των διαθέσιμων πόρων, όπως είναι π.χ. η μνήμη και ο χρόνος εκτέλεσης στην ΚΜΕ. Παράλληλα, λειτουργεί ως ένα ενδιάμεσο επίπεδο λογικής διασύνδεσης μεταξύ λογισμικού και υλικού του υπολογιστή. Με αυτόν τον τρόπο προφυλάσσει τον προγραμματιστή από τον άμεσο και επίπονο χειρισμό των πόρων του υπολογιστή, καθιστώντας έτσι ευκολότερη την ανάπτυξη Λογισμικού Εφαρμογών. Το πιο σημαντικό μέρος του ΛΣ, που εκτελεί όλες τις παραπάνω λειτουργίες, ονομάζεται πυρήνας (kernel).
Ο φλοιός (shell) είναι μια εξειδικευμένη εφαρμογή που επιτρέπει την πρόσβαση του χρήστη στις υπηρεσίες του ΛΣ. Αποτελεί δηλαδή τη διεπαφή μεταξύ χρήστη και ΛΣ. Ο φλοιός μπορεί να είναι ένα Περιβάλλον Εντολών Γραμμής (Command Line Interface) ή ένα Γραφικό Περιβάλλον Επικοινωνίας (Graphical User Interface - GUI), όπως ο «παραθυρικός» φλοιός των Microsoft Windows.
Όλα τα υπολογιστικά συστήματα (υπερυπολογιστές, προσωπικοί υπολογιστές, έξυπνα κινητά, ακόμη και παιχνιδομηχανές) χρειάζονται για τη λειτουργία τους κάποιο τύπο λειτουργικού συστήματος. Μπορούμε να κατηγοριοποιήσουμε τα ΛΣ σε:
- Πραγματικού-χρόνου (Real-time), που παρέχουν γρήγορη και προβλέψιμη απόκριση σε συγκεκριμένα γεγονότα.
- Πολλών-χρηστών (Multi-user), τα οποία εξασφαλίζουν ταυτόχρονη πρόσβαση σε πολλούς χρήστες στον ίδιο υπολογιστή.