#encoding=utf-8 from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities import unittest, time class TestDemo(unittest.TestCase): def setUp(self): caps = DesiredCapabilities.INTERNETEXPLORER # 将忽略I…
#encoding=utf-8 from selenium import webdriver # 导入Options类 from selenium.webdriver.chrome.options import Options import unittest, time class TestDemo(unittest.TestCase): def setUp(self): # 创建Chrome浏览器的一个Options实例对象 chrome_options = Options() # 设置Chr…
在用WebDriver中打开Internet Explorer访问百度的是,报下面错误: org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same valu…
★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259A和I/O APIC这样的中断寄存器手机,并发送给处理器.硬件中断完全是随机产生的,与处理器的执行并不同步.当中断发生的时候,处理器要先执行完当前的指令(指的是正在执行的指令),然后才能对中断进行处理. 软中断是由int n指令引发的中断处理器,n是中断号(类型码). 2. 异常(Exception…
★PART1:32位保护模式下任务的隔离和特权级保护  这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重讲TSS如何进行任务切换). 1. 任务,任务的LDT和TSS 程序是记录在载体上的指令和数据,其正在执行的一个副本,叫做任务(Task).如果一个程序有多个副本正在内存中运行,那么他对应多个任务,每一个副本都是一个任务.为了有效地在任务之间进行隔离,处理器建议每个任务都应该具有他自己的描述符表,称…
原文链接为:http://www.chinaunix.net/old_jh/23/483510.html 保护方式的体系结构 主要问题:          保护方式的寄存器模型          保护方式的描述符与页表项          保护方式的存储器管理与地址转换          多任务机制与保护实现          虚拟 8086 模式 一.保护方式的寄存器模型   新增四个寄存器 (指针 -----  指向内存中的特殊的数据表):  全局描述符表寄存器 GDTR  局部描述符表寄存…
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flash的支持 [3]—— IE11 新的GPO设置 [4]—— IE企业模式介绍 [5]—— 不跟踪(DNT)例外 [6]—— Internet Explorer 11面向IT专业人员的常见问题 [7]—— Win7和Win8.1上的IE11功能对比 [8]—— Win7 IE8和Win7 IE11对比…
中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫NMI和INTR.处理器正在运行的时候会收到各种各样的中断,有些中断必须被处理,这就叫非屏蔽中断:有一些中断的处理优先级没有那么高,并且可以屏蔽,这就叫可屏蔽中断 1. 非屏蔽中断(Non Maskable Interrupt,NMI) 一旦处理器接受到NMI,说明处理器遇到了严重事件,这个时候必须无…
最近在看张银奎先生的<调试软件>一书,想将关键的技术记录下来,以便日后查阅,也分享给想看之人吧. 1 通用寄存器 EAX,EBX,ECX,EDX:用于运算的通用寄存器,可以使用AX,BX等16位或AL,AH等8位短寄存器,访问长寄存器的相应地址 ESP,EBP:Extended Stack/Base Pointer,指栈顶和当前栈的起始地址 ESI,EDI:源和目标寄存器,比如在循环操作中,与ECX组合,分别表示计数器(ECX),起始数(ESI),目标数(EDI) 64位扩展通用寄存器:RAX…
    第八章是一个非常重要的章节,讲述的是实模式下对硬件的访问(这一节主要讲的是硬盘),还有用户程序重定位的问题.现在整理出来刚好能和保护模式下的用户程序定位作一个对比. ★PART1:用户程序的重定位,硬盘的访问 1. 分段.段的汇编地址和段内汇编地址 NASM编译器使用汇编指令“SECTION”或者“SEGMENT”来定义段.他的一般格式是SECTION 段名称或者SEGMENT段名称(段名称不能重复),另外NASM对段没有数量的限制,一个程序可以有很多的代码段和数据段.Intel处理器要…
