linux操作系统的启动流程--学生作业

首先,先不急着将启动流程,,先说下linux操作系统的相关知识

一:linux的组成部分: 内核+根(/)文件系统

1)内核:

存放位置 centos6的位置是 /boot 目录下的"vmlinuz-2.6.32-573.12.1.el6.x86_64"

“2.6.32”是版本号;“573.12.1”是release号。内核的作用是负责核心的内存管理、进程管理、网络协议栈、文件系统、驱动程序、安全功能。linux内核是单内核设计,但是他支持多模块化动态装载和卸载。也就是不关机的情况写就能安装卸载模块。而linux的模块文件是存放在/lib/modules目录下的。跟内核文件有一样的版本号和release号。

    [[email protected] lib]# ls modules/   
     2.6.32-573.12.1.el6.x86_64

2)根(/)文件系统

其实 / 这个符号 根本不存在。那么我们怎么知道什么是根文件系统呢、? 其实是由我们认为的规定的。比如只要在一个目录下同时包含/bin /sbin /boot /etc /dev /lib 这些文件 我们就可以认为这是一个根。

3)电脑主板

电脑主板在出厂的时候,厂家就给主板写了一个程序,存放在主板的ROM里边。也就是我们熟悉的BIOS.BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制

二; 好了,说了上边那些我们这次可以继续说说启动流程了。首先,我们先说下系统启动和没启动的区别是什么样子的。先说关机的时候,所有的文件包括内核,跟文件系统写的,就是静静的表现为刻录在硬盘上的符号,,形象的说就是他们都在睡大觉。而启动中的系统呢,首先就是内核的进程属于激活状态,也就是把他们都调用到了内存里,CPU硬件在电力的驱使下一遍一遍的执行着编写在内核中的进程。内核还可以通过驱动程序,随时的任意的调用计算的各个文件 包括DEV下的硬件文件。而我们要说的启动过程,就是说明白计算机是怎么从静止状态,接电后达到能够实现各种功能的工作状态的。

a步:当我们手指按下开机键,就给主板接通了电源。主板通电后,在自身ROM上的BIOS程序指引下,开始检测各个硬件的接口是否接好。比如内存条,CPU,网卡,等等。如果有硬件出现故障,一般主板都会发出声响报警的。用笔记本的遇到的少,我11年前用台式机,那可是经常听见的。大部分都是因为灰尘影响了内存条读取。 --这个过程叫加电自检 即:Power On Self  Test (POST)

b步:因为硬盘在主板上,所以其实硬盘也早通电了,也就是已经转起来了。所以,当主板自检以后,下一步就是按次序查找可能装有引导开机程序的设备,比如硬盘,光盘,U盘。所以,当我们用光盘,或者U盘装系统的时候,都会先进BIOS 把光盘,或者U盘调到最开始检测的位置。假设我们现在已经装好系统了,这是一次正常开机的操做。所以,首一般我们都会把硬盘放在第一的位置被检测。当主板检测到我们的“0柱面、0磁头、一扇区”=MBR时,就会启动我们写入MBR的引导程序。如果是手机,一般都是LILO这个引导程序。当然了,我们现在说的是linux服务器或者虚拟机。MBR扇区写入的一般都是grub这个引导程序。

c步:由于MBR扇区只有446个字节可以用,不够grub完成引导操作系统任务使用。所以grub被激活以后,他首先要做的是引导MBR扇区之外的grub程序。grub2这个程序存放在boot目录下。这样,grub就摆脱了MBR扇区的限制,可以提供更丰富更强大的功能。但是他的主要作用还是引导内核启动。

如图:

他最终会给用户提供一个选择启动操作系统的界面如图1

d步:当我们选定操作系统运行以后,操作系统的内核就从grub手上接过了权利棒。kernel接过来权力以后,首先探测可识别的所有硬件,(e步)并且加载硬件的驱动设备。然后以只读方式挂载根文件系统。并且运行第一个应用程序:/sbin/init  从此,机器就正式进入了工作状态

e步; 这个步骤不是必须的,但是绝大多数都是会有的。在加载硬件驱动之前,内核遇到一个问题。因为根文件系统是在磁盘上(虽然boot分区也在磁盘上,但是他已经被grub引导驱动了)。要读取根文件系统首先要有磁盘的驱动。而加载驱动必须要有根文件系统。就仿佛我开门必须要钥匙,但是我的钥匙被锁在屋里了。所以这时,我们需要找开锁公司,给弄个假钥匙,打开门,拿到真钥匙,我们就重新掌握了我们的自己的家了。 而这个“开锁公司”是谁呢? 那就是同样处在跟boot分区中的ramdisk Centos6中 叫initramfs-2.6.32-573.12.1.el6.x86_64.img 。如果你的不是CENTOS6系统,那么你在boot目录下找.img结尾的文件就是了。 他会创建一个临时的根文件系统,这个根文件系统只针对磁盘,加载磁盘驱动用的。也就是只能门,直到拿到真正的钥匙为止。当有驱动了,可以加载真正的根目录了,这个假根目录就自动让位了。

