《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于編譯選項(xiàng)的Linux內(nèi)核交互式圖解軟件設(shè)計(jì)*
基于編譯選項(xiàng)的Linux內(nèi)核交互式圖解軟件設(shè)計(jì)*
2015年微型機(jī)與應(yīng)用第8期
潘朋飛,李素科,荊 琦
(北京大學(xué) 軟件與微電子學(xué)院,北京 102600)
摘要: Linux內(nèi)核龐大并且可定制性非常高,而且目前市場(chǎng)上并沒(méi)有學(xué)習(xí)內(nèi)核的指導(dǎo)軟件。針對(duì)Linux內(nèi)核學(xué)習(xí)難、配置難等問(wèn)題,對(duì)Linux內(nèi)核模塊進(jìn)行了重新的邏輯劃分,提出了“虛目錄”的概念,并在此基礎(chǔ)上,圍繞Linux內(nèi)核的編譯選項(xiàng)設(shè)計(jì)并開(kāi)發(fā)了一款學(xué)習(xí)指導(dǎo)軟件。該軟件為一套內(nèi)核編譯配置的輔助工具,虛目錄的劃分清晰地展示了內(nèi)核功能模塊的邏輯劃分,展開(kāi)虛目錄后,會(huì)顯示與此虛目錄功能配置相關(guān)的所有編譯配置選項(xiàng),使用戶了解到該目錄項(xiàng)的功能是通過(guò)哪些編譯選項(xiàng)來(lái)配置的。編譯配置選項(xiàng)之間存在著編譯依賴關(guān)系,本軟件可以從源碼的層次(如函數(shù)調(diào)用、變量引用等)來(lái)解釋編譯依賴關(guān)系的具體實(shí)現(xiàn)。
Abstract:
Key words :

  摘  要: Linux內(nèi)核龐大并且可定制性非常高,而且目前市場(chǎng)上并沒(méi)有學(xué)習(xí)內(nèi)核的指導(dǎo)軟件。針對(duì)Linux內(nèi)核學(xué)習(xí)難、配置難等問(wèn)題,對(duì)Linux內(nèi)核模塊進(jìn)行了重新的邏輯劃分,提出了“虛目錄”的概念,并在此基礎(chǔ)上,圍繞Linux內(nèi)核的編譯選項(xiàng)設(shè)計(jì)并開(kāi)發(fā)了一款學(xué)習(xí)指導(dǎo)軟件。該軟件為一套內(nèi)核編譯配置的輔助工具,虛目錄的劃分清晰地展示了內(nèi)核功能模塊的邏輯劃分,展開(kāi)虛目錄后,會(huì)顯示與此虛目錄功能配置相關(guān)的所有編譯配置選項(xiàng),使用戶了解到該目錄項(xiàng)的功能是通過(guò)哪些編譯選項(xiàng)來(lái)配置的。編譯配置選項(xiàng)之間存在著編譯依賴關(guān)系,本軟件可以從源碼的層次(如函數(shù)調(diào)用、變量引用等)來(lái)解釋編譯依賴關(guān)系的具體實(shí)現(xiàn)。
  關(guān)鍵詞: Linux內(nèi)核;虛目錄;編譯選項(xiàng);交互式圖解軟件
0 引言
  Linux操作系統(tǒng)以其開(kāi)源源碼、高性能和高可靠性等諸多優(yōu)勢(shì)在商業(yè)服務(wù)器和個(gè)人桌面系統(tǒng)中得到日益廣泛的應(yīng)用。近年來(lái),隨著Linux內(nèi)核的不斷發(fā)展和完善,內(nèi)核變得日趨龐大,想深入了解其模塊的劃分以及各個(gè)模塊的功能機(jī)制,也變得相對(duì)困難。在對(duì)Linux體系結(jié)構(gòu)及內(nèi)核功能模塊間關(guān)系分析的基礎(chǔ)上,對(duì)Linux內(nèi)核進(jìn)行了重新的邏輯架構(gòu)劃分,形成“虛目錄”,并且將所有內(nèi)核源碼分配到相應(yīng)的虛目錄下。同時(shí),Linux內(nèi)核的可定制性也是非常高的,它有著數(shù)以萬(wàn)計(jì)的編譯配置選項(xiàng),針對(duì)不同的需求可以進(jìn)行相應(yīng)的配置。但是,如此大數(shù)目的編譯配置選項(xiàng)也正是問(wèn)題的所在,不管是初學(xué)者,還是內(nèi)核的精通者,都無(wú)法保證能了解到每個(gè)編譯配置選項(xiàng)處于內(nèi)核的哪個(gè)大模塊中,以及編譯選項(xiàng)配置所涉及的文件,等等。通過(guò)對(duì)內(nèi)核Kconfig文件的語(yǔ)法分析,識(shí)別出所有的編譯選項(xiàng);通過(guò)對(duì)Makefile文件的語(yǔ)法分析,解析出每個(gè)編譯所需要的源碼文件;根據(jù)之前劃分好的虛目錄,以源碼文件作為中介,將編譯選項(xiàng)劃分到相應(yīng)的虛目錄中。這樣就可以很清楚地知道內(nèi)核的哪些功能(虛目錄)需要哪些配置選項(xiàng)去配置,以及每個(gè)配置選項(xiàng)配置需要涉及哪些文件。為了深入到最底層來(lái)了解每個(gè)功能以及配置的實(shí)現(xiàn),對(duì)文件進(jìn)行解析,提取出具體函數(shù)以及變量的調(diào)用關(guān)系。虛目錄與編譯選項(xiàng)的關(guān)系,通過(guò)逐層細(xì)化,可以很清晰地體現(xiàn)到底層的函數(shù)與變量的關(guān)系上,對(duì)各個(gè)模塊功能的具體實(shí)現(xiàn)進(jìn)行了很好的展示。
  使用本交互式圖解軟件可以從細(xì)節(jié)上理清Linux的代碼,從宏觀上的邏輯模塊(虛目錄)層層細(xì)化到小模塊、編譯選項(xiàng)、文件、函數(shù)來(lái)快速地認(rèn)識(shí)Linux內(nèi)核以及內(nèi)核各個(gè)模塊間的關(guān)系。
