Linux文件系统和底层驱动的笔记

来源:互联网 发布:淘宝开放平台接口 编辑:程序博客网 时间:2024/06/03 02:40

1、文件和目录的概念

文件是磁盘上特定格式的文件块集合,操作系统通过特定的结构可以方便地查找和访问集合内某个磁盘块。

文件是建立在文件系统概念上的,是存储在文件系统中一组磁盘块数据的命名对象。一个文件可以使空文件,也可以由多个任意多个磁盘块组成。

文件名用来标识文件的字符串,保存在目录文件中。

目录是文件名名或者目录名的命名集合。在Linux系统中,目录是一种特殊文件,目录的内容是文件或者其他目录的名称。

路径是用‘/’分隔的文件名集合。路径是一个文件在文件系统中的位置。

文件是Linux系统处理数据的基本单位,实际上,Linux系统所有的数据以及其他实体都是按照文件组织的。

2、文件分为普通文件,文本文件,二进制文件,目录,设备文件。

文件系统的目录结构:bin、dev、home、lost+found、proc、sbin、usr、boot、lib、etc、mnt、root、tmp、var。

3、字符设备和块设备、网络设备

设备驱动通常作为一类特殊的文件存放在/dev目录下,c表示字符设备,b表示块设备。

字符设备是Linux最简单的一类设备。应用程序就像操作普通文件一样操作字符设备,比如常见的串口、调制解调器。

与字符设备相比,块设备复杂得多。最主要的是块设备带有缓冲,字符设备买有。块设备传输数据只能以块作为单位读写,字符设备是以字节作为最小读写单位的。块设备提供随机访问的能力,字符设备只能顺序访问。

网络设备是一类特殊的设备。不是通过文件操作实现的。Linux内核为了抽象网络设备界面,为其定义了一个借口用于屏蔽网络环境下各种网络设备的差别。内核下所有网络设备的访问都是通过这个抽象的接口,接口对上层网络协议提供和相同的操作方法。


参考自:《ARM嵌入式 LINUX系统开发详解》弓雷


底层驱动的原理

可参考:http://www.cnblogs.com/heat-man/p/4175842.html

对于一个简单的类似于led灯的底层驱动最后注册到linux的设备文件里面,供上层系统调用。在这个过程中,跟单片机和STM32其实也是一样的,只不过在linux中有特定的函数,需要bsp工程师看懂芯片的基础上封装好。

具体底层寄存器涉及函数Linux内核中ioremap映射的透彻理解,可参考地址是http://blog.csdn.net/hustyangju/article/details/20467007。

0 0