linux's docs

3.2.0: 启动流程+目录结构

1、linux启动过程

启动流程:

  1. BIOS(basic in out system)
    通电检查硬件,然后加载第一可用启动项的mbr;

  2. MBR(main boot recorder)
    磁盘的第一个扇区,共512字节,446字节的boot程序空间,64字节的分区表,2字节的校验位。执行MBR内保存的boot loader程序,一般为GRUB,通过GRUB来找到kernel和initrd(centos6里面此文件更名)并将其拷贝到内存解压,控制权交给kernel;

  3. kernel接管系统
    会执行ramdisk,通过ramdisk识别并释放文件系统,从而加载硬件驱动,此时硬件系统准备完毕,接下来系统会执行init程序。

  4. 第一个进程init启动
    init的作用就是要准备软件执行的环境(主机名称、网络设置、语言环境设置、档案系统格式和其他一些服务)。
    配置文件:/etc/inittab。按照上述配置文件里的描述,启动相应runlevel的服务和程序。(例如启动/etc/rc3.d/下面的程序,/etc/rc3.d/下的文件名称一种以K开头,意为kill,不启动,一种以S开头,意为start,根据S后面的两位数字的大小进行由小到大的顺序启动)
    至此软件运行环境准备完毕;

  5. user的自定义启动项配置文件
    运行/etc/rc.local,(centos6和centos5里面的路径有差异)
    此配置文件可以设置任何你希望开机执行的命令或程序,包括shellscript

  6. 启动终端或x-window 配置文件:/etc/inittab
    根据上面的配置文件,启动 /sbin/mingetty,启动六次,也就是启动6个终端,至此,系统显示登陆界面,启动过程准备完成。

GRUB配置文件:
/boot/grub/grub.conf(/etc/grub.conf是软连接)

相关命令:
pstree-查看系统进程树
w命令,结果可以看出,几个tty在登陆,几个pts(远程连接)在登陆。
终端之间切换的快捷键是Alt+F[1-6],对应tty[1-6]。

2、目录结构

(copy自网络,因为网络上有太多资料,所以不自己整理了)
/ 根目录
/bin 存放必要的命令
/boot 存放内核以及启动所需的文件等
/dev 存放设备文件
/etc 存放系统的配置文件
/home 用户文件的主目录,用户数据存放在其主目录中
/lib 存放必要的运行库
/mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。
/proc 存放存储进程和系统信息
/root 超级用户的主目录
/sbin 存放系统管理程序
/tmp 存放临时文件的目录
/usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。
/var 包含系统产生的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及一些应用程序的数据文件等等。建议单独的放在一个分区。

Contents