1 虛目錄
  1.1 虛目錄概念
  本軟件是對(duì)于Linux內(nèi)核架構(gòu)、編譯選項(xiàng)以及各層次關(guān)系的詳細(xì)展示。Linux內(nèi)核架構(gòu)也是整個(gè)軟件依托的基礎(chǔ)。但是Linux內(nèi)核源碼的固有架構(gòu)(目錄劃分)是相對(duì)工程化的,不便于用戶的理解,比如:(1)/kernel文件夾意義不明確,包括多個(gè)功能模塊中的內(nèi)容;(2)對(duì)于arch文件夾,實(shí)際運(yùn)行的Linux內(nèi)核只對(duì)應(yīng)一個(gè)架構(gòu),并且arch文件夾下的內(nèi)容與許多其他功能模塊緊密相關(guān);(3)/mm、/virt/kvm等目錄需要繼續(xù)細(xì)化。
  于是本文提出了虛目錄的思想,虛目錄是與實(shí)目錄(即內(nèi)核源碼的相對(duì)路徑)相對(duì)應(yīng)的說(shuō)法。本文將內(nèi)核源代碼根據(jù)其功能及邏輯關(guān)系進(jìn)行了重新劃分。與實(shí)目錄相比,虛目錄體現(xiàn)了內(nèi)核的邏輯結(jié)構(gòu),虛目錄按照內(nèi)核的功能對(duì)源碼進(jìn)行了重新的組織,更人性化,更體現(xiàn)了源碼的相關(guān)性和功能性。
  1.2 虛目錄劃分
  對(duì)于虛目錄的劃分,主要是從以下4個(gè)方面來(lái)綜合考慮的:
 ?。?)重點(diǎn)閱讀了Linux內(nèi)核源碼[1-6]。眾所周知,功能相關(guān)聯(lián)或者類(lèi)似的內(nèi)核代碼大多都在相同目錄下(比如ext4和btrfs都在fs目錄下),因此Linux內(nèi)核源碼的組織方式可以作為模塊劃分的一個(gè)重要參考;
 ?。?)參考關(guān)于內(nèi)核的經(jīng)典書(shū)籍(如:《Understanding the Linux Kernel》[1]、《Professional Linux Kernel Architecture》[2]、《Linux內(nèi)核源代碼情景分析》[3]、《Linux操作系統(tǒng)內(nèi)核分析》[4]、《Linux內(nèi)核分析及高級(jí)編程》[5]、《Linux內(nèi)核完全注釋》[6]等),這些書(shū)籍的各個(gè)章節(jié)(比如進(jìn)程、內(nèi)存管理、虛擬文件系統(tǒng))既可作為各個(gè)子模塊來(lái)進(jìn)行單獨(dú)分析,同時(shí)排版上相鄰的章節(jié)(比如進(jìn)程、中斷等)關(guān)聯(lián)比較緊密,可以考慮劃分到大的模塊中來(lái)進(jìn)行分析;
 ?。?)參考現(xiàn)有的一些模塊劃分手段,比如主流的五大子系統(tǒng)的劃分:內(nèi)存管理、進(jìn)程調(diào)度、進(jìn)程間通信、虛擬文件系統(tǒng)、網(wǎng)絡(luò)子系統(tǒng),以及kernel map圖;
 ?。?)查看了Linux內(nèi)核的維護(hù)者列表,由相同人員來(lái)維護(hù)的內(nèi)容,往往是同一個(gè)子模塊,或者是同一模塊的不同子模塊,這可以作為模塊劃分輔助手段,來(lái)幫助確定各個(gè)模塊的劃分;
 ?。?)與紅帽、阿里等內(nèi)核小組負(fù)責(zé)人進(jìn)行交流,對(duì)于存在疑問(wèn)、分歧的劃分點(diǎn)進(jìn)行討論,以保證劃分的合理性。
  虛目錄相對(duì)于實(shí)目錄,最大的改變?cè)谟谝韵聨c(diǎn):
  (1)/kernel文件夾:實(shí)目錄中,此文件夾的意義并不是很明確,所包含的文件功能涉及很多模塊,需要將其劃分到多個(gè)模塊中;
 ?。?)/arch文件夾:實(shí)際運(yùn)行的Linux系統(tǒng)中只有一種體系架構(gòu),任一體系結(jié)構(gòu)中包含的文件也是涉及內(nèi)核中的各個(gè)大模塊的,為了保證其他各個(gè)模塊功能的完整性,需要將/arch文件夾下的各個(gè)體系架構(gòu)所包含的文件細(xì)分到其他各大模塊中,剩余的common文件應(yīng)該隸屬于系統(tǒng)管理;
 ?。?)/mm、/virt/kvm等目錄:內(nèi)核中有一些這樣的模塊,從它的機(jī)制來(lái)理解,它應(yīng)該是架構(gòu)分層的,但是在實(shí)際的源碼中卻并非如此,它將包含的所有文件平級(jí)地放在了一個(gè)大文件夾下,對(duì)于這樣的模塊,本文按照架構(gòu)和功能對(duì)其重新做了劃分;
 ?。?)將Linux內(nèi)核分成以下8大模塊:進(jìn)程管理、內(nèi)存管理、系統(tǒng)運(yùn)行、文件系統(tǒng)、網(wǎng)絡(luò)模塊、安全模塊、設(shè)備管理和虛擬化(各個(gè)模塊具體內(nèi)容可以參看下面的模塊圖);同時(shí),由于各個(gè)大模塊的功能和復(fù)雜程度各不相同,為了較好地對(duì)各模塊進(jìn)行分析,并沒(méi)有拘泥于嚴(yán)格的模塊分層,而是針對(duì)每個(gè)特定的模塊進(jìn)行了適當(dāng)?shù)姆謱樱瑥亩玫赝瓿蓪?duì)各個(gè)模塊的分析。
  圖1為L(zhǎng)inux內(nèi)核虛目錄。

