应用程序的编写大部分的时候是不必关心系统级架构的,最多学习一下平台所给的API即可,也就是我们通常说的黑箱子。但是在学习操作系统的时候,系统级架构是要关心的。

系统级架构很难学习,其中一个很大的原因是“纷繁复杂的架构”,还有就是很强的陌生感。先说个故事吧。

秋季学期俱乐部招新由我来面试,之前并没有做过这样的事情,我的手中有一份参加面试的名单,上面写着同学们的姓名、学号、学院、联系方式等信息,如果明天直接去面试彼此不了解,第一次做面试官的我很容易尴尬,“实体物的像会影响一个人的判断,甚至丧失对实体物全局的判断,全局把握的最佳时机就是实体物对我而言还是脑袋中的抽象时”,在我还没见到他们之前的一个晚上我弄到了教务处的管理员账号,根据学号一一查找信息,并一一谷歌,“免冠照片、高考成绩、家乡、高中、初中、获得奖项等”,有了这些信息,第二天的面试顺利进行,更没有遇到之前担忧的尴尬。

为了更好的学习架构,我所说的是不是“预习”?其实也不全是,重要的是要有一个全局的把握,这种把握既可以是学习之前也可以在学习之中获得,有了这个全局的把握,便知道了“因何而起,为何而生,为什么一定是它”。

处理器有两种工作模式(注意,不是只有这两种,而是存在):实模式、保护模式。他俩可能有很多不同,其中有一点不同就是访存。在实模式下,内存是裸露给处理器的,处理器获取到段地址和偏移地址(cs:eip),两者一拼凑即可获得要访问的地址,“我有两个残缺的地图,但是只要把他们拼在一起就可以找到宝藏的位置”;在保护模式下,访问内存可不是一件容易的事情,处理器获得了段地址和偏移地址,但此时的段地址并不是真实的段地址(但又确实是个地址),而是“段选择子”,然后根据段选择子在GDT中查找到真正的基地址,然后用这个基地址和偏移地址才可以获得要访问的地址“我有两个地图,其中一个地图指向一个房间,我的先到那个房间把真正需要的地图去取出来,然后把它和另一块地图拼在一起就可以找到宝藏的位置了”。

保护模式下的访存更加安全了,不仅仅是基地址的获得复杂了,仔细想一想为什么这么做会安全了。仅仅是增加了步骤而已吗,为什么要把实际基地址放在另一个地方然后让你去取,因为就在你取这个地址的时候,你的行径相当于被记录了,而且被限制,就好比说你要访问一个房间,这之前你需要做了登记,并被告知你的活动范围只能在这个房间里,你不能顺藤摸瓜去别的房间。

纷繁复杂的系统级架构,并不是工程师们喜欢复杂而制作出来了,而是为了满足某种目的的功能,比如保护模式的实现就需要很多数据结构(如GDT、LDT、TSS)和硬件,另外一些情况为了兼容之前的模式。

IA32系统级架构总览(一) 实模式和保护模式的更多相关文章

  1. IA32系统级架构总览(二)

    系统级架构由寄存器.数据结构.指令组成,这些设计对基本的系统级别的操作提供了支持,比如:内存管理.终端与异常处理.任务管理.多进程控制等. 我们先来看一看寄存器与数据结构的总汇图:现在你可能看不懂,不 ...

  2. ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构

    ★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...

  3. x86架构:从实模式进入保护模式

    详细的过程说明参考:(1)  https://www.cnblogs.com/Philip-Tell-Truth/p/5211248.html    (2)x86汇编:从实模式到保护模式 这里简化一下 ...

  4. OSLab:实模式与保护模式

    日期:2019/5/18 12:00 内容:操作系统实验作业:x86:IA-32:实模式与保护模式. PS:如果我们上的是同一门课,有借鉴代码的铁汁请留言告知嗷.只是作业笔记,不推荐学习. 一.实模式 ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第11章:进入保护模式

    ★PART1:进入保护模式 1. 全局描述符表(Global Descriptor Table,GDT)        32位保护模式下,如果要使用一个段,必须先登记,登记的信息包括段的起始地址,段的 ...

  6. 32位x86处理器编程导入——《x86汇编语言:从实模式到保护模式》读书笔记08

    在说正题之前,我们先看2个概念. 1.指令集架构(ISA) ISA 的全称是 instruction set architecture,中文就是指令集架构,是指对程序员实际"可见" ...

  7. 【OS】实模式和保护模式区别及寻址方式

    实模式和保护模式区别及寻址方式 转载请注明出处:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程.组成原理课里老师讲过实模式和保护模式的区别 ...

  8. 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15

    一.80286的工作模式 80286首次提出了实模式和保护模式的概念. 实模式:和8086的工作方式相同: 保护模式:提供了存储器管理机制和保护机制,支持多任务. 二.80286的寄存器 (一)通用寄 ...

  9. 进入保护模式(一)——《x86汇编语言:从实模式到保护模式》读书笔记12

    之前已经做了一些理论上的铺垫,这次我们就可以看代码了. 一.代码清单 ;代码清单11-1 ;文件名:c11_mbr.asm ;文件说明:硬盘主引导扇区代码 ;创建日期:2011-5-16 19:54 ...

随机推荐

  1. JVM垃圾回收机制总结(6) :透视Java的GC特性

    1. 使用 System.gc() 可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求 Java的垃圾回收. 在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式: ...

  2. PowerDesigner将PDM导出生成WORD文档

    PowerDesigner将PDM导出生成WORD文档 环境 PowerDesigner15 1.点击Report Temlates 制作模板 2.如果没有模板,单击New图标创建.有直接双击进入. ...

  3. Data Flow ->> CDC Control Task, CDC Source, CDC Splitter

    CDC Control Task可以从控制CDC数据同步,比如初始化加载.LSN范围的管理.它可以代替另一种做法,就是通过调用一批CDC函数来完成同样的事情.从SSIS的角度来完成,事情编程简单,和另 ...

  4. 程序员必须知道的几个国外IT网站

    1.TheServerSide 这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以Java和Java周边信息为主,不过最近它也有向客户端和微软产品扩展的趋势.这个网站最初是以免 ...

  5. dojo 九 effects dojo/_base/fx 和 dojo/fx

    官方教程:Dojo Effects这里讲学习一下dojo如何实现淡入.淡出.滑动等效果.实现这些特殊的效果有两个包 dojo/_base/fx 和 dojo/fx.dojo/_base/fx 中提供了 ...

  6. PowerDesigner15使用时的十五个问题

    15个问题列表: No.1:是不是一定要从CDM开始设计,然后在进行PDM的设计? NO.2:工具栏palette不见了,如何把它找出来? NO.3: 如何建立与数据库的关联? NO.4: 域和数据项 ...

  7. django中的filter详解

    filter (数据过滤) 我们很少会一次性从数据库中取出所有的数据:通常都只针对一部分数据进行操作. 在Django API中,我们可以使用`` filter()`` 方法对数据进行过滤: > ...

  8. ajax请求(二),后台返回的JSon字符串的转换

    ajax请求,json的转换 $.ajax({ url : "../folder/isExistAddFolder.do?t="+new Date(), type : 'POST' ...

  9. URAL1049. Brave Balloonists

    1049 求约数的个数 质因子数的个数+1相乘 #include <iostream> #include<cstdio> #include<cstring> #in ...

  10. R语言实战读书笔记(五)高级数据管理

    5.2.1 数据函数 abs: sqrt: ceiling:求不小于x的最小整数 floor:求不大于x的最大整数 trunc:向0的方向截取x中的整数部分 round:将x舍入为指定位的小数 sig ...