计算机科班学习 OS 的正确姿势!
FightingCoder
共 4389字,需浏览 9分钟
· 2021-02-10
阅读本文大概需要 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 文件分析、烧录工具。
点个在看你最好看
评论
这才是学习 Vite 2 的正确姿势
Vite2 自2月17号发布之后,收获了前端圈的一片哀嚎:学不动了……不不不,你得学!不仅是因为Vite2新的插件结构,丝滑的开发体验以及和Vue3的完美结合,而且面试的话面试官肯定都会提一嘴,如果你还没有实际用过岂不是...
鱼头的Web海洋
0
webpack 的正确使用姿势
我想大部分人都用过 webpack 。作为现代前端开发中最火的模块打包工具,它只需要通过简单的配置,就能轻松完成模块的加载和打包,实属神器。不过我发现身边很多朋友都觉得它不那么重要,也没有系统学习的打算,所以...
前端桃园
0