Image 002.png

2 軟件架構(gòu)設(shè)計(jì)
  本軟件采用B/S架構(gòu),系統(tǒng)架構(gòu)圖如圖2所示。

Image 003.png

  根據(jù)上面的架構(gòu)設(shè)計(jì),可以把系統(tǒng)分為圖3所示的幾個(gè)模塊。
  各模塊設(shè)計(jì)如下:

Image 004.png

  展示模塊:負(fù)責(zé)前臺(tái)數(shù)據(jù)的展示,可以分為如下兩個(gè)子模塊:
 ?。?)布局模塊:用來(lái)計(jì)算各個(gè)矢量圖的坐標(biāo)位置布局,以及拖拽、放大、縮小等之后的布局。
  (2)渲染模塊:將布局模塊計(jì)算好之后的坐標(biāo),使用Raphael的庫(kù)來(lái)渲染到界面上。
  數(shù)據(jù)交互模塊:
 ?。?)數(shù)據(jù)獲取模塊:從MySQL數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),經(jīng)過(guò)格式化之后,轉(zhuǎn)換成json格式。
  (2)數(shù)據(jù)持久化模塊:提供數(shù)據(jù)持久化接口,可以將數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中。
  數(shù)據(jù)爬取模塊:
  (1)數(shù)據(jù)實(shí)體(虛目錄、模塊、文件、函數(shù)、變量)爬取:①爬取虛目錄、模塊以及文件并存儲(chǔ)到數(shù)據(jù)庫(kù)之中;②爬取文件中函數(shù)及變量的數(shù)據(jù),并存儲(chǔ)到數(shù)據(jù)庫(kù)中。
  (2)關(guān)系爬?。号廊。?)中的元素之間的關(guān)系,并存儲(chǔ)到數(shù)據(jù)庫(kù)中。
  2.1 展示模塊
  前端采用Jquery和Raphael在Web界面上畫(huà)出所需要的矢量圖,用來(lái)表示模塊及模塊之間的關(guān)系,以及函數(shù)/變量之間的關(guān)系。
  2.2 數(shù)據(jù)交互模塊
  交互式圖解軟件中,使用PHP作為中間層,連接前端界面與后端數(shù)據(jù)庫(kù),前端使用的JavaScript繪圖引擎會(huì)向PHP發(fā)出getJSON請(qǐng)求,PHP解析參數(shù),完成指定類(lèi)型的數(shù)據(jù)查詢工作,最后形成與前端統(tǒng)一標(biāo)準(zhǔn)json結(jié)構(gòu),利用回調(diào)函數(shù)的形式返回給前端繪圖引擎。其整個(gè)過(guò)程如圖4所示。

Image 005.png

  2.3 數(shù)據(jù)爬取模塊
  數(shù)據(jù)爬取模塊主要負(fù)責(zé)數(shù)據(jù)實(shí)體(虛目錄、模塊、文件、函數(shù)、變量)爬取以及這些實(shí)體之間關(guān)系的爬取。爬取模塊邏輯如圖5所示。

Image 006.png

  整體思想:
 ?。?)根據(jù)Linux內(nèi)核文檔kconfig-language.txt的說(shuō)明,了解Kconfig語(yǔ)法規(guī)則。在此基礎(chǔ)上,對(duì)Linux內(nèi)核的Kconfig文件做語(yǔ)法分析,爬取出Linux定義的編譯選項(xiàng)及其之間的關(guān)系。
 ?。?)根據(jù)Linux內(nèi)核文檔makefile.txt和modules.txt的說(shuō)明,了解Makefile文件中,定義編譯選項(xiàng)對(duì)應(yīng)文件的規(guī)則。在此規(guī)則基礎(chǔ)上,對(duì)Linux內(nèi)核的Makefile文件進(jìn)行語(yǔ)法分析,爬取出編譯選項(xiàng)與文件關(guān)系。
 ?。?)函數(shù)與文件關(guān)系的數(shù)據(jù)爬取方面,可用的現(xiàn)成開(kāi)源工具較多,經(jīng)過(guò)調(diào)研,可以使用到的工具主要有:Clang編譯器、ctags、cscope、eclipse CDT插件、pycparser等。互補(bǔ)的運(yùn)用這些工具,對(duì)Linux內(nèi)核源碼文件進(jìn)行AST或者符號(hào)標(biāo)記的生成并輸出為中間文件,然后對(duì)這些文件進(jìn)行讀取,可以解析獲得變量、函數(shù)、宏的定義與它們之間的調(diào)用關(guān)系。
  在爬取完上述關(guān)系之后,存在一個(gè)比較大的疑問(wèn),即虛目錄如何與編譯選項(xiàng)對(duì)應(yīng)虛目錄與編譯選項(xiàng)的對(duì)應(yīng),可以通過(guò)文件巧妙的連接起來(lái)。對(duì)于劃分好的虛目錄的爬取,得到了虛目錄與文件的層次結(jié)構(gòu);對(duì)于Makefile的爬取,得到了編譯選項(xiàng)與文件的對(duì)應(yīng)關(guān)系。從而,通過(guò)一個(gè)編譯選項(xiàng)包含了哪些文件,這些文件位于哪些虛目錄下,就可以確定編譯選項(xiàng)位于哪些虛目錄下了。
