最近接了一個軟件模塊, 看了幾天云里霧里. 應用程序如何調到middleware再如何調到kernel space. 數據流向高帖、數據結構砸烦、邏輯關系昙沦、整體框架一樁樁一件件混沌在一起. 如何把它理理清楚呢?
做了8年的項目管理, 什么visio哈雏、project嘁傀、流程圖兴蒸、石川圖、控制圖细办、甘特圖橙凳、思維導圖..各種數據表現或者分析方式倒是熟練, 該用哪個最好呢? 管不了那許多, 不都是工具嘛, 原理相通, 撈一個起來:開干, 選的是思維導圖.
思維導圖尤善于分類、歸納與總結, 看起來一目了然. 開始了第一張圖, 后面的越發(fā)不可收拾: 數據結構一張笑撞、C/S架構一張, 數據流一張..鑒于公司保密規(guī)定, 代碼切不可外傳, 基本規(guī)則還是要遵守的. 對, 鑒于職業(yè)道德, 貼一張V4L2的數據結構與IOCTL對應的思維導圖, 這些個知識點具有保密除外責任, 網上一搜一籮筐, 但是以思維導圖的形式呈現, 僅此一家, 絕無雷同.
圖中細節(jié)估計大家也不感興趣就不鋪開了, 整體來看, 應該是有個面的概念, 以點博面, 通透. V4L2是什么? Video For Linux 2就是Linux內核對各種音頻岛啸、視頻和圖片驅動的一種抽象, 整出了一個統(tǒng)一的規(guī)范去面對應用程序的調用, 應用程序也不用管具體的硬件驅動是怎樣實現的,好的孬的都看不見. 打個通俗的比方, V4L2在Linux內核的位置就像是企業(yè)的中層, 由中層統(tǒng)一向高層匯報, 高層見不到下面的七嘴八舌良莠不齊, 畢竟高層也沒有那么多時間和耐心, 統(tǒng)一匯總下, 由一個人來報. V4L2是一套良好的框架, 這點有些許不同茴肥;另外一點, V4L2只能在Linux內核中使用, 這點倒是謀合.
左右兩邊也只是列出一些主要的, 未能窮盡. 縱向有一些邏輯關系, 橫向每一條對應關系都還能再細分成一張張圖, 雖然網上資料頗多, 但是要理解通透, 再作為自己的知識體系講出來, 還是要花不少時間進去.
不過可以和大家分享這樣一條思路: 接觸一個新東西的時候, 能迅速掌握知識點是一層境界;能系統(tǒng)理解知識點并轉化成自己的知識體系二次輸出又是另外一重境界, 這套理論也是最近get到的知識點, 分享并踐行.