系统调用
所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。
为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在...
select:fd_set是输入结果参数,每次select之后,还得重置fd_set(1)使用copy_from_user从用户空间拷贝fd_set到内核空间,第一步需要复制所有感兴趣的文件描述符到内核态(2)注册回调函数__pollwait(3)遍历所有fd,调用其对应的poll方法(对于sock...
分类:
其他好文 时间:
2015-07-25 21:16:23
阅读次数:
250
一、简介iptables是可以实现netfilter框架的一个命令,通过调用syscall使内核空间的防火墙规则和用户空间交互。配置文件/etc/sysconfig/iptables-config/etc/sysconfig/iptables二、四表五链模型【结合不同的扩展】iptables可以针对OSI二、三、四、七层进行报文进行规则匹配ipt..
分类:
其他好文 时间:
2015-07-25 10:50:16
阅读次数:
265
分布式复制块设备(DistributedReplicatedBlockDevice,drbd)通过网络实现块设备数据实时镜像,可以简单地理解为一种基于网络的raid1;drbd工作在内核空间,它镜像复制的是二进制数据,按位bit对应,数据同时存在于本地主机和远程主机上,在遇到需要切换的时候,远程主机只需..
分类:
其他好文 时间:
2015-07-25 07:11:58
阅读次数:
134
【摘要】Linux中的内核空间到用户空间的地址映射让用户层应用可以直接访问内核地址,这就是mmap方法。应用程序通过内存映射可以直接访问设备的I/O存储区或DMA缓冲。内存映射使用户空间的一段地址关联到设备内存上,程序在映射的地址范围内进行读取或者写入,实际上就是对设备的访问。...
分类:
其他好文 时间:
2015-07-24 00:02:44
阅读次数:
403
驱动程序运行在内核空间中,应用程序运行在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时候,我们希望通知用户程序设备已经ok,用户程序可以读取了,这样应用程序就不需要一直查询该设...
分类:
系统相关 时间:
2015-07-23 16:01:40
阅读次数:
185
驱动程序运行在内核空间中,应用程序运行在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时候,我们希望通知用户程序设备已经ok,用户程序可以读取了,这样应用程序就不需要一直查询该设...
分类:
系统相关 时间:
2015-07-21 15:28:19
阅读次数:
135
一个设备驱动的主要任务有两个:
1. 存取设备的内存
2. 处理设备产生的中断对于第一个任务,UIO 核心实现了mmap()可以处理物理内存(physical memory),逻辑内存(logical memory),
虚拟内存(virtual memory)。UIO驱动的编写是就不需要再考虑这些繁琐的细节。第二个任务,对于设备中断的应答必须在内核空间进行。所以在内核空间有一小部分代码...
分类:
系统相关 时间:
2015-07-17 10:06:47
阅读次数:
402
一个设备驱动的主要任务有两个:
1. 存取设备的内存
2. 处理设备产生的中断对于第一个任务,UIO 核心实现了mmap()可以处理物理内存(physical memory),逻辑内存(logical memory),
虚拟内存(virtual memory)。UIO驱动的编写是就不需要再考虑这些繁琐的细节。第二个任务,对于设备中断的应答必须在内核空间进行。所以在内核空间有一小部分代码...
分类:
系统相关 时间:
2015-07-17 10:06:45
阅读次数:
226
进程虚拟内存 1 进程地址空间 进程虚拟内存地址空间起始于0,终止于TASK_SIZE-1,其上是内核空间,总的地址空间按3:1划分,用户进程不能访问内核空间,如果没有某种协议,一个用户进程也不能访问其他进程的空间。1.1 进程地址空间的布局a 当前运行代码的text段b 程序使用的动态库的代码c ...
分类:
系统相关 时间:
2015-07-12 21:34:52
阅读次数:
223