3 軟件展示
  3.1 實(shí)例場(chǎng)景
  內(nèi)核的輸入和輸出都屬于設(shè)備驅(qū)動(dòng)的范疇。在進(jìn)行虛目錄劃分時(shí),將其劃分為設(shè)備驅(qū)動(dòng)下輸入子系統(tǒng)。內(nèi)核的輸入子系統(tǒng)是對(duì)分散、多種不同類(lèi)別的輸入設(shè)備(如鍵盤(pán)、鼠標(biāo)、操縱桿、觸摸屏、加速計(jì)和手寫(xiě)板)進(jìn)行統(tǒng)一處理的驅(qū)動(dòng)程序。
  內(nèi)核輸入子系統(tǒng)的頂層核心編譯選項(xiàng)配置是CONFIG_INPUT,Kconfig中說(shuō)明如圖6所示。

Image 007.png

  可以看出,此編譯選項(xiàng)默認(rèn)為打開(kāi)狀態(tài),任何輸入設(shè)備(mouse、keyboard…)需要連接到系統(tǒng),必須保證其為打開(kāi)狀態(tài),不然輸入設(shè)備是無(wú)法加載驅(qū)動(dòng)的。
  相應(yīng)Makefile的定義如圖7所示。

Image 008.png

  可以看出,配置該選項(xiàng)后,將編譯input.c、input-compat.c、input-mt.c、ff-core.c,通過(guò)實(shí)際分析文件可以了解到,這些文件中實(shí)現(xiàn)了諸如input_register_handler(),input_unregister_handler()等INPUT子系統(tǒng)的核心函數(shù)。
  而mosue dev很顯然屬于輸入設(shè)備中的一部分。既然CONFIG_INPUT是輸入子系統(tǒng)的頂層核心編譯選項(xiàng),那么實(shí)際的輸入設(shè)備的配置必然是依賴于它的,從Kconfig的定義中發(fā)現(xiàn)/drivers/input/Kconfig片段如圖8所示。

Image 009.png

  INPUT_MOUSEDEV編譯選項(xiàng)確實(shí)處于INPUT配置的IF條件中(為了方便截圖,用省略號(hào)省去了其他配置說(shuō)明)。

Image 010.png

  從相應(yīng)的Makefile的定義(如圖9所示)中可以看出,配置該選項(xiàng)后,將編譯mousedev.c文件,通過(guò)實(shí)際分析文件可以了解到,文件中實(shí)現(xiàn)了諸如mousedev_init()、mousedev_exit()等與mouse dev相關(guān)的核心函數(shù)。
  實(shí)際分析文件中的函數(shù)如圖10所示。

Image 011.png

  mousedev_init()在進(jìn)行鼠標(biāo)設(shè)備初始化時(shí),需要調(diào)用input.c的函數(shù)input_register_handler()注冊(cè)一個(gè)鼠標(biāo)類(lèi)型的Handler,這里的Handler是鼠標(biāo)類(lèi)設(shè)備的統(tǒng)一處理接口,如圖11所示。

Image 012.png

  同樣,mousedev_exit()在進(jìn)行鼠標(biāo)設(shè)備的退出時(shí),需要調(diào)用文件input.c的函數(shù)input_unregister_handler()來(lái)注銷(xiāo)初始化時(shí)注冊(cè)的鼠標(biāo)Handler。從最低層的函數(shù)調(diào)用中體現(xiàn)出了INPUT_MOUSEDEV對(duì)于INPUT編譯選項(xiàng)的依賴性。
  3.2 實(shí)際演示
  圖解軟件首頁(yè)如圖12所示。

Image 013.png

  對(duì)上述機(jī)制進(jìn)行說(shuō)明,當(dāng)進(jìn)行虛目錄劃分時(shí),INPUT子系統(tǒng)被劃分到了設(shè)備驅(qū)動(dòng)中,并且由于input.c和mousedev.c中實(shí)現(xiàn)的函數(shù)都是輸入輸出中通用的機(jī)制,因此二者都被劃分到了虛目錄input-common中,由于虛目錄和編譯選項(xiàng)的包含關(guān)系是通過(guò)文件聯(lián)系的,從而包含文件input.c和mousedev.c的編譯選項(xiàng)INPUT和INPUT_MOUSEDEV會(huì)出現(xiàn)在虛目錄input-common中。接下來(lái)通過(guò)圖解軟件進(jìn)行展示(具體編譯選項(xiàng)位置:設(shè)備驅(qū)動(dòng)->iput->input-common),展開(kāi)后可以看到(注:以下展示過(guò)程中,為了使得所展示的模塊間關(guān)系突出,均使用過(guò)濾操作濾除了其他不相關(guān)線條):
 ?。?)INPUT_MOSUEDEV到INPUT編譯選項(xiàng)的依賴關(guān)系如圖13所示。


Image 014.png


 ?。?)展開(kāi)編譯選項(xiàng)INPUT,可以看到INPUT_ MOUSEDEV對(duì)于INPUT編譯選項(xiàng)包含的文件drivers/input/input.c的依賴關(guān)系,如圖14所示。

Image 015.png

 ?。?)展開(kāi)INPUT_MOUSEDEV編譯選項(xiàng),可以看到,INPUT_MOUSEDE編譯選項(xiàng)包含的文件drivers/input/mousedev.c對(duì)于INPUT編譯選項(xiàng)包含的文件drivers/input/input.c的依賴關(guān)系,如圖15所示。

Image 001.png

 ?。?)展開(kāi)文件drivers/input/mousedev.c,可以看到drivers/ input/mousedev.c包含的函數(shù)mouse_init和mouse_exit對(duì)于文件drivers/input/input.c的依賴關(guān)系,如圖16所示。

Image 016.png

 ?。?)展開(kāi)文件drivers/input/input.c,可以看到drivers/input/mousedev.c包含的函數(shù)mouse_init和mouse_exit對(duì)于文件drivers/input/input.c包含的函數(shù)input_register_handler和input_unregister_handler的依賴關(guān)系,如圖17所示。

