当前位置:首页>Linux>Linux内核模块高频10道面试题(含答案)

Linux内核模块高频10道面试题(含答案)

  • 2026-07-02 16:30:59
Linux内核模块高频10道面试题(含答案)
Hello,大家好,我是程序媛MM。

本文约3300字,上一篇我们学习了《Linux内核模块完整技术详解:原理、工具、选型(内置vs模块)》,本文整理了十道高频面试题,复习学过的内容

关注公众号, 即可获得与Linux相关的电子书籍(含《深入Linux内核架构》中文版Linux设备驱动开发详解基于最新的Linux4.0内核)以及常用开发工具,文末有文档清单。


前言

内核模块是Linux驱动面试必考核心考点,覆盖基础概念、用户态工具、内核底层原理、编译选型、GPL许可证、故障排查、版本校验、自动加载等维度,兼顾校招基础题与社招深度底层题,适合面试前集中背诵复习。

题目1:简述LKM内核模块与静态内置(build-in)的区别,分别说明适用场景

参考答案

一、核心区别

  1. 加载方式:内置编译进vmlinux内核镜像,开机永久加载;模块生成独立.ko文件,运行时动态加载、无引用可卸载。
  2. 内存占用:内置全程常驻内存,无法释放;模块不用时可卸载回收内存,通用系统节省资源。
  3. 版本校验:内置和内核一体,无兼容校验;模块携带vermagic魔数、符号CRC,内核配置不匹配直接加载失败。
  4. 迭代成本:修改内置功能必须完整重编内核、重启机器;模块仅单独编译,热更新无需重启。
  5. 依赖机制:内置编译时静态链接,无运行时依赖报错;模块运行时解析依赖,缺少前置模块会加载失败。
  6. 安全特性:极简系统可关闭CONFIG_MODULES彻底禁用动态模块,消除攻击面;模块存在动态加载攻击风险。

二、适用场景

  1. 必须内置(Y)根文件系统存储驱动(NVMe/SATA/MMC)、基础文件系统ext4、串口控制台、内核基础调度/内存子系统、安全工控固件、无文件系统微型嵌入式、硬实时业务驱动。
  2. 推荐编译为模块(M)USB/声卡/显卡等热插拔外设、小众文件系统NTFS/VFAT、实验调试驱动、第三方闭源硬件驱动、服务器低频功能(RAID/Netfilter扩展)、通用发行版海量硬件兼容。

题目2:insmod、rmmod、modprobe三者作用与本质差异是什么?depmod工具的作用?

参考答案

  1. insmod:底层直接调用init_module系统调用,仅加载单个.ko文件;不会自动解析依赖,依赖模块未提前加载则直接报错,需要传入完整文件路径。
  2. rmmod:调用delete_module系统调用卸载指定模块;若存在其他模块依赖、设备占用资源则卸载失败。
  3. modprobe:上层封装工具,自动读取依赖文件modules.dep,递归加载目标模块所有前置依赖;支持按模块名加载(无需完整路径),modprobe -r可批量卸载依赖模块。
  4. depmod:内核升级/新增模块后必须执行,扫描所有.ko文件,生成两份关键文件:
    • modules.dep:记录每个模块的依赖列表;
    • modules.alias:根据MODULE_DEVICE_TABLE生成设备匹配别名,为udev自动加载提供匹配规则。

题目3:内核如何实现模块自动加载?简述kmod机制完整流程

参考答案

自动加载核心依靠内核request_module函数 + 用户态modprobe协作,整体流程:

  1. 内核运行时发现缺失功能:比如挂载vfat分区无对应驱动、热插拔USB设备无匹配驱动,调用request_module(模块标识)
  2. 内核通过call_usermodehelper创建用户态辅助进程,默认执行/sbin/modprobe
  3. modprobe读取modules.alias匹配设备MODALIAS或功能别名,再读取modules.dep加载全部依赖模块;
  4. 模块加载完成后,内核重试对应操作(挂载文件系统、初始化设备);
  5. 拓展:udev热插拔复用该机制,内核上报uevent事件携带MODALIAS,udev调用modprobe完成驱动自动匹配。

题目4:EXPORT_SYMBOLEXPORT_SYMBOL_GPL区别?闭源模块调用GPL导出符号会有什么后果?规避方案与法律风险

