如何在 FreeBSD 内核中生成根级别的随机数



对于我的操作系统课程,我实现了彩票调度算法,而不是已经为 FreeBSD 给出的算法。

为了实现彩票调度,我必须能够使用随机数。但是, 我不能在 FreeBSD 的内核中使用 C 标准库 (使用 rand 函数(。`

我正在修改/sys/kern中的根(sched_ule.ckern_switch.c(的两个.c文件,并尝试使用/sys/sys中的random.h sched_ule.c文件中的随机变量

截至目前,我希望在运行make buildkernel并重新启动后迈出一小步并打印出随机数。

  1. 实现你自己的伪RNG。C Rand 不会生成安全的随机性,因此您也可以这样做。
  2. 如果您使用的是后常春藤桥英特尔-x86,则可以执行rdrand(这是一个黑客,但可以正常工作(。我怀疑其他拱门也有类似的指令或机制。
  3. 使用 FreeBSD 的随机性函数。它几乎可以肯定有一个随机性提取器实现。

最新更新