Linux 启动过程总结
1. 电源启动阶段
- 硬件初始化:进行硬件自检(POST)。
- 查找引导设备:按照启动顺序(如硬盘、USB)查找引导设备。
- 进入引导加载程序:加载引导程序(如 GRUB)。
2. BIOS/UEFI 阶段
- 功能:加载引导程序并切换到受控模式。
- 备注:
- BIOS (Basic Input/Output System):基本输入输出系统。
- UEFI (Unified Extensible Firmware Interface):统一可扩展固件接口。
- BIOS 的 MBR(主引导记录)仅有 512 字节,存储引导信息。
- UEFI 提供更灵活的启动管理,支持更大的存储空间。
3. GRUB 阶段
- 功能:
- 加载启动程序的内核文件。
- 提供多系统选择菜单(如有)。
- 加载内核和 RAM 文件系统。
- 备注:
- GRUB (GRand Unified Bootloader):大统一引导启动。
- GRUB 是一个引导加载程序,负责引导 Linux 内核,非常灵活的中间层,有效满足多系统启动需求。
4. 内核初始化阶段
- 功能:
- 解压并加载内核。
- 初始化硬件设备。
- 通过文件系统加载驱动程序。
- 挂载根文件系统。
- 备注:
- 内核启动后会调用 init 或 systemd 进行后续操作。
5. init/systemd 阶段
- 功能:
- init:加载并确定系统的运行级别。
- systemd:根据配置文件启动对应的服务。
- 备注:
- init 是传统方式,systemd 是现代替代方案,启动速度更快,功能更强。
6. 用户登录阶段
- 功能:
- 启动登录管理器(如 getty)进行登录。
- 用户输入用户名和密码后进入会话。
7. 用户会话阶段
- 功能:
- 系统加载用户配置文件(如 .bashrc、.profile)。
- 启动桌面环境或命令行,进入用户操作阶段。
Linux 文件结构介绍
Linux 文件系统采用树形结构,所有文件和目录都从根目录 / 开始。以下是主要目录及其功能和具体作用:
1. / (根目录)
- 功能:文件系统的起点,包含所有其他目录和文件。
- 作用:是整个文件系统的根节点,所有路径都从这里开始。
2. /bin (二进制文件目录)
- 功能:存放系统启动和运行所需的基本命令。
- 作用:包含如
ls、cp、mv等常用命令,所有用户均可使用。
3. /boot (启动文件目录)
- 功能:存放启动 Linux 所需的文件。
- 作用:包含内核文件(如
vmlinuz)、引导加载程序(如 GRUB)和启动配置文件。
4. /dev (设备文件目录)
- 功能:存放设备文件,代表硬件设备或虚拟设备。
- 作用:通过设备文件与硬件交互,如
/dev/sda代表硬盘,/dev/tty代表终端。
5. /etc (配置文件目录)
- 功能:存放系统全局配置文件。
- 作用:包含网络配置、用户配置、服务配置等,如
/etc/passwd(用户信息)、/etc/hosts(主机名映射)。
6. /home (用户主目录)
- 功能:存放普通用户的主目录。
- 作用:每个用户有一个独立的子目录(如
/home/user1),用于存储个人文件和配置。
7. /lib 和 /lib64 (库文件目录)
- 功能:存放系统运行所需的共享库文件。
- 作用:包含内核模块和程序运行所需的库文件,如
.so文件。
8. /media 和 /mnt (挂载点目录)
- 功能:用于挂载外部设备或文件系统。
- 作用:
/media:通常用于自动挂载的可移动设备(如 U 盘、光盘)。/mnt:用于手动挂载临时文件系统。
9. /opt (可选软件目录)
- 功能:存放第三方应用程序。
- 作用:通常用于安装大型软件包,如 Oracle 数据库。
10. /proc (进程信息目录)
- 功能:虚拟文件系统,提供内核和进程信息。
- 作用:包含系统运行时的动态信息,如
/proc/cpuinfo(CPU 信息)、/proc/meminfo(内存信息)。
11. /root (root 用户主目录)
- 功能:超级用户(root)的主目录。
- 作用:存放 root 用户的个人文件和配置。
12. /run (运行时数据目录)
- 功能:存放系统运行时的临时文件。
- 作用:包含进程 ID 文件、锁文件等,通常在系统启动时创建。
13. /sbin (系统二进制文件目录)
- 功能:存放系统管理命令。
- 作用:包含如
fdisk、ifconfig等管理员使用的命令。
14. /srv (服务数据目录)
- 功能:存放服务相关的数据。
- 作用:通常用于存储 Web 服务器、FTP 服务器的数据文件。
15. /sys (系统信息目录)
- 功能:虚拟文件系统,提供内核和设备信息。
- 作用:用于管理和配置硬件设备,如电源管理、设备驱动。
16. /tmp (临时文件目录)
- 功能:存放临时文件。
- 作用:所有用户均可读写,文件通常在系统重启后删除。
17. /usr (用户程序目录)
- 功能:存放用户安装的应用程序和文件。
- 作用:
/usr/bin:用户命令。/usr/lib:用户库文件。/usr/local:本地安装的软件。/usr/share:共享数据文件。
18. /var (可变数据目录)
- 功能:存放经常变化的文件。
- 作用:
/var/log:日志文件。/var/cache:缓存文件。/var/spool:队列文件(如邮件、打印任务)。