次の呼び出しは高速に戻ります。
time dd if=/dev/random bs=1024 count=1
.... 0+1 records in
0+1 records out
49 bytes (49 B) copied, 0.000134028 s, 366 kB/s
real 0m0.004s
user 0m0.001s
sys 0m0.002s
ただし、/dev/random
1バイトずつ読み取られる場合:
for i in {1..500}; do dd if=/dev/random bs=1 count=1 status=none; done
ループは数バイトを読み取り、数秒間ブロックしてから、さらに数バイトを読み取ります。キーボードでランダムな文字を入力すると、ランダムプールに十分なエントロピーがなかったかのように、プロセスが大幅にスピードアップします。結局のところ、ループは完了するまでに数分かかります。
何が読みになり/dev/random
、それからブロックを読むより多く遅くバイト単位で?
Uname -a:
Linux ... 2.6.32-431.11.2.el6.centos.plus.x86_64
答えはあなたの質問にあります:
49 bytes (49 B) copied, 0.000134028 s, 366 kB/s
そのため、言われたように1024バイトをコピーしませんでしたが、数バイトしかコピーされずに停止しました。これは、ブロックする前にループで得た量と同じです。
/ dev / randomは、さまざまなソースからランダム性を収集する必要があるため低速であり、使用可能なものがない限り、何も出力しません。
より高速な数値が必要な場合は、/ dev / urandomを使用してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加