【1】Linux启动的几个主要阶段

  启动流程示意图

启动第一步--加载BIOS

  当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有数了,知道应该去读取哪个硬件设备了。

启动第二步--读取MBR

  众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是 Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,里面却存放了预启动信息、分区信息。

  系统找到BIOS所指定的硬盘的MBR后,就会得到其复制到0x7c00地址所在的物理内存中。其实被复制到物理内存中的内容就是Boot Loaer,而具体到你的电脑就是liol或者grub了。

启动第三步--Boot Loader

  Boot Loader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。

  Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。

  系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。

启动第四步--加载内核

  根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”(compressing就是压缩的意思)。当解压缩内核完成后,屏幕会输出“OK,booting the kernel”。

  系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,linux内核已经建立起来了,基于linux的程序可以运行了。

启动第五步--用户层ini依据inittab文件设定运行等级

  内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

  其实/etc/inittab文件的主要作用就是设定linux的运行等级,其设定形式是“:id:5:initdefault”,这就表明linux的运行等级是5.linux的运行等级在之前介绍过,就不再赘述。

启动第六步--init进程执行rc.sysinit

  在设定了运行等级之后,linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc 等等。

启动第七步--启动内核模块

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

启动第八步--执行不同运行级别的脚本程序

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

  具体位置:/etc/rc.d

启动第九步--执行/etc/rc.d/rc.local

  # This script will be executed *after* all the other init scripts.
  # You can put your own initialization stuff in here if you don’t
  # want to do the full Sys V style init stuff.

  rc.local就是在一切初始化工作后,linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放在这里。

启动第十步--执行/bin/login程序,进入登录状态

  此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的账号登入系统了。

【来自 乐智的菜园子:www.cnblogs.com/AIThink 亲们,码字不容易,转载请注明出处。】

Linux基础知识之 系统启动流程的更多相关文章

  1. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  2. Linux基础知识梳理

    Linux基础知识梳理 Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux是一套免费使用和自由传播的类Unix操作系统,是 ...

  3. Linux基础知识与基础命令

    Linux基础知识与基础命令 系统目录 Linux只有一个根目录,没有盘符的概念,文件目录是一个倒立的树形结构. 常用的目录功能 bin 与程序相关的文件 boot 与系统启动相关 cdrom 与Li ...

  4. linux基础知识的总结

    例如以下内容是我对linux基础知识的总结,由于本人在初期学习linux的时候走了不少的弯路,对于基础的掌握耗费了不少的时间,所以为了后来者对linux的基础部分有个清晰的了解,特对基础知识进行了总结 ...

  5. 【Linux系列】Linux基础知识整理

    Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...

  6. [转帖]linux基础知识大纲

    linux基础知识大纲 https://blog.csdn.net/CSDN___LYY/article/details/80810403 1.Linux操作系统概述Linux操作系统的发展过程.创始 ...

  7. 后端程序员必备的 Linux 基础知识

    1. 从认识操作系统开始 正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容. 1.1. 操作系统简介 我通过以下四点介绍什么是操作系统: 操作系统(Operating Syste ...

  8. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  9. 运维之linux基础知识(一)

    运维之linux基础知识(一) 1.GUI:Graphic User Interface 图形用户界面 2.CLI:Command line Interface 命令行界面 3 dll:Dynamic ...

随机推荐

  1. HTML5做手机站页面字体显示很小的解决方法

    HTML5做手机站需要加上一部分代码,不然字体会显示很小的,经历了很久的不解才发现的,希望给大家一些帮助 <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD ...

  2. 关于后台数据库正常存储中文通过Ajax方式传递到前台变成问号的处理

    我的一个程序,用到的后台数据库MySql,字段是Varchar,Character Set是utf8,字段能且已经正确存储了中文. 从数据库取出信息后,在后台Java代码里Debug看到正确的中文. ...

  3. setNeedsDisplay 和 setNeedsLayout-b

    setNeedsDisplay: Marks the receiver’s entire bounds rectangle as needing to be redrawn. drawRect: Th ...

  4. Spring Test 整合 JUnit 4 使用

    这两天做Web开发,发现通过spring进行对象管理之后,做测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次 ...

  5. 转:ElasticSearch的安装和相关插件的安装

    原文来自于:http://blog.csdn.net/whxaing2011/article/details/18237733 本文主要介绍如下内容:          1.ElasticSearch ...

  6. 7月12日至芯FPGA就业班招生

    至芯科技FPGA就业培训班将于2014年7月12日正式开班,届时至芯科技将秉承着一贯的教学传统,为广大师生打造一个专业的技术平台和轻松的学习环境. 在夏宇闻教授的带领下,至芯科技汇聚了一批来自国内外大 ...

  7. spring restful 中文乱码问题

    进行如下配置: @RequestMapping( value="/zzs/xgm", produces="application/json;charset=utf-8&q ...

  8. 转载:关于 Token,你应该知道的十件事

    关于 Token,你应该知道的十件事 原文地址:http://alvinzhu.me/blog/2014/08/26/10-things-you-should-know-about-tokens/ 原 ...

  9. 关于SD卡

    http://blog.csdn.net/androidwifi/article/details/17725989 http://www.cnblogs.com/greatverve/archive/ ...

  10. jquery.metadata.js使用分析

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...