你的位置:亚洲图片成人影片在线_成人精品TV视频在线_人妻被老板抱进办公室_高H潮喷失禁在线观看_强奷乱码中文字幕无码_国产AV麻豆情欲放纵_大胸美女娇喘叫床视频 > 久久亚洲精品无码aⅴ >


爱的成人式电影完整在线播放Linux从新学:x86 处理器如何进行

发布日期:2022-07-14 10:14    点击次数:200


爱的成人式电影完整在线播放Linux从新学:x86 处理器如何进行

亚洲精品国产av明星换脸爱的成人式电影完整在线播放 实模式:bootloader 为规律策画段的基地址 保护模式:bootloader 为我方创建段方法符 信服 GDT 的地址 创建代码段的方法符 创建数据段的方法符 创建栈段的方法符 段方法符是如何确保段的安全的? 段寄存器高速缓存 对段寄存器本人的保护 对段领域的搜检

在上一篇著作中97国产免费最新视频,咱们如故班师的从实模式,过渡到了保护模式。

保护模式与实模式最实质的分别便是:保护模式使用了全局方法符表,用来保存每一个规律(bootloader,操作系统,应用规律)使用到的每个段信息:驱动地址,长度,以偏执他一些保护参数。

这篇著作,咱们来看一下 bootloader 是如何来进行自我进化到保护模式的,然后深远看一下保护模式是如何对内存进行安全保护的。

手脚配景常识,咱们先来看一下 x86 中的地址变换经由:

x86 处理器中的分页机制是不错被关闭的,此时线性地址就等于物理地址,这亦然咱们一直商榷的情况。

下一篇著作,咱们就把 x86 中的分页机制绽放,并与 Linux 中的分段和分页机制进行对比。

实模式:bootloader 为规律策画段的基地址

在之前的著作:Linux从新学06:16张结构图,透顶意会【代码重定位】的底层旨趣中,咱们商榷了 bootloader 是如何把应用规律读取到内存中,终末跳入到规律的进口地址的。

这里所说的规律,不错是操作系统,也不错是应用规律。

底下这张图,是规律被加载到内存中之后,header 中的信息:

因为规律是被 bootloader 动态读取到内存中的,少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间97国产免费最新视频,前面一根后面三根是不清澈我方被放在内存中的什么位置,因此少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根也不清澈我方代码段、数据段、栈的驱动地址。

然而,规律要想大要闲居实行,就必须要清澈这些信息,那若何办?

惟有 bootloader 智力科罚问题,因为是少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根来把规律从硬盘加载到内存中的。

因此,bootloader 在跳入规律的进口地址之前,必须把其中的代码段、数据段、栈段的基地址策画出来,然后写入到规律的 header 中,如下图所示:

这么的话,规律驱动实行时,就不错从我方的 header 中赢得到这 3 个段基地址,何况赋值给相应的寄存器,从而班师的实行规律。

也便是说:规律的 header 空间,充任了 bootloader 与少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根进行信断交互的弁言,用来传递 3 个段寄存器的基地址。

以上的这个经由,一直责任在实模式,因此就莫得段方法符什么事情。

在以后著作中,咱们还会看到在保护模式下,bootloader 仍然会支配 OS 的 header 空间,来传递段的索引号。然后 OS 支配这个段索引号,去查找 GDT 表,从而找到每一个段的基地址以偏执他一些保护信息。

保护模式:bootloader 为我方创建段方法符

bootloader 从 BIOS 经受系统之后,刚驱动是运行在实模式下的。

当少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根完成一些准备责任之后,就不错干涉保护模式了, 免费也便是把 CR0 寄存器的 bit0 成立为 1。

这个准备责任中,最迫切的便是:竖立 GDT 这个表,何况把 GDT 的驱动地址,存储到寄存器 GDTR 中。

底下这张图,是 bootloader 被加载到内存中的布局图:

bootloader 被加载到 0x0000_7C00 地址处。

少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根最少需要创建 3 个段方法符:代码段、数据段和栈段。

信服 GDT 的地址

在创建段方法符之前,需要先信服: 把 GDT 表放在内存中的什么位置?

暂且就把少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根放在 0x0001_0000 这个地址吧,距离零地址 64K 的位置。

按照处理器的条目,在第 1 个表项(称之为 item 或者 entry,每本书上都不相似)必须为空方法符(index = 0)。

创建代码段方法符

bootloader 的代码放在 0x0000_7C00 驱动的地址,长度是 512B。

凭证这些信息,就不错构造出代码段的方法符了:

创建数据段方法符

bootloader 待会需要把操作系统或其他应用规律,从硬盘读取到内存中,举例:读取到 0x0002_0000 的位置。

那么 bootloader 就必须大要探访到这个位置,何况是以数据段的读写方法。

为了支配一道的 4G 内存空间,bootloader 不错把这 4G 空间,手脚一个数据段来界说少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根的方法符,如下:

创建栈段方法符

表面上,bootloader 不错使用内存中的随便一块泄气空间,来手脚我方的栈。

因为栈在 push 操作的时辰,是向低地址场所增长的。

因此好多册本都会把栈顶基地址成立为 bootloader 的驱动地址,也便是 0x0000_7C00 地址处,何况把栈的空间大小放手在 4K 的限度。

