自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LieBao

耐心等待,你想要的时间都会给你!!!永远知识就是力量。。。

  • 博客(6)
  • 收藏
  • 关注

原创 Linux字符设备驱动模型--字符设备的注册

当我们编写字符设备驱动程序的时候,在进行字符设备对象cdev的分配、初始化,设备号的注册这些初始化阶段之后,就可以将它加入到系统中,这样才能使用这个字符设备。将一个字符设备加入到系统中调用的函数时cdev_add,内核源码如下:int cdev_add(struct cdev *p, dev_t dev, unsigned count){ p->dev = dev; p->coun

2017-12-29 15:51:52 482 2

原创 Linux设备号的构成和分配内核机制

我们知道“Linux下一切皆文件”(当然由于历史原因,网络设备除外,它是通过socket进行操作的),我们操作设备都要通过文件进行操作也就是所所谓的操作设备文件节点,但是在Linux内核中是使用设备号来唯一的识别和管理设备,就相当于公民的省份证号码一样(其实吧,计算机还是喜欢数字的像标识进程使用进程的PID,管理用户使用UID,管理磁盘上的文件使用的inode号,管理网络中的计算机使用IP地址等等)

2017-12-29 14:59:17 2185 1

原创 字符设备cdev的分配和初始化

我们知道注册字符设备首先要有已经分配并初始化好的的cdev,那么就需要内核提供的接口cdev_alloc和cdev_init。下面我们来看看着两个接口是如何实现的: 设备驱动程序中可以使用两种方式来产生struct cdev对象。一种是静态定义的方式,一种是在程序执行期间通过动态分配方式产生: 1.静态定义 static struct cdev chr_dev; 2.动态分配 static

2017-12-29 10:43:25 658

原创 字符设备的内核抽象

Linux内核中处处体现面向对象的设计思想,为了统一形形色色的设备,Linux系统将设备分为三类:字符设备、块设备、网络设备。并将其分别抽象为struct cdev,struct block_device,struct net_devce三个对象,具体的设备都可以包含着三种对象从而继承和三种对象属性和操作,并通过各自的对象添加到相应的驱动模型中,从而进行统一的管理和操作。 顾名思义,字符设备驱动程

2017-12-29 10:03:44 277

原创 浅谈ext2文件系统

我们知道文件系统是组织和管理磁盘上的文件,并向用户提供操作接口(open、read、write等),Unix中的每个对象几乎都可以当做文件来看待。内核在没有结构的硬件上构造结构化的文件系统,而文件抽象在整个系统中广泛使用。Linux支持多种文件系统,如ext2,ext3,vfat等,ext2是符合Linux标准的文件系统。 我们知道,一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种

2017-12-27 15:38:12 387

原创 内核中inode结构体

在介绍inode结构体之前先做一个链接文件的实验: 1.创建一个普通的文件test.txt,并写入内容查看,如下 2.创建test.txt的硬链接文件,并测试如下: 3.创建test.txt的软连接文件并测试,如下: 4.ls命令查看文件相关信息,如下: 根据现象可以发现,test.txt文件的硬链接文件test_hardlink的inode号和原文件一样,而它的软链接文件

2017-12-27 15:16:10 7808

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除