« News for RICHELLI GIORGIO

The course is mainly focused on system programming for Unix/Linux systems.

 

The objective is to make students able to understand, write and modify, programs interfacing with the Linux operating system and its kernel source code.

 

More precisely, we expect the students to acquire knowledge of:

  1. the C language and the tools normally used in the development environment (compiler, preprocessor, debugger, make, shell, etc.)
  2. the fundamental functions of the operating system and its main modules (Scheduler, Virtual Memory Manager, Filesystem..).
  3. the main system primitives for the creation and synchronization of processes, exchange of messages and information (this is the core of the course)
  4. primitives for network programming (sockets)

and then be able to:

  1. use the primitives provided by the operating system and integrate them correctly into the code.
  2. choose the most suitable OS component and functions, based on the needs of the applications and their execution mode.
  3. determine the complexity and how to implement a system application.
  4. describe the interaction of an application with the operating system and explain the reasons behind the choices.
  5. continue learning by examining, in detail, the architecture and programming interface of the operating system.