Linux启动过程与文件结构简述

169 阅读4分钟

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 (二进制文件目录)

  • 功能:存放系统启动和运行所需的基本命令。
  • 作用:包含如 lscpmv 等常用命令,所有用户均可使用。

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 (系统二进制文件目录)

  • 功能:存放系统管理命令。
  • 作用:包含如 fdiskifconfig 等管理员使用的命令。

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:队列文件(如邮件、打印任务)。

/home,/root和/tmp可以随意修改,但tmp重启会消失