安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

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

1月17日 阴阳狱投稿
  一、系统寄存器
  1。EFLAGS寄存器
  存放systemflags和IOPL;
  控制任务切换和模式切换,处理终端,指令追踪;
  2。控制寄存器(CR0,CR2,CR3,CR4)
  控制系统级操作;
  支撑操作系统某些特性;
  3。GDTRLDTRIDTR
  记录了GDTLDTIDT表的线性基址和大小;
  4。任务寄存器(taskregister)
  当前任务的线性地址;
  当前任务TSS的的大小;
  5。Modelspecificregisters(MSRs)
  主要用于操作系统或程序执行过程;
  6。调试寄存器(debugregisters)(DR0DR7):用于设置断点
  注:多数系统限制应用程序对系统寄存器的访问(除了EFLAGS);程序运行在特权级0时,可以更新系统寄存器的值;
  7。IA32e(64位扩展技术)GDTRLDTRTR被扩充到64EFLAGES扩充为RFLAGS;CROCR4被扩充到64控制IA32emode指令的MSRs
  (1)IA32KernelGSbase
  (2)IA32LSTAR
  (3)IA32SYSCALLFLAGMASK
  (4)IA32STARCS
  需要的小伙伴私信内核领取二、内存管理相关的寄存器(GDTR,LDTR,IDTRTR)
  1。GDTR(GlobalDescriptorTableRegister,全局符号表寄存器)
  (1)基址(保护模式:32位;IA32e模式:64bits)GDT表最大size(16bit),基址是全局符号表GDT的地址;
  (2)LGDT、SGDT分别load和storeGDTR寄存器;
  (3)计算机刚启动或者处理器重置之后,基址被设置为0,limit设置为0FFFFH;设置基址的值是保护模式下初始化处理器的一部分;
  2。LDTR(LocalDescriptorTableRegister,本地符号表寄存器)
  (1)段选择器(16bits)基址(保护模式:32IA32e模式:64bits)segmentLimitLDT的属性;基址是LDT表的基础地址,SegmentLimit表明了段字节数目;
  (2)LLDT和SLDT指令分别load和storeLDTR寄存器;GDT中存在LDT表的段描述符,LLDT指令loadsegmentselector到LDTR时,基址和LDT属性也自动被load到LDTR中;
  (3)任务切换时,新任务的段选择器、段基址、LDT表属性会自动被加载到LDTR中;
  (4)计算机上电或者处理器重置时,LDTR中的segmentselector、baseaddress分别被置为0和0FFFFH
  3。IDTR(InterruptDescriptorTableRegister,中断符号表寄存器)
  (1)baseaddress(保护模式:32IA32e模式:64bits)tablelimit(16bit),基址指定了IDT表的地址,tablelimit说明了IDT表的大小;
  (2)LIDT和SIDT命令分别负责IDTR寄存器的loadstore操作;
  (3)计算机刚上电或者处理器reset时,基址设置为0,limit设置为0FFFFH;LDTR初始化是处理器初始化的一部分;
  4。TR(TaskRegister,任务寄存器)
  (1)segmentselector(16bit,段选择器)baseaddress(保护模式:32位;IA32e模式:64bits)segmentlimit当前任务TSS段属性描述符;(基址是TSS段基址;segmentlimit限制了TSS大小)
  (2)GDT表中记录了TSS段描述符;
  (3)LTR和STR分别负责TR寄存器的load和store操作;计算机上电或者处理器重置时,baseaddress置为0,segmentlimit设置为0FFFFH;
  (4)发生任务切换时,自动调用LTR,将新任务的段选择器、基址、描述等load到TR寄存器中;三、控制寄存器(CR0CR4,CR8)
  1。一般约定
  (1)CRO和CR4的3263bit预留,必须全为0;CR0和CR4高32位任意一位非0会触发
  (2)CR2的所有64bits均可被软件读写;
  (3)CR3的40bit51bit预留,必须为0;
  (4)CR8仅仅在64bit模式下可以使用;
  2。控制寄存器CR0:systemcontrolflags,控制操作模式和处理器状态;CR1:预留CR2:pagefault线性地址(导致页错误的线性地址)CR3:页全局目录的地址PCDPWT(控制页表在cache中的缓存),使用物理地址扩展时,CR3寄存器包含页表目录表的指针;IA32e模式下,CR3寄存器记录PML4表的基址;CR4:包括系统扩展相关的通过mov指令读写该寄存器的值;CR8:提供对TaskPriorityRegister(TPR)寄存器的读写访问;64bit模式下才可以使用;指定了操作系统用来控制可中断处理器的外部中断级别;
  3。控制寄存器中的标识PG(bit31ofCR0):Paging,置位:启动分页机制;清除:disable分页机制,所有线性地址作为物理地址;当PE没有置位时,PGflag没有效果;PGflag设置,PEflag没有置位时,会导致CD(bit30ofCR0):CacheDisable,当CD和NWflags被清0时,启用cache机制(可以缓存整个内存系统数据);CD标识设置后,缓存满足一下限定表;CDflags置位后,处理器不可访问访问、更新NW(bit29ofCR0):NotWriteThrough,NW和CDflags被清零,启用writeback或者writethrough,AM(bit18ofCR0):AlignmentMask,启用自动对齐校验设置;清零,不支持自动地址对齐校验;置位,自动进行地址对齐校验;WP(bit16ofCR0):writeprotect,置位:禁止处于超级权限的进程向只读pages写入数据;清零:允许超级权限进程向只读pages写入数据;支持LInux系统以copyonwrite的方法创建进程;NE(bit5ofCR0):NumericError,置位:提供报告X87浮点运算单元错误;清零:enablesPCStyleX87FPUNEflag被清零IGNNEinput被断言,X87FPUerrors被忽略;NEflag被清零IGNNE断言错误,unmaskedx87FPUerrors导致处理器assertFERRpin,产生外部中断,立刻终止指令执行;ET(bit4ofCR0):ExtensionType,奔腾4、IntelXeon、P6famil和奔腾处理器中保留该位;该位被硬编码为1;Intel386和Intel486处理器中,flag被置位后表明支持Intel387DX数学协处理器指令集;TS(bit3ofCR0):TaskSwitched,允许X87FPUMMXSSESSE2SSE3SSE4上下文转换推迟到新任务真正需要FPUMMXSSESSE2SSE3SSE4时;EM(bit2ofCR0):EmulationMP(bit1ofCR0):MonitorCoprocessorPE(bit0ofCR0):ProtectionEnablePCD(bit4ofCR3):PagelevelCacheDisable,控制访问页全局目录的方式;disable分页基址或者PAE分页模式下、IA32e模式下,CR4。PCIDE1,该位不被使用;PWT(bit3ofCR3):PageLevelWriteThrough,控制访问页全局目录的方式;VME(bit0ofCR4):Virtual8086ModeExtension,置位后,允许在virtual8086模式下处理中断和异常,由于避免了通过virtual8086monitor处理异常和中断的开销,因而可以提高应用的性能;PVI(bit1ofCR4):ProtectedModeVirtualInterrupts,置位:为Virtualinterruptflag(VIF)提供了硬件支持;清零,不支持VIF;TSD(bit2ofCR4):TimeStampDisable,置位,限制特权级0下使用RDTSC指令;清零后,允许在任何特权级执行RDTSC指令;DE(bit3ofCR4):DebuggingExtension,置位后,使用调试寄存器DR4和DR5会引发undefinedopcode的异常;清零,处理器依靠使用DR4和DR5兼容早期IA32处理器;PSE(bit4ofCR4):PageSizeExtension,置位后,enable4MB清零后,页基本大小4KB;PAE(bit5ofCR4):PhysicalAddressExtension,置位后,允许分页过程中产生大于32bit的地址(页框号);清零后,页号必须不大于32IA32e模式下必须激活PAEMCE(bit6ofCR4):machinecheckenable,置位后,启用机器校验;清零后,PGE(bit7ofCR4):PageGlobalEnable,第六代处理器中引入;置位后,启用清零后,globalpagefeature允许经常使用的pages或者共享pages被标记为上下文任务切换或者写寄存器CR3时,globalpages不从TLB中flush出去;PCE(bit8ofCR4):PerformanceMonitoringCounterEnable,置位,允许在任何保护级别执行RDPMC指令;清零,RDPMC指令仅仅可以在特权级0执行;OSFXSR(bit9ofCR4):OperatingSystemSupportforFXSAVEandFXRSTORinstruction,置位:(1)表明操作系统支持指令FXSAVE和FXRSTOR;(2)FXSAVE和FXSTORE指令分别用来保存和恢复寄存器X87FPU、XMM、MXCSR和MMX的内容;(3)处理器执行SSESSE2SSE3SSSE3SSE4指令时会抛出PAUSE,PREFETCHh,SFENCE,LFENCE,MFENCE,MOVNTI,CLFLUSH,CRC32,POPCNT异常OSXMMEXCPT(bit10ofCR4):OperatingSystemSupportforUnmaskedSIMDFloatingPointException,置位:表明操作系统支持unmaskedSIMD浮点Exception的执行;SIMDfloatingpoint异常仅仅会由SSESSE3SSE2SSE4SIMD浮点指令产生;VMXE(bit13ofCR4):VMXEnabledbit,置位后启用VMX操作;SMXE(bit14ofCR4):SMXEnabledBit,置位后启用SMX操作;FSGSBASE(bit16ofCR4):FSGSBASEEnableBit,置位后启用RDFSBASE,RDGSBASE,WRFSBASE和WRGSBASE指令;PCIDE(bit17ofCR4):PCIDEnableBit,置位后启用processcontextidentifiers(PCIDs);OSXSAVE(bit18ofCR4):XSAVEandProcessorExtendedStatsEnableBit,置位:(1)表明操作系统支持普通软件使用XGETBV,XSAVE和XRSTOR指令;(2)启用XSAVE和XRSTOR指令保存或恢复X87FPU寄存器和SSE寄存器状态以及其他XCR0状态;(3)启用可读写XCR0的XGETBV和XSETBV指令;SMEP(bit20ofCR4):SMEPEnableBit,置位:禁止在监督模式下执行指令;SMAP(bit21ofCR4):SMAPEnableBit,置位:禁止在监督模式下访存PKE(bit22ofCR4):ProtectionKeyEnableBit,IA32e分页基址中,允许为每个线性地址分配一个PKRU寄存器内的值表明用户模式下带有protectionkey的线性地址是否可被读或被写;RDPKRU和WRPKRU指令分别读写寄存器PKRU的值;TPL(bit3:0ofCR8):TaskPriorityLevel,设置中断可以被阻塞的优先级阈值,0表示所有中断均15表示中断特权disabled四、SegmentRegisterCS存放代码段基址;SS寄存器存放堆栈段基址;DSESFSGS寄存器存放数据段基址;
  注:codesegment被设置为ReadOnlyS64bit模式下,分段一般是disabled的,处理器将CSDSESSS值设置为0;五、EFLAGS寄存器中系统标志
  控制IO,可屏蔽硬件中断、调试、任务切换,支持virtual8086TF(8):Trap,置位,启用单步调试;清除,disable单步调试;IF(9):Interruptenable,控制置位,响应可屏蔽硬件中断;清零,禁止可屏蔽中断;该位不影响不可屏蔽中断(NMI);IOPL(12,13bit):IOprivilegelevelfiled(IO特权级),表明当前正在运行任务的IO特权级,当前运行程序的特权级必须不大于IOPL;当且仅当当前特权级为0时,POPF和IRET指令可以更新该域;NT(14bit):Nestedtask,控制嵌套中断和嵌套任务;RF(16bit):Resume,控制处理器对指令中断的相应;置位,清零,中断条件满足时,产生VM(17bit):置位,启用virtual8086清除,返回到AC(18bit):alignmentcheckoraccesscontrol,置位:AMbit通过CR0置位时,对齐检查和用户模式下数据访问启用,访问非对齐地址时,会产生可用来检查数据是否对齐,VIF(19bit):VirtualInterrupt,当VMEflagorPVIflag在CR4中置位,或者IOPL小于3时,处理器才可以识别VIPVIP(20bit):VirutalInterruptPending,置位,中断正在执行;清零,无中断正在运行;该标志和VIF标识结合使用,处理器读取该标志,但从来不更新该标志;当VMEflagorPVIflag在CR4中置位,或者IOPL小于3时,处理器才可以识别VIPID(21bit):Identification,表明是否支持CPUID指令;
  原文作者:cyjhaiou
  原文地址:http:t。csdn。cnvMsTI(版权归原文作者所有,侵权联系删除)
