红毛樱木 发表于 2017-12-12 11:19:17

请问grub4dos可以读取CPU核心数(或者线程数)吗?

可以读取CPU核心数(或者线程数)吗?

不点 发表于 2017-12-12 12:50:13

自己写几句汇编代码搞定吧。你需要研究一些相关指令。参考一下 Intel 的说明书。

grub4dos 启动后,已经保存了 cpuid 的一些结果到内存某个固定地址处。你看看源代码就知道了。我不知道你要的结果是否已经在里面了。如果没有的话,你可以帮助改进一下。或者你自己写个 grub4dos 的应用程序,只管自己用就行。

pseudo 发表于 2017-12-12 13:22:01

本帖最后由 pseudo 于 2017-12-12 13:23 编辑

不知道现在g4d在这方面有什么增强。

我曾经写了个外部命令CPUID,判断CPU是否有多核,用法大致是:

#以文件CPUID位于ud根目录为例
(ud)/CPUID || echo -n
checkrange 2:15 read 0x60000 && echo 多核
checkrange 2:15 read 0x60000 || echo 非多核

上述非多核含罕见的多CPU但每个CPU单核情形。不过一般多CPU情形,每个CPU会是多核的。
CPUID在0PE的0PENB.LZMA里带有。

不点 发表于 2017-12-12 19:42:58

pseudo 发表于 2017-12-12 13:22
不知道现在g4d在这方面有什么增强。

我曾经写了个外部命令CPUID,判断CPU是否有多核,用法大致是:


如果可能的话,你可以帮助改进一下 grub4dos。

目前 grub4dos 将 cpu 信息保存在内存地址 3M 之上的某个区域。如果你增强的话,可以保存在相同的区域(或靠近的地址处)。

改进之后的好处是,你不必把 cpuid 信息保存在 0x60000 处了。此处是公共区域,别的软件也可能占用这个区域,因此容易发生 “共用区域” 的冲突。

也就是说,你提交补丁,改进之后,就更方便、更安全了。
页: [1]
查看完整版本: 请问grub4dos可以读取CPU核心数(或者线程数)吗?