摘要: 内核模块编程一、准备工作虚拟机:VMware Workstation 12操作系统:ubuntu当前内核版本:linux-headers-4.4.0-22-generic 二、有关于内核模块的知识模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核 阅读全文
posted @ 2016-05-23 21:51 20135330张若嘉 阅读(1821) 评论(0) 推荐(0) 编辑
摘要: Linux内核分析期中知识点总结 =========================== 张若嘉 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC 1000029000 知识概括: 计算机是如何工作的 计算机 阅读全文
posted @ 2016-04-24 10:05 20135330张若嘉 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 第八章 进程的切换和系统的一般执行过程 ===================================== 进程调度与进程调度的时机分析 第一种分类: I/O密集型(I/O bound):频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU bound):计算密集型 阅读全文
posted @ 2016-04-14 18:52 20135330张若嘉 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 第四章 进程调度 =============== 多任务 多任务操作系统就是能 同时 并发的 交互 执行 多个进程 的操作系统 多任务操作系统分为: 非抢占式多任务(强制的挂起动作就叫做抢占) 抢占式多任务(进程主动挂起自己的操作称为让步) 策略 进程可以被分为: I/O消耗性(大部分时间用来提交I 阅读全文
posted @ 2016-04-12 18:26 20135330张若嘉 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 链接 ==== 链接的定义 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储并执行 链接可以执行于编译时,也就是在源代码被翻译成机器代码时;也可以执行于加载时,也就是在程序被加载器加载到存储器并执行时 静态链接 javascript Unix的静态链 阅读全文
posted @ 2016-04-06 23:33 20135330张若嘉 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 第七章 可执行程序的装载 ======================== 可执行程序的生成 可执行程序的生成: c语言代码 经过编译器的预处理 编译成汇编代码 由汇编器编译成目标代码 链接成可执行文件 预处理负责把include的文件包含进来及宏替换等工作 以HelloWorld.c文件作为例子: 阅读全文
posted @ 2016-04-06 23:23 20135330张若嘉 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 进程控制块PCB——task_struct ============================ 操作系统的内核里的三大功能: 进程管理 内存管理 文件系统 进程描述符——task_struct 进程管理是最核心的内容 然而Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,就绪状 阅读全文
posted @ 2016-03-30 23:56 20135330张若嘉 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 第十八章 调试 ============== 准备开始 准备工作需要的是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 内核中的bug 内核bug的原因可能有: 错误代码 同步时发生的错误,例如共享变量锁定不当 错误的管理硬件 内核bug发作的症状可能有: 降低所有程序的运行性能 阅读全文
posted @ 2016-03-30 23:46 20135330张若嘉 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 第3章 进程管理 ============== 进程 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码 执行线程,简称线程,是在进程中活动的对象 在传统的Linux系统中,一个进程只包含一个线程,但现在的系统中,包含多个线程的多线程程序司空见惯 而在Li 阅读全文
posted @ 2016-03-30 23:28 20135330张若嘉 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 系统调用在内核代码中的工作机制和初始化 ========================================= xyz()与sys_xyz()是通过系统调用号联系在一起的 0x80与system_call是通过中断向量联系起来的 系统调用机制的初始化 用汇编代码编写系统调用的过程: 确定 阅读全文
posted @ 2016-03-26 21:08 20135330张若嘉 阅读(135) 评论(0) 推荐(0) 编辑