-

Introduction to Operating Systems

  • Code: 5202
  • Semester: 2nd
  • Type: Scientific Field Course (SFC)
  • Category: Special Background Course (SBC)
  • Character: Compulsory (C)

Module Description

* Introduction to UNIX: Understanding the UNIX operating system, description of the philosophy and the way that the OS is functioning, files, users, user groups, processes, kernel.
* Applications-Shell-Kernel: Introduction to the use of the shell, using the command line, shell variables, environment variables, quotes in the shell, basic commands and file processing.
* File system: access the file system, paths, permissions, file management, links, basic types of UNIX file systems and other operating systems (fat, ntfs, ext, …), devices on UNIX.
* Shell and files: The use wildcards.
* Processes: process management, properties, signals, system / proc.
* Inter-process communication: Piping and redirection, using and programming filters.
* Regular expressions and their use through tools of UNIX (grep, sed)
* Programming the shell: command interpreter in UNIX, Checking command execution, command operands, looping,

The evaluation of the students is performed by
1. A final written examination on the theoretical part of the course with multiple choice questions and exercises throughout the course topics.
2. A final examination in the laboratory and the deliverable exercises with a factor of about 15% -20% for the laboratory part of the course.

Alternative Evaluation Methods

by undertaking projects and oral exams

Module Objectives

This course is an introduction to the discipline of Operating Systems and has as main objective the understanding of the general principles of operating systems through the use and programming in UNIX.
The aim of the course is the students to study and learn about an Operating System which from the beginning was created for developers and distinguish the philosophy which is hidden “”Behind”” the graphical interfaces.
In the course the students are asked to understand and consider how to use a shell and how it interacts with the operating system.
The purpose of the course is that students understand how functions a “”Operating System”” and how to utilize it.

During the course, students have the opportunity to experience the powerful weapons that has a programmer working on shell level and get to know the philosophy of “”do complex operations by combining simple autonomous commands that communicate with each other.””

Upon successful completion of the course the students should:

* Have understood the basic principles of the UNIX operating system and the way the Operating System functions related to files, users, user groups, processes, kernel.
* Have understood the relationship Applications-Shell-Kernel.
* Be able to use the basic shell commands, shell variables, environment variables
* Have understand the use of “”quotes””
* Be able to apply basic management commands and file processing.
* Have understood the filesystem’s operating philosophy.
* Be able to use wildcard characters.
* Have understood the meaning of the processes, their properties and signals (signals) and can handle them constructively.
* Have learned how processes communicate and should be able to synthesize complex commands by combining simple commands.
* Have understood the philosophy of the filters and should be able to create filters or combine constructively existing ones.
* Have understood the use of regular expressions and should be able to create regular expressions.
* Have understood how to handle shell scripts and all types of scripts.
* Have understood the capabilities of the shell with respect to the execution control, command operands and loop structures.

Bibliography

* Brian W. Kernighan, Rob Pike, The Unix Programming Environment.
* Augie Hansen, Introduction to UNIX
* William Stallings, Operating Systems: Internals and Design Principles
* Andrew S. Tanenbaum, Modern Operating Systems
* Abraham Silberschatz, Peter Baer Galvin and Greg Gagne, Operating System Concepts
* Paul Love, Joe Merlino, Craig Zimmerman, Jeremy C. Reed, and Paul Weinstein, “Beginning UNIX”, Wiley Publishing, Inc. 2005
* Neil Matthew, Richard Stones, “Beginning Linux®Programming”, Wiley Publishing, Inc. 2004

Recent Announcements

4 Oct 2019
Διδασκαλία μαθημάτων από Μεταδιδάκτορες (ΕΣΠΑ)
4 Oct 2019
ΤΡΟΠΟΠΟΙΗΤΙΚΕΣ δηλώσεις μαθημάτων στο πληροφοριακό σύστημα ΠΥΘΙΑ 2019-20Χ
4 Oct 2019
Δηλώσεις τμημάτων εργαστηρίων 2019-20Χ
3 Oct 2019
ΠΡΟΘΕΣΜΙΕΣ ΚΑΙ ΔΙΚΑΙΟΛΟΓΗΤΙΚΑ ΣΙΤΙΣΗΣ ΑΚΑΔ.ΕΤΟΥΣ 2019-2020
3 Oct 2019
Οργάνωση Πινάκων Ανακοινώσεων
2 Oct 2019
ΔΗΛΩΣΕΙΣ ΜΑΘΗΜΑΤΩΝ ΚΑΤΕΥΘΥΝΣΕΩΝ – ΠΡΩΗΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ
2 Oct 2019
Θέση υποψήφιου διδάκτορα σε ερευνητικό έργο
1 Oct 2019
Μετακίνηση το Χειμερινό 2019-2020 – Δήλωση μαθημάτων στο Pithia (επείγον)
3 Oct 2019
Τελετή Υποδοχής Πρωτοετών φοιτητών/τριών 2019-20
30 Sep 2019
Track on 5G for the Industrial Internet of Things @IEEE 5G World Forum
29 Aug 2019
Ημερίδα Πρακτικής Άσκησης
10 Jun 2019
Ημερίδα “Εθνική Στρατηγική Κυβερνοασφάλειας” στο Υπουργείο Ψηφιακής Πολιτικής
14 Apr 2019
6ο Technology Forum – 15 Απριλίου 2019 (τελικό πρόγραμμα)
19 Mar 2019
6ο Technology Forum – 15 Απριλίου 2019 (εισιτήρια με μειωμένο κόστος)
19 Mar 2019
OWASP Student Chapter Συνάντηση “Introduction to Digital Forensics”
17 Dec 2018
Ομιλία του καθηγητή Man Wai Mak (Hong Kοng Polytechnic University)

Δείτε επίσης