Minix boot过程
Ricky Zhang
2005-02-09
下文源文件默认在/usr/src/boot下
一、 PC机启动,ROM BIOS自动装载hard disk或floppy 的0头0柱1扇,至0x0000:0x7c00。
二、 masterboot.s(hard disk)或bootblock.s(floppy)被装载至0x0000:0x7c00,然后两者之一装载secondary boot。Secondary boot 由boothead.s(被两者之一装载至BOOTSEG:BOOTOFF即0x1000:0x0030)、bootimage.c、boot.c、rawfs.c(含有在没有fs下,访问minix文件格式的调用),四者link成一个映象。
三、 Secondary boot 装载内核映像,在minix文件系统的minix/下最新的映象
待扩展工作:详读secondary boot。
Minix内核启动过程
下文源文件默认在/usr/src/kernel/下
一、mpx386.s,建立C程序的stack,为调用start.c的cstart准备
二、调用cstart,调用protect.c的prot_init初始化GDT和建立IDT
三、返回mpx386.s,调用main.c的main()
四、main下,初始化8259芯片intr_init(1),初始化内存mem_init(),初始化进程表,
说明:
进程表(proc.h)由三部分组成:
Part 1:task进程,其中tty控制台优先级最高,task的主要数据结构table.c定义(struct tasktab)
Part 2: 服务器进程,其中有fs、mm、inet和init
Part 3: user进程
优先级由大至小排
待扩展工作:详读初始化IDT和GDT原理