驅動程式漫談
驅動程式的撰寫真是一件令人畏懼的事,
除了一般人了解它比較複雜之外,
事實上驅動程式的設計不只是程式本身的內部要求,
它還必須考慮到所驅動之硬體的相關知識,
以及作業系統的相關配合事項。
要了解硬體本就是一件不容易的事,
如果是簡單的硬體也就罷了,
萬一碰到一項系統比較複雜的硬體,
還可能光是了解這個硬體還不夠,
甚至硬體背後所牽涉到的系統都要一併了解通透才夠;
而與作業系統的配合上,更是一大夢靨,
想想看要去了解一個作業系統的內部核心是一件多麼不容易的事,
而了解一個作業系統的內部核心,
對於優秀驅動程式設計師來說,卻是必要的。
因此,我們可以發現,
要撰寫驅動程式之前,
是不是要十八般武藝,軟硬體皆精通才可勝任,
這樣的人世上能有多少,事實也是如此,
因為撰寫驅動程式實在是太麻煩了,
一般的情況是,在真正開始進行驅動程式的Coding之前,
先要讀一大堆文件,假設你已經在精通程式語言及作業系架構的前提下,
對於一個新的裝置元件撰寫驅動程式,
你必須熟讀而且通透這裝置元件功能相關的標準規範,
以及裝置元件的Spec,
最後才是裝置元件的User Manual,
這工作可能就會花去您半年的時間,
另外相關配合的作業系統文件,
Library 的使用說明要研讀,這大概也會花去你三個月的時間,
最後的Coding、測試、Debug,也可能花去你半年的時間,
如果萬一不幸,你的程式語言的基本功本來就不是很好,
對於作業系統的架構也是一知半解,
加上慧根不夠看不懂標準規範文件等,
還有運氣不好出現解不掉的Bug,那時間可就拉得更長了,
有很大的機會,結局會變得非常慘不忍賭。
建議八字不夠重的人可不要輕易嘗試,
要不然很容易受重傷吐血而死。
由於撰寫驅動程式的門檻如此之高,
需要如此的長時間,
在台灣這種號稱科技大國的地方,
居然也找不到幾家公司有在自行開發驅動程式的,
大部份的情況都是買外國人的Source Code來改、還是照抄。
台灣的老闆一般都是短視近利,
叫他投入大量的金錢與時間來開發一個不見得成功問市的東西,
個人過去的經驗告訴我:別傻了。
PS:我曾經看過一個白痴,
以30萬台幣去標到一個1394 HBA Chip 驅動程式開發的案子,
時限為三個月,
後來發現全公司內沒人作得出來,(上市公司)
就想要花五萬元一個月的薪水請到人來幫他寫。
IT業界像這種狀況外的人實在不少。
走筆至此,是不是有人開始想說,
既然這麼麻煩,而且老闆又不支持,
那是不是就不要學習設計驅動程式,
本文也不用繼續看下去了。
不不不!雖然撰寫驅動程式的機會很少,
但要去看別人的驅動程式機會到是很多,
因為你的豬頭老闆會叫你去抄別人的Source Code、
或者是改別人的Source Code,
這是大部份的狀況。
另外,在解Bug時,
萬一對驅動程式的架構觀念一點都沒有,
那真的是只有等死的份,
連下手解決問題的出發點都沒有。
另外,學習驅動程式能讓你對何謂電腦這件事能夠有更深入的了解,
就算你只是一個純寫AP的程式設計師,
你會發現,你思考解決問題的能力會快很多ꄊ
==未完,待續==
C
--
Ξ Origin: 中興大學天樞資訊網 <bbs.nchu.edu.tw>
Ξ From : 218-169-64-44.dynamic.hinet.net