在深入探索Linux內(nèi)核的過(guò)程中,鏈表這一數(shù)據(jù)結(jié)構(gòu)無(wú)疑占據(jù)了舉足輕重的地位。它不僅是內(nèi)核中常用的數(shù)據(jù)結(jié)構(gòu)之一,更是實(shí)現(xiàn)系統(tǒng)高效運(yùn)行的關(guān)鍵技術(shù)。那么,Linux內(nèi)核鏈表究竟妙在哪里呢?
在Linux內(nèi)核中,提供了一個(gè)用來(lái)創(chuàng)建雙向循環(huán)鏈表的結(jié)構(gòu) list_head。雖然linux內(nèi)核是用C語(yǔ)言寫(xiě)的,但是list_head的引入,使得內(nèi)核數(shù)據(jù)結(jié)構(gòu)也可以擁有面向?qū)ο蟮奶匦裕ㄟ^(guò)使用操作list_head 的通用接口很容易實(shí)現(xiàn)代碼的重用,有點(diǎn)類(lèi)似于C++的繼承機(jī)制(希望有機(jī)會(huì)寫(xiě)篇文章研究一下C語(yǔ)言的面向?qū)ο髾C(jī)制)。
為了更好的理解內(nèi)核鏈表源代碼?。?為了日后復(fù)習(xí)內(nèi)核鏈表!給自己有如下總結(jié),方便日后自己查看!請(qǐng)配合內(nèi)核源碼閱讀!首先:typedef struct {?unsigned short ID;?int c