我制作了一个简单的 bash 脚本来检查 /dev/random 中的熵池级别。我意识到,我这样做的方式是,我在每次检查时都会稍微降低它(cat /proc/sys/kernel/random/entropy_avail),但由于我以每 2 秒一次的频率检查其级别,所以它已经足够了完全恢复甚至增加的时间。我测量了1小时40分钟。与此同时,我没有做任何我认为会降低熵的事情(比如创建 SSH 密钥等)。但有人告诉我(在 IRC 上),连接到互联网这一简单事实可能会降低我的熵,因此我在完全与网络断开连接的笔记本电脑上重复了该实验,并且出现了完全相同的行为。
我不知道哪个程序正在降低池中的熵。我在断开连接的笔记本电脑上安装了一个非常小的 arch linux(总共安装了 646 个软件包),而我的主笔记本电脑在测量期间连接到互联网,正在运行 gentoo,安装了大约 800 个软件包,除了后台没有运行任何特定程序“默认”的。我在两台机器上都安装了 DE(xfce)。这是数据图:
编辑2:禁用 ASLR(在使用 grub 启动时添加norandmaps 内核参数)仍然会产生相同的行为,因此 ASLR 不是罪魁祸首。另一张图显示禁用 ASLR 的数据:
编辑3:显然我的问题是重复的这个问题。我已按照已接受的答案给出的命令进行操作,即sudo perf record -e random:\* -g -a -D 1000 -T sleep 60
和perf 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) 2d5729handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8e2f handle_fasteoi_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)交换器 0 [000] 3491.433025:随机:credit_entropy_bits:ffffffff8173e956 池:位 1 entropy_count 871 entropy_total 141 调用者 add_interrupt_randomness 5eaab6 Credit_entropy_bits (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5ec644 add_interrupt_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d5729handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8e2f handle_fasteoi_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.876901:随机:mix_pool_bytes:ffffffff8173e956 池:字节 16 调用者 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.876931:随机:credit_entropy_bits:ffffffff8173e956 池:位 9 entropy_count 876 entropy_total 150 调用者 add_timer_randomness 5eaab6 Credit_entropy_bits (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eacbd add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.876945:随机:add_input_randomness:input_pool_bits 876 5eb4c7 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.884903:随机:mix_pool_bytes:ffffffff8173e956 池:字节 16 调用者 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.884933:随机:credit_entropy_bits:ffffffff8173e956 池:位 1 entropy_count 876 entropy_total 151 调用者 add_timer_randomness 5eaab6 Credit_entropy_bits (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eacbd add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
(...)
交换器 0 [000] 3491.916850:随机:add_input_randomness:input_pool_bits 876 5eb4c7 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.924973:随机:mix_pool_bytes:ffffffff8173e956 池:字节 16 调用者 add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
交换器 0 [000] 3491.925003:随机:add_input_randomness:input_pool_bits 876 5eb4c7 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 6756c7 cpuidle_enter (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bd9fa call_cpuidle (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2bde18 cpu_startup_entry (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7ba434rest_init(/lib/modules/4.6.2-1-ARCH/build/vmlinux) d0cff0 start_kernel ([kernel.vmlinux].init.text) d0c346 x86_64_start_reservations ([kernel.vmlinux].init.text) d0c494 x86_64_start_kernel ([kernel.vmlinux].init.text)
firefox 827 [000] 3491.932654:随机:mix_pool_bytes:ffffffff8173e956池:字节16调用者add_timer_randomness 5ea6a3 mix_pool_bytes (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eac36 add_timer_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 5eb477 add_input_randomness (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655492 input_pass_values.part.1 (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655852 input_handle_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 655d38 input_event (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 3c28 hidinput_report_event([隐藏]) 第2506章 27bb hid_input_report ([隐藏]) 1c5c hid_irq_in ([usbhid]) 9c05 __usb_hcd_giveback_urb([usbcore]) 9ddf usb_hcd_giveback_urb ([usbcore]) 126ef xhci_irq([xhci_hcd]) 13041 xhci_msi_irq([xhci_hcd]) 2d56d1handle_irq_event_percpu(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d58b9handle_irq_event(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 2d8d1b handle_edge_irq (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 230e6ahandle_irq(/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c9abb do_IRQ (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 7c7bc2 ret_from_intr (/lib/modules/4.6.2-1-ARCH/build/vmlinux) 1f6fd81 [未知] (/usr/lib/firefox/libxul.so) 100000001 [未知]([未知])
我的问题是我无法很好地理解输出。我看不出哪个程序正在消耗熵。谁能解释一下这个输出? (PS:我在后台运行的 Firefox 中运行了最后的命令,因此它可能耗尽了一些熵,我对其他进程更感兴趣。)
答案1
push_to_pool
来自函数的评论/drivers/char/random.c
说:
/*
* Used as a workqueue function so that when the input pool is getting
* full, we can "spill over" some entropy to the output pools. That
* way the output pools can store some of the excess entropy instead
* of letting it go to waste.
*/
如果我理解正确的话,当熵池变满时,内核本身会从熵池中清除旧的熵。
答案2
这是一个可以帮助某人给出解释的想法。
我不确定如何测试或确认它(因为我不确定你如何生成图表),但从你的一些图表来看,可能存在“拍频”现象。如果是这样,拍频通常是测量频率与被测频率略有不同的征兆。如果你愿意的话,可以称之为“别名”。
好吧,这意味着可能还会有定期测量的熵水平变化 - 更糟糕的是,我注意到这并不能回答您的查询 - 是什么导致了变化 - 事实上它使您的查询复杂化。
与用于启动测量熵水平的例程的时钟滴答/循环相比,用于触发熵创建的时钟滴答或某些倍数可能是测量中显示为拍频的混叠的原因。
就像我说的,这只是一个想法。