自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

转载 中断共享

2012-08-17 14:43:15 497

转载 Syscall系统调用Linux内核跟踪

在Linux的用户空间,我们经常会调用系统调用,下面我们跟踪一下read系统调用,使用的Linux内核版本为Linux2.6.37。不同的Linux版本其中的实现略有不同。 在一些应用中我们可以看到下面的一些定义: #define real_read(fd, buf, count ) (syscall(SYS_read, (fd), (buf), (count)))

2012-08-17 14:01:47 1154

转载 Linux中断处理体系结构分析(二)

1.中断处理的体系结构    我们知道编写设备驱动程序一定要用到中断处理函数,这在驱动程序的编写中,占据很重要的一部分。在响应一个特定的中断的时候,内核会执行一个函数,该函数叫做中断处理程序(interrupt handler)或中断服务例程(interrupt service routine ,ISP).产生中断的每个设备都有一个相应的中断处理程序,中断处理程序通常不和特定的设备关联,而

2012-08-17 14:00:30 1232

转载 Linux中断处理体系结构分析(一)

异常,就是可以打断CPU正常运行流程的一些事情,比如外部中断、未定义指令、试图修改只读的数据、执行swi指令(Software Interrupt Instruction ,软件中断指令)等。当这些事情发生时,CPU暂停当前的程序,先处理异常事件,然后再继续执行被中断的程序。操作系统中经常通过异常来完成一些特定的功能。其中的中断也占有很大的一部分。例如下面的这几种情况: 当CPU执行未定义的

2012-08-17 13:59:22 556

转载 fork exec

2012-08-16 15:21:52 555

转载 Linux进程地址空间

转自:http://blog.csdn.net/woshixingaaa/article/details/6326472   Linux进程地址空间                                作者:李万鹏           内核使用内存描述符结构体表示进程的地址空间,该结构体包含了和进程地址空间有关的全部信息。内存描述符由mm_struct结构体表示,定义在文件中。

2012-08-16 14:55:32 711

转载 虚拟内存管理

我们知道操作系统利用体系结构提供的VA到PA的转换机制实现虚拟内存管理。有了共享库的基础知识之后,现在我们可以进一步理解虚拟内存管理了。首先分析一个例子: $ ps PID TTY TIME CMD 29977 pts/0 00:00:00 bash 30032 pts/0 00:00:00 ps $ cat /proc/29977/maps 080

2012-08-16 14:29:41 686

转载 内核源码学习:进程的虚拟空间

如前所述,每个进程拥有3G字节的用户虚存空间。但是,这并不意味着用户进程在这3G的范围内可以任意使用,因为虚存空间最终得映射到某个物理存储空间(内存或磁盘空间),才真正可以使用。 那么,内核怎样管理每个进程3G的虚存空间呢?概括地说,用户进程经过编译、链接后形成的映象文件有一个代码段和数据段(包括data段和bss段),其中代码段在下,数据段在上。数据段中包括了所有静态分配的数据空间,即全局

2012-08-16 10:03:05 741

转载 Linux内存管理之slab机制(初始化)

一、内核启动早期初始化 start_kernel()->mm_init()->kmem_cache_init()   执行流程:   1,初始化静态initkmem_list3三链;   2,初始化cache_cache的nodelists字段为1中的三链;   3,根据内存情况初始化每个slab占用的页面数变量slab_break_gfp_order;   4,将cache

2012-08-15 11:47:56 912

转载 linux内存管理之伙伴系统(内存分配)

一、Linux伙伴系统分配器 伙伴系统分配器大体上分为两类。__get_free_pages()类函数返回分配的第一个页面的线性地址;alloc_pages()类函数返回页面描述符地址。不管以哪种函数进行分配,最终会调用alloc_pages()进行分配页面。   为清楚了解其分配制度,先给个伙伴系统数据的存储框图       也就是每个order对应一个free_area结构,fr

2012-08-15 11:44:08 1100

转载 linux内存管理之伙伴系统(建立)

内核使用伙伴系统来解决内存分配引起的外部碎片问题。 一、数据结构描述   结构zone中的free_area数组描述伙伴系统该数组为free_area结构   www.2cto.com struct zone {  ……      struct free_area    free_area[MAX_ORDER];  ……  };  www.2cto.com struct f

2012-08-15 11:41:32 895

转载 Linux内存管理之伙伴系统(内存释放)

Linux内核伙伴系统中页面释放,主函数为free_pages()   一、上层操作   www.2cto.com /*用虚拟地址进行释放*/  void free_pages(unsigned long addr, unsigned int order)  {      if (addr != 0) {          VM_BUG_ON(!virt_addr_valid((

2012-08-15 11:39:00 1395

转载 linux内核V2.6.11学习笔记(3)--switch_to宏

这一节可以很长,也可以很短.要写长是因为这里有不少细节可以写,要写短是因为如果不关注细节,而只关注基本的原理,那么几句话就可以说完了. 坦白的说,细节部分我还没有完全吃透,即使是>一书,讲到这部分也费了不少篇幅.因为我在第一遍阅读时阅读速度要尽可能的加快,一些不太明白的细节暂且放过去,等精读第一遍完毕了再继续深入,所以我选择了长话短说. switch_to宏用于进程切换,给定了前一个进程结

2012-08-14 11:22:23 1873

转载 linux内核学习笔记【一】临时内核页表 Provisional kernel Page Tables

最近开始学习linux内核,看了《深入理解linux内核》,开始写点学习收获。内核版本为2.6.11     临时全局目录(provisional page global directory)是在内核编译过程中静态初始化的,而临时页表是由startup_32()汇编语言函数(定义于arch/i386/kernel/head.S)初始化的。临时页全局目录放在swapper_pg_dir变量中,sw

2012-08-13 16:17:30 1174

转载 linux 启动过程临时页表到底映射了多大内存

从 linux-2.4内核开始,在建立临时页表的时候,一般的教科书都说是映射了8M的物理内存,但是为什么是映射8M呢?当时网上有资料说,8M足够了,但为什么就足够了,一直没有彻底搞清楚,今天又重新分析这部分的代码(linux-2.6.24)。 先看下面内存布局图: 文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/6_system/linux

2012-08-13 16:14:16 711

pushAACFile_toRTMP

修改的雷的例子,自己加了一个单独推AAC文件到 RTMP服务器的经测试,可以跑通 工程中有 推 H264文件到 RTMP服务器 推 AAC文件到 RTMP服务器 推 FLV文件到 RTMP服务器

2016-02-24

串口DMA方式发送数据MINI2440UartDma

串口DMA方式发送数据MINI2440UartDma

2012-12-27

一个简单的多任务内核实例/Linux-0.00

一个简单的多任务内核实例/Linux-0.00

2012-06-27

UNIX网络编程实用技术与实例分析

UNIX网络编程实用技术与实例分析

2012-02-27

Minix系统代码 里面 有相关的 两本书

Minix系统代码 里面 有相关的 两本书

2012-02-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除