投诉 评论 转载

总决赛郭艾伦发挥欠佳?杨鸣给予他信任总决赛第二场比赛中,辽宁队以99比90再次战胜了浙江广厦队,总比分以2:0领先,取得了总决赛7场4胜制比赛的决定性战役的胜利,距离冠军仅一步之遥。本场比赛辽宁队再次集体众志成城……内线双核征战WNBA!李梦成绝对核心,中国女篮目标复仇日本在接束WCBA联赛之后,女篮队员们也都处于休假调整期。但为了保持国手们的竞技状态及到来的国际赛事,中国女篮即将在6月份展开集训备战,迎接之后的世预赛以及本年度最关键的赛事亚运会……情商高的人,不会在朋友圈发这3种动态,情商低的人却经常发图源自网络侵权请联系删除情商和智商,对于一个人的成功都非常重要。在现实生活中,很多人将一个人的成功归咎于其智力超群,认为人只要智商高,必然能有一番成就。其实,……没人演的男主角,让冯绍峰演了,结果,他一夜爆红!2011年1月31日,农历腊月28,电视剧《宫锁心玉》(以下简称《宫》)登陆湖南卫视,播出当天就交出收视第一的好成绩。谁也没想到,这部将穿越、历史、言情、偶像元素融合在一……观察汉服多次登上西方时尚杂志!来看汉服在时尚杂志上的发展去年,北加州汉服社晒出一组汉服在西方时尚杂志《Artells》《VOGUE》上的图片。这两本皆是介绍美、时尚、美术、肖像和概念故事的杂志,图中的模特们身着美丽的各式汉服,娴静优……李子柒回归营销之上,好内容才是赢得时代认可的本色茹开榕(华中科技大学)近日,李子柒即将复出词条冲上微博热搜,引发了社会各界人士的关注与热议。12月27日,李子柒账号合作方、MCN机构微念发布公告称与李子柒达成和解。据企……传家28集,看得大快人心,易家女人惹不得最近一直在追《传家》这部剧,目前已经更新到28集了。这部剧在开播的时候,有人夸奖,也有人质疑,但无论是怎样的评价,看了剧再来评论几句。在这部剧刚播的时候,剧中易二,……今日,股市全面大涨,利好消息来袭今日的股市十分强势,因为,在开盘的时候,股市全面大涨,A股三大指数都走出了一波跳空高开的行情,盘中也是持续走高,像今日这样的多头行情,已经算是很少见了。特别是创业板最近这……Linux内核之X86系统寄存器(初始化系统,控制系统操作)一、系统寄存器1。EFLAGS寄存器存放systemflags和IOPL;控制任务切换和模式切换,处理终端,指令追踪;2。控制寄存器(CR0,CR2,C……雪山飞狐演员今昔,孟飞风采不减当年,程灵素美过袁紫衣雪中情,雪中情,雪中梦未醒,痴情换得一生泪影。熟悉的旋律响起一首《雪中情》把多少人又拉回到了武侠梦开始的回忆。犹记得小时候家里的电视还是黑白的,有着厚重的大屁股,画……花枝招展!吃鸡新款中转盘军需曝光,即将在9月初首发务实、不浮夸!我是你们的情报小能手,微笑十倍镜。对于吃鸡手游和平精英的玩家而言,每周最期待的就是新军需的曝光了,虽然有时候不会氪金,但是依然对未来的新内容有着浓厚的兴趣!……2023年1月3日,晚间芯闻分享2023年,1月3日,晚间芯闻分享1、苹果A17将更注重功耗而非性能,或采用台积电3nm工艺;2、近日,多个数码博主表示:中芯国际12nm芯片初步量产,华为麒麟芯片……
要钱不要脸的8位明星,捞钱的嘴脸太难看,穷成这样了?白露过后,建议中老年人别太节俭,常吃5个1,润秋燥养身体一文看懂iPhone14与Mate50系列手机卫星通讯异同微型激光芯片为量子通信增加新维度上汽新能源汽车50岁张惠妹演唱会23人确诊!12场表演赚1。58亿元,本尊一个女人是精致还是邋遢,看她家这4个地方,就知道了CBA最优秀的总经理!5笔神操作,为球队制造了争冠阵容世界第一个维基百科镇Monmouth以科技助力文化国安旧将炮轰董路!生气爆粗拿什么和水庆霞比?要点脸吧众泰汽车复产,首批复产车型为T300化妆品代工企业,嘉亨家化一体化优质供应商,新增产能打开空间

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利