码迷,mamicode.com
首页 > 系统相关 > 详细

Linux【NO.7】:系统启动流程

时间:2016-01-02 20:25:19      阅读:467      评论:0      收藏:0      [点我收藏+]

标签:

推荐连接:

 

 

必备知识点


Linux系统的组成部分

动态视角:内核+根文件系统
功能组成结构视角:硬件、内核(管理整个硬件功能)、库(库调用:libcall)、程序(特别的接口程序shell)

内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能
    IPC:Inter Process Communication进程通信

运行中的系统环境可分为两层

  • 用户空间:应用程序(进程或线程)
  • 内核空间:内核代码(系统调用)

内核设计流派

  • 单内核设计:把所有功能集成于同一个程序;Linux
  • 微内核设计:每种功能使用一个单独的子系统实现;Windows,Solaris

Linux内核特点

  • 支撑模块化:内核文件:.ko(kernel object)
  • 支持模块运行时动态装载或卸载;
站在编译好的视角看,其组成部分:
    核心文件:/boot/vmlinuz-VERSION-release
    模块文件:/lib/modules/VSERSION-release
        如果有内核有多个版本,则其下有多个目录

ramdisk:
用于实现系统初始化的基于内存的磁盘设备ramdisk

技术分享
ramdisk:
用于实现系统初始化的基于内存的磁盘设备ramdisk
    为什么需要:操作系统启动时,需要把ramdisk装载到内存中,而后根把它当作一个磁盘来使用,从而识别成根文件系统,其lib/modules目录下有当前真正的根设备的驱动程序,借助于ramdisk从而把真正的根挂载上,挂载上之后ramdisk把所有权利交给真正的根;
        ramdisk非必须的:取决于系统从何而来,内核是如何制作的,是为了面对多种需求还是只是当前需求的;
CentOS 5 : /boot/initrd-VERSION-release.img #基于ram的磁盘; 磁盘印象文件
CentOS 6,7 : /boot/initramfs-VERSION-release.img #基于ram的文件系统
    内存的数据本来就应该在内存中,磁盘上的设备虽然有buffer和cache,但太慢了,所以要把磁盘中很多数据临时加载到内存中供访问;
    但本来基于内存的磁盘设备ramdisk就是内存,就没有必须要再缓存一次,
        为了避免双缓冲双缓存的:从而使得其到达提速的目的;
ramdisk
技术分享
演示:
[root@centos7 ~]# uname  -r
3.10.0-229.el7.x86_64
            
[root@centos7 ~]# ls /boot/ #内核文件
config-3.10.0-229.el7.x86_64
grub
grub2
initramfs-0-rescue-0e6e23af771842c8bf3aeb3ae70b2a33.img
initramfs-3.10.0-229.el7.x86_64.img          #ramdisk临时根
initramfs-3.10.0-229.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-229.el7.x86_64.gz
System.map-3.10.0-229.el7.x86_64
vmlinuz-0-rescue-0e6e23af771842c8bf3aeb3ae70b2a33
vmlinuz-3.10.0-229.el7.x86_64  #核心文件

[root@centos7 ~]# ls /lib/modules  #模块文件在/lib/modules下
3.10.0-229.el7.x86_64
[root@centos7 ~]# ls /lib/modules/3.10.0-229.el7.x86_64/kernel/
arch  crypto  drivers  fs  kernel  lib  mm  net  sound
arch       与平台相关的特有代码
crypto     加密解密组件
drivers    驱动
fs         文件系统
kernel     内核追踪用到的组件
lib
mm         内存管理功能
net        网络功能
sound      跟声音相关的驱动程序、解码器等

[root@centos7 ~]# ls /lib/modules/3.10.0-229.el7.x86_64/kernel/kernel/ 内核追踪用到的组件
trace
[root@centos7 ~]# ls /lib/modules/3.10.0-229.el7.x86_64/kernel/fs/ 文件系统
binfmt_misc.ko  ceph    dlm    fat      gfs2   lockd       nfs_common  overlayfs  udf
btrfs           cifs    exofs  fscache  isofs  mbcache.ko  nfsd        pstore     xfs
cachefiles      cramfs  ext4   fuse     jbd2   nfs         nls         squashfs
演示:内核文件、模块文件

 

系统启动流程


上图先:

以下只适合PC机的MBR架构的设计

技术分享

(1)、POST(Power On Self Test)开机加电自检

通电后,自动查看硬件设备在不在

实现POST代码在主板的ROM上;如果没有外部辅助手段框定,ROM上的代码是没法修改的;

  ROM : CMOS   

  CMOS中有BIOS : Basic Input and Output System基本输入输出系统

可被CPU加载的:ROM+RAM

(2)、Boot Sequence : 引导过程

 

 

 

 

转载请注明出处:http://www.cnblogs.com/jasperhsu/p/5095141.html

 

Linux【NO.7】:系统启动流程

标签:

原文地址:http://www.cnblogs.com/jasperhsu/p/5095141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!