在任何情況下,為了或在您從事 GNU 專案時,請勿參考 Unix 原始碼! (或任何其他專有程式。)
如果您對 Unix 程式的內部運作有模糊的印象,這並不絕對表示您不能撰寫其仿製品,但請嘗試在內部以不同的方式組織該仿製品,因為這可能會使 Unix 版本的細節變得無關緊要,並讓您的成果有所不同。
例如,Unix 工具程式通常會為了盡量減少記憶體用量而最佳化;如果您改為追求速度,您的程式將會非常不同。您可以將整個輸入檔案保留在記憶體中,並在記憶體中掃描,而不是使用 stdio。使用比 Unix 程式更新穎、更聰明的演算法。 消除暫存檔的使用。以單次掃描完成,而不是兩次(我們在組譯器中就是這麼做的)。
或者,反過來說,強調簡潔性而非速度。對於某些應用程式而言,現今電腦的速度已使更簡單的演算法變得足夠。
或者追求通用性。例如,Unix 程式通常有靜態表格或固定大小的字串,這會造成任意的限制;請改用動態配置。 確保您的程式可以處理輸入檔案中的 NUL 字元和其他特殊字元。新增程式語言以達到擴充性,並以該語言撰寫程式的某些部分。
或者將程式的某些部分轉換為可獨立使用的程式庫。 或者使用簡單的垃圾回收機制,而不是精確追蹤何時釋放記憶體,或者使用新的 GNU 功能,例如 obstacks。