如何以编程方式告诉Linux处于PAE或非PAE模式?

Joh*_*ene 5 memory kernel memory-management cpu-architecture linux-kernel

需要创建一个脚本来检查内核是否处于PAE模式.当然,仅检查/ proc/cpuinfo标志是否具有此"pae"设置是不够的.

我们必须知道PAE机制是否实际上不仅实现了,而且还被激活.

因为PAE内核现在是新的默认值,如果你需要一个非PAE内核,那么现在必须创建另一个内核.

  1. 换句话说,我们如何判断内核在具有PAE的CPU上是否是非PAE(是测试的两个可能条件之一).

  2. 另一个是,如何在没有PAE支持的CPU上判断内核是否为PAE.

并且没有办法判断在典型的安全内核中是否使用了CONFIG_HIGHMEM或CONFIG_PAE内核配置选项.

Ale*_*nze 1

一种方法是读取 CR4 寄存器并查看第 5 位。PAE 为 1,无 PAE 为 0。您可以在内核中运行的某些代码(例如内核驱动程序)中读取该寄存器。您也许可以为此目的编写一个小型驱动程序。应该不会很复杂。