Can you summarize the following document?
        
  並不是所有作業系統中的/dev/random的實現都是相同的。以下列舉了一些作業系統中的實現。

  Linux核心中的是第一個以背景噪聲產生真正的隨機數產生的實現,它允許程式訪問來自裝置驅動程式或其它來源的背景噪聲。  1994年,美國程式設計師曹子德(Theodore Y. Ts'o)第一次在Linux核心中實現了隨機數發生器。使用了SHA-1雜湊演算法而非密碼,以避開法律限制。另一個原因是任意給定的雜湊或密碼加密強度弱,而新隨機數發生器在提高了密碼強度。  發生器有一個容納噪聲資料的熵池,在讀取時,codice_1裝置會返回小於熵池噪聲總數的隨機位元組。codice_1可生成高隨機性的公鑰或一次性密碼本。若熵池空了,對codice_1的讀操作將會被阻塞,直到收集到了足夠的環境噪聲為止。這樣的設計使得codice_1是真正的隨機數發生器,提供了最大可能的隨機資料熵,建議在需要生成高強度的金鑰時使用。  codice_1的一個副本是codice_6(“unblocked”,非阻塞的隨機數發生器),它會重複使用熵池中的資料以產生偽隨機資料。這表示對codice_6的讀取操作不會產生阻塞,但其輸出的熵可能小於codice_1的。它可以作為生成較低強度密碼的偽隨機數生成器,不建議用於生成高強度長期密碼。  codice_1也允許寫入,任何使用者都可以向熵池中加入隨機資料。即使寫入非隨機資料亦是無害的,因為只有管理員可以呼叫ioctl以增加熵池大小。Linux核心中當前熵的值和大小可以通過訪問codice_10資料夾中的檔案得到。  2006年3月,Gutterman、Pinkas和Reinman發表了對Linux隨機數發生器的詳細密碼學分析,其中提出了該發生器的幾個弱點。也許其中最嚴重的問題發生在嵌入式系統和Live CD系統,類似路由器和無盤工作站中的應用。在這些系統中,引導狀態是可預測的,且環境熵的來源也較為受限。對於有NVRAM的系統,他們建議在關機時儲存一部分隨機數發生器的狀態,使得在下次開機時可以恢復這些狀態。對於路由器而言,網路資料是熵的主要來源,他們認為在重啟前後儲存和恢復資料可能要求潛在的攻擊者要麼竊聽從路由器投入使用開始全部的網路資訊,或直接獲取路由器的內部狀態。他們寫道,這個問題對於無線路由器而言尤其關鍵,因為其網路資訊可以遠端獲取到,並可能用於產生資料加密用金鑰的隨機發生器。

  FreeBSD作業系統實現了256位的Yarrow演算法變體,以提供偽隨機數流。與Linux的codice_1不同,FreeBSD的codice_1不會產生阻塞,與Linux的codice_6相似,提供了密碼學安全的偽隨機數發生器,而不是基於熵池。而FreeBSD的codice_6則只是簡單的連結到了codice_1。  Yarrow演算法的前提是現代的偽隨機數發生器的安全性很高,若其內部狀態不為攻擊者所知,且比熵估計更易理解。在某些情況下,攻擊者可以在某種程度上掌握熵的量,例如無盤伺服器的熵幾乎全部來自於網路,使得它可能易受中間人攻擊的影響。演算法的種子會被規則的重置:在網路和磁碟負載較輕的系統上,一秒內種子可能被重置數次。  FreeBSD也支援硬體隨機數發生器,並在安裝了類似硬體時會替代Yarrow演算法。  2004年,Landon Curt Noll測試了FreeBSD 5.2.1版本的codice_1,發現它不是一個密碼學強的隨機數發生器,因為其輸出在十億位測試中顯示出了多個一致性缺陷。類似的缺陷亦發生在Linux 2.4.21-20,Solaris 8 patch 108528-18和Mac OS X 10.3.5的codice_1中。

  codice_1和codice_6也存在於 Solaris、Mac OS X、NetBSD、OpenBSD、Tru 64 UNIX 5.1B、AIX 5.2和HP-UX 11i v2中。與FreeBSD的實現類似,AIX採用了它自身的基於Yarrow的設計,但AIX使用的熵源數量低於標準codice_1的實現,並且在系統認為熵池的熵達到足夠值時停止填充熵池。  在Windows NT中,codice_21提供了類似的功能,但讀取特殊檔案codice_22並不會提供與UNIX中相同的功能。開發文件中提到的,用於產生密碼用隨機資料的函式是CryptGenRandom和RtlGenRandom。  雖然DOS沒有原生的提供類似功能,但有開源的Noise.sys提供了類似功能。該實現與codice_1的功能和介面類似,即建立了兩個裝置,RANDOM$與URANDOM$,也可以通過/DEV/RANDOM$和/DEV/URANDOM$訪問。

  EGD(熵收集守護程序,Entropy Gathering Daemon)通常可以在不支援codice_1裝置的UNIX系統中提供類似的功能。這是一個執行於使用者態的守護程序,提供了高質量的密碼用隨機資料。一些加密軟體,例如OpenSSL,GNU Privacy Guard和Apache HTTP伺服器支援在codice_1不可用的時候使用EGD。  EGD,或者類似的軟體,例如prngd,可以從多種來源收集偽隨機的熵,並對這些資料進行處理以去除偏置,並改善密碼學質量,然後允許其它程式通過UNIX域套介面(通常使用codice_26),或TCP套介面訪問其輸出。該程式通常使用建立子程序的以查詢系統狀態的方式來收集熵。它查詢的狀態通常是易變的、不可預測的,例如CPU、I/O、網路的使用率,也可能是一些日誌檔案和臨時目錄中的內容。
/dev/random在類UNIX系統中是一個特殊的裝置檔案,可以用作隨機數發生器或偽隨機數發生器。