摘要: 一、引入系统调用1.概念:操作系统为在用户态运行的进程与硬件设备进行交到提供了一组接口。Linux通过向内核发出系统调用来实现这些接口2.作用:对硬件设备操作的编程更容易提高了系统的安全性使程序更有可移植性3.进入系统调用的两种方法(1)int &0x80汇编指令(2)sysenter汇编指令二、系统调用与API的区别1.API只是一个函数定义,说明了如何获得一个给定的服务系统调用中通过软中断向内核发出一个明确的请求2.API可以不使用系统调用,也可以使用多个系统调用多个API也可以调用封装了不同功能的同一系统调用3.系统调用属于同内核用户态的库函数不属于内核三、通过int $0x80 阅读全文
posted @ 2012-05-29 20:09 windmissing 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 一、4G线性空间的使用1.0-3G属于用户空间,无论是用户态还是内核态都可以寻址,但是内核一般不访问这里的数据3-4G属于系统空间,只有内核态的进程才可以访问。二、系统空间1.3G-4G的系统空间的使用(1)3G ----- 3G+high_memory:对前896MB RAM进程映射的线性地址(2)high_memory ----- PKMAP_BASE:非连续内存区。两个区间之间有4KB或8KB的空隔,是为了捕获对内存的越界访问(3)PKMAP_BASE ----- FIXADDR_START:永久内核映射(4)FIXADDR_START ----- 4G:固定映射的线性地址2.高端内存的 阅读全文
posted @ 2012-05-29 19:44 windmissing 阅读(732) 评论(0) 推荐(0) 编辑