FreeNOS学习2——操作系统是如何启动的

 

The System Boot Process Explained:https://www.webopedia.com/DidYouKnow/Hardware_Software/BootProcess.asp

 

操作系统是怎么启动的?
BootLoader是在操作系统内核运行之前运行;->初始化硬件设备、建立内存空间映射图、将系统软硬件环境带到一个合适的状态;
BootLoader是基于特定硬件平台来实现的;不同的处理器架构有不同的Bootloader;虽然BootLoader有差异性,也有共性;
BootLoaser严重依赖硬件实现的;

操作模式:1、自启动
        2、交互模式

BootLoader启动过程:(主要分为两个阶段)
一、依赖于包含CPU体系结构硬件初始化的代码;通常用汇编语言来实现;
1、基本硬件设备初始化(屏蔽所有中断、关闭处理器内存指令/数据cache等);
2、为第二阶段准备RAM空间;
3、从某个固态存储媒质中,复制Bootloader第二阶段的代码到RAM中;
4、设置堆栈;


二、C语言完成,更复杂的功能,可读性和可移植性会更好:
初始化本阶段要用到的硬件设备;
检测系统内存映射;
将内核映像和根文件系统映像从Flash读到RAM;
为内核设置启动参数;
调用内核(跳转到内核的main函数)

嵌入式Linux系统从软件角度其运行可以分成四个层次:
1、引导加载程序
2、Linux内核
3、文件系统
4、用户应用程序

posted @ 2019-08-25 14:44  Grooovvve  阅读(596)  评论(0编辑  收藏  举报