易截截图软件、单文件、免安装、纯绿色、仅160KB

老手经验:Linux驱动程序开发学习步骤 [转stonly]


2009-10-21
1. 学会写简单的makefile
2. 编一应用程序,可以用makefile跑起来
3. 学会写驱动的makefile
4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。
5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。
6. 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。
7. 简单学习下内存管理, 这个是最难的,明白各种memory alloc的函数实现细节。这是linux开发的基本功。
8. 学习锁机制的应用,这个不是最难的但是最容易犯错的,涉及到很多同步和并发的问题。
9. 看内核中实际应用的驱动代码。 你会发现最基本的你已经知道了, 大的框架都是一样的, 无非是read, write, ioctl等函数的实现, 但里面包含了很多很多细小的实现细节是之前不知道的。 这时候就要考虑到很多别的问题而不仅仅是基本功能的实现。
推荐您看2.6.20中integrated的一个驱动 kvm,记得是在driver/lguest下,很好玩的,就是linux下的虚拟机驱动,代码不长,但功能强大。有能力的可以自己写一操作系统按照要求做成磁盘镜像加载到虚拟机中,然后客户机可以有自己的4G虚拟地址空间。
10. 看完驱动欢迎您进入Linux kernel学习中来。
最简单的方法,跟着ldd(linux devive driver)做一遍。


相关文档:

LINUX 下动态,静态链接库实战

对于动态链接库和静态链接库的概念以及链接方式不再累赘。直接开始上代码和进行编译。-__-||。
代码很简单,横竖就三个当家的。
库头文件corey.hpp:
#ifndef LIBRARY_H
#define LIBRARY_H
void add(int,int,int*);
#endif
库实现文件corey.cpp
#include "corey.hpp"
void add(int a,int b,int *c){
int total=a ......

Linux关机命令详解

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都
  可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希
  望你可以更加灵活的运用各种关机命令。
  1.shutdown
  shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,
   ......

linux常用c头文件

linux常用头文件如下:
POSIX标准定义的头文件
<dirent.h>       
目录项
<fcntl.h>         文件控制
<fnmatch.h>    文件名匹配类型
<glob.h>   
路径名模式匹配类型
< ......

linux 学习过程(1)

                         linux基础知识
General Public Licence  GPL
GNU 项目的c库,gcc,Emacs,bash等移植到linux内核
linux版本有:linux   BSD unix    ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号