Contents
1. Introduction to UNIX / Linux Kernel
1. Introduction
2. History of UNIX
3. Why UNIX is so popular?
4. System Structure
5. Architecture of the UNIX Operating System
6. Introduction to System Concepts
6.1 File Subsystem Overview
6.2 Processes
6.3 Context of a process
6.4 Process States
6.5 State Transitions
6.6 Sleep and Wakeup
2. Unix/Linux File Subsystem
1. Introduction
2. Files and File System
3. The Buffer Cache – Buffer Headers
4. Structure of the Buffer Pool
5. Scenarios for Retrieval of a Buffer
6. Reading and Writing Disk Blocks
7. Advantages and Disadvantages of Buffer Cache
8. Internal Representation of Files
9. Structure of a Regular File
10. Other File Types
3. System Calls for File Subsystem
1. Introduction
2. File I/O System Calls
2.1 open()
2.2 read()
2.3 write()
2.4 lseek()
2.5 close()
2.6 creat()
2.7 mknod()
2.8 The pipe System Call
2.9 dup()
3. File Access System Calls
3.1 stat(), fstat(), lstat() system calls
3.2 Atomic Operations
3.3 dup2()
4. File System Control and Management System Calls
4.1 fcntl()
4.2 sync(), fsync(), fdatasync()
4.3 /dev/fd
5. File System Navigation System Calls
5.1 mkdir() and rmdir()
5.2 chdir() and getcwd()
5.3 chroot(): Change Root
5.4 opendir(), readdir(), closedir()
6. File Types and File Attributes
7. File Permission System Calls
7.1 access()
7.2 umask()
7.3 chmod() and fchmod()
7.4 Sticky Bit
7.5 chown(), fchown(), lchown()
8. File Size and Truncation – truncate() and ftruncate()
8.1 truncate(): Resize a File by Path
8.2 ftruncate(): Resize a File by File Descriptor
9. File System Operations
9.1 link(), unlink(), remove(), and rename()
9.2 Symbolic Links: symlink() and readlink()
10. File Times and utime
11. Device Special Files
4. Unix/Linux Process Control Subsystem
1. Introduction
2. Process States and Transitions
3. Layout of System Memory
3.1 Regions
3.2 Pages and Page Tables
3.3 Layout of the Kernel
3.4 The U Area
4. The Context of a Process
5. Saving the Context of a Process
5.1 Interrupts and Exceptions
5.2 System Call Interface
5.3 Context Switch
6. Sleep
6.1 Sleep Event and Addresses
6.2 Algorithms for Sleep and Wakeup
7. Process Control
8. Process Creation
9. Process Termination
10. Awaiting Process Termination
11. Invoking Other Programs
12. The User ID of a Process
13. Changing the size of the process
14. System Boot and Init Process
5. System Calls Process Control Subsystem
1. Introduction
2. Process Environment System Calls
2.1 setjmp() and longjmp() Functions
2.2 getrlimit() and setrlimit() Functions
3. Introduction to Process Control System Calls
4. Process Creation System Calls
4.1 fork() and vfork()
5. Process Termination System Calls
5.1 exit() Function
6. Process Waiting System Calls
6.1 wait() and waitpid() Functions
6.2 waitid(), wait3() and wait() Functions
7. The exec Family of Functions
8. Changing user IDs and group IDs
8.1 Functions for Changing User and Group IDs
9. system() Function
10. User Identification
11. Process Times
12. Process Groups
6. Signal Handling
1. Introduction
2. Signal Concepts
3. signal() Function
4. Reentrant Functions
5. kill() and raise() Functions
6. alarm() and pause() Functions
7. abort() Function
8. sleep() Function
7. Memory Management
1. Introduction
2. Swapping
2.1 Allocation of Swap Space
2.2 Swapping Processes Out
2.3 Swapping Processes In
3. Demand Paging
3.1 Data Structures for Demand Paging
3.2 The Page-Stealer Process
3.3 Page Faults
Programs
1. Programs of Files/Directories
2. Programs on Processes and Pipes
3. Programs on Signal Handling and System Call

Reviews
Clear filtersThere are no reviews yet.