当前位置:首页>Linux>Linux从入门到进阶08:用户态与内核态的底层逻辑

Linux从入门到进阶08:用户态与内核态的底层逻辑

  • 2026-06-27 15:52:51
Linux从入门到进阶08:用户态与内核态的底层逻辑
很多同学用Linux写代码、敲命令、跑程序时,经常会存在这样的困惑:为什么自己编写的Linux程序无法直接读写硬盘,必须调用特定函数才能完成磁盘读写?为什么程序出现异常、崩溃报错时,只会单独终止自身运行,不会影响整个系统?为什么操作硬件设备、修改系统配置这类操作,都需要依靠专属函数才能实现?
所有问题的核心答案,都是Linux最核心、最基础的用户态与内核态的权限隔离机制,它是Linux保障系统安全、稳定运行的底层执行逻辑。也是我们后续学习系统调用、进程管理、驱动开发、服务器调优的技术前提,下面将从“核心本质、内存隔离、交互核心、状态切换”四个核心知识点来讲透Linux的用户态与内核态。

核心本质:两个状态,两套权限

用户态和内核态不是两个程序,也不是两个文件夹,它是CPU运行代码的两种特权状态。CPU在在硬件电路里内置了一套权限分级管控机制,用来从底层直接限制不同程序的操作权限,避免普通程序越权破坏系统核心资源。
以x86架构为例,它把CPU的运行状态从硬件上划分为Ring 0到Ring 3共4个特权环,数字越小权限越高:
‌Ring 0(最高权限)‌:专供操作系统内核运行,硬件允许它直接执行所有特权指令,如读写硬盘、修改内存页表、操控中断控制器。
‌Ring 1/Ring 2‌:最初设计给中间层驱动使用,现代主流操作系统基本闲置未启用。
‌Ring 3(最低权限)‌:普通应用程序只能运行在这一层,硬件直接拦截它执行修改控制寄存器、直接访问硬件外设这类特权操作,一旦越权就触发异常。
Linux 依托 CPU 硬件的特权级机制,将系统严格划分为两个隔离的运行空间:Linux 内核运行在 CPU Ring 0 最高特权层级,对应内核态;用户编写的所有应用程序统一运行在 CPU Ring 3 受限特权层级,对应用户态。
我们通过学校的计算机机房运维场景来进一步理解内核态和用户态,场景分为机房运维管理员、上机学生两类角色,设定运维管理员对应内核态权限,上机学生对应用户态权限。
运维管理员拥有机房全部最高权限:能进入设备机房、插拔服务器 / 交换机硬件、修改机房全局网络配置、格式化硬盘、调整整机系统底层参数,掌控机房所有软硬件资源。对应 Linux 中,内核态是系统最高特权级(CPU Ring0 级别),操作系统内核、硬件驱动都运行在此状态,可以直接操作硬盘、网卡、显卡等全部硬件,读写完整物理内存,执行所有 CPU 特权指令,修改系统底层核心配置,对整台计算机具有最高控制权。
上机学生仅能使用桌面软件、写代码、浏览网页、提交文件,无法进入设备机房,不能改动服务器、交换机,无权格式化磁盘、修改全局网络和系统底层设置,所有底层硬件操作都要通过机房运维管理员来操作。对应 Linux 中,我们编写的应用程序、执行的 Shell 命令、日常打开的各类软件,全部运行在用户态(CPU Ring3 级别),权限受到严格限制:不能直接操控硬件设备,不能读写内核专属内存区域,无法执行特权指令。
就像学生不能私自操作机房后端服务器与网络设备,Linux 所有应用程序天生 “无权无势”,但凡硬件级、系统级核心操作,都必须转交内核代为完成。这套软硬件资源隔离机制,核心目的就是保障系统安全、维持运行稳定。即便普通程序代码出错、运行崩溃,也只会自身进程终止,不会篡改系统底层核心资源,更不会造成系统崩溃。

内存隔离:井水不犯河水的地址空间

内核程序或者应用程序都需要在物理内存中运行,学过计算机基础知识的同学都知道,物理内存空间是一个完整的线性地址空间。CPU 直接访问内存条时使用的就是物理地址,整块物理内存连续编址,不存在天然的分区隔离。
这就好比机房没有任何权限隔离与区域划分,上机学生能直接访问服务器内存、修改其他同学正在运行的程序数据,甚至篡改操作系统底层数据,一旦代码出错、乱改内存数据,就会直接让系统崩溃,导致机房所有计算机出现问题。
这个问题如何解决呢,CPU 引入 MMU 内存管理单元,它在物理内存之上抽象出独立的虚拟地址空间。对于每一个进程,虚拟地址空间都会做分层划分:低地址区域是该进程私有用户空间,高地址区域是所有进程全局共享的内核空间。
运行在 Ring3 用户态的应用程序,仅能访问自身进程的用户虚拟地址段;一旦尝试读写内核地址段、或是其他进程的虚拟内存,MMU 会立刻触发硬件权限异常,系统直接终止违规进程。
而运行在 Ring0 内核态的操作系统内核、硬件驱动,则拥有完整虚拟地址访问权限,既能操作全局共享的内核虚拟空间,也能通过页表映射访问全部物理内存。

交互核心:系统调用

既然用户态权限有限、隔离严格,那我们的程序怎么读写文件、发送网络数据、打印日志?答案就是:系统调用(System Call)—— 用户态与内核态唯一合法的交互通道。
我们还是校园机房的场景来理解用户态和内核态的交互逻辑:上机学生对应用户态程序,硬盘、网卡、显示器、后台服务器等硬件对应机房核心设备,学生没有权限直接操作这些设备、但凡涉及硬件相关操作,都只能向拥有最高权限的机房管理员(内核)提交操作申请,由管理员代为完成底层执行,这套 “提交申请、代为执行硬件操作” 的完整流程,就是系统调用的本质。
举个简单的例子,当你在代码中写 printf("hello world") 时,看似一行简单的打印输出,程序的执行过程是依靠系统调用来完成的:
  1. 用户态程序执行到打印代码,识别出该操作需要操作打印机设备,但自身权限受限无法操作打印机设备;
  2. 程序发起系统调用,向内核提交 “将指定内容输出至打印机” 的请求;
  3. CPU 同步从受限的用户态切换至高特权内核态,内核接管任务,调用打印驱动完成内容输出;
  4. 打印任务执行完成后,CPU 切回用户态,应用程序恢复运行,继续执行后续代码。
我们结合下面这张状态切换示意图,进一步理解用户态和内核态的交互逻辑:
图中划分了两大运行环境:左侧是低特权级的用户态,右侧是拥有最高权限的内核态。
用户态对应机房里上机的学生、我们日常运行的各类应用程序,只能操作自身私有虚拟地址空间,既不能直接操作硬盘、打印机等硬件设备,也无法执行 CPU 特权指令;
内核态对应机房管理员,拥有完整权限,可以运行内核底层代码、访问全局内核地址空间、直接操控所有硬件资源。
正常情况下程序稳定运行在左侧用户态,一旦需要读写硬件、申请内存等特权操作,自身权限不足以完成任务,就会发起系统调用请求,触发 CPU 切换至高特权内核态,交给内核代为处理底层工作;等内核完成硬件操作、处理完任务后,会携带执行结果系统调用返回,CPU 切回用户态,应用程序继续运行后续代码。

状态切换

有了系统调用,就必然存在用户态到内核态、内核态到用户态的状态切换,整个状态切换过程遵循下面的步骤。以最典型场景:用户程序发起系统调用 → 切换内核态执行内核服务 → 执行完毕切回用户态为例进行讲解。

第1阶段:保护用户现场

