应用程序的编写大部分的时候是不必关心系统级架构的,最多学习一下平台所给的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. [iOS]利用通知实现监听系统键盘

    // // ViewController.m // text // // Created by 李东旭 on 16/1/22. // Copyright © 2016年 李东旭. All rights ...

  2. jQuery RemoveAttr(checked)之后再Attr(checked)属性无效果的原因分析

    jQuery中attr()和prop()在修改checked属性时的区别 投稿:whsnow 字体:[增加 减小] 类型:转载   使用语句$.attr('checked',true),将复选框的属性 ...

  3. SQL SERVER ->> Wait Stats

    等待状态是隔离SQL SERVER性能问题的一个重要手段,从实例级别入手.可以大概看出SQL SERVER在过去某段时间内是否处于某种资源的吃紧状态.不过取决于你是否有建立有效的性能数据收集机制.sy ...

  4. Spring Loaded is a JVM agent for reloading class file changes

    <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  5. 14_把文件存放在SDCard

    权限添加 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> /** ...

  6. sencha touch xtype

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. javascript 网络是否连接的几种方案

    js   网络是否连接的几种方案 1.通过html5的新属性: window.onload = function () {            var isOnLine = navigator.on ...

  8. [转]matlab如何复制spectrum scope的图

    2014-03-17 22:23:01 来自:http://www.ilovematlab.cn/thread-38713-1-1.html 如何将spectrum scope的图复制出来? 解决方法 ...

  9. hdoj - 1258 Sum It Up && hdoj - 1016 Prime Ring Problem (简单dfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1258 关键点就是一次递归里面一样的数字只能选一次. #include <cstdio> #inclu ...

  10. Regex count lowercase letters

    Description: Your task is simply to count the total number of lowercase letters in a string. Example ...