计算机科班学习 OS 的正确姿势!
阅读本文大概需要 11 分钟。
Booting a PC Memory Management Multitasking File system, Spawn and Shell Network Driver
xv6
https://pdos.csail.mit.edu/6.828/2020/index.html
System Call、Page tables Traps Lazy allocation、Copy On-Write Multithreading、Lock File System、mmpa network driver
https://www.bilibili.com/video/BV1px411E7ST
ucore
https://www.xuetangx.com/course/THU08091000267/5883104
书名(英文):Operating Systems : Design and Implementation (3rd Edition) 书名(中文):操作系统:设计及实现 (第三版) 原作者:Andrew S. Tanenbaum / Albert S. Woodhull 翻译者:王鹏、尤晋元、朱鹏、敖青云
Operating System (操作系统) 书名(英文):Operating System Concepts (7th Edition) 书名(中文):操作系统概念 (第七版) 原作者:Abraham Silberschatz / Peter Baer Galvin / Greg Gagne
Three Easy Piece
是为了致敬费曼的关于物理学的书籍:《Six Easy Pieces: Essentials Of Physics Explained By Its Most Brilliant Teacher》。虚拟化(Virtualization) 并发(Concurrency) 持久化(Persistence)
OS 四大模块的理论知识: 进程与线程管理、内存管理、IO与文件系统、设备管理 了解 Linux 内核部分实现原理,如内存管理、进程管理、虚拟文件系统等 了解和熟悉常用的系统调用已经 System API
《现代操作系统》 《操作系统—精髓与设计原理》
操作系统包含的知识
操作系统由哪些构成 进程的状态、切换、调度 进程间通信方式(共享内存、管道、消息) 进程和线程的区别 线程的实现方式(一对一、多对一等) 互斥与同步(信号量、管程、锁) 死锁检测与避免 并发经典的问题:读者写者、哲学家就餐问题 为什么需要虚拟内存,MMU 具体如何做地址转换的 内存为什么分段、分页 页面置换算法 文件系统是如何组织的 虚拟文件系统(VFS)是如何抽象的 ...
task_struct
来表示一个执行任务的实体。进程创建调用fork
系统调用,而线程创建则是 pthread_create
方法,但是这两个方法最终都会调用到 do_fork
来做具体的创建操作 ,区别就在于传入的参数不同。《Linux内核设计与实现》
这本书恰到好处,即讲清楚了内核实现的要点,又不会通篇源码。
自制OS
筑基内功-- 需要学习计算机原理、C语言(需要熟练运用)、数据结构课程 工欲善其事,必先利其器,掌握以下Linux 下常用命令行:
pwd、cd、find等,1-2 款趁手的编辑器,推荐掌握 vim 的基本操作 gcc、gdb、ld、make等编译构建链、objdump、nm、readif、dd 等 ELF 文件分析、烧录工具。
点个在看你最好看
评论