CentOS启动流程

  我们介绍一下CentOS操作系统的详细启动流程,了解这些启动流程之后,我们可以实验做一个小型的Linux。

763_f97_e38.jpg

1、Linux的组成

  我们Linux操作系统主要内核和根文件系统来组成的,那么内核的主要功能分别有:进程管理、内存管理、网络协议栈、文件系统、安全功能、驱动程序组成,那么部署内核的地方就叫核心文件那么核心文件称之为bzimage,在/boot分区目录下,名为vmlinuz-VERSION,它是一个可引导的、压缩的一个内核,是开机时加载的重要的一环。它们的组成部分分为两类,一类内核文件,一类时模块文件,内个文件在/boot/vmlinuz-VERSION-realease,而模块文件在/lib/modules/VERSION-release中,如果我们编译安装新的内核版本时,系统将会有多个目录版本。

2、Linux的运行环境

  在内核的运行的环境当中可分为两个层次,一类是内核空间,一类是用户空间,内核空间主要是内核代码,运行时作为系统调用,而用户空间主要是那些应用的空间,运行时可作为进程或线程。Linux的内核设计是单内核的设计,内核设计流派总的来说分为两类,一个是单内核设计,而单内核的设计是把所有功能集成与同一个程序,另一类是微内核设计,就是将每种功能都由它的子功能来实现,其采用微内核的操作系统有:Windows和Solaris。  
但是Linux内核又汲取了微内核的特性,其特性就是支持模块化,意思就是在用户编译内核
duKnnmM.png时,不必要把所有功能全部都打在一个内核文件中,我们可以把某个功能编译成一个模块放在那个路径里中,等到我们需要时可以安装,不63918611gw1f8xtex8dz4j209u0hwwfa.jpg需要重新编译,所以,Linux的内核支持模块运行时动态装载与卸载。  
  再说一下ramdisk,它是一个辅助性的文件,在CentOS 5中名字叫作Sysn init,配置文件在
/etc/inittab,主要作用就是设置运行级别然后启动第一个进程init,Sysv init早期在Unix上流传下来的,不过由于启动太慢,主要不是并行启动,且还要缓冲,所以在CentOS
 6中使用的Upstart,它是一个并行启动的一个程序,早期用于ubuntu,后来用于CentOS上,它的启动速度比CentOS快的很多,因为它的CentOS 5的
initrd在CentOS 6上换成了initramfs由原来的模拟磁盘换成了模拟文件系统,这是一种提速机制,一旦转换成文件系统的话就不需要进行缓冲了。  
  现在的CentOS 7中,采用了全新的一种启动软件,叫systemd,与之前的版本改变很大,管理起来也是全新的模式,不过启动速度比5和6还要快,因为它只是检测,检测到在的话,就检测下一个程序,并不让这个程序启动起来。

3、Linux的启动流程

  现在说一下CentOS的启动流程,这里主要还是以6为主,且只使用PC架构。

3.1、POST加电自检

  第一步,在我们开机时,或者说我们插上电时,PC机会自我检查一下它们的零件组成结构有没有缺失,如果零件缺失那么我们的主机岂不是启动不了啦?其实duKnnmM.png对于启动PC来说每一步都挺重要的。那么有谁来管理?在我们的主板上有个CMOS断电时那个纽扣电池来给它们供电保持运行,在CMOS中有个小型系统,叫做BIOS,叫基本输出输出系统,如果说对硬件设置或者说开启支持虚拟化的话,就要进入这个小型系统设置,以上这些叫加电自检(POST)

3.2、Boot Sequence(启动次序)

  第二步就是它的启动次序  (Boot Sequence)按次序查找引导设备,第一个有引导程序的设备就在本次要用到的设备,其主要的程序是bootloader,它是一个引导加载器,是安装在U盘、硬盘上的第一个程序,那么我们操作系统在启动时,通常都是靠bootloader来启动的,在MBR上占据446个字节,通常我们在安装系统时,操作系统的引导启动程序都写进这个bootloader里,Windows和Linux都使用不同的引导程序,前者使用ntloader,后者使用的时grub,我们来讲后者。

3.3、MBR

  第三步MBR叫做主引导记录,共有512个字节,位于第一个扇区上,这个扇区是不能更改的,其中446个字节是我们在安装操作系统时写的bootloader,64位是分区表,最后2位是验证。  
