2007年11月26日 星期一

Frexhwd 嬌小的硬體偵側程式

Standard
今年初的時候,我在 SourceForge 申請了一個 Project 叫做『Frexhwd』,這是當時我寫給這專案的一段描述:

Frexhwd is a simple and small Hardware Detection for Linux. It is written by Unix
shell(Bash) and C Language. it easy to run on small, embedded or simple system.

由這專案的名稱就可以知道,這是一個硬體偵側程式(Hardware Detection),而當初建立這專案的目標就是希望以最簡單的方式,實作硬體偵測並自動載入相對應的 Drivers。其實說到類似的功能,Debian 的 discover 與 Redhat/Fedora 的 Kudzu 都已經做得相當完整,而且在實際運作上都已經沒有什麼問題了。但如果真要說令人不滿意的地方,就是太過 fat!

discover 除了在非 Debian 系的環境中 compile 會碰到不少問題外,他的妸娜的身材倒還可以接受;而 Kudzu 從一開始就選擇 Python 當撰寫語言,根本是個錯誤。正因為 Python 的相關 Librarys 和檔案,本身就已經是個肥大的腫瘤,令使用它的 Kudzu 無法輕巧的移植到其他簡單的系統中。

最近又再次接觸到許多小型系統的研發,發現許多程式應該回歸其應用本質和單純,包山包海的結果必然會和複雜度同時產生,除了維護、移植的問題外,更有許多環境限制和浪費資源在非必要的功能,當初會建立 Frexhwd Project 也是因為有這樣的想法。

我希望 Frexhwd 是以 Shell 和 C Language 撰寫,一方面使用 Shell 可移植度高,另一方面,可以使用 C 補強 Shell 在檔案資料處理上的效能不足。不過照目前的進度來看,還未使用到 C 來撰寫任何一部份的程式,僅用到 Busybox 或 GNU 的 grep 來達成硬體模組的資料比對。

雖然遲遲沒有將 Frexhwd 的 source code 放上去,但已經有一些成果,等最近忙一段落,會將相關檔案整理好放上 SourceForge。