80x86系统寄存器和系统指令 1.标志寄存器(EFLAGS) 标志寄存器EFLAGS的标志位含义如下图: TF 位8是跟踪标志(Trace flag),当设置该位时可为调试操作启动单步执行方式.复位时则禁止单步执行.在单步执行方式下,处理器会在每个指令执行后产生一个调试异常,这样我们可以观察执行程序在每条指令执行后的状态. IOPL 位13-12时I/O特权级(I/O Privilege Level)字段.该字段指明当前运行程序或任务的I/O特权级别IOPL.当前任务或程序的CPL必须小于这个…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 目前已经完成了MBR的雏形,虽然有些简陋,比如我们的屏幕显示还是使用的BIOS中断,而在BIOS中断向量表只有在实模式下存在, 我们要进入保护模式之后就无法使用了.此次我们要完成直接操作显存来进行屏幕显示. 0.  关于显存 如果要…
之前已经做了一些理论上的铺垫,这次我们就可以看代码了. 一.代码清单 ;代码清单11-1 ;文件名:c11_mbr.asm ;文件说明:硬盘主引导扇区代码 ;创建日期:2011-5-16 19:54 ;设置堆栈段和栈指针 mov ax,cs mov ss,ax mov sp,0x7c00 ;计算GDT所在的逻辑段地址 mov ax,[cs:gdt_base+0x7c00] ;低16位 mov dx,[cs:gdt_base+0x7c00+0x02] ;高16位 div bx mov ds,ax…
80x86 保护模式极其编程       首先我不得不说.看这章真的非常纠结...看了半天.不知道这个东西能干嘛.我感觉唯一有点用的就是对于内存映射的理解...我假设不在底层给80x86写汇编的话.我真不知道这章能对我有什么用. .. update: {           当我决定暂停下来的时候,暂停这篇blog,我认为反思这样的行为都是伟大的.对于之前"能对我有什么用"的想法有了不同的见解.我发现这个保护模式极其编程还是挺有意思的.我之前不知道APUE里面讲current save…
[-1]写在前面: 以下部分内容总结于 http://blog.csdn.net/ruyanhai/article/details/7181842 complementary: 兼容性是指运行在前期CPU,如8086/8088上的的程序,也可以运行在其以后的处理器,如80286上: [0]看看intel处理器的发展历程 [1]8086/8088的寻址和问题 1.1)寻址:在8086/8088中,只有20根地址总线,所以可以访问的地址是2^20=1M,但由于8086/8088是16位地址模式,能够…
控制寄存器和系统地址寄存器 控制寄存器    crx cr0   指示cpu工作方式的控制位  包含启用和禁止分页管理机制的控制位  包含控制浮点协处理器操作的控制位   注意必须为0的位 cr2和cr3   分页管理机制使用    1.保护控制位 cr0中位0  pe表示  为0实模式   为1  保护模式 位31 pg表示 为0 禁用分页      为1启用分页管理机制 注意1.不存在   pe为0  且pg为1的情况   即   实模式下开启分页机制 2.改变pg位     只有当所执行的…
控制转移可以分为两大类  :同一任务内的控制转移    和   任务间的控制转移(任务切换) 同一个任务内的控制转移可以分为段内转移 .特权级不变的段间转移和特权级改变的段间转移 段内转移与实模式相同 不涉及特权级变换和任务切换  只有段间转移才涉及特权级变换和任务切换任务  重点为任务内的特权级变换和任务间的切换   一 任务内无特权级变换的转移 1.段间转移指令 jmp  call    ret    int    iret   都具有段间转移功能   另外中断和异常也将引起段间转移   其…
基于Xv6-OS 分析CR0 寄存器 之前一直认为晕乎乎的...啥?什么时候切换real model,怎么切换,为什么要切换? ------------------------------------------------------------------------------------------------------------------------------------------- 以下这段代码来自Xv6的boot/boot.S 这就是CPU real model 和 pr…
文章链接:https://www.cnblogs.com/cyx-b/p/11809742.html 作者:chuyaoxin 一.实验内容 BIOS将通过读取硬盘主引导扇区到内存,并转跳到对应内存中的位置执行bootloader.请分析bootloader是如何完成从实模式进入保护模式的. 提示:需要阅读小节“保护模式和分段机制”和lab1/boot/bootasm.S源码,了解如何从实模式切换到保护模式,需要了解: 为何开启A20,以及如何开启A20 如何初始化GDT表 如何使能和进入保护模…
日期:2019/5/22 关键词:操作系统:OS:保护模式:A20地址线激活:分页开启:二级页表的设置 PS:OSLAB实验课的整理. 本文主要内容是分析操作系统中一个简易的MBR. 建议先阅读:https://www.cnblogs.com/sinkinben/p/10888599.html 宏定义和数据定义 %define CR0_PE      (1 << 0) %define CR0_MP      (1 << 1) %define CR0_EM      (1 <&…
     站在用户角度考虑,一个合格的操作系统即使在单核下也能 "同时" 执行多个任务,这就要求CPU以非常快的频率在不同任务之间切换,让普通人根本感觉不到任务的切换.windwos和linux都有线程切换的方法,今天介绍cpu硬件自带的任务切换方案: 时钟中断 + TSS: 1.关于时钟中断,这里 https://www.cnblogs.com/theseventhson/p/13068709.html  有详细的说明.简单理解:cpu外部有专门负责根据时间间隔产生中断的芯片,每隔一…
https://github.com/yyu/osfs00 实验目的: 理解x86架构下的段式内存管理 掌握实模式和保护模式下段式寻址的组织方式. 关键数据结构.代码组织方式 掌握实模式与保护模式的切换 掌握特权级的概念,以及不同特权之间的转移 实验内容: 1. 认真阅读章节资料,掌握什么是保护模式,弄清关键数据结构: GDT.descriptor.selector.GDTR, 及其之间关系,阅读 pm.inc文件中数据结构以及含义,写出对宏Descriptor的分析 2. 调试代码,/a/ 掌…
写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我. 你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核--简述 ,方便学习本教程.   看此教程之前,问几个问题,基础知识储备好了吗?上一节教…
第16章讲的是分页机制和动态页面分配的问题,说实话这个一开始接触是会把人绕晕的,但是这个的确太重要了,有了分页机制内存管理就变得很简单,而且能直接实现平坦模式. ★PART1:Intel X86基础分页机制 1. 页目录.页表和页 首先先要明白分页是怎么来的,简单来讲,分页其实就是内存块的映射管理.在我们之前的章节中,我们都是使用的分段管理模式,处理器中负责分段的部件是段部件,段管理机制是Intel处理器最基本的处理机制,在任何时候都是无法关闭的.而当开启了分页管理之后,处理器会把4GB的内存分…
15章其实应该是和14章相辅相成的(感觉应该是作者觉得14章内容太多了然后切出来了一点).任务切换和14章的某些概念是分不开的. ★PART1:任务门与任务切换的方法 1. 任务管理程序 14章的时候我们说过,一个程序他可以有很多个任务,特权级指的是任务的不同部分的特权级,一个任务可以有两个空间,一个全局空间,一个局部空间.在一个任务内,全局空间和局部空间具有不同的特权级别,使用门,可以在任务内将控制从3特权级的局部空间转移到0特权级的全局空间,以使用内核或者操作系统提供的服务. 任务切换时以任…
在我们阅读boot loader代码时,遇到了两个非常重要的概念,实模式(real mode)和保护模式(protected mode). 首先我们要知道这两种模式都是CPU的工作模式,实模式是早期CPU运行的工作模式,而保护模式则是现代CPU运行的模式. 但是为什么现代CPU在运行boot loader时仍旧要先进入实模式呢?就是为了实现软件的向后兼容性不得已才这样的. 下面我们分别看下这两种工作模式的基本原理. 实模式(real mode) 实模式出现于早期8088CPU时期.当时由于CPU…
实模式和保护模式区别及寻址方式 转载请注明出处:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程.组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的最大长度不超过64KB?而保护模式下为啥最大寻址能力就变成了64TB?每个段最大也达4GB? 更甚者分段和分页这两个高深的概念像我这种菜鸟怎么也理解不了啊!…
1 一般来说,80x86(80386及其以后的各代CPU)可以在三种模式下运转:实模式,保护模式,V86模式.实模式就是古老的MS-DOS的运行环境.Win95只利用了两种模式:保护模式和V86模式. 2为什么要进入保护模式: 保护模式有许多优越性.其中最最直接的好处就是:你的程序可以利用更多的内存了! 3 4 从硬件结构上说,386由三个寄存器CR0.CR1.CR2控制着CPU的运转.比如说,CR0的第0位就是用来判断当前CPU是工作在保护模式还是实模式下.学过8088/8086汇编语言的人一…
现在,内核已经被我们加载进内存了,该是跳入保护模式的时候了. 首先是GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段.一个0~4GB的可读写段和一个指向显存开始地址的段: ; GDT ; 段基址 段界限, 属性 LABEL_GDT: Descriptor 0, 0, 0 ; 空描述符 LABEL_DESC_FLAT_C: Descriptor 0, 0fffffh, DA_CR|DA_32|DA_LIMIT_4K ;0-4G LABEL_DESC_FLAT_RW: D…