参考答案

  1. 两者核心区别
  • EXPORT_SYMBOL():导出的符号所有模块均可调用,无许可证限制;
  • EXPORT_SYMBOL_GPL():仅声明GPL兼容许可证(MODULE_LICENSE="GPL")的模块能够访问。
  1. 闭源专有模块调用GPL符号的后果 模块加载失败,同时内核打上TAINT_PROPRIETARY_MODULE污染标记;内核panic、oops日志会标注内核被闭源模块污染,内核社区不受理此类系统bug反馈。

  2. 行业规避方案与风险 方案:编写一层GPL开源中间wrapper模块,wrapper调用内核GPL符号,再用普通EXPORT_SYMBOL导出接口给闭源模块调用。 法律风险:Linux创始人Linus明确指出,该行为属于蓄意规避GPL协议约束,存在版权侵权、民事赔偿、禁令诉讼风险,企业不推荐使用。

题目5:加载模块时内核如何解析未定义符号?MODVERSIONS与vermagic分别是什么作用?

参考答案

1. 未定义符号解析流程

  1. load_module解析ELF符号表,识别SHN_UNDEF未定义符号;
  2. __find_symbol按优先级检索符号:内核全局符号表 → 已加载普通模块符号 → GPL专属符号;
  3. 开启MODVERSIONS时,check_version对比符号CRC校验和,接口不一致直接拒绝加载;
  4. 若符号来自其他模块,调用use_module建立双向依赖链表,增加被依赖模块引用计数。

2. vermagic版本魔数

存放在模块.modinfo段,字符串包含内核版本、SMP开关、抢占配置、CPU架构、编译器版本;模块魔数和当前内核不匹配直接拦截加载,防止架构/配置不一致导致内核崩溃。

3. MODVERSIONS符号版本校验

编译阶段genksyms工具为每个导出函数生成唯一CRC校验和,写入__versions段;加载时对比模块与内核符号CRC,只要函数参数/结构体定义发生变更,CRC就会改变,阻止不兼容模块加载。

题目6:写出极简可运行内核模块必备代码组件,说明__init__exit宏作用

参考答案

  1. 必备4个核心组件,缺一不可: ① module_init(xxx_init):模块加载入口初始化函数; ② module_exit(xxx_exit):模块卸载资源清理函数; ③ MODULE_LICENSE():许可证声明,缺失会污染内核; ④ 头文件<linux/init.h><linux/module.h>

  2. __init作用 将函数放入.init.text段,模块初始化完成后内核自动回收该段内存,节省常驻空间;若代码内置进内核,系统启动后直接丢弃。

  3. __exit作用 仅模块编译时生效,函数放入.exit.text;若代码静态内置,链接器直接丢弃该段,无需清理逻辑。

极简示例代码:

#include<linux/init.h>#include<linux/module.h>staticint __init hello_init(void){    printk(KERN_INFO "模块加载成功\n");return0;}module_init(hello_init);staticvoid __exit hello_exit(void){    printk(KERN_INFO "模块卸载成功\n");}module_exit(hello_exit);MODULE_LICENSE("GPL v2");MODULE_AUTHOR("求职者");MODULE_DESCRIPTION("面试Demo模块");

题目7:执行rmmod提示module is in use模块无法卸载,列举3类高频原因与排查方法

参考答案

原因1:存在其他模块依赖当前模块

  • 排查:lsmod | grep 模块名查看Used by字段,显示依赖的模块列表;
  • 解决:先卸载所有依赖该模块的子模块,再卸载目标模块。

原因2:用户态持有模块对应设备/文件资源

场景:挂载vfat分区、打开设备驱动文件、程序占用字符设备;

  • 排查:lsof /dev/xxx、查看挂载表mount
  • 解决:umount分区、关闭占用设备的进程。

原因3:内核内部持有模块引用计数

场景:代码遗漏module_put、未注销定时器/工作队列/内核线程、设备owner指针未释放;

  • 排查:查看/sys/module/xxx/refcnt引用计数值,打印dmesg内核日志;
  • 解决:修复驱动,卸载前销毁所有内核异步资源、成对使用try_module_get/module_put

题目8:模块.ko是ELF文件,列举模块特有的ELF段及各自作用

