Linux基础篇之三系统启动过程

Linux 系统启动过程

Linux系统启动时,我们会看到许多启动信息,其实过程并不复杂,大致可以分为6个阶段:

·内核的引导

·运行init

·运行级别

·系统初始化

·建立终端

·用户登录系统

  • 内核引导

当计算机打开电源后,首先是BIOS的开机自检,按照BIOS设置第一启动项来启动,默认一般是硬盘启动。

操作系统接管硬件,之后读入/boot目录下的内核文件。

  • 运行init

init进程是系统所有进程的起点,是系统所有进程中的父进程,也是系统启动时第一个需要启动的进程。没有这个进程,系统的其他任何进程都不会启动。

Init进程首先需要读取配置文件 /etc/inittab

  • 运行级别

许多程序需要开机启动。比如windows系统中的服务,在linux中叫做守护进程daemon。

init进程任务就是去一一启动这些系统需要启动的程序。

当然,不同的场合需要启动不同的程序。比如用做服务器时需要启动apache;用做桌面就不需要了。

Linux 允许为不同的场合,运行不同的开机程序,我们称之为“运行级别(runlevel)”。也就是说启动系统时,根据运行级别,确定要运行哪些程序。

Linux系统有7个运行级别:

·运行级别0:系统停机状态,系统默认运行级别不能为0,否则系统不能正常启动;

·运行级别1:单用户工作状态,root权限,用户系统维护,禁止远程登录;

·运行级别2:多用户运行状态,没有NFS;

·运行级别3:完全的多用户状态,有NFS,登录后进入控制台命令模式;

·运行级别4:系统未使用,保留;

·运行级别5:X11控制台,登陆后进入图形GUI模式;

·运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则系统无限重启;

  • 系统初始化

在init的配置文件中有这么一行:si::sysini:/etc/rc.d/rc.sysinit     它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是bash的一个shell脚本,它主要完成一些系统的初始化工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。

它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及一些其他需要优先执行的任务。

这一行表示以5为参数运行/etc/rc.d/rc,/etc/rc.d/rc是一个shell脚本,它接受5作为参数,去执行/etc/rc.d/rc5.d/目录下的所有的rc启动脚本,/etc/rc.d/rc5.d/目录中的这些启动脚本实际上是一些连接文件,而不是真正的启动脚本,真正的启动脚本实际上都是放在/etc/rc.d/init.d/目录下。

而这些rc启动脚本有着类似的用法,他们一般能接收start、stop、retart、status等参数。

/etc/rc.d/rc5.d/中的rc启动脚本通常是K或者S打头的连接文件,对于以S开头的启动脚本,将以start参数来运行。

而如果发现存在相应的脚本也存在K打头的连接,而且已经处于运行状态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop为参数停止这些已经启动了的守护进程,然后在重新运行。

这样做是为了保证当init改变运行级别时,所有相关的守护进程都将重启。

至于在每个运行级别中运行哪些守护进程,用户可以通过chkconfig或者setup中的”System Services”来自行设定。

  • 建立终端

rc执行完毕后,返回init。

这是系统的各个守护进程已经启动完毕,系统的基本环境也已经设置完成。

Init接下来会打开6个终端,以便用户登录系统。在inittab中的6行就定义了个终端:

从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式。

同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份。

  • 用户登录系统

一般来说,用户登录的方式有三种:

·命令行登录

·ssh登录

·图形界面登录

对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面。

登录成功后可以直接进入KDE、Gnome、XFACE等窗口管理器。

本文主要讲的是文本方式登录的情况:当我们看到minigetty的登录界面时,我们就可以输入用户名和密码来登录系统了。

Linux的账号验证程序是login,login会接收minigetty传来的用户名作为用户名参数,然后login会对用户名进行分析,如果用户名不是root,且存在/etc/nologin文件,login将输出nologin文件的内容,然后退出。

这通常用来系统维护时防止非root用户登录。只有/etc/securetty中登记了的终端才允许root用户登录,如果不存在这个文件,则root可以在任何终端上登录。

/etc/usertty文件用于对用户作出附件访问限制,如果不存在这个文件,则没有其他限制。

  • 图形模式和文字模式

Linux预设提供了六个命令窗口终端供用户登录

默认登录的第一个窗口为tty1,其他分别为tty2~6,可以按住Ctrl+Alt+F1~F6来切换。

如果安装了图形界面则按Ctrl+Alt+F7切换。

  • Linux关机和重启

在linux领域,大多数是用在服务器上,很少会关机。Linux服务器一般可以好几年不用关机或重启,除非遇到特殊情况。

正确的关机流程:sync > shutdown > reboot > halt

Shutdown关机指令有多种方式,可以man shutdown来看一下帮助文档。

sync      将数据由内存同步到硬盘中,关机前必操作,防止数据未保存至硬盘

shutdown     关机指令,需要配合参数使用

shutdown –h 10 ‘10分钟后关机’     这个命令告诉所有用户,10分钟后将关闭系统             并在所有登录用户的当前屏幕中显示。

shutdown -h now         立即关闭系统

shutdown -h 21:00      系统将在21:00关机

shutdown -h +10         系统将在10分钟后关闭

shutdown -r now          立即重启系统

shutdown -r +10          系统将在10分钟后重启

