Linux 启动顺序:掌握系统启动知识(linux加载顺序)
Linux 是一个可安装在普通PC机上面的 多用户、多任务的类Unix操作系统。当用户按下电脑开机键,系统会进入启动序列,并在一定程度上有规律性的按照某种顺序启动。Linux启动顺序主要涉及硬件组件自检(BIOS),读取引导程序(bootloader),建立内核和根文件系统等步骤,具体的启动过程如下:
1. 引导组件自检(BIOS),确定计算机的硬件组件,检测内存,I/O设备等信息;
2. 读取引导程序(bootloader),用来加载Linux系统内核,bootloader可以支持多种操作系统,典型的bootloader有grub、grub2等;
3. 加载和缓冲内核,使用预先设定好的参数;
4. 创建根文件系统,并加载其中的基本程序;
5. 初始化特定的定义参数,包括网络信息,键盘布局,控制台信息等;
6. 挂载文件系统,读取各个文件系统的位置,把文件系统加载到内存中,系统完成检测;
7. 开始启动服务,初始化一系列准备就绪的服务;
8. 激活用户环境,如登录窗口或者shell终端等,完成开机启动过程。
Linux系统完成启动后,也可以去查看启动过程的错误信息,以针对不同的问题进行分析解决。内核启动过程的细节较多,有很多内核代码用于处理启动过程中涉及的硬件和软件设置,部分关键的代码如下:
/* start_kernel()函数用于启动Linux内核 */
void __init start_kernel(void)
{
…
setup_arch(&command_line);
…
init_IRQ();
init_timers();
init_sched_fair_class();
init_sched_features();
sched_init();
do_pre_smp_initcalls();
lockup_detector_init();
…
}
Linux系统启动顺序描述了开机过程及其全过程,用户如果日常遇到系统开机问题,可以通过了解开机顺序,掌握相关知识,找到并解决它们。