Linux0.11 源码趣读
闪客
低并发编程公号作者
18650 人已学习
赠一得一
课程目录
已完结/共 22 讲
Linux0.11 源码趣读
15
15
1.0x
00:00/00:00
登录|注册

20|总结与回顾:搞定全部初始化工作!

你好,我是闪客。
我们今天来给第二部分做个梳理。
第二部分所讲的代码,就和第二部分的目录一样规整,一个 init 方法对应一个章节,简单粗暴。
// init/main.c
void main(void) {
...
mem_init(main_memory_start,memory_end);
trap_init();
blk_dev_init();
chr_dev_init();
tty_init();
time_init();
sched_init();
buffer_init(buffer_memory_end);
hd_init();
...
}
这个过程,你可能觉得无聊,因为全是各种数据结构、中断、外设的初始化工作,后面将会怎么用它们,并没有展开讲解。
但你也可能觉得兴奋,因为后面操作系统的全部工作,都是围绕着这几个初始化了的结构展开的,通过对这些初始化过程的了解,相信你也能略微看清了一点操作系统的工作原理了。
其实我是蛮喜欢这个过程的,比如我看电影,其实我对高潮部分并不是很感兴趣,我就喜欢看一场大战或者一场阴谋前各部门的准备工作,看着他们为了后面一个完美的计划所做的前期筹备,是一种享受,你懂的!
话不多说,现在我带着你开始回顾一遍!请享受这个过程。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文总结了操作系统初始化的工作流程,通过对各个初始化函数的梳理,展现了操作系统内部结构的规整和复杂性。文章首先介绍了进入 main 函数前的内存布局和页表映射关系,然后详细描述了进入 main 函数后的内存划分、主内存和缓冲区的初始化、中断描述符表的设置、块设备和控制台的初始化、进程调度和硬盘的初始化等工作。最后,文章强调了打开中断的重要性,代表着操作系统具有了控制台交互能力、硬盘读写能力、进程调度能力和系统调用响应能力。总结来看,本文通过对初始化工作的梳理,展现了操作系统的中断驱动特性和复杂的内部结构,为读者提供了对操作系统工作原理的初步了解。

该试读文章来自《Linux0.11 源码趣读》,如需阅读全部文章,
请先通过赠一得一解锁课程
赠一得一
登录 后留言

全部留言(13)

  • 最新
  • 精选
  • Fighting
    操作系统本质上就是中断驱动的死循环!对系统的请求都是通过中断请求来等待获得处理资源的。 “进程调度就从定时器发出中断(100ms)开始,先判断当前进程时间片是不是到了,如果到了就去 task[64] 数组里找下一个被调度的进程的信息” 一旦有任务产生(外设操作,硬件读写等),就会fork一个进程来处理,因为进程是CPU分配资源处理任务的唯一形式。这样计算机操作系统就具有了跟外界的交互的人格和自己内部合理处理问题的能力。原始而淳朴!
    2023-03-02归属地:北京
    7
  • 寻道客小林
    感谢大佬!打卡!第一遍已过,开始二刷(笔记+思维导图),期待下一期!
    2023-03-06归属地:北京
    1
  • Su
    催更
    2024-03-08归属地:上海
  • 请务必优秀
    催更下一期
    2023-11-02归属地:湖北
  • return
    太赞了,图画的很用心,感谢
    2023-09-07归属地:四川
  • 大樹
    第二期课程如何进入?
    2023-08-27归属地:广东
  • gtp
    刚刷完一遍,准备再刷一遍,期待更新
    2023-08-07归属地:北京
  • NeverMore
    催更催更 :D
    2023-05-24归属地:广东
  • 冯虚御风
    大致过了一遍,对OS有了整体的了解。对汇编、寄存器等不太熟悉,还需要继续深入。
    2023-05-14归属地:广东
  • 陈国江
    已看完,期待下一期
    2023-03-03归属地:广东
收起评论
显示
设置
留言
13
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部