[MIT6.828]LAB2 Exercise & Question总结
E1:In the file kern/pmap.c, you must implement code for the following functions.
boot_alloc()
page_init()
&nb[……]
E1:In the file kern/pmap.c, you must implement code for the following functions.
boot_alloc()
page_init()
&nb[……]
系统初始化程序init/main.c主要功能是对系统进行初始化,并切换到用户模式下执行登录程序。
主要步骤如下:
1、系统初始化部分:
// init/main.c void main(void) // 前面代码略,以下是内核进行所有方面的初始化工作。 mem_init (main_me[......]
好久都没有写日记,是不是变成月季(误)了呢^^ 最近以来一直在看内核,不过这一周稍微放松了一下,不知道应该说是偷懒,还是说生活要张驰有度啊。
在姐姐大人的指导下,终于把"Kissxsis"这部漫画+动画看完了。同样不晓得是把它判定为邪恶还是有爱类型。反正呢未成年人禁止观看,有大[……]
Linux0.11中设备命名方式:
1-内存、2-磁盘、3-硬盘、4-ttyx(串行终端)、5-tty(控制终端)、6-并口、7-匿名管道。
硬盘逻辑设备号命名方式:设备号*0x100+次设备号。
次设备号:(硬盘号-1)*5+分区号,如不带分区号则代表整块硬盘。
这种命名方式在0.95内核以后被[……]
PCB(Process Control Block 进程控制块)又称任务数据结构,位于include/linux/sched.h中:
struct task_struct{ long state; //任务的运行状态(-1 不可运行,0 可运行(就绪),>0 已停止)。[......]
x86中断子系统
x86微机系统中采用了8259A可编程中断控制器,每个8259A可以管理8个中断源,通过多片级联方式,可以构成最多管理64个中断向量的系统。PC/AT中使用了2片8259A,共可管理15个中断向量。CPU通过IO指令对8259A进行初始化后,芯片就可以根据当前设定的优先级状态通过I[……]
Linux内核是宏/单内核,分5个模块:进程调度模块、内存管理模块、文件系统模块、进程间通讯模块、网络接口模块。
三种地址概念:
虚拟地址(Virtual Address)、逻辑地址(Logical Address):是程序产生的。虚拟地址由段选择符和段内偏移两部分组成,段内偏移又称逻辑地址[……]
看到红色的Challenge就想挑战一把,于是搞了下VESA图形模式的编程。
科普知识:
什么是VBE?
VBE的全称是VESA BIOS Extension。
什么是VESA?
VESA的全称是Video Electronics Standards Association即视[……]
LAB1给代码中的’/t’的处理很简陋,直接把’/t’替换为5个空格,这和我们平时习惯有很大不同,所以要改造一下。
1、在kern/console.c cga_putc()函数中,可以看到’/t’case分支,把这个分支替换为如下代码:
case '/t':[......]