00:00
好的,那首先啊,欢迎各位朋友来到铃声教育啊,我是威可。接下来啊,我主要是带着大家来学习利纳克斯内核野马分析这门课程。那么本节课呢,主要是讲解这个Linux内核的一个什么设备驱动程序。那我们啊都知道。Linux呢,这个内核啊,它是处于什么呢?用户空间跟硬件层面的中间。同时我们这个内核空间里面又分成很多个子模块啊,跟我们的硬件进行相互连接啊。然后系统调用就是用户空间到我们内核里面。那么现在我们知道设备驱动程序就是操作系统的主要任务呢,它是控制所有的这些啊,输输出的一个设备。那么这个操作系统呢,它就必须要向什么,向设备发送一些指令啊,发送一些命令来捕获中断进行什么呢啊。
01:00
错误处理。他还需要提供一些什么设备,跟我们系统其相关的一些简单的一些界面。所以说Linux这个当中啊,它这个输输出设备可以分为快设备,字符设备和网络设备啊这几种,那么接下来我们就把第一个啊基础知识把它记一下是吧。就是Linux。啊,Linux这个Linux当中它的一个什么输入啊,还有一个什么输出设备。那么它就被分为什么呢?被分为几类?分为三大类,哪三大类呢?地道类,比如我们等一下要讲的字符设备,嗯。字符设备啊,还有什么呢?还有就是快设备。啊,以及是和什么呢,和网络设备主要分为三大块。那么这种分类它使用的方法是不是可以将控制不同的实物输出设备,驱动程序啊和操作和其他这个操作系统的软件把它分离起来,是不是?
02:08
你比如这个文件系统仅仅是控制抽象的快设备而已,是不是?而且将这个啊,跟设备有关的这个部分的直接留给这个底层软件处理,就是我们所讲轻度驱动程序。那么字符设备呢?它是指那些不需要缓冲区就可以直接读取的设备啊?那系统比如这些窗口设备是不是比如DV下面呢,刚才没看到的啊,大家要搞清楚是不是。那么快设备呢,是不是它仅仅是什么以块为单位进行读写的设备,你比如什么光盘啊,什么硬盘啊,什么软盘啊等等,是不是这些就是我们所讲的一个快设备?所以接下来我们就一个一个去研究这个问题啊,但是在学习这个之前,那么接下来啊,有一个啊朋友问我,他说能不能讲一下这个什么呢?Linux这个啊启动过程,那现在啊,我就给大家啊写一下,因为上次课啊,有个朋友提到的是不是接下来什么呢?接下来我们要啊。
03:06
什么呢?啊,Linux的一个什么内核的一个启动过程,是不是Linux启动过程,那么现在呢,我就是基于什么,我写一个G叉八六的一个什么啊架构系统啊,它的一个启动顺序,嗯。啊,给启动的这个流程呢,啊,启动流程啊啊。启动流程如下,我给他画一个图形是不是啊,你跟着微克来学习这个啊,设备驱动程序开发啊,Linux内核源码分析,那这个是。一大堆的一些相关知识点,是不是那么首先我们从上往下啊,从上往下。从上往下走的话,那么第一个的话,我们肯定看到的是什么呢?第一个就是。给什么呢?我们要给这个。硬件啊,我们给硬件设备是不是进行什么进行通电,是不是通电就是上电,上电意思你不通电肯定是不行的啊,它就没办法启动,就是一坨铁是吧?好,这是第一个我们要通电。
04:11
啊,通电完之后呢,它就进入什么呢,你看通电完之后,接着就进入这个boss了。就是BS啊,基本输出的系统就是CMOSCS那一块嘛,是不是好到这个啊。标了boss之后呢,接下来我们就进入什么呢?这个时候啊,他就进入一个什么呢,系统的一个什么,这个时候就进入进入系统的一个。啊,系统的一个引导啊。引导就是系统引导这个程序,那系统引导程序的话啊,再往下面就是读到什么呢,就直接到我们那个实时内核了。到这一块来了。到这了啊,就到什么呢,就到实时。
05:01
十模式内核。实模式内核,实模式内核它是属于什么,所以上面的啊,再往下面踩到什么呢?踩到我们这个啊,保护模式内核了。保护啊,这个模式内核保护模式内核就到我们这个应用程序呢,开始执行,前面给大家讲过了,那个叫做什么呢?Init嘛,就执行这个init这个啊进程了,对不对,嗯。好,那么它执行这个init进程之后,哎,这个少了一点啊,往上移一点。之后呢,他接着什么,接着就进入什么用户进程了。接着下面就是我们一用户进程。和一些什么呢?守护进程它就启动了。那么整体流程啊,大致我全部啊都给大家讲了是不是。
06:02
OK。再来一个啊。那么这个大小啊。我就盯一下。这个是什么呢?比如这个腰。600啊。下面。多一点啊,8000。飞车,好,这时候可以了是吧。那么它这个箭头注意啊,这个箭头就朝下了。其实要知道啊。比如这个我们所讲叉八六式是模式,是不是跟叉八六的保护模式,它从这仓内方分呢?从中间这个位置进行划分的。
07:03
大家搞清楚是不是。OK,就是硬件设备啊,进行什么呢?进行通电,就这个意思。好,把这个背音改一下。这样的话大家方便看一下是不是。不然的话,看他眼睛看花啊。加一下颜色。再往下面。再来一个。好,最后一个就是灰色是吧,就到这来。那么这个图形啊,就是我们基于什么叉8664相关这个硬件上的一个什么Linux的一个启动流程。啊,就是这一块,是不是这个不难啊。大家只要去学啊。一切都可以OK,好,那现在我就将这些相关的知识啊,全部放到我们笔记当中。啊,这个问题我就给大家讲了啊,已经给你们讲清楚了啊,啊那位朋友的话呢,那我们在课上面我们给你讲清楚了啊。
08:08
那所以我们经常讲啊,就是说就第一步,是不是我们经常讲第一步啊,第一步boss boss是干什么。MOS的话,它就是从这个什么呢?启动设备里面啊,引导这个什么呢?主引导记录就是MBR嘛啊接下来这个MBR呢,它代码它去看啊,查看这些分析表啊,从这个里面读取什么Li lo啊,或者读读取这个啊呃,读取这个什么JB啊等等这些信息是不是。啊,读完之后呢,他就运用什么呢,系统的引导程序了。那么系统引导程序之后是不是诶。那么引导程序就会加载压缩一些内核镜像,并且啊有将一些控制权啊。传递给他,是不是那么内核呢?他取得控制权之后,他就会将什么,将自身解压的一些镜像文件直接投入运转。
09:01
还就这个意思,是不是那么叉八六它有两个,一个是实时模式和保护模式内核嘛。那么实时。那我们经常讲这个啊,实时模式内核的话,嗯,就是什么意思,就是用户他只可以使用一兆内存。那么并且它没有任何的保护。就是上面那个啊,实时模式时模式内核,那保护内核就不一样了,保护模式内核是什么意思呢?这个要复杂一些,因为什么用户可以使用更多的一些高高级的一些功能,你比如一些分页是不是CPU必须。必须从什么呢?必须从这个实模式把它切换到什么,切换到保护模式对不对,所以你不能不能从这个保护模式切回来,实施模式只能从上面往下切,不能从下面往上切。啊,这是一个思路啊,就说后面你比如说它执行什么呢?Iit是不是那么内核要注意啊,这个内核初始化的第一步就是啊执行这个啊实执行这个实模式的一个汇编。
10:08
然后进入什么呢?进入MY函数嘛,你看进入MY函数在哪里呢?你打开这个Linux内掩码,大家看一下啊,在这里是不是。你看着啊,给你截个图,你看一下。我们就回到这儿来是不是?把这些关闭啊,这是上次我们讲的课程。可以了。好,接着我们就来看一下啊。哎,找到什么init是吧。Iit里面呢,它就有一个什么,有个脉函数,看到没有脉啊脉这地方来。好慢之后呢,你看啊,就找到一个start啊,是不是找到地方。
11:02
好,那么找到这个地方之后是不是,那么接下来什么呢?接下来我们就找到一个什么,下面就是就会初始化我们CPU相关的一些信息了,就执行到这来,所以它这个引导程序是不是就进入这个地方来了,你看到没有。我把它放大了啊,你看它。再再往下走,他就这样走,你看到没?大家注意啊,嗯,再往下走就跑到这来了。好,那么他跑到这来之后呢,那么接下来什么家来你看啊。调大之后最后一步它会激活一个什么呢?Init是不是嗯。就比较慢啊。什么ICU啊等等啊,这些全部都在这里了。了iit相关的啊,你看全部一大把是不是好,那么这一些搞定之后是不是水Linux。
12:02
它这个附近层就是说I it,它启动内核,比如一些用户空间的一些脚本啊。他最终会进一步的执行啊。大家要搞清楚这个关系就行了。好,那我们搞清楚这个最基本的问题之后,那么接下来我们就来看下一个是不是下一个你比如刚刚我们讲的一个什么,讲的一个设备啊,字符设备驱动程序是不是。所以说。嗯。我们是什么呢?大家在编写这个简单的一些设备驱动程序的时候,是不是你比如什么。啊,字符设备驱动程序是不是,嗯,它的顺序啊,要搞清楚还有一个什么呢?顺序存起这个设备驱动内核的一个代码是不是,它是有一定的这个啊规则是不是。好,那现在我们就来看这一篇啊,什么意思呢?你看这边就是说。刚刚我们提到了啊,比如这个字符设备,嗯。字符设备的这个什么。
13:00
字符设备驱动程序对不对?嗯,比如这个顺序程序什么顺序,存取设备数据的一个什么。数据的一个内核代码啊,要搞清楚,所以说它这个什么呢?字符设备驱动程序。对不对,他能够从什么能够从这个打印机啊嗯。或者是什么呢,或者说我们经常讲那个什么键盘啊嗯。或者什么鼠标啊是吧,啊还有内存啊。还有一些什么呢啊,时时的一些时钟啊。还有一些时钟啊。等等,是不是等等啊。那么这等等这几类的这个设备对不对,这个设备它就可以什么呢?获取一些原始数据。但是。它不适合这个什么呢?不适合管理硬盘软盘光盘啊软盘硬盘光盘是一块设备,它不适合管理这一块是不是。
14:03
它基本上适合这些东西。我们要搞清楚这个关系就行了。好,那我们理解清楚之后啊,我们可以通过什么呢?大家注意啊,驱动程序。要搞清楚就是。字符设备驱动程序。支付设备金融程序,它的一些什么呢?我们可以通过什么啊,自主设备新就是设备新程序了。设备。驱动程序对不对啊,我们可以通过什么,通过杠DV这个目录啊,给我们用户提供一些接口啊。如下。接口如下的话,那么我们在啊。应用层里面直接输这个就可以了,刚才我已经给大家测试过了啊。你直接说什么呢?LS空格杠LD,你看现在你所看到的这个部分。
15:00
就这么简单啊诶。OK。啊,就这个看到没有。好,那么这个啊,我们搞定之后是不是,那么接下来我们还对一个问题。什么问题呢?那我们除了这个字符设备以外啊,你比如还有一些什么,还有一个快设备,是不是就说明IO这一块,那么具体我们怎么去用。对不对。那么linu啊,这个快的IO层对不对。嗯,它就相当于什么呢,它设计的目的就是什么。快存它要比什么其他这个内核子模块能够影响我们整体的文件性能。所以用户用程序放行这个IO系统。调用来来访问什么访问这些文件,那么相关这个文件操作啊。再到什么呢?再到啊,再到达各个文件驱动之前,首先经过经过什么,经过对应的是什么VFS啊,虚拟文件系统这一层是不是啊,然后再到我们单个文件,它就一个一个下来啊。
16:10
就是什么呢。你下来你看这个东西就Linux啊,就Linux呢,Linux这个啊。系统的一个什么快的一个啊。IO操作是不是。IO这个系统。架构图。哎,如下我们来看一下啊。大致给大家发一下是不是,否则不好理解是吧。啊,你比如这上面我们经常讲的啊,比如什么用户空间啊,内核空间啊,还有硬件设备,一般就这三层,它没什么很难这个很高深的东西啊,啊你比这上面。这上面那里是什么呢?这上面你比如这个文件啊,文件输出出码文件IO是不是。把它放大一点啊。
17:02
文件IO。很多个啊。好,那么这个文件IO之后啊,接着就到什么到虚拟文件系统这层了,那么最上面这个部分对不对,下面就属于内核虚拟文件系统接到栅栏就这个意思啊。你看就接到这一层来算了。提到下面这一块。接到这一层,这一层我们就是什么呢?叫VFS啊,VF这一层啊,就是虚拟文件系统这一层。就是你这个驱动跟虚拟文系统这层啊,直接打交道是吧。那么这上面啊,我就画一个把它隔开是不是。这样就更加容易理解了啊。可以了,三。好可以之后你要注意啊,那上面。
18:02
这个部分。嗯,它是属于什么呢?属于我们这个用户空间嘛。应付空间,那下面。就属于什么,属于内核空间。好,那么这个内核空间啊。再往下面就到什么呢,到这个硬件设备嘛,所以硬件设备我们刚才所看到这一块啊。看我下面啊,下面有个什么呢?再往下面你这个虚拟文件系统,再往下面就会到什么,就到这个文件系统了,文件系统有很多啊,以前我讲过了,比如extr是吧。Excited on。EXT3。EXT4是吧。还有什么GIF?接FFS2是不是?Ii。Rice啊。还有。
19:01
还有什么,还有一些什么等等了啊,这里我就不再列了,太多了啊,嗯,等等了,我就不再列了,这是文件系统啊,单个文件系统。那么这些单个文件系统的话,等一下啊。那这是三个文件系统。看到没有?文件系统再往下。它就到达什么呢,就到达我们这个缓冲区。缓冲期这个高速缓存啊。缓冲期的一个高速帆船。高速缓程,就是我们经常讲这个页面缓存了。页面缓存再经过IO调动。页面缓存,再通过这个IO调度。再经过这个IO调度。好I调度之后呢,再往下面就到什么,就到这个快设备驱动程序了,是不是或者字符设备驱动程序啊,那到这些来是不是就比如什么,嗯,下面就来两个了啊来两个。
20:08
还真来了。你比什么呢?比这个快。嗯,设备啊,我我现在讲是快设备注意啊。板块设备。这个什么驱动程序。快启动程序啊。到这儿来。好,再来一个啊。很多个啊,它不止这一个是不是。可以了啊。
21:01
哎,大小。没了。好。那么这些。最基本的啊。然后再到下面就是什么呢?比如一些磁盘啊啊,或者是一些啊CD一些啊驱动设备啊等等啊,就就就往下面了。我们再来一个,到这了是。啊,这个珠子啊。这个珠子是什么?是我们所讲的一个磁盘。这个是磁盘啊。表磁盘连的栅栏算。
22:03
磁盘。茶等等啊,还有很多啊,再来一个。嗯,这个。比如这个。啊,CD这些驱动设备啊,这些硬件。OK。那么通过这些的话,刚才你看啊,这个是属于用户空间啊,内核空间是吧。再往下面。就到什么,就到这个内核控啊,这个硬件层面了。嗯,这个是。好硬件。
23:01
啊,硬件设备就是硬件层面这个这这。硬件层面这个这这个下面了啊。好到硬件层面的话,你看他们之间的一个连接是吧。你到这来。这一块啊。呃,它们之间的一个连接。嗯,一直到上面看到没有。好到什么呢,再到这个。文件IO。文家是吧?啊,这些啊。上面。啊,用户空间,那么中间这一块啊。中间这一块内核空间。
24:06
嗯,再往下面就是硬件了。反缓冲区高速缓程。再到哎哟调度。这两个快设备驱动程序。下面这个是磁盘啊。这个也是。就差不多了,是不是基本上的思路就这样啊,但是它的箭头要注意啊,不是单向箭头,是属于双向的啊。
25:02
就这一块。我们现在通过这个图形我们全部就解决了,是不是。但是这个地方啊,你快设备地方它有一个什么呢?比如说它有一个请求队列嘛,对不对,你不止一个啊。哎,这里它也有请求。啊,请求这个队列。什么意思?那么刚刚我们已经提到过了啊。这个层硬件层面。硬件层面,它驻留这个文件系统是不是。但是我们用户应用程序它放行这个IO,是不是它就可以进行进一步来完成来执行操作了,是不是。大家要搞清楚这个点就行了,是不是。所以说。要注意啊,应用程序就是相关的这个啊,文件系统操作在什么呀。嗯,在到达各个文件系统之前,是不是它经过什么,经过这个VFS就是虚拟文件系统这一层。
26:02
那么下面就有一个什么,有一个高速的一个缓冲区。高速缓冲区通过什么呢?通过这个。啊,缓冲磁盘块来加速这个文件系统对快设备的一个什么快设备的访问。那么如果能够在这个高速缓冲区。找到这个块的话啊,找到这个块的话。那么就可以什么呀,可以节省往磁盘里面读。那每一个快设备指定这个什么,指定数据就在什么,就在这个队列的请求,把它取队列请求当中排队,那文件系统驱动程序它将什么请求加入这个什么,指定的快的一个什么呢?请求队列,同时你这个快驱动程序啊,从相应队列当中把它取出来这个请求。那么这个期间的话,IO调度器呢啊,它就操控什么请求队列了,你操控请队列的话,就能够让我们的磁盘访问,它的延时的时候就更小啊。
27:04
同时它可以增加这个什么啊这个。吞吐量是不是大家要搞清这个最基本的关系就可以了,是不是,所以整个图形啊,基本思路就是这个样子的。好,那现在我就把这个啊移过来。OK啊。给它去掉啊。嗯,这是一块啊。
28:06
就可以了。就是系统块的IO啊,它这个系统架构图,它的思路就是这样子的。那我们现在啊,了解这个之后,是不是后面就更加好办了。IO软件,它的总体目标就是什么呢?就是将这个软件组织成一个什么层次的结构。那么就是说低层次的这个软件,就是你低层软件是用来屏蔽机体的设备的一个细节是不是。那么高层软件啊,它就可以什么,就可为我们用户提供一个简单的一个规范界面,是不是API一些相关的操作。那怎么做呢?刚刚没看到啊,比如说IO请求啊,到用户进程,再到虚拟文件系统是吧?啊,再到这个设备无关的一些文件,比如设备服务制程序啊,中断程序啊,再到什么啊硬件,硬件啊,是不是这些执行IO操作,但是说我们经常讲的一个什么进程,进程这个用户进程就是进行IO调度嘛,就是格式化IO。
29:20
大家搞清楚这个关系点就行了,是不是。具体怎么操作啊,就是用户进程。用户进程请求设备服务流程,它基本上是这样的啊。你要搞清楚。什么意思呢?就是用户进程。用户进程,他请求什么请求设备服务的一个什么流程。基本上首先第一个是用户进程,用户进程呢,它就到什么呢,到这个文件系统,刚才讲了啊,哎,你到文件系统就就到什么,就到设备驱动程序了。那到设备进入程序的话呢,就到什么设备,嗯。
30:02
控制器。那么设备控制器的话,就到设备的本身了,就是硬件带来了。他基本上思路就是这样的啊。他将这个思路来。那我们啊,搞清最基本的一个思路之后,就说你比如。啊,Linux设备驱动程序它有什么功能呢?主要功能就是说对设备进行初始化。能够使这个设备啊进行投入这个运行啊,比如一些退出服务啊,从这个什么呢?设备当中接收或者是发送数据是不是啊。将他们什么呢?把它送回了内核里面去。就是你要搞清楚这个设备驱动程序是不是,它为什么有,它很多人搞不清楚,是不是就是Linux,它设备驱动程序啊,它功能是不是,那第一个就是什么呢?对于我们的设备啊进行什么。进行初始化啊。初始化之后呢,它能够使什么使这个设备啊。加入什么,加入这个运转工作是不是印转和退出服务这个工作是不是同时的话呢。
31:05
操作过程当中,我们可以从这个设备啊接收数据是不是并且啊。并且什么呢?并且将它直接啊返回就是返回给什么呢?返回给内核嘛,对不对,你返回给内核之后,就将什么,就将将数据啊,从我们的内核。把它什么呢?把它传输就是传递到什么呢?传递到设备是不是啊,然后你再检测是不是,就我们检测和处理什么处理设备出现的一些啊相关的一些异常错误是不是,如果没有就OK了,是不是。所Linux当中这个设备驱动程序啊,它是一种相关的一些函数啊这调,那么它包含什么呢?包含这个设备服务子程序啊,或者是终端处理程序,那么这个设备服务子程序其实它就包含什么所有与设备相关的代码。就是你每一个。
32:01
设备浮子程序,它只处理一种什么设备,跟密切相关的一些设备。就最基本的问题啊,那么驱动程序要搞清楚啊,还有一个核心点。核心点是什么呢?核心点就是这个驱动程序。它是属于什么,它是属于内核代码要搞清楚。这个是很重要的啊。嗯,驱动程序它是属于内核代码。为什么呢?就说。设备驱动程序是内核当中的一部分。它像内核其他这个代码一样的,运行的内核模式要搞清楚,那么驱动程序啊,如果出错将会使我们操作系统严重的破坏。就这个意思啊,所以甚至这个系统崩溃,会导致这个文件系统的破坏或者数据丢失嘛,对不对。那么还有一个就是什么呢?还有一个就是为我们内核提供一个统一的接口。那设备金融程序它属于什么?
33:01
它执行属于内核机制,并且属于什么呢?使用内核服务的啊。可以动态啊,动态加载还可以配置。那么它在操作过程当中,你比如啊,它有一些专门的这个IO端口,是不是从CPU到我们的设备IO接口,它有。对应的这个什么控制寄存器进行进一步来执行。他就是干这个事情啊。所以设备信程就是就这么这么操作啊。但是我们在操作过程当中,你比如IO接口以及设备控制器啊。专用的IO接口什么,就是说你专门用于什么一个特定的硬件设备啊,在一些情况下,就说你这个设备控制器跟什么呢?跟IO处于什么同一块。卡当中是不是啊,通讯快卡当中就说你连接到一些专用的IO接口上面的设备,它可以使内部设备是不是就是为我们这个。PC机里面嘛,它内部的一个设备啊。也可以是什么呢?也可以是。
34:02
硬件啊也可以是,也可以是磁盘接口,也可以是总线是不是,比如鼠标总线是吧,或键盘总线也可以。也可以是这个相关的图形接口卡都是可以,还有一种,还有一种就是什么呀,还有一种是通用IO接口。通用IO接口就是用来什么?用来连接多个不同的这个硬件设备啊。那么连接一些通用接口,你比如哪些呢?外设你比如什么冰口窗口啊。通用串行总线就是USB嘛,还有pcmci这个接口,SCISI接口都是属于什么通用的IO接口。那么复杂的设备,它可能需要一个设备控制器来驱动。那么控制器,控制器它有两个方面的作用啊,一方面是从这个什么,从这个IO接口。接收到这个高级指令,进行解释执行。并且通过这个啊。向设备发送适当的电信号,是不是这些系列强制这个设备去执行?
35:06
一些相关的操作,第二个就是对这个什么呢?对从这个设备接收到电信号进行转换和解释。那并且通过什么通过IO接口来修改这个状态寄存器的值?他就是做这个事情是不是。那么还有一种,你比如我们的硬盘是不是硬盘啊,这个磁盘。磁盘控制器。要注意啊。磁盘控制器,它就是一种典型的这个什么设备控制器是不是,那为什么这么讲呢。大家注意啊,因为什么,因为它通过IO接口这个微处理器啊,来接收我们这个写写写数据块啊。就是他把磁头定位到正确的位置,这个磁道上面是不是啊。把这个数据写入到这个此道啊。这属于低级操作嘛。
36:00
那么现在这个磁盘比以前更加复杂,就是说它可以什么呢?它可以把磁盘这个数据数据啊,能够快速的。啊,把它转到这个啊。保到保存到什么呢?转转发保存到内存的一个缓冲区里面。其实啊,这样的话,他操作就更加方便了啊。就是这些最基本的问题,还有一些什么啊,设备文件啊,是不是设备文件有很多啊,你比如一些什么主设备号啊,从设备号啊类型啊等等啊,这些我们在后面的章节当中。都会给大家进行进一步的讲解,是不是啊。有任何问题啊,我们可以通过啊,这个微信啊,QQ啊,进行进一步的沟通与交流,是不是你比如我们经常讲这个啊,讲一些简单的,你看啊,你比如什么呢。我们讲这个啊,网卡是吧,网卡就是有些设备啊。网卡。实际上网卡是把向外。
37:00
发送数据是不是放入到我们远程计算机的一条主线?是不是?所以说。我们要把从远程计算机接收到这个豹纹,把它装到内核内存里面去。所以你要搞清楚了,什么socket b list啊,还有connect等等这些是啊。套接这里面还要搞定的事情,是不是还虚拟文件系统对设备文件进行处理是不是?他是怎么一回事呢,就是说。啊,虽然这个设备文件在系统的这个什么呢,目录书当中。但是他们通过什么,他们和这个普通文件以及目录文件啊。它根本就不同,是不是当进程访问普通文件就是一些磁盘文件的时候。它会通过这个什么文件系统来访问这个磁盘分析当中的一些啊。一块数据是不是就是一些数据块啊。而且你在这个进程访问设备文件的时候,它只要什么呀,只要启动。
38:02
他只要驱动这个硬件设备就可以了。很简单啊。你比如设备。设备文件它从连接到计算机,它专门有个温度计来读取这个什么呢?啊,读取我们的机房的一个什么相关的温度,那虚拟文件系统它就相当于什么呢?就相当于一个应用程序隐形的设备里面啊,它就就可以来啊测我们之间的一个差异,它的一个值是不是。等等啊。还有一些中断处理层,中断处理,中断处理的话啊,这些我相信大家知道,那么Linux对于中断管理的话,就是说内核它是为了什么,是为了将来这个啊,这个硬件来自于硬件设备的中断。把它传递到相应的设备驱动程序。对不对,那么在设备驱动程序初始化的时候,它就叫什么,就将对应的这个中中断程序进行登记啊,通过调用函数。啊,将这个中断中断信息把它添加到什么呢?IQ这个action。
39:04
这个数组当中是不是。就跟这这个这样这样的话,它就可以什么呢?就可以将这个中账号跟那个服务层级把它串联起来。这个我们在后面啊,再进行给大家详细的讲解是不是。是今天晚上啊,这课程的内容是不是我就给大家分享的,但是这些啊,最基本刚刚讲的一些核心点,大家只要记住就可以了。下一次课,再见。
我来说两句