Image 017.png

4 結(jié)論
  本文在虛目錄的基礎(chǔ)上,圍繞著編譯選項(xiàng)提出了一套完整的開(kāi)發(fā)交互式圖解軟件的設(shè)計(jì)方案。一方面,此交互式圖解軟件為L(zhǎng)inux學(xué)習(xí)者提供了準(zhǔn)確而便捷的途徑,同時(shí)也為高級(jí)用戶提供了深入探討Linux內(nèi)核的平臺(tái);另一方面,此軟件可以與“在線源碼協(xié)同分析平臺(tái)”和社區(qū)進(jìn)行集成,將Linux體系構(gòu)架的分析成果作為軟件中的編譯選項(xiàng)、文件以及函數(shù)和變量的注釋說(shuō)明來(lái)在線展示,有著非常廣泛的應(yīng)用前景。
  參考文獻(xiàn)
  [1] DANIEL P B, MARCO C. Understanding the Linux Kernel(3rd Edition)[M]. O′Reilly,2005.
  [2] MAUERER W. Professional Linux Kernel Architecture[M]. Wiley, 2008.
  [3] 胡希明,毛德操. Linux內(nèi)核源代碼情景分析[M].杭州:浙江大學(xué)出版社,2001.
  [4] 陳莉君.Linux 操作系統(tǒng)內(nèi)核分析[M].北京:人民郵電出版社,2000.
  [5] 吳國(guó)偉,李張,任廣臣.Linux內(nèi)核分析及高級(jí)編程[M].北京:電子工業(yè)出版社,2008.
  [6] 趙炯.Linux內(nèi)核完全注釋[M].北京:機(jī)械工業(yè)出版社,2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 特级a做爰全过程片 | 久久精品国产99久久无毒不卡 | 欧美性视频播放 | 九九99靖品| 免费无码成人片 | 一区二区三区国产在线 | 久久精品人妻少妇一区二区三区 | 国产精品88av | 亚洲精品乱码久久久久久按摩 | 久久日本香蕉一区二区三区 | 人妻另类 专区 欧美 制服 | 欧美三级一区二区三区 | 五月天天丁香婷婷在线中 | 国产真实乱免费高清视频 | 国产乱视频在线观看 | 色优久久| 欧美日产国产精品 | 中文字幕色av一区二区三区 | 亚洲第一伊人 | 人妻互换 综合 | 天码av无码一区二区三区四区 | 久久久久久久毛片 | 91theporn国产在线观看 | 色淫网站免费视频 | 狠狠色狠狠色综合日日小说 | 久久98 | 国产福利视频 | 日本一级xxxx| 男人天堂久久 | 欧美极品一区二区三区 | 久久永久免费 | 999zyz玖玖资源站永久 | 第一福利在线视频 | 寂寞少妇按摩spa高潮91 | 日本三区视频 | 久久精品国产精品国产精品污 | 亚洲在线一区二区 | 狠狠干av | a级毛片大全 | 色污网站 | 国内久久精品视频 | 曰韩精品一区二区 | 国精产品一品二品国精品69xx | 精产国品一二三产区m553麻豆 | 国产熟女一区二区三区四区五区 | 黄色在线观看免费视频 | 精品三级av无码一区 | 人妻精品久久无码区 | 一本大道久久a久久综合婷婷 | www68av蜜桃亚洲精品 | 国产美女包臀裙一区二区 | 久久99精品久久久久久 | 奶涨边摸边做爰爽别停快点视频 | 久久久久久色 | 亚洲精品久久 | 中文字幕午夜精品一区二区三区 | 国产永久免费观看视频 | 日韩午夜在线观看 | 免费在线观看黄色网 | 精品黑人一区二区三区久久 | 久久免费看a级毛毛片 | 99热久久精品免费精品 | 99亚洲视频| 草草夜色精品国产噜噜竹菊 | 免费黄色在线观看 | 午夜视频在线免费 | 日产欧产美韩系列久久99 | 天天干天天操天天拍 | 国产精品久免费的黄网站 | 在线观看视频一区 | 91久久久久久波多野高潮 | 91porny真实丨国产18 | 每日在线观看av | 国产av激情久久无码天堂 | 天天躁日日躁狠狠躁喷水软件 | 肉嫁高柳家在线看 | 亚洲中文字幕av在天堂 | 亚洲精品高清视频 | 免费一级淫片a人观看69 | 男人的天堂视频在线观看 | 欧美激情视频在线 | 黄片毛片av | 中国香蕉视频 | 亚洲高清揄拍自拍午夜婷婷 | 在线免费成人 | 亚洲精品精华液一区 | 久久摸摸碰碰97网站 | 在线观看日本视频 | 超碰在线观看免费 | 学生妹亚洲一区二区 | 午夜免费小视频 | 黄色变态网站 | 日本网站在线 | 日本无遮挡边做边爱边摸 | 国产精品久久久久影院色老大 | 亚洲成人高清在线 | 全黄性性激高免费视频 | 成人91看片 | 天天av综合 | 日本综合久久 | 精品熟人一区二区三区四区 | 五月天福利视频 | 免费久久日韩aaaaa大片 | 成人污在线观看 | 伊人狠狠色j香婷婷综合 | 亚洲人成精品久久久久 | 中出人妻中文字幕无码 | 男女互操视频网站 | 少妇人妻偷人精品视频 | 少妇性aaaaaaaaa视频 | 久久99精品久久久久久动态图 | 区二区欧美性插b在线视频网站 | 国产欧美日韩久久久久 | 丁香六月激情综合 | 蜜桃成人无码区免费视频网站 | 国产午夜亚洲精品羞羞网站 | 国 产 黄 色 大 片 | 亚洲欧美日本一区二区三区 | 欧美性xxxxx极品少妇 | 欧美乱人伦人妻中文字幕 | 日韩久久毛片 | 欧美一本 | 在线观看欧美一区二区三区 | 亚洲校园激情 | 中文字幕无线码一区 | 三级黄在线观看 | 黑人巨大精品欧美一区二区小视频 | 日日躁夜夜躁狠狠久久av | 野外性满足hd | 少妇挑战三个黑人惨叫4p国语 | 亚洲国产一区二区视频 | 国产爆乳美女娇喘呻吟 | 欧美成人动态图 | 成人天堂666 | 禁片天堂 | 中文字幕乱码在线蜜乳欧美字幕 | 欧美精选一区二区三区 | 嫩草影院wwwnyz五月天 | 东方成人av | 久久精品网 | 国产av福利久久精品can | 日韩欧美亚洲综合 | 国产白丝精品91爽爽久久 | 色视频网站免费看 | 一级黄色在线 | 一区二区三区日韩 | 精品综合网 | 那里可以看毛片 | 狠狠色丁香九九婷婷综合五月 | 久久久免费观看视频 | 国产边打电话边做对白刺激 | 99在线精品视频观看 | 久久精品99国产精品酒店日本 | 日本五月天婷久久网站 | 无码中文字幕日韩专区 | 国产成人精品日本亚洲专区61 | 老司机精品久久 | 中文字幕av无码不卡免费 | 最新亚洲人成网站在线观看 | 日本精品一区二区三区在线观看 | 人人妻人人插视频 | 欧美在线播放一区 | www.国产视频.com | 爱看av在线 | 国产一区二区三区自拍 | 久久99免费 | 国产在线永久视频 | 91欧美日韩国产 | 国产精品免费久久久久软件 | 国产999精品久久久影片官网 | 国产免费午夜福利757 | 激情文学亚洲 | 欧美mv日韩mv国产网站 | 玖玖精品视频 | 自拍偷拍欧美日韩 | 亚洲影音先锋 | 成人亚洲精品久久久久 | 多p混交群体交乱在线观看 多男一女一级淫片免费播放口 | 国产精品乱码一区二区三区 | 免费亚洲视频 | 国产精品乱码久久久久久1区2区 | 麻豆欧美| 看全色黄大色大片免费久久 | 网站黄在线观看 | 色哟哟免费在线观看 | 成人三级做爰视频在线看 | 日本成人免费 | 国产精品亚洲综合色区韩国 | 中文字幕无码日韩欧毛 | 国产精品污www在线观看 | 裸体丰满少妇淫交 | 欧美人与动性行为视频 | 亚洲女人av久久天堂 | 97成网| 国产亚洲日韩欧美另类第八页 | 51久久精品夜色国产麻豆 | 香蕉久久国产av一区二区 | 国产欧美日韩va另类在线播放 | 开心春色激情网 | 欧美精品一区二区三 | 91麻豆精品传媒一二三区 | 国产在线永久视频 | 无码中文字幕波多野结衣 | 精品99在线观看 | 性欧美视频 | 国产免费a | 97人妻人人做人碰人人爽 | 少妇毛片一区二区三区 | 欧美性xxxx偷拍 | 国产免费看又黄又粗又硬 | 精品国产乱码久久久久夜深人妻 | 伊人伊人鲁| 一本大道伊人av久久综合 | 久久国产精品免费一区二区三区 | 超碰在线观看97 | 日本少妇高潮xxxxx另类 | 免费av片| 高潮久久久久久久久 | 亚洲欧美综合精品另类天天更新 | 日本三级欧美三级高潮365 | 女色综合 | 可以直接观看的av | 在线成人亚洲 | 91热爆视频| 香蕉人人精品 | 国产裸体歌舞一区二区 | 国产精品一二三四 | 黑色丝袜国产精品 | 欧美一区二区三区四区视频 | 久久综合伊人77777麻豆最新章节 | www.av在线免费观看 | 九九视频这里只有精品 | 国产成人a人亚洲精v品无码 | 人人狠狠综合久久亚洲 | 美女成人在线 | 欧产日产国产精品 | 蜜臀99久久精品久久久久久软件 | 国产精品入口传媒小说 | 中文字幕在线观看国产 | 国产主播99 | 亚洲视频中文字幕 | 少妇乳大丰满太紧 | 男女日批网站 | 波多野结衣的av一区二区三区 | 情侣呻吟对白精品av | 男女偷爱性视频刺激 | 成人在线视屏 | 五月天国产精品 | 丰满人妻精品国产99aⅴ | 在线一区av | 91秘密入口 | 久久久久久久香蕉 | 最新三级av | 日韩欧美一区二区在线观看视频 | 日b免费视频 | 成人av高清在线观看 | www.91色.com| 久久久久成人精品免费播放动漫 | 极品无码国模国产在线观看 | 国产真实乱对白精彩久久老熟妇女 | 成人性做爰片免费视频 | 91网站在线观看视频 | 亚洲一区无 | 中文字幕一二区 | 窝窝人体色www | 国产在热线精品av | 日韩插插插 | 成人午夜激情视频 | 精品视频免费久久久看 | 香蕉av777xxx色综合一区 | 欧美日韩大片在线观看 | 精品国产第一区二区三区的特点 | 成人性生交大片免费看vr | 伊人网视频在线 | 国产成人一级片 | 亚洲19禁大尺度做爰无遮挡 | 一区二区视频网站 | 高跟鞋av| 亚洲图片欧美日韩 | 国产免费观看黄av片 | 欧美成人免费网址 | 日韩精品无码人妻一区二区三区 | 国产在线拍偷自揄拍无码 | 十八岁以下禁止观看黄下载链接 | 日韩精品综合 | 可播放的亚洲男同网站 | 亚洲精品一区二区三区蜜桃 | 狼人青草久久网伊人 | 又色又爽又黄又刺激免费 | 自拍偷拍五月天 | 影音先锋男人站 | 欧美一级日韩一级 | 欧美巨鞭大战丰满少妇 | 日本一二三区在线 | 色七七视频 | 古装三级做爰在线观看 | h视频在线免费看 | 李丽珍毛片 | 男女一边摸一边做爽视频 | 欧美成年黄网站色视频 | 国产成人小视频 | www久久撸撸网 | 日本不卡视频在线播放 | 亚洲蜜桃av一区二区 | 亚洲国产中文字幕 | 成年在线观看 | 国产69精品一区二区亚洲孕妇 | 插我舔内射18免费视频 | 天干天干天啪啪夜爽爽av小说 | 日韩欧美毛片 | 揉少妇高挺双乳 | 日本在线看片免费人成视频 | 国内精品九九久久精品 | 日本少妇aa特黄毛片亚洲 | 在线播放污 | 德国做爰xxxⅹ性 | 91麻豆精品国产91久久久久久久久 | 中文成人无字幕乱码精品区 | ass嫩粉嫩粉嫩pⅰcs | 国产熟女内射oooo | 第一次破处视频 | 国产成人一级片 | 中文字幕在线一区二区三区 | 午夜天堂一区人妻 | 国产情侣av在线 | 精品美女在线观看 | 国产男女爽爽爽免费视频 | 中文字幕在线播放av | 性高朝久久久久久久3小时 av片在线观看 | 97精品久久 | 国产伦子伦视频在线观看 | 在线免费亚洲 | 手机在线免费看av | 噜噜吧噜噜色 | 成人做爰www免费看视频网战 | 国产激情91久久精品导航 | 色偷偷噜噜噜亚洲男人 | 日韩免费一级 | 国产综合久久 | 人妻少妇精品久久 | 亚洲欧美日韩成人高清在线一区 | 精品久久久久香蕉网 | 黄网站色视频免费观看 | 做爰xxxⅹ高潮69网站 | 国产欧美又粗又猛又爽 | 慈禧一级淫片免费放特级 | 欧美久久久久久久久久久久久久 | 天天操国产 | 国产精品久久夂夂精品香蕉爆 | 7777精品久久久久久 | 午夜免费看 | 欧美大香线蕉线伊人久久 | 日本绝伦老头与少妇在线观看 | 中文字幕第8页 | 粉嫩在线 | 成人黄色大片 | 免费成人用春色 | 久久久久久久无码高潮 | 九色丨porny丨肥臀 | 精久久久久久久 | 国产主播喷水 | 西西人体www44rt大胆高清 | 九九综合九色综合网站 | 欧美一级大黄大黄大色毛片小说 | 久久精品成人欧美大片 | 97综合在线| 91精品欧美一区二区三区 | 婷婷激情偷拍在线 | 国产变态拳头交视频一区二区 | 天天躁夜夜踩很很踩2022 | 97se亚洲国产综合在线 | 少妇淫真视频一区二区 | 亚洲综合欧美在线一区在线播放 | 国产精品成人精品久久久 | 久久黄网站| 日本精品4080yy私人影院 | 久久国产精品萌白酱免费 | 亚洲欧美综合精品久久成人 | 久久老女人 | 人妻熟妇女的欲乱系列 | 亚洲天堂av在线免费观看 | 青柠影视在线观看免费高清中文 | 中国亚州女人69内射少妇 | 国产又粗又爽又猛又大的动漫片 | 国产污视频网站 | 精品久久久久久无码中文野结衣 | 日本aaaa级毛片在线看 | 美女露出给别人摸图片 | 影音先锋激情 | 性欧美巨大 | 深夜影院在线观看 | 麻豆av少妇aa喷水 | 成人欧美一区二区 | 在线a久青草视频在线观看 无套内射极品少妇chinese | 国产综合精品一区二区三区 | 偷拍欧美亚洲 | 国产又粗又爽又猛又大的动漫片 | 久久午夜精品 | 一级特色大黄美女播放 | 精品久久久久中文字幕日本 | av国産精品毛片一区二区三区 | 五月天婷婷在线视频 | 亚洲日本国产 | 成人资源站 | 久操视频免费在线观看 | 久草网视频 | 中文字幕乱码一区av久久不卡 | 午夜裸体性播放 | 日韩欧美中文字幕精品 | 青青草原综合久久大伊人精品 | 国产精品三区四区 | 欧美在线激情视频 | 久久久无码人妻精品一区 | 欧美性色网 | 日本大学生三级三少妇 | 天堂欧美城网站地址 | 色呦呦在线看 | 在线观看黄色免费网站 | 任你躁国产自任一区二区三区 | 18禁超污无遮挡无码免费游戏 | 777午夜福利理论电影网 | 巴西少妇xxb大毛又多 | 日本一区二区三区在线免费观看 | 亚洲欧洲色图 | 天天舔天天射 | 国产91会所洗浴女技师 | 国产精品欧美一区二区三区不卡 | 青青视频免费观看 | 精品国产一区二区三区小蝌蚪 | 91看片看淫黄大片 | 国产毛片久久久 | 中文在线好最新版在线 | 国产女人久久精品视 | 夜夜爱网站 | 久久免费手机视频 | 久久99国产综合精品免费 | 国产女人高潮视频在线观看 | 风韵少妇spa私密视频 | 精品五月天 | 色情无码www视频无码区小黄鸭 | 黑人粗一硬一长一进一爽一a级 | 最近2019中文字幕大全第二页 | 国产农村妇女精品一二区 | 五月花成人网 | 少妇色视频 | 人人搞人人插 | 黄色片视频在线观看 | av在线不卡观看 | av日韩网址 | 国产在线国产 | 小明看国产| 中文字幕人妻熟女人妻 | 8888四色奇米在线观看 | 成人免费无码大片a毛片抽搐 | 国产精品视频久久久久 | 视频免费1区二区三区 | 亚洲精品在线看 | 男女又爽又黄激情免费视频大 | 日本v片做爰免费视频网站 日本www | 免费一级做a爰片久久毛片潮喷 | 波多野结衣视频网址 | 日本色片网站 | 日本高清不卡aⅴ免费网站 久久精品国产av一区二区三区 | 久久久久一级片 | 97色精品视频在线观看 | 亚洲欧美综合精品久久成人 | 黑人一区二区三区 | 毛片在线免费观看网址 | 亚洲精品在线观 | 国产裸体无遮挡免费视频 | 性xxxx| 在线超碰91 | 成人久久大片91含羞草 | hd国产人妖ts另类视频 | 久久99精品视频 | 内射小寡妇无码 | 视频福利在线 | 国产乱人伦无无码视频试看 | 国产又粗又硬又大爽黄 | 欧美性xxxx在线播放 | 长河落日电视连续剧免费观看 | 色偷偷欧美 | 亚洲色大成网站www永久在线观看 | 久久亚洲视频 | www好了avcom| 国产乱人乱精一区二视频 | 最新国产在线拍揄自揄视频 | 波多野结衣不卡 | 亚洲国产成人精品无码一区二区 | 99re8在线精品视频免费播放 | 免费观看又色又爽又黄6699 | 日韩人妻熟女毛片在线看 | 国产激情无码一区二区app | 女人内谢aaaa免费视频 | 精品国产www | 亚洲第三色 | 婷婷网色偷偷久久久99超碰 | 亚欧成人精品一区二区 | 久久久久久国产视频 | 91ts国产人妖系列 | 少妇被黑人到高潮喷出白浆 | 日韩欧美网站 | 欧美第一页浮力影院 | 欧美美女一区 | 黄色suv视频 | 青青草毛片 | 欧美日韩午夜爽爽 | 性做爰免费观看 | 激情六月天 | 国产一区二区不卡视频 | 97视频久久 | 午夜性剧场 | 无码国产精品一区二区免费3p | 国产对白叫床清晰在线播放图片 | 精品性高朝久久久久久久 | 日韩精品视频在线一区 | 国产亚洲日韩欧美另类第八页 | 美日韩黄色片 | 日产欧美一区二区三区不上 | 亚洲天堂久久久 | 亚洲肥老太bbw中国熟女 | 亚洲最大在线观看 | 欧美亚洲色综久久精品国产 | 风间由美不戴奶罩邻居勃起av | 插少妇视频| 日韩成人久久 | 国产三级在线视频 一区二区三区 | 人人人妻人人澡人人爽欧美一区 | 日日躁夜夜躁aaaabbbb | 国产成人精品亚洲一区 | 亚洲国产精品丝袜国产自在线 | 首尔之春在线观看 | 在线免费观看福利 | 天堂一区在线 | 毛片一级在线观看 | 天堂男人网 | 人妻激情偷乱视频一区二区三区 | 热热色视频 | 精品久久免费视频 | 人妻插b视频一区二区三区 亚洲毛片av日韩av无码 | 与黑人高h系列辣文 | 大肉大捧一进一出视频 | 日本疯狂做爰xxxⅹ高潮视频 | 美女毛片在线看 | 日本美女a级片 | 久色视频在线播放 | 91精品久久久久久久蜜月 | 俄罗斯伦理精品a级 | 免费黄色小说视频 | 中文字幕日本视频 | 国产成人综合在线观看不卡 | 国产高潮好爽受不了了夜夜做 | 乱人伦中文无码视频在线观看 | 成年在线网站免费观看无广告 | 日韩人妻不卡一区二区三区 | 性欢交69精品久久久 | 亚洲一区视频在线 | 亚洲欧洲无码av电影在线观看 | 欧美午夜大片 | 黄色毛片av| 日韩xx视频 | 亚洲性少妇 | 强开小嫩苞一区二区三区网站 | 精品日韩视频 | 少妇做爰免费视看片 | 国产成人99久久亚洲综合精品 | 成人免费毛片片v | 91看片一区二区三区 | 夜夜爽夜夜叫夜夜高潮漏水 | 国产精品无码久久久久久久久久 | 日日摸日日添日日碰9学生露脸 | 日日夜夜亚洲 | 国产精品久久久久久久久久辛辛 | 天堂8中文在线 | 国产女无套免费网在线观看 | 婷婷午夜精品久久久久久性色av | 亚洲aⅴ天上人间在线观看 亚洲aⅴ在线 | 中文字幕第一页av | av网天堂 | 五月婷婷丁香 | 国产精品igao视频网免费播放 | 精品美女一区二区 | 96毛片 | 色琪琪久久草在线视频 | 国产91传媒 | 午夜 国产 | 欧美在线性爱视频 | 学生粉嫩无套白浆第一次 | 亚洲一区欧美二区 | 久久亚洲精品久久国产一区二区 | 99re热这里只有精品视频 | 97精品视频在线观看 | 成人性生交片无码免费看 | 成人网站免费观看 | 忘忧草日本在线播放www | 亚色图| 永久免费观看美女裸体的网站 | 一级特色大黄美女播放 | 久久二区三区 | 亚洲欧美丝袜精品久久 | 已婚少妇美妙人妻系列 | 18禁高潮出水呻吟娇喘蜜芽 | 黄三级| 日本三级韩国三级美三级91 | 亚洲精品乱码一区二区三区 | 日本三级香港三级人妇99 | 热舞福利精品大尺度视频 | 国产亚洲精品久久久久的角色 | 国产男男无套激情11069 | 亚洲欧美自偷自拍 | 二区久久 | 精品视频一区二区三区四区五区 | 亚洲一区黄色 | 日本性网站 | 夜夜高潮夜夜爽夜夜爱 |