x86 32位机的特权保护

X86汇编语言:从实模式到保护模式(代码+注释)--c10、11(保护模式:32位x86处理器编程架构+进入保护模式) 在进入实模式之后,段寄存器的高速换粗部分保留了原始的内容,但其内容是无效的,同时进入后,流水线中的指令并未清除,原来的指令都是16位的译码规则,进入保护模式后需要将其转变为32位的译码模式,因此需要刷新流水线以保证程序运行正常。第21根地址线,为了满足原始的8086处理器只有20条地址线,导致的仅为问题。控制保护模式开关的是控制寄存器CR0,CR0的0位为PE位(保护模式允许位),CR0是个32位寄存器。最初的状态为实模式,因此在GDT中安装描述符必须要将GDT的线性地址转化为逻辑地址和偏移地址。 阅读详情

优先级划分、指令的权限检查和超出权限访问的异常处理等是构成特权保护的基础。本文将试图讲解为大家解决两大问题:

--win32汇编中为什么找不到中断指令的应用?比如int 7ch

--windows错误的‘蓝屏’是从哪里来的?

保护模式下,中断或异常往往从用户代码切换到操作系统代码中执行。由于保护模式下的代码有优先级之分,因此出现从优先级低的应用程序转移到优先级高的系统代码的问题,如果优先级低的代码能够任意调用优先级高的代码,就相当于了拥有了高优先级代码的权限。为了使高优先级代码能够安全的被低优先级代码调用,保护模式下增加了‘门’的概念。

门指向某个优先级高的程序所规定的入口点,所有优先级低的程序调用优先级高的程序只能通过门重定向,进入门所规定的入口点。这样就可以避免低级别的程序代码从任意位置进入优先级高的程序的问题。

保护模式下的中断和异常等服务也需要从‘门’进入,80386的门分为中断们、自陷门和任务门。

保护模式把所有的中断描述符放在一起组成中断描述符表IDT,为此80386处理器引入了一个新的48位寄存器IDTR。IDTR的高32位指定了IDT在内存中的基址(线性地址),低16位指定了IDT的长度,相当于指定了可以去支持的中断数量。

保护模式发生异常或者中断时,处理器先根据IDTR寄存器得到的中断描述符的地址,然后取出n号中断/异常的门描述符,再从描述符中取得中断服务程序的地址xxxx:yyyyyyyy,经过段地址转换后得到服务程序的32为线性地址并转移后执行。

windows中,操作系统使用动态链接库代替中断服务程序提供系统功能,所以win32汇编中int指令也就失去存在的意义。这就是在win32汇编中看不到int指令的原因,其实那么调用API的指令就相当于在DOS系统中使用int指令完成系统功能。


保护机制主要在下面几个方面:

段类型检查:由段描述符指定的

页类型检查

访问数据时的级别检查:

--优先级低的代码不能访问优先级高的数据段。80386的段描述符中有一个DPL(描述符优先级),表示这个段可以被访问的最低优先级

--而段选择符中含有RPL域(请求优先级),表示当前执行代码的优先级

知道有当DPL大于RPL时才可访问

以上是windows规定的保护条例,如果某个程序违反了,那么引发保护异常,这样就会蓝屏告诉用户试图访问不存在的内存。

x86 - 特权级别 CPL / RPL / DPL / IOPL 本文内容:特权级别,Privilege Level 基本概念 描述符特权级(DPL,Descriptor Privilege Level) 当前特权级(CPL,Current Privilege Level) 请求特权级(RPL,Request Privilege Level) 特权指令(Privileged Instructions) 输出特权级(I/O Privilege Level) 存储位置DPLRPLCPLIOPL 控制转移的方法方法一、依从代码段方法二、调用门(Call Gate) 基本的特权级 阅读详情

相关推荐

黑群晖X86引导 NanoBoot-x86-5.0.2.4-fat 支持4.0+

黑群晖X86引导 NanoBoot-x86-5.0.2.4-fat 支持各种X86架构群晖引导 支持4.0+

N270 CPU安装X86群晖反复出现可转移解决方案

