Introduction to Operating Systems and Networks
The course consists of two parts dealing with operating systems and networks. The goal of the course is to offer an overview of these topics. The course is designed for 21 two-hour classes, including at least 4 laboratory assignments. A written test may be planned after the first part of the course (operating systems) and another one at the end.
The course and the slides are in French.
The materials of this course are distributed under the Creative Commons Attribution Alone licence.
CM 1. Operating systems, networks, virtualisation
This part introduces basic ideas used in the domains discussed in the course. The slides are available here.
CM 2. Linux: directory structure and command line
This part lists the directories from Filesystem Hierarchy Standard and explains them. Some basic file management commands are then given and explained. The slides are available here.
TP 1. Lab assignment 1: the command line
The goal of this assignment is to introduce students to the Linux command line and also to the usual ways of finding information about available commands and applications. The text of the assignment is here.
CM 3. Rights, links, transformations, search
This part deals with three subjects which are very important in
managing a UNIX-type system: file access rights, symlinks and
hardlinks, and transformations. We will a “transformation” a command
that works well in command chains built using pipes. This part of
the course lists a couple useful transformations (e.g., head
,
cut
, xargs
) and finishes by explaining two very often used
search commands: grep
and find
. The slides are available here.
Directory permissions work a bit differently from permissions for regular files. This section does not cover this difference, but interested students are invited to take a look at this article.
TP 2. Lab assignment 2: the command line 2
This assignment suggests a number of advanced use cases of the command line and has the goal to help students consolidate the practical skills in redirection of streams, pipes, and usage of transformations. The text of the assignment can be found here.
CM 4. Shell scripts
This section provides a quick overview of the shell scripting language as a full-fledged programming language. Some basic elements such as variables, arrays, control structures, and functions are covered. Several situations are covered in which the code is evaluated in unintuitive ways. The slides are here.
TP 3. Lab assignment 3: shell scripts
This assignment considers several typical server administration
tasks, like system monitoring, backup, or local messaging, and
proposes to automate them. The students are also invited to
reimplement a number of basic tools, including a simplified version
of xargs
. The text of the assignment can be found here.
CM 5. The OSI model
This section discusses the OSI model: the detailed formal specification of the organisation of the network stack. An overview of every layer is provided; the network and the transported layers are presented in some more detail. A short list of well-known network protocols concludes the presentation. The slides are available here.
CM 6. Network commands
This section briefly introduces some basic concepts behind the
Domain Name System, and particularly the hierarchy of domain names
and DNS servers. Several useful network commands are then listed,
including ifconfig
and netcat
. The slides are available here.
TP 4. Lab assignment 4: network commands
This lab assignment proposes a couple scenarios in which the network
commands shown in the preceding section of the course are
applied. This assignment focusses in particular upon scp
, wget
,
and nc
. The text of the assignment can be found here.
Course project: a basic network chat
This course project proposes to apply the skills acquired in basic system administration and networking to implement a primitive text chatting system. The text of the assignment can be downloaded here.