Design of Unix Operating System — Free Notes & Tutorial
Free Unix/Linux notes for BCA — commands, shell scripting, file system management and process control at SikshaSarovar.
This Design of Unix Operating System course is part of Siksha Sarovar and is 100% free for students in India — no sign-up required to read. It contains 32 structured lessons with examples, and pairs with our free online compiler and AI tutor.
What you will learn
- Unix commands
- Shell scripting
- File management
- Permissions
Course content (32 lessons)
- Unit 1: Overview — Unit 1: Introduction to UNIX Operating System This unit covers the fundamentals of the UNIX operating system — its history, core features, kernel architecture, comparison with…
- Evolution of UNIX — Introduction UNIX is one of the most influential operating systems in the history of computing. It was developed in the late 1960s and early 1970s and has since become the…
- Basic Features of UNIX — Introduction UNIX was designed with several powerful features that made it stand out from other operating systems of its time. These features remain the hallmark of modern…
- Architecture of UNIX Kernel — Introduction The UNIX Kernel is the core of the UNIX operating system. It acts as an intermediary between the user (via the shell) and the hardware. Understanding its architecture…
- UNIX vs LINUX — Introduction UNIX and Linux are closely related but fundamentally different operating systems. Linux was inspired by UNIX and follows its design principles, but it is not derived…
- Introduction to Shell Programming — Introduction A Shell is a command-line interpreter that provides an interface between the user and the UNIX kernel. It reads commands typed by the user, interprets them, and…
- System Administrator Privileges — Introduction A System Administrator (sysadmin) is responsible for maintaining, configuring, and ensuring the reliable operation of a UNIX system. The system administrator has…
- Unit 2: Overview — Unit 2: Internal Representation of Files This unit dives deep into how the UNIX file system is organized internally. We explore the parent-child relationship of files, different…
- Parent-Child Relationship of Files — Introduction In UNIX, the file system is organized as an inverted tree structure (also called a hierarchical structure). Every file and directory has a parent, and directories can…
- Types of Files — Introduction In UNIX, the philosophy is "everything is a file" . This means that not only regular data files, but also directories, devices, and communication channels are all…
- File System Layout — Introduction The UNIX file system layout defines how data is physically organized on a disk (or disk partition). Understanding the layout is crucial for comprehending how the…
- Data Structures of the File System — Introduction The UNIX kernel uses several important data structures to manage the file system efficiently. These data structures exist both on disk (persistent) and in memory (for…
- Internal Representation: Inodes — Introduction The inode (index node) is the most critical data structure in the UNIX file system. Every file in UNIX is internally represented by an inode. The inode contains all…
- Accessing and Releasing Inodes — Introduction The UNIX kernel manages inodes through a system of accessing (allocating) and releasing (freeing) them. When a process needs a file, the kernel must retrieve the…
- Structure of Regular Files & Directories — Introduction Understanding how regular files and directories are structured internally is essential for comprehending UNIX file system operations. Both are represented by inodes,…
- Superblocks — Introduction The super block is the most important administrative data structure in a UNIX file system. It contains essential metadata that describes the entire file system. If…
- Inode & Disk Block Assignment — Introduction When a new file is created in UNIX, the kernel must assign a free inode and allocate free data blocks to store the file's content. These assignment algorithms are…
- Unit 3: Overview — Unit 3: Process Management & Scheduling This unit explores how the UNIX kernel manages processes — from creation to termination. We study the concept of a process, its states, the…
- Concept of a Process — Introduction A process is the fundamental unit of execution in UNIX. While a program is a static set of instructions stored on disk, a process is a program in execution — it has…
- Process State Transitions — Introduction A UNIX process does not run continuously. It goes through several states during its lifetime. The kernel manages these transitions based on events like I/O…
- Process Data Structures — Introduction The UNIX kernel uses several data structures to manage processes. These structures store everything the kernel needs to know about each process — its state, memory,…
- Context of a Process — Introduction The context of a process is the complete set of information the kernel needs to describe the process and resume its execution after it has been suspended. When the…
- Layout of System Memory — Introduction Understanding how system memory is organized in UNIX is essential for understanding process management. UNIX divides memory into kernel space and user space , and…
- Process Scheduler — Introduction The process scheduler is the kernel component that decides which process gets the CPU and for how long . Since UNIX is a multi-tasking system with many runnable…
- Round Robin & Multi-level Feedback — Introduction UNIX's scheduling algorithm combines elements of Round Robin and Multiple Feedback Queue scheduling to achieve fair CPU sharing among interactive and compute-bound…
- Fair Share Scheduler — Introduction The Fair Share Scheduler (FSS) is an extension of the standard UNIX scheduler that allocates CPU time not just to individual processes, but to groups of users (called…
- Unit 4: Overview — Unit 4: Memory Management — Swapping & Demand Paging This unit covers the two major memory management strategies used by the UNIX kernel: Swapping and Demand Paging . Swapping…
- Swapping: Data Structures — Introduction Swapping is a memory management technique where the kernel moves entire processes between main memory and a secondary storage device (swap device/swap space). When…
- Swapping In & Swapping Out — Introduction The swapper (process 0, also called sched ) is a kernel process responsible for moving processes between main memory and the swap device. It runs in an infinite loop,…
- Demand Paging: Data Structures — Introduction Demand Paging is a more efficient memory management technique than swapping. Instead of moving entire processes, demand paging moves individual pages (fixed-size…
- Page Stealer Process — Introduction The page stealer (also called pageout daemon or pagedaemon , often process 2) is a kernel process that runs periodically to ensure there are enough free memory pages…
- Page Fault Handler — Introduction A page fault occurs when a process tries to access a page that is not currently in physical memory (validity fault) or tries an illegal access (protection fault). The…
Unit 1: Overview
Unit 1: Introduction to UNIX Operating System
This unit covers the fundamentals of the UNIX operating system — its history, core features, kernel architecture, comparison with Linux, shell programming basics, and system administrator privileges.
Key Topics:
- Evolution of UNIX — From Bell Labs to modern variants.
- Basic Features of UNIX — Multi-user, multi-tasking, portability, and more.
- Architecture of UNIX Kernel — File Subsystem and Process Control Subsystem.
- UNIX vs LINUX — Key similarities and differences.
- Introduction to Shell Programming — Scripting basics.
- System Administrator Privileges — Superuser and admin tasks.
Visual Overview
Above is the visual overview of Unit 1. Please refer to this for a structural understanding before proceeding to the detailed modules.
Evolution of UNIX
Introduction
UNIX is one of the most influential operating systems in the history of computing. It was developed in the late 1960s and early 1970s and has since become the foundation for many modern operating systems, including Linux and macOS.
Timeline of UNIX Evolution
1969 – Birth of UNIX:
- Developed at AT&T Bell Laboratories by Ken Thompson and Dennis Ritchie.
- Originally written in Assembly Language for the PDP-7 minicomputer.
- It was initially a single-user, single-tasking system called UNICS (Uniplexed Information and Computing Service), later shortened to UNIX.
1971 – First Edition:
- UNIX was ported to the PDP-11 machine.
- It included a text formatting program and was used internally by AT&T for text processing.
1973 – Rewritten in C:
- Dennis Ritchie rewrote the UNIX kernel in the C programming language.
- This was a groundbreaking decision — it made UNIX portable across different hardware platforms.
- Before this, operating systems were typically written in assembly and tied to specific hardware.
1975 – Version 6 (V6):
- First version widely available outside Bell Labs.
- Distributed to universities, sparking widespread academic research and development.
1978 – BSD UNIX:
- The University of California, Berkeley developed its own variant called BSD (Berkeley Software Distribution).
- BSD introduced key features like the vi editor, C shell (csh), and TCP/IP networking.
1983 – System V:
- AT&T released System V (SysV), the first commercial UNIX.
- This became the standard for many commercial UNIX implementations.
1991 – Linux:
- Linus Torvalds created Linux, a free, open-source UNIX-like kernel.
- While not technically UNIX, it follows UNIX principles and is POSIX-compliant.
Modern Era:
- UNIX variants today include Solaris (Oracle), AIX (IBM), HP-UX (HP), and macOS (Apple, based on BSD).
- The UNIX philosophy continues to influence modern system design.
Key Contributors
| Person | Contribution |
|---|---|
| Ken Thompson | Created the first UNIX system |
| Dennis Ritchie | Co-developed UNIX, created the C language |
| Brian Kernighan | Named UNIX, co-authored "The C Programming Language" |
| Bill Joy | Developed BSD, created vi editor |
| Linus Torvalds | Created Linux, a UNIX-like OS |
The UNIX Philosophy
The UNIX philosophy is a set of design principles that guide how programs should be written:
- Do one thing and do it well — Each program should have a single, focused purpose.
- Write programs to work together — Programs should communicate via text streams.
- Everything is a file — Devices, processes, and sockets are treated as files.
- Use plain text for data — Simplifies interoperability.
Summary
- UNIX originated at Bell Labs in 1969 by Ken Thompson and Dennis Ritchie.
- Rewriting in C (1973) made it portable and revolutionary.
- BSD and System V became the two major UNIX branches.
- Linux (1991) carried the UNIX philosophy into the open-source world.
Frequently asked questions
Is the Design of Unix Operating System course really free?
Yes. The entire Design of Unix Operating System 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 Design of Unix Operating System?
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.