家居企业网站建设精英,cms免费建站系统,如何建立公众号的步骤,新软件推广平台第一步#xff1a;POST#xff08;Power On Safe Test#xff09;加电自检当按下电源键以后#xff0c;CPU因为有电流通过便开始对自身、I/O设备、内存等硬件进行检验。那么CPU如何得知这些自检指令#xff1f;我们知道指令存在于内存当中#xff0c;寻找内存也需要指令。… 第一步POSTPower On Safe Test加电自检 当按下电源键以后CPU因为有电流通过便开始对自身、I/O设备、内存等硬件进行检验。那么CPU如何得知这些自检指令我们知道指令存在于内存当中寻找内存也需要指令。这看起来似乎是一个“死结”。如何解决呢在CPU生厂商生产CPU的时候会给CPU内置一系列指令让CPU通电以后就在固定的内存ROM中寻找自检指令进行自检。所以内存不仅仅只有我们可见的RAM还有我们不可见CPU可见ROM。第二步BIOSBasic Input Output System BIOS是一组固化在主板上ROM芯片上的程序该程序的主要功能是完成系统的加电自检、系统的自启动程序。由于一台计算机中可能会存在很多磁盘每个磁盘都可以装载一个操作系统此时BIOS中的Boot Sequence模块会决定启动那个磁盘中的操作系统。第三步MBRMaster Boot Recorder引导将内核加载到内存中在完成自检以及选择好装载哪个操作系统之后BIOS会将选定磁盘的0号扇区上的MBR加载进内存引导其加载内核模块。MBR512B Boot Loader446B Partition information16B*4 Reserve2B为了方便的访问内核所在的磁盘MBR中的Boot Loader会将内核所在的分区暂时指定为“根文件分区”然后通过该种路径访问内核并将其加载进内存中。内核加载完毕以后会指定非本分区的一个分区为真实的根分区并将内核所在的分区挂载到真实根分区的/boot目录下此时用户可以通过/boot/对内核文件进行访问。加载的内核文件由两部分组成压缩的内核文件和进行内核解压的程序。内核的真实文件非常大为了减小加载过程中IO的消耗将内核文件压缩后再加载进内存然后由内核解压模块对压缩程序进行解压。当前常用的Boot Loader就是GRUB。其分为三个阶段查看/boot/grub 1st stage位于MBR中用于引导2nd stage。 1.5 stage位于boot基本磁盘分区当中为了识别内核文件所在的文件系统提供文件系统识别扩展。 2nd stage位于boot基本磁盘分区当中GRUB的引导程序。问题boot分区和内核分区可以是存在于一个分区内吗 答为了方便boot分区支持更多的分区类型如LVM、raid等中。boot分区最好不要和内核分区位于同一分区当中因为内核分区只支持基本分区类型若boot非基本分区类型则MBR中Boot Loader中的1st stage不能识别2nd stage。第四步操作系统的安装当内核被加载进内存以后内核的解压程序会将压缩的内核模块解压在内存中此时内核便会启动第一个进程0号进行。由于启动改进程需要执行/sbin/init此时内核并不一定存在识别‘/’文件系统的功能。因为没有加载相应硬件的驱动程序。为了适应不同的硬件平台内核被设计成一个多模块程序在不同的硬件平台下加载不同的驱动程序。那如何得知需要加载哪些驱动程序呢在Boot Loader将内核加载到内存之后Boot Loader还会加载一个能够识别各种硬件驱动的程序也就是initrdinit ram disk。该程序会检测内核运行的硬件平台得知需要加载哪些驱动程序以后将这些应用程序打包加载进内存当中。此时由于真实的根文件系统并没有挂载所以initrd被内核当做根文件系统进行访问启动各种驱动程序。initrd会挂载新的根分区并生成一个init0号进程进行管理有initrd启动起来的进程同时将自身识别的各种硬件文件一并复制但真实的根分区之后就自行退出了。第五步初始化工作/sbin/init操作系统安装完毕之后会执行一系列初始化动作这些动作被定义在/etc/inittab该文件中定义的init都要完成的任务有1、设置默认运行级别。 运行级别0关机1单用户模式直接以root身份进入系统常用不密码修改。2多用户模式支持网络不支持NFSNetwork File System。3多用户模式字符界面支持网络和NFS。常用4预留模式。5多用户模式图形界面。常用6重启系统。 运行级别的相关命令 # init [0-6] 切换运行级别 # runlevel / who -r 查看当前的运新级别。2、指定用户初始化脚本/etc/rc.sysinit。3、启动指定级别下要启动|关闭系统服务。 查看系统服务命令# chkconfig --list 系统如何得知该启动或关闭哪些服务呢在/etc/rc.d/文件夹中存在每个运行级别对应的文件夹如rc0.d、rc3.d、rc5.d等每个文件夹中的文件如下[rootanna-laptop case_and_function]# ll /etc/rc.d/rc3.d/
K10saslauthd K87named S10network S25blk-availability S90crond
K15htcacheclean K87restorecond S11auditd S25netfs S95atd
K15httpd K89rdisc S11portreserve S26haldaemon S97rhnsd
K15svnserve S02lvm2-monitor S12rsyslog S26udev-post S97rhsmcertd
K50netconsole S08ip6tables S15mdmonitor S55sshd S99libvirt-guests
K75ntpdate S08iptables S22messagebus S80postfix S99local 上述的文件的命名都以[K|S][num][server_name]命名 * 以S开头的是要启动的服务。 * 以K开头的是要关闭的服务。 * num表示该服务启动或者关闭的次序。 系统启动服务的时候就会读取在对应运行级别下的该文件然后以num的大小对服务进行遍历对于以S开头的文件执行“/etc/rc.d/rc#.d/S#server_name start”命令。以K开头的文件执行“/etc/rc.d/rc#.d/K#server_name stop”命令。 4、定义“CtrlAltDelete”的操作。 5、初始化字符终端启动login服务并显示/etc/issue文件中的内容。 6、如果需要启动图形界面会启动图形终端。 转载于:https://blog.51cto.com/11229885/1754905