Operating Systems 2

by Arkadiusz Chrobot published 2019/02/25 22:44:00 GMT+2, last modified 2020-06-08T16:15:51+02:00
Learning materials for the Operating Systems 2 course.

Be warned, that published here lecture notes were not reviewed and despite my best efforts may contain errors!

Lectures

Grading Rules

  1. Introduction
  2. Process Management
  3. Processes Scheduling (O(1) Scheduler)
  4. Processes Scheduling (CFS Scheduler)
  5. System Calls
  6. Interrupts Handling
  7. Bottom Halves
  8. Synchronization in Linux Kernel
  9. Time Management and Timers
  10. Memory Management in Linux
  11. Virtual File System
  12. Character and Block Devices
  13. The Block I/O Layer
  14. Process Address Space
  15. Networking

During the break caused by the COVID-2019 epidemic outbreak the learning materials (slides) for the next lectures will be publish here on every Monday. Please read them, learn the concepts described in them and in case of questions contact me via e-mail (details in Kontakt/Contact).

Literature and other resources

Primary Literature:

  1. Robert Love, "Linux Kernel Development", Third Edition, Addison-Wesley, Upper Saddle River, NJ,  2010
  2. Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, "Linux Device Drivers"
  3. Wolfgang Mauerer, "Professional Linux Kernel Architecture", Wiley Publishing, Inc., Indianapolis, 2008
  4. Sreekrishnan Venkateswaran, "Essential Linux Device Drivers", Prentice Hall, Upper Saddle River, 2008
  5. Daniel P. Bovet, Marco Cesati, "Understanding the Linux Kernel, 3rd Edition", O'Reilly Media, Sebastopol 2005

Additional Literature:

  1. Mel Gorman, "Understanding the Linux Virtual Memory Manager"
  2. Maurice J.Bach, "The Design of the Unix Operating System”, Prentice Hall 1986

Internet Resources:

  1. Linux Weekly News
  2. Linux Kernel Newbies
  3. Linux Cross Reference
  4. Embedded Linux and Kernel Engineering
  5. Build own USB device on linux-based board! [en] - Krzysztof Opasiak
  6. Linux Kernel Documentation