0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Demo与操作系统介绍

jf_78858299 来源:硬件底裤 作者:酸奶盖子 2023-02-13 15:07 次阅读

一、实模式与保护模式

X86 CPU保护模式是最值得深入研究的问题。要搞清楚保护模式需要先了解实模式,实模式与保护模式有古代王权更替的味道。

实模式是8086时代的产物,8086的寄存器都是16位的,其中AX,BX,CX,DX又可以拆分为高8位,与低8位寄存器使用^[1]^。8086有20条地址线,换而言之8086寻址空间有1MB!

8086采用段加偏移的方式进行内存访问,理论上可以寻遍1MB空间,而其在1MB的空间中没有访问限制,不管是内核程序还是用户程序,这就给程序运行留下了隐患。

若程序A在0x00000x0051空间储存运行,程序B在0x00800x00ff储存运行,在特定情况下,程序B向0x0031~0x0070写入数据,那程序A数据便被覆盖造成程序A执行错误。如果程序A是内核的基础性程序,那代价将是巨大的。

英特尔注意到了该问题的严重性,在后续的80286便推出了保护模式。80286有24条地址线,在保护模式下CPU的段寄存器将不再保存段地址,转而保存段选择子,真实的段地址将保存在段寄存器描述符的高速缓存中(24位),当80286进入保护模式将获得16MB寻址空间。

由于引入了段选择子,段选择子记录了内存的访问权限,低权限程序将失去访问高权限内存的资格,增加了系统的安全性与稳定性。

80286还是16位处理器,虽然有24根地址线,但由于寄存器还是16位,即使运行在保护模式下段长度也无法超过64KB,加上不久后32位处理器时代来临,16位保护模式就鲜为人知。

80386是Inter第一款32位产品,其完全兼容了8086处理器,在实模式下80386将寄存器低16位当作8086寄存器使用,在实模式下80386相当于一块飞快的8086,同时386提供V86模式,在这种模式下可以模拟成多块8086。80386寻址空间达到了4GB,加上保护模式的应用,造就了386的划时代意义^[2]^。

二、什么是操作系统

从8086的实模式到32位386的保护模式,从段加偏移的寻址方式到根据段选择子寻址的过程,我们会愈发觉得操作系统就像一个厂长,而处理器如同一个智商不高的仓库管理员。

仓库管理员的日常工作就是出库、入库、货物移库、按照各种表格管理货物,处理器的工作也是这样的。他手下有AX,CX,DX,BX,SP,BP几大仓库,还有ES,CS,SS,DS,SI,DI工人,加上FS,GS两个临时工;仓库门口有一个大黑板,上面是各种标志寄存器的值,管理员手上有张大表格叫GDT(全局描述符表),还有几个记事本,叫LDT(局部描述符表),每种记事本只能使用特定的笔写,GDT的笔GDTR,LDT的笔叫LDTR。

操作系统是厂长,现在有一个单子:要向屏幕省输出一行文字。操作系统下令,将AX,BX等几个仓库里面的货物先挪到空地(栈)上,将一些新货物(指令、数据)放进去。接着指示货车将这些货物运到0x3d4,0x3d5市(屏幕省省会)。货物运到后,随车的管理员下来将货物名单一个接着一个的读,同时工人将读出名字的货物搬下来送给货主,于是我们就会看到屏幕出现文字了。整个过程处理器只是按操作系统给的指令将货物调度,至于这些指令、货物的意义它是不知道的。加减乘除不过是货物的累积与消除,两件货物叠加在一起就是加法,多件货物叠加就是乘法;有些货物出仓就是减法;将货物按5个归堆,堆数就是商,5个是除数,货物总量是被除数,如果有些货物不足一堆,那就是余数。所有东西都是自然而然。

有时候一连来几个单子(任务)那处理器会拿出GDT和LDT分配每个单子的先后顺序。在保护模式还引入了页管理机制,其作用就是按照各个货车的货物大小多少给他们分配落货地点。而大名鼎鼎的中断机制不过是厂区或者厂区所在地出现意外操作系统根据预案采取处理方法的手段。

进行完理论铺垫,下一步就是揭开保护模式的面纱!

参考文献:

[1] 徐建民.汇编语言程序设计[M].第2版.电子工业出版社, 2005.

[2] WilliamStallings著,王涌等译. 操作系统--内核与设计原理[M]. 第四版. 电子工业出版社, 2002.

