linux 内核编程系列
shallnet
一个没赶上脑残一代90后的80后程序猿!
展开
-
linux 内核编程之字符设备驱动
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】首先需要注册设备号,有两个函数可以实现该功能:int register_chrdev_region(dev_t from, unsigned count, const char *name);int alloc_chrdev_region(dev_t *dev, unsigne原创 2014-01-01 14:50:23 · 2325 阅读 · 0 评论 -
linux内核编程之建立源码树
写内核程序需要首先建立源码树,如下步骤:1.先看目标机的的系统版本,使用命令name -r:在地址ftp://ftp.kernel.org/pub/linux/kernel/上下载该版本源码。(或者自己指定一个内核版本也可以,反正需要将此版本内核安装到自己系统中)2. copy源码到/usr/src/下,解压。3.进入该目录,依次执行:make oldconfigm原创 2014-01-01 13:50:08 · 1519 阅读 · 0 评论 -
linux内核编程之list_head
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】linux内核头文件 #include 中定义了一个list_head类型的结构体:struct list_head { struct list_head *next, *prev;};一般我们的链表节点都包含许多成员,要使用list_head结构体来构造链表的原创 2014-01-01 14:24:04 · 3883 阅读 · 0 评论 -
linux内核编程之并发控制
版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】只要并发的多个执行单元存在对共享资源的访问,竞态就可能发生。在 Linux 内核中,主要的竞态发生于如下几种情况1. 多CPU共享资源,如存储器。2. 内核支持抢占调度,一个进程在内核执行时被另外一个高优先级进行打断。3. 中断可以打断正在执行的进程,如果中断处理程原创 2014-01-01 15:10:30 · 2746 阅读 · 0 评论 -
linux内核编程之hello,world
#include //指定初始化和清理函数#include //包含可装载模块需要的大量符号和函数定义/* * 模块初始化函数,相当于应用程序的main函数,声明为static,因为该函数在其他的方没有意义 */static int __init hello_init(void){ printk(KERN_ALERT"Hello World原创 2014-01-01 13:57:15 · 1818 阅读 · 0 评论 -
linux内核编程之内核定时器
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】如果我们需要在将来某个时间点调度执行某个动作,同时在该时间点到达之前不会阻塞当前进程,可以使用内核定时器。内核定时器可用来在未来的某个特定时间点调度执行某个函数,从而可用于完成许多任务。Linux 内核所提供的用于操作定时器的数据结构和函数(位于 )如下struct原创 2014-01-01 15:17:52 · 2713 阅读 · 0 评论 -
linux内核编程之网卡驱动
每一个网络接口由一个net_device结构描述,定义在中。1.首先需要分配设备结构,使用函数:struct net_device *alloc_netdev(int sizof_priv, const char *name, void (*setup)(struct net_device));_priv是驱动程序的私有数据大小,这个区是同 net_device 结构一起分配的。name是原创 2014-01-01 15:41:33 · 3428 阅读 · 0 评论 -
linux 内核编程之proc虚拟文件系统
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】在 Linux 系统中,/proc 文件系统十分有用,它被用于内核向用户导出信息。/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux 内核空间和用户空间之间进行通信。在/proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信原创 2014-01-01 15:22:42 · 3980 阅读 · 0 评论 -
linux内核编程之netlink
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】上一节说到proc文件系统,这是用户态和内核态通信的一种方法,本节将要说到另外一种通信的方法,该方法相比于其他的内核和用户通信有时在于:Netlink相对于其他的通信机制具有以下优点: 1.使用Netlink通过自定义一种新的协议并加入协议族即可通过sock原创 2014-01-01 15:31:47 · 2810 阅读 · 0 评论