linux 系统启动过程

关于对双系统启动的设置的理解:

                开机,进入BIOS之后设置磁盘的启动顺序,就可以登录不同的操作系统。

原因理解如下:

1、BIOS:被刷入ROM中的开机程序,Basic Input/Output System。是一组固化到计算机系统主板上的一段程序,里面保存着计算机最重要的基本输入输出程序、系统基本设置。主要功能就是在计算机启动时进行硬件检测,在计算机启动初期尚未加载操作系统时控制计算机。

        在BIOS中的地址,有许多都是固定物理地址,任何BIOS的执行都是一样的。

        执行 BIOS 中的硬件系统检测初始化程序

  1. 硬件系统检测:检查 RAM,键盘,显示器,软硬磁盘(如果硬件坏了,可能需要重新更换硬件)
  2. 初始化程序:在内存物理地址 0 处建立 BIOS 所支持的中断向量,即将 BIOS 提供的中断例程的入口地址登记在中断向量表中。

        BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性。在自检完成之后,BIOS 将会调用 int 19h 进行操作系统的引导。int 19h 将要完成的内容是:将磁盘 0 面 0 磁道 1 扇区的内容读取到内存 0x7c00 处。

        init 19h 会根据BIOS中设置的设置启动顺序来读取设备信息,将第一启动顺序设备上的MBR内容读取到0X7c00处,

2、MBR: 执行MBR 

        MBR : 是计算机开机以后访问硬盘时所必须要读取的第一个扇区,位于硬盘的第0柱面第0磁道第一扇区,大小为512字节。主引导记录(MBR,Master Boot Record)。MBR 存放分区表信息,告诉计算机操作系统所在的位置。 

MBR 分为:

        1、BootLoader 占用446字节,存储有操作系统相关信息如操作系统名称、内核位置等,目的是加载内核到内存中运行。

        2、分区表(Partition Table)占用64字节,每个主分区占用16字节,所以最多能够有4个主分区。

        3、分区表有效性标记(结束标记)占用2字节,固定为55AA

在加载MBR之后会运行Bootloader,其作用:

        1、初始化硬件设备

        2、建立内存空间的映射图,为最终调用操作系统内核做好一切准备。linux使用内存映射的方式管理。Boot Loader有Grub、Lilo和spfdisk等常见的Loader。

        3、加载内核

        根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作系统,将解压后的内核放置在内存之中,至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

        4、运行:

                 第一个程序: /sbin/init

        /sbin/init 首先读取/etc/inittab文件,并依据此文件来进行初始化工作,运行开机启动程序。

        /etc/inittab文件最主要的作用就是设定Linux的运行等级。

        设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。

        每个运行级别在/etc/目录下面,都有一个对应的子目录/etc/rc?.d,指定要加载的程序。

        ubuntu 没有inittab,运行等级可以在 /etc/init/rc-sysinit.conf 中设置和查看,也可以手动创建inittab 文件

以下为转载内容

        5、 执行 rc.sysinit

                设定运行等级后执行的第一个用户层文件

                该脚本做的工作:

                        1. 设定 PATH

                        2.设定网络配置(/etc/sysconfig/network)

                        3.启动swap分区

                        4.设定/proc等等。

        6. 执行启动内核模块

                   具体是依据 /etc/modules.conf文件 或 /etc/modules.d 目录下的文件来装载内核模块。

        7. 执行不同运行级别的脚本程序

                根据运行级别的不同,系统会运行rc0.d ~ rc6.d中相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

        8. 执行/etc/rc.d/rc.local

                rc.local 是所有init初始化脚本执行完后,用户可以个性化设置的地方,你可以把你想设置和启动的东西放到这里。

        9. 执行/bin/login程序,进入登录状态 等待用户输入username和password

                

 

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值