许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过。其实,

Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段:

1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。

2.执行程序init。装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,

包括重要系统精灵程序和其它指定在启动时装入的软件。

下面以Red Hat为例简单介绍一下Linux的启动过程。

一、启动内核

首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引

导过程的控制权后,会显示LILO提示符。此时如果用户不进行任何操作,LILO将在等待制定

时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个可引导的操作

系统列表,选择相应的操作系统名称就能进入相应的操作系统。

当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分

区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。LINUX内核获得控制权后,

以如下步骤继续引导系统:

1. LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些

代码完成解压缩。

2. 如果系统中安装有可支持特殊文本模式的、且LINUX可识别的SVGA卡,LINUX会提示用户

选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选

择显示模式。该显示模式可通过LILO或RDEV工具程序设置。

3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序

进行配置。这时,显示器上出现内核运行输出的一些硬件信息。

4. 接下来,内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过

LILO或RDEV指定。文件系统的类型可自动检测。如果由于某些原因装载失败,则内核启动

失败,最终会终止系统。

二、执行init程序

其次介绍init程序,利用init程序可以方便地定制启动其间装入哪些程序。init的任务是

启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入

六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,

因而总是提供六个虚拟登陆控控制台进程。

控制init程序操作的规则存放在文件/etc/inittab中。Red Hat Linux缺省的inittab文

件如下:

#

#inittab This file describes how the INIT process should set up the system in a certain

#run-level.

#

#

#Default runlevel.The runlevels used by RHS are:

#0-halt(Do NOT set initdefault to tis)

#1-Single user mode

#2-Multiuser,without NFS(the same as 3,if you do not have networking)

#3-Full multiuser mode

#4-unused

#5-X11

#6-reboot(Do NOT set initdefault to tis)

#

id:3:initdefault:

#system initialization

si::sysinit:/etc/rc.d/rc.sysinit

10:0:wait:/etc/rc.d/rc 0

11:1:wait:/etc/rc.d/rc 1

12:2:wait:/etc/rc.d/rc 2

13:3:wait:/etc/rc.d/rc 3

14:4:wait:/etc/rc.d/rc 4

15:5:wait:/etc/rc.d/rc 5

16:6:wait:/etc/rc.d/rc 6

#Things to run in every runlevel

ud:once:/sbin/update

#Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

#When our UPS tells us power has failed,assume we have a few minutes o

power left.Schedule a

#shutdown for 2 minutes from now.

#This does,of course,assume you have powered installed and your UPS

connected and working

#correctly.

pf::powerfail:/sbin/shutdown -f -h +2 "Power Restored;Shutdown Cancelled"

#Run gettys in standard runlevels

1:12345:respawn:/sbin/minggetty tty1

2:2345:respawn:/sbin/minggetty tty2

3:2345:respawn:/sbin/minggetty tty3

4:2345:respawn:/sbin/minggetty tty4

5:2345:respawn:/sbin/minggetty tty5

6:2345:respawn:/sbin/minggetty tty6

#Run xdm in runlevel 5

x:5:respawn:/usr/bin/X11/xdm -nodaemon

Linux有个运行级系统,运行级是表示系统当前状态和init应运行哪个进程并保持在这种

系统状态中运行的数字。在inittab文件中,第一个项目指定启动时装入的缺省运行级。

上例中是个多用户控制台方式,运行级为3。然后,inittab文件中每个项目指定第二个

字段的项目用哪种运行级(每个字段用冒号分开)。因此,对运行级3,下列行是相关的:

13:3:wait:/etc/rc.d/rc 3

1:12345:respawn:/sbin/minggetty tty1

2:2345:respawn:/sbin/minggetty tty2

3:2345:respawn:/sbin/minggetty tty3

4:2345:respawn:/sbin/minggetty tty4

5:2345:respawn:/sbin/minggetty tty5

6:2345:respawn:/sbin/minggetty tty6

最后六行建立Linux提供的六个虚拟控制台。第一行运行启动脚本/etc/rc.d/ rc 3;

这将运行目录/etc/

rc.d/rc3.d中包含的所有脚本,这些脚本表示系统初始化时要启动的程序。一般来说,

