• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Linux 內(nèi)核及0 號進程啟動分析?

    2020-12-23 11:50:26徐晨升張瓊聲孟祥奎
    計算機與數(shù)字工程 2020年11期
    關(guān)鍵詞:保護模式描述符內(nèi)核

    徐晨升 張瓊聲 孟祥奎

    (中國石油大學(xué)(華東)計算機與通信工程學(xué)院 青島 266580)

    1 引言

    在全球超級計算機TOP500強操作系統(tǒng)排行榜中,Linux的占比最近幾十年長期保持在85%以上,且一直呈現(xiàn)快速上升趨勢。目前Linux服務(wù)器操作系統(tǒng)在整個服務(wù)器操作系統(tǒng)市場格局中占據(jù)越來越多的市場份額,已經(jīng)形成大規(guī)模市場應(yīng)用的局面,尤其在政府、金融、農(nóng)業(yè)、交通、電信等國家關(guān)鍵領(lǐng)域。同時Linux在嵌入式系統(tǒng)方面也得到了廣泛應(yīng)用。比如Android 操作系統(tǒng)就是創(chuàng)建在Linux 內(nèi)核之上的。然而,我國在核心信息技術(shù)產(chǎn)業(yè)方面仍然與國外有較大差距,比如在cpu 和操作系統(tǒng)領(lǐng)域,尤其是在中興事件之后,發(fā)展自主可控的核心信息技術(shù)產(chǎn)業(yè)已變成一種迫切需求。

    本文從Linux 內(nèi)核源代碼的角度深入討論Linux 內(nèi)核是如何在裸機上被加載運行的,同時介紹了cpu 工作模式[1]的轉(zhuǎn)換以及創(chuàng)建0 號進程并啟動它的全過程。為后續(xù)深入研究Linux內(nèi)核包括內(nèi)存管理、文件系統(tǒng)、進程調(diào)度、進程通信等核心模塊的實現(xiàn)與優(yōu)化奠定良好的實踐和理論基礎(chǔ),希望對Linux學(xué)習(xí)和使用者有所啟發(fā)。

    設(shè)計好了活動,那么接下來在教學(xué)過程中,老師要引導(dǎo)學(xué)生真正“動起來”.這里不僅僅是指動手,更要動腦,還要調(diào)動一切可以調(diào)動的感官,這就需要在教師理解學(xué)生的基礎(chǔ)上,設(shè)計好的問題作為活動進行的紐帶.

    周圍的人七嘴八舌給他出主意給他提醒他都充耳不聞,徑直朝池塘邊走去。突然看見一個和他年紀(jì)差不多的中年男人,手握一把菜刀朝他齒牙咧嘴比劃著什么。還看見在那人背后的池塘水中,有一個小女孩水已經(jīng)淹到了胸口,邊哭邊舉起雙臂,一頭拴在女孩手臂上,一頭被持刀人逮在手上的繩子正在不斷搖晃。

    進入新時代,我們既看到祖國繁榮昌盛的一面,同時也看到諸如“小悅悅”、“江歌”事件,更甚者有現(xiàn)代版的“農(nóng)夫與蛇”的保姆縱火案、“教科書式耍賴”、紅黃藍幼兒園虐童事件等等,無一不在表明,失德現(xiàn)象不再是某一行業(yè)、某一類人的行為,它存在于以“人”為中心所展開關(guān)系的方方面面。要解決這一問題,就涉及對人與人之間關(guān)系的重新梳理。而“儒家的人倫思想,即從內(nèi)在的道德客觀化出來,以對人類負(fù)責(zé)的,始于孝弟,而極于民胞物與,極于以天地萬物為一體?!盵1]所以研究《小學(xué)·明倫》思想的意義正是通過對人倫關(guān)系的探索,找出人與人和諧相處的途徑,為今天思想政治教育提供借鑒之處。

    2 內(nèi)核版本和硬件平臺

    圖1 展示了linux 內(nèi)核的啟動流程。0×7c00 這個地址來自intel 的第一代個人電腦芯片8088,以后的cpu 為了保持兼容,一直使用這個地址。1981年8 月,IBM 公司最早的個人電腦IBM PC 5150 上市,就用了這個芯片,當(dāng)時搭配的操作系統(tǒng)是86-DOS,這個操作系統(tǒng)需要的內(nèi)存最少是32KB。即內(nèi)存范圍從0×00000-0×7FFF。8088芯片本身需要占用0×0000-0×03FF,用來保存各種中斷處理程序,所以內(nèi)存只剩下0×0400-0×7FFF可以使用。

    3 Linux內(nèi)核啟動過程原理

    從80386 開始,cpu 工作的模式就有兩種,分別是實模式和保護模式[3]。剛剛啟動的時候操作系統(tǒng)是運行在實模式的,比如圖1 流程圖中的boot 和setup 程序就是運行在實模式下的。實模式只能訪問1MB 以下的常規(guī)內(nèi)存,而在保護模式下,全部的32 條地址線有效,可尋址高達4GB 的物理地址空間。在實模式下處理器沒有內(nèi)存保護概念和多道任務(wù)的工作模式,其尋址方式為“段基址左移4 位+16位地址偏移”得到20位的物理地址,此時段寄存器中的內(nèi)容是段基址。而在保護模式下,尋址方式變?yōu)椤岸位?32 位的偏移”,但此時段寄存器中的內(nèi)容并不是段基址,而是16 位的段選擇子[4],段選擇子是用來從段描述符表中找段描述符的,從而根據(jù)段描述符得到段基址。段選擇子的結(jié)構(gòu)如圖2所示。

    Linux 內(nèi)核版本更新速度很快,一些核心模塊的變化非常大,但是Linux 內(nèi)核加載啟動過程的基本原理變化并不顯著。0.11 版本的內(nèi)核已經(jīng)初步具備現(xiàn)代操作系統(tǒng)的全部功能模塊,是入門Linux內(nèi)核很好的學(xué)習(xí)材料,因而本文則選擇0.11版本的內(nèi)核作為研究對象,深入探討分析其加載啟動過程。Linux操作系統(tǒng)可以運行在多種不同的硬件平臺上,比如Arm 和80×86 等平臺上,由于絕大多數(shù)的Linux 操作系統(tǒng)應(yīng)用于80×86 平臺上,并且0.11版本的內(nèi)核是基于80×86 的,所以本文討論的也是僅限于80×86平臺的Linux內(nèi)核的啟動過程。

    為了盡量把多的連續(xù)內(nèi)存分配給操作系統(tǒng),bios 負(fù)責(zé)加載引導(dǎo)程序的數(shù)據(jù)(int19h 中斷處理程序,大于512 字節(jié))被放到了內(nèi)存地址的尾部,而引導(dǎo)程序本身需要占用512 個字節(jié),從而引導(dǎo)程序在內(nèi)存中的起始位置為0×7FFF-512-512+1=0×7c00。

    Linux 啟動過程中之所以將system 模塊先移動到0×10000 處而不直接移動到0×0000 處是因為如果直接移動到0×0000 處,會導(dǎo)致bios 的部分程序和數(shù)據(jù)被覆蓋,包括一些重要的bios 中斷,而這些中處理程序要在引導(dǎo)程序中使用,所以不能直接移動到0×0000 處。由于內(nèi)核數(shù)據(jù)大小不會超過512KB,內(nèi)核被加載到了0×10000的位置,所以內(nèi)核物理地址最大不會到地址0×90000 處。當(dāng)程序轉(zhuǎn)到setup 執(zhí)行的時候,setup 程序會獲取系統(tǒng)參數(shù),這些系統(tǒng)參數(shù)被存儲在原先bootsect程序所在的位置,原先的bootsect 程序被覆蓋,而后在setup 程序?qū)ystem模塊從0×10000處移動到地址0×0000處,并且設(shè)置了臨時的GDT 和IDT,為程序跳轉(zhuǎn)到保護模式做準(zhǔn)備。當(dāng)程序跳轉(zhuǎn)到物理地址0×0000 處執(zhí)行時,head 程序開始執(zhí)行,head 程序?qū)⒅匦略O(shè)置GDT 和IDT,并且設(shè)置頁目錄表和頁表,同時設(shè)置CR3寄存器的值并開啟分頁,并在堆棧中彈出main()函數(shù)地址,main()函數(shù)開始執(zhí)行。

    圖1 Linux內(nèi)核啟動流程圖

    4 實模式與保護模式

    在計算機通電之后,固化在CMOS 中的bios 程序會對硬件開始自檢,之后bios將磁盤引導(dǎo)扇區(qū)中的bootsect 啟動程序(共512 個字節(jié))加載到內(nèi)存地址0×7c00 處執(zhí)行,bootsect 程序在剛開始執(zhí)行時就把自己移動到內(nèi)存地址0×90000 處,開始從0×90000 處執(zhí)行之后的程序代碼。bootsect 程序的主要作用是先將存儲在磁盤上的setup程序加載到內(nèi)存0×90200 處,再把system 內(nèi)核模塊從磁盤加載到內(nèi)存地址0×10000 處并將控制權(quán)交給setup 程序。setup 程序首先利用bios 提供的中斷程序獲取一些基本的硬件參數(shù),這些參數(shù)被保存在了內(nèi)存地址0×90000 處,也就是之前bootsect 程序所在的位置。接著setup 程序把system 模塊從之前的內(nèi)存地址0×10000 處移動到內(nèi)存地址0×00000 處,接著設(shè)置控制寄存器CR0 的第一位切換cpu 的工作模式為保護模式并跳轉(zhuǎn)到物理地址0×00000 處運行。由于在編譯鏈接程序代碼時head 程序被鏈接到了system 的頭部,因而此時cpu 開始執(zhí)行內(nèi)存地址0×00000 處的head 程序。head 程序主要是初始化中斷描述符表中的256 個門描述符[2],檢查A20 地址線是否已經(jīng)打開,測試系統(tǒng)是否含有數(shù)學(xué)協(xié)處理器。接著初始化內(nèi)存頁目錄表,為內(nèi)存的分頁管理做好準(zhǔn)備,最后跳轉(zhuǎn)到system 模塊中的初始化程序main.c中繼續(xù)執(zhí)行。main.c程序包括各個內(nèi)核子模塊的初始化,即從main.c 程序開始,內(nèi)核才算真正意義上的啟動了。Linux 內(nèi)核啟動流程圖如圖1 所示。

    圖2 段選擇子結(jié)構(gòu)

    Linux的每個進程都有與之一一對應(yīng)的一個數(shù)據(jù)結(jié)構(gòu),即進程控制塊PCB。進程控制塊包含了與當(dāng)前進程相關(guān)的重要信息,比如進程的運行狀態(tài)、進程所在的代碼段和數(shù)據(jù)段等。Linux內(nèi)核的第一個進程是提前寫好的,這個進程也叫0 號進程。main()函數(shù)先保存了根文件系統(tǒng)設(shè)備號,并且指定了內(nèi)存起始地址以及系統(tǒng)主內(nèi)存的容量,而后進行各個方面的初始化,其中就包括調(diào)度程序sched_init()函數(shù)的初始化。該函數(shù)主要設(shè)置了GDT表的第四項和第五項描述符,使它們分別指向0 號進程的任務(wù)狀態(tài)段TSS 段和局部描述符表LDT段。0 號進程的進程控制塊數(shù)據(jù)結(jié)構(gòu)叫做INIT_TASK,該數(shù)據(jù)結(jié)構(gòu)的內(nèi)容在sched.h進行了初始化,包括初始化了LDT 的表項內(nèi)容以及TSS 的內(nèi)容。緊接著sched_init()函數(shù)將GDT 表第六項之后的表項內(nèi)容全置為NULL,之后加載0 號進程的任務(wù)狀態(tài)段寄存器TR 和局部描述符表LDT,復(fù)位NT以防止執(zhí)行中斷返回指令時發(fā)生任務(wù)切換而出錯。開啟時鐘中斷并設(shè)置了系統(tǒng)調(diào)用中斷門。調(diào)度程序初始化完畢意味著0 號進程初始化完畢,而后main()函數(shù)執(zhí)行“move_to_user_mode()”語句實現(xiàn)系統(tǒng)由特權(quán)級的內(nèi)核態(tài)到用戶態(tài)的切換,使得main()函數(shù)以用戶態(tài)0 號進程的身份接著運行。而后0號進程利用fork()函數(shù)創(chuàng)建了進程1,利用進程1 來執(zhí)行init 函數(shù),進程1 又創(chuàng)建了進程2,進程3,……進程n。至于系統(tǒng)具體運行哪個進程,則由調(diào)度程序來決定某一時刻應(yīng)該運行哪個進程。

    圖3 段描述符結(jié)構(gòu)

    從head 程序開始,cpu 就已經(jīng)工作在保護模式下了。程序首先將各個寄存器設(shè)置為立即數(shù)0×10,它是一個段選擇子,指向臨時GDT(注意此時gdtr 中存的GDT 首地址仍然是setup 程序中設(shè)置的臨時的GDT)的一個表項,其實是指向臨時GDT 的數(shù)據(jù)段。接著程序重新設(shè)置新的IDT,將IDT 的256個表項(每項8字節(jié))全部指向一個啞中斷門ignore_int。該中斷處理程序只是打印一個字符串“Unknown interrupt”,在重新設(shè)置完IDT 后,緊接著重新設(shè)置GDT 表項。接著開始檢測A20 地址線是否開啟,并設(shè)置頁目錄和頁表項(一個頁目錄和4個頁表項,總共能尋址16MB 大?。?,而后程序返回到main.c 的入口處,cpu 開始執(zhí)行main 程序,進行各個內(nèi)核子模塊的初始化。

    5 內(nèi)核啟動相關(guān)源程序文件分析

    5.1 bootsect.s 程序(主要用來加載setup 程序和system模塊)

    先將數(shù)據(jù)段寄存器的值ds 設(shè)置為0×90000,然后開始讀取機器參數(shù)并將其放到0×90000 開始的位置,從而bootsect 程序會被覆蓋。接著讀取硬盤信息表,由于第一個硬盤參數(shù)表的首地址存放在中斷向量0×41 表項中表長16 個字節(jié),因而很容易能夠讀取到硬盤參數(shù)(由于bios中斷向量表是從內(nèi)存地址0×00000 處開始存放的,中斷向量表表項大小為4個字節(jié),因而中斷向量0×41對應(yīng)的表項的起始地址為4*0×41,從而讀取表項得到第一個硬盤參數(shù)首地址并將參數(shù)讀出)。第二個硬盤參數(shù)的首地址存放在中斷向量0×46 表項中,因而第二個硬盤參數(shù)也很容易讀到。緊接著關(guān)中斷,然后開始把system模塊(大小不會超過512KB)從0×10000處移動到0×00000處。一次移動0×8000個字,即64KB,共移動8次即可。移動完畢后開始加載idtr寄存器和gdtr 寄存器,為跳轉(zhuǎn)到保護模式做準(zhǔn)備。idt_48是lidt指令的操作數(shù),共6個字節(jié),其中包含中斷描述表IDT的地址;gdt_48是lgdt指令的操作數(shù),也是6 個字節(jié),其中包含全局段描述符表的首地址。IDT 和GDT 定義在程序末尾。緊接著程序打開A20 地址線,對8259 中斷控制器重新編程,完成進入保護模式的所有準(zhǔn)備工作。接著設(shè)置寄存器控制寄存器CR0 的第一位為1,導(dǎo)致cpu 工作在保護模式并跳轉(zhuǎn)到內(nèi)存起始地址0×00000處。

    5.2 setup.s程序(獲取機器參數(shù),并將system 模塊移動到物理內(nèi)存地址0處)

    程序一開始指定了根文件系統(tǒng)的設(shè)備號,由于bios 直接將bootsect程序加載到了內(nèi)存地址0×7c00處,此時bootsect 需要先將自己移動到內(nèi)存地址0×90000 處。程序入口start 處一開始便讓ds 指向0×7c0(不是0×7c00,因為實模式下尋址段寄存器的值會左移4 位變成0×7c00)處,即bootsect 的源地址,讓es 段指向0×9000,即bootsect 的目標(biāo)地址,而后設(shè)置循環(huán)變量cx 的值為256 個字,即521 個字節(jié)。接著令偏移地址si和di為0,使用movw 將512 個字節(jié)從)0×7c0 處移動到0×9000 處,由于代碼段發(fā)生了移動,也即cs 的值發(fā)生了變化,因而接著設(shè)置各個段寄存器,讓它們都指向代碼段。接下來便開始加載setup 程序,需要將setup 程序從磁盤上加載到0×90200 的位置,需要讀4 個扇區(qū)(起始扇區(qū)為2 號扇區(qū)),此時需要調(diào)用int 0×13 中斷。調(diào)用13 號中斷之前需要將相關(guān)的參數(shù)(比如磁頭號,磁道號及起始扇區(qū)號,這些參數(shù)是可以通過邏輯扇區(qū)號計算得到)送到寄存器,比如ax,bx等。但此處因為已經(jīng)知道setup 程序是在磁盤的第二個扇區(qū),大小為2KB,即4 個扇區(qū),所以直接調(diào)用int 0×13 即可將setup 程序讀入指定內(nèi)存地址,這個內(nèi)存地址是由es:bx 指定的,即地址0×90200 處。接著便開始獲取磁盤驅(qū)動器參數(shù),還是利用int 0×13 號中斷,其中主要要保存的參數(shù)是每磁道扇區(qū)數(shù)sectors。接著打印調(diào)用int 0×10 中斷打印Loading system…信息。加載system 模塊信息,調(diào)用read_it將其加載到內(nèi)存地址0×10000:0000 處,加載完system 模塊后直接跳轉(zhuǎn)到setup 程序的起始處,即0×90200:0000處。

    由于cpu 現(xiàn)在工作在保護模式,所以在最后的指令jmpi 0,8 中的8 已經(jīng)是段選擇子,而后cpu 會根據(jù)這個段選擇子查找臨時全局段描述符表,找到它對應(yīng)的段基址(0×00000 處),由于指令中給出的偏移是0,則此時cpu 從0×00000 處開始執(zhí)行,此時在這個地址處的便是head.s的代碼。

    5.3 head.s程序

    從圖3 可以看出一個段描述符大小為8 個字節(jié),它指出了段基址和段限長,從而唯一確定了一個段。這種尋址方式與實模式下的尋址完全不同,因而要在linux 內(nèi)核啟動程序的setup 程序跳轉(zhuǎn)到system 模塊(在內(nèi)存地址0×00000 處)之前要建立一個臨時的GDT,然后設(shè)置控制寄存器CR0的第一位為1,進入保護模式。此時跳轉(zhuǎn)指令中的“段基址”已經(jīng)是保護模式下的段選擇子,然后根據(jù)該段選擇子查找臨時的GDT 表,找到對應(yīng)的段描述符。接著CPU 將直接跳轉(zhuǎn)到該段描述符所指向的段(即0×00000 基址處,)加偏移(0)處執(zhí)行指令,即head.s 程序的開始,接著head.s 便開始在保護模式下運行。

    6 Linux內(nèi)核第一個進程的啟動

    其中,RPL 表示特權(quán)級,00 表示最高級,11 表示最低級。TI=0 表示根據(jù)該段選擇子查找的是全局段描述符表GDT[6],TI=1 表示根據(jù)該段選擇子查找的是局部段描述符表LDT。高13 位作為GDT 或者LDT 的索引來找到相應(yīng)的段描述符。段描述符表的每一個表項表示一個段描述符。在整個系統(tǒng)中,全局段描述符表GDT 只有一張,GDT 可以被放在內(nèi)存的任何位置,但CPU 必須知道GDT 的入口,也就是基地址放在哪里,Intel的設(shè)計者門提供了一個寄存器GDTR用來存放GDT的入口地址,程序員將GDT 設(shè)定在內(nèi)存中某個位置之后,可以通過lgdt指令將GDT 的入口地址裝入此寄存器,從此以后,CPU 就根據(jù)此寄存器中的內(nèi)容作為GDT 的入口來訪問GDT 了。GDTR 中存放的是GDT 在內(nèi)存中的基地址和其表長界限。局部段描述符表LDT 可以有若干張[7],每個任務(wù)可以有一張,LDT 本身也是一個段,在GDT 中也有與之相對應(yīng)的段描述符,與LDT 相對應(yīng)的寄存器是LDTR,LDTR 中加載的是GDT 中指向它的描述符的段選擇子。段描述符的結(jié)構(gòu)如圖3所示。

    習(xí)近平綠色發(fā)展理論深刻體現(xiàn)了“以人為本”的思想理念。人的自由全面發(fā)展是我黨所有建設(shè)的最終目的,如果因追求單純的經(jīng)濟增長而忽略了人的整體利益和人民群眾的地位作用,就本末倒置了。綠色發(fā)展堅持人民主體地位,充分肯定了人民群眾在社會發(fā)展中的主體作用。

    move_to_user_mode()是一個宏定義函數(shù),該函數(shù)是通過構(gòu)建中斷返回指令所需要的內(nèi)容來啟動0號進程的運行的,如圖4所示。

    可以看到,該函數(shù)先將0×17 壓棧,地址0×17指向進程0 的數(shù)據(jù)段,緊接著將堆棧指針esp 和標(biāo)志寄存器內(nèi)容以及0×0f(該地址指向進程0 的代碼段)和標(biāo)號1的偏移地址(eip)壓棧[10]。再執(zhí)行中斷返回指令iret,該指令將依次把堆棧里的內(nèi)容彈出到eip寄存器,cs段寄存器,標(biāo)志寄存器。但此時系統(tǒng)發(fā)現(xiàn)cs已指向進程0的代碼段,它的特權(quán)級是3,即特權(quán)級發(fā)生了變化,則iret 指令會接著彈出堆棧內(nèi)容到堆棧指針寄存器esp和堆棧段寄存器ss。則在iret指令執(zhí)行完畢后,進程0 開始運行,但可以看到它使用的用戶態(tài)堆棧段依然是原來系統(tǒng)在內(nèi)核態(tài)運行時的堆棧。

    通過優(yōu)化求解L(β)的最大值,即可求得相應(yīng)的模型參數(shù)β。本文通過Limited-memory Broyden-Fletcher-Goldfarb-Shanno(L-BFGS)算法數(shù)值求解。

    圖4 啟動0號進程

    7 結(jié)語

    本文從源代碼角度詳細(xì)分析了0.11 版本內(nèi)核的啟動過程。如今Linux內(nèi)核的版本已經(jīng)更新到了4.2.0,內(nèi)核的更新主要是針對內(nèi)核核心模塊的擴充與優(yōu)化,使其能夠適用于各種不同的硬件平臺,而Linux 內(nèi)核的啟動過程直至內(nèi)核版本2.6.9 之前并沒有發(fā)生多大變化,第一個進程的啟動仍然是“手動”完成的,理解Linux 內(nèi)核的啟動過程,將從實踐的角度對Linux 的運行機制有一個清晰的了解,從而有助于對Linux 核心模塊的研究與理解打開大門。

    猜你喜歡
    保護模式描述符內(nèi)核
    萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
    基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
    強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
    Linux內(nèi)核mmap保護機制研究
    Linux單線程并發(fā)服務(wù)器探索
    論網(wǎng)絡(luò)游戲著作權(quán)的保護模式及其侵權(quán)判定標(biāo)準(zhǔn)
    利用CNN的無人機遙感影像特征描述符學(xué)習(xí)
    CBD體系下傳統(tǒng)知識保護模式研究
    寧夏鹽池縣小麥野生近緣植物蒙古冰草保護模式探究
    97热精品久久久久久| 中文字幕熟女人妻在线| 日韩精品青青久久久久久| 亚洲电影在线观看av| 色综合色国产| 国产精品1区2区在线观看.| 久久久久久久久久成人| 国产成人freesex在线 | 久久人人精品亚洲av| 亚洲av中文av极速乱| 人妻夜夜爽99麻豆av| 天天躁夜夜躁狠狠久久av| 国产爱豆传媒在线观看| 日日啪夜夜撸| 最好的美女福利视频网| www日本黄色视频网| 久久国产乱子免费精品| 九九久久精品国产亚洲av麻豆| 欧美bdsm另类| 色综合亚洲欧美另类图片| 搡女人真爽免费视频火全软件 | 亚洲国产精品成人综合色| 亚洲av熟女| 毛片一级片免费看久久久久| 99riav亚洲国产免费| 国产亚洲av嫩草精品影院| 亚洲国产精品成人久久小说 | 国产单亲对白刺激| 国产精品一区www在线观看| 亚洲国产精品成人久久小说 | 国产麻豆成人av免费视频| 能在线免费观看的黄片| 国产精品一二三区在线看| 欧美成人免费av一区二区三区| 久久草成人影院| 亚洲美女搞黄在线观看 | 久久国产乱子免费精品| 搡老岳熟女国产| 97人妻精品一区二区三区麻豆| 亚洲自拍偷在线| 精品久久久久久久久亚洲| 少妇被粗大猛烈的视频| 天天躁夜夜躁狠狠久久av| 大型黄色视频在线免费观看| 欧美日韩一区二区视频在线观看视频在线 | 搡老熟女国产l中国老女人| 99热精品在线国产| 成人欧美大片| 国产精品野战在线观看| 色尼玛亚洲综合影院| 国内久久婷婷六月综合欲色啪| 别揉我奶头 嗯啊视频| 亚洲av成人精品一区久久| 成人精品一区二区免费| 欧美潮喷喷水| 18+在线观看网站| 不卡视频在线观看欧美| 亚洲成av人片在线播放无| 国产色爽女视频免费观看| 亚洲人成网站高清观看| 欧美日韩综合久久久久久| 午夜久久久久精精品| 欧美一级a爱片免费观看看| 日日摸夜夜添夜夜添小说| 欧美最黄视频在线播放免费| 如何舔出高潮| 精品午夜福利视频在线观看一区| 成年av动漫网址| 午夜福利成人在线免费观看| 欧美高清性xxxxhd video| 久久久精品大字幕| 欧美最黄视频在线播放免费| 亚洲av中文字字幕乱码综合| 日日摸夜夜添夜夜添小说| 国产亚洲精品综合一区在线观看| 日韩国内少妇激情av| 免费无遮挡裸体视频| 三级经典国产精品| 国产熟女欧美一区二区| 夜夜看夜夜爽夜夜摸| 国产三级中文精品| 深夜a级毛片| 国产蜜桃级精品一区二区三区| 天堂√8在线中文| 欧美性猛交╳xxx乱大交人| 最近视频中文字幕2019在线8| 日韩成人av中文字幕在线观看 | 91狼人影院| 你懂的网址亚洲精品在线观看 | 国产单亲对白刺激| 热99re8久久精品国产| 又爽又黄无遮挡网站| 色尼玛亚洲综合影院| 午夜久久久久精精品| 亚洲av中文字字幕乱码综合| 欧美激情久久久久久爽电影| 12—13女人毛片做爰片一| 免费看a级黄色片| 美女大奶头视频| 国产精品,欧美在线| 丰满乱子伦码专区| av视频在线观看入口| 99在线视频只有这里精品首页| 中文字幕精品亚洲无线码一区| 久久精品国产99精品国产亚洲性色| 国产乱人偷精品视频| 精品一区二区三区av网在线观看| 午夜免费男女啪啪视频观看 | 亚洲最大成人av| 99国产精品一区二区蜜桃av| 老司机影院成人| 成人鲁丝片一二三区免费| 久久精品国产亚洲av天美| 小蜜桃在线观看免费完整版高清| 欧美不卡视频在线免费观看| 国产女主播在线喷水免费视频网站 | 日本黄大片高清| 日产精品乱码卡一卡2卡三| 我的女老师完整版在线观看| а√天堂www在线а√下载| 男插女下体视频免费在线播放| 久久99热6这里只有精品| 青春草视频在线免费观看| 久久鲁丝午夜福利片| 国产精品综合久久久久久久免费| 最新中文字幕久久久久| 久久99热这里只有精品18| 免费高清视频大片| 国产黄色小视频在线观看| 在现免费观看毛片| 国产视频内射| 成人美女网站在线观看视频| 欧美激情国产日韩精品一区| 寂寞人妻少妇视频99o| 一区福利在线观看| 精品久久国产蜜桃| 亚洲va在线va天堂va国产| 一级av片app| 啦啦啦观看免费观看视频高清| 亚洲国产日韩欧美精品在线观看| 在线a可以看的网站| 91午夜精品亚洲一区二区三区| 国内揄拍国产精品人妻在线| 国产一区二区在线av高清观看| 色播亚洲综合网| 99热全是精品| 亚洲天堂国产精品一区在线| 国产探花极品一区二区| 午夜福利在线观看免费完整高清在 | 日韩成人伦理影院| 国产高清不卡午夜福利| 亚洲真实伦在线观看| 国产精品,欧美在线| 69人妻影院| av女优亚洲男人天堂| 精品久久久久久成人av| 国产午夜精品论理片| 亚洲中文字幕一区二区三区有码在线看| 国产精品无大码| 日韩欧美一区二区三区在线观看| 久久人人爽人人爽人人片va| 91在线精品国自产拍蜜月| 在线免费观看不下载黄p国产| 精品一区二区三区视频在线| 欧美成人精品欧美一级黄| 日韩大尺度精品在线看网址| 伦理电影大哥的女人| 亚洲美女黄片视频| 免费看a级黄色片| 亚洲熟妇熟女久久| 久久精品综合一区二区三区| 亚洲精品日韩av片在线观看| 天天一区二区日本电影三级| 欧洲精品卡2卡3卡4卡5卡区| av女优亚洲男人天堂| 岛国在线免费视频观看| 国产男人的电影天堂91| 国产午夜精品久久久久久一区二区三区 | 午夜激情欧美在线| 久久午夜福利片| 午夜福利成人在线免费观看| 久久午夜亚洲精品久久| 亚洲不卡免费看| 亚洲av五月六月丁香网| 欧美日本亚洲视频在线播放| 亚洲精品粉嫩美女一区| 给我免费播放毛片高清在线观看| 欧美高清性xxxxhd video| 亚洲欧美成人精品一区二区| 久久久久久九九精品二区国产| 亚洲av美国av| 国产成人a∨麻豆精品| 干丝袜人妻中文字幕| 看黄色毛片网站| 亚洲电影在线观看av| 色噜噜av男人的天堂激情| 亚洲av中文av极速乱| 久久久久久久久大av| 一个人免费在线观看电影| 日本爱情动作片www.在线观看 | 国产精品永久免费网站| 国产精品久久电影中文字幕| 国产午夜精品论理片| 1000部很黄的大片| 久久久久久伊人网av| 欧美性感艳星| av女优亚洲男人天堂| 乱码一卡2卡4卡精品| 少妇熟女aⅴ在线视频| 午夜福利高清视频| 日日撸夜夜添| 亚洲aⅴ乱码一区二区在线播放| 三级毛片av免费| 99热这里只有是精品50| 精品不卡国产一区二区三区| 在线观看一区二区三区| 日本精品一区二区三区蜜桃| 久久天躁狠狠躁夜夜2o2o| 91精品国产九色| 18+在线观看网站| 两个人的视频大全免费| 99久久精品热视频| 日本爱情动作片www.在线观看 | 老熟妇仑乱视频hdxx| 国产精品一区二区三区四区久久| 久久久久国内视频| 欧美另类亚洲清纯唯美| av在线亚洲专区| 国产精品综合久久久久久久免费| 亚洲一级一片aⅴ在线观看| 毛片一级片免费看久久久久| 欧美极品一区二区三区四区| 亚洲,欧美,日韩| 日韩精品青青久久久久久| 国产精品日韩av在线免费观看| 男人的好看免费观看在线视频| 蜜桃久久精品国产亚洲av| 两性午夜刺激爽爽歪歪视频在线观看| 一进一出抽搐gif免费好疼| 精品乱码久久久久久99久播| 一级毛片我不卡| 国产v大片淫在线免费观看| 一个人看视频在线观看www免费| 国产精品久久久久久亚洲av鲁大| 亚洲内射少妇av| 久久6这里有精品| 女人被狂操c到高潮| 免费av观看视频| 久久欧美精品欧美久久欧美| 国产黄a三级三级三级人| 1024手机看黄色片| 国产色爽女视频免费观看| 国产黄片美女视频| 国产一区二区三区av在线 | 久久久精品欧美日韩精品| 精品无人区乱码1区二区| 中文字幕av在线有码专区| 在线观看av片永久免费下载| 99在线人妻在线中文字幕| 美女内射精品一级片tv| 老司机福利观看| 大香蕉久久网| 3wmmmm亚洲av在线观看| 女生性感内裤真人,穿戴方法视频| 国产亚洲精品久久久com| 久久久精品大字幕| 国产高潮美女av| 日韩欧美 国产精品| 香蕉av资源在线| 日韩高清综合在线| 蜜桃久久精品国产亚洲av| 大香蕉久久网| 欧美bdsm另类| 日日干狠狠操夜夜爽| 色av中文字幕| 亚洲av二区三区四区| 日本 av在线| 少妇猛男粗大的猛烈进出视频 | 床上黄色一级片| 麻豆国产av国片精品| 一级毛片aaaaaa免费看小| 精品人妻偷拍中文字幕| 床上黄色一级片| 国产黄色视频一区二区在线观看 | 嫩草影院新地址| 美女高潮的动态| 在线播放无遮挡| 村上凉子中文字幕在线| 九九热线精品视视频播放| 秋霞在线观看毛片| 亚洲精华国产精华液的使用体验 | 在线观看av片永久免费下载| 九色成人免费人妻av| 能在线免费观看的黄片| 国内精品久久久久精免费| 九九在线视频观看精品| 国产精品,欧美在线| 99久国产av精品国产电影| 99精品在免费线老司机午夜| 91久久精品电影网| 欧美性猛交黑人性爽| a级毛色黄片| 内射极品少妇av片p| 美女免费视频网站| 亚洲七黄色美女视频| 老司机影院成人| 国产aⅴ精品一区二区三区波| 国产黄片美女视频| 九九久久精品国产亚洲av麻豆| 亚洲国产欧美人成| 男插女下体视频免费在线播放| 欧洲精品卡2卡3卡4卡5卡区| 青春草视频在线免费观看| 日韩欧美 国产精品| 综合色av麻豆| 国产69精品久久久久777片| 国产成人freesex在线 | 色视频www国产| 亚洲av五月六月丁香网| 久久精品国产清高在天天线| 禁无遮挡网站| a级一级毛片免费在线观看| 天天躁夜夜躁狠狠久久av| 成人漫画全彩无遮挡| 免费看日本二区| 老熟妇乱子伦视频在线观看| 亚洲一级一片aⅴ在线观看| av女优亚洲男人天堂| 中国美白少妇内射xxxbb| 丰满的人妻完整版| 日韩亚洲欧美综合| 色5月婷婷丁香| 久久这里只有精品中国| 欧美成人一区二区免费高清观看| 别揉我奶头 嗯啊视频| 国产极品精品免费视频能看的| 色哟哟·www| 晚上一个人看的免费电影| 日韩精品中文字幕看吧| 国产精品av视频在线免费观看| 男人的好看免费观看在线视频| 欧美一级a爱片免费观看看| 此物有八面人人有两片| 我要搜黄色片| 国产精品永久免费网站| 国产午夜福利久久久久久| 国产精品三级大全| 国产亚洲欧美98| 亚洲精品一卡2卡三卡4卡5卡| 我的女老师完整版在线观看| 久久国内精品自在自线图片| 天堂av国产一区二区熟女人妻| 蜜臀久久99精品久久宅男| 一夜夜www| 日本三级黄在线观看| 我的老师免费观看完整版| 国产精品女同一区二区软件| 亚洲国产精品国产精品| av在线蜜桃| 亚洲av熟女| 久久久精品大字幕| 免费看a级黄色片| 欧美xxxx黑人xx丫x性爽| 国产在线男女| 亚洲成人中文字幕在线播放| 性插视频无遮挡在线免费观看| 午夜精品一区二区三区免费看| 神马国产精品三级电影在线观看| 欧美xxxx黑人xx丫x性爽| 日韩一区二区视频免费看| 亚洲国产精品sss在线观看| 日本一二三区视频观看| 国产精品不卡视频一区二区| 久久精品国产亚洲av香蕉五月| 日韩亚洲欧美综合| 久久久久久久久久成人| 国产精品,欧美在线| 麻豆精品久久久久久蜜桃| 久久久久国产网址| 天堂√8在线中文| 99热这里只有是精品在线观看| 亚洲av二区三区四区| 国产黄a三级三级三级人| 精品午夜福利视频在线观看一区| 亚洲第一区二区三区不卡| 国产黄色小视频在线观看| 老女人水多毛片| 亚洲精品一区av在线观看| 丝袜美腿在线中文| 国产色婷婷99| 精品久久久久久久久亚洲| 日本欧美国产在线视频| 国产伦在线观看视频一区| 久久中文看片网| 免费在线观看成人毛片| 婷婷精品国产亚洲av| 国产精品精品国产色婷婷| 免费高清视频大片| 美女 人体艺术 gogo| 国产黄片美女视频| 欧美一区二区国产精品久久精品| 国产精品久久久久久久电影| 国产精品人妻久久久影院| 亚洲精品456在线播放app| 国产精品一区二区性色av| 亚洲aⅴ乱码一区二区在线播放| 国产精品电影一区二区三区| 亚洲美女黄片视频| 禁无遮挡网站| 国产探花极品一区二区| 午夜福利18| 99久久精品国产国产毛片| 熟妇人妻久久中文字幕3abv| 久久久久久久久久黄片| 成人二区视频| 日韩人妻高清精品专区| 狠狠狠狠99中文字幕| av专区在线播放| 男女做爰动态图高潮gif福利片| 51国产日韩欧美| 女同久久另类99精品国产91| av在线天堂中文字幕| 亚洲欧美日韩高清在线视频| 国产 一区精品| 国产欧美日韩一区二区精品| 国产毛片a区久久久久| 亚洲国产欧美人成| 精品久久久久久久久久久久久| 婷婷精品国产亚洲av在线| 亚洲婷婷狠狠爱综合网| 亚洲中文日韩欧美视频| 日韩制服骚丝袜av| 国产精品一二三区在线看| 免费高清视频大片| 日韩精品有码人妻一区| 最近在线观看免费完整版| 欧美激情久久久久久爽电影| 国产一区二区在线av高清观看| 高清毛片免费看| 97碰自拍视频| 毛片女人毛片| 日本熟妇午夜| 女生性感内裤真人,穿戴方法视频| 精品久久久久久成人av| 大型黄色视频在线免费观看| 午夜福利在线观看吧| 91狼人影院| 五月玫瑰六月丁香| 校园春色视频在线观看| 99国产极品粉嫩在线观看| 最近在线观看免费完整版| 亚洲色图av天堂| 我要看日韩黄色一级片| 又黄又爽又刺激的免费视频.| 精品久久久久久久久亚洲| 日韩 亚洲 欧美在线| 久久精品91蜜桃| 欧美zozozo另类| 国产亚洲精品综合一区在线观看| 深夜精品福利| 蜜桃久久精品国产亚洲av| 国产真实伦视频高清在线观看| 国产成人影院久久av| 国产精品乱码一区二三区的特点| 亚洲国产欧美人成| 久久久久久久久久久丰满| 国产午夜精品久久久久久一区二区三区 | 听说在线观看完整版免费高清| 丝袜喷水一区| 国产伦精品一区二区三区视频9| 一级av片app| 国产免费一级a男人的天堂| 99久久无色码亚洲精品果冻| 中国美白少妇内射xxxbb| 天堂√8在线中文| 久久久久精品国产欧美久久久| 亚洲成人中文字幕在线播放| 99热6这里只有精品| 一区二区三区高清视频在线| 午夜老司机福利剧场| 亚洲欧美日韩东京热| 激情 狠狠 欧美| 成人欧美大片| 在线免费观看的www视频| 精品久久久久久成人av| 村上凉子中文字幕在线| 成人av在线播放网站| 国产精品亚洲一级av第二区| 两个人视频免费观看高清| 日韩在线高清观看一区二区三区| 久久精品影院6| 日本一本二区三区精品| 国内揄拍国产精品人妻在线| 晚上一个人看的免费电影| 国产精品福利在线免费观看| 国产人妻一区二区三区在| 欧美三级亚洲精品| 夜夜爽天天搞| 老熟妇乱子伦视频在线观看| 久久综合国产亚洲精品| 中文资源天堂在线| 国产黄a三级三级三级人| 久久久久精品国产欧美久久久| 日韩中字成人| 最新在线观看一区二区三区| 精品人妻偷拍中文字幕| 午夜精品在线福利| 九九在线视频观看精品| 欧美在线一区亚洲| 久久久久免费精品人妻一区二区| 国产av不卡久久| 日韩欧美国产在线观看| 国产伦精品一区二区三区视频9| 日本黄色片子视频| 日日啪夜夜撸| 51国产日韩欧美| 国产精品综合久久久久久久免费| 午夜精品在线福利| 寂寞人妻少妇视频99o| 男人的好看免费观看在线视频| 在线观看66精品国产| 97热精品久久久久久| 黄色日韩在线| 亚洲aⅴ乱码一区二区在线播放| 国内精品一区二区在线观看| 校园人妻丝袜中文字幕| 色5月婷婷丁香| 日韩欧美免费精品| 亚洲无线观看免费| 俄罗斯特黄特色一大片| 搡老熟女国产l中国老女人| 舔av片在线| 伦精品一区二区三区| 一级毛片久久久久久久久女| 欧美+日韩+精品| 搡老妇女老女人老熟妇| 天天一区二区日本电影三级| 精品免费久久久久久久清纯| 两性午夜刺激爽爽歪歪视频在线观看| 男女之事视频高清在线观看| 亚洲人成网站高清观看| 黑人高潮一二区| 国产久久久一区二区三区| 国产伦精品一区二区三区视频9| 色尼玛亚洲综合影院| 免费电影在线观看免费观看| 又爽又黄a免费视频| 亚洲av免费在线观看| 国产精品一区二区免费欧美| 亚州av有码| 亚洲在线自拍视频| 国产成年人精品一区二区| 国产高清三级在线| 国产一区亚洲一区在线观看| 亚洲av成人精品一区久久| 长腿黑丝高跟| 国产激情偷乱视频一区二区| 国产亚洲91精品色在线| 日日摸夜夜添夜夜添小说| 精品久久国产蜜桃| 99热精品在线国产| 久久久精品94久久精品| 亚洲国产日韩欧美精品在线观看| 成人漫画全彩无遮挡| 欧美日韩国产亚洲二区| 国产高清有码在线观看视频| 亚洲av五月六月丁香网| 成人无遮挡网站| 永久网站在线| 国产精品嫩草影院av在线观看| 国产一级毛片七仙女欲春2| 1024手机看黄色片| 国内少妇人妻偷人精品xxx网站| 午夜激情福利司机影院| 亚洲av中文av极速乱| 麻豆精品久久久久久蜜桃| 成人三级黄色视频| 欧洲精品卡2卡3卡4卡5卡区| 亚洲美女视频黄频| 乱码一卡2卡4卡精品| 哪里可以看免费的av片| 麻豆精品久久久久久蜜桃| 97人妻精品一区二区三区麻豆| 亚洲不卡免费看| 99热网站在线观看| 淫妇啪啪啪对白视频| 色综合站精品国产| 国产亚洲精品综合一区在线观看| 午夜亚洲福利在线播放| 婷婷精品国产亚洲av| 最近手机中文字幕大全| 免费在线观看影片大全网站| 精品无人区乱码1区二区| 2021天堂中文幕一二区在线观| 桃色一区二区三区在线观看| av国产免费在线观看| 亚洲不卡免费看| 黑人高潮一二区| 18+在线观看网站| 日本免费a在线| 变态另类成人亚洲欧美熟女| 精品欧美国产一区二区三| 日产精品乱码卡一卡2卡三| 特大巨黑吊av在线直播| 我的女老师完整版在线观看| 成人一区二区视频在线观看| 舔av片在线| 大香蕉久久网| 日本一二三区视频观看| 一进一出抽搐gif免费好疼| 免费看av在线观看网站| 午夜a级毛片| 亚洲人成网站高清观看| 淫秽高清视频在线观看| 国内精品一区二区在线观看|