笔记一:从Minix 2.0的启动过程角度,读源码。

类别:软件工程 点击:0 评论:0 推荐:

Minix boot过程
Ricky Zhang
[email protected]
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原理

 

本文地址:http://com.8s8s.com/it/it32556.htm