当前位置:首页>Linux>Linux启动基本原理

Linux启动基本原理

  • 2026-07-02 16:37:42
Linux启动基本原理

内核启动

1.启动顺序

在默认情况下Linux的启动顺序可以分为以下几个步骤

情况一:没有引导加载器的情况下 (特指grub、system-boot、u-boot)   -> 内核加载并初始化Linux驱动 -> 寻找init程序 可以是脚本也可以是特定的LInux程序 -> 启动shell虚拟终端 TTY

情况一是在没有任何程序的情况下的启动,但是也需要加载一个sh程序用于保持第一个守护进程不结束,在通常的LInux系统开发中测试一般最简单的方式是使用C程序 的死循环测试启动是否正常,但是也可以是busybox环境中的shell程序

情况二:BIOS 自检-> 引导加载器 -> 加载内核与 initramfs -> 内核查找 init 进程 -> 挂载磁盘与虚拟设备 -> 切换根文件系统-> 初始化 systemd/OpenRC 等服务管理器

其中initramfs是一个临时的迷你系统只用于,内核查找 init 进程 -> 挂载磁盘与虚拟设备这两步骤,之后就进行/转移操作了;专业术语叫:pivot_root和switch_root。
专业名词
解释
pivot_root
内核级系统调用,全局切换整个系统的根目录(从 initramfs 换到真正的 /
switch_roo
用户空间工具,封装 pivot_root,专用于启动流程把临时根(initramfs)切换到磁盘根文件系统
如果看着复杂就可以将Linux发行版简单的理解为:由各种GUN软件组合的操作系统;最基本的组件有以下GUN工具
包名(GNU)
主要程序 / 命令
作用说明
bash
bash
GNU 标准 Shell,用户交互、脚本执行、启动 TTY 的默认 Shell。
coreutils
ls、cp、mv、rm、mkdir、cat、dd、chmod、chown、wc、sort 等
文件 / 目录管理、文本处理、进程管理的最基础工具集,没有它系统无法干活。
glibc(GNU C Library)
libc.so
C 标准库,提供文件 I/O、内存管理、字符串操作、系统调用封装;几乎所有程序都依赖它
gzip
gzip、gunzip
压缩 / 解压 .gz 文件,节省空间、加速传输。
tar
tar
打包 / 解包 .tar 归档,常与 gzip 结合(.tar.gz)。
GRUB
grub-install、grub-mkconfig
GNU 引导加载器,BIOS/UEFI 启动、加载内核与 initramfs(你前面说 “无 grub” 时就不用它)。
inetutils
hostname、ping、telnet、ftp、tftp
基础网络工具:主机名设置、连通性测试、简单文件传输。
wget
wget
命令行下载工具,支持 HTTP/HTTPS/FTP,常用于脚本拉取文件。
sed
sed
流编辑器,批量文本替换、过滤、脚本化处理配置文件。
grep
grep、egrep、fgrep
文本搜索工具,按正则匹配查找内容。
m4
m4
宏处理器,用于配置脚本、模板生成(autotools 依赖)。
以上是最基本的LInux软件集合,有了这些GUN软件才能正常使用,但是这个组合是最极简的组合,并不是常规发行版的基本包,就给大家看看Arch的基本组件base包的内容吧~
软件包
包含常用命令
核心作用
bash
bash
默认命令行解释器,执行命令与 Shell 脚本
coreutils
ls、cp、mv、rm、cat、mkdir、chmod
文件目录、文本基础操作工具合集
findutils
find、xargs
检索文件,批量处理匹配文件
gawk
awk
流式文本解析、数据统计与格式处理
grep
grep、egrep
正则检索文本,筛选日志配置内容
sed
sed
批量编辑、替换、截取文本文件
tar
tar
文件打包归档,搭配压缩格式解压
bzip2
bzip2、bunzip2
bz2 格式压缩解压
gzip
gzip、gunzip
gz 格式压缩解压
xz
xz、unxz
xz 高压缩率格式处理
gettext
msgfmt、gettext
程序多语言国际化翻译支持
shadow
passwd、useradd、groupadd
用户账号、密码、用户组管理
util-linux
mount、umount、fdisk、hwclock
磁盘挂载分区、终端与系统硬件管理
procps-ng
ps、top、free、vmstat
查看进程、内存 CPU 等系统资源
psmisc
pstree、killall、fuser
查看进程树、批量终止进程
file
file
识别判定文件真实类型
iputils
ping、arping
测试网络连通性
iproute2
ip、ss
网卡地址、路由、网络连接管理
pciutils
lspci
查看主板 PCI 接口硬件设备
filesystem
无独立命令
规范 Linux 标准目录层级结构
gcc-libs
无独立命令
C 程序运行依赖基础运行库
glibc
无独立命令
系统底层核心 C 标准库,支撑系统调用
licenses
无独立命令
存放软件开源许可协议文档
pacman
pacman
系统软件安装、卸载、升级、查询
archlinux-keyring
pacman-key
校验软件包合法性,安全密钥管理
systemd
systemctl、journalctl
系统服务启停、开机管理、日志查看
systemd-sysvcompat
service
兼容传统 SysV 风格启动命令

2.initramfs是什么?

定义

initramfs 是初始内存文件系统,全称 Initial RAM Filesystem,是Linux内核启动早期加载到内存中的临时根文件系统镜像。

核心作用

内核刚启动时,磁盘分区尚未挂载,依靠该内存临时文件系统运行初始化程序 2. 加载磁盘驱动、文件系统驱动,识别本地硬盘分区 3. 完成设备探测、磁盘挂载、硬件初始化等前置操作 4. 调用pivot_root/switch_root切换至磁盘真实根目录,接管系统运行

运行流程 内核解压载入initramfs镜像 → 在内存中搭建临时运行环境 → 初始化硬件与存储设备 → 切换根目录 → 销毁临时内存文件系统,系统正式启动

特点

全程驻留内存读写,速度快,不依赖物理磁盘 - 体积精简,仅存放启动必备工具、驱动与初始化脚本 - 是Linux现代启动流程里,衔接内核与本地根分区的关键中间层

补充关联 镜像后缀常见img/cpio,开机切换根目录操作,本质就是从initramfs临时环境切换到磁盘真实/目录。

3.什么是CPIO?

cpio(全称 CoPy In & Out)是 Linux/Unix 系统下经典的归档和备份工具程序。它主要用于创建、还原备份档,或者在不同目录之间直接复制文件树。
与常见的 tar 命令不同,cpio 不直接遍历目录或接受文件名作为参数,而是从标准输入读取文件列表,通过管道或重定向来完成打包、解包等操作。

核心工作模式

cpio 主要通过以下三种基本模式来实现文件管理:
Copy-out 模式(-o):用于建立备份档(打包)。将指定的文件写入归档文件中。
Copy-in 模式(-i):用于还原备份档(解包)。从归档文件中提取并恢复文件。
Pass-through 模式(-p):跨目录复制。略过生成归档文件的步骤,直接将文件及属性复制到目的目录。

文件格式特点

.cpio 是一种极其简单的归档格式,本身不进行压缩,常与 gzip 等工具配合使用(如 .cpio.gz)。它的物理结构由“头部(Header)+ 路径名 + 数据 + 对齐填充”循环组成,并在末尾使用 TRAILER!!! 标记结束。由于其轻量级且能完美保留文件权限、时间戳等元数据,它在嵌入式系统和内核开发中备受青睐。

常见应用场景

虽然在日常使用中 cpio 的频率不如 tar,但它在某些系统级任务中扮演着关键角色:
制作 initramfs:Linux 内核启动时所需的初始内存文件系统(initramfs/initrd)通常使用 cpio 格式打包。
提取 RPM 包文件:在服务器维护中,可以使用 rpm2cpio 结合 cpio 命令,从 RPM 安装包中提取出特定的系统文件以修复误删的系统组件。
系统迁移与备份:适用于裸设备备份或跨文件系统的完整数据迁移。

常用操作示例

打包文件:结合 find 命令查找文件并打包。 find . -print0 | cpio -0 -o -H newc > archive.cpio
解包文件:自动创建目录并还原文件。 cpio -idv < archive.cpio
解压并解包压缩的 cpio 文件: gzip -dc archive.cpio.gz | cpio -idv

4.init可以是什么?

在 Linux 和类 Unix 系统中,init(Initialization 的缩写)是系统启动后由内核执行的第一个用户空间进程。它的进程号(PID)恒为 1,是所有其他进程的“祖先”。
根据不同的语境和技术发展,init 可以指代以下几种含义:

作为核心进程与角色

init 是整个系统的“大管家”,负责系统从启动到关机的整个生命周期管理。其核心职责包括:

系统初始化:挂载文件系统、设置时区和语言等环境、启动关键服务(如网络、SSH)。

进程管理:监控并管理子进程,例如当某个服务崩溃时自动重启它;同时收集并回收系统中的“孤儿进程”或“僵尸进程”。

关机与重启:在系统关闭时,有序地终止所有进程并卸载资源。

作为初始化系统的演进版本

随着技术的发展,init 的实现方式经历了三个主要阶段:

SysVinit(传统 init):最经典的实现,基于“运行级别(Runlevel)”串行执行脚本。配置文件通常为 /etc/inittab,缺点是启动速度慢且依赖管理复杂。

Upstart:为了解决 SysVinit 的缺陷而引入的事件驱动模型,支持并行启动和动态响应硬件插拔事件,曾广泛应用于早期的 Ubuntu 系统。

systemd(现代主流):目前绝大多数主流 Linux 发行版(如 CentOS 7+、Ubuntu 16.04+)采用的新一代系统和服务管理器。它不仅是一个 init 系统,还集成了设备管理、日志记录等功能,大幅提升了开机速度。

容器化环境中的特殊 Init

在现代 Docker 等容器技术中,由于容器内通常只运行单一应用,如果该主进程没有正确处理 SIGCHLD 信号来回收子进程,极易产生僵尸进程。因此,容器生态中衍生出了专门的轻量级 init 进程(如 tini 或 dumb-init),它们作为 PID=1 接管容器内的进程回收工作,以保障容器的稳定运行。

5.服务管理有什么?

5.1.OpenRC

OpenRC 是一款专为类 Unix 系统(如 Gentoo、Alpine Linux)设计的轻量级、模块化初始化系统(init system)。它通常与 /sbin/init 协同工作,主要负责管理系统服务的启动、停止和监控。
具体来说,OpenRC 的核心功能主要体现在以下几个方面:

依赖驱动的服务管理

OpenRC 采用“依赖关系驱动”的设计理念,能够智能处理服务间的依赖关系,确保系统组件按正确的顺序启动或停止,避免因依赖缺失导致的启动失败。你可以通过简单的命令来控制单个服务的生命周期:

启停服务:使用 rc-service <服务名> start|stop|restart 来启动、停止或重启特定服务。

状态监控:通过 rc-status 命令可以全面查看当前运行级别下的活动服务、已停止服务和失败服务的状态。

灵活的运行级别(Runlevel)控制

运行级别定义了系统的不同操作模式。OpenRC 通过 runlevels/ 目录管理不同级别的服务集合,你可以轻松切换系统的运行场景:

配置开机自启:使用 rc-update add <服务名> default 将指定服务添加到默认运行级别,实现开机自动启动;反之可使用 delete 参数移除服务。

自定义服务脚本:用户可以在 /etc/init.d/ 目录下编写 Shell 脚本来定义自己的服务逻辑,并为其设置权限和执行规则。

提供轻量级的替代方案

相比于目前主流的 systemd,OpenRC 具有独特的架构优势:

资源占用低:它采用纯 Shell 脚本加 C 工具链的方式管理服务,避免了复杂的二进制配置和 D-Bus 通信机制,因此启动速度快、资源消耗极低。

高度可定制:文本化的配置方式使得系统行为透明且易于修改,非常适合追求系统简洁性、需要高度自定义流程的场景,尤其是嵌入式设备或资源受限的容器化环境

兼容传统 SysVinit

OpenRC 保持了良好的向后兼容性,它可以无缝兼容传统的 System V init 脚本,无需大幅修改即可运行旧有的初始化脚本,方便老系统的平滑迁移。

5.2.S6

s6(s6 supervision suite)是一款极致轻量、高性能的进程监督与管理工具集。它不仅可以用来管理单个服务,还能构建完整的初始化系统。
具体来说,s6 的核心功能与优势包括以下几个方面:

极致的进程监督与自动恢复

s6 采用极简设计哲学,每个组件专注于单一功能。当守护进程意外退出时,它能够立即检测并自动重启该进程,确保服务的高可用性。这种机制让系统管理员无需手动编写复杂的重启脚本,即可实现稳定的服务管理。

替代传统 Init 系统的轻量级方案

相比于传统的 Systemd 等重量级解决方案,s6 的资源占用几乎可以忽略不计,且启动速度极快。同时,它的配置复杂度较低,非常适合追求轻量化和高稳定性的现代系统管理需求。

丰富的核心组件与服务控制

s6 提供了一套完整的工具链来实现精细化的进程管理:

监督树主干 (s6-svscan):作为整个体系的入口,负责扫描目录并启动相应的监督进程。

贴身保镖 (s6-supervise):作为被监督守护进程的直接父进程,始终掌握其正确的 PID。

服务控制命令 (s6-svc):允许用户轻松地向守护进程发送信号,执行启动、停止或重启等操作。

高级扩展能力与容器化应用

除了基础的服务管理,s6 还支持为每个服务配置独立的日志处理器以防止数据丢失,并提供就绪通知机制和文件描述符保持等高级功能。此外,s6 极其适合在 Docker 容器中作为 PID=1 运行,为容器提供可靠的进程监督;结合 s6-rc 和 s6-linux-init 等扩展包,还可以用它构建出完整的 Linux 初始化系统。

5.3.SysVinit

SysVinit(System V init)是 Linux 和类 Unix 操作系统中最经典、最传统的初始化系统。它由早期的 UNIX System V 版本引入,曾长期作为大多数 Linux 发行版的默认启动方案。
它的核心设计哲学是追求简单与透明,主要通过 Shell 脚本和配置文件来按部就班地管理系统。以下是 SysVinit 的核心机制与特点:

串行启动模式

SysVinit 采用严格的串行方式启动服务。这意味着必须等一个服务完全就绪后,才会开始下一个服务的启动。这种方式虽然稳重可靠,但在处理大量服务时会导致启动时间较长,就像排队打饭一样缺乏效率。

运行级别(Runlevel)控制

SysVinit 使用数字形式的“运行级别”(0-6)来定义和控制系统的不同状态。例如,运行级别 3 通常代表多用户字符界面模式,5 代表图形界面(GUI)模式,而 0 代表关机。管理员可以通过切换运行级别来改变系统当前的工作场景。

基于脚本的配置管理

核心配置:以 /etc/inittab 为核心配置文件,定义了系统的默认运行级别及相应操作。

服务脚本:每个服务都需要在 /etc/init.d/ 目录下拥有一个独立的 Shell 脚本,用来定义 start、stop、restart 等操作。通过在 /etc/rc.d/ 或 /etc/rcX.d/ 目录中建立符号链接来控制不同级别下的启停顺序。

管理命令:主要依赖 service 命令来启停服务,以及 chkconfig 命令来设置服务在不同运行级别下的自启状态。

进程追踪的局限性

在传统模式下,SysVinit 对服务进程的干预较少。它通常依赖 PID 文件(如 /var/run/nginx.pid)来追踪主进程,一旦进程发生 fork 分支,就容易失去监控,且难以统一管控子进程的生命周期和资源。

5.4.Runit

它是 Linux 和类 Unix 系统中一款轻量级、跨平台的初始化系统(init system)和进程监控工具。
Runit 的核心设计哲学是遵循 UNIX 的“做一件事并把它做好”原则,旨在为系统提供一个简洁、快速且极其可靠的启动与服务管理方案。它在经典的 SysVinit 简单性与现代 systemd 的灵活性之间取得了很好的平衡,尤其适合追求极致性能和稳定性的场景。

Runit 的核心特点

极简与高效:代码量非常小,自身开销极低,启动速度非常快。它采用并行化服务启动机制,能够大幅缩短系统的开机时间。

高可靠性:内置了强大的进程监控框架。当服务意外退出或崩溃时,它能够自动重启这些进程,保障系统的高可用性。

直观的目录结构:摒弃了复杂的配置文件,每个服务都有独立的目录和简单的控制脚本,使得服务的创建和维护变得非常直观。

三阶段工作机制

Runit 将系统初始化和服务管理巧妙地分解为三个阶段:

阶段 1 (Stage 1):内核启动后执行第一个程序(如 /sbin/runit-init),负责设置基本的运行环境,随后进入阶段 2。

阶段 2 (Stage 2):扫描服务定义目录(通常是 /etc/sv/),并为需要启动的服务启动一个 runsvdir 进程,同时负责处理系统的关机和重启信号。

阶段 3 (Stage 3):由 runsvdir 进程接管,它会持续监控指定目录下的服务。每个服务对应一个包含 run 脚本的子目录,runsv 进程会启动并全程监控该脚本的执行。

服务管理方式

在 Runit 中,启用或禁用服务完全通过符号链接来实现,操作极其简单。例如,要启用 sshd 服务,只需在 /var/service/ 目录下创建一个指向 /etc/sv/sshd 的软链接即可;删除该链接则代表禁用服务。此外,Runit 提供了 sv 命令行工具,允许管理员轻松地查询服务状态、启停服务或向其发送信号。

5.5.Systemd

Systemd 是目前绝大多数主流 Linux 发行版(如 RHEL/CentOS 7+、Ubuntu 16.04+、Debian 8+ 等)默认采用的初始化系统(init system)和服务管理器。作为系统启动的第一个进程(PID 1),它取代了传统的 SysVinit,不仅是一个启动器,更是一个功能强大的“系统级管理框架”。

核心优势与设计理念

相比于传统的串行启动脚本,Systemd 带来了革命性的改进:

并行启动与按需激活:它通过依赖图实现服务的并行启动,并支持 Socket/D-Bus 按需激活(例如,仅在首次连接端口时才拉起对应服务),大幅提升了开机速度。

万物皆 Unit(单元):它将系统中的所有资源(服务、挂载点、定时器、设备等)统一抽象为“Unit”,取代了过去零散的 init 脚本,提供了高度一致的管理接口。

功能高度集成:除了基础的服务管理,它还内置了 journald(日志收集)、networkd(网络配置)、udev(设备管理)和 cgroups(资源控制)等组件,提供了一体化的系统管理平台。

核心概念:Unit 与 Target

Unit(单元):是 Systemd 的基本管理对象。最常见的包括 .service(后台守护进程)、.timer(替代 cron 的定时任务)、.socket(套接字)以及 .mount(文件系统挂载)等。

Target(目标):用于将多个 Unit 编组,模拟了传统 SysVinit 中的“运行级别(Runlevel)”。例如,multi-user.target 对应传统的命令行多用户模式,而 graphical.target 对应图形界面模式。

常用管理命令 (systemctl)

systemctl 是与 Systemd 交互的核心工具,涵盖了日常运维的所有需求:

服务生命周期:使用 systemctl start|stop|restart|reload <服务名> 来控制服务的启停与重载;通过 systemctl status <服务名> 查看运行状态。

开机自启管理:使用 systemctl enable|disable <服务名> 来设置或取消服务的开机自动启动。

系统状态分析:通过 systemd-analyze 查看整体启动耗时,或使用 systemd-analyze blame 找出拖慢开机的具体服务。

全局控制:支持 systemctl reboot(重启)、systemctl poweroff(关机)以及进入救援模式等操作。

配置文件结构

一个标准的自定义服务文件(.service)采用 INI 格式,通常包含三个核心段落:

[Unit]:定义服务的元数据及与其他单元的依赖关系(如 Requires= 强依赖,After= 启动顺序)。

[Service]:定义服务的运行行为,包括执行命令(ExecStart)、运行身份(User/Group)、崩溃重启策略(Restart)等。

[Install]:定义安装与开机自启的配置,指定该服务属于哪个 Target。

在文件存放位置上,管理员自定义的 Unit 文件应放置在 /etc/systemd/system/ 目录下(优先级较高),以避免被系统软件包更新覆盖;而系统预装的文件则位于 /usr/lib/systemd/system/ 中。修改配置后,需执行 systemctl daemon-reload 重新加载配置树。

核心总结

服务管理器(Init System)是操作系统的基石,其核心本质在于作为内核启动后的第一个用户空间进程(PID 1),承担起系统从引导到关机全生命周期的“大管家”角色。纵观从传统的 SysVinit、OpenRC,到现代的 systemd,再到追求极致轻量的 runit 和 s6,服务管理器的核心能力可以高度凝练为以下四大维度:

1. 系统初始化与生命周期控制

这是服务管理器最基础的核心职责。它负责在系统引导阶段挂载文件系统、配置网络环境等基础运行条件,并决定系统最终进入何种运行状态(如多用户字符界面或图形界面)。同时,它还承担着有序关停系统和回收孤儿/僵尸进程的重任,确保系统能够安全地重启或关闭。

2. 服务编排与依赖调度

现代操作系统包含大量相互关联的服务,服务管理器必须解决“先启动谁、后启动谁”的问题。传统方案(如 SysVinit)采用严格的串行脚本执行,效率较低;而现代方案则通过声明式配置来构建依赖图。例如,systemd 利用单元文件(Unit)中的 Requires 和 After 指令实现精确的并行启动优化;runit 则依靠目录结构和符号链接进行直观的状态管理;s6 更是提供了极致的模块化依赖控制。

3. 进程监督与高可用保障

为了防止关键服务因意外崩溃而导致系统瘫痪,服务管理器普遍内置了强大的进程监控机制。当守护进程异常退出时,管理器能够自动检测并立即将其拉起(如 runit 和 s6 的秒级恢复能力)。此外,像 systemd 这样高度集成的管理器,还能通过 cgroups 等技术对服务的资源消耗进行隔离与限制,防止单个服务拖垮整个系统。

4. 统一抽象与生态集成

随着技术的发展,服务管理器正逐渐从单一的“启动器”演变为综合性的“系统管理平台”。以 systemd 为代表,它将系统中的服务、定时器、设备、挂载点甚至网络连接都统一抽象为“Unit”,并通过内置的日志组件(journald)、网络管理等实现了功能的深度集成。相比之下,遵循 Unix 哲学的轻量级管理器(如 OpenRC、runit)则更强调文本配置的透明性和跨平台的可移植性。
总而言之,服务管理器的核心就是在极简可控功能集成之间寻找平衡,以最合适的资源开销,保障底层系统的高效运转与服务的高可用性。

6.Linux驱动与.ko文件的关系

6.1. 核心概念界定

Linux 驱动(Driver):是运行在内核态的软件逻辑,充当操作系统与底层硬件之间的“翻译官”。它向上为应用层提供标准化的系统调用接口(如 open/read/write/ioctl),向下将请求转化为对硬件寄存器或 GPIO 等底层资源的具体操作。

.ko 文件(Kernel Object):全称内核对象,是 Linux 可加载内核模块(Loadable Kernel Module, LKM)的物理文件格式。它是驱动程序编译后的最终产物,本质上是一种特殊的 ELF(Executable and Linkable Format)二进制文件

6.2. 两者的深度关联

6.2.1 动态插件机制与架构解耦

如果把 Linux 内核比作一辆高速行驶的汽车主体,那么 .ko 文件就是“即插即用的车载配件”(如行车记录仪)。如果将所有驱动静态编译进内核镜像(vmlinux),会导致内核极其臃肿且每次修改代码都必须重启系统。.ko 机制允许将绝大多数硬件驱动独立编译,在运行时按需动态加载或卸载,极大提升了系统的灵活性和开发调试效率。

6.2.2 内部结构与依赖绑定

.ko 文件不仅仅是机器码的集合,它是一个结构精巧的容器。除了包含驱动的代码段、数据段外,它还包含了:

符号表与重定位信息:用于在加载时将驱动中的函数引用链接到真实的内核内存地址。

版本校验元数据:记录了该模块是为哪个特定版本的 Linux 内核编译的。这确保了驱动与当前运行的内核兼容,防止因数据结构变化导致内核崩溃(Kernel Panic)。

6.3. 生命周期映射

驱动程序的完整生命周期完全依托于 .ko 文件的加载与卸载机制来实现:

加载阶段:通过 insmod 或 modprobe 命令读取 .ko 文件,内核为其分配内存并进行地址重定位。随后自动执行由 module_init() 宏标记的初始化函数,完成设备号申请、中断注册及 /dev/ 节点创建等操作。

常驻运行阶段:初始化成功后,驱动代码驻留在内核全局地址空间,持续响应用户态的系统调用和硬件中断事件。

卸载销毁阶段:通过 rmmod 命令触发卸载,内核会检查模块的引用计数。若未被占用,则执行 module_exit() 标记的清理函数,反向释放所有申请的内存和设备资源,最后从内核链表中移除该模块。

6.4. 关键辨析:.ko 并不等同于驱动

在撰写技术文档时需特别注意:虽然绝大多数设备驱动以.ko形式存在,但.ko的应用范围远大于驱动。任何需要在运行时扩展内核功能的代码均可编译为 .ko 文件,例如特定的文件系统支持、网络协议栈扩展以及内核安全模块等。此外,部分核心驱动(如基础的进程调度、内存管理相关组件)会被直接静态编译进内核镜像中,而不生成独立的 .ko 文件。

7.最后的总结

本文档系统性地阐述了 Linux 操作系统从加电启动到用户空间服务管理的完整技术链路。首先,文档深入剖析了内核启动流程,重点解析了 initramfs(初始内存文件系统)作为衔接内核与真实根文件系统的“临时桥梁”所扮演的关键角色,以及通过 pivot_root 系统调用实现根文件系统切换的底层机制。在此基础上,文档对比了 GNU 核心工具集与 Arch Linux base 组合包的构成,并详细介绍了 cpio 归档格式在系统初始化镜像构建中的核心应用。
在服务管理领域,文档全景式地对比了 Linux 初始化系统(Init System)的演进历程。从传统的SysVinit到轻量级的OpenRCrunits6,再到现代主流的systemd,文档详细论述了各类管理器在架构设计、依赖处理、并行启动能力及资源占用方面的显著差异,为不同应用场景(如容器化、嵌入式及通用服务器)的技术选型提供了理论依据。
最后,文档厘清了 Linux 驱动开发中的核心概念,深刻揭示了驱动程序逻辑.ko(内核对象)文件之间的映射关系。通过解析模块的动态加载、符号重定位及生命周期管理机制,阐明了内核模块化设计如何实现系统功能的灵活扩展与解耦。本总结旨在为系统工程师与开发者构建一个从底层启动流程到上层服务管控的完整知识体系。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 09:42:21 HTTP/2.0 GET : https://f.mffb.com.cn/a/495150.html
  2. 运行时间 : 0.154344s [ 吞吐率:6.48req/s ] 内存消耗:4,672.26kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2b2f3a866205806d3b41db145410552f
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000368s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000572s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000284s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000253s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000517s ]
  6. SELECT * FROM `set` [ RunTime:0.000216s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000550s ]
  8. SELECT * FROM `article` WHERE `id` = 495150 LIMIT 1 [ RunTime:0.002188s ]
  9. UPDATE `article` SET `lasttime` = 1783042942 WHERE `id` = 495150 [ RunTime:0.023799s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000279s ]
  11. SELECT * FROM `article` WHERE `id` < 495150 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000529s ]
  12. SELECT * FROM `article` WHERE `id` > 495150 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004821s ]
  13. SELECT * FROM `article` WHERE `id` < 495150 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001019s ]
  14. SELECT * FROM `article` WHERE `id` < 495150 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.045633s ]
  15. SELECT * FROM `article` WHERE `id` < 495150 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006468s ]
0.155999s