• <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)知識保護模式研究
    寧夏鹽池縣小麥野生近緣植物蒙古冰草保護模式探究
    99re在线观看精品视频| 亚洲第一av免费看| 色尼玛亚洲综合影院| 高清黄色对白视频在线免费看| 亚洲美女黄片视频| 免费日韩欧美在线观看| 久久草成人影院| 久久精品91无色码中文字幕| 欧美老熟妇乱子伦牲交| 亚洲精品成人av观看孕妇| 久久午夜综合久久蜜桃| 美女 人体艺术 gogo| 99国产综合亚洲精品| 人成视频在线观看免费观看| 身体一侧抽搐| 欧美日韩亚洲国产一区二区在线观看 | www日本在线高清视频| 自拍欧美九色日韩亚洲蝌蚪91| 国产色视频综合| 亚洲精品粉嫩美女一区| 日本五十路高清| 亚洲精品一卡2卡三卡4卡5卡| 国产成人av激情在线播放| 最近最新中文字幕大全免费视频| 少妇被粗大的猛进出69影院| 丝袜在线中文字幕| 午夜福利影视在线免费观看| 91老司机精品| 国产单亲对白刺激| 国产黄色免费在线视频| 国产三级黄色录像| 日韩成人在线观看一区二区三区| 少妇 在线观看| 一级毛片精品| 国产单亲对白刺激| 欧美人与性动交α欧美精品济南到| 一个人免费在线观看的高清视频| 欧美激情久久久久久爽电影 | 免费在线观看日本一区| 男人的好看免费观看在线视频 | 黄色视频,在线免费观看| 日韩免费av在线播放| 在线观看舔阴道视频| 国产激情久久老熟女| 日韩精品免费视频一区二区三区| a级毛片黄视频| 久久精品国产综合久久久| 99热国产这里只有精品6| 狠狠婷婷综合久久久久久88av| 80岁老熟妇乱子伦牲交| 日韩成人在线观看一区二区三区| 悠悠久久av| 免费观看精品视频网站| 一区在线观看完整版| 亚洲中文av在线| 亚洲av成人不卡在线观看播放网| 一级毛片高清免费大全| 99热网站在线观看| 色精品久久人妻99蜜桃| 欧美老熟妇乱子伦牲交| 女人高潮潮喷娇喘18禁视频| 97人妻天天添夜夜摸| 啦啦啦视频在线资源免费观看| 99久久精品国产亚洲精品| 久久精品成人免费网站| 亚洲av日韩精品久久久久久密| 丁香欧美五月| 男人舔女人的私密视频| 国产精品电影一区二区三区 | 日韩一卡2卡3卡4卡2021年| 俄罗斯特黄特色一大片| 天天躁狠狠躁夜夜躁狠狠躁| 少妇粗大呻吟视频| 亚洲午夜精品一区,二区,三区| 91老司机精品| 大码成人一级视频| 后天国语完整版免费观看| 国产成人精品在线电影| 久久狼人影院| 亚洲全国av大片| 超碰成人久久| 成人精品一区二区免费| 最近最新中文字幕大全电影3 | 国产成+人综合+亚洲专区| 亚洲色图综合在线观看| 好看av亚洲va欧美ⅴa在| 高清欧美精品videossex| aaaaa片日本免费| 国产成人精品久久二区二区免费| 中出人妻视频一区二区| 视频区图区小说| 亚洲av熟女| 成在线人永久免费视频| 欧美激情 高清一区二区三区| 乱人伦中国视频| 亚洲国产精品合色在线| 少妇猛男粗大的猛烈进出视频| 久久久精品国产亚洲av高清涩受| 亚洲精华国产精华精| 午夜福利免费观看在线| 国产免费av片在线观看野外av| 十八禁高潮呻吟视频| 国产亚洲av高清不卡| 久久精品国产综合久久久| 久久ye,这里只有精品| 99精品久久久久人妻精品| 99国产精品一区二区蜜桃av | 交换朋友夫妻互换小说| 免费在线观看完整版高清| 国产一区在线观看成人免费| 新久久久久国产一级毛片| 精品一区二区三区视频在线观看免费 | 黑丝袜美女国产一区| 免费在线观看完整版高清| 99国产极品粉嫩在线观看| 久久香蕉精品热| 黄色成人免费大全| 亚洲国产欧美网| 欧美中文综合在线视频| 欧美精品一区二区免费开放| 男女免费视频国产| 久久久久久久午夜电影 | 国产1区2区3区精品| 美女 人体艺术 gogo| av超薄肉色丝袜交足视频| 大型av网站在线播放| 国产精品av久久久久免费| 国产一区在线观看成人免费| 黑人巨大精品欧美一区二区蜜桃| 国产亚洲av高清不卡| 亚洲欧美一区二区三区久久| 怎么达到女性高潮| 亚洲欧美激情综合另类| 如日韩欧美国产精品一区二区三区| 亚洲精品自拍成人| 最近最新中文字幕大全免费视频| 大陆偷拍与自拍| 亚洲男人天堂网一区| 精品国产美女av久久久久小说| 久久国产精品男人的天堂亚洲| 午夜视频精品福利| 国产精品综合久久久久久久免费 | xxxhd国产人妻xxx| 多毛熟女@视频| 可以免费在线观看a视频的电影网站| 欧美日韩福利视频一区二区| 国产一区二区三区在线臀色熟女 | 香蕉国产在线看| 大陆偷拍与自拍| 美女高潮到喷水免费观看| 亚洲男人天堂网一区| 精品一区二区三卡| 久久久国产欧美日韩av| 国产精品影院久久| 老汉色∧v一级毛片| 国产精品免费视频内射| www日本在线高清视频| 欧美精品av麻豆av| 国产成人欧美在线观看 | 欧美性长视频在线观看| 精品国产乱子伦一区二区三区| av一本久久久久| 亚洲成a人片在线一区二区| 欧美日韩一级在线毛片| 午夜亚洲福利在线播放| 狠狠狠狠99中文字幕| 少妇裸体淫交视频免费看高清 | 一区二区三区国产精品乱码| 日韩 欧美 亚洲 中文字幕| 国产淫语在线视频| 久久久国产欧美日韩av| 伊人久久大香线蕉亚洲五| 三上悠亚av全集在线观看| 女人被躁到高潮嗷嗷叫费观| 麻豆成人av在线观看| 在线观看66精品国产| 看黄色毛片网站| 9色porny在线观看| 中文字幕人妻熟女乱码| 欧美乱妇无乱码| 在线观看免费日韩欧美大片| 黄片大片在线免费观看| 桃红色精品国产亚洲av| 高清毛片免费观看视频网站 | 成熟少妇高潮喷水视频| 亚洲一卡2卡3卡4卡5卡精品中文| 青草久久国产| 十八禁人妻一区二区| 午夜福利在线观看吧| 日本a在线网址| 久久精品国产亚洲av高清一级| 国产免费av片在线观看野外av| 久热这里只有精品99| 成人特级黄色片久久久久久久| 97人妻天天添夜夜摸| 一边摸一边做爽爽视频免费| 九色亚洲精品在线播放| 午夜两性在线视频| 不卡一级毛片| 麻豆成人av在线观看| 极品少妇高潮喷水抽搐| 久热这里只有精品99| 黑丝袜美女国产一区| 十八禁人妻一区二区| 777米奇影视久久| 久久热在线av| www日本在线高清视频| av线在线观看网站| 久久久精品免费免费高清| 日韩熟女老妇一区二区性免费视频| 久久亚洲真实| 两人在一起打扑克的视频| 夜夜躁狠狠躁天天躁| 咕卡用的链子| 国产视频一区二区在线看| 一级a爱片免费观看的视频| 99热只有精品国产| 天堂中文最新版在线下载| 国产男女超爽视频在线观看| 99精品欧美一区二区三区四区| av有码第一页| 久久久久久久午夜电影 | 91字幕亚洲| 国产亚洲精品一区二区www | 亚洲一区中文字幕在线| 黑人操中国人逼视频| 亚洲av成人一区二区三| 99国产精品一区二区三区| 美女国产高潮福利片在线看| 成年人午夜在线观看视频| 国精品久久久久久国模美| 亚洲色图综合在线观看| 丁香六月欧美| 国产不卡一卡二| 18禁国产床啪视频网站| 深夜精品福利| 国产精品.久久久| 国产欧美亚洲国产| 国产精品九九99| 女人久久www免费人成看片| 国产精品免费一区二区三区在线 | 高潮久久久久久久久久久不卡| 黑人猛操日本美女一级片| 丰满迷人的少妇在线观看| 两个人看的免费小视频| 人人妻人人添人人爽欧美一区卜| 91老司机精品| 亚洲中文日韩欧美视频| 亚洲 欧美一区二区三区| 国精品久久久久久国模美| 免费观看精品视频网站| 免费在线观看日本一区| 精品高清国产在线一区| 热re99久久国产66热| 一本综合久久免费| 两性午夜刺激爽爽歪歪视频在线观看 | 中亚洲国语对白在线视频| 欧美日韩成人在线一区二区| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美亚洲 丝袜 人妻 在线| 亚洲性夜色夜夜综合| 亚洲欧美色中文字幕在线| 日本欧美视频一区| 午夜福利一区二区在线看| 亚洲成人国产一区在线观看| 欧美老熟妇乱子伦牲交| 国产欧美日韩精品亚洲av| 老司机影院毛片| 免费看十八禁软件| 免费观看a级毛片全部| 亚洲人成伊人成综合网2020| 欧美黄色淫秽网站| 久久久久精品国产欧美久久久| 99精品在免费线老司机午夜| a级毛片黄视频| 一级黄色大片毛片| 久久香蕉精品热| av免费在线观看网站| 欧美亚洲日本最大视频资源| 国产野战对白在线观看| av视频免费观看在线观看| 亚洲精品国产精品久久久不卡| 国产伦人伦偷精品视频| 国产成人影院久久av| 久久香蕉国产精品| 欧美日韩乱码在线| 欧美色视频一区免费| 老司机午夜福利在线观看视频| 久久久久久久久免费视频了| 精品久久久久久久久久免费视频 | 伊人久久大香线蕉亚洲五| av线在线观看网站| 丁香欧美五月| 国产淫语在线视频| 亚洲av美国av| 老汉色av国产亚洲站长工具| 国产免费av片在线观看野外av| 岛国毛片在线播放| 天天操日日干夜夜撸| 国产熟女午夜一区二区三区| 国产黄色免费在线视频| 后天国语完整版免费观看| 免费在线观看亚洲国产| 婷婷丁香在线五月| 精品一区二区三区av网在线观看| 777米奇影视久久| 国产精品免费大片| 美女福利国产在线| 美女国产高潮福利片在线看| 亚洲专区国产一区二区| 久久精品国产a三级三级三级| 少妇被粗大的猛进出69影院| 一二三四社区在线视频社区8| 免费观看人在逋| 亚洲av电影在线进入| 亚洲精华国产精华精| 在线观看免费午夜福利视频| 免费在线观看黄色视频的| 色综合欧美亚洲国产小说| svipshipincom国产片| 丰满迷人的少妇在线观看| 免费在线观看视频国产中文字幕亚洲| 手机成人av网站| 精品一区二区三区视频在线观看免费 | 波多野结衣一区麻豆| 日本vs欧美在线观看视频| 成人影院久久| 国产亚洲欧美精品永久| 中文字幕色久视频| 日日爽夜夜爽网站| 亚洲一区中文字幕在线| 免费在线观看影片大全网站| 中文亚洲av片在线观看爽 | 每晚都被弄得嗷嗷叫到高潮| 女人高潮潮喷娇喘18禁视频| 欧美黄色片欧美黄色片| 青草久久国产| 亚洲欧美激情综合另类| 亚洲成a人片在线一区二区| 国精品久久久久久国模美| 18禁观看日本| 一夜夜www| 久久久久精品国产欧美久久久| 女同久久另类99精品国产91| 午夜福利欧美成人| 1024视频免费在线观看| 久久影院123| 一进一出抽搐gif免费好疼 | 国产精品国产av在线观看| 欧美成狂野欧美在线观看| 免费在线观看日本一区| 老熟妇仑乱视频hdxx| 十八禁网站免费在线| 欧美精品一区二区免费开放| 亚洲在线自拍视频| 水蜜桃什么品种好| 久久中文看片网| 久久香蕉激情| 免费在线观看日本一区| 精品一区二区三区视频在线观看免费 | 香蕉国产在线看| 国产精品永久免费网站| 久久久久久免费高清国产稀缺| 欧美午夜高清在线| 亚洲五月婷婷丁香| 看片在线看免费视频| av线在线观看网站| 91av网站免费观看| 欧美国产精品一级二级三级| 老熟妇乱子伦视频在线观看| 亚洲av美国av| 国产精品秋霞免费鲁丝片| 9热在线视频观看99| 欧美黄色片欧美黄色片| 久久精品亚洲av国产电影网| 亚洲成人手机| 一a级毛片在线观看| 亚洲av熟女| 欧美久久黑人一区二区| 丝瓜视频免费看黄片| 18禁美女被吸乳视频| 久久人人爽av亚洲精品天堂| 日韩制服丝袜自拍偷拍| 久久中文字幕人妻熟女| 大片电影免费在线观看免费| 侵犯人妻中文字幕一二三四区| 91精品三级在线观看| 十分钟在线观看高清视频www| 欧美日韩av久久| 午夜福利,免费看| e午夜精品久久久久久久| 亚洲欧美精品综合一区二区三区| 亚洲熟妇中文字幕五十中出 | 黄片大片在线免费观看| 成人精品一区二区免费| 国产成人系列免费观看| 免费看十八禁软件| xxxhd国产人妻xxx| 嫩草影视91久久| 欧美在线一区亚洲| 制服人妻中文乱码| 乱人伦中国视频| 人成视频在线观看免费观看| 丰满迷人的少妇在线观看| 日韩免费av在线播放| 亚洲一码二码三码区别大吗| 免费在线观看日本一区| 精品亚洲成a人片在线观看| av超薄肉色丝袜交足视频| 50天的宝宝边吃奶边哭怎么回事| 日本五十路高清| 亚洲一区二区三区欧美精品| 国产成人精品久久二区二区免费| 丁香欧美五月| 成人手机av| 超碰成人久久| 日本欧美视频一区| 国产av又大| 超碰成人久久| 男女床上黄色一级片免费看| 欧美丝袜亚洲另类 | 人人妻人人澡人人看| 老熟妇乱子伦视频在线观看| 久久久水蜜桃国产精品网| 久久久久国产一级毛片高清牌| 精品国产亚洲在线| 满18在线观看网站| 人妻丰满熟妇av一区二区三区 | 日韩视频一区二区在线观看| 国产人伦9x9x在线观看| 999久久久国产精品视频| 亚洲黑人精品在线| 丁香六月欧美| 午夜福利乱码中文字幕| 久久久国产成人免费| 不卡av一区二区三区| 亚洲av成人av| 欧美成人免费av一区二区三区 | 99热只有精品国产| 精品久久久久久电影网| 在线天堂中文资源库| a在线观看视频网站| 精品卡一卡二卡四卡免费| 在线永久观看黄色视频| 色婷婷av一区二区三区视频| 97人妻天天添夜夜摸| 精品久久久久久久毛片微露脸| 丰满人妻熟妇乱又伦精品不卡| 99久久人妻综合| 大型av网站在线播放| 日日摸夜夜添夜夜添小说| 久久久精品免费免费高清| 美女 人体艺术 gogo| 国产乱人伦免费视频| 久久精品人人爽人人爽视色| 高清在线国产一区| 亚洲少妇的诱惑av| 18禁裸乳无遮挡免费网站照片 | 女人被狂操c到高潮| 又黄又爽又免费观看的视频| 日韩熟女老妇一区二区性免费视频| 亚洲精品国产色婷婷电影| 亚洲少妇的诱惑av| 午夜精品在线福利| 曰老女人黄片| 国产精品一区二区在线观看99| 人妻丰满熟妇av一区二区三区 | 香蕉丝袜av| xxxhd国产人妻xxx| 久久国产乱子伦精品免费另类| bbb黄色大片| 天天躁夜夜躁狠狠躁躁| 国产精品成人在线| 一二三四在线观看免费中文在| 黄色视频,在线免费观看| 黄色a级毛片大全视频| 亚洲国产看品久久| 国产成人av教育| 国产亚洲av高清不卡| 99国产精品一区二区蜜桃av | 男女床上黄色一级片免费看| 大片电影免费在线观看免费| 日韩制服丝袜自拍偷拍| 亚洲av美国av| 大香蕉久久网| 久久久久视频综合| 亚洲精品国产区一区二| 国产精品 国内视频| 无限看片的www在线观看| 国产精品二区激情视频| 大片电影免费在线观看免费| 十八禁高潮呻吟视频| 男人操女人黄网站| 欧美日韩av久久| 国产一区二区三区在线臀色熟女 | 狂野欧美激情性xxxx| 天天躁夜夜躁狠狠躁躁| 亚洲人成电影观看| 国产精品久久久久成人av| 人人妻人人澡人人爽人人夜夜| 黄片播放在线免费| 欧美黑人精品巨大| 久久久久久亚洲精品国产蜜桃av| 成人特级黄色片久久久久久久| 亚洲av日韩在线播放| 色综合婷婷激情| av有码第一页| 啦啦啦视频在线资源免费观看| 国产精品免费一区二区三区在线 | 久久久久国产精品人妻aⅴ院 | 国精品久久久久久国模美| 另类亚洲欧美激情| 亚洲综合色网址| 久久国产精品男人的天堂亚洲| 性少妇av在线| 日韩 欧美 亚洲 中文字幕| tocl精华| 在线观看免费视频日本深夜| 亚洲精品中文字幕一二三四区| 9191精品国产免费久久| 十八禁网站免费在线| 精品第一国产精品| 日本欧美视频一区| 精品一区二区三区四区五区乱码| 丝袜在线中文字幕| 久久精品亚洲av国产电影网| 黄色成人免费大全| 久久久久久久精品吃奶| 免费在线观看视频国产中文字幕亚洲| 99精国产麻豆久久婷婷| 好看av亚洲va欧美ⅴa在| 亚洲精品粉嫩美女一区| 亚洲欧美日韩高清在线视频| 久久精品aⅴ一区二区三区四区| 中文字幕色久视频| 国产日韩欧美亚洲二区| 国产区一区二久久| 在线观看www视频免费| 色精品久久人妻99蜜桃| 亚洲精品一卡2卡三卡4卡5卡| 精品福利永久在线观看| 老熟妇乱子伦视频在线观看| 男女下面插进去视频免费观看| 午夜福利影视在线免费观看| 老司机影院毛片| 香蕉久久夜色| 国产亚洲精品久久久久5区| 国产成+人综合+亚洲专区| 天天添夜夜摸| 亚洲欧美一区二区三区久久| 国产亚洲欧美在线一区二区| 一级毛片精品| 国产三级黄色录像| 9色porny在线观看| 午夜福利,免费看| 我的亚洲天堂| 精品视频人人做人人爽| 国产国语露脸激情在线看| 国产精品综合久久久久久久免费 | 男女高潮啪啪啪动态图| 91成人精品电影| 亚洲精品乱久久久久久| 亚洲精品在线观看二区| 国产97色在线日韩免费| 国产一区有黄有色的免费视频| 欧美成狂野欧美在线观看| 亚洲成人免费电影在线观看| 丝袜人妻中文字幕| 欧美激情久久久久久爽电影 | 亚洲一区二区三区不卡视频| 午夜福利在线免费观看网站| 黑人欧美特级aaaaaa片| 国产不卡av网站在线观看| svipshipincom国产片| 久久天堂一区二区三区四区| 国产精品欧美亚洲77777| 午夜免费观看网址| 人人妻人人添人人爽欧美一区卜| 中文字幕人妻丝袜一区二区| 18禁裸乳无遮挡免费网站照片 | 最新美女视频免费是黄的| 久久亚洲精品不卡| 亚洲精品国产色婷婷电影| 99精品欧美一区二区三区四区| 亚洲 欧美一区二区三区| 精品久久久久久久毛片微露脸| 韩国av一区二区三区四区| 日韩视频一区二区在线观看| 不卡av一区二区三区| 亚洲黑人精品在线| 一级黄色大片毛片| 欧美日韩成人在线一区二区| 亚洲熟女毛片儿| 欧美人与性动交α欧美精品济南到| 日韩免费av在线播放| 99热网站在线观看| 亚洲美女黄片视频| 久久久久视频综合| 国产精品香港三级国产av潘金莲| 黄色丝袜av网址大全| 99热只有精品国产| 日日摸夜夜添夜夜添小说| 国产男女超爽视频在线观看| 超碰成人久久| 亚洲av欧美aⅴ国产| 亚洲精品在线美女| 精品熟女少妇八av免费久了| 国产日韩欧美亚洲二区| 成人三级做爰电影| 一a级毛片在线观看| 欧美大码av| 国产三级黄色录像| av电影中文网址| 99国产精品一区二区蜜桃av | 天堂中文最新版在线下载|