无忧启动论坛

标题: 请问grub4dos可以读取CPU核心数(或者线程数)吗? [打印本页]

作者: 红毛樱木    时间: 2017-12-12 11:19
标题: 请问grub4dos可以读取CPU核心数(或者线程数)吗?
可以读取CPU核心数(或者线程数)吗?
作者: 不点    时间: 2017-12-12 12:50
自己写几句汇编代码搞定吧。你需要研究一些相关指令。参考一下 Intel 的说明书。

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

作者: pseudo    时间: 2017-12-12 13:22
本帖最后由 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
pseudo 发表于 2017-12-12 13:22
不知道现在g4d在这方面有什么增强。

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

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

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

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

也就是说,你提交补丁,改进之后,就更方便、更安全了。





欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3