Dr. Janibul Bashir
In this course, we will understand the conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and persistence. In understanding the details, you will also learn the practical, including how an operating system does things like schedule the CPU, manage memory, and store files persistently.
ITT251
L1 (Mon, Thur, Fri)
Pre-Requisites: Knowledge of C Programming (Refer to HeadFirst C Book).
Reference Material for the course:
Video Lectures: Operating System by Prof. Sourav Bansal [Videos]
Announcements:
Classes started from 17 February 2025
(17-02-2025) -- [Lecture 1] Introduction to Computers.
(20-02-2025) -- [Lecture 2] Course Structure and OS Evolution.
(21-02-2025) -- [Lecture 3] Concept of CPU and Memory Virtualization.
(24-02-2025) -- [Lecture 4] Introduction to system calls, System calls for processor manipulation
(27-02-2025) -- [Lecture 5] System calls for file manipulation, File Descriptor Table
(28-02-2025) -- [Lecture 6] Interprocess communication (IPC): Using Files, Pipes()
(03-03-2025) -- [Lecture 7] IPC via Shared Memory, Signals and Signal Handlers
(06-03-2025) -- [Lecture 8] PC Architecture (x86), Registers, Physical Address Space Reference
(07-03-2025) -- [Lecture 9] Compilation Flow, Executable and Linkable Format (ELF)
(10-03-2025) -- [Lecture 10] Functional Call Implementation using Stacks
(17-03-2025) -- [Lecture 11] Physical Address Space, Introduction to Process
(20-03-2025) -- [Lecture 12] Implementation of System Call and Context Switch
(21-03-2025) -- [Lecture 13] Introduction to Memory Virtualization
(24-03-2024) -- [Lecture 14] Virtual memory implementation using Segmentation
(27-03-2024) -- [Lecture 15] Segment registers, GDT, IDT, Implementation of system call and Context Switch
(28-03-2024) -- [Lecture 16] Free Space Management, Segmentation Issues
(21-04-2025) -- [Lecture 17] Virtual Memory implementation using Paging, Page Tables
(22-04-2025) -- [Lecture 18] Paging Implementation in Real Systems
(24-04-2025) -- [Lecture 19] Paging Issues: Translation Lookaside Buffer
(25-04-2025) -- [Lecture 20] Paging Issues: MultiLevel Page Table, Inverted Page Tables
(28-04-2025) -- [Lecture 21] Beyond Physical Memory - Swap Space, Page Replacement Policies
(01-05-2025) -- [Lecture 22] Thrashing, Prepaging, Copy-on-write, Demand Paging, TLB reach
Assignment 1: [will be evaluated in a lab session]
Part 1: Install Ubuntu on your system.
Part 2: Learn to use an ARM cross compiler. Write in your own words about cross compilation.
Part 3: Install arm-linux-gnueabi cross compiler.
Part 4: Study and Install the QEMU tool on your system and run programs using that tool.
Assignment 2: [will be evaluated in a lab session]
Part 1: -- Explore the source code of Linux Kernel (or FreeBSD)
Build a kernel to create an ISO file > Install the OS on your system
Part 2: -- Run the xv6 system on top of QEMU and explore its source code. Understand the shell program of xv6.