小编Acc*_*orm的帖子

什么程序正在降低我的熵池水平?

我制作了一个简单的 bash 脚本,用于检查 /dev/random 中的熵池级别。我意识到我这样做的方式,我在每次检查时稍微降低它(cat /proc/sys/kernel/random/entropy_avail)但是因为我以每 2 秒一次的频率检查它的水平,它已经足够了完全恢复甚至增加的时间。我进行了 1 小时 40 分钟的测量。与此同时,我没有做任何我认为会降低熵的事情(比如创建 SSH 密钥等)。但是我被告知(在 IRC 上)连接到 Internet 的简单事实可能会降低我的熵,因此我在完全与网络断开连接的笔记本电脑上重复了该实验,并且出现了完全相同的行为。

我不知道哪个程序正在降低池中的熵。我在断开连接的笔记本电脑上安装了非常少的 arch linux(总共安装了 646 个软件包),而我在测量期间连接到 Internet 的主笔记本电脑正在运行 gentoo,其中安装了大约 800 个软件包,并且没有在后台运行特定程序,除了“默认”的。我在两台机器上都安装了 DE(xfce)。这是数据的情节: 熵池水平与时间

编辑:这是我的无互联网笔记本电脑的数据: 笔记本电脑上的熵池水平

Edit2:禁用 ASLR(使用 grub 启动时添加了 norandmaps 内核参数)仍然会产生相同的行为,因此 ASLR 不是罪魁祸首。另一个显示禁用 ASLR 的数据的图: 使用 norandmaps 内核参数,行为相同

编辑 3:显然我的问题是这个问题的重复。我遵循了作为公认答案给出的命令,即sudo perf record -e random:\* -g -a -D 1000 -T sleep 60perf script。输出文件很大(4.4 Mb 的文本数据),这是前几行:

 交换器 0 [000] 3491.433002:随机:mix_pool_bytes_nolock:ffffffff8173e956 池:字节 16 调用方 add_interrupt_randomness
              5ea5d9 __mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              5ec601 add_interrupt_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux)
              2d5729 …

random linux-kernel

14
推荐指数
1
解决办法
613
查看次数

/dev/random 中的低熵是不是很糟糕?

我想知道对于普通 Linux 用户来说,从安全性或任何其他相关观点来看,在 /dev/random 中没有或几乎没有熵是否被认为是不好的。

编辑:我不需要生成随机数(我会使用 /dev/urandom 甚至密码生成和磁盘加密)。只是为了好玩,我有一个 bash 脚本,它可以从 /dev/random 生成随机字符的字符串,当然,在玩了一会儿之后,我在 /dev/random 中没有熵并且它会阻塞。在 IRC 上,有人告诉我这样做“不好”,但没有给我任何理由。是不是因为普通 Linux 用户会使用 /dev/random 自动生成随机内容?如果是,涉及哪些程序?

我也明白在 /dev/random 中没有熵会使数字的生成具有确定性。但同样,我的计算机(普通 Linux 用户)是否需要真正的随机数?

编辑 2:我刚刚在大约 3 分钟内每秒监视 /dev/random 中的熵级别,在那里我启动了我的 bash 脚本,该脚本使用熵在监视开始时生成一串随机字符。我做了一个阴谋。我们确实可以看到,熵水平以某种方式振荡,所以我电脑上的一些程序正在使用 /dev/random 来生成东西。有没有办法可以使用文件 /dev/random 列出所有程序? 熵水平 vs 时间

我们还可以看到,一旦熵池被清空,产生“可接受水平”的熵只需要不到一分钟的时间。

linux random

7
推荐指数
1
解决办法
6417
查看次数

/proc/cpuinfo 中显示的频率是多少?

我有一个带超线程的四核 CPU(酷睿 i7 7700)。

cat /proc/cpuinfo | grep MHz
Run Code Online (Sandbox Code Playgroud)

返回 8 个不同的频率,其中一些频率不重复(例如我可以获得 3914.208 MHz 的单个值)。所以看起来显示的值确实是每个线程的频率,并且这些频率不需要成对相等。这可能吗?换句话说,单个核心的 2 个线程是否有可能具有不同的频率(在 IRC 上我被告知不会,他们说这种行为非常奇怪,因此我在这里提出问题)。如果不是,那么显示的频率是多少?

这是上述命令的实际输出:

cpu MHz     : 799.804
cpu MHz     : 861.987
cpu MHz     : 1178.613
cpu MHz     : 867.260
cpu MHz     : 3418.066
cpu MHz     : 800.024
cpu MHz     : 1302.539
cpu MHz     : 799.804
Run Code Online (Sandbox Code Playgroud)

编辑:与

cat /proc/cpuinfo 
Run Code Online (Sandbox Code Playgroud)

我可以看到 MHz 按顺序对应于核心 0、1、2、3、0、1、2 和 3。因此,就像 Hamza Jabbour 所说,它是每个线程(也称为逻辑核心)的频率。

我想知道每个线程是否有可能有自己的频率,以及 /proc/cpuinfo 是否在超过 1 个 cpu 周期内收集有关频率的数据(我认为这可能会使虚拟核心的频率不成对匹配)。 )

linux cpu proc cpu-frequency

5
推荐指数
1
解决办法
1234
查看次数

标签 统计

linux ×2

random ×2

cpu ×1

cpu-frequency ×1

linux-kernel ×1

proc ×1