💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
2.1 引导 这是Linux系列文章第二篇,我们看一下linux系统是怎么引导的,相对与windows的解读,Linux还是有些不一样的地方。 2.2 init进程 这是系统的最先启动进程,在硬件引导完成将控制权交给系统内核的时候,这个进程产生。并且他的PID号总是1。 当由BIOS确定从那个硬件设备引导后,读取MBR,确定第二引导程序,这个引导程序主要作用是加载内核,执行一系列的引导过程,当检测完硬件之后,内核产生init进程,init进程创建其他守护进程的方式是调用SHELL脚本,而这些启动脚本大多数是以RC文件,比如RC0.D等,这下明白这些文件是干什么用的了把,rc是run command的简写。是操作系统发展的遗留痕迹。 2.3  引导过程 大体上分为6个阶段:                  加载初始化内核;                  检测硬件;                  创建内核进程;                  操作员干预(假如);                  执行系统启动脚本;                  多用户模式运行; 内核是一个二进制的镜像,位置在/boot/vmlinuz,或者/vmlinuz下,linux系统是单内核结构,所以整个内核都在内存中。内核首先要做的往往是检测硬件的情况,驱动程序由内核加载。 在内核初始化后,会有几个自发的进程被创建,他们并不是由fork来创建的,我们在ps命令中看到的一些进程名字被中括号包起来,并且PID号都比较小的,往往都是内核创建的,其实是内核的组成部分,装扮一下更像进程罢了。 列举几个:                       kjournald                       kswapd                       kreclaimd                       ksoftirqd ![](https://box.kancloud.cn/2016-05-17_573adb4f64f2f.png) 可以看到PID号都很小,在执行启动脚本之后,生成getty进程,好让用户登录进来。 引导涉及GRUP程序,这是目前很流行的引导加载程序,在多系统的时候尤为重要,不涉及了,有兴趣的可以自己查查资料。 这里面提及一下单用户模式,在linux启动的时,可以人工干预,变为单用户登录,目前我所应用的就是忘了root密码,选择这个登录去修改密码。 2.4 启动脚本 说到启动脚本,必须提及init进程,这里面涉及一个运行级的概念                         0级:完全关闭系统;                         1级:单用户模式;                         2-5级:多用户模式;                         6级:重新引导; 0级和6级,系统是不能停留在这两个级别中的,当计算机启动的时候,从0运行级,逐步提升运行等级,目前大多数Linux发行版默认是5级,这个是有init进程完成这个运行级的提示过程。 在/etc/init.d文件夹下,存放着很多守护进程的启动脚本,我们也经常从这里启动进程。不过init进程在将系统带入一个新的运行级别的时候,是通过rc0.d,rc1.d....等目录去寻找当前运行级的启动脚本。当然目录下的是符号链接,指向的还是/etc/init.d文件夹下的脚本。 未完待续。。。