OK  ,,又一个作业写完了。。。 念个咒语睡觉 “mony-mony-home"

时间: 2025-01-05 04:05:49

linux操作系统的启动流程--学生作业的相关文章

#23 centos5(RHEL)系列操作系统的启动流程、与命令mkinitrd、dracut的使用

centos(RHEL)系列操作系统的启动流程:Intel x86兼容架构: Linux的系统组成:内核 + 应用程序  GUN/Linux:单纯的指Linux内核: 从硬盘存储和启动操作系统的角度: Linux的系统组成:内核 + 根文件系统(rootfs) 内核功能:进程管理,文件系统管理,内存管理,网络协议,驱动程序,安全功能,... Linux系统的系统运行环境可以分为两部分: 内和空间:内核代码(系统调用) 就是内核进程占用的CPU和内存资源的总和: 用户空间:应用程序(进程或线程)

Linux 的启动流程

作者: 阮一峰 半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程. 这个部分比较有意思.因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多:但是,一旦进入操作系统,程序员几乎可以定制所有方面.所以,这个部分与程序员的关系更密切. 我主要关心的是Linux操作系统,它是目前服务器端的主流操作系统.下面的内容针对的是Deb

Linux的启动流程(CentOS 6)

前言 Linux启动的过程在实际生产中有着至关重要的作用.试想一下,如果我们在实际生产中服务器因为某一个服务出了问题,而不能启动,这时我们应该怎么办.如果我们了解Linux的详细启动过程,知道是在哪一个环节出了问题,我们就能够进入到相应的环节,排除掉相应的问题,从而解决实际生产中的问题. 同时,我们在这里提出一个问题,有谁知道Windows的启动过程呢?如果启动过程出了问题,我们该怎么办呢?恐怕答案只有重启系统了吧-- Linux 系统的启动过程对于管理员来说是完全透明的,了解了Linux的启动

linux --&gt; Linux 的启动流程

Linux 的启动流程 操作系统接管硬件以后发生的事情,也就是操作系统的启动流程. 因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多:但一旦进入操作系统,程序员几乎可以定制所有方面.所以,这个部分与程序员的关系更密切,下面的内容针对的是Debian发行版. 第一步.加载内核 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件. 以我的电脑为例,/boot 目录下面大概是这样一些文件: $ ls /boot config-3.2.0-3-amd64 config-

Linux的启动流程,回答面试官自用

对于Linux的启动流程,是一个很复杂的过程 下面我来介绍一下: 1.当我们按下电源键通电后,我们的BIOS①会去检查硬件(CPU.显卡.硬盘.光驱等等)是否有问题,取得主机的各项硬件配置后,就会去找启动设备,这里说的就是硬盘,找到硬盘的MBR②,这时候就将控制权交到MBR中 2.MBR的功能就是去找到安装在MBR的grub③菜单,也就是Boot loader,随后grub就把系统的kernel(内核)给引导出来了 3.当boot loader读取到kernel文件后,会将内核加载到内存中,此时

【转】Linux 的启动流程

原文网址:http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html Linux 的启动流程 作者: 阮一峰 半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程. 这个部分比较有意思.因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多:但是,一旦进入操作系

Linux的启动流程(CentOS 7)

前言 Linux启动的过程在实际生产中有着至关重要的作用.试想一下,如果我们在实际生产中服务器因为某一个服务出了问题,而不能启动,这时我们应该怎么办.如果我们了解Linux的详细启动过程,知道是在哪一个环节出了问题,我们就能够进入到相应的环节,排除掉相应的问题,从而解决实际生产中的问题. 同时,我们在这里提出一个问题,有谁知道Windows的启动过程呢?如果启动过程出了问题,我们该怎么办呢?恐怕答案只有重启系统了吧-- Linux 系统的启动过程对于管理员来说是完全透明的,了解了Linux的启动

I.MX6 Linux Qt 启动流程跟踪

/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 * 声明: * 1. 源代码来源MY-I.MX6: * 2. 本文仅仅是对启动流程的解析,没有解释启动流程为什么是这样的问题. * * 2015-6-13 深圳 晴 南山平山村 曾剑锋 *********************************************************

Linux操作系统的启动

最近一直在看0.12版本的内核,一直想实现一个简单的多任务内核,发现还真得先了解linux操作系统的启动过程. 1.BIOS 开机程序被写入ROM当中,计算机通电之后的第一件事就是读取它. 这块芯片里的程序叫做基本输入输出系统,简称BIOS 1.1硬件自检 检查计算机硬件能否满足运行的基本条件,这叫做硬件自检 1.2启动顺序 硬件自检完成之后,BIOS就把控制权转交给下一阶段的启动程序. 这时,BIOS需要知道,"下一阶段的启动程序"具体放在那里.也就是说,BIOS需要有一个外部存储设