Ο στόχος αυτού του μαθήματος είναι να εξετάσει σε βάθος το περιβάλλον Unix ως περιβάλλον ανάπτυξης. Θα εξετάσουμε την προγραμματιστική διεπαφή (API) του Linux για τις γλώσσες C/C++ καθώς επίσης και το κέλυφος (shell) του Linux. Θα καλύψουμε θέματα όπως: βοηθητικά προγράμματα του Unix, προγραμματισμός σε κέλυφος (shell programming), γλώσσες σεναρίων (script languages), προγραμματισμός λειτουργιών συστήματος σε C/C++ για χειρισμό λαθών, δημιουργία και τερματισμό διεργασιών, αποστολή/παραλαβή σημάτων, είσοδο/έξοδο χαμηλού επιπέδου, επικοινωνία μεταξύ τοπικών διεργασιών, δημιουργία, τερματισμό και συγχρονισμό νημάτων, διαχείριση συστήματος αρχείων, καθώς επίσης και μηχανισμοί απομακρυσμένης επικοινωνίας. Από τη φύση του, το μάθημα αυτό χρειάζεται αυτενέργεια και συνεχή προσωπική προσπάθεια.
Βασικό σύγγραμμα: Peter S. Pacheco. M.J. Rochkind, Advanced Unix Programming, Prentice-Hall Software Series, Englewood Cliffs, NJ, 2004.
Επικουρικό σύγγραμμα: Kay Robbins, Steven Robbins, "Unix Systems Programming: Communication, Concurrency, and Threads", Prentice Hall PTR, 2003.