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

时间:2019-02-04 08:05:26

标签: operating-system kernel freebsd

在我的操作系统课程中,我实施彩票调度算法,而不是为FreeBSD提供的算法。

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

我正在从.c中的根(sched_ule.ckern_switch.c)修改两个/sys/kern文件,并尝试使用{ sched_ule.c

中的{1}}

到目前为止,我希望在运行random.h并重新启动后,迈出一步来获得随机数以打印出来。

1 个答案:

答案 0 :(得分:0)

  1. 实施您自己的伪RNG。 C Rand不会生成安全随机性,因此您可以这样做。
  2. 如果您使用的是ivybridge后的intel-x86,则只需执行rdrand(这是一个hack,但可以正常工作)。我怀疑其他拱门也有类似的说明或机制。
  3. 使用FreeBSD的随机性功能。几乎可以肯定,它具有随机性提取器实现。