您的位置:首页 > 运维架构 > Linux

Linux——系统引导流程学习简单笔记

2013-11-05 12:59 483 查看
开启电源:固件 firmware(CMOS/BIOS) →  POST 加电自检 对硬件就行检查↓自举程序 BootLoader(GRUB) →  载入内核↓载入内核 Kernel 1:驱动硬件↓2:启动进程 init↓读取执行配置文件/etc/inittab↓initdefalut 系统默认运行级别  ↓/etc/rc.d/rc.sysinit 执行该脚本  ↓etc/rc.d/rc 该脚本判断initdefault  ↓/etc/rc.d/rcN.d N = 0 -- 6 然后执行对应的启动目录,启动需要的服务程序一:  date 显示系统时间 、  hwclock 显示硬件时间 我们可以调整 通过man 帮助文档查看修改二:  内核的版本号第二个数字奇数表示测试版本,偶数表示正式版本。三:  init进程:
init启动后读取inittab文件,执行缺省运行级别,从

而继续引导过程。在UNIX系统中,init是第一个可

以存在的进程,它的PID恒为1,但它也必须向一个

更高级的功能负责:PID为0的内核调度器(Kernel

scheduler),从而获得CPU时间。
  这里就引出了两个问题:  如果父进程死亡,子进程还存在的话,这样的进程被称为孤儿进程  如果子进程死亡,父进程不知道还保持与子进程的通信,那个这样的进程叫做僵尸进程  我们在系统中是不允许出现这两种进程的。 父进程死亡,子进程也应该消亡在inittab中,所有条目采取以下格式:
id:run-levels:action:process

id:标识符,一般为两位字母或数字

run-levels:指定运行级别,可以指定多个

action:指定运行状态

process:指定要运行的脚本/命令
  我们可以通过runlevel命令查看当前系统的运行级别, 通过init 【0-6Ss】 或者 telinit【0-6Ss】改变系统运行级别action常用取值:
initdefault:指定系统缺省启动的运行级别
sysinit:系统启动执行process中指定的命令

wait:执行process中指定的命令,并等其结束再

运行其他命令

once:执行process中指定的命令,不等待其结束
ctrlaltdel:按下Ctrl+Alt+Del时执行process指定

的命令
powerfail:当出现电源错误时执行process指定的 、命令,不等待其结束powerokwait:当电源恢复时执行process指定的命令respawn:一旦process指定的命令中止,便重新运行该命令
  启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的服务程序,完成相应运行级别的初始化设置/etc/rc.d/init.d   该目录下包含各个运行级别的服务程序脚本    其实/etc/rc.drcN.d是一些软连接,指向了十几存在于/etc/rc.d/init.d的脚本四:我们如何设置自动启动程序:  1:常用的是利用ln -s 首先我们常见自己的脚本,给予可执行权限,然后将它放到/etc/rc.d/init.d,然后再在相应的/etc/rc.drcN.d里面创建软连接即可;  2: 我们可以通过chkconfig来启动关闭服务  3:ntsysv 同样五:其他:  运行dmesg检查引导期间的错误  检查系统日志/var/log/messages,查找可能被dmesg忽略的应用程序错误
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: