操作系统学习资料荟萃 V2.0
2023年6月14日 · 256 字 · 2 分钟
好久不见,甚是想念。
这大半年因为生活琐事,一直没法花时间到这上面来。
感谢各位家人们一直以来的支持。
无以为报,特奉上个人自用的学习参考资料一份。
也欢迎大家讨论、留言,一起补充完善!
好久不见,甚是想念。
这大半年因为生活琐事,一直没法花时间到这上面来。
感谢各位家人们一直以来的支持。
无以为报,特奉上个人自用的学习参考资料一份。
也欢迎大家讨论、留言,一起补充完善!
以下为正文:
00-Routine:
- 【刘宇波】如何从零开始实现一个小型 OS 内核
https://mp.weixin.qq.com/s/ZQB_WMVRIEbiwe5F2ey5bw
- 【码农翻身】Linux的修炼之道:从小工到专家
https://mp.weixin.qq.com/s/RdvcFmThIVFIg-UhLp0urw
1 原理
2 Dev
Kernel:
- 知乎专栏:【Linux内核源码剖析】https://www.zhihu.com/column/c_1395333610812076032
- 知乎专栏:【Linux内核开发从入门到精通】https://www.zhihu.com/column/c_1080796413692190720
- 深入计算机系统(Dive into Systems) https://diveintosystems.org/book/index.html
3 Blog & Wiki
- OSDEV:https://wiki.osdev.org/Main_Page
- dirtysalt计算机科学主题列表:https://dirtysalt.github.io/html/index.html
- The seL4® Microkernel :http://sel4.systems/
- MicroKernel:http://www.microkernel.info/
- 上海交通大学并行与分布式系统研究所 https://ipads.se.sjtu.edu.cn/
- 【闪客】关于计算机的一切:https://github.com/sunym1993/computer-all
- CSAPP 重点解读:https://fengmuzi2003.gitbook.io/csapp3e/
3 ResLinks
docs:
-
Linux man page:https://www.kernel.org/doc/man-pages/
-
Apple Kernel Architecture Overview:https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g-CACDCAGC
-
從 RISC-V 處理器到 UNIX 作業系統 https://github.com/riscv2os/riscv2os
-
龙芯《计算机体系结构基础》https://foxsen.github.io/archbase/
-
HOWTO do Linux kernel development https://www.kernel.org/doc/html/v4.16/process/howto.html
-
第五期"一生一芯"课程主页 https://ysyx.oscc.cc/docs/
-
计算机组织导论:以树莓派和 ARM 汇编语言为例 开源教材,介绍计算机的底层实现,写得比较好懂。
-
[PDF] Linux: a Portable Operating System(英文)这是 Linus Torvalds 的硕士毕业论文,介绍 Linux 系统如何适配不同的硬件架构。这篇论文不涉及代码,只介绍一些概念性的东西,但也不是那么好懂,至少我没有完全看懂。对内核和操作系统感兴趣的朋友,可以读一下。
-
计算机系统导论:以汇编语言与 Linux 系统为例(英文)介绍计算机底层知识的免费电子书。
-
Linux 内核揭密(中文)本书是《Linux inside》一书的中译,介绍 Linux 内核知识,从计算机通电讲起,需要 C 语言和汇编语言的知识。
-
计算结构 麻省理工学院课程《计算结构》(Computation Structures)的教学材料,介绍计算机架构的基本知识,包括讲义、视频、笔记等。
资讯类
- people.kernel.org Linux kernel 开发人员的博客聚合网站。
- https://ysyx.oscc.cc/docs/
GitHubs
- riscv-operating-system-mooc https://github.com/plctlab/riscv-operating-system-mooc 《从头写一个RISC-V OS》课程配套的资源
- Linux 0.11 https://github.com/sunym1993/flash-linux0.11-talk
- Writing an OS in Rust https://os.phil-opp.com/async-await/
OS projects
- XV6 麻省理工学院开发的一个类似 Unix 的教学操作系统。
- XINU XINU 是普渡大学开发一个教学操作系统,属于简化版的 Unix。
- 从零开始写一个操作系统 一个教程库,每一步都有指导,教你怎么写出一个简单的操作系统。
- SimpleKernel 一个操作系统内核的简单实现,提供了各个阶段完成度不同的内核,可以用来练手和学习。
- 树莓派的项目 该网站收集各种树莓派的项目,目前已经有1000多项了。
- Serenity Operating System https://github.com/SerenityOS/serenity
- AntzOS 一个用于实验和教学目的的操作系统,从零开始实现。
- Learning operating system development using Linux kernel and Raspberry Pi:https://s-matyukevich.github.io/raspberry-pi-os/
- CS107e: 树莓派,ARM 和操作系统 https://cjting.me/2020/09/11/cs107e-review/
- Tutorial: Writing a “bare metal” operating system for Raspberry Pi 4 https://github.com/isometimes/rpi4-osdev
- Bare metal Raspberry Pi 3 tutorials https://github.com/bztsrc/raspi3-tutorial/
底层
汇编
- Emulator 101 开源电子书,从零开始讲解如何写一个8080处理器的模拟器。
- 如何编写一个硬盘启动程序?(英文)本文教你如何向硬盘的主引导扇区 MBR 写入程序,使得计算机可以在没有操作系统的情况下运行程序,显示 Hello World。
- ARM 汇编语言简介 通过树莓派介绍 ARM 汇编语言的开源教材。
- 汇编语言的艺术 在线阅读的免费电子书《The art of assembly language programming》,面向初学者的汇编语言教程,从最基本的二进制开始教起。
- 汇编语言编程导论(A Gentle Introduction to Assembly Language Programming)一本英文的开源教程,向 C/C++ 学习者介绍 ARM 64 的汇编语言。
- 一份图文并茂的汇编语言英文介绍,针对零基础的初学者,半小时可以读完,并附有代码示例,以便进一步学习。 https://github.com/hackclub/some-assembly-required
- IEEE 754 双精度浮点数内部可视化展示 IEEE754 下双精度浮点数的内部表示,对 0.1 + 0.2 !== 0.3 问题理解更加深入。地址: https://devtool.tech/double-type
系统机制
- Tutorial - Write a Shell in C https://brennan.io/2015/01/16/write-a-shell-in-c/
- 虚拟内存探究(中文)这组系列文章通过实验的方式,介绍虚拟内存的相关概念和实现,这里是中文翻译,还可以参考英语原版。
- 二进制文件的编译过程(英文)源码编译成为可运行的二进制文件,有好几个步骤,本文用一个最简单的例子,详细解释编译器的每一步都在干什么。
- 线程的基本知识(英文)一篇写得非常好的科普文章,通俗地详尽解释了进程和线程的相关知识。
- 计算机如何实现除法(英文)对于计算机来说,加法和减法比乘法容易实现,而乘法又比除法容易实现。
缓存
-
如何维持缓存的一致性?(英文)有一句名言:“计算机科学有两大难题:缓存不一致和变量命名。”本文就介绍缓存与源数据不一致的基本知识。
-
一种基于「哨兵」的分布式缓存设计:http://blog.lichengwu.cn/architecture/2015/06/14/distributed-cache/
-
分布式缓存的一起问题:http://timyang.net/data/cache-failure/
-
Computer Science from the Bottom Up https://www.bottomupcs.com/
-
Modern Microprocessors A 90-Minute Guide! http://www.lighterra.com/papers/modernmicroprocessors/
这是目前,我自己在用的一些关于操作系统的学习资料。
如果觉得有帮助,欢迎点赞、分享、转发!
作者:极目楚天舒
链接:https://talkaboutos.com/posts/os-res_v2.0/
声明:除非另有声明,本文采用 CC BY-NC-SA 3.0 协议,转载请注明。
赞助:若你觉得本文对你有启发,非常欢迎你成为我的 Sponsor ,感恩遇见