随笔分类 - 操作系统
摘要:寄存器查询 r 查看通用寄存器 sreg 查看段寄存器(es,cs,gs,ss,fs,ds以及idt,gdt,ldt,tr) creg 查看控制寄存器(cr0,cr1,cr2,cr3) dreg 查看调试寄存器(dr0-dr7)地址查询 x /nuf [addr] 显示线性地址(Linear Add
        阅读全文
            
摘要:跳转: 一、无条件跳转: JMP;二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转);三、根据 EFLAGS 寄存器的标志位跳转 JE ;等于则跳转 JNE ;不等于则跳转 JZ ;结果为0(ZF为1)则跳转 JNZ ;结果不为0(ZF为
        阅读全文
            
摘要:内存分配和管理 Linux 0.11内核默认最多支持16M物理内存,物理内存各部分的功能区域示意图如下所示。 对内存的管理是以页(4KB)为单位进行的,对于内核代码和数据外的内存(1M以上内存区域),使用mem_map[]数组来记录内存页面的状态,0表示空闲,100表示被占用。 系统首先计算出管理的
        阅读全文
            
摘要:前言 先看看分页机制里面的页目录表、页表、页之间的关系。分页机制是用于将一个线性地址转换为一个物理地址。 在I32 CPU环境里面,首先通过设置CR0寄存器,打开保护模式、开启分页机制。然后将页目录表的物理地址基址给CR3寄存器。开启分页机制后,I32将全部的物理内存空间、线性地址空间划分为一个个的
        阅读全文
            
摘要:前言 在进程创建之初,父子进程的数据段和代码段共享并且设置为只读,直到他们之一要将代码和数据段进行修改时才会进行复制即写时复制。但是,这种判断条件只能用于用户态,因为8086cpu, 在执行特权0代码时不会理会用户空间中页面是否为有保护,用户空间中数据页面保护标志不起任何作用的。这样将违背了进程的独
        阅读全文
            
摘要:Linux操作系统的启动的主要流程: PC上电后,自动进入实模式(实模式就是寄存器都是16位的,最大寻址范围是1M,最大分段是64KB),从地址0xFFFF0开始执行,这里一般都是ROM-BIOS的地址。 BIOS加载第一个扇区(引导扇区,512字节)的程序(bootsect.s)到绝对地址0x7C
        阅读全文
            
 
                    
                     
                    
                 
                    
                 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号