Operating System & Linux Programming — Free Notes & Tutorial
Free Operating System & Linux Programming course on SikshaSarovar (Siksha Sarovar) — 31 structured lessons with notes, examples and a built-in online compiler. 100% free, no sign-up required.
This Operating System & Linux Programming course is part of Siksha Sarovar and is 100% free for students in India — no sign-up required to read. It contains 31 structured lessons with examples, and pairs with our free online compiler and AI tutor.
Course content (31 lessons)
- Unit 1: Overview — Unit 1: Operating System Foundations & Linux Basics This unit lays the conceptual foundation of operating systems and introduces the Linux environment. We start from the very…
- Introduction to Operating Systems — What is an Operating System? An Operating System (OS) is system software that sits between user applications and the computer's hardware. It manages hardware resources (CPU,…
- Types of Operating Systems — A Family of Operating Systems Operating systems have evolved alongside hardware. Each generation solved a problem of the previous one. 1. Simple Batch Systems Jobs with similar…
- Linux Architecture & Directory Structure — Linux at a Glance Linux is a Unix-like, free, open-source kernel created by Linus Torvalds in 1991. Combined with GNU userland tools it forms a complete operating system. Layers…
- Help Commands: man, info, help, whatis, apropos — Why You Should Live in the Manual Linux ships with extensive built-in documentation. Mastering help commands turns the shell into a self-teaching environment. 1. man — The Manual…
- Navigation & File Commands — The Day-to-day Toolkit These commands are the verbs of the Linux shell. Mastering them is mastering productivity. Location & Navigation - pwd — print working directory. - cd path…
- vi Editor — Modes, Save, Run a Shell Script — Why vi? vi (and its modern variant vim ) is installed on essentially every Unix-like system. When you SSH into a stripped-down server with no GUI, vi is often your only editor. It…
- Unit 2: Overview — Unit 2: Processes, Scheduling and Synchronization This unit moves from the static OS picture to the dynamic life of programs. We explore the process abstraction, how the CPU is…
- Process Concept, States and PCB — What is a Process? A process is a program in execution . A program is a passive entity (a file on disk); a process is an active entity with a program counter, register state,…
- Operations on Processes — Creating Processes — The fork/exec Model In Unix, a process is created by an existing process calling fork() . The new process is an almost-exact copy of the parent. To run a…
- CPU Scheduling — Concepts & Criteria — When does the Scheduler Run? CPU scheduling decisions occur whenever a process: 1. Switches from running to waiting (I/O, wait() ). 2. Switches from running to ready (timer…
- Scheduling Algorithms with Worked Examples — The Algorithm Family Five classic algorithms cover the bulk of OS textbooks: FCFS, SJF, Priority, Round Robin, and Multilevel Queue. Sample Workload We will reuse this set…
- Process Synchronization & Critical Section — Why Synchronize? Concurrent processes that share data risk race conditions : the final value depends on the unpredictable interleaving of their instructions. Classic example — two…
- Semaphores — What is a Semaphore? A semaphore is an integer variable manipulated only through two atomic operations: wait(S): while (S <= 0); S = S - 1; signal(S): S = S + 1; Originally…
- Linux Process Commands: ps, top, pstree, nice, renice — Observing Processes Linux exposes processes through the /proc filesystem. The user-space tools below read /proc . ps — Process Snapshot ps prints a one-time list of processes.…
- System Calls: fork, exec, wait, exit — What is a System Call? A system call is the gateway from user mode into the kernel. It is implemented via a special CPU instruction ( syscall on x86-64) that transfers control to…
- Unit 3: Overview — Unit 3: Memory Management, Virtual Memory and Deadlocks This unit shows how the OS gives every process its own apparent address space when physical RAM is shared and finite, and…
- Memory Management Basics — Why Manage Memory? Programs reference data by addresses. Physical RAM is finite, shared, and slow compared to CPU. The OS must: 1. Keep track of which memory is in use and by…
- Contiguous Allocation, Paging & Segmentation — Contiguous Allocation Each process occupies a single contiguous region of RAM bounded by a base and limit register. Hardware checks every access for boundary violations. Pros:…
- Virtual Memory & Demand Paging — What is Virtual Memory? Virtual memory lets a process use more address space than the physical RAM available. Pages reside on disk and are brought in only when accessed — demand…
- Page Replacement Algorithms — The Replacement Decision On a page fault with no free frame, the OS must evict a page. Goal: choose the page least likely to be referenced soon to minimize future faults.…
- Allocation of Frames & Thrashing — How Many Frames per Process? Each process needs a minimum number of frames so its instruction can complete after a fault. The OS chooses among: - Equal allocation — same frames…
- Deadlocks — System Model & Characterization — What is Deadlock? A set of processes is deadlocked if every process in the set is waiting for an event that only another process in the set can cause. The cycle in the…
- Deadlock Prevention and Avoidance (Banker's Algorithm) — Prevention — Break a Coffman Condition 1. Mutual exclusion — sometimes unavoidable (printers). Spooling avoids it for some devices. 2. Hold and wait — require processes to request…
- Deadlock Detection and Recovery — Detection If we run with no prevention or avoidance, we must periodically check whether deadlock has actually formed. Single Instance per Resource Type Build a wait-for graph by…
- Unit 4: Overview — Unit 4: Information Management & Linux File Security This final unit lifts our gaze from CPU and memory to long-term storage. We examine how files are abstracted, organized,…
- File Concept and Operations — What is a File? A file is a named collection of related information stored on secondary storage. From the user's view it is a logical, contiguous sequence of bytes; from the OS's…
- Access Methods, Directory & Disk Structure — File Access Methods Files are stored as bytes; access methods are the patterns programs use to read them. 1. Sequential Access Read or write bytes in order. Operations: read next…
- Linux Permission Types & Examining Permissions — The Owner / Group / Other Model Every Linux file has: - An owner (user ID) — usually who created it. - A group — the file's group ID. - A set of permission bits for owner, group,…
- Changing Permissions — Symbolic Method — Why Two Methods? chmod accepts both symbolic mode (letters, easy to read) and numeric (octal) mode (compact, scriptable). This lesson covers symbolic; the next covers numeric.…
- Changing Permissions — Numeric Method — The Octal Encoding Each rwx triplet is encoded as a single octal digit: - r = 4 - w = 2 - x = 1 Sum the bits to obtain a digit 0–7. A full mode is three digits for owner, group…
Unit 1: Overview
Unit 1: Operating System Foundations & Linux Basics
This unit lays the conceptual foundation of operating systems and introduces the Linux environment. We start from the very definition of an operating system, walk through its evolution from batch systems to modern real-time systems, then dive into Linux architecture, the directory tree, essential commands, and the vi editor.
Why this Unit Matters
- An OS is the bridge between bare hardware and the user. Without it, every program would have to talk to the disk controller, the keyboard, and the CPU directly.
- Linux is today the dominant server, embedded, and cloud OS. Knowing the shell and vi is non-negotiable for systems work.
- Concepts learned here (kernel, system call, file abstraction) are reused in every subsequent unit.
Learning Outcomes
By the end of Unit 1 you will be able to:
- Define an operating system and list its principal functions.
- Distinguish among batch, multiprogrammed, time-sharing, parallel, distributed and real-time systems.
- Sketch the layered architecture of Linux and navigate its standard directory hierarchy.
- Use core Linux commands to discover help, navigate files, and inspect the system.
- Write, save and execute a small shell script using vi.
Frequently asked questions
Is the Operating System & Linux Programming course really free?
Yes. The entire Operating System & Linux Programming course on Siksha Sarovar is free to read with no account required. You can optionally sign in with Google to save your progress.
Do I get a certificate for Operating System & Linux Programming?
Yes — finish the lessons and pass the quiz to earn a free, verifiable certificate you can share on LinkedIn or with recruiters.
Can I run code while learning?
Yes. The built-in online compiler runs C, C++, Python, Java, PHP, JavaScript, C# and SQL directly in your browser — no installation needed.