摘要: 程序破解 1、 掌握NOP、JNE、JE、JMP、CMP汇编指令的机器码 NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90) JNE:条件转移指令,如果不相等则跳转。(机器码:75) JE:条件转移指令,如果 阅读全文
posted @ 2016-06-09 16:23 20135327郭皓 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 内核模块编译 1、实验原理 Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合。之所以提供模块机制,是因为Linux本身是一个单内核。单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷。 Linux模块可以通过静态或动态的方法加载到内核空间, 阅读全文
posted @ 2016-05-21 23:47 20135327郭皓 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 第十七章 设备与模块 在本章中,关于设备驱动和设备管理,我们讨论四种内核成分。 设备类型:在所有 Unix 系统中为了统一普通设备的操作所采用的分类. 模块: Linux 内核中用于按需加载和卸载目标码的机制. 内核对象:内核数据结构中支持面向对象的简单操作,还支持维护对象之间的父子关系。 sysf 阅读全文
posted @ 2016-05-05 14:31 20135327郭皓 阅读(204) 评论(0) 推荐(0) 编辑
摘要: Linux内核分析 期末总结 一、知识概要 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 函数调用堆栈 模拟存储程序计算机工作模型和时钟中断 在mykernel基础构建一个简单的操作系统 3 阅读全文
posted @ 2016-04-28 13:49 20135327郭皓 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Linux内核分析第九周 期中总结 一、知识概要 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 函数调用堆栈 模拟存储程序计算机工作模型和时钟中断 在mykernel基础构建一个简单的操作系 阅读全文
posted @ 2016-04-20 20:44 20135327郭皓 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 第八周 进程的切换和系统的一般执行过程 一、进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: I/O-bound:频繁进行I/O,花费很长时间等待I/O CPU-bound:计算密集型,需要大量CPU时间进行计算 第二种分类: 阅读全文
posted @ 2016-04-17 18:57 20135327郭皓 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时闹。进程调度程序(常常 简称调度程序)可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统。 调度程序没有太复杂的原理。最大限度地利用处理器时间的原则是,只要有可以执行的进 程,那么就总会有进程正在执行。 4.1 多 阅读全文
posted @ 2016-04-14 14:54 20135327郭皓 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 第七周 可执行程序的装载 郭皓 原创作品转载请注明出处 《Linux内核分析》MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一、预处理,编译,链接和目标文件格式 1.可执行程序是怎么得来的 c代码->预处理->汇编代码->汇编器->目 阅读全文
posted @ 2016-04-09 23:39 20135327郭皓 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 第七章 中断和中断处理 7.1 中断 中断使得硬件得以发出通知给处理器。 不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标志。 这些中断值通常被称为中断请求(IRQ)线.每个 IRQ线都会被关联二个数值量一一例如, 在经典的 PC 机上, IRQ0是时钟中断,而 IRQ1是键盘中断。但并非 阅读全文
posted @ 2016-04-07 14:19 20135327郭皓 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 进程的描述和进程的创建 一、进程的描述 操作系统三大功能: 进程管理 内存管理 文件系统 进程描述符task_struct数据结构 task _ struct:为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 进程的状态:Linux进程的状态(就绪态、运行态、 阅读全文
posted @ 2016-04-03 16:03 20135327郭皓 阅读(302) 评论(0) 推荐(0) 编辑