一、OS 的启动过程
1.1 启动流程
在讲启动问题的时候,我手头其实可以参考的教材或者纸质资料并不多,如果有,很多也是偏向工具性的阐述,而不是理论化的结构。只能说是在这里给出一个直观的、不太严谨的描述,如果之后有了更深的理解,那么就在之后再说吧。
整个流程,应该是从 CPU 加电开始,到操作系统完全掌握硬件资源结束。
整个启动流程可以被总结为下面这张图:
shell 就是“壳程序”,这个名字是针对 kernel 来说的,也就是在操作系统外围的程序(严格的讲,已经不是操作系统了)。宏观上的 shell 是所有的应用程序,而狭义上的 shell,指的是命令行方面的操作系统界面。我们通过 shell 将我们输入的命令与内核沟通,好让内核可以控制硬件来正确无误地工作。
我们在终端上经常敲的 ls
、cd
等命令,其实都是一组一组得引用程序(存放在 \bin
) 里,我们通过 shell 调用这些程序来执行我们的指令。
bash 是 shell 的一种,linux 上还可以有多种 shell 程序。
关于 shell 本身的使用,只有两点需要强调,就是如果一个命令过长,那么可以使用反斜杠 \
进行换行输出。此外,如果觉得输入命令太麻烦,可以使用别名设置,比如强大需求的 ll
。