🌓

BUAA-OS-Lab4_challenge sigaction实现

总结了Lab challenge的实现思路——操作系统中信号处理的实现机制,包括信号的注册、发送、处理流程,以及信号集的操作。主要包括 sigaction 结构体的作用,sigset_t 的定义和使用,以及如何在用户态处理信号。同时涵盖了信号屏蔽集的管理,信号处理函数的入口设置,以及在进程间发送信号的方法

阅读全文

BUAA-OS-Lab 经验总结

2024S4一学期做OS实验下来总结的血泪经验

阅读全文

BUAA-OS-Lab5 文件系统

总结了操作系统文件系统的设计与实现。文章详细描述了 MOS 文件系统的微内核架构,包括外部存储设备驱动、文件系统结构和用户接口。重点讨论了内存映射 I/O 技术在 IDE 磁盘驱动中的应用,以及如何通过逻辑块寻址(LBA)提高磁盘访问效率。同时,介绍了文件系统布局、块缓存机制和文件描述符在用户进程中的使用

阅读全文

BUAA-OS-Lab4 系统调用与fork

总结了系统调用的原理、实现机制,以及进程间通信的方法。文章详细分析了用户态到内核态的切换过程,以及如何通过系统调用实现用户程序与操作系统的交互。同时,介绍了写时复制技术在 fork 系统调用中的应用,以及进程异常处理栈的设置。此外,还涵盖了用户态和内核态之间的区别和注意事项

阅读全文

BUAA-OS-Lab3 进程与异常

总结了操作系统的进程管理、中断与异常处理机制。重点讲解了模板页表的概念、进程标识与控制块的设置、ELF 二进制镜像的加载方法,以及进程运行和切换的上下文保存策略。同时涵盖了 MIPS 架构中的协处理器 CP0 的使用,包括 Status、Cause 和 EPC 寄存器的作用,以及时钟中断和进程调度器的实现细节

阅读全文

BUAA-OS-Lab2 内存管理

总结了操作系统的内存管理,包括内核程序的启动、物理内存的链表管理、虚拟内存的两级页表结构和 TLB(Translation Lookaside Buffer)的重填机制。文章详细解释了内核如何接收硬件内存大小参数,并通过宏定义实现泛型链表操作。同时,介绍了页表项的组成、TLB 相关指令和维护流程,以及如何确保虚拟地址到物理地址的正确映射

阅读全文

BUAA OS-Lab1 内核、启动和 PRINTF

总结了操作系统内核的构建与启动流程,Makefile 的使用、ELF 文件格式的结构以及 MIPS 内存布局的重要性。还介绍了 Linker Script 在控制加载地址中的作用,以及如何从零开始搭建 MOS 系统。此外,实战部分详细讨论了 printk 函数的实现,包括处理变长参数表的方法

阅读全文

BUAA OS-Lab0 Linux基础操作

深入介绍Lab中使用的:Linux 基础操作,包括文件内容查看、进程监控、文件重命名等;Makefile 的编写技巧和 Git 的分支管理、状态检查、文件提交等操作;文本处理工具 grep, sed, awk 的应用,以及 Shell 脚本编程的注意事项

阅读全文