FreeBSD4.0 动态内核链接机制(KLD)编程指南
2009-05-13 04:01:48来源:未知 阅读 ()
FreeBSD4.0 动态内核链接机制(KLD)编程指南
本文出自: http://www.asfocus.com (2001-07-04 09:04:00)
作者:Andrew Reiter
整理:小四
出处:http://www.watson.org/~arr/
主页:http://www.nsfocus.com
日期:2000-10-26
目录:
★ 简介
★ 所有KLD的共性
★ KLD系统调用实现框架
★ KLD字符型设备驱动程序实现框架
★ 参考资料
★ 简介
本文的目的在于介绍FreeBSD操作系统下基础的KLD开发设计技术。
FreeBSD 3.1下提供过可加载内核模块技术(LKM),FreeBSD 4.0下提供的动态内
核链接机制(KLD),可以简单地理解成LKM的升级。采用KLD,可以增加系统调用、调
试设备驱动程序、提供访问内核数据空间的方便接口。下面我们对比一下LKM和KLD:
--------------------------------------------------------------------------
1. LKM采用用户态的链接器重定位二进制数据后再压入内核空间。
KLD机制由内核亲自进行重定位操作
2. LKM采用特殊的数据结构,LKM Driver了解这种数据结构,并通过它与内核交互,
比如VFS LKM采用一个结构,该结构里包含指向VFS TABLES的指针。
LKM的目的单纯明确,很难将LKM代码移植成真正的内核代码。
KLD采用常规代码,一个KLD文件可以不包含任何模块,也可以包含多个模块。每
个模块均包含自初始化代码,并完成自注册。
KLD的代码和内核代码保持一致。很容易从内核中提取部分代码移植成KLD代码。
3. 现在KLD的依赖关系和版本信息从内核里剥离出来,完全位于模块层。
--------------------------------------------------------------------------
这份指南直奔两个KLD开发者感兴趣的主题,希望你具有基本的FreeBSD内核知识
以及K & R C编程技能。必须提醒的是,例子代码在FreeBSD 4.0下调试通过。下面我
们将要介绍的主题有三:
--------------------------------------------------------------------------
1. 所有KLD的共性
2. KLD系统调用实现框架
3. KLD字符型设备驱动程序实现框架
--------------------------------------------------------------------------
本文的目的是帮助那些正在学习KLD编程的朋友快速掌握KLD编程接口,进入更高
层次。
★ 所有KLD的共性
所有的KLD代码都有一个主入口函数和一个宏,并且简单地采用Makefile文件编译。
--------------------------------------------------------------------------
1. 主入口函数,或者说加载/卸载句柄
2. DECLARE_MODULE()宏
3. 利用Makefile文件进行编译
--------------------------------------------------------------------------
下面是一个典型的主入口函数:
--------------------------------------------------------------------------
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:FreeBSD 安全 HOWTO
- 求PC-BSD 7.1安装指南? 2009-05-13
- OpenBSD 3.x 防火墙 PF配置新手指南 2009-05-13
- 嵌入式开发专题:C语言嵌入式系统编程修炼(转) 2009-05-13
- sysctl编程读电池状态 2009-05-13
- ZFS最佳实践指南 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash