Linux启动过程详解:从开机到登录
需积分: 3 106 浏览量
更新于2024-07-23
收藏 987KB DOC 举报
"Linux启动过程详解"
在Linux操作系统的学习中,理解系统的启动流程是至关重要的。这一过程涉及到多个步骤,从BIOS的初始化到用户登录Shell,每个环节都是系统正常运行的基础。下面我们将深入探讨Linux启动过程的关键部分。
1. BIOS启动:
当计算机电源开启,Basic Input/Output System (BIOS) 执行自检(POST),检查硬件是否正常。接着,根据用户在BIOS设置中的选择,BIOS会从预设的启动设备(通常是硬盘)启动。
2. 引导加载器:
Linux系统使用引导加载器,如LILO (LInux Loader) 或GRUB (Grand Unified Bootloader),来加载内核。引导加载器从硬盘上的特定位置读取内核映像,并将其传送给CPU执行。
3. 内核引导(核内引导):
内核引导阶段由`arch/i386/boot`目录下的汇编程序负责,包括bootsect.S、setup.S和video.S。bootsect.S是引导扇区的代码,它加载setup.S。setup.S负责将系统参数从实模式复制到保护模式下可用的内存区域,并处理视频设置。然后,通过转换到保护模式,setup.S将控制权交给位于0x100000的代码。
4. 内核解压:
Red Hat 9.0的内核通常以压缩形式存在,名为vmlinuz。CPU跳转到0x100000时,执行的代码是解压内核的逻辑,这部分由`arch/i386/boot/compressed`目录下的head.S和misc.c中的decompress_kernel()函数实现。解压完成后,真正的内核映像会被加载到内存中。
5. 内核初始化:
解压后的内核开始执行,初始化硬件设备,设置中断处理,加载模块,设置网络接口,以及初始化其他必要的系统组件。在这个阶段,内核还会决定使用哪个运行级别(runlevel),这决定了哪些系统服务会在启动时启动。
6. init进程:
内核启动完成后,第一个用户空间进程init被创建。在Red Hat系统中,通常是System V init或者Upstart。init根据/etc/inittab配置文件启动rc.sysinit和rc系列脚本,执行系统初始化任务,如挂载文件系统,设置网络,启动系统服务等。
7. 系统服务启动:
rc.sysinit和rc脚本启动系统服务,如网络服务、日志记录服务等。这些服务是系统运行所必需的,它们在后台运行,提供各种功能。
8. 登录界面:
当系统服务初始化完成后,init会启动多个mingetty进程,为用户提供登录终端。用户在终端输入用户名和密码,验证通过后,系统会为该用户创建一个shell实例,如bash,用户就可以开始交互式地使用系统了。
以上就是Linux从开机到用户登录的基本流程,涉及了硬件初始化、内核加载、系统服务启动等多个层次的操作。了解这个过程有助于我们更好地理解和调试Linux系统。
2021-09-29 上传
2023-04-13 上传
2015-09-01 上传
2024-10-16 上传
qq_19740665
- 粉丝: 0
- 资源: 2
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析