书中介绍的是window系统下进行开发,我的是mac M1芯片,而且考研时间比较紧,所以会缺少实践环节,有机会我再补上~但是,如果对操作系统结构本身比较感兴趣,建议你看下去。
备注:这本书虽然是2012年出版,但是关于操作系统的大体描述并不过时,而且笔者笔触非常幽默且平易近人。当时80286刚刚出来~
读书笔记:
1.选用c而不是c++,因为c++中new,delete这些函数使用时需要依赖操作系统。
参考:https://zhuanlan.zhihu.com/p/385376026
堆区
堆就是new出来的内存块,编译器不管释放,由应用程序控制,new对应delete。如果没释放掉,程序结束后,操作系统会自动回收。
分配方式
堆是动态分配的,栈有动态分配和静态分配之分:静态分配由编译器完成,动态分配由alloca函数完成,即使是动态分配,依然是编译器自动释放
c没有办法完成的部分,通过汇编语言完成。
2.bootstrap 有“自力更生完成任务”的意思,描述操作系统自启动机制。IPL启动程序加载器。
3.常见的操作系统引导程序:
参考:王道
1.激活cpu,开始执行BIOS指令 2.硬件自检 3.加载带有操作系统的硬盘 4.加载主引导记录MBR. 5.扫描硬盘分区表 6.加载分区引导记录PBR
“Basic Input Output System” ,“基本输入输出系统”,是一组固化到计算机内主板上一个 ROM 芯片上的程序。顾名思义,它保存着计算机最重要的基本输入输出的程序,还包括开机后自检程序和系统自启动程序。除此以外,它还可从 CMOS 中读写系统设置的具体信息。
4.c语言相关:
char *p 中p是地址变量;
p[i]等价于*(p+i),而不是数组p的第i个元素
5.cpu的管脚与内存相连。同时各种设备都需要连接到cpu上,cpu向这些设备发送电信号(IN,OUT等)。当处理机与外部设备处理速度相差较大时,可以通过缓冲技术来进行处理。中断机制,可以让cpu不用一直查询外部设备(鼠标,键盘等)的状态,而是把精力集中在处理任务上。
6.显示问题:rgb色号设置,鼠标显示
7.markfile工具
https://blog.csdn.net/weixin_38391755/article/details/80380786#:~:text=1%20Makefile%20%E4%BB%8B%E7%BB%8D
macos迅速上手markfile:https://zhuanlan.zhihu.com/p/235249478