如何在根级别的 FreeBSD 内核中生成随机数?
How to generate random number within kernel of FreeBSD at root level?
对于我的操作系统课程,我实现了彩票调度算法,而不是已经为 FreeBSD 提供的算法。
为了实现彩票调度,我必须能够使用随机数。但是,我不能在 FreeBSD 内核中使用 C 标准库(使用 rand 函数)。 `
我正在从 /sys/kern
中的根目录(sched_ule.c
和 kern_switch.c
)修改两个 .c
文件,并尝试在 sched_ule.c
文件中创建随机变量使用 random.h
即 /sys/sys
截至目前,我希望在 运行 make buildkernel
并重新启动后,再向前迈出一小步并获得要打印的随机数。
- 实现你自己的伪随机数生成器。 C Rand 不会生成安全随机性,因此您也可以这样做。
- 如果你在 post-ivybridge intel-x86 上,你可以只执行 rdrand(这是一个 hack,但可以正常工作)。我怀疑其他拱门也有类似的指令或机制。
- 使用 FreeBSD 的随机函数。它几乎肯定有一个随机提取器实现。
对于我的操作系统课程,我实现了彩票调度算法,而不是已经为 FreeBSD 提供的算法。
为了实现彩票调度,我必须能够使用随机数。但是,我不能在 FreeBSD 内核中使用 C 标准库(使用 rand 函数)。 `
我正在从 /sys/kern
中的根目录(sched_ule.c
和 kern_switch.c
)修改两个 .c
文件,并尝试在 sched_ule.c
文件中创建随机变量使用 random.h
即 /sys/sys
截至目前,我希望在 运行 make buildkernel
并重新启动后,再向前迈出一小步并获得要打印的随机数。
- 实现你自己的伪随机数生成器。 C Rand 不会生成安全随机性,因此您也可以这样做。
- 如果你在 post-ivybridge intel-x86 上,你可以只执行 rdrand(这是一个 hack,但可以正常工作)。我怀疑其他拱门也有类似的指令或机制。
- 使用 FreeBSD 的随机函数。它几乎肯定有一个随机提取器实现。