System programming


Aim of the course

The lecture is aimed to present selected specific mechanisms of operating systems Unix, Linux and Windows and to teach programming at the kernel level of operating system and using advanced mechanisms and system tools.

Lecture programme

1.Characteristics of Unix, Linux and Windows and their architecture. 2. System structures in different operating systems. 3. Algorithms of planning processes and threads in various operating platforms 4. Threads. User-level threads, kernel threads and light processes. Service models of threads and their implementations in Solaris, Linux and Windows. Thread interfaces. Synchronization objects in Windows: critical sections, events, timers, semaphores, mutexes. Wait functions family. 5. System calls. Implementation of system calls in Linux. Adding a new system call in the Linux kernel. IDS based on system calls. Windows API. 6. Interprocess communication in Unix and Windows. 7. Libraries and executable programs in Unix and Windows. 8. Polular file systems. Construction and properties. 9. Handling devices in Linux and Windows. Adding a new device and new module to the Linux kernel. 10. Development trends in Unix and Windows.

Overview of the course elements

As part of the laboratory classes students perform exercises on the use of system mechanisms, often at the kernel level and perform a larger project to enable the practical use of acquired knowledge. Laboratory exercises are conducted based on the Linux operating system and relate to the use of synchronization mechanisms, the creation of kernel modules and dynamic loading, handling equipment, the implementation of the process of debugging of the kernel, handling interrupts, adding a system call to the kernel and synchronization methods for kernel procedures.

Reading list

1. Uresh Vahalia, „Ja˛dro systemu Unix. Nowe horyzonty”, WNT 2001
2. Robert Love, „Linux Kernel Development”, Novel Press, Second edition, 2005
3. Daniel P. Bovet, Marco Cesati, „Understanding the Linux Kernel”, Third edition, O’Reilly, 2006
4. Mark E. Russinovich, David A. Solomon, MicrosoftWindows Internals, MicrosoftWindows Server
2003, Windows XP, and Windows 2000, Microsoft, 2005
5. Jeffrey Richter, Programowanie aplikacji dla Microsoft Windows, Wydawnictwo RM, 2002

Copyright © 2010 Department of Computer Science   |   AGH University of Science and Technology   |   Created by Creative Bastards