精華區beta Programming 關於我們 聯絡資訊
驅動程式漫談 驅動程式的撰寫真是一件令人畏懼的事, 除了一般人了解它比較複雜之外, 事實上驅動程式的設計不只是程式本身的內部要求, 它還必須考慮到所驅動之硬體的相關知識, 以及作業系統的相關配合事項。 要了解硬體本就是一件不容易的事, 如果是簡單的硬體也就罷了, 萬一碰到一項系統比較複雜的硬體, 還可能光是了解這個硬體還不夠, 甚至硬體背後所牽涉到的系統都要一併了解通透才夠; 而與作業系統的配合上,更是一大夢靨, 想想看要去了解一個作業系統的內部核心是一件多麼不容易的事, 而了解一個作業系統的內部核心, 對於優秀驅動程式設計師來說,卻是必要的。 因此,我們可以發現, 要撰寫驅動程式之前, 是不是要十八般武藝,軟硬體皆精通才可勝任, 這樣的人世上能有多少,事實也是如此, 因為撰寫驅動程式實在是太麻煩了, 一般的情況是,在真正開始進行驅動程式的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