reboot                          立即重启系统

poweroff                      立即关闭系统

half                               立即关闭系统,和poweroff、shutdown –h now一样

init 0                             立即关闭系统

init 6                             立即重启系统

总结:

不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写入磁盘中。

时间: 2024-08-25 21:09:18

Linux基础篇之三系统启动过程的相关文章

Linux基础篇--linux基础和帮助用法

Linux基础篇--linux基础和帮助用法 本章概要 用户登录 终端 Shell介绍 执行命令 简单命令 Tab键补全 命令行历史 bash快捷键 使用gnome-terminal whatis command--help manandinfo 本地帮助文档/usr/share/doc/ 官网在线文档 其它网站和搜索 用户登录 root用户   一个特殊的管理帐户   也被称为超级用户   root已接近完整的系统控制   对系统损害几乎有无限的能力   除非必要,不要登录为root 普通用户

Linux基础篇和服务器篇教程

基础篇 服务器篇 视频内容很详细,看完后就是中级攻城师了!!! 视频内容很详细,看完后就是中级攻城师了!!! 视频内容很详细,看完后就是中级攻城师了!!! 如有需要留言邮箱!!!记得推荐文章,让跟多的人看到!! 如有需要留言邮箱!!!记得推荐文章,让跟多的人看到!! 如有需要留言邮箱!!!记得推荐文章,让跟多的人看到!!

Linux基础篇之二系统redhat 6.4的安装

Linux的安装说明 本文主要介绍Linux的安装. 本文以redhat 6.4为例 : 大家也可以安装下载CentOS,CentOS就是从redhat基础上衍生出来的,安装方法大同小异. Redhat 6.4种子镜像: ed2k://|file|[%E7%BA%A2%E5%B8%BD%E4%BC%81%E4%B8%9ALinux.6.4.%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%89%88].rhel-server-6.4-x86_64-dvd[ED2000.COM].is

Linux基础篇之四系统目录结构

Linux 系统目录结构 ·思考:文件是什么?众多文件如何有效的组织起来? 文件指的是存储空间存储的一段数据流,对数据可以做到按名存取:文件存储的路径映射,我们称之为目录,文件就是存储在这些目录中. 众多文件通过层级结构来进行存储,可以把这种层级结构称之为倒置的树状结构. 在linux系统中,系统目录的第一层结构,原始起点"/",也就是所谓的根是所有目录的父目录,这个目录下的所有文件都按照倒置的树状结构排列. ·Linux系统与windows系统的目录结构有何不同? Linux系统通过

Linux基础篇之内存管理机制

转载这篇文章之前,先区分下缓存和缓冲的区别, 缓冲和缓存都是RAM中的数据.简单来说,buffer是即将要写入磁盘的数据,而cache是从磁盘中读取数据的.buffer是由各种进程分配的,被用在如输入队列等方面,一个简单的例子如某个进程要求有多个字段读入,在所有字段 被读入完整之前,进程把先前读入的字段放在buffer中保存.cache经常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,于是该文件便被做成cache以方便下次被访问,这样可以提高系统性能. 1 Linux内存管理的主要特

linux基础篇(二)VM安装linux操作系统

此篇开始有些内容就需要到linux系统内部实践了,只有自己动手操作才能学会和记住.网上有很多安装VM虚拟机和linux操作系统的教材,推荐<linux就该这样学>,安装linux的操作系统推荐redhat 和 centOS.安装过程建议先使用VM虚拟机安装学习,安装过程也很简单.多的我就不罗嗦了,网上资料实在是太多了,这个也实在是太简单了.注意以下几个图就好了.1.建议使用英文的键盘和英文的语言支持,以后的运用总基本上都是用的英文版的,这让你更熟悉和便利很多.在选择software selec

linux基础篇-23,文件系统管理

################################################ 重新创建文件系统会损坏原文有文件 mkfs:make file system -t mkfs -t ext2 =mkfs.ext2 mkfs -t ext3 =mkfs.ext3 mkfs -t ext4 =mkfs.ext4 ################################################ 文件系统类型 ext2 ext3 ext4 ################

linux基础之CentOS系统启动流程

CentOS系统启动流程 Linux系统的组成部分:内核+根文件系统 内核:进程管理.内存管理.网络协议栈.文件系统.驱动程序.安全功能 IPC:Inter Process Communication 消息队列.semerphor.shm socket 运行中的系统环境可分为两层:内核空间.用户空间 用户空间:应用程序(进程或线程) 内核空间:内核代码(系统调用) 内核设计流派: 单内核设计:把所有功能集成于同一个程序: Linux 微内核设计:每种功能使用一个单独的子系统实现: Windows

Linux基础篇之五基础命令 ---- 2

回顾: 上一篇博文我们讲的是几个处理目录类的常用命令,分别是ls, cd, pwd, mkdir, rmdir, cp, rm  链接:http://ccschan.blog.51cto.com/11854461/1841723 本文主要讲文件查看类的命令,在linux中,这些命令是最基本的,也是必须掌握的. 文件查看类命令,主要有以下几个: ·cat    由第一行开始显示文件内容 ·tac     由最后一行开始逆序显示文件内容,同tac命令是倒着写的 ·nl     显示的时候,顺道输出行