微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Linux的启动和核心介绍

Linux的启动和核心介绍

时间:02-24 来源:互联网 点击:

第五步
   再来,就要读入真正linux的kernel了,也就是你可以在linux的根目录下看到的"vmlinuz" 。在读入前,将会先呼叫BIOS中断服务int 10h 的第3号功能,读取游标位置,之后再呼叫BIOS 中断服务int 10h的第13h号功能,在萤幕上输出字串"Loading",这个字串在boot linux时都会首先被看到,相信大家应该觉得很眼熟吧。
  第六步
   接下来做的事是检查root device,之后就仿照一开始的方法,利用indirect jump 跳至刚刚已读入的setup部份比较
   把大家所熟知的MS DOS 与linux的开机部份做个粗浅的比较,MS DOS 由位於磁盘上boot sector的boot程序负责把IO.SYS载入内存中,而IO.SYS则负有把DOS的kernel --MSDOS.SYS载入内存的重责大任。而linux则是由位於boot sector 的
  bootsect程序负责把setup及linux的kernel载入内存中,再将控制权交给setup。
  ##这几步内容主要参照一个台湾同胞写的文档,setup.s的内容希望有人补充。
   
  Start_kernel()
  当核心被载入后,首先进入的函数就是start_kernel。
  ./init/main.c 中函数start_kernel包含核心的启动过程及顺序。
  通过它来看核心整个初始化过程。
  首先进行一系列初始化,包括: [bitsCN.Com]
  trap_init(); ##./arch/i386/kernel/traps.c 陷入
  init_IRQ(); ##./arch/i386/kernel/irq.c setup IRQ
  sched_init(); ##./kernel/sched.c 调度初始化,并初始化bottom_half
  time_init(); ##./arch/i386/kernel/time.c
  init_modules(); ##


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top