对着课件的内容做的操作系统的笔记,多图多文字预警。在后期复习的时候发现了许多错误,所以该笔记部分内容的正确性需要甄别。
因为在宿舍使用台式电脑,在外面只能使用笔记本,所以远程使用电脑对我来说是刚需。原先我是使用Todesk的免费版的,虽然帧数和画质不高,但是延迟很低,也足够用了。
但是就在5月底,Todesk的免费版悄无声息地加上了限制:200小时和300次使用。这对我来说绝对是不够用的,也就是在逼我订阅专业版(没有说商家不好的意思)。我决定转换阵营,在网上搜索一番后,我选择了frp中继rdp的方案。
了解 fork 的实现原理,实现 fork 系统调用。kv
了解并发与锁机制的概念,实现基于操作系统的自旋锁、信号量。
编写基于 fork 的并发程序,并测试自旋锁、信号量的正确性。
了解用户态与内核态的区别、用户程序的加载与执行。
补充页表、内存分配相关知识,了解使用链接器脚本编译能够被加载执行的程序。
实现基本的系统调用。
实现用户程序的加载与执行,并切换到用户态。
了解中断的作用、中断的分类、中断的处理过程。
启用基于 APIC
的中断,注册 IDT
中断处理程序,实现时钟中断。
注册内核堆分配器。(不实现内存分配算法,使用现有代码赋予内核堆分配能力)
实现串口驱动的输入能力,尝试进行基础的 IO
操作和交互。
了解页表的作用、ELF 文件格式、操作系统在 x86 架构的基本启动过程。
尝试使用 UEFI 加载并跳转到内核执行内核代码。
实现基于 uart16550 的串口驱动,使用宏启用输出能力、并启用日志系统。
学习并尝试使用调试器对内核进行调试。
由于本人大学开始才开始看番,所以此推荐对老二次元可能没什么用,当然,如果真有没看过的那就更好啦。
一直都想搭个写博客的网站,但是学了一圈html,css和javascript,到头来还是被繁杂的工作量劝退了。(就是懒) 转头一想,既然决定用github搭,为什么不找已经做好的开源的网站呢?