-
-
[原创]《一个64位操作系统设计与实现》读书笔记
-
发表于:
2024-6-12 10:56
2783
-
前言:
抽时间(在论文、课程课余时间花了好久把书看到了13章,总共16章,后面是完善shell、用户态和FAT32文件系统,个人不太感兴趣,番外部分还没时间写,以后在埋坑吧)。
总体而言,这部书不能说不好吧,只能说非常垃圾,看到现在能不弃书全靠它代码完善,作者虽然很厉害,但是写书功底实在是难以恭维,凑活看下,因为国内书实在是没有基于x64架构设计的os,其中多核、apic、驱动设计、文件系统有些东西还是很先进的,能了解一个操作系统从编译、引导、到支持多核,工作量还是很大的。我把笔记转成pdf了,总共100多页,11万多字?现在分享一下,里面的代码我基本上都是看懂点到为止,因此有些东西可能理解的不到位,欢迎大家斧正。
项目地址:
这本书写的很烂,因此必须要靠它完善的源码才能看下去,
个人读书笔记地址:https://github.com/Oxygen1a1/Book-Notes-on-Design-and-Implementation-of-a-64-bit-Operating-System
源码地址:https://github.com/yifengyou/The-design-and-implementation-of-a-64-bit-os
目录:
chap0 前言
基础概念
操作系统
操作系统构成
环境搭建
bochs编译
nasm
boot.img
前置知识
GNU的内嵌汇编
chap1 BootLoader
文件系统
FAT12的构成
FAT
根目录区
Loader
虚拟软盘挂载
loader原理
chap2 内核层
内核头
内核头
makefile
屏幕显示
显存写入
ASCII像素位图
color_printk
异常
errcode
初级内存管理
内核相关结构初始化
alloc memory
中断处理
8259a pic
触发中断
简单键盘驱动编写
进程管理基础概念
PCB
进程的创建
chap3 应用层
返回应用层
系统调用
chap4 intel硬件平台知识
chap5 高级内存管理单元
slab内存池
slab_cache初始化
slab_cache销毁
slab_cache内存对象的alloc/free
基于slab内存池的内核内存分配实现
slab_init
kmalloc
kfree
物理内存分配的调整
chap6 APIC
APIC概述
Local APIC
LAPIC寄存器表
LAPIC 寄存器
LVT
中断优先级
LAPIC中断的投递
IO APIC
IO APIC间接访问寄存器
IO APIC寄存器介绍
APIC初始化
Local APIC Setup
IO APIC setup
高级中断处理
chap7 驱动
键/鼠驱动
8042键盘控制器
键盘驱动
鼠标驱动
磁盘驱动
硬盘控制器
ATA标准
磁盘读写
chap8 多核处理器
超线程与多核
多核启动
ICR发送IPI
SMP/ASMP
配置AP
自旋锁同步
chap9 番外(to do)
USB键鼠驱动编写
PCI总线驱动
磁盘驱动编写
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课