1. 程式人生 > >【轉】Linux那些事兒 之 戲說USB(15)繁華落盡

【轉】Linux那些事兒 之 戲說USB(15)繁華落盡

臺灣作家林清玄在接受記者採訪時,如此評價自己的30多年寫作生涯:“第一個十年我才華橫 溢,‘賊光閃現’,令周邊黯然失色;第二個十年,我終於‘寶光現形’,不再去搶風頭,反而與身邊的美麗相得益彰;進入第三個十年,繁華落盡見真醇,我進入 了‘醇光初現’的階段,真正體味到了境界之美。” 很久很久以前,在自己還比較喜歡散文的時候,林清玄是我僅次於餘秋雨的第二偶像。長夜有窮,真水無香。看過了Linux裝置模型固的繁華似錦,該是體味境界之美的時候了。 Linux裝置模型中的匯流排落實在USB子系統裡就是usb_bus_type,它在usb_init函式的874行註冊,在drivers/usb/core/driver.c檔案裡定義
1524         .name =         "usb", 1529 }; 看 來是要向這個分叉走了,既然沒有回頭的路,就放平心情,欣賞沿路美景吧。name自然就是usb匯流排的綽號了,與芙蓉姐姐一般無二,人在江湖,身不由己。 match這個函式指標就比較有意思了,它充當了一個紅娘的角色,在匯流排的裝置和驅動之間牽線搭橋,類似於交大BBS上的鵲橋版,雖然它們上面的條件都琳 琅滿目的,但明顯這裡match的條件不是那麼的苛刻,要實際些。match指向了函式usb_device_match 541 { 542         /* devices and interfaces are handled separately */
544 545                 /* interface drivers never match devices */ 547                         return 0; 548 549                 /* TODO: Add real matching code */ 550                 return 1; 551 552         } else { 554                 struct usb_driver *usb_drv; 556 557                 /* device drivers never match interfaces */
559                         return 0; 560 563 565                 if (id) 566                         return 1; 567 569                 if (id) 570                         return 1; 571         } 572 573         return 0; 574 } 540 行,經歷了linux裝置模型的繁華,引數我們都已經很熟悉了,對應的就是匯流排兩條連結串列裡的裝置和驅動,也可以說是鵲橋版上的掛牌的和摘牌的。總線上有新 裝置或新的驅動新增時,這個函式總是會被呼叫,如果指定的驅動能夠處理指定的裝置,也就是匹配成功,函式返回0。夢想是美好的,現實是殘酷的,匹配是未必 成功的,紅娘再努力,雙方對不上眼也是實在沒辦法的事。 543行,一遇到if和else,我們就知道又處在兩難境地了,程式碼裡我們可選擇的太多,生活裡我們可選擇的太少,出生,長大,死亡,好像一直身不由己的隨著命運在走。這裡的岔路口只有兩條路,一條給USB裝置走,一條給USB介面走,各走各的路,分開了,就不再相見。   

相關推薦

Linux那些事兒 戲說USB(15)繁華

臺灣作家林清玄在接受記者採訪時,如此評價自己的30多年寫作生涯:“第一個十年我才華橫 溢,‘賊光閃現’,令周邊黯然失色;第二個十年,我終於‘寶光現形’,不再去搶風頭,反而與身邊的美麗相得益彰;進入第三個十年,繁華落盡見真醇,我進入 了‘醇光初現’的階段,真正體味到了境界之美。

Linux那些事兒 戲說USB(6)我是一棵樹(一)

什麼是USB controller?在一個USB系統中只能有一個host,其實說白了就是咱們的主機,而USB和主機的介面就是host controller,你的主機總不可能只能有一個USB host controller吧,所以說一個主機可以支援多個host controller,比如分別屬於不同廠商的。那麼

Linux那些事兒 戲說USB(4)漫漫辛酸路

70 config USB_OHCI_HCD71         tristate "OHCI HCD support"72         depends on USB && USB_ARCH_HAS_OHCI73         select ISP1301_OMAP if MACH_OM

Linux那些事兒 戲說USB(3)PK

最初的設計目標就是替代序列、並行等各種低速匯流排,以達到以一種單一型別的匯流排連線各種不同的裝置。它現在幾乎可以支援所有連線到PC上的裝置,99年提出的USB2.0理論上可以達到480Mbps的速度。它與串列埠、並口等的這場PK從一開始就是不平等的,這樣的開始註定了以什麼樣的結果結束,只能說命運選擇了USB。

Linux定時任務crontab

數據備份 res 整數 用戶數 mailto 加載 -c 維護 mini linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以,

