Τα πρώτα υπολογιστικά συστήματα δεν είχαν [wiki base=”EL” title=”λειτουργικό σύστημα”]λειτουργικό σύστημα[/wiki]. Οι χρήστες είχαν άμεση προσπέλαση στη γλώσσα μηχανής και προγραμμάτιζαν τα πάντα κυριολεκτικά «με το χέρι».
Οι χρήστες των πρώτων Η/Υ ήταν μόνο έμπειροι προγραμματιστές οι οποίοι έδιναν εντολές χειριζόμενοι τους διακόπτες και τα σήματα ελέγχου.
Λειτουργικά συστήματα: (1950 – 1960) Η πρώτη γενιά λειτουργικών συστημάτων
ο χρήστης ήταν υπεύθυνος να επιλέγει τις εργασίες/εντολές που θα εκτελεστούν, τα προγράμματα που θα τρέξουν κλπ.
ο χρήστης έπρεπε να δουλεύει πάνω στην «κονσόλα» μεταβάλλοντας το περιεχόμενο καταχωρητών, εκτελώντας εντολές βήμα-βήμα, εξετάζοντας θέσεις μνήμης και γενικά, αλληλεπιδρώντας με τον Η/Υ στο χαμηλότερο δυνατό επίπεδο (σε [wiki base=”EL” title=”γλώσσα μηχανής”]γλώσσα μηχανής[/wiki] χρησιμοποιώντας κατευθείαν το δυαδικό σύστημα!).
ένα λάθος στις εντολές του χρήστη μπορούσε να καταστρέψει το λειτουργικό σύστημα ή να “κολλήσει” το σύστημα.
μόνο οι πολύ έμπειροι χρήστες που γνώριζαν καλά την γλώσσα μηχανής του Η/Υ μπορούσαν να χρησιμοποιήσουν τα πρώτα λειτουργικά συστήματα.
Λειτουργικά συστήματα: (1959 – 1965) δεύτερη γενιά λειτουργικών συστημάτων
Με την εξέλιξη του υλικού των Η/Υ π.χ. ανακάλυψη του λεγόμενου “κανάλι δεδομένων” (data channel) άρχισαν να γράφονται πιο “πολύπλοκα” (για την εποχή) λειτουργικά συστήματα.
software buffering: παράδειγμα “στοίβαγμα” (queuing) αποτελεσμάτων λόγω καθυστέρησης γραψίματος της εισόδου κλπ.