【问题标题】:How to generate random number within kernel of FreeBSD at root level?如何在根级别的 FreeBSD 内核中生成随机数?
【发布时间】:2019-06-27 23:00:14
【问题描述】:

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

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

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

到目前为止,我希望能在运行make buildkernel 并重新启动后小步打印出随机数。

【问题讨论】:

    标签: operating-system kernel freebsd


    【解决方案1】:
    1. 实现您自己的伪 RNG。 C Rand 不会产生安全随机性,因此您也可以这样做。
    2. 如果您使用的是 post-ivybridge intel-x86,您可以只执行 rdrand(这是一个 hack,但可以正常工作)。我怀疑其他拱门也有类似的指令或机制。
    3. 使用 FreeBSD 的随机函数。它几乎肯定有一个随机抽取器实现。

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 2013-09-01
      • 2019-08-12
      • 1970-01-01
      • 2010-09-23
      相关资源
      最近更新 更多