Linux内核驱动学习
kindlyde
学习,学而习之。
展开
-
Linux内核驱动学习(二)----根文件系统的构成 (root filesystem)
1、建立根文件系统目录和文件 1.1创建目录 1.2创建设备文件(命令mknod);必须创建设备文件---consle\null 1.3创建配置文件---复制已有的/etc目录下的文件 1.4添加内核模块 进入上节Linux内核目录下,(注意,应该先编译内核,即命令make uImage ARCH=arm CROSS_COMPILE=arm-原创 2015-02-05 19:32:58 · 2215 阅读 · 0 评论 -
linux内核驱动学习(七)----驱动分类 | 学习方法 | 硬件访问
驱动分类: 对于驱动,我们一般按两种方法进行分类:常规分类法和总线分类法。 按照常规分类法,可以分为以下三类: 1、字符设备: 以字节为最小访问单位的设备。一般通过字符设备文件来访问字符设备驱动程序。字符驱动程序则负责驱动字符设备, ,这样的驱动通常支持open、close、read、write系统调用,应用程序可以通过设备文件(比如/dev/ttySAC0等)来访问字符设备(原创 2015-03-14 20:45:50 · 1392 阅读 · 0 评论 -
Linux内核驱动学习(三)----内核模块基础 | 设计 | 可选项
内核模块基础--特点及其命令使用 1、模块本身并不被编译进内核文件(zImage或bzImage) 2、可以根据需要在内核运行时动态加载、卸载----》进而达到节省空间的目的 命令详解(以下载驱动DNW为例): insmod 模块名称(注意有.ko后缀)--安装 insmod dnw_usb.ko lsmod-->查看安装的内核模块 rmmod 模块名称原创 2015-02-09 19:52:57 · 1392 阅读 · 0 评论 -
Linux内核驱动学习(六)----内核链表
摘要:本文主要叙述和介绍了Linux内核链表的数据结构,以及对操作内核链表函数的做了简要分析。原创 2015-03-06 22:23:16 · 868 阅读 · 0 评论 -
Linux驱动模型学习(二)---字符设备驱动模型之二---初窥字符设备驱动
相信大家通过上节的了解,对字符设备也有了感性上的认识。接下来我们就要对字符设备驱动进行剖析了(基于Linux3.0.1版本内核) 在Linux内核中,是使用struct cdev这个数据结构来表示字符设备的。 定义在中 struct cdev { struct kobject kobj; struct module *owner; const struct file原创 2015-03-18 20:50:23 · 681 阅读 · 0 评论 -
Linux驱动模型学习(一)---字符设备驱动模型之一---使用字符设备驱动
通过前面的学习,我们知道Linux内核是由大量而且复杂的代码组成的,而内核源码中又有很大一部分是各种驱动程序组成的。为了不使参与到Linux内核开发的“黑客”们不会被内核代码的复杂性淹没,设备驱动程序就是一个很好的进入Linux内核大门的入口。在接下来的一段时间里我们将要对Linux系统下的各个子系统进行归纳和学习,从而各个击破,以学习Linux下内核模块的设计和实现。 那我们就先从简单的驱动程原创 2015-03-15 22:44:17 · 894 阅读 · 0 评论 -
Linux内核驱动学习(一)----内核简介 | 配置 | 编译| 安装(PC平台下)
摘要:本文主要介绍Linux体系结构、Linux内核的构成以及Linux内核的配置安装方法原创 2015-02-05 19:00:03 · 1123 阅读 · 0 评论 -
Linux内核驱动学习(四)----内存管理子系统
摘要:本文主要讲述Linux对内存的管理,主要涉及Linux虚拟地址空间的分布、虚拟地址到物理地址的映射管理,Linux物理内存的分配。原创 2015-02-09 20:32:41 · 3416 阅读 · 0 评论 -
Linux内核驱动学习(五)----进程管理子系统
摘要:本文主要讲述Linux进程的要素、Linux进程的调度 1、Linux进程的要素 1.1程序与进程 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体。。 进程:是一个正在执行的程序,它是动态的实体 1.2进程的四要素-->《Linux情景分析》 1.2.1-->有一段程序供其执行,这段程序不一定是某个进程所专有,可以与其他进程共用 1.2.2-->有进程专用的内核空间堆栈。 1.2.3-->在内核中有一个原创 2015-02-09 21:44:47 · 1375 阅读 · 0 评论 -
在linux内核中读写文件
1. 序曲 在用户态,读写文件可以通过read和write这两个系统调用来完成(C库函数实际上是对系统调用的封装)。 但是,在内核态没有这样的系统调用,我们又该如何读写文件呢? 阅读linux内核源码,可以知道陷入内核执行的是实际执行的是sys_read和sys_write这两个函数,但是这两个函数没有使用EXPORT_SYMBOL导出,也就是说其他模块不能使用。 在fs/open.c中系统转载 2016-08-22 16:17:14 · 851 阅读 · 0 评论