【问题标题】:What does 'userland' mean in the PHP manual?PHP手册中的'userland'是什么意思?
【发布时间】:2023-12-31 12:14:01
【问题描述】:

我正在浏览 PHP 手册,并多次找到“用户空间”这个词。这通常是什么意思?我在this 页面找到它;我认为是源代码本身,但我不确定。

来自 PHP 手册:

在调试环境中执行时,使用 --enable-debug 配置,下一个示例中使用的泄漏函数实际上是由引擎实现的,并且可以在用户空间中调用。

【问题讨论】:

    标签: php


    【解决方案1】:

    由于这个问题还没有正确答案(尽管选择了一个答案),我会继续回答这个问题。

    PHP 核心开发团队在提到 PHP 时主要有以下三个区别:

    1. PHP 核心。这是指支持 PHP 的 Zend 引擎。它执行诸如标记用户空间代码、处理内存管理、处理内置关键字(if-else、while、isset 等)等事情。最后一点就是为什么内置函数比函数调用快很多倍。 PHP核心一般不做的是实现substr()、fopen()等函数,留给...

    2. PHP 扩展。这指的是大部分 PHP 源代码,但也包括 PECL 扩展和其他用 C(有时是 C++)编写的 PHP 扩展。 PHP 始终可用的所有核心函数和类实际上都在扩展中实现,其中最大的扩展是“ext/standard”。

    3. PHP 用户空间。这是指 PHP 用户通常使用各种 PHP 扩展和核心编写的代码。

    当您看到短语“纯 PHP 用户空间”通常是指某人编写的 PHP 用户空间库时,它们通常表示不依赖于 PHP 内置插件之外的任何内容,这些扩展可能无法编译或在主机,或不在 PHP 生态系统中的外部软件。

    使用这些短语中的任何一个都可能表明该人倾向于潜伏在PHP internals mailing list 上。大多数 PHP 开发人员都是用户级开发人员,几乎不了解 PHP 本身的内部工作原理。

    【讨论】:

      【解决方案2】:

      这不是 PHP 术语,而是通用计算术语:

      术语用户空间(或用户空间)是指在操作系统内核之外运行的所有代码。

      https://en.wikipedia.org/wiki/User_space

      【讨论】:

      • 虽然 userland 是一个通用术语,但由于 PHP 的全局命名空间,其中应用程序代码标识符(用户域)可能与语言自身的标识符发生冲突,因此它在 PHP 中似乎确实具有特定含义.有一个guide 来帮助防止这种情况发生,并且引入了namespaces 来帮助解决这个问题。
      最近更新 更多