2016年6月1日

实践四

摘要: 一、概述 ELF是一种用于二进制文件、可执行文件、目标代码、共享库、和核心转储的标准文件格式。也是linux下的主要可执行文件格式 ELF文件由四部分组成,分别是ELF头(ELF header)、程序头表(program header table)、节(section)和节头表(section ta 阅读全文

posted @ 2016-06-01 23:17 20135325 阅读(706) 评论(0) 推荐(0) 编辑

2016年5月31日

实践三

摘要: 可以看到: Rbp-0x40为首地址被定义为:0x63686c,将ASCII,转换为字符为 c h l Rbp-0x20为首地址被定义为rax:0x353233353313032 如果从低地址往高地址连续的就是32 30 31 33 35 33 32 35 转换为字符表示为:20135325 采用直 阅读全文

posted @ 2016-05-31 14:15 20135325 阅读(123) 评论(0) 推荐(0) 编辑

2016年5月23日

实践二

摘要: linux内核模块的程序结构有:模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)。 一个内核模块应该至少包含两个函数。一个“开始”(初始化)的函数被称为init_module(),当内核模块被insmod 加载时 阅读全文

posted @ 2016-05-23 18:18 20135325 阅读(163) 评论(0) 推荐(0) 编辑

2016年4月28日

读书笔记(chapter17)

摘要: 设备类型:在所有Unix系统中为了统一普通设备的操作所采用的分类 模块:Linux内核中用于按需加载和卸载目标码的机制 内核对象:内核数据结构中支持面对对象的简单操作,还支持维护对象之间的父子关系 17.1设备类型 1.在Linux以及所有Unix系统中,设备被分为以下三种类型: 块设备;字符设备; 阅读全文

posted @ 2016-04-28 19:52 20135325 阅读(179) 评论(0) 推荐(0) 编辑

2016年4月18日

Linux内核分析(第九周)

摘要: 第一周总结1.存储程序计算机 + 函数调用堆栈 + 中断机制 2.堆栈:C语言程序运行时候必须的一个记录调用路径和参数的空间(函数调用框架/提供局部变量/传递参数/保存返回地址) 不同指令可能实现相同的功能 3.堆栈相关:esp ebp ;操作: push pop; ebp在C语言中用作记录当前函数 阅读全文

posted @ 2016-04-18 17:25 20135325 阅读(224) 评论(0) 推荐(0) 编辑

2016年4月11日

Linux内核分析(第八周)

摘要: 进程的切换和系统的一般执行过程 一、进程切换的关键代码switch_to分析 1.进程调度与其时机分析 分类: 第一种分类 I/O-bound:频繁的进行I/O;会花很多时间等待I/O操作完成 CPU-bound:计算密集型;需要大量cpu时间进行计算 第二种分类 批处理进程:不必与用户交互,通常在 阅读全文

posted @ 2016-04-11 18:47 20135325 阅读(167) 评论(0) 推荐(0) 编辑

2016年4月6日

读书笔记(chapter4)

摘要: 进程调度 4.1多任务 1.多任务系统可以划分为:非抢占式多任务和抢占式多任务; (在此模式下,由调度程序来决定什么时候停止一个进程的运行,以便其他进程能够得到执行机会,这个动作叫抢占; 时间片实际上是分配给可运行进程的处理器时间段 ) (在非抢占多任务模式下,除非进程自己主动停止运行,否则它会一直 阅读全文

posted @ 2016-04-06 19:54 20135325 阅读(194) 评论(0) 推荐(0) 编辑

Linux内核分析(第七周)

摘要: 可执行程序的装载 一、预处理、编译、链接和目标文件的格式 1.可执行程序怎么来的? 预处理: gcc -E -o hello.cpp hello.c -m32 *负责把include的文件包含进来及宏替换 编译: gcc -x cpp-output -S -o hello.s hello.cpp - 阅读全文

posted @ 2016-04-06 13:55 20135325 阅读(230) 评论(0) 推荐(0) 编辑

2016年3月31日

读书笔记(chapter7)

摘要: 第七章 链接 链接是将各种代码和数据部分收集起来并且组合成为一个单一文件的过程。1.这个文件可被加载到存储器并执行;2.也可以执行于加载时,也就是在程序被加载器加载到存储器并执行;3.甚至可以执行于运行时,由应用程序来执行;在早期的计算机系统,链接是手动执行的。在现代系统中,链接是由叫做链接器的程序 阅读全文

posted @ 2016-03-31 19:04 20135325 阅读(185) 评论(1) 推荐(0) 编辑

2016年3月29日

读书笔记(chapter3)

摘要: 进程管理 3.1进程 1.进程:进程就是处于执行期的程序,实际上,进程就是正在执行的程序代码的实时结果; 2.执行线程,简称线程,是进程中活动的对象(每个线程拥有独立的程序计数器、进程栈、和一组进程寄存器),内核调度的对象是线程,不是进程 3.进程提供的两种虚拟进制:虚拟处理器和虚拟内存 4.程序本 阅读全文

posted @ 2016-03-29 23:10 20135325 阅读(150) 评论(0) 推荐(0) 编辑

导航