{"id":23455592,"url":"https://github.com/yanghan234/threeeasypieces","last_synced_at":"2025-07-11T15:34:20.004Z","repository":{"id":231840389,"uuid":"334719319","full_name":"yanghan234/ThreeEasyPieces","owner":"yanghan234","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-10T03:50:46.000Z","size":1197,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T04:49:55.371Z","etag":null,"topics":["lecture-notes","operating-system"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yanghan234.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-01-31T17:51:09.000Z","updated_at":"2021-04-26T13:19:24.000Z","dependencies_parsed_at":"2024-04-06T08:34:40.189Z","dependency_job_id":null,"html_url":"https://github.com/yanghan234/ThreeEasyPieces","commit_stats":null,"previous_names":["yanghan234/threeeasypieces"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yanghan234/ThreeEasyPieces","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanghan234%2FThreeEasyPieces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanghan234%2FThreeEasyPieces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanghan234%2FThreeEasyPieces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanghan234%2FThreeEasyPieces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yanghan234","download_url":"https://codeload.github.com/yanghan234/ThreeEasyPieces/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanghan234%2FThreeEasyPieces/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264841215,"owners_count":23671855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lecture-notes","operating-system"],"created_at":"2024-12-24T03:36:16.351Z","updated_at":"2025-07-11T15:34:19.968Z","avatar_url":"https://github.com/yanghan234.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ThreeEasyPieces\n这个repository是我在阅读*Three Easy Pieces*时的笔记。我主要用汉语书写，以便日后自己可以快速复习，当然，到处可见中英文夹杂的坏习惯。\n\n古人云：书读百遍其义自见。这不过是我的第二遍，很多先前不明白的地方就已经清晰很多了。古人诚不我欺也！我还记得第一次读的时候在进程切换、并发等关键章节基本都是懵的。与上一次不同的是，在这一遍之前我已经读过了CSAPP，尤其是有了一些x86汇编的概念。回头来再看Three Easy Pieces关于进程、进程管理的部分就豁然开朗了。这一遍在并发的部分还是花了不少时间，理解也更加深入了。只不过我的日常代码主要用MPI做并行计算，很少用到并发，因此还需要多找机会练习并发编程。本书最后三节有关于分布式系统的部分，我决定暂时放在一边，日后如需用到再来学习吧。\n\n总得来说，这本书让我受益匪浅。以往在写项目代码的时候，常常会感觉知其然而不知其所以然，这大概是许多没有受过计算机科班训练的理工科人士的通病吧。\n\n本书地址：https://pages.cs.wisc.edu/~remzi/OSTEP/\n\nFor myself: 登录[这里](https://gumroad.com/library)下载购买的PDF.\n\n- [ThreeEasyPieces](#threeeasypieces)\n- Part 0. Introduction\n  - [01. A Dialogue on the Book](part0-intro/lecture01/README.md)\n  - [02. Introduction to Operating Systems](part0-intro/lecture02/README.md)\n- Part 1. Virtualization\n  - [03. A Dialogue on Virtualization](part1-virtualization/lecture03/README.md)\n  - [04. The Abstraction: The Process](part1-virtualization/lecture04/homework/README.md)\n  - [05. Interlude: Process API](part1-virtualization/lecture05/REAME.md)\n  - [06. Mechanism: Limited Direct Execution](part1-virtualization/lecture06/README.md)\n  - [07. Scheduling: Introduction](part1-virtualization/lecture07/homework/README.md)\n  - [08. Scheduling: The Multi-Level Feedback Priority Queue](part1-virtualization/lecture08/README.md)\n  - [09. Scheduling: Proportional Share](part1-virtualization/lecture09/README.md)\n  - [10. Multiprocessor Scheduling](part1-virtualization/lecture10/README.md)\n  - [11. Summary Dialogue on CPU Virtualization](part1-virtualization/lecture11/README.md)\n  - [12. A Dialogue on Memory Virtualization](part1-virtualization/lecture12/README.md)\n  - [13. The Abstraction: Address Spaces](part1-virtualization/lecture13/README.md)\n  - [14. Interlude: Memory API](part1-virtualization/lecture14/README.md)\n  - [15. Mechanism: Address Translation](part1-virtualization/lecture15/README.md)\n  - [16. Segmentation](part1-virtualization/lecture16/README.md)\n  - [17. Free-Space Management](part1-virtualization/lecture17/README.md)\n  - [18. Paging: Introduction](part1-virtualization/lecture18/README.md)\n  - [19. Paging Faster Translations (TLBs)](part1-virtualization/lecture19/README.md)\n  - [20. Paging: Smaller Tables](part1-virtualization/lecture20/README.md)\n  - [21. Beyond Physical Memory: Mechanisms](part1-virtualization/lecture21/README.md)\n  - [22. Beyond Physical Memory: Policies](part1-virtualization/lecture22/README.md)\n  - [23. Complete Virtual Memory Systems](part1-virtualization/lecture23/README.md)\n  - [24. Summary Dialogue on Memory Virtualization](part1-virtualization/lecture24/README.md)\n- Part 2: Concurrency\n  - [25. A Dialogue on Concurrency](part2-concurrency/lecture25/README.md)\n  - [26. Concurrency: An Introduction](part2-concurrency/lecture26/README.md)\n  - [27. Interlude: Thread API](part2-concurrency/lecture27/README.md)\n  - [28. Locks](part2-concurrency/lecture28/README.md)\n  - [29. Lock-based Concurrent Data Structures](part2-concurrency/lecture29/README.md)\n  - [30. Condition Variables](part2-concurrency/lecture30/README.md)\n  - [31. Semaphores](part2-concurrency/lecture31/README.md)\n  - [32. Common Concurrency Problems](part2-concurrency/lecture32/README.md)\n  - [33. Event-based Concurrency](part2-concurrency/lecture33/README.md)\n  - [34. Summary Dialogue on Concurrency](part2-concurrency/lecture34/README.md)\n- Part 3. Persistence\n  - [35. A Dialogue on Persistence](part3-persistence/lecture35/README.md)\n  - [36. IO Devices](part3-persistence/lecture36/README.md)\n  - [37. Hard Disk Devices](part3-persistence/lecture37/README.md)\n  - [38. Redundant Arrays of Inexpensive Disks (RAIDs)](part3-persistence/lecture38/README.md)\n  - [39. Interlude: Files and Directories](part3-persistence/lecture39/README.md)\n  - [40. File System Implementation](part3-persistence/lecture40/README.md)\n  - [41. Locality and The Fast File System](part3-persistence/lecture41/README.md)\n  - [42. Crash Consistency: FSCK and Journaling](part3-persistence/lecture42/README.md)\n  - [43. Log-structured File Systems](part3-persistence/lecture43/README.md)\n  - [44. Flash-based SSDs](part3-persistence/lecture44/README.md)\n  - [45. Data Integrity and Protection](part3-persistence/lecture45/README.md)\n  - [46. Summary Dialogue on Persistence](part3-persistence/lecture46/README.md)\n  - [47. A Dialogue on Distribution](part3-persistence/lecture47/README.md)\n  - [ ] 48. Distributed Systems\n  - [ ] 49. Sun's Network File System (NFS)\n  - [ ] 50. The Andrew FIle System (AFS)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanghan234%2Fthreeeasypieces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyanghan234%2Fthreeeasypieces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanghan234%2Fthreeeasypieces/lists"}