00:00
好的,那首先啊,欢迎各位朋友来到铃声交易,我是维克。接下来啊,我们主要是学习啊。Linux内核里面的一个物理内存和虚拟内存。那这节课的话呢,我们是从啊这么几个点进行进一步的研究和学习。那首先第一个是物理页面与内存管理区。在掌握这个基数点之前,接下来我们首先要从这个基础的角度进行进一步的研究。你比如啊。我们是什么呢?假设你站在什么呢?你站在的角度不一样,那么对这个内存管理的角度它也是不一样的啊。你,比如你站在什么,你站在Linux的一个什么。使用啊,使用的人员来讲的话,使用人员的一个角度对不对,来看待什么呢?看待我们这个内存管理的话。
01:06
那么使用啊,就是命令,就是我们一般使用的这个命令是什么呢。Meaning就是我们所讲的一个。就这个意思是吧。那如果你站在什么呢?你站在这个利纳克斯,他这个什么应用开发这个工程师的一个什么。在角度的放啊。再来开应用程序这个工程师啊。开发角度来看的话,那么看这个什么呢?来看这个内存啊,管理的话就是说我们用的最多的一般是什么呢?MOC函数是不是或者是什么呢?A map啊。这两个函数一般是用这两个。那有人就讲,哎,那么a map是干什么的,要注意啊。I map这个函数是用来分配什么呢?很大块的这个虚拟内存。
02:03
那么如果我们是站在什么呢?假设啊,我们仍然站在这个Linux内核的角度,是不是来看我们这个内存管理的话。其实啊。系统模块的角度来看的话,它里面有很多很多东西,是不是啊,需要我们进行进一步来研究这些问题。大家一定要知道啊。好,那我们了解这些问题之后呢,接下来我们首先看第一个,你比如F。福瑞的话呢,你看在这里面啊。我们进这个系统里面来是吧。然后再回车一下。然后呢,在这一边啊,那我就直接来一个什么,来一个free这个命令。命令之后呢,再来一个杠,什么呢?杠这个M就行了,飞车你看。现在大家所看到这个问题就明白了,是吧?什么意思呢?F,它这个命令主要是用来做什么,对不对啊,那现在我们大家啊来研究一下是吧,第一个问题是吧。
03:11
这个。这一个什么呀。就是。查看啊。这个命令它是干什么,它是用来查看我们这个系统内存的啊,查看系统内存的一个什么呢。使用查看内存系统内存的使用啊。看情况就这个意思啊。但是它可以包括什么呢?它可以包括什么交换内存呢?是不是也有什么也有这个物理内存呢?等等啊等等这些相关信息是吧。啊机体啊如下我们来看一下。
04:01
那首先我们来看第一个,刚刚也看到了什么,你看。我输什么呢?Real,然后空格杠M是吧,那就看到一个T啊al是不是。啊,还有一个什么呢,Used啊,Shared啊。Buff catch,还有一个什么A,以及什么swip等等是吧?那么当我们看到这些的话,其实这个并不难度并不高啊。你看再有一个什么,有一个慢小是不是。好,当我们卖一下,你看就可以看到这些相关参数,你看到没有啊,这里不是告诉你free to了,Used是不是。看它的参数啊,你比如杠B是不是bit。还有杠K是不是杠M,杠七是不是还有杠H,还有很多了是吧,很多很多啊,那么这些我们就可以通过这个英文啊,我们是可以看得出来。
05:00
大家一定要一定要明白这些最基本的问题是吧,好。那现在我就将这个结果啊放图出来。我们可以什么呢,进行进一步啊来研究是吧。我们看这个啊。放到这个位置。什么意思呢?刚才看到了啊,有个杠M是吧,杠M它是以BAT,就是以字节啊,以字节为单位来显示我们内存的使用情况,嗯,大家一定要知道这一点啊。那么首先我们看第一个,你比如透了,是不是15805,是不是15805是指什么,是我们系统的一个总内存,要注意啊。比如第一个参数是吧。参数。参数什么呢?它了,它是多少幺五。805是吧。那么参数啊,这个套了15805是什么呢?它表示的是系统当中的一个什么。
06:06
总的一个什么内存,就这个意思,总的内存啊。什么意思呢?就说啊针对什么呢。针对这个,比如M代表memory的意思是不是M代表memory啊,有两种就是物理内存,另外一种是交换磁盘啊,讲命令吗。讲什么时候讲野马,要讲完这个再再讲野马啊,不要着急啊。小张,这位同志啊。OK。好,那现在我们来看这个是不是第一个是系统当中的一个总内存,那么另外一个是used是吧。还有一个参数啊。参数如下。下一个啊。嗯,下一个是什么?下一个是used。Used什么意思呢?就是指我们什么,就是。
07:02
主要是指这个应用程序。他使用的一个什么内存。还有就是。是什么意思呢?就是没有被什么,没有被分配的一个物理内存。就这么个意思是吧。好,还有一个就是啊she是吧。要讲我们要讲清楚啊,需要的什么意思呢?它就是我们所讲的共享内存对不对。呃,共享内存的大小,那么共享内存呢,它主要共享内存的目的,其实它主要还是用于什么呢?用于进程之间的一个什么通信问题,小的啊。还有一个就是buff catch。Buff catch这个地方它是做什么呢?Buff catch的话,那这里讲的是啊buff啊BF它指的是什么,它指的是这个BS是不是主要是用来给什么,给快设备做一个什么返程。
08:04
而且后面那一个什么catch。Catch是什么?Catch是配catch。开机开启啊,是专门用来什么呢?用来给什么,用来给我们打开的一个文件做一个缓存,为什么这么做,对不对。它主要目的是提高什么呢?提高这个访问。啊,这个文件的一个什么速度,就这个意思。还有一个什么A是不是。还有一个常数啊。啊。V。Label是吧,呃。多了一个。Every label every label啊,好,这个。那么他是做什么的呢?这个注意啊,它只是什么呢?只是我们。
09:01
啊,这个命运的一个什么,新家的一个显象。什么意思呢?就是说当什么。嗯,就是当我们内存呢。它存在什么呢?内存啊,它短缺的时候,系统呢,它可以什么呢?可以用于回收我们这个,嗯。Buff和这个配啊。嗯,开启。这个开启啊,那么其实它这个结果是不是其实就等于多少呢?它是这样的,这个结果就等于那两个把它加起来是不是一个是F。加上什么呢?加上这个B,再加上什么page。Catch,就这个意思啊。那么后面我们再进行啊,进一步的研究是不是。所以说你如果你要这么操作的话,还该什么呢?还有一部分啊,也可能存在一些另外一个漏洞,就是说还有一些要减去一些不可回收的啊,这个内存当中的一部分。
10:07
它主要是针对这个部分啊进行来啊。理解的,所以这个参数啊,我们我全部啊,都给各位朋友全部讲完了是不是。好,那我们掌握这个问题的话,当时我们还要搞清楚因为什么呢?因为我们从这个应用程序,这个开发工程师。你从这个编写这个代码这个角度来看的话,他可能看的角度又是不一样,是不是就是啊。两个人有两个人看法,100个人有100种看法,是不是它是不一样啊,但是具体的话,我们可以把它归纳起来,是不是就形成一个体系了。好,那么如果啊,要注意了。什么意思呢?剩下我们来看第二个问题啊,第二点。第二点是什么,第二点我们从什么从从这个应用编程啊,就是应用程序的这个开发这个角度啊。
11:03
来什么呢?啊,来看这个内存管理的话,那么大家要搞清楚了。那我相信啊,在座的各位朋友啊,我们从事C研发这个过程当中,我们是具备一定的经验。我们经常什么呢?啊,用到ma函数,是不是mala函数也是我们Linux应用程序开发当中啊,用来分配什么呢?分配虚拟内存的一个函数。它在标准C研库里面嘛,所以它可以什么呢?出现这个承兑啊,部分进行进步完成,那么现在我就给大家挑出几个核心点啊。我们大家来看一下就可以了,是不是,嗯,它怎么回事呢?你比如啊,我们经常用这个啊malo函数,是不是还有real这个函数。以及什么map是不是啊,Mapmp对不对,它对应关系啊,还有什么表get啊,还有get a page size啊,这些相关的函数啊,以及什么呢?Emperor。
12:00
是不是?除此以外还有什么I'lock。M lock是不是?还有一个什么Mo advice建议啊,建议内存的设置。还这个。M。你看。他就可以什么就可以达到啊,这种最基本的这个操作。大家要搞清楚啊。是吧,就是这个啊。啊,这是一个啊,再来一个算。我把它放到一块啊。到时候大家可以多看一下,也可以查阅一下官方文档,这里面就告诉我们这个API如何啊进行使用。好,那我们现在啊,掌握这个之后。那接下来我们就来看下一个了,是不是。嗯,下一个是什么呢?下一个的话就是说。
13:02
我们从什么,你从内存这个布局的角度,我们可以进行进一步的研研究啊,大家看这是我们所讲的这个第二个问题是吧。下面看第三个。第三个是什么呢?我们要从这个内存布局角度来看内存的话,就是说我们要了解一个整个Linux这个系统的内存管理,那你首先要了解这个系统内存的布局。那我们就这样的话就比较好啊,比较好理解,那么对于什么呢?对于Linux系统来讲的话。我们会给出一个什么对应的内存布局对我们帮助来理解这个内存。你比如啊,32位的这个CPU。那你32VCP的话,它最多可以拥有什么32根地子键。就是地址线嘛,是不是,所以它最大的寻子是四个GB,就是二的32次方。那么。在这个四个GB地址空间当中,我们怎么去划分呢?那我们又可以分为什么,分为什么用户空间啊,和这个内核空间啊,是不是这些我们都知道啊。
14:07
但是我们必须要知道一点啊,第三个问题。什么问题?就是CPU是不是CPU呢,它通常是提供什么呢?提供多级的一个什么。运行模式。多机运行模式比如什么,比如我们这个ARM32位的这个啊,CPU理念是不是你啊,它支持什么呢?支持七种。处理模式。那么七种处理器模式,你比如啊,比如我们用户模式。应付模式。用户模式是什么意思啊?它是用户程序运行的模式,所以叫用户模式。还有一种就是我们所讲的系统模式了,系统模式就是特权模式。还有什么呢?还有我们所讲的这个一般中断模式。
15:04
一般中断模式是什么?就是普通中断模式,还有一种是快速中断模式。选fiq嘛,嗯,快速增长模式啊,快速增长模式还有一种是什么,还有一种你比如这个管理模式是吧,管理模式是什么?就是操作系统的内核。通常运行在什么呢?在这个模式下面。那么数据访问啊。终止这个模式。还有一种啊,就是数据访问。这个什么呢?终止模式。就这么简单。那么数据。数据访问终止模式是什么意思?就是说当数据或者指令啊,它取出终止的时候,就进入这个模式了啊。用于虚拟内存。啊,用用于虚拟这个存储,就这个意思啊。OK。啊,虚拟存储或者是保护存储啊,那么还有一种第一种第二种第3456啊,还有一种啊。
16:03
还有一种是什么呢?还有一种是。还有一种就是没有定的一个什么指令模式,未定指令模式。为丁指令模式是什么意思?就是说。当没有定指令执行的时候呢,进入这种模式就是用于什么,用于支持我们这个硬件。写处理器的一个软件仿真啊。所以说我们经常讲什么问题呢,就是针对这个Linux内核,我们就使用什么,使用二级模式啊。二级保护模式嘛,二级保护的这个啊,机制模式那二级呢啊。就是内核模式啊。和什么呢?和这个用户模式就这么简单是吧,好。那么在在这个ARM在ARM处理器当中啊,就是说用户模式是专门跟我们用户进程使用的。啊,还有一种就是啊。
17:00
内核模式,内核模式根据内核模式和用户模式,我们把Linux内核啊,把它空间进行进一步划分嘛,一般是零到三个GB是吧,零到三个GB的话,那么你3G到4G,它就留给什么内核模式是不是,那么用户模式就是一般占3:1的关系啊,要注意这个问题。所以说我们经常讲。这个分页机制,它是让每个进程啊都觉得自己啊拥有这个啊内存空间,但是每个进程呢,都可以访问到全部的四个疾病。比如零呃四个GB啊,就是32位的嘛,比如零到三个G,这个空间是用户空间可以访问的,你比如从三到四那个内存三到四个GB的话,它就通过什么系统就进入,所以你要搞清楚是不是。要注意啊,啊,这我们就搞清楚了,你比如刚才我们讲了这个R是不是哎232是不是M32的话呢,它就是相当于什么M32啊。就是每个进程是不是啊。
18:01
就是每个进程可以访问到全部的司机,是不是要注意啊?就是每一个。这个架构啊,每个进程它可以访问什么,每个进程。M架构是吧,那么比如零到几呢?零到三个GB。啊,零到三个GB。为什么?为进程的一个什么进程在用户空间?的时候,它可以什么呢?可以访问,那如果你三个三个GB到什么呢?到四。到4GB,嗯,为什么呢,为我们这个。进程了。为进程通过这一个什么呢?进程通过系统调用进入什么?进入这个内核空间的时候。他就可以访问了。哎,就这个意思啊,大家知道。
19:00
这个是零嘛啊,0GB是吧,到三个三个GB这个之间是不是好,你3G到4G之间,就是前面相当于占三个G,后面占一个G,总总共是四个G嘛,是不是。OK。啊,这个东西啊,我们大家也可以什么呢,也可以说出来啊。你比我们可以通过什么呢?通过大家注意啊,你怎么输出这个结果呢?我们可以通过这个memory,这个什么呢?Memory里面有一个in it就可以输出我们内存的一些相关平台信息啊,这里我们没有给大家搭建环境,是不是?那么如果你要从这个大家注意啊,如果我们要从内核源码来研究的话,那肯定就不一样了。你看你从内核野马研究,你看我这里告诉你怎么做啊。啊,我们怎么去输出这个内存布局呢?要注意啊,内存布局从哪里方输出。一般人可能还不知道是不是,所以我们接下来就要教大家怎么去做是不是?这个内存啊。
20:01
什么意思呢?你比如这个,嗯,Linux内核是吧,就是Linux内核它在什么呢?它在启动的时候啊,它就会什么,就会输出我们内核内存。空间的一个什么布局,就这个意思啊。布局。这个你。零三。连这个空间你不能调的,不能调啊。他已经分好了,是不是分好了啊,分好了。这个部分你可以映射到对应的这个地址里面去,这是物理地址空间是不是给你们分好就分好了是不是,那如果你是这个64位呢,就不一样了,空间相当大是不是,这就不需要考虑了啊。OK,好,那么输出什么呢?输出这个啊,输出这个布局就是内核空间布局如下。这个输出结果啊,就输出这个信息,那怎么输出呢?你看我这个掩码分析往下走啊。
21:05
那我们找到什么呢?找到这个。干掉iit,有个麦函数,看到没有?好,麦函数里面对不对,你看麦函数啊。Main函数再往后面。慢函数,再往后面有一个memory init初始化内存。就这地方你看到没有初始化内存工作啊。你要知道这个怎么来是不是。后面还有很多啊。啊,这个地方。好这个地方之后啊,到这里来之后。接着。他会输出哪些呢?在我后面啊。
22:01
那么就进来了。到这儿来。好,到这儿来之后有一个初始化内存。然后你再进去看没这里啊。将内存布局打出来啊。仍然是这个地方。520的地方。520。好,520进去之后,那么最终它会输出这个结果就在这里了。你看啊。啊,最终。它执行这个函数的时候。就是它你输出它的调那个函数对不对。这样的话,你应该找得到这个结果,这还找不到就不得了了,是吧。
23:02
到这来。后面你看。他会输出这些信息,看到没有。啊,多少多少victor是不是啊。Law。是不是还有什么text啊,比如文本呐。初始化啊,数据单啊,BSS啊,Model插入模块啊,这些它全部啊,都会给我们进行进一步的输出来。最终出结果,它显示的是这个结果,大家注意啊。他就会输出你占据多少占据多少,就这个意思。啊,从这地方开始,Victor地方开始啊。了上面这个你看没有虚拟内核内存的一个布局是不是。从这地方一直输出到BSS这地方。
24:00
嗯,他都是以KB为主啊。嗯,这个内存布局。那么你就可以知道了,是不是,所以说大家看到什么呢?你比如他这个空间是不是。这个大家注意啊,从这地方说出来的。好,那现在我们研究出来这个问题之后啊,后面我们还可以进行进一步来操作啊。它可以算得出来,是不是就是刚才我们讲的这个这个角度来看,但是说如果你从什么呢。你从这个啊进程角度看内存的话,那就不一样了。你从进程角度的话,你比如说32位的话,那我给你画一下啊,大家看一下啊,你比如从内存虚拟用户地址来划分的话。不是这个啊,它应该不是这么分的。放到下面来了。到这来啊。那就。怎么做呢?我们大家来观察这个问题啊。
25:03
比如这个是四个级别是吧,4G的话,那首先你看第一个,比如进程。一个test这个进程啊。啊,进程有很多段是吧。看见C。啊,第一个。啊,其他蛋啊。第二个。大小。然后再来一个啊。
26:02
比如刚刚我们所看到的啊。比如这个。点。点什么呢,这个BSS。点。这个date是。还有很多啊。Date。嗯,后面有个什么点。这个iit是吧。再来一个。Rotate。再来一个点text.bss什么的,算了,这么多啊。好,这个部分。它是属于什么呀。它是属于我们这个进程啊。嗯,这个属于进程。这个应用程序进程啊。这个名字字起了,我就起个test。
27:00
好可以了是吧。然后啊。比如数据档。上面这个部分是不是。我们把这个作为数据档是吧。颜色啊。看一下。啊,你这个数据单。啊,数据档对,还加一个啊。Date。嗯,下面这个部分是吧。嗯,我把它作为什么呢,代码端。VM虚拟内存管理里面。啊,其他蛋我用别的颜色红色表示,看到没有。所以现在你所看到是不是我们从这个什么,从test,就是从test这个进程来看这个内存的话,那么就映射到我们的右边这来是不是。好,那我们映射到右边这来的话,你看啊。怎么做呢?它四个GB是不是四个GB的话,那我们在这边进行调整一下嘛。
28:06
比如这个它有什么呢。第一个它对应的红黄色对黄色嘛。它就数据大的一个虚拟内存管理区域是吧。还是呢,还有这个。嗯,代码端。V。没有的话,这个可以搞灰色是吧。就可以了。OK。好,这全部搞定了啊,然后再什么呢,比如同上面还有什么,还有什么堆空间呢,是吧。
29:01
啊,你比如堆。就是BK那一部分嘛。叫做堆。W,没。堆空间。堆空间上面。堆空间。然后再到map空间吗?把内存快啊。走到这儿来。这个读一点啊。然后再占还有占空间啊。占了一个占空间。赞。还有很多很多是吧。
30:00
在上面是内核空间。好,可以了啊。那我们现在是怎么进行描述这个啊。把它隔远一点啊。这个弟子的起始位置。啊,这个地方应该怎么取。从这里到这儿来。这个部分。我们叫做什么呢?叫做用户空间。
31:00
是吧,上面是内核空间啊。内核空间。好,应用空间,内核空间这个搞定之后,是不是从三个GB,你比如对占空间是不是。它这个部分啊,你可以这么进行划分。我们从这个地方。从堆是吧。啊,这里到这里。这一单啊。这一段我叫做堆的空间。堆空间。再上面是map吗?
32:09
啊,这个是I map这个空间。大小。二。啊,基本上啊,这个思路就是这样的。好,最下面如果我们要表示的话,你比如这个是零是吧。啊,这地方是零。从零开始啊。零到什么呢?零到三个GB就在这个地方了。零到3GB。
33:09
好,三个GB,再到上面就是四个GB了。啊,这地方是四啊。嗯,可以,你看这些我们全部啊就对好了。那么这个钱不对,好的话,这这这这个颜色啊要改一下。不能相同是。颜色改一下。赞买空间。内核空间我用这个。啊,这个颜色用内核空间表示。啊,左边这个应用程序这个进程test是吧。他们俩之间的对关系啊,是这么对的。
34:03
比如上面这个部分对吧。它所对应的。还是们还有下面这个部分。好,他所对的。那么就说相当于什么呀,相当于我们设计的时候,它就从这个地方。就这个意思。下面这个啊。自从这来。不好指。
35:38
嗯,就这么表示啊。这就是从什么呢,你从这个。进程test来看我们的内存管理这个角度啊。纵观的一个角度来处理。这是从什么呢?我们是从这个。进程。
36:01
啊。来看什么?来看这个内存管理模型。内存管理模型这个视图如下。就这个啊。哦对,还没标草啊。右边这个。是属于什么呀,属于进程的一个什么地子空间,就这个意思啊。进程地址空间。左边应用程序。可能看这样就看的清清楚楚是吧。好,那我们掌握这个啊,最基本问题之后,那现在。
37:03
我们就回到这来啊,什么意思呢,我们看这边。注意啊,第一个。执行是吧,第二个。啊,从应用程序高角度。第三。从什么呢?从CP的多级模式,如何输出我们的内存模型?以及什么从进程的test啊。来进行查看是吧,这个。的内存管理模式的这个视图。就这么简单啊,那么还有什么呢?还有下面的话,我们就要如何进行知道什么知道这个物理页面和内存管理区。什么意思?就是很多啊这个啊,不管是学过电脑还是没有学过电,学过电脑的人是吧,那么大多数我们这个啊言里面就是说内存这个概念,就是我们所讲内存条了,是不是这毫无疑问是吧,或者是说内存条上面啊,它焊接的这种啊,各种各样的金属。
38:01
而且在操作系统眼里面的话,那么物理内存它是一个非常大啊。那么在操作,从操作系统的角度来看的话,它物理内存。它就一块两块三块一块两块啊,四块内存是吧?啊。等等啊。那么这内存之间它连续,那么这个我们怎么去管理这个内存呢?啊,其实啊,就是你要设计好,就说物理内存管理是不是它包括什么,包括你这个啊,物理内存的管理啊,啊申请啊,啊怎么去分配这个空间啊,从哪里分配啊,是不是怎么去释放啊。但是在内核当中分配内存,它没有没有像在进程当中啊,分配这个什么心内什么容易,所以必须要考虑很多很多问题。所以说。这个注意啊,这个物理内存就是我们物理的页面嘛,当什么呢?当内存不足,我们怎怎么去分配啊。比如系统运行时间太长了啊,那么它也会产生这个内存碎片啊,我们怎么去处理这些内存碎片,怎么去提高这个系统啊,分配物理内存效率啊,或者你分配几十个字节小块内存,你怎么做,是不是这些问题我们都必须要考虑的问题。
39:15
但是物理页面要注意啊。物理页面什么意思,就是说。在32位,就是在32位的这个处理器寻子啊,它是按照什么呢?按照位宽,就是我们所讲的一个什么字。但是你这个处理器在物理内存当中。他不时的按照什么呢,按照字来进行分配。那么现在啊,因为现在这个处理器啊,它都采用什么呢?都采用这个分页机制来管理这个内存。就这么个意思啊。所以说这个处理器内部啊,处理器内部,它就CPU内部嘛,它就有一个内存管理单元MMU啊这个硬件设备。它会处理虚拟内存跟物到物理内存的一个映射关系是不是,所以要搞清楚这个点是不是。
40:03
啊,所以第一个啊,第一个问题我们就来了是吧。啊,第一个问题物理页面是吧。啊,物理页面什么意思啊,刚刚也提到了啊,就是啊。处理器。处理器它采用什么呢?采用这个分页机制。分页机制来管理什么呢?来管理内存对不对,所以说这个处理器啊,在处理器就CPU内部啊,它有一个什么呢?有一个叫做这个MMU的一个什么。MMU的一个硬件单元是不是,所以它分什么呢?他会处理我们这个虚拟内存到物理。内存的一个映射关系。
41:00
啊,映射关系就这这么个意思,是不是映射关系有的时候呢,也把它叫做什么,也叫做这个页表的一个什么翻译工作,就这个意思啊。哎,这是你从不同的角度,它会得出不一样的结果,就这个意思。好,那么这个如果你站在CPU啊,这个处理器的角度来看的话,这个什么这个物理内存注意啊,这个管理物理内存,它最小的一个单位就是液了啊。就这个意思啊,最小单位是一,嗯。所以说。针对这个问题的话,就是比如我们站在什么呢?你站在这个CPU的角度来看啊。就是你管理什么呢?我们管理这个物理内存啊,最小单位。啊,最小单位这单位,为什么这个单位就是液了是不是,所以说Linux内核我们就有一个结构体系研究嘛,好Linux内核当中啊,它就使用一个什么,使用一个叫做structure这个什么。
42:07
配置啊,这个数据结构干什么呢?直接来描述一个什么,描述一个物理页面啊。好,OK啊。那么接下来机体的一个Linux的一个什么。机体内核啊,嗯。机体内核掩码。页码分析如下,是不是?但是要注意啊。一般是这样的。就是。一个物理页面大小是四个KB,就是4KB啊,系统它也可以支持大于4KB8KB啊,16KB64KB是不是,那么目前默认啊,目前Linux默认的就是4KB,要搞清楚,那你怎么知道这个配置在哪里呢?非常简单啊,大家根据我的思路来就可以了。找这来。
43:04
你看到没有include下面的Linux。好,Linux下面呢,有一个mm type类型管理的类型。双击就这个看到没有配置。好,里面有很多啊。你比如flag这个我们都给他讲过,你看内核野码分析,你比如这个head list是吧。啊,这就是这个结构,他要搞清楚啊,野马分析跑到这来了。啊,刚才这位朋友还在不在啊。在的请打个一啊。啊,那现在我们就到这儿来了是吧。
44:00
再算。这个八项我们就出来了啊。所以说这个内核掩码分析在啊配置这个结构图里面,它总共在170行左右,这个掩码是不是你根据这个我备注好直接看就研究出来是不是。但是我们要知道什么意思呢,就是说这个结构体啊,它的一个设计是专门描述一个物理页面的。这一点大家必须要理解。那后面啊。在下一次课的话,我们就会专门呢带着大家去研究下面一个问题啊。就是什么呢?就是内存管理器v ma是不是。就是act就就学习那一个啊。好,那么这节课啊内容那我们就分享到这里了,是不是,哎,我们下一次课啊,再见,那这个笔记啊,大家记得找秋香老师来领取可以了啊。
45:02
下一次课我们再进行一个一个来,是不是啊。每天我们讲一个小时左右,每天讲一个小时,你只要把每天讲一个小作业全部掌握了,是不是,那么内核的这个知识体系结构,我们就慢慢慢就形成起来了,是不是。OK,好。各位朋友啊。
我来说两句