[3]谢焕强.精简32位Linux操作系统在X86上的设计与实现[D].2022.23-24.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120305
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10859

    浏览量

    211704
  • 操作系统
    +关注

    关注

    37

    文章

    6818

    浏览量

    123320
收藏 人收藏

    评论

    相关推荐

    实时操作系统和分时操作系统的区别

    操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统,分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统
    发表于 11-14 17:39 1.3w次阅读

    如何选择嵌入式系统操作系统操作系统特征

    Linux来帮助他们管理复杂性。不幸的是,如何在裸机,RTOS或Linux之间进行选择并不总是明确的。每个选项都有其优点和缺点。 这篇文章将探讨选择操作系统时应考虑的系统特征。然后在下一篇文章中,我们将介绍使用每个
    的头像 发表于 09-07 11:51 1970次阅读

    【安富莱】【RTX操作系统教程】第2章 嵌入式实时操作系统介绍

    第2章嵌入式实时操作系统介绍 本章教程为大家介绍嵌入式实时操作系统基础知识,当前流行的小型嵌入式系统,STM32嵌入式实时
    发表于 01-15 15:35

    介绍ThreadX操作系统

    第3章 ThreadX操作系统介绍本章节介绍 ThreadX 操作系统,让大家对 ThreadX 有一个整体的了解。目录第3章 ThreadX操作系
    发表于 08-24 07:13

    ThreadX操作系统介绍

    第3章 ThreadX操作系统介绍本章节介绍 ThreadX 操作系统,让大家对 ThreadX 有一个整体的了解。目录第3章 ThreadX操作系
    发表于 08-24 07:37

    介绍14种主流的RTOS操作系统

    满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX
    发表于 10-27 07:28

    如何在 RT-Thread 操作系统上运行 Mnist Demo

    上期回顾:(点此跳转上一期)本期将介绍如何在 RT-Thread 操作系统上运行 Mnist Demo(手写数字识别),可支持自己手写数字验证。准备系统:Windows | Ubunt
    发表于 12-14 06:12

    Linux操作系统原理及应用

    Linux操作系统原理及应用 1.1  操作系统的地位 1.2  操作系统的功能 1.3  操作系统的发展过程 1.4 
    发表于 04-28 14:53 0次下载

    LwIP|无操作系统

    LwIP无操作系统下的实验 本文详细讲述了LwIP在无操作系统支持环境下的API函数介绍及编程应用。首先,介绍了RAW API的特点及优缺点,然后逐个
    发表于 04-07 16:39 110次下载

    嵌入式操作系统有哪些?

    嵌入式操作系统有哪些? 下面介绍国外和国内常用的实时操作系统。1. 国外著名的实时操作系统
    发表于 06-17 00:32 1.3w次阅读

    RTOS操作系统

    RTOS操作系统RTOS操作系统RTOS操作系统RTOS操作系统RTOS操作系统
    发表于 12-28 15:30 0次下载

    RTEMS嵌入式操作系统的简单介绍

    RTEMS嵌入式操作系统的简单介绍
    发表于 10-24 14:48 7次下载
    RTEMS嵌入式<b class='flag-5'>操作系统</b>的简单<b class='flag-5'>介绍</b>

    简要介绍操作系统虚拟化的概念,以及实现操作系统虚拟化的技术

    本文简要介绍操作系统级虚拟化的概念,并简要阐述了实现操作系统虚拟化所用到的技术Namespace及cgroups的原理及使用方法。
    的头像 发表于 01-10 15:00 1.3w次阅读
    简要<b class='flag-5'>介绍</b>了<b class='flag-5'>操作系统</b>虚拟化的概念,以及实现<b class='flag-5'>操作系统</b>虚拟化的技术

    S32K144实时操作系统演示DEMO V1.05的详细资料和函数免费下载

    本文档的主要内容详细介绍的是S32K144实时操作系统演示RTOS DEMO V1.05的详细资料和函数免费下载。
    发表于 09-19 08:00 61次下载
    S32K144实时<b class='flag-5'>操作系统</b>演示<b class='flag-5'>DEMO</b> V1.05的详细资料和函数免费下载

    嵌入式操作系统如何应用_嵌入式操作系统的组成

    本文首先介绍了入式操作系统的特点,其次阐述了嵌入式操作系统的应用,最后介绍了嵌入式操作系统的组成。
    发表于 09-01 16:36 3607次阅读