用户应用程序在执行过程中发起系统调用,CPU 的控制权交给内核,内核在执行过程中,会修改 CPU 的内部寄存器。由于用户程序是被中途打断的,若不提前保存上下文,CPU 寄存器中存储的临时运行状态会丢失,程序将无法再正常运行。因此在 CPU 正式进入内核态、内核修改任何寄存器之前,硬件与操作系统内核会协同完成用户上下文现场的完整保存,将程序当前的程序计数器、栈指针、通用寄存器、状态标志、浮点扩展寄存器等全部运行快照存入进程专属 PCB 内核内存中。待内核完成对应处理工作后,会读取 PCB 中保存的上下文恢复全部寄存器环境,切回用户态,应用程序从断点处继续执行。
我们来看下面的代码段:
int sum = 0;for(int i = 0; i < 1000; i++){sum += i;read(0, buf, 10); // 发起系统调用,触发态切换}
当循环计算到 i=500 时执行 read,CPU 切内核态读取输入。
若不保存现场:i=500、sum 累加值、循环判断标志全部丢失,切回来循环直接乱掉,死循环或直接退出;
保存完整现场:内核执行完 read,恢复 i、sum、寄存器状态,循环从 i=500 正常继续。

第2阶段:特权级切换

特权级是 CPU 内部硬件级安全隔离标记,存储在 CPU内部专用状态寄存器内,CPU 依据该寄存器记录的当前特权等级,判断当前程序是否可以执行特权指令。。
用户应用程序在系统调用前会执行触发切换指令,这条指令是硬件预留的唯一合法提权入口,用户态代码只能发起请求,没有直接修改特权位的能力。CPU 硬件电路捕获这条专用指令,进入硬件内置的切换流水线,全程硬件自动执行,硬件自行改写 CPU 专用状态寄存器(CS/DPL、CPSR 等)中的特权级标识位,把运行等级从用户态改为内核高特权。

第3阶段:内核处理系统调用请求

内核读取用户态传入参数(文件读写、网络收发、内存申请等请求参数),执行对应内核服务函数,运算完成后,将将返回结果存入约定寄存器。

第4阶段:恢复用户现场,切回用户态

内核从 PCB 中读取此前完整保存的用户现场,用汇编指令逐一把寄存器写回 CPU,执行系统返回指令,硬件自动完成降权操作,执行完成后,CPU 回到用户态,应用程序继续运行。

状态切换实例讲解

以 Linux + x86_64 架构为例,应用程序执行代码:
#includechar buf[128];intmain(){// 从标准输入读取数据,触发read系统调用read(0, buf, 10);return 0;}
阶段 1:调用前状态(CPU 用户态 Ring3,低特权级)
程序执行至 read(0, buf, 10),此时 CPU 运行在用户低特权级:
1、代码库封装 read() 为系统调用封装函数;
2、最终会执行 x86_64 专属特权切换指令 syscall,发起系统调用请求。
阶段 2:syscall 硬件捕获 & 自动上下文保存
CPU 硬件电路捕获 syscall 指令,启动硬件流水线处理;
关键约束:硬件修改特权位、修改寄存器之前,全程由硬件自动完成快照保存,内核软件无法干预
硬件自动存入当前进程 PCB 对应的内核栈,保存上下文快照:
  • 当前指令断点:RIP
  • 运算状态标志:RFLAGS
  • 用户态栈指针:用户栈 RSP
阶段 3:硬件完成特权切换,进入内核态(Ring0 高特权)
硬件流水线自动执行以下切换动作,内核无手动修改特权标记的能力:
1、栈切换:从进程用户栈 → 独立内核栈;
2、权限放开:解除硬件访问限制,CPU 获得全部特权指令执行权限;
3、状态变更:正式进入内核态。
阶段 4:内核业务逻辑处理
内核完成 read 对应 IO 读取逻辑,填充缓冲区,将读取字节数存入返回寄存器 RAX。
阶段 5:系统调用返回,上下文还原 + sysret 切回用户态
内核处理完成后执行退出流程:
1、上下文恢复:从当前进程 PCB 中读取硬件预先保存的完整用户上下文;
2、寄存器还原:汇编指令逐次恢复通用寄存器、浮点寄存器、RFLAGS、用户栈 RSP,完全复原调用 read 前现场;
3、执行返回指令:sysret(x86_64 专属返回指令);
4、硬件自动降权:sysret 触发硬件电路降级特权,CPU 切回用户态;
5、指令跳转:跳回 read() 调用语句的下一行 C 代码。
阶段 6:回到应用程序继续运行
用户程序读取 RAX 中存放的系统调用返回值(实际读取到的字符数量),执行后续业务逻辑。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:29:40 HTTP/2.0 GET : https://f.mffb.com.cn/a/500574.html
  2. 运行时间 : 0.124391s [ 吞吐率:8.04req/s ] 内存消耗:4,668.63kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=dd201a5c1811ab59139813cef4593e36
  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.000639s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000759s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000662s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002877s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000560s ]
  6. SELECT * FROM `set` [ RunTime:0.000199s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000557s ]
  8. SELECT * FROM `article` WHERE `id` = 500574 LIMIT 1 [ RunTime:0.004561s ]
  9. UPDATE `article` SET `lasttime` = 1783016980 WHERE `id` = 500574 [ RunTime:0.010339s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001177s ]
  11. SELECT * FROM `article` WHERE `id` < 500574 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000485s ]
  12. SELECT * FROM `article` WHERE `id` > 500574 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002489s ]
  13. SELECT * FROM `article` WHERE `id` < 500574 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000702s ]
  14. SELECT * FROM `article` WHERE `id` < 500574 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002615s ]
  15. SELECT * FROM `article` WHERE `id` < 500574 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.029094s ]
0.125969s