范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Linux内核之X86系统寄存器(初始化系统,控制系统操作)

  一、系统寄存器
  1.EFLAGS 寄存器
  ① 存放system flags和IOPL;
  ②控制任务切换和模式切换,处理终端,指令追踪;
  2.控制寄存器(CR0,CR2,CR3,CR4)
  ①控制系统级操作;
  ②支撑操作系统某些特性;
  3.GDTR/LDTR/IDTR
  ①记录了GDT/LDT/IDT表的线性基址和大小;
  4.任务寄存器(task register)
  ①当前任务的线性地址;
  ②当前任务TSS的的大小;
  5.Model-specific registers(MSRs)
  ① 主要用于操作系统或程序执行过程;
  6.调试寄存器(debug registers)(DR0—DR7) :用于设置断点
  注:多数系统限制应用程序对系统寄存器的访问(除了EFLAGS);程序运行在特权级0时,可以更新系统寄存器的值;
  7.IA-32e(64位扩展技术) GDTR/LDTR/TR被扩充到64bit;EFLAGES扩充为RFLAGS;CRO-CR4被扩充到64bits; 控制IA-32e mode 指令的MSRs
  (1)IA32_KernelGSbase
  (2)IA32_LSTAR
  (3)IA32_SYSCALL_FLAG_MASK
  (4)IA32_STAR_CS
  需要的小伙伴私信 内核 领取 二、内存管理相关的寄存器(GDTR,LDTR,IDTR&&TR)
  1.GDTR(Global Descriptor Table Register,全局符号表寄存器)
  (1)基址(保护模式:32位;IA-32e模式:64bits)+GDT表最大size(16bit),基址是全局符号表GDT的地址;
  (2)LGDT、SGDT分别load和store GDTR寄存器;
  (3)计算机刚启动或者处理器重置之后,基址被设置为0,limit设置为0FFFFH;设置基址的值是保护模式下初始化处理器的一部分;
  2.LDTR(Local Descriptor Table Register, 本地符号表寄存器)
  (1)段选择器(16bits) + 基址(保护模式:32bits;IA-32e模式:64bits)+ segment Limit+LDT的属性;基址是LDT表的基础地址,Segment Limit表明了段字节数目;
  (2)LLDT和SLDT指令分别load和store LDTR寄存器;GDT中存在LDT表的段描述符,LLDT指令load segment selector到LDTR时,基址和LDT属性也自动被load到LDTR中;
  (3)任务切换时,新任务的段选择器、段基址、LDT表属性会自动被加载到LDTR中;
  (4)计算机上电或者处理器重置时,LDTR中的segment selector、base address分别被置为0和0FFFFH
  3.IDTR(Interrupt Descriptor Table Register,中断符号表寄存器)
  (1)base address(保护模式:32bit;IA-32e模式:64bits)+table limit(16bit),基址指定了IDT表的地址,table limit说明了IDT表的大小;
  (2)LIDT和SIDT命令分别负责IDTR寄存器的load/store操作;
  (3)计算机刚上电或者处理器reset时,基址设置为0,limit设置为0FFFFH;LDTR初始化是处理器初始化的一部分;
  4.TR(Task Register,任务寄存器)
  (1)segment selector(16bit,段选择器)+base address(保护模式:32位;IA-32e模式:64bits)+ segment limit+当前任务TSS段属性描述符;(基址是TSS段基址;segment limit限制了TSS大小)
  (2)GDT表中记录了TSS段描述符;
  (3)LTR和STR分别负责TR寄存器的load和store操作;计算机上电或者处理器重置时,base address置为0,segment limit 设置为0FFFFH;
  (4)发生任务切换时,自动调用LTR,将新任务的段选择器、基址、描述等load到TR寄存器中; 三、控制寄存器(CR0--CR4,CR8)
  1.一般约定
  (1)CRO和CR4的3263bit预留,必须全为0;CR0和CR4高32位任意一位非0会触发general-protection exception;
  (2)CR2的所有64bits均可被软件读写;
  (3)CR3的40bit51bit预留,必须为0;
  (4)CR8仅仅在64bit模式下可以使用;
  2.控制寄存器 CR0:system control flags,控制操作模式和处理器状态; CR1:预留 CR2:page-fault线性地址(导致页错误的线性地址) CR3:页全局目录的地址+PCD&&PWT(控制页表在cache中的缓存),使用物理地址扩展时,CR3寄存器包含页表目录表的指针;IA-32e模式下,CR3寄存器记录PML4表的基址; CR4:包括系统扩展相关的flags;通过mov指令读写该寄存器的值; CR8:提供对Task Priority Register(TPR)寄存器的读写访问;64bit模式下才可以使用;指定了操作系统用来控制可中断处理器的外部中断级别;
  3.控制寄存器中的标识 PG(bit 31 of CR0):Paging,置位:启动分页机制;清除:disable分页机制,所有线性地址作为物理地址;当PE没有置位时,PG flag没有效果;PG flag设置,PE flag没有置位时,会导致general protection exception; CD(bit 30 of CR0):Cache Disable,当CD和NW flags被清0时,启用cache机制(可以缓存整个内存系统数据);CD标识设置后,缓存满足一下限定表;CD flags置位后,处理器不可访问访问、更新cache; NW(bit 29 of CR0): Not Write-Through,NW和CD flags 被清零,启用write-back或者write-through, AM(bit 18 of CR0): Alignment Mask,启用自动对齐校验设置;清零,不支持自动地址对齐校验;置位,自动进行地址对齐校验; WP(bit 16 of CR0):write protect,置位:禁止处于超级权限的进程向只读pages写入数据;清零:允许超级权限进程向只读pages写入数据;支持LInux系统以copy-on-write的方法创建进程; NE(bit 5 of CR0): Numeric Error,置位:提供报告X87 浮点运算单元错误;清零:enables PC-Style X87 FPU error reporting;NE flag被清零&&IGNNE# input被断言,X87 FPU errors被忽略;NE flag被清零&&IGNNE#断言错误,unmasked x87 FPU errors导致处理器assert FERR# pin,产生外部中断,立刻终止指令执行; ET(bit 4 of CR0):Extension Type,奔腾4、Intel Xeon、P6 famil和奔腾处理器中保留该位;该位被硬编码为1;Intel386和Intel486处理器中,flag被置位后表明支持Intel 387 DX 数学协处理器指令集; TS(bit 3 of CR0):Task Switched,允许X87 FPU/MMX/SSE/SSE2/SSE3/SSE4 上下文转换推迟到新任务真正需要FPU/MMX/SSE/SSE2/SSE3/SSE4时; EM(bit 2 of CR0):Emulation MP(bit 1 of CR0):Monitor Coprocessor PE(bit 0 of CR0):Protection Enable PCD(bit 4 of CR3):Page-level Cache Disable,控制访问页全局目录的方式;disable 分页基址或者PAE分页模式下、IA-32e模式下,CR4.PCIDE=1,该位不被使用; PWT(bit 3 of CR3):Page-Level Write-Through,控制访问页全局目录的方式; VME(bit 0 of CR4):Virtual-8086 Mode Extension,置位后,允许在virtual-8086模式下处理中断和异常,由于避免了通过virtual-8086 monitor处理异常和中断的开销,因而可以提高应用的性能; PVI(bit 1 of CR4):Protected-Mode Virtual Interrupts,置位:为Virtual interrupt flag(VIF)提供了硬件支持;清零,不支持VIF; TSD(bit 2 of CR4):Time Stamp Disable,置位,限制特权级0下使用RDTSC指令;清零后,允许在任何特权级执行RDTSC指令; DE(bit 3 of CR4):Debugging Extension,置位后,使用调试寄存器DR4和DR5会引发undefined opcode 的异常;清零,处理器依靠使用DR4和DR5兼容早期IA-32处理器; PSE(bit 4 of CR4):Page Size Extension,置位后,enable 4MB page;清零后,页基本大小4KB; PAE(bit 5 of CR4):Physical Address Extension,置位后,允许分页过程中产生大于32bit的地址(页框号);清零后,页号必须不大于32bit;IA-32e模式下必须激活PAE MCE(bit 6 of CR4): machine check enable,置位后,启用机器校验;清零后,disable machine check exception; PGE(bit 7 of CR4):Page Global Enable,第六代处理器中引入;置位后,启用global page feature;清零后,disable global page ;global page feature允许经常使用的pages或者共享pages被标记为global to all users;上下文任务切换或者写寄存器CR3时,global pages不从TLB中flush出去; PCE(bit 8 of CR4):Performance-Monitoring Counter Enable,置位,允许在任何保护级别执行RDPMC指令;清零,RDPMC指令仅仅可以在特权级0执行; OSFXSR(bit 9 of CR4):Operating System Support for FXSAVE and FXRSTOR instruction,置位:(1)表明操作系统支持指令FXSAVE和FXRSTOR;(2)FXSAVE和FXSTORE指令分别用来保存和恢复寄存器X87 FPU、XMM、MXCSR和MMX的内容;(3)处理器执行SSE/SSE2/SSE3/SSSE3/SSE4指令时会抛出PAUSE, PREFETCHh,SFENCE, LFENCE, MFENCE,MOVNTI, CLFLUSH, CRC32, POPCNT异常 OSXMMEXCPT(bit 10 of CR4):Operating System Support for Unmasked SIMD Floating-Point Exception,置位:表明操作系统支持unmasked SIMD浮点Exception的执行;SIMD floating-point异常仅仅会由SSE/SSE3/SSE2/SSE4 SIMD浮点指令产生; VMXE(bit 13 of CR4):VMX-Enabled bit,置位后启用VMX操作; SMXE(bit 14 of CR4):SMX-Enabled Bit,置位后启用SMX操作; FSGSBASE (bit 16 of CR4):FSGSBASE-Enable Bit,置位后启用RDFSBASE,RDGSBASE,WRFSBASE和WRGSBASE指令; PCIDE(bit 17 of CR4):PCID-Enable Bit,置位后启用process-context-identifiers(PCIDs); OSXSAVE(bit 18 of CR4):XSAVE and Processor Extended Stats-Enable Bit,置位:(1)表明操作系统支持普通软件使用XGETBV,XSAVE和XRSTOR指令;(2)启用XSAVE和XRSTOR指令保存或恢复X87 FPU寄存器和SSE寄存器状态以及其他XCR0状态;(3)启用可读写XCR0的XGETBV和XSETBV指令; SMEP(bit 20 of CR4):SMEP-Enable Bit,置位:禁止在监督模式下执行指令; SMAP(bit 21 of CR4):SMAP-Enable Bit,置位:禁止在监督模式下访存 PKE(bit 22 of CR4):Protection Key Enable Bit, IA-32e分页基址中,允许为每个线性地址分配一个protection key;PKRU寄存器内的值表明用户模式下带有protection key的线性地址是否可被读或被写;RDPKRU和WRPKRU指令分别读写寄存器PKRU的值; TPL(bit 3:0 of CR8):Task Priority Level,设置中断可以被阻塞的优先级阈值,0表示所有中断均enabled;15表示中断特权disabled 四、Segment RegisterCS存放代码段基址; SS寄存器存放堆栈段基址; DS/ES/FS/GS寄存器存放数据段基址;
  注:code segment被设置为Read-Only Segments;64bit模式下,分段一般是disabled的,处理器将CS/DS/ES/SS值设置为0; 五、EFLAGS寄存器中系统标志
  控制I/O,可屏蔽硬件中断、调试、任务切换,支持virtual-8086 mode; TF(8):Trap,①置位,启用单步调试;②清除,disable单步调试; IF(9):Interrupt enable,控制the response to maskable hardware interrupt;①置位,响应可屏蔽硬件中断;②清零,禁止可屏蔽中断;该位不影响不可屏蔽中断(NMI); IOPL(12,13bit):I/O privilege level filed(I/O特权级),表明当前正在运行任务的I/O特权级,当前运行程序的特权级必须不大于IOPL;当且仅当当前特权级为0时,POPF和IRET指令可以更新该域; NT(14bit):Nested task,控制嵌套中断和嵌套任务; RF(16bit):Resume,控制处理器对指令中断的相应;①置位,disable debug exceptions;②清零,中断条件满足时,产生debug exception; VM(17bit):置位,启用virtual-8086 mode;清除,返回到protected mode; AC(18bit): alignment check or access control,①置位:AMbit通过CR0置位时,对齐检查和用户模式下数据访问启用,访问非对齐地址时,会产生algnment-check exception;②可用来检查数据是否对齐, VIF(19bit): Virtual Interrupt,当VME flag or PVI flag在CR4中置位,或者IOPL小于3时,处理器才可以识别VIP flag; VIP(20bit): Virutal Interrupt Pending,①置位,中断正在执行;②清零,无中断正在运行;该标志和VIF标识结合使用,处理器读取该标志,但从来不更新该标志;当VME flag or PVI flag在CR4中置位,或者IOPL小于3时,处理器才可以识别VIP flag; ID(21bit):Identification,表明是否支持CPUID指令;
  原文作者: cyj_haiou
  原文地址:http://t.csdn.cn/vMsTI(版权归原文作者所有,侵权联系删除)