参考答案

  1. .gnu.linkonce.this_module:存储struct module结构体实例,内核识别合法内核模块的唯一标识,缺失则拒绝加载;
  2. .modinfo:存放模块元数据,包含许可证、vermagic、依赖列表、模块别名、参数,modinfo工具读取该段;
  3. __ksymtab / __ksymtab_gpl:普通/GPL导出符号表,记录函数名称与内存地址;
  4. __kcrctab / __versions:存储符号CRC校验和,用于MODVERSIONS版本校验;
  5. .init.text / .exit.text:初始化、卸载独立代码段,按需释放;
  6. __param:模块启动参数元数据,支持加载时传参。

题目9:内核用什么数据结构管理已加载模块?模块间依赖关系如何维护?

参考答案

  1. 核心数据结构struct module每个加载的模块对应一个实例,核心成员:
  • state:模块状态(加载中COMING/正常LIVE/卸载中GOING);
  • syms/gpl_syms:普通、GPL导出符号数组;
  • modules_which_use_me:链表头,记录所有依赖当前模块的其他模块;
  • ref:多核独立引用计数,由try_module_get/module_put维护;
  • init/core:初始化段、核心段内存地址。
  1. 模块依赖维护逻辑 辅助结构体struct module_use建立双向关联:
  • 若模块B依赖模块A,内核创建module_use节点;
  • 节点module_which_uses指向B,挂载到A的modules_which_use_me链表;
  • 卸载A前内核遍历该链表,若链表非空说明仍有模块依赖,直接拒绝卸载。

题目10:模块参数如何定义?加载时传参两种方式,参数在用户态的查看入口

参考答案

  1. 定义模块参数核心宏
  • module_param(变量名, 类型, 权限):基础单参数;
  • module_param_array(数组名, 类型, 长度指针, 权限):数组参数; 支持类型:int、charp(字符串)、bool、ulong等。

示例:

staticchar *dev_name = "default";module_param(dev_name, charp, S_IRUGO); // 只读权限
  1. 两种加载传参方式 ① 手动加载:insmod demo.ko dev_name="usb0"; ② 内置模块:内核启动cmdline传入demo.dev_name="usb0"

  2. 用户态查看入口 模块加载后在/sys/module/模块名/parameters/生成对应文件,cat文件即可读取当前参数值;权限为0则不生成sysfs节点。

刷题小贴士

  1. 校招侧重1、2、6、10基础实操、手写代码;
  2. 社招驱动岗重点3、4、5、8、9底层原理、故障、法律GPL问题;
  3. 面试答题逻辑:先讲概念→再讲流程/结构→最后举工程场景,更容易拿高分。
往期文章(欢迎订阅技术分享栏目全部文章):

【从零开始撸内核驱动源码】:以ttyserial(串口驱动)为例,串联字符设备驱动基础知识点的学习计划
Linux内核源码顶层 Makefile分析并单独编译调试内核自带的驱动
【从零开始撸内核驱动源码】:ttynull驱动
Linux内核驱动安装失败问题调试及解决方法
Linux内核驱动源码走读之编译内核及外部驱动实操指南
谢谢你看到这里

这里是女程序员的笔记本

 15年+嵌入式软件工程师兼二胎宝妈

分享读书心得、工作经验,自我成长和生活方式。

希望我的文字能对你有所帮助

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-02 21:58:47 HTTP/2.0 GET : https://f.mffb.com.cn/a/502931.html
  2. 运行时间 : 0.462893s [ 吞吐率:2.16req/s ] 内存消耗:4,397.32kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=cd80bba6641b76109455c19c9292104c
  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.000978s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001373s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004269s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000961s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001434s ]
  6. SELECT * FROM `set` [ RunTime:0.010338s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001431s ]
  8. SELECT * FROM `article` WHERE `id` = 502931 LIMIT 1 [ RunTime:0.025570s ]
  9. UPDATE `article` SET `lasttime` = 1783000728 WHERE `id` = 502931 [ RunTime:0.063868s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.006005s ]
  11. SELECT * FROM `article` WHERE `id` < 502931 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.036381s ]
  12. SELECT * FROM `article` WHERE `id` > 502931 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.011065s ]
  13. SELECT * FROM `article` WHERE `id` < 502931 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.038438s ]
  14. SELECT * FROM `article` WHERE `id` < 502931 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006393s ]
  15. SELECT * FROM `article` WHERE `id` < 502931 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018008s ]
0.468415s