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

Operating system 如何在根级别的FreeBSD内核中生成随机数?,operating-system,kernel,freebsd,Operating System,Kernel,Freebsd,在我的操作系统课程中,我实现了彩票调度算法,而不是FreeBSD已经给出的算法 为了实现彩票调度,我必须能够使用随机数。然而,我不能在FreeBSD内核中使用C标准库(使用rand函数) 我正在从根目录(sched_ule.c和kern_switch.c)修改/sys/kern中的两个.c文件,并尝试使用/sys/code>中的random.h在sched_ule.c文件中创建随机变量 到目前为止,我希望在运行makebuildkernel并重新启动后,迈出一小步,打印出随机数 实现您自己的伪R

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

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

我正在从根目录(
sched_ule.c
kern_switch.c
)修改
/sys/kern
中的两个
.c
文件,并尝试使用
/sys/code>中的
random.h
sched_ule.c
文件中创建随机变量

到目前为止,我希望在运行
makebuildkernel
并重新启动后,迈出一小步,打印出随机数

  • 实现您自己的伪RNG。C Rand不会生成安全随机性,因此您也可以这样做
  • 如果您使用的是post-ivybridge intel-x86,您可以只执行rdrand(这是一种黑客攻击,但可以正常工作)。我怀疑其他执政官也有类似的指示或机制
  • 使用FreeBSD的随机函数。它几乎肯定有一个随机性提取器实现