Awesome Operating System is an open-source, beginner-friendly notebook designed to help learners understand the fundamental concepts of Operating Systems. This project serves as a comprehensive guide for students, developers, and enthusiasts aiming to build a strong foundation in OS concepts.
Students: Prepare for exams with clear and concise explanations Interview Candidates: Revise OS concepts with targeted resources for technical interviews Enthusiasts: Learn the core building blocks of Operating Systems
- Basics of the Operating System
- Process Management
- Memory Management
- File System
- Input/Output Management
- System Calls and API
- Scheduling Algorithms
- Security and Protection
- Virtualization and Containers
- Networking in OS
- An introduction to the OS
- Types of OS
- Components of OS
- Processes vs Thread
- How do apps (programs) interact with the system?
- What happens when you turn on your computer?
- What is 32-bit vs 64-bit OS -
- Fun Facts about OS
- Process States and Process Queue
- PCB - Process Control Block?
- Process Context Switching
- Orphen and Zombie Process
- Process Scheduling
- MLQ and MLFQ
- IPC - Inter-Process Communication
- Concurrency and Synchronization
- Critical Section Problem, Race Condition, and Solution
- Atomic Operation, Mutual Exclusion, Mutex, Locks
- Single Flag, Double Flag, and Peterson's Solution
- Conditional Variables and Semaphores
- Deadlocks
- Memory Hierarchy
- Cache Memory
- Paging
- Segmentation
- Virtual Memory
- Memory Allocation
- Fragmentation - Internal and External
- Swapping and MTS
- Thrashing
- File Types
- File System Architecture
- File Permissions
- Directory Structure
- File Operations
- File Systems
- Disk Scheduling
- Access Control Lists (ACLs)
- File Compression
- I/O Devices
- I/O Scheduling
- Buffering and Caching
- Device Drivers
- Direct Memory Access (DMA)
- System Call Interface
- User vs Kernel Space
- Transitioning between user and kernel modes
- API Calls
- CPU Scheduling - First-Come-First-Served (FCFS) | Shortest Job First (SJF) | Round Robin (RR) | Priority Scheduling
- MLQ - Multilevel Queue Scheduling
- MLFQ - Multilevel Feedback Queue
- Real-Time Scheduling
- Authentication
- Authorization
- Encryption
- Access Control Mechanisms
- Intrusion Detection Systems
- Virtualization
- Containers
- Memory Virtualization
- Socket Programming
- DNS
- TCP/IP Stack
- Inter-Process Communication
- Explain the difference between process and thread.
- What is a race condition, and how can it be avoided?
- What is a deadlock, and how do you prevent it?
- How does virtual memory work?
- Explain different types of scheduling algorithms.
- What are paging and segmentation in memory management?
- What are system calls? Can you give an example?
- How does a file system work?
- What is the difference between a process and a program?
- Explain the producer-consumer problem and how to solve it.
- How does swapping work in operating systems?