如何制作一个小LINUX
要制作一个小的Linux,我们就要了解Linux系统开机的整个过程,其实很简单,跟WIN差不多。 POST(BIOS加电自检)-->根据BIOS的设定启动相应的设备-->Boot loader -->解压内核到内存 -->运行init进程 整个过程大概如上所述。 其中,内核在加载的过程中所完成的工作包括以下: 硬件探测 完成设备驱动程序初始化(initrd获取驱动程序,以模块的形式存在) 挂载根文件系统(以只读方式挂载) 装载/sbin/init,启动系统的PID为1的进程 系统的主进程init主要是根据/etc/inittab文件中的定义,来进行工作的。下面再看一下inittab文件是怎么写的,我们可以man inittab看一下,该文件的组成部分以及各组成部分的详细信息。 NAME inittab - format of the inittab file used by the sysv-compatible init process id:runlevels:action:process 各字段的解释 ID:就是一ID号,说白了就是一名字,代号,可以随便取。 RUNLEVELS:运行级别 ACTION:在什么情况下 PROCESS:运行什么命令 以下是action常用的选项 action: respawn 重新启动,当进程结束后,将会马上被重启 wait只有进入某个特定级别以后process才会启动一次,并且直到其结束为止,不再有其它动作 initdefault 设定默认运行级别 sysinit 系统初始化,这个进程将在系统启动过程中会被执行一次 ctrlaltdel: 用户同时按下ctrl+alt+del执行进程 看一下inittab文件的内容 id:3:initdefault: #名字叫id,运行级别为3,initdefault的意思上面已经有解释了。设定默认运行级别的 si::sysinit:/etc/rc.d/rc.sysinit #名字叫si,运行级别没写,表示所有的运行级别,动作叫sysinit,表示系统的初始化,然后初始化要运行的脚本为/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 #名字叫 l1---l6,运行级别为0-6,分别对应系统的6个运行级别,每个级别分别运行所对应的/etc/rc.d/rc 0 在/etc/rc.d里有个脚本叫rc,这个脚本主要是调用/etc/rc.d/rc.[0-6]/目录里的文件,该目录里的文件都是以K加数字加服务名或者S加数字加服务名组成,其中K表示KILL,要杀掉的服务,也即是系统开机后,不运行的服务,S表示start,运行对应级别后,所要运行的服务,其后面所对应的数字是服务的优先级。 ca::ctrlaltdel:/sbin/shutdown -t3 -r now #名字叫ca,所有运行级别,当按下Ctrl+Alt+Del的时候,运行/sbin/shutdown命令,也就是说:当用户按下CTRL+ALT+DEL组合键后,系统会在3分钟内重启。这样很危险,建议改成其它的。 pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" #名字叫pf,所有的运行级别,powerfail表示停电之后(对UPS有效),执行后面的shutdown pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" #名字叫pr,在12345的运行级别,powerokwait 表示停电不久,在指定关机的时间内,又来电了,就执行后面的shutdown内容 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |