Course detail

Operating Sytems and Networks

FEKT-LOSSAcad. year: 2010/2011

Base functions of operating system (OS), clasical model of OS, demands on OS, model of UNIX, philosopfy of UNIX, job control, interprocess communication and synchronisation, shells, shell programming, proceses and threads, interthread synchronisation, network protocols (Ethernet, TCP/IP, DNS, DHCP, ICMP, SNMP, LDAP, SMTP, POP3, IMAP4, SSL, SSH), utilisation of unix sockets for network communication.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Advanced knowledge of OS UNIX utilization, configuration of base UNIX deamons, UNIX application programming, driver and network application programming. Knowledge of main network protocols.

Prerequisites

Knowledge of C language programming.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Work of students is evaluated during study by tests in exercises. They can obtain maximum 70 points by these tests during semester. Final examination is evaluated by 70 points at maximum.

Course curriculum

1.Clasical OS model, functions of layers, demands on OS, UNIX model, core, system calls, library functions. UNIX history, UNIX pedigree, standards, shells: regular expressions, standard I/O, I/O redirection, pipes.
2.Shell: variables, special shell variables, operators && a ||, conditional statements, expr, test, case statement, cycles, functions, interactive scripts (read and switch statements).
3.File systems, types of file systems, inode, directory, hard and soft links. Access rights. File and directory management functions.
4.Processes - process context, process states, process enviroment, enviroment variables, process creating (function fork, exec), finishing of process (function exit, wait, wait3), init process.
5.File sherring among processes. Input and output redirection. Interprosses communication and synchronisation: pipes, FIFO, shared memory.
6.Threads, threads synchronisation ( mutex, semaphor, conditional variable)
7.Block and characker devices, device drivers, speciální soubory, programming of Linux device drivers.
8.Ethernet, IEEE 802.11 (WiFi), TCP/IP, packet routing.
9.ICMP, DHCP, DNS, SNMP.
10.SMTP, POP3, IMAP4, LDAP. Secure communication by SSL, SSH.
11.Sockets. Network communication by sockets. Client applications. Server applications.
12.Deamos (cron, at, xinetd, ...), time synchronisation, UNIX system starting, initialisation files.
13.Real-time operating systems - base principles specification. examples of RTOS (Windows CE and RT-Linux).

Work placements

Not applicable.

Aims

Students will experience with base principles and types of operating systems, principles and philosopfy OS UNIX, shell utilisation and programming, base UNIX deamos and their configuration, UNIX application, driver and network programming with threads utilisation.

Specification of controlled education, way of implementation and compensation for absences

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Perlík, L. Jemný úvod do systému UNIX. Dotisk prvního vydání. České Budějovice: Koop, 2000. 189 s. ISBN 80-85828-28-6. (CS)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EEKR-ML Master's

    branch ML-KAM , 2. year of study, winter semester, optional specialized

  • Programme EEKR-CZV lifelong learning

    branch ET-CZV , 1. year of study, winter semester, optional specialized

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Syllabus

1.Clasical OS model, functions of layers, demands on OS, UNIX model, core, system calls, library functions. UNIX history, UNIX pedigree, standards, shells: regular expressions, standard I/O, I/O redirection, pipes.
2.Shell: variables, special shell variables, operators && a ||, conditional statements, expr, test, case statement, cycles, functions, interactive scripts (read and switch statements).
3.File systems, types of file systems, inode, directory, hard and soft links. Access rights. File and directory management functions.
4.Processes - process context, process states, process enviroment, enviroment variables, process creating (function fork, exec), finishing of process (function exit, wait, wait3), init process.
5.File sherring among processes. Input and output redirection. Interprosses communication and synchronisation: pipes, FIFO, shared memory.
6.Threads, threads synchronisation ( mutex, semaphor, conditional variable)
7.Block and characker devices, device drivers, speciální soubory, programming of Linux device drivers.
8.Ethernet, IEEE 802.11 (WiFi), TCP/IP, packet routing.
9.ICMP, DHCP, DNS, SNMP.
10.SMTP, POP3, IMAP4, LDAP. Secure communication by SSL, SSH.
11.Sockets. Network communication by sockets. Client applications. Server applications.
12.Deamos (cron, at, xinetd, ...), time synchronisation, UNIX system starting, initialisation files.
13.Real-time operating systems - base principles specification. examples of RTOS (Windows CE and RT-Linux).

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer

Syllabus

1. Manual pages (man, info). Base UNIX command utilisation cat, less, more, head, tail, cut, sort, mail, chmod, chown, chgrp, du, df, tar, bzip. Imput and output redirections.
2.Regular expressios, grep, find, sed, awk. Pipes
3.Interactive shell programs.
4.Programs gcc, gdb, gmake. File and directory service utilisation. Temporary files creation.
5.Process enviroment. Process creations, getting base informatios about process. Process finishing (functions wait, wait3, wait4, exit, abort).
6.Input and output redirection (functions dup, dup2), pipe (function pipe, popen, pclose).
7.Fifo, signals, shered memory.
8.Threads-creation, joining, thread cancelating, thread specific date.
9.Thread synchronisation bz mutex and semaphors.
10.Thread synchronisation by conditional variable.
11.Programming of client application with socket utilisation.
12.Programming of server application with socket utilisation.
12.Programming of server application with socket utilisation - finishing.
13.Final test.