摘要:Linux及安全实践二 基本内核模块 20135238 龚睿 1、 理解模块原理 linux模块是一些可以作为独立程序来编译的函数和数据类型的集合。之所以提供模块机制,是因为Linux本身是一个单内核。单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷。 阅读全文
Linux内核分析 期中总结
2016-04-24 17:07 by KG35, 192 阅读, 0 推荐, 收藏, 编辑
摘要:期中总结 学习笔记链接 第一周: http://www.cnblogs.com/KG35/p/5224713.html 第二周:http://www.cnblogs.com/KG35/p/5247310.html 第三周:http://www.cnblogs.com/KG35/p/5269204.h 阅读全文
Linux内核分析08
2016-04-11 16:21 by KG35, 256 阅读, 0 推荐, 收藏, 编辑
摘要:进程的切换和系统的一般执行过程 一,进程切换的关键代码switch_to分析 进程调度的时机 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(); 内核线程可以直接调用schedule() 阅读全文
Linux内核分析07
2016-04-06 10:45 by KG35, 255 阅读, 0 推荐, 收藏, 编辑
摘要:可执行程序的装载 一,预处理、编译、链接和目标文件的格式 可执行程序是怎么来的? 预处理 把include里的宏定义替换 做字符串处理。 efl格式? 目标文件格式,Windows中用PE Linux中用efl。 静态链接、动态链接? ABI和文件格式的关系? 二进制兼容。 可重定位文件 可执行文件 阅读全文
Linux内核分析06
2016-03-28 17:25 by KG35, 253 阅读, 0 推荐, 收藏, 编辑
摘要:进程的描述和进程的创建 一,进程的描述 进程控制块PCB——task_struct (进程描述符),为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 struct task_struct数据结构很庞大,进程的标示pid。 Linux进程的状态与操作系统原理中的 阅读全文
Linux内核分析 05
2016-03-27 13:44 by KG35, 314 阅读, 0 推荐, 收藏, 编辑
摘要:扒开系统调用的三层皮(下) 一,给MenuOS增加time和time-asm命令 把time和time-asm添加到MenuOS里面去 作为命令。扩展MenuOS的功能。本周把上周增加的系统调用添加进MenuOS系统里面来。 所以这周我们要把 getpid 添加进来。 1.先执行rm menu -r 阅读全文
Linux内核分析04
2016-03-20 13:18 by KG35, 260 阅读, 0 推荐, 收藏, 编辑
摘要:用户态、内核态和中断的处理过程 用户态和内核态的区分 内核态:代码可以执行特权指令,访问任意的物理地址,CPU的这种执行级别就对应着~ 相对的用户态就对应着低级别的执行状态就是用户态,代码所掌控的范围有限。 至于为什么会划分权限,因为操作系统的发展,防止程序员写的代码造成系统运转的崩溃 划分为0、1 阅读全文
Linux内核分析 03
2016-03-12 16:36 by KG35, 283 阅读, 0 推荐, 收藏, 编辑
摘要:一,构造一个简单的Linux系统MenuOS 1、Linux内核源代码简介 回顾一下前面的三大法宝和两把宝剑。 arch/x86目录下的代码需要重点关注 阅读代码的时候把除了x86以外的都删掉会有利于代码的阅读和理解。其他目录下的基本对我们的学习没有什么用处。 根目录下除了arch外还有几个比较重要 阅读全文
Linux内核分析 02
2016-03-06 14:02 by KG35, 300 阅读, 0 推荐, 收藏, 编辑
摘要:二,操作系统是如何工作的 1、函数调用堆栈 三大法宝:存储程序计算机 函数调用堆栈 中断机制 堆栈:是C语言程序运行时必须的一个记录调用路径和参数的空间。是计算机内部现成的东西,我们直接使用。 包括函数调用框架、传递参数、保存返回地址、提供局部变量的空间等等。 堆栈相关寄存器:esp堆栈指针(栈顶) 阅读全文
Linux内核分析
2016-02-28 14:29 by KG35, 354 阅读, 0 推荐, 收藏, 编辑
摘要:通过分析汇编代码理解计算机是如何工作的 网易云课堂《Linux内核分析》作业 实验目的: 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 实验过程: 登陆实验楼虚拟机http://www.shiyanlou.com/courses/195 准备main.c源码 main.c 打开终端 阅读全文