N

Operating Systems

21 chapters

01

Operating Systems

An introduction to operating systems, covering system organization, interrupts, memory and I/O management, multiprocessing, virtualization, security, kernel data structures, computing environments, and open-source operating systems.

02

Operating-System Services, Architecture, and Implementation

An in-depth introduction to operating-system services, system calls and APIs, program linking and loading, kernel architectures, boot processes, and debugging and performance-tuning tools such as /proc, strace, and eBPF.

03

Processes and Interprocess Communication

An introduction to processes, process memory and control blocks, scheduling and context switching, process creation and termination, interprocess communication, pipes, sockets, and remote procedure calls.

04

Multithreading

An introduction to threads, concurrency, parallelism, multicore programming, threading models, thread libraries, implicit threading, threading issues, and thread implementations in Windows and Linux.

05

CPU Scheduling

An introduction to CPU scheduling concepts, performance criteria, scheduling algorithms, thread and multiprocessor scheduling, real-time scheduling, and production schedulers in Linux, Windows, and Solaris.

06

Process Synchronization

An introduction to race conditions, critical sections, synchronization primitives, mutexes, semaphores, monitors, and liveness problems such as deadlock and priority inversion.

07

Classic Synchronization Problems and Modern Concurrency

An introduction to classic synchronization problems, kernel-level synchronization in Windows and Linux, POSIX and Java synchronization APIs, and alternative concurrency approaches such as transactional memory, OpenMP, and functional programming.

08

Deadlocks

A rigorous introduction to deadlocks, covering deadlock conditions, resource-allocation graphs, prevention, avoidance with the Banker's algorithm, detection, and recovery through process termination and resource preemption.

09

Memory Management

An introduction to memory management, covering address binding, MMU-based translation, contiguous allocation and fragmentation, paging, TLBs, page-table structures, swapping, memory protection, and modern IA-32, x86-64, and ARMv8 architectures.

10

Virtual Memory

An in-depth introduction to virtual memory, covering demand paging, page faults, copy-on-write, page replacement algorithms, frame allocation, thrashing, memory compression, kernel memory allocation, and virtual memory implementations in modern operating systems.

11

Mass-Storage Structure and Management

A comprehensive introduction to HDDs, NVM/SSDs, disk scheduling, storage attachment, RAID, ZFS, swap-space management, error recovery, and operating-system storage management.

12

I/O Systems

A comprehensive introduction to operating-system I/O, covering device hardware, polling, interrupts, DMA, blocking and asynchronous I/O, kernel I/O subsystems, device drivers, STREAMS, and the complete path from application requests to physical hardware.

13

File-System Interface

A comprehensive introduction to file-system interfaces, covering file attributes and operations, open-file tables, file locking, access methods, directory structures, graph-based sharing, access control, and memory-mapped files.

14

File-System Implementation

A comprehensive study of file-system implementation, covering layered architecture, directory structures, block allocation, free-space management, caching and performance optimization, journaling, copy-on-write, backups, WAFL, ZFS, and APFS.

15

File-System Internals and Distributed File Systems

A comprehensive study of file-system mounting, disk layouts, VFS architecture, remote file systems, distributed naming, consistency semantics, and the Network File System (NFS).

16

Security and Protection

A comprehensive study of operating-system security, covering security threats, malware, program exploits, cryptography, authentication, network defenses, intrusion prevention, firewalls, and Windows security architecture.

17

Protection

A comprehensive study of operating-system protection, covering privilege rings, protection domains, access matrices, ACLs, capabilities, RBAC, mandatory access control, sandboxing, system-call filtering, code signing, and JVM-based protection.

18

Virtualization

A comprehensive study of virtualization, covering hypervisor architectures, trap-and-emulate, binary translation, hardware-assisted virtualization, paravirtualization, containers, resource management, live migration, JVM virtualization, unikernels, and partitioning hypervisors.

19

Distributed Systems and Distributed File Systems

A comprehensive study of distributed systems, covering network architectures, LANs and WANs, communication protocols, name resolution, distributed operating systems, process migration, robustness, transparency, scalability, and distributed file-system models.

20

Linux System

A comprehensive study of Linux internals, covering kernel architecture, dynamic modules, process and task management, CFS scheduling, physical and virtual memory, VFS, file systems, I/O, networking, IPC, and security mechanisms.

21

Windows 10 and Windows Server Architecture

A comprehensive study of Windows 10 and Windows Server architecture, covering NT evolution, security and compatibility, Hyper-V and Virtual Secure Mode, kernel scheduling, Executive services, memory management, NTFS, networking, and the Win32 API.