内核空间与用户空间之间的接口

1. 内核空间与用户空间的相互作用

在android开发过程中,很多应用程序需要编写内核级和用户级的程序来一起完成某个任务,流程如下

(1)编写内核服务程序利用内核空间提供的权限和服务来接收,处理和缓存数据。

(2)编写用户程序与之前完成的内核服务程序交互。可以利用用户程序来配置内核服务的参数。

在andriod开发过程中,内核空间和用户空间联合完成的典型应用,Netfilter (内核服务程序:防火墙)VS IPtable(用户级程序:规则设置程序);IPSEC(内核服务程序:VPN协议部分)VS ike(用户级别程序:VPN密匙处理)

2.实现系统和硬件之间的交互

在linux平台下,5种方式实现硬件与系统的交互功能的方式

(1)编写自己的系统调用

系统调用是用户级程序访问内核的基本方法。linux 提供200多个标准的系统调用,include/asm-i386/unistd.h 和arch/i386/kernel/entry.s

(2)编写驱动程序

驱动程序运行在内核空间,用户空间的应用程序通过文件系统中/dev/目录下的一个文件来和它交互。

open()-read()-write()-ioctl()-close()

(3)使用PROC文件系统

proc用于监视,管理和调试系统,如PS和TOP等管理工具。

(4)使用虚拟文件系统(VFS)

#CAT/sagafa/log 获取日志信息

(5)使用内存映像

Linux通过内存映像机制来提供用户程序对内存直接访问的能力。内存映像就是把内存中特定部分的内存空间映射到用户级程序的内存空间去。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值