原创 Linux那些事兒之我是Block層(2)註冊一個塊設備驅動

看完了 block 子系統的初始化之後 , 我曾一度迷茫過 , 也曾輾轉反側 , 也曾苦惱萬分 , 我完全不知道下一步該怎麼走 , 幾經思索 , 思索着我和中國的未來 , 徘徊過後 , 彷徨過後 , 終於決定 , 和 scsi disk

原创 Linux內核修煉之道》精華分享與討論(21)——二分法與printk()

人生就是一個茶几,上面擺滿了杯具。內核也是一個大茶几,不過它上面的杯具是一個個的bug 。確定bug 什麼時候被引入是一個很關鍵的步驟,在這個定位bug 的過程中,不論有意或無意,都會很自然地用到二分查找的方法。 二分查找法的基本原理

原创 《Linux內核修煉之道》精華分享與討論(17)——子系統的初始化:以PCI子系統爲例

由Kconfig這張地圖的分佈來看,PCI這塊兒的代碼應該分佈在兩個地方,drivers/pci和arch/i386/pci,兩岸三地都屬 於一箇中國,不管是drivers/pci那兒的,還是arch/i386/pci那兒的,也都只屬於一

原创 《Linux內核修煉之道》精華分享與討論(12)——設備模型(下)

設備模型拍得再玄幻,它也只是個模型,必須得落實在具體的子系統,否則就只能抱着個最佳技術獎空遺恨。既然前面已經以USB子系統的實現分析示例了分析內核源碼應該如何入手,那麼這裏就仍然以USB子系統爲例,看看設備模型是如何軟着陸的。 內核中US

原创 《Linux內核修煉之道》 之 高效學習Linux內核

世界悲結束了,章魚哥也退役了,連非誠勿擾中的拜金女也突然的少了很多。這本《 Linux 內核修煉之道》在 卓越 、 噹噹 、 china-pub 上也已經開賣了,雖然是嚴肅文學,但爲了保證流暢性,大部分文字我還都是斟詞灼句,反

原创 《Linux內核修煉之道》精華分享與討論(22)——方法論

這應該是這個系列的最後一篇了,書麼很快就能買到了,呵呵,接下來應該會寫些android方面的東東吧。 ********************************************************************

原创 《Linux內核修煉之道》精華分享與討論(14)——內核中的鏈表

早上上班坐地鐵要排隊,到了公司樓下等電梯要排隊,中午吃飯要排隊,下班了追求一個女孩子也要排隊,甚至在網上下載個什麼門的短片也要排隊,每次看見人羣排成一條長龍時,才真正意識到自己是龍的傳人。那麼下面咱們就說說隊列(鏈表)。 使用鏈表的目的很

原创 《Linux那些事兒之我是USB》前言

1992 年,那是一個春天。不過其實 1991 年又何嘗不是一個春天呢,因爲正是在那一年, Linux 誕生了。又因爲開放源代碼的緣故,十幾年來 Linux 是越來越火,熊熊火焰也燒到了華夏大地。諸多高校開始開設 Linux 相關的課程,

原创 Linux那些事兒之我是Block層(引子)

很久以前 , 天還是藍的 , 水也是綠的 , 莊稼是長在地裏的 , 豬肉是可以放心吃的 , 耗子還是怕貓的 , 法庭是講理的 , 上牀是先結婚的 , 理髮店是隻管理髮的 , 藥是可以治病的 , 醫生是救死扶傷的 , 拍電影是不需要陪導演睡

原创 《Linux內核修煉之道》精華分享與討論(10)——模塊機制與“Hello World!”

有一種感動,叫內牛滿面,有一種機制,叫模塊機制。顯然,這種模塊機制給那些Linux的 發燒友們帶來了方便,因爲模塊機制意味着人們可以把龐大的Linux內核劃分爲許許多多個小的模塊。對於編寫設備驅動程序的開發者來說,從此以後他們可以 編寫設

原创 《Linux內核修煉之道》精華分享與討論(15)——子系統的初始化:內核選項解析

首先感謝國家。其次感謝上大的鐘莉穎,讓我知道了大學不僅有校花,還有校雞,而且很多時候這兩者其實沒什麼差別。最後感謝清華女劉靜,讓我深刻體會到了素質教育的重要性,讓我感到有責任寫寫子系統的初始化。 各個子系統的初始化是內核整個初始化過程必然

原创 Linux內核修煉之道》精華分享與討論(20)——學會使用Git

作爲一名人民的好乾部,如果希望被惦記,可以學我們的鄭書記,將自己和藹可親的光輝形象搬上臺歷;作爲一名有夢想有追求而又不知道如何出名的人,你可以參考對岸的 “超想被包養”社團。而作爲一個內核愛好者,要想成爲一名內核開發者,爲內核貢獻自己的代

原创 《Linux那些事兒之我是USB》我是U盤(2)Makefile

“出來混,遲早要還的。” 基本上,Linux 內核中每一個目錄下邊都有一個Makefile 。Makefile 和Kconfig 就像一個城市的地圖,地圖帶領我們去認識一個城市,而Makefile 和Kconfig 則可以讓我們瞭解這個目

原创 《Linux那些事兒之我是USB》我是U盤(1)小城故事

這個故事中使用的是2.6.22的內核代碼。在Linux內核代碼目錄中,所有與設備驅動程序有關的代碼都在drivers/目錄下面,在這個目錄中用ls命令可以看到很多子目錄: lfg1:/usr/src/linux-2.6.22/driver

原创 《Linux內核修煉之道》 之 高效學習Linux驅動開發

這本《 Linux 內核修煉之道》已經開賣(網上的鏈接爲:  卓越 、 噹噹 、 china-pub  ) ,雖然是嚴肅文學,但爲了保證流暢性,大部分文字我還都是斟詞灼句,反覆的念幾遍才寫上去的,儘量考慮到寫上去的 每 段話能夠讓