#Lab1 笔记
xv6的启动过程大体为以下几步
1.执行bios完成设备初始化,然后跳转至0x7c00,即bootloader的起始地址
2.执行bootloader,完成实模式到保护模式的切换,和加载内核3,执行内核
>注1:当修改bootloader的链接地址为0x7c10后,bios还是跳转至0x7c00(这是bios的属性,与bootloader无关),且程序还是被加载之0x7c00,并能一直正常运行直到ljmp $0x7c42chu>注2:link addr(VMA) 与 load addr(LMA) 的区别,link addr 多指虚拟地址(VMA)也指代码期望运行的地址,所以内核的VMA放在高空间,而load addr(LMA)多指,程序被加载的物理地址。>注3:一般程序并不考虑物理地址,只考虑虚拟地址,而内核需考虑,一般程序的LMA多与VMA相同,但并不表示其被加载到LMA处,只是废弃不用,而内核不然,内核是实际被加载到LMA处。并从VMA处开始运行。