ucore lab2

CPU在如下时刻会检查特权级
访问数据段
访问页
进入中断服务例程(ISR)

RPL位于段寄存器 DS ES FS GS
CPL位于CS SS
DPL位于段描述符表/门描述符

访问门时:
CPL<=DPL(门) & CPL>=DPL(段) //完成了低特权级调用高特权级
访问段时:
MAX(CPL, RPL)<=DPL(段)

image.png

image.png

练习0:填写已有实验

使用meld工具可以查看lab2相对lab1新增的代码,同时将lab1已经填写的代码填充到lab2,如图(只改变格式的已忽略):

可以看出lab2新增了:

#新增了:
kern/init/entry.S
kern/mm/default_pmm.h
kern/mm/default_pmm.c
kern/sync/sync.h
libs/atomic.h
libs/list.h
tools/boot.ld
kern_nopage.ld
#修改了:
boot/bootasm.S
kern/debug//*
kern/driver//*
kern/mm//*
libs//*
tools//*

使用了firstfit管理物理内存
1、探测可用的物理内存块
2、将可用的物理内存块划分成页,将第一页加入到双向链表中
双向循环链表保存了

posted @ 2018-08-30 14:43  nlskyfree  阅读(186)  评论(0编辑  收藏  举报