凭证以上这些信息,久久久久久女性国产就不错创建出栈的段方法符,如下:

当以上这几个段的方法符都创建好之后,就不错把 GDT 的地址(0x0001_0000),成立到 GDTR 寄存器中了。

终末,再把 CR0 寄存器的 bit0 成立为 1,就认真是干涉保护模式来实行 bootloader 中后头的代码了。

段方法符是如何确保段的安全探访的? 段寄存器高速缓存

干涉保护模式之后,天然对段寄存器中内容的讲明更动了,然而实行每一条教导,照旧需要使用到这些段寄存器的: cs, ds, ss等等。

瞎想一下:每实行一条教导,都会从逻辑地址中,赢得到段索引号,然后去查找 GDT 表,从而定位到段的基地址。

群众都清澈规律有个“局部性”旨趣,也便是链接实行的代码,都是围聚在一段链接的规律空间中的。

这个链接的规律空间,少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根们都是在兼并个代码段中,因此段的基地址都是疏浚的,那么少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根们都属于 GDT 中兼并个代码段方法符所代表的段空间。

如若每一条教导都去查表,就会影响到规律的实行后果。

是以,处理器里面就为每一个段寄存器,安排了一个高速缓存。

拿代码段寄存器 cs 来说:当实行一条教导的时辰,如若少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根与上一条教导中的段索引号不同,才会凭证新的段索引号到 GDT 中查找相应的段方法符表项。

查找到之后,就把这个表项的内容复制到 cs 寄存器的高速缓存中。

当赓续实行后头的教导时,如若逻辑地址中的段索引号莫得变化,处理器就径直从高速缓存中读取段方法,从而幸免了查表操作,擢升了系统后果。

对段寄存器本人的保护

当逻辑地址中段寄存器的索引号更动时,就会凭证新的索引号,到 GDT 中去查表。

天然了,这个索引号不行向上 GDT 的领域。

当定位到某一个方法符表项之后,就驱动进行一系列搜检。

再来看一下每一个段方法符中 8 个字节的内容:

bit8 ~ bit11 界说了现时这个段的类型。

“超级月亮”是新月或满月时月亮位于“近地点”附近的天文现象,在近点月的满月会比平均满月大足足12%,视觉上都会比较明亮及巨大。今年7月13日17时06分,月亮运行到距离地球全年最近的“近地点”,只有357372千米,此时月亮的视直径最大;14日2时38分,月亮、地球和太阳排成近似一条直线,此时月亮最圆,月亮视直径达到33.7角分,比太阳全年视直径还要大。

研究团队使用低温电子显微镜观察HIV Pol蛋白分子的三维结构发现,Pol是二聚体,这意味着它是由结合在一起的两种蛋白质形成的。这一发现令人惊讶,因为其他类似的病毒蛋白是单蛋白组装体。在这种两侧结构中,Pol的蛋白酶成分与逆转录酶成分“松散地束缚”在一种结合构型中,使蛋白酶保持轻微的柔韧性。

北京理工大学将牵头在重庆研制深空探测雷达“中国复眼”,能够观测1.5亿公里范围内小行星,将高分辨率观测近地/主带小行星、月球、金星、火星、木星等。为什么要紧紧盯住这些“小行星”呢?中国工程院院士、北京理工大学校长龙腾解释说,小行星撞击一直都威胁着地球和人类安全,受到各国高度关注。“中国复眼”能够满足近地小行星防御、空间态势感知等国家重大需求。

假如: 咱们在切换代码段空间的时辰,不禁止犯错,定位到了 GDT 中的一个数据段方法符表项,那么处理器就大要实时发现:

“现时这个段方法符的类型是数据段,你却把少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根当做代码段来使用,讳饰,杀无赦!”

因此,处理器就会拒却把这个段方法符复制到代码段的高速缓存中,从而对代码段寄存器进行了保护。

对段领域的搜检

在通过了第一层的段类型保护之后,还会赓续对段的领域进行搜检,这就要使用到逻辑地址中的偏移地址( EIP )了。

如若偏移地址向上了方法符中法例的领域,那么就阐发发生虚伪了。

举例:在 bootloader 的代码段方法符中,最大的领域是 512B,如若把 EIP 成立为 0x0000_1000,那就信服虚伪了。

因为这个地址根柢就不属于代码段的空间限度。

关于数据段来说比拟突出思,因为咱们把数据段方法符的基地址成立为 0x0000_0000,段的领域是扫数 4G 的空间,是以少妇护士下面好紧,丰满人妻国产在线,夹在两个男人中间,前面一根后面三根不错对扫数内存进行操作。

多想一步:

代码段亦然属于这 4G 空间,因此不错通过数据段,来改写代码段空间中的教导内容。

也便是说:如若你想修改代码段的教导,径直通过代码段来操作是不不错的。

因为代码段方法符中法例了:代码段的内容只可被读取、实行,然而不行被写入。

此时,就不错别有肺肠:代码段也放在 4G 的空间,那么就不错通过数据段的可写特质,来改写代码段中的教导。

 97国产免费最新视频

想一想 gdb 的调试经由,是不是就支配了这个兴味兴味?

 



    热点资讯

    相关资讯