在我们安装Linux时,安装引导程序的叫grub,以下共分为三段:  
  1st_stage:主要写进了bootloader 
  1.5_st_stage:让1st_stage区识别2stage所在的系统分区(/boot/grub)  
  2_stage:放置在某个分区的路径下(/boot/grub)  
  功能时提供一个菜单界面,允许用户选择不同的操作系统与内核,一旦选择完成之后,内核就放在一个RAM中一个特定的空间里,展开与解压之后将系统控制权移交给内核。

3.4、Kernel

  第四步Kernel是Linux的核心,它是将硬件调用起来,并且驱动它们发挥它们的用处的一个程序,用户在grub中选择完成之后,内核就会开始自身初始化,然后探测可识别所有的硬件设备,之后我们借助ramdisk来进行加载驱动(ramdisk是一个辅助性的文件,它是一个在内存中的模拟根文件系统用来使内核初始化,这个文件可以没有,不过前提是你的内核能够直接驱动rootfs下的所有设备。),以只读方式挂载根文件系统,等内核加载完成之后,系统就开始施行根切换。并且运行用户空间中的第一个程序:/sbin/init。

3.5、init

  我们都说上帝是不管这些个人间的那些俗物,就像内核一样,它也并不管用户空间里所运行的程序,所以就派出了一个大管家,叫做init,它是所有进程的父进程,并且就是内核初始化之后在用户空间中运行的第一个程序,它的程序类型在各个版本上也有所不同,在CentOS 5 中叫sysv init,配置文件在/etc/inittab,在CentOS 6中使用的时Upstart,不过为了兼容CentOS 5,其配置文件也是在/etc/inittab中,不过和5不同的是,里面的内容已经很少了,真正的配置文件在  /etc/init/*.conf,新版的CentOS 7使用的是使用的时systemd,就连父进程由原来的init改成了systemd,其配置文件在/usr/lib/systemd/system以及/etc/systemd/system里面有诸多文件,可需备份。我们是根据这个配置文件的默认运行级别在关闭某些服务,之后在开启这个级别下的服务,启动登陆终端,登陆成功之后运行CTL或者是GUI界面,这幅图供参考。

6c9c694dbfcedfb1effa1c2665cb73f9_03fe4502-7eb5-4bc2-93b0-11106ca493f3.png

原创文章,作者:刘 祥宇,如若转载,请注明出处:http://www.178linux.com/62552

(1)
刘 祥宇刘 祥宇
上一篇 2016-12-04
下一篇 2016-12-04

相关推荐

  • MongoDB-index

    索引:特殊的数据结构,存储表的数据的一小部分以实现快速查询 优点:     1、大大减少了服务器需要扫描的数据量     2、索引可以帮助服务器避免排序或使用临时表     3、索引可以将随机io转换为顺序io 索引评估:三星(非常好) 一…

    Linux干货 2016-11-27
  • N25-第五周

    – 1     显示/boot/grub/grub.conf中以至少一个空白字符开头的行;     grep "^[[:space:]]\+" /boot/grub/grub.conf2 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的…

    Linux干货 2017-01-02
  • 第二十周作业

    一、用keepalived实现nginx与lvs的高可用集群 keepalived+nginx高可用环境:node1:    192.168.31.233     keepalived+nginx masternode2:    192.168.31.72      k…

    2017-07-22
  • LVM 逻辑卷管理器-缩小LV容量及快照区的建立

    LVM 逻辑卷管理器-缩小LV容量 将/dev/sdb2分区抽离出来,缩小LV容量 (1)首先查看/dev/sdb2的容量大小 [root@centos6 ~]# df -h /mnt/lvm/ Filesystem        &nbs…

    Linux干货 2016-09-19
  • NFS,samba,vsftpd的基本使用

    一.NFS介绍 NFS(Network File System),全名叫做网络文件系统,是由SUN公司研发的。顾名思义,简单理解就是通过网络互联,将本地的文件系统共享出去,从而实现资源的共享,NFS监听在TCP的2049端口上。当涉及到主机之间的通信时,就会存在安全问题,于是为了安全考虑,主动提出请求的一方(客户端)需要提供一些基本信息来认证,这些信息是需要…

    Linux干货 2017-01-04