摘要:
第十七章 设备与模块 一、四种内核成分 设备类型:在所有 Unix 系统中为了统一普通设备的操作所采用的分类. 模块: Linux 内核中用于按需加载和卸载目标码的机制. 内核对象:内核数据结构中支持面向对象的简单操作,还支持维护对象之间的父子关系。 sysfs :表示系统中设备树的一个文件系统。 阅读全文
摘要:
【洪韶武 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 】 一、学习心得 本学期通过网络课程的形式完成了Linux内核的学习,这种学习方式自主性相对强,十分锻炼及考验我们自身。对于Linux 阅读全文
摘要:
第四章 进程调度 调度程序负责决定将哪个程序投入运行,何时运行以及运行多长时间。进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统。调度程序是像Linux这样的多任务操作系统的基础。 一、多任务 1.多任务操作系统: 能同时并发地交互多个进程的操作系统。可划分两类: 非抢占式多 阅读全文
摘要:
【洪韶武 原创作品转载请注明出处 《Linux内核分析》MOOC课程】 第八周——进程切换和系统的一般执行过程 一、进程调度 1.进程调度策略 Linux的调度基于分时和优先级策略 进程根据优先级排队,这个优先级的值表示如何适当分配CPU; 调度程序会根据进程的运行周期动态调整优先级,比如nice等 阅读全文
摘要:
【洪韶武 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 】 第七章 可执行程序的装载 一、可执行程序的生成 可执行程序的生成: c语言代码 >经过编译器的预处理 >编译成汇编代码 >由汇编器 阅读全文
摘要:
第七章 链接 一、 链接的概念 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程。可以执行于编译、加载和运行时,由叫做链接器(可实现分离编译)的程序自动执行。 二、静态链接 为了创建静态链接,链接器完成两个主要任务: 符号解析:将每个符号引用和一个符号定义联系起来。 重定位:编译器和汇 阅读全文
摘要:
【洪韶武 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 】 第六周 进程描述和进程控制 一、进程描述 1.进程控制块PCB和进程描述符struct task_struct 2.pid_t p 阅读全文
摘要:
第三章 进程管理 一、进程 1.进程就是处于执行期的程序,但并不局限于可执行代码。实际上,进程是正在执行的程序代码的实时结果。 2.执行线程是在进程中活动的对象 每个线程拥有一个独立的计数器、进程栈、一组进程寄存器 内核调度的对象是线程 3.在现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内 阅读全文
摘要:
【洪韶武 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 】 第五周 扒开系统调用的“三层皮”(下) 一、给MenuOS增加time和time-asm命令 更新menu代码到最新版本,在mai 阅读全文
摘要:
第十八章 调试 一、调试开始前的准备 1.准备开始 成功调试的关键在于能否将错误重现 2.内核中的bug 其产生原因无数,表象变化也多种多样。从隐藏在源代码中的错误到出现的bug,可能是由一系列连锁反应触发的。 二、通过打印调试 1.健壮性 printk()函数的健壮性特质使得任何时候、任何地方都能 阅读全文