Linux那些事兒 戲說USB(12)從這裡開始

任小強們說房價高漲從現在開始,股評家們說牛市從5000點開始。他們的開始需要我們的錢袋,我的開始只需要一臺電腦,最好再有一杯茶,伴著幾支小曲兒,不盯著錢總是會比較愜意的。生容易,活容易,生活不容易,因為

linuxcp/scp命令+scp命令詳解

特殊 是否 用戶登錄 usr 指定 highlight 顯示 檔案 三種 linux之cp/scp命令+scp命令詳解 名稱:cp 使用權限:所有使用者 使用方式: cp [options] source dest cp [options] source

Linux中三種SCSI target的介紹LIO

【轉自】http://blog.csdn.net/scaleqiao/article/details/46744891 1. 簡介 Linux-IO Target在Linux核心中(linux 2.6.38後),用軟體實現各種SCSI Target,其支援的SAN技術中所有流行的儲存協議包括Fi

linux 磁盤掛載

修改 con 數字 alt 需求 意思 開機 clas 信息 掛載好新硬盤後輸入fdisk -l命令看當前磁盤信息 可以看到除了當前的第一塊硬盤外還有一塊sdb的第二塊硬盤,然後用fdisk /dev/sdb 進行分區 進入fdisk命令,輸入h可以看到該命令的幫助

linux awk命令詳解

column 環境變量 最後一行 工作流程 初始 文本文件 for循環 其中 cti 簡介 awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切

JavaSE--網絡安全證書、密鑰、密鑰庫等名詞解釋

detail 發的 都是 base64 request 服務器 win art ive 轉載:http://www.cnblogs.com/alanfang/p/5600449.html 那些證書相關的名詞解釋(SSL,X.509,PEM,DER,CRT,CER,KEY,

Linux 如何通過命令僅獲取IP地址

網卡 errors alt oot lin style bytes b- eth0 一同事的朋友正在參加筆試,遇到這麽一個問題讓他幫忙解決,結果同事又找到我幫他搞定。真是感慨:通訊發達在某些方面來說,真不知是不是好事啊!題目大致如下所示,一般我們使用ifconfig查看網卡

Linux下查看進程打開的文件句柄數

art blog targe 時間 ase 響應時間 nbsp lin repl ---查看系統默認的最大文件句柄數,系統默認是1024 # ulimit -n 1024 ----查看當前進程打開了多少句柄數 # lsof -n|awk ‘{print $2}‘|sort

Linux下/proc目錄簡介

map kms slab proc文件系統 文件格式 應用 environ 一段時間 內存映射 1. /proc目錄Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統,它只存在內存當中,而

Effective C#觀後感提高Unity中C#代碼質量的21條準則

們的 嚴格 知識 將不 實現接口 控制流程 effect 序列 狀態 轉自:http://blog.csdn.net/swj524152416/article/details/75418162 我們知道,在C++領域,作為進階閱讀材料,必看的書是《Effective C++

Linux系統編程---dup和dup2詳解

系統 強調 操作 attach bsp ads 正常的 註意 tdi 正常的文件描述符: 在linux下,通過open打開以文件後,會返回一個文件描述符,文件描述符會指向一個文件表,文件表中的節點指針會指向節點表。看下圖: 打開文件的內核數據結構 dup和dup2兩

中文分詞HMM模型詳解

實現 含義 jieba 順序 清晰 bsp 中國 matrix 統計 關於HMM模型的介紹,網上的資料已經爛大街,但是大部分都是在背書背公式,本文在此針對HMM模型在中文分詞中的應用,講講實現原理。 盡可能的撇開公式,撇開推導。結合實際開源代碼作為例子,爭取做到雅俗共賞,

AIX系統錯誤--磁盤錯誤

scsi 系統 article root into flag wsh digg kaa AIX系統錯誤之--磁盤錯誤 來源:http://blog.csdn.net/yujin2010good/article/details/40075485 系統環境: 操作系統

Linux安裝HDF5及遇到的問題總結

inf 遇到 upload 詳細步驟 iframe gunzip 總結 comm box Linux安裝HDF5及遇到的問題總結 轉自: http://www.linuxdiyf.com/linux/26164.html ubuntu版

linux shell實現隨機數多種方法(date,random,uuid)

生成 需要 運算 one ont 數字 定義 支持 dev 在日常生活中,隨機數實際上經常遇到,想丟骰子,抓鬮,還有抽簽。呵呵,非常簡單就可以實現。那麽在做程序設計,真的要通過自己程序設計出隨機數那還真的不簡單了。現在很多都是操作系統內核會提供相應的api,這些原始參數是獲