看看你们怎么说孩子们课间经常有拌嘴,一个个的特别能说,歪的有时候能说成直的,真不亚于周星驰扮演的九品芝麻官。口才还是有的,有时候互撕严重了,还得靠我出面摆平。针对这些问题我觉得不是多大的事,反而王茜华为上镜打200多针,因拍戏14天暴瘦十七八斤,她有多拼为拍戏14天暴瘦十七八斤因为是熟人,大夫打了200多针,但是我的脸你知道成什么了吗?已经成了马蜂窝了!往自己脸上扎200多针美容剂,只为更加上镜,农村剧一姐王茜华有多狠?王茜华20没想到,这才是流浪地球2的真面目只有我们国家可以了,我们的科幻才可以成立。作者余驰疆去年北京国际电影节,郭帆担任评委,与人民文娱有过一次对话。很大一部分内容,就是围绕万众瞩目的流浪地球2。他指着自己的发际线说现在火炎焱燚!春节龙岩文旅消费兔飞猛进,实现旅游总收入火火火龙岩文旅消费兔飞猛进看土楼游古城赏樱花闹民俗艳阳高照春光明媚游人如织车水马龙到处都是人人人车车车!旅游出行人数大幅增加据测算,2023年春节假日期间,龙岩市累计接待旅游总人数西双版纳旅游路线勇者之家勐海云南省西双版纳傣族自治州景洪市勐海县打洛镇勐景来独树成林景区打洛国门勐巴拉国际旅游度假区星光夜市城区茶文化大益庄园。勐景来勐景来独树成林景区独树成林景区打洛国门打洛国门打洛国门勐巴电视剧成催化剂带动当地旅游复苏美景美食均受关注原标题踩着脚印去追风一部电视剧,唤醒一座城电视剧去有风的地方开播后,大理的美景美食吸引着各地游客,随着春节假期到来,大理迎来了久违的旅游热潮。这里有清爽的空气灿烂的阳光,还有无比奢春节旅游,排队4538桌,天价4菜最典型的好了伤疤忘了疼!我的生活也是头条今年春节,应该出现了真正意义上的报复性消费,特别是不少人选择旅游过年,多地人满为患。要说吧,这也是好事,毕竟旅游市场开始回暖。对一些旅游城市来说绝对是利好消息,但是推荐阅读经典漫画故事书父与子推荐阅读经典漫画故事书父与子再造堂主冯延红字数820阅读4202301271611肚大能容2023。27在孩子低年级时,识字量比较低,更多地看一些带图的书。我们知道图画书给人的冲击天价菜单,游客跳入消费陷阱最近有游客爆料北海用餐4个菜1500元,游客称被一出租车司机带去饭店用餐被宰,其点了油螺辣炒龙顶清蒸马蹄贵妃辣炒4个菜,花费共1500元。自2021年起,该饭店被多位游客评论称被当一部剧唤醒一座城,大理旅游订单量成倍增长工人日报在云南省大理市凤阳邑村,游客骑着马在滇藏茶马古道上体验马帮生活。据马场负责人介绍,最近骑马的游客每天在60人次以上。赵黎浩摄这里有清爽的空气灿烂的阳光,还有无比奢侈的好天气玉门市突出旅游带动大力繁荣现代服务业玉门市以创建国家全域旅游示范区为抓手,充分发挥一带一路节点城市区位优势,深度融入两圈一线,深入推进文化旅游战略和文化旅游产业发展十大攻坚行动,高起点编制现代物流产业发展规划,坚持政
抖音爆火的伤感文案句子导语本文是由小红文案馆珍藏的抖音爆火的伤感文案句子分享给大家。1希望你下辈子不要改名字,这样我会好找你一点。2眼睛能装得下山和水,装不下眼泪。3人不能太方,也不能太圆,一个会伤人,没有在深夜痛哭过的人,不足以谈人生他叫高秉涵,老家在山东。前半生一直在离家,13岁一人只身南下逃难,徒步跑了两千多公里。这一路上,他把人间的苦难和悲惨都过了个遍。后半生一直在找家。不但自己在找家,还在帮助别人找家。记住,遇到难事,不跟妈妈讲难,她帮不了忙只会睡不着觉!师父说记住,遇到难事,不跟妈妈讲难,她帮不了忙只会睡不着觉!人到了一定年纪自己就是屋檐,再也不能到处躲雨了!师父说伤口不在谁的身上,谁也不知道有多痛冰水不泼在谁的头上,谁也不知道有行动,是打败焦虑的最好办法冬日生活打卡季把自己埋在堆成山的事情里,总有一两件,会是有意义的。而每一种意义,都是我们通向未来的一块垫脚石。只有行动起来,才是打败焦虑的最好办法。1hr焦虑是什么?明明知道自己还岁月不负人生志唯有勤勉慰人心光阴荏苒,又近岁末,回首这个冬天,疫情此起彼伏,但也见我大国神威,我们一直都被保护得很好,所以疫情并没有影响我的心情。因为疫情,所以改为线上教学。每天上完网课批改作业后,忙里偷闲坚抢药,乱吃药?尊重比自己蠢的人!世界之大,无奇不有。正因为这样多样性存在,才让我们的生活充满了乐趣,显得不是那么枯燥。对一个普通的人来说,人生的过程用一句话就可以总结,那就是给生自己的人送终,把自己生的人养大。就想提高生活质量,这些习惯再难也要改掉!有一种现象,叫蝴蝶效应。意思是一点看似不经意的小事,都可能引发后续巨大的变化。我们都知道,人的命途,从来都不是固定的,甚至一个习惯,都可能改变人生的坡度。一个人好运与背运,也往往有父母,儿女你讨厌父亲的平庸,却不知他曾经也是怀揣梦想的男孩,你讨厌母亲的市侩圆滑,却不知道她曾经也和你一样憧憬过未来。你的父亲曾经也是意气风发的少年郞,眉眼如剑,风度翩翩,你的母亲也曾经窈窕致敬我的白衣战友们我轻轻地来是因为缘的指引心中存爱光芒自带在这片天地想为人生书写一篇阳光的自己为着同一目标与你们携手同行在救死扶伤的路上我们相依为民一起成就患者重生的欢喜这一崇高的职业青春因绽放而绚2022长沙国际车展优惠尽享丨坦克2022长沙国际车展将于12月24日在长沙国际会展中心开幕,来W2展馆坦克展台,购车可享以下优惠一重礼试驾有礼0。01元试驾即刻参与抽奖,抽至高千元油卡再享50元购物卡二重礼购车有高效执行优化法治营商环境永州两级法院助力经济高质量发展纪实全媒体记者杜巧巧通讯员黄卫红党的二十大报告要求深化行政执法体制改革,全面推进严格规范公正文明执法,加大关系群众切身利益的重点领域执法力度,完善行政执法程序,健全行政裁量基准。近年来