当前位置:首页>鸿蒙APP>鸿蒙OS到底有没有 SELinux

鸿蒙OS到底有没有 SELinux

  • 2026-05-21 15:45:51
鸿蒙OS到底有没有 SELinux

在 HarmonyOS NEXT 的系统目录(如 /system/etc)下,依然保留了熟悉的 SELinux 配置文件,系统的「开放源代码许可」中也包含了 libselinux。这常常让人产生疑问:既然底座已切换为自研微内核,为什么还会存在典型的 Linux 安全模块痕迹?

解答这个问题的关键在于区分"策略配置"与"执行引擎"。配置文件的存在,是建立系统生态时为了二进制兼容所作的务实让步;但在内核层面,负责执行这套策略的早已不再是 Linux 的底层机制。这篇文章将梳理其中的技术演进逻辑。

HarmonyOS NEXT 的 /system/etc/selinux 目录真实存在,libselinux 也在许可列表里。但这套配置背后执行权限校验的不是 Linux 内核的 LSM 钩子,而是微内核基于 IPC 消息拦截的新引擎。原因很直接:NEXT 为了让底层 Native 组件和驱动低成本迁移,模拟出了 Linux 风格的 /proc 和 /sys 虚拟接口;既然给老代码留了这些入口,就必须用最成熟的 MAC 策略框架来给它们上锁——SELinux 的策略语言和工具链无需重造。但配置文件以下的一切,早已不是那套 Linux 机制。


为什么 /proc 和 /sys 要存在