这些脚本不需要编辑或改变,是系统缺省的。[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22001907/viewspace-1023619/,如需转载,请注明出处,否则将追究法律责任。

linux 启动脚本 tty,Linux启动过程简介相关推荐

  1. Linux shell脚本,Linux下的西红柿时间管理法 I

    Linux shell脚本,Linux下的西红柿时间管理法 I 全部代码在[https://github.com/younggift/tomato.git]. 1. 西红柿时间管理法是什么 西红柿是一 ...

  2. 视频教程-Linux shell脚本习题-Linux

    Linux shell脚本习题 阿铭,前腾讯运维工程师. 1.职业历程:先后就职于康盛.腾讯.好贷,从基础运维做到运维经理,从月薪3k到年薪40w+. 2.培训经历:11年为女友编写电子版linux入 ...

  3. linux init.d添加启动脚本 ln,linux编写可运行的shell脚本并在其他目录创建ln连接与设置开机启动...

    ln :创建连接文件 - 默认创建的是硬连接,好比复制 ,但是两个文件会同步 命令:ln ./java/android/aa.txt  aaa - s :创建的是软连接变为指向(类似于windows的 ...

  4. linux 自启动脚本顺序,(linux开机启动脚本的顺序.doc

    (linux开机启动脚本的顺序 linux开机启动脚本的顺序 来源: ChinaUnix博客 日期: 2009.11.07 13:54 (共有0条评论) 我要评论 ? 如果[url=javascrip ...

  5. linux shell脚本 nohup,linux真正使用shell脚本做定时任务 关键的Nohup

    网上有很多的文章教大家使用定时任务,所以别的废话我就不多说了 我这里直接有SH来做定时,只是有一点大家不知道,一定要用Nohup,否则用户退出终端以后,SH任务会被自动终止掉 假设有一 tash.sh ...

  6. linux shell 脚本 supress,Linux指令和shell脚本

    关于Shell 在计算机科学中,Shell俗称壳(用来区别于核),是指"为使用者提供操作界面"的软件(命令解析器).它类似于DOS下的command.com和后来的cmd.exe. ...

  7. Android8.0 开机启动脚本,Android开机启动shell脚本(Android 8.0测试OK)

    Android 下做开机启动shell脚本的大致流程如下: 目录 写shell脚本 为脚本写te文件 在init.rc中启动脚本 添加Selinux权限 写shell脚本 比如新建一个init.tes ...

  8. linux spec 脚本,关于linux:shell脚本的单元测试

    多年来,我从事的几乎所有产品都涉及到一定程度的Shell脚本(或Windows上的批处理文件,PowerShell等). 即使我们使用Java或C ++编写了大量代码,但似乎总是存在一些集成或安装任务 ...

  9. php-fpm 没有启动脚本,php-fpm服务启动脚本

    在php-fpm还是打补丁的时候,php-fpm重启只需要执行php-fpm restart或者reload, 自从php5.3之后,php-fpm的启动和停止显得比较麻烦,特意改写了一份nginx的 ...

最新文章

  1. java 反序列化利用工具 marshalsec 使用简介
  2. C++中的Lambda表达式详解
  3. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)
  4. [八省联考2018]劈配 (匈牙利)
  5. 2021年货节消费趋势报告
  6. 基于Nginx的Wesocket负载均衡
  7. magento 客户表相关_第9章 相关性分析
  8. Mplay 常用命令及功能简介
  9. 【金猿案例展】某大型股份制银行——指标的统一管理和分析平台
  10. 【多线程】多线程到底是个甚——多线程初阶(复习自用)
  11. MacTex 使用教程
  12. ubuntu20.04 RTX2060||nvidia显卡驱动|cuda|cudnn|pytorch
  13. python基础知识相关习题
  14. BT结束,高宽带有何用?
  15. java 回滚异常_Java异常与事物回滚探究
  16. apache(阿帕奇)的基本配置1
  17. 计算机无法读取exe文件,详解EXE文件出错不能打开的修复方法
  18. Fiddler 插件 hook 参考代码
  19. Jarvis OJ 软件密码破解-1
  20. 常用激活函数总结(深度学习)

热门文章

  1. 编程软件python怎样开始学-Python 3.7从零开始学
  2. python条件语句-Python 条件语句
  3. python经典100例答案pdf-Python3基础训练经典100题(带答案)下载
  4. python stm32-STM32 上面跑Python
  5. python北京理工大学推荐的书-Python语言程序设计
  6. 精通python爬虫框架-精通Python爬虫框架Scrapy
  7. python中一共有多少个关键字-Python中所有的关键字
  8. python100个免费实例-Python实例100个(基于最新Python3.7版本)
  9. python培训好学吗-人工智能“速成班”Python好学吗 小心别被忽悠了
  10. python3创建定时任务