反复出现可转移问题,始终不能启动成功,此处问题出在BIOS设置,需要修改BIOS设置中如下项目 BIOS内把SATA通道改为IDE,路径如下:ICH Control Sub-Menu→Integrated Device Control Sub-Menu→SATA-Device 31, Function 2 [Enhanced]选项,把Enhaned改为[compatible]

Yimo的常见问题小本子 2万+

nanoboot 5.0.3.1 x86 32位 N270可用的最终版本黑群晖

黑群晖X86引导 NanoBoot-x86-5.0.3.1-fat 支持各种X86架构群晖引导 x86 32位最终版本, N270 CPU可用。 包含最终x86可用群晖系统官方下载地址。 nanoboot.img用Win32DiskImager直接烧到u盘启动

32位古董级CPU-N270群晖系统安装手册

一、主角N270登场:首先介绍下这个N270老古董CPU,现在都3个2(2022)的年代了,这个32位的U和这个时代格格不入,堪称经典的电子垃圾。如果你还没有碰到,就果断不要再碰这个U了。有钱一定要上新款和主流款,千万不要找老爷款,否则你会走上自我折磨的不归路。以上是N270的技术规格,已经无法在现在起步都得是64位CPU的时代生存了。如果非要给它找一个优点,那就是功耗小,省电,省钱,所以不管你是小白还是大白还是其他什么白,我都不推荐你购买使用。

猫耳朵朵的博客 2801

NanoBoot-x86-5.0.3.1-fat.img

32位群辉。适用于升腾GI945。引导文件,配合DSM_DS214play_4493.pat文件升级,我已经安装成功,有问题欢迎留言。

亲测可用X86-nanoboot- x86 32位 黑群晖含已经配置好的引导和安装软件完整版

亲测可用X86-nanoboot- x86 32位 黑群晖含已经配置好的引导和安装软件完整版

x86特权级保护

下面说说事先特权级保护的硬件和机制。

静下心来,做好每一件事 503

i945 群辉5.0 nas 超稳定 32位CPU的黑群辉含免u盘文件

i945 群辉5.0 nas 超稳定 32位CPU的黑群辉(含免u盘文件) i945 群辉5.0 nas 超稳定 32位CPU的黑群辉(含免u盘文件) i945 群辉5.0 nas 超稳定 32位CPU的黑群辉(含免u盘文件)

揭秘 x86 标志寄存器:从 16 位到 32 位的 “超级进化”,看懂 CPU 的底层密码

摘要:从16位到32位处理器的标志寄存器演进体现了计算机底层架构的重大变革。16位FLAGS仅有11个标志位,难以处理多任务、内存保护等复杂场景;32位EFLAGS新增8个核心标志位,如NT(嵌套任务)、VM(虚拟8086模式)、AC(内存对齐检查)等,使CPU获得多任务调度、旧程序兼容、调试保护和硬件适配能力。这些改进奠定了现代操作系统的底层基础,而64位RFLAGS保持了完全兼容,彰显了x86架构"向后兼容"的设计哲学。标志寄存器的进化历程展示了计算技术如何在性能突破与兼容性之间取得

2501_90200491的博客 1470

群辉N270专用包.zip

群辉270专用包 群辉系统 压缩文件包含U盘写入工具 系统引导固件 和系统安装固件 写入方法 先用U盘制作工具添加外面的15兆的引导文件Write写入在用群辉助手找到IP地址打开 安装里面的NanoBoot的系统 自此安装完成 期间会重启 不启动 手动帮助开机一下 后面就好了

U盘上的Linux系统制作(X86).zip_LINUX U盘_linux

该文档描述了如何在U盘上制作LINUX系统,相当于是做一个LINUX的启动盘。

x86 - CPU架构/寄存器详解 (三) 保护模式

本文内容: CPU架构通用寄存器状态寄存器状态标志(Status Flags)控制标志(DF flag)系统标志以及IOPL域(System Flags and IOPL Field)系统地址寄存器GDTRLDTRIDTRTR段寄存器控制寄存器CR0CR1CR2CR3CR4调试寄存器其他寄存器EIPTSC浮点寄存器MSR参考资料   80286 也是一款 16 位的处理器,大部分的寄存器都和 8086 处理器一样。因此,80286 和 8086 一样,因为段寄存器是 16 位的,而且只能使用 16 位的偏移

