Skip to main content
Ctrl
+
K
Preface
Getting started
1. Introduction
2. Purpose of operating systems
3. Operating System Structure & Unix/Linux
4. Operating System Abstractions
5. What you should know
5.1. Shell
5.2. Editors
5.3. Makefiles
5.4. Git Basics
5.5. GDB
5.6. The C Programming Language
5.7. Unit Tests
Virtual Processor
6. Introduction
7. Virtualizing a CPU
8. Scheduling
9. A Look at the Linux Scheduler
10. Review
File Systems
11. Introduction
12. File System Abstraction
13. A bit about Disks
14. File System Layout
15. Disk Layout:Tracking Used Space
16. Disk Layout:Tracking Free Space
17. Disk Layout:Implementing Name Space
18. Disk Layout:Dealing with Failures
19. Disk Layout:Examples of Real World File Systems
20. Kernel implementation
21. Review
Virtual Memory
22. Introduction
23. Memory management before paged virtual memory
24. Paging
25. Page Tables
26. Memory reclaiming algorithms.
27. Page Sizes
28. Other topics
29. Buffer Cache
30. Memory Management Dynamics
31. Memory management in the real world
32. Conclusion
33. Review
Concurrency
34. Introduction to Concurrency, Synchronization and Deadlock
35. Cooperating Processes and Inter-process Communication
36. The Critical Section Problem
37. Implementing Locks
38. Ordering Thread Events
39. Common Concurrency Bugs
40. Read-Dominated Workloads
41. Challenges of Modern Hardware
42. Locking in the Linux Kernel
43. Review
Other Topics
44. Input and Output
45. More on Disks
46. Virtualization
47. Security
Appendices
48. How to read this book
49. Contributing
50. Bibliography
JupyterHub
Repository
Suggest edit
Open issue
.ipynb
.pdf
Disk Layout:Examples of Real World File Systems
19.
Disk Layout:Examples of Real World File Systems
#