11 2012 档案

建立自己的函数调用帧
摘要:本文从最简单的打印“hello world!”的C程序开始,写出其汇编程序(在汇编中使用C库函数),讲解怎样建立自己的函数调用帧,接着使用jmp指令替代call完成函数的调转与返回。在linux内核中这种技巧被大量使用,最后举出内核中使用到的两个实例。首先,下面的C程序完成的功能,相信大家学大多数语言,都是用来讲解的第一个示例://helloworld1.c#include <stdio.h>int main(){ printf("hello world!\n"); return 0;}我们使用gcc进行编译生成可执行文件,结果如下所示:[guohl@guohl 阅读全文

posted @ 2012-11-26 21:35 hazir 阅读(1925) 评论(4) 推荐(1) 编辑

Linux 内核讨论课记录
摘要:以下为每周六实验室内核讨论课我所主讲的主要内容,在百度文库和CSDN下载频道中上传有我所讲的PPT原稿。现对以前做个补充,以后每次讲完之后就更新。9月29日星期六上午:主讲进程描述符结构体task_struct数据结构,由于task_struct这个结构体是系统感知进程存在的唯一标志,linux内核涉及进程和程序的所有算法都是围绕这个数据结构建立的,里面存在上百个字段,表示了进程的状态、标识符、进程之间的链接关系、进程调度相关的信息、时间和定时器信息、 文件系统信息、虚拟内存信息、与进程间通信相关信息等等等等。可以说进程描述符是我阅读Linux内核源代码的起点,很多概念都没有,因此无论是看书还 阅读全文

posted @ 2012-11-06 11:58 hazir 阅读(374) 评论(0) 推荐(0) 编辑

一个代码可以创造一个世界,也可以毁灭一个世界!

点击右上角即可分享
微信分享提示