首页
›
Linux内核与驱动
›
195-操作系统原理
›
《xv6内核扩展开发与Linux内核机制对比》
VIP10
本课程属于:195-操作系统原理
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
xv6内核扩展开发与Linux内核机制对比
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
操作系统概述与xv6简介
操作系统核心概念(进程 · 内存 · 文件系统)
xv6
操作系统概述
02
开发环境搭建与工具链
QEMU模拟器安装与配置 · RISC-V交叉编译工具链 · GDB调试xv6内核
开发环境搭建
工具链
03
RISC-V特权架构与启动流程
机器模式(M-mode)与监督模式(… · RISC-V异常与中断向量表 · 启动ROM与Bootloader
RISC-V
特权架构
04
内核初始化与内存布局
main函数调用链 · 控制台初始化(consoleinit… · 物理内存分配器初始化(kinit)
内核初始化
内存布局
05
陷阱与系统调用机制(上)
RISC-V异常处理流程 · trampoline与trapfra… · 用户态到内核态的切换(ecall指令…
陷阱
系统调用机制
06
陷阱与系统调用机制(下)
系统调用分发(syscall函数) · 参数传递与返回值 · 系统调用表(syscalls数组)
陷阱
系统调用机制
07
虚拟内存与页表(上)
RISC-V Sv39分页机制 · 页表项(PTE)结构 · 三级页表遍历
虚拟内存
页表
08
虚拟内存与页表(下)
用户进程页表创建(uvmcreate… · 地址空间映射(uvmalloc) · 缺页异常处理(usertrap中的处…
虚拟内存
页表
09
进程管理(上)
进程状态与生命周期 · struct proc数据结构详解 · 进程创建(allocproc与for…
进程管理
进程状态
10
进程管理(下)
进程切换(swtch函数与conte… · 进程销毁(exit与kill) · 等待子进程(wait系统调用)
进程管理
swtch
11
锁与并发控制(上)
并发与竞态条件 · xv6中的自旋锁(struct sp… · 锁的获取与释放(acquire与re…
并发控制
并发
12
锁与并发控制(下)
睡眠锁(struct sleeplo… · 锁的粒度与死锁预防 · xv6中的锁使用模式(如文件系统锁)
并发控制
struct
13
中断与设备驱动(上)
PLIC(平台级中断控制器)与CLI… · UART串口驱动(uart.c) · 控制台输入输出(console.c)
设备驱动
PLIC
14
中断与设备驱动(下)
磁盘驱动(virtio_disk.c… · virtio协议简介 · DMA与缓冲区描述符
设备驱动
virtio
15
文件系统概述与磁盘布局
xv6文件系统设计目标 · 磁盘布局(超级块 · 日志
文件系统概述
磁盘布局
16
日志文件系统(Logging)
日志的目的与崩溃恢复 · 日志结构(log header与lo… · begin_op与end_op
Logging
日志文件系统
17
inode与目录管理
磁盘inode(struct din… · inode分配与释放(ialloc与… · 目录项(struct dirent)…
inode
目录管理
18
文件描述符与系统调用
文件描述符表(struct file… · 打开文件表(ftable) · read/write系统调用实现
文件描述符
系统调用
19
系统调用实现案例(上)
exec系统调用(加载ELF文件) · sbrk系统调用(堆内存管理) · dup系统调用(文件描述符复制)
系统调用实现案例
exec
20
系统调用实现案例(下)
mkdir与mknod系统调用 · link与unlink系统调用 · chdir与fstat系统调用
系统调用实现案例
mkdir
21
用户态与内核态交互
用户栈与内核栈 · trapframe的保存与恢复 · 用户态上下文切换
用户态
内核态交互
22
内存分配器详解
物理内存页分配器(kalloc与kf… · 伙伴系统与空闲链表 · 内存碎片管理
内存分配器详解
kalloc
23
调度器与上下文切换深入
Round-Robin调度策略 · 进程优先级与时间片 · yield与sched函数
调度器
上下文切换深入
24
多核支持与同步
多核启动流程(start_hart) · 每个CPU的栈与寄存器 · TLB shootdown
多核支持
同步
25
xv6网络栈(可选扩展)
E1000网卡驱动简介 · 网络协议栈(IP/UDP/TCP)的… · socket接口
xv6
网络栈
26
xv6与Linux内核对比(上)
进程管理对比(task_struct… · 调度器对比(CFS vs Round… · 内存管理对比(SLUB vs kal…
xv6
Linux
27
xv6与Linux内核对比(下)
文件系统对比(VFS vs xv6… · 系统调用接口对比 · 中断处理对比(IRQ vs PLIC…
xv6
Linux
28
xv6调试与性能分析
GDB调试技巧(断点 · 观察点 · 反汇编)
xv6
调试
29
xv6扩展项目实战(上)
添加新的系统调用(如getpid) · 实现内存映射文件(mmap) · 实现信号量(semaphore)
xv6
扩展项目实战
30
xv6扩展项目实战(下)
实现写时复制(COW)fork · 实现懒分配(Lazy Allocat… · 实现内存交换(swap)
xv6
扩展项目实战
所属VIP或分类
同VIP:Linux内核中断下半部编程与tasklet调试
同VIP:Linux内核内存管理buddy与slab分配器对比实践
同VIP:Linux内核内存管理页表分配与回收性能调优