Operating Systems


Teaching Assistant: Moshe Sulamy

The Operating Systems course teaches the main concepts and ideas behind modern operating systems and
operating system design and implementation, accompanied by examples from the Linux operating system.

- Basic structure of an operating system
- System calls and how they work behind the scenes
- Redundant Array of Independent Disks
- File systems, usage of VFS and specific implementations: NTFS, AFS, ext, etc.
- Modes of operation
- Processes, threads, and scheduling models and algorithms
- Mutual exclusion and basics of multicore programming
- Paging and virtual memory, its structure and usage by processes and the operating system
- Network in the OS, sockets and basic network programming
- Drivers and kernel modules, their concepts, usage, and implementation
- Introduction to security and permissions in the OS

Course Requirements:
- Final exam
- 5 Homework exercises
- Final grade: 75% exam, 25% homework

Requisite Courses:
- Software Project (or equivalent knowledge in Linux and C)

Course Essentials

VirtualBox (alternative download site)
Lubuntu (for VM)
Linux Documentation

Useful Links

Useful Linux Commands and Utilities
Beej's Guide to Network Programming
Linux Device Drivers, 3rd Edition