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

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

Minix boot过程

Ricky Zhang

rickycheung@21cn.com

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原理

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有