Linux 学习 00 系统启动流程
2015-07-01 16:42
525 查看
为了更好的了解Linux系统的运行原理,非常有必要了解系统启动的流程。
首先,计算机会加载BIOS,BIOS默认会从硬盘上的第0柱面,第0磁道,第一个扇区中读取被称为MBR(主引导记录)的东西。一个扇区的大小是512字节,存放的内容是一段引导程序和分区信息,其中引导程序占446字节,磁盘分区表DPT占64字节,最后2字节是MBR的结束位。由于Grub本身比较大,常见方式是在MBR中写入Grub的地址,这样系统实际会用Grub作为引导程序。
Grub的功能就是根据配置文件加载kernel镜像,并运行内核加载后的第一个程序/sbin/init,这个程序会根据/etc/inittab 进行初始化的工作。这里有个重要的概念就是runlevel,后面会详细讲。
第四步,Linux 将根据/etc/inittab 中定义的系统初始化配置 si::sysinit:/etc/rc.d/rc.sysinit 执行/etc/rc.sysinit 脚本,该脚本将会设置系统变量,网络配置,并启动swap,设定/proc,加载用户自定义模块,加载内核设置等。
第5步,根据之前读到的runlevel的值启动对应的服务,如果为3,就运行/etc/rc3.d/下的脚本,如果为5就运行/etc/rc5.d下的脚本
第6步,运行/etc/rc.local ,第7步,生成终端或X Window等待用户登录。
系统运行级别
Linux 默认有7个运行级别:
0:关机
1:单用户模式
2:多用户模式,没有网络
3:完全多用户模式,最常见的
4:保留未使用
5:窗口模式
6:重启
来看下/etc/rc3.d/下的内容:
有很多以K或S开头,后跟2位数字再跟服务名的文件。K表示Kill,S表示Start,会先运行K开头的问题,在运行S开头的文件,在运行文件时会按照K/S后面的数字大小顺序执行,数字小的先执行。
首先,计算机会加载BIOS,BIOS默认会从硬盘上的第0柱面,第0磁道,第一个扇区中读取被称为MBR(主引导记录)的东西。一个扇区的大小是512字节,存放的内容是一段引导程序和分区信息,其中引导程序占446字节,磁盘分区表DPT占64字节,最后2字节是MBR的结束位。由于Grub本身比较大,常见方式是在MBR中写入Grub的地址,这样系统实际会用Grub作为引导程序。
Grub的功能就是根据配置文件加载kernel镜像,并运行内核加载后的第一个程序/sbin/init,这个程序会根据/etc/inittab 进行初始化的工作。这里有个重要的概念就是runlevel,后面会详细讲。
第四步,Linux 将根据/etc/inittab 中定义的系统初始化配置 si::sysinit:/etc/rc.d/rc.sysinit 执行/etc/rc.sysinit 脚本,该脚本将会设置系统变量,网络配置,并启动swap,设定/proc,加载用户自定义模块,加载内核设置等。
第5步,根据之前读到的runlevel的值启动对应的服务,如果为3,就运行/etc/rc3.d/下的脚本,如果为5就运行/etc/rc5.d下的脚本
第6步,运行/etc/rc.local ,第7步,生成终端或X Window等待用户登录。
系统运行级别
Linux 默认有7个运行级别:
0:关机
1:单用户模式
2:多用户模式,没有网络
3:完全多用户模式,最常见的
4:保留未使用
5:窗口模式
6:重启
来看下/etc/rc3.d/下的内容:
有很多以K或S开头,后跟2位数字再跟服务名的文件。K表示Kill,S表示Start,会先运行K开头的问题,在运行S开头的文件,在运行文件时会按照K/S后面的数字大小顺序执行,数字小的先执行。
相关文章推荐
- Linux中zip压缩和unzip解压缩命令详解
- Linux vsftp配置本地用户
- 每天进步一点点——linux——ps
- Linux笔记:iptables配置实例
- Linux命令之目录与路径
- CentOS安装TortoiseSVN 客户端
- Install Subversion 1.8.9 ( SVN Client ) on CentOS/RHEL
- Windows ftp 连不上Linux
- Linux关于vm虚拟机复制后无法启动网卡
- CentOS服务器,大访问量会造成日志文件迅速增大,半年左右得清除一下
- linux生成SSH keys
- 查看Linux系统版本
- UltraEdit 和Notepad++ 使用ftp直接编辑linux上文件
- RedHat 6.0如何使用CentOS YUM源更新的方法
- Linux 下进程的内存空间分配
- linux内存源码分析 - 伙伴系统(初始化和申请页框)
- Linux升级python2.7 +pip +mysqld
- Linux6.4的FTP参数
- Linux的yum与list结合
- Linux 时区&时间设置