需求 —— 指導我前進
搞了很久的技術工作,現在終于知道了 要理解技術的發展,一些技術細節的實現 首要的是理解需求 理解了需求 也就理解了 問題的絕大部分了。以linux程序設計為例 我們面對的是應用層軟件 為的是滿足我們客戶的一個需求,而各類庫以及 api、系統調用等為的是滿足應用層軟件的需求而不斷的演化的。 因此 只要需求不變,各類平臺api,調用接口和庫就不會變化,這也就是會出現 posix 標準的根本原因,然而,可以長期保持穩定,此基礎便是 我們的需求有著一脈相承的性質。 然而,可以說,系統調用接口的設計就是為了滿足應用程序的需求,而系統調用的功能又是由內核 和驅動模塊提供的,因此,不理界驅動程序 甚至不理界 應用層的軟件需求,我們也一樣無法理解為什么內核會設計成這樣。當我們在開發時,讀linux源代碼時,一定要搞清需求,才有可能深入的認識問題,思考問題的方法是相當關鍵的?,F在 我正在研究select 和poll 系統調用,如果沒有應用層的實際需要,我不會想到為什么要實現這幾個系統調用,同時,不明白 系統調用的方式也是難以理解模塊驅動在實現這幾個系統調用的時候怎么設計 和 為什么要如此設計。 因此,《unix/Linux編程實踐教程》的巨大價值在于她 讓我理解了 用戶的需求,也就是應用軟件的需求,引出了系統調用 的形式和方式。 而《APUE》讓我搞清楚 系統調用的 型式和利用中的一些細節,并且用例子來比較和對比這些細節,因此來說,難以記憶。而ldd2 的書關于系統調用的內核實現,更加錯綜復雜,但是歸根結底,還是系統調用的需求和應用軟件的需求,搞清楚了需求,也就清楚了設計和實現的方式。 天哪,我終于發現我看這些書和資料時候比較慢的病因了哦! 愿我下面能走好?。。?!盡快趕上吧:) 同時,太謝謝《unix/Linux編程實踐教程》,讓我明白太多道理了:)