ACPI 中的全局变量存储

Global variable storage in ACPI

ACPI 命名空间中的全局变量存储在 RAM 中的什么位置?该区域是否由 BIOS 保留?请参见下面的示例:

Scope (_SB.PC00.LPCB.XYZ_)
{
    Device (ABCD)
    {
        Name (VAR1, "foo")
        Method (BAR_)
        {
            VAR1 = "bar"
        }
    }
}

VAR1最终存储在哪里,因为我们没有为这个变量手动定义内存操作区域?

Where are the global variables in an ACPI namespace stored in RAM?

这取决于 AML 解释器和 OS。对于单体内核,ACPI 全局命名空间的任何索引(例如用于从其名称中查找对象的散列 table)、变量的元数据(名称、对象类型)和变量的值都可能最终都在内核堆(在由内核内存管理提供的某种 kmalloc() 分配的内存中)。