NEXT 的内核换成了自研微内核。但在建立整个生态的过程中,如果要求开发者把海量的 Native 服务(C/C++ 编写的底层进程)全部推倒重来、重新学习一套完全陌生的接口,迁移代价和学习曲线将是不可接受的。业界过去习惯的行为模式通常包括:

  • 通过 cat /proc/meminfo 查系统内存
  • 通过 /sys/class/power_supply/*/capacity 查电量
  • 通过 /proc/net/ 读取网络状态

微内核本身不产生这些路径。真正的内核信息全部封装在 IPC 服务里。但为了让这些组件无需大规模改写就能运行,NEXT 提供了一个虚拟文件系统代理:客户端看到的是熟悉的路径,背后对接的是微内核的服务接口。

这是工程上最务实的选择,和 Fuchsia 提供 POSIX 兼容层的逻辑一样。2024 年发表在 OSDI'24 的论文《Microkernel Goes General》给出了一个侧面数据:手机场景下需要正确运行的驱动超过 700 个,而路由器只需不到 20 个;华为估算如果从头重写这批驱动需要超过 5,000 人年。这直接解释了为什么 HM 要提供 Linux 驱动容器(Driver Container)来复用现有驱动,而不是推倒重来。

代价是:引入了这些接口,就必须对它们做精细的权限隔离,否则任意进程都能通过 /proc 读到全系统状态。


为什么 SELinux 配置在这里

在 Linux 生态里,对 /proc 和 /sys 施加强制访问控制(MAC,Mandatory Access Control)最成熟的方案就是 SELinux。它的策略描述语言(.te 文件)、编译工具链(checkpolicy)和审计工具已经经过几十年打磨,华为的安全工程师也都熟悉这套流程。

从工程成本看,重新发明一套描述语言来定义"谁能访问谁"是纯粹的浪费。所以 NEXT 做了一个清醒的选择:

复用 SELinux 的策略描述标准(配置文件、语法、工具链),但替换掉执行引擎。

这就是为什么你能在 /system/etc/selinux 找到:

  • file_contexts
    :定义文件系统路径的安全标签
  • service_contexts
    :定义系统服务(Ability)的标签
  • 编译后的二进制策略文件(policy

以及为什么 libselinux 会出现在开放源代码许可里——华为用了这个库来加载和解析策略文件,而不是让 Linux 内核来执行它。


真正的区别:引擎换了

Linux 的做法:LSM 钩子

传统 Linux 中,SELinux 作为 LSM(Linux Security Module) 插件运行。内核源码的关键路径里——vfs_readvfs_writesocket_create——硬编码了大量 security_* 函数钩子。进程调用 open() 时,当前调用栈直接触发 SELinux 检查,在内核态同步查表,失败则拒绝系统调用。

这套机制深度耦合在宏内核里:安全模块和文件系统、网络栈、进程管理共享同一个地址空间。

NEXT 的做法:IPC 拦截

微内核的设计哲学是极致精简——内核只做最不可能出错的那几件事(IPC、调度、内存管理),把其余的逻辑推到用户态。

权限校验也是这样处理的:

  1. 进程 A 发起 Linux 系统调用(如 open()
  2. HM 的 ABI-compliant shim(ABI 兼容垫片)在内核空间拦截,将 syscall 重定向为一条 IPC 消息
  3. IPC 路径上的访问控制服务决定是否允许该请求
  4. 结果返回给调用方

其中一个关键细节:根据 OSDI'24 论文,ABI shim 实际上运行在 IC0(与核心内核同处内核空间,无地址空间切换开销),这是 HM 为了性能做的务实折衷——兼容层本身是受信任的基础设施,不需要和其他用户态服务一样被完全隔离。

同样值得关注的是 IPC 频率的量级。论文实测数据:智能手机场景下 IPC 平均频率约 41,000 次/秒,是路由器场景(600 次/秒)的约 70 倍。这解释了为什么把所有安全决策都放到用户态 Server 处理在手机上是一个严重的性能挑战,也是 HM 在架构上花了大量精力优化 IPC 路径的根本原因。


架构对比图

左侧:Linux 的 SELinux 拦截点在内核系统调用路径上,决策与执行发生在同一个内核地址空间。右侧:NEXT 的拦截点在 IPC 消息分发路径上,策略决策由用户态 Security Server 完成,配置文件格式相同,执行引擎完全不同。


访问控制的两个层次,别混淆

如果只看 SELinux,会低估 NEXT 安全架构的真实设计意图。这里需要区分两个经常被混淆的概念。

Address Token:内核对象的高性能共管机制

OSDI'24 论文里华为提出了 Address Token(地址令牌)这个概念,但它针对的不是应用层权限——而是内核内部的性能问题。

传统微内核用 Capability(能力令牌)管理内核对象(如页表):OS 服务每次访问都要通过内核查表,有不小的开销。HM 的方案是把内核对象所在的物理页直接映射到 OS 服务的地址空间里,用这个映射地址作为令牌,让 OS 服务可以直接读写,绕过内核介入。论文实测,匿名内存页错误处理速度因此从比 Linux 慢 3.4 倍降到接近 Linux 水平。

这是一个内核工程内部的性能优化,和应用申请相机权限是不同的事情。

应用层权限:AccessToken

HarmonyOS NEXT 的框架层有另一套针对应用的权限机制,通常被称为 AccessToken(访问令牌管理)。当一个应用申请相机、位置等权限时,系统校验的是应用的 AccessToken,而不是 SELinux 标签。SELinux 在这里只处理更底层的系统组件之间的 MAC 隔离。

层次
机制
主要保护对象
内核对象共管
Address Token(HM 内核创新)
页表、页缓存等内核对象的高效访问
系统组件隔离
SELinux 策略(复用配置标准)
Native 进程、驱动、系统二进制之间
应用权限
AccessToken
应用申请相机、位置、联系人等
硬件隔离
iTrustee + TrustZone
生物特征、密钥、支付环境

这个分层才是完整图景。


硬件地基与 TEE OS 的边界

在讨论系统安全架构时,TEE(可信执行环境)经常与 ARM 被结合在一起。理清硬件基础设施与操作系统实现之间的分工,有助于提供更准确的技术认知:

  • ARM TrustZone(硬件层):提供 CPU 级别的物理隔离,将算力状态划分为 Normal World 和 Secure World。它提供的是底层的内存保护机制和 SMC(Secure Monitor Call)指令切换,相当于构建了物理上的保险箱。
  • TEE 规范与 OS(软件层):TEE 是一套由 GlobalPlatform 制定的行业规范。但在硬件保险箱里具体运行什么系统,完全由底层软件开发商自己编写和实现。
  • HM 的安全实现:HarmonyOS NEXT 在 Secure World 里运行的是基于其微内核架构的 iTrustee OS。

微内核架构凭借极小的可信计算基(TCB),天然适合作为极高安全场景的底座。根据 OSDI'24 论文,HM 微内核本身通过了 CC EAL 6+(Common Criteria 评估保证级别 6+)认证,同时满足车规级 ASIL-D 功能安全要求。这是目前商用通用操作系统中极少能达成的认证高度,构成了其在智能汽车或金融级密码处理等场景下的核心信任层。


总结

看到 鸿蒙OS里有SELinux 并不奇怪。这是工程上有意为之的:

  1. 为了二进制兼容,NEXT 模拟出了 Linux 风格的 /proc 和 /sys 虚拟接口
  2. 为了给这些接口加锁,复用了 SELinux 成熟的策略描述标准和工具链
  3. 但执行引擎换掉了:从 Linux 内核的 LSM 钩子,变成了微内核用户态安全服务 + IPC 消息拦截

配置文件的存在是"表象层"的兼容性决策,执行引擎是"动力层"的架构演进。两件事不矛盾。

真正值得关注的问题不是"配置文件在不在",而是:在高频 IPC 环境下(手机场景 41k 次/秒),把策略决策移到用户态之后,整体性能代价有多大?

OSDI'24 论文给出了实测结果:通过 Differentiated Isolation Classes(IC0/IC1/IC2)和 Address Token 等机制,HM 在手机上实现了比 Linux 快 17% 的应用启动时间,减少 10% 的掉帧率。这些数字来自华为自测,独立复现尚无公开数据,但至少说明这个架构在几千万台生产设备上是可行的。


参考来源

  • Haibo Chen et al., Microkernel Goes General: Performance and Compatibility in the HongMeng Production Microkernel, OSDI'24, July 2024. https://www.usenix.org/conference/osdi24/presentation/chen-haibo

最新文章

随机文章

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