Gyc8787的博客 7542

python气象数据可视化学习笔记8——利用matplotlib和ERA5数据绘制时间-高度气象综合廓线图

利用matplotlib和ERA5数据绘制时间-高度气象综合廓线图

qiuylulu的博客 8064

X86的32位应用程序保护模式中,选择子和对象句柄的关系概述

X86的32位应用程序保护模式中,选择子和对象句柄的关系。

lza_csdn2019的博客 998

iTunes登录协议逆向与自动化实现

本文详细解析了iTunes登录协议的逆向工程与自动化实现方法,涵盖请求体构造、签名生成和会话管理等关键技术。通过XML结构解析、X-Apple-ActionSignature生成原理及完整登录流程实现,帮助开发者高效完成iTunes自动化登录,提升工作效率。

weixin_26938645的博客 939

云漾AI创作平台实战:如何用GPT4.0+Midjourney快速生成商业级插画(附Prompt模板)

本文详细介绍了如何利用云漾AI创作平台结合GPT4.0和Midjourney快速生成商业级插画。通过智能文案生成与视觉化工作流,大幅提升创作效率,适用于电商、社交媒体等多种场景。文章包含实用Prompt模板和参数调整技巧,帮助设计师和内容创作者高效产出专业插画。

weixin_29251567的博客 217

x86 --- 任务隔离特权级保护

OS

weixin_43604927的博客 1335

Cesium体渲染实战:从医学CT到气象数据的3D可视化全攻略

本文详细介绍了如何利用Cesium体渲染技术实现医学CT和气象数据的3D可视化。从数据预处理到交互式渲染,涵盖了DICOM和NetCDF格式的处理技巧,以及性能优化的实战策略,帮助开发者高效处理复杂的三维数据集。

weixin_28717431的博客 420

X86保护模式(一)· 何为保护模式

在实模式下,用户程序对内存的访问十分自由,它可以访问1MB内的任何地址,任意修改其它程序的内存空间,也可以访问任何端口,这也意味着可以访问任何设备,诚然,这对于现代计算机来说,是一件非常危险的事情。 在当下多用户多任务的背景下,内存中通常会有多个任务在同时运行,为了使他们彼此隔离,防止因某个用户程序的错误而影响其它程序甚至操作系统,引入保护模式是非常有必要的。 ...

尽头2nxszn98的博客 1412

东方财富网 数据访问接口及字段说明

东方财富网 数据访问接口和字段说明

雨中山草 2万+

Linux V4L2驱动开发实战:手把手教你用I2C摄像头Sensor注册一个v4l2_subdev

本文详细解析了Linux V4L2驱动开发中I2C摄像头Sensor注册v4l2_subdev的全流程,包括初始化、操作集填充、异步匹配等关键环节。通过实战案例和代码示例,帮助开发者掌握V4L2子系统下的摄像头驱动开发技巧,提升嵌入式Linux系统开发能力。

weixin_30328063的博客 418

x86架构中的保护模式

在x86架构中所谓保护模式其实就是段的存储方式能够达到一种保护机制。也正因为有了保护模式(段的存储方式)所以才会有特权模式,以及后面的多任务之说;         在实模式下段的存储很简单,就是代表一个段基地址;如:ds(ds=0x7c00),那么数据段的基地址就是0x7c00;再比如:ds:ax(ds=0x0000;ax=0x7c00)那么段基地址就是0x00;物理地址就是:(ds * 16)

YuZhiHui_No1的专栏 3538

超级全的PCB LAYOUT高速信号走线指南——简化应用版

在PCB Layout中,几乎涵盖了所有的高速信号走线指南。包括了TF/SD、HDMI、LVDS、DVP、eDP、MIPI、USB2.0、USB3.0、MAC、BT.1120、PCIE高速信号等等。此版本为简化版。

bhxc809751502的博客 8547
上一篇: 32机的内存分页机制
下一篇: linux系统调用原理分析
OS技术解密
博客等级 码龄16年 3760粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值