• <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)知識保護模式研究
    寧夏鹽池縣小麥野生近緣植物蒙古冰草保護模式探究
    亚洲自偷自拍图片 自拍| 欧美国产日韩亚洲一区| 99久久综合精品五月天人人| 禁无遮挡网站| 午夜激情福利司机影院| 十分钟在线观看高清视频www| 欧美成人性av电影在线观看| 一个人免费在线观看的高清视频| 亚洲精品美女久久久久99蜜臀| 哪里可以看免费的av片| 国产精品自产拍在线观看55亚洲| 两人在一起打扑克的视频| 淫妇啪啪啪对白视频| 一级a爱视频在线免费观看| 巨乳人妻的诱惑在线观看| 久久久精品欧美日韩精品| 99精品久久久久人妻精品| 精品第一国产精品| 亚洲国产高清在线一区二区三 | АⅤ资源中文在线天堂| 中文字幕人妻熟女乱码| 男女那种视频在线观看| 国产成人欧美| 国产精品日韩av在线免费观看| 免费看美女性在线毛片视频| 免费av毛片视频| 丝袜在线中文字幕| 老司机在亚洲福利影院| 亚洲国产精品合色在线| 欧美 亚洲 国产 日韩一| 99国产精品一区二区三区| 成人国产综合亚洲| 久久婷婷成人综合色麻豆| 婷婷精品国产亚洲av在线| 19禁男女啪啪无遮挡网站| 久久午夜亚洲精品久久| 窝窝影院91人妻| 丝袜在线中文字幕| 免费高清在线观看日韩| 国产单亲对白刺激| 国产伦一二天堂av在线观看| 日韩欧美 国产精品| av在线播放免费不卡| 午夜免费成人在线视频| 午夜福利在线在线| 亚洲美女黄片视频| 国产在线观看jvid| 国产成年人精品一区二区| 久久精品成人免费网站| 国产aⅴ精品一区二区三区波| 又紧又爽又黄一区二区| 久久精品aⅴ一区二区三区四区| 大型av网站在线播放| 久久久久国产一级毛片高清牌| 日本免费a在线| 久久久水蜜桃国产精品网| 一个人观看的视频www高清免费观看 | 国产精品久久久人人做人人爽| 欧美成人午夜精品| 国产伦一二天堂av在线观看| 此物有八面人人有两片| 日日干狠狠操夜夜爽| www国产在线视频色| 国产免费男女视频| 少妇被粗大的猛进出69影院| 给我免费播放毛片高清在线观看| 真人做人爱边吃奶动态| 国产精品久久久久久亚洲av鲁大| 国产一区二区激情短视频| 国产亚洲精品久久久久5区| 女人高潮潮喷娇喘18禁视频| 精品少妇一区二区三区视频日本电影| 精品国产超薄肉色丝袜足j| 久久婷婷成人综合色麻豆| 亚洲精品一卡2卡三卡4卡5卡| 人妻丰满熟妇av一区二区三区| 色尼玛亚洲综合影院| 黄色毛片三级朝国网站| 久久久久国产精品人妻aⅴ院| 亚洲欧洲精品一区二区精品久久久| 午夜免费鲁丝| 国产成人精品久久二区二区免费| 99国产精品一区二区三区| 成年版毛片免费区| 国产亚洲精品第一综合不卡| 久久亚洲真实| 我的亚洲天堂| 欧美又色又爽又黄视频| 欧美成人性av电影在线观看| 欧美久久黑人一区二区| 久久久久久人人人人人| 欧美激情高清一区二区三区| 精品日产1卡2卡| 曰老女人黄片| 免费在线观看完整版高清| 亚洲五月婷婷丁香| netflix在线观看网站| av天堂在线播放| 成在线人永久免费视频| 国产极品粉嫩免费观看在线| 黑人欧美特级aaaaaa片| 精品一区二区三区av网在线观看| 草草在线视频免费看| 国产99白浆流出| 女性被躁到高潮视频| 曰老女人黄片| 一区二区三区高清视频在线| 12—13女人毛片做爰片一| 久久99热这里只有精品18| 视频区欧美日本亚洲| 一区二区三区精品91| 97超级碰碰碰精品色视频在线观看| 国产日本99.免费观看| 国产激情久久老熟女| 真人做人爱边吃奶动态| 一边摸一边做爽爽视频免费| 国产成人系列免费观看| 免费高清视频大片| 久久人妻福利社区极品人妻图片| 黄片大片在线免费观看| 欧美色欧美亚洲另类二区| 国产人伦9x9x在线观看| 亚洲av片天天在线观看| 18禁黄网站禁片免费观看直播| 亚洲精品中文字幕一二三四区| 国产精品久久电影中文字幕| 亚洲熟女毛片儿| 哪里可以看免费的av片| 狂野欧美激情性xxxx| 激情在线观看视频在线高清| 免费av毛片视频| 99在线视频只有这里精品首页| 一级毛片精品| 国产高清激情床上av| 在线观看午夜福利视频| 亚洲中文日韩欧美视频| 国产不卡一卡二| 久久精品成人免费网站| 免费观看精品视频网站| 久久精品91蜜桃| 午夜福利欧美成人| 一个人免费在线观看的高清视频| 真人一进一出gif抽搐免费| 亚洲精品国产一区二区精华液| 欧美日本视频| 99久久久亚洲精品蜜臀av| 中文字幕人成人乱码亚洲影| 午夜福利欧美成人| 视频区欧美日本亚洲| 桃红色精品国产亚洲av| 可以免费在线观看a视频的电影网站| 国内精品久久久久精免费| 久久精品亚洲精品国产色婷小说| 免费在线观看影片大全网站| 日韩欧美一区视频在线观看| 极品教师在线免费播放| 国产av又大| 色尼玛亚洲综合影院| 在线国产一区二区在线| 色综合亚洲欧美另类图片| 麻豆av在线久日| 日日摸夜夜添夜夜添小说| 2021天堂中文幕一二区在线观 | 精品卡一卡二卡四卡免费| 中文字幕人成人乱码亚洲影| 欧美成人性av电影在线观看| 麻豆一二三区av精品| 精华霜和精华液先用哪个| 中国美女看黄片| 我的亚洲天堂| 中文字幕人成人乱码亚洲影| 男男h啪啪无遮挡| 久久欧美精品欧美久久欧美| 亚洲精品久久国产高清桃花| 久久久久免费精品人妻一区二区 | 日韩一卡2卡3卡4卡2021年| 不卡av一区二区三区| 久久天堂一区二区三区四区| 亚洲成国产人片在线观看| 亚洲人成网站在线播放欧美日韩| 欧美黄色片欧美黄色片| 亚洲欧美一区二区三区黑人| 99精品久久久久人妻精品| 欧美成狂野欧美在线观看| 国产精品 欧美亚洲| 不卡av一区二区三区| 免费看a级黄色片| 亚洲精品粉嫩美女一区| 一本一本综合久久| 我的亚洲天堂| 熟女电影av网| 久久精品aⅴ一区二区三区四区| 中文字幕另类日韩欧美亚洲嫩草| 国产麻豆成人av免费视频| 久久久久久久久免费视频了| 国产亚洲精品久久久久久毛片| 男女做爰动态图高潮gif福利片| 午夜福利免费观看在线| 亚洲国产中文字幕在线视频| 日韩精品青青久久久久久| 亚洲国产精品成人综合色| 99久久综合精品五月天人人| 少妇熟女aⅴ在线视频| 免费看a级黄色片| 亚洲精品国产精品久久久不卡| 好男人在线观看高清免费视频 | 香蕉av资源在线| 欧美在线一区亚洲| 观看免费一级毛片| 一a级毛片在线观看| 国产色视频综合| 日韩国内少妇激情av| 免费在线观看完整版高清| 欧美黄色淫秽网站| 12—13女人毛片做爰片一| 狠狠狠狠99中文字幕| 黄色a级毛片大全视频| 搡老岳熟女国产| 欧美色视频一区免费| 国产精品亚洲美女久久久| 国产精品久久久人人做人人爽| 热99re8久久精品国产| 侵犯人妻中文字幕一二三四区| 午夜福利免费观看在线| 观看免费一级毛片| 美女免费视频网站| 18禁黄网站禁片午夜丰满| 亚洲av五月六月丁香网| 极品教师在线免费播放| 亚洲人成网站高清观看| 日韩欧美一区二区三区在线观看| 久久这里只有精品19| 少妇 在线观看| 露出奶头的视频| 国产av一区在线观看免费| 久久欧美精品欧美久久欧美| 久9热在线精品视频| 亚洲色图av天堂| 免费高清视频大片| 国产成人啪精品午夜网站| 久久精品人妻少妇| 亚洲成av人片免费观看| 国产精品亚洲一级av第二区| av视频在线观看入口| 日日摸夜夜添夜夜添小说| 丰满的人妻完整版| 婷婷丁香在线五月| av中文乱码字幕在线| 亚洲精品久久国产高清桃花| 亚洲色图av天堂| 亚洲狠狠婷婷综合久久图片| 黑人欧美特级aaaaaa片| 久久天堂一区二区三区四区| 国产成人啪精品午夜网站| av中文乱码字幕在线| 午夜精品在线福利| 又紧又爽又黄一区二区| 制服丝袜大香蕉在线| 九色国产91popny在线| 嫩草影视91久久| 国产亚洲精品久久久久5区| 在线av久久热| 国产1区2区3区精品| 波多野结衣高清无吗| 嫩草影院精品99| 老司机午夜十八禁免费视频| 少妇熟女aⅴ在线视频| 他把我摸到了高潮在线观看| 亚洲aⅴ乱码一区二区在线播放 | 亚洲国产精品sss在线观看| 一本久久中文字幕| 亚洲五月色婷婷综合| 制服丝袜大香蕉在线| 丁香六月欧美| 国产精品二区激情视频| 最近最新中文字幕大全电影3 | videosex国产| 中文字幕精品亚洲无线码一区 | 神马国产精品三级电影在线观看 | 大型av网站在线播放| www.精华液| 成人国产一区最新在线观看| 亚洲色图 男人天堂 中文字幕| 欧美激情久久久久久爽电影| 狠狠狠狠99中文字幕| 亚洲av片天天在线观看| 欧美性猛交黑人性爽| 制服人妻中文乱码| 久久精品国产亚洲av香蕉五月| 国产日本99.免费观看| 日韩欧美 国产精品| 十八禁人妻一区二区| 日本熟妇午夜| 丝袜美腿诱惑在线| 女人爽到高潮嗷嗷叫在线视频| 免费高清视频大片| 亚洲天堂国产精品一区在线| 免费av毛片视频| 亚洲av电影不卡..在线观看| 日韩 欧美 亚洲 中文字幕| aaaaa片日本免费| 久久久久久九九精品二区国产 | 99久久精品国产亚洲精品| 妹子高潮喷水视频| 亚洲成av人片免费观看| 妹子高潮喷水视频| 一本一本综合久久| 亚洲中文字幕日韩| 丝袜人妻中文字幕| 少妇 在线观看| 国产成人精品无人区| 99久久99久久久精品蜜桃| 中文字幕人妻丝袜一区二区| 男女那种视频在线观看| 88av欧美| 黄片播放在线免费| 精品乱码久久久久久99久播| 日韩欧美国产在线观看| 久久精品国产亚洲av香蕉五月| 91麻豆av在线| 国产不卡一卡二| 欧美中文日本在线观看视频| 91成人精品电影| 操出白浆在线播放| 91字幕亚洲| 午夜精品在线福利| 动漫黄色视频在线观看| av超薄肉色丝袜交足视频| 成人永久免费在线观看视频| 免费在线观看完整版高清| 两人在一起打扑克的视频| 国语自产精品视频在线第100页| 婷婷六月久久综合丁香| av福利片在线| 欧美国产精品va在线观看不卡| 久久精品国产清高在天天线| 很黄的视频免费| 欧美日韩瑟瑟在线播放| 日韩欧美三级三区| 一级作爱视频免费观看| 欧美绝顶高潮抽搐喷水| 草草在线视频免费看| 麻豆国产av国片精品| 一本大道久久a久久精品| av欧美777| 国产熟女午夜一区二区三区| 国产精品98久久久久久宅男小说| 女性生殖器流出的白浆| 国产精品一区二区免费欧美| 波多野结衣高清作品| 亚洲在线自拍视频| 男女床上黄色一级片免费看| 50天的宝宝边吃奶边哭怎么回事| 变态另类丝袜制服| 亚洲精品av麻豆狂野| 中文字幕人妻丝袜一区二区| 窝窝影院91人妻| 在线天堂中文资源库| 欧美最黄视频在线播放免费| 亚洲久久久国产精品| 最近最新中文字幕大全电影3 | 成熟少妇高潮喷水视频| 天天躁狠狠躁夜夜躁狠狠躁| 老司机午夜福利在线观看视频| 免费看a级黄色片| 两人在一起打扑克的视频| 亚洲真实伦在线观看| 国产成人一区二区三区免费视频网站| 午夜福利在线在线| 狂野欧美激情性xxxx| 亚洲国产精品999在线| av片东京热男人的天堂| 午夜影院日韩av| 性欧美人与动物交配| 人人妻人人澡欧美一区二区| 久久久久久亚洲精品国产蜜桃av| 波多野结衣av一区二区av| 欧美中文日本在线观看视频| 在线观看一区二区三区| 久久伊人香网站| 精品国产一区二区三区四区第35| 国产精品永久免费网站| 18禁国产床啪视频网站| 久久久久久久久免费视频了| 欧美激情极品国产一区二区三区| 9191精品国产免费久久| 一夜夜www| 欧美绝顶高潮抽搐喷水| 一个人观看的视频www高清免费观看 | 18禁裸乳无遮挡免费网站照片 | 欧美zozozo另类| 757午夜福利合集在线观看| 69av精品久久久久久| 欧美激情久久久久久爽电影| 叶爱在线成人免费视频播放| 久久青草综合色| 欧美黑人精品巨大| 久久久精品国产亚洲av高清涩受| 色老头精品视频在线观看| 欧美日韩中文字幕国产精品一区二区三区| 亚洲avbb在线观看| 亚洲国产欧美日韩在线播放| 叶爱在线成人免费视频播放| 看免费av毛片| 国产精品香港三级国产av潘金莲| 亚洲一卡2卡3卡4卡5卡精品中文| 国产免费男女视频| 国产亚洲欧美在线一区二区| 日本a在线网址| 免费人成视频x8x8入口观看| 91大片在线观看| 伊人久久大香线蕉亚洲五| 国产精品自产拍在线观看55亚洲| 国产aⅴ精品一区二区三区波| 美女免费视频网站| 日韩有码中文字幕| 91在线观看av| 十八禁网站免费在线| 亚洲第一电影网av| 国产欧美日韩精品亚洲av| 亚洲av中文字字幕乱码综合 | 国产精品电影一区二区三区| 亚洲中文av在线| 亚洲精品av麻豆狂野| 亚洲狠狠婷婷综合久久图片| www日本在线高清视频| 少妇粗大呻吟视频| 日本免费a在线| 亚洲人成伊人成综合网2020| 国产亚洲精品综合一区在线观看 | 久久99热这里只有精品18| 黄色片一级片一级黄色片| 国产一级毛片七仙女欲春2 | 午夜成年电影在线免费观看| 精品卡一卡二卡四卡免费| АⅤ资源中文在线天堂| 淫妇啪啪啪对白视频| 久久天堂一区二区三区四区| 日韩一卡2卡3卡4卡2021年| 侵犯人妻中文字幕一二三四区| 日本免费a在线| 色播在线永久视频| 免费在线观看完整版高清| 日本三级黄在线观看| 久久久国产欧美日韩av| 免费在线观看亚洲国产| 亚洲 欧美 日韩 在线 免费| 久久天躁狠狠躁夜夜2o2o| 久久精品亚洲精品国产色婷小说| 母亲3免费完整高清在线观看| 亚洲国产高清在线一区二区三 | 又紧又爽又黄一区二区| 久99久视频精品免费| 国产成人影院久久av| 国产精品亚洲一级av第二区| 国产极品粉嫩免费观看在线| 美女免费视频网站| 两个人看的免费小视频| 国产一区二区激情短视频| 国产伦在线观看视频一区| 久久中文字幕人妻熟女| 亚洲午夜精品一区,二区,三区| 亚洲精华国产精华精| 激情在线观看视频在线高清| 欧美乱妇无乱码| 91字幕亚洲| 国产v大片淫在线免费观看| av在线播放免费不卡| 久久伊人香网站| 少妇被粗大的猛进出69影院| 中文字幕最新亚洲高清| 久久精品国产亚洲av香蕉五月| 正在播放国产对白刺激| 亚洲成人国产一区在线观看| 黑人欧美特级aaaaaa片| 亚洲成av片中文字幕在线观看| 怎么达到女性高潮| www.999成人在线观看| xxx96com| 日本精品一区二区三区蜜桃| 50天的宝宝边吃奶边哭怎么回事| 叶爱在线成人免费视频播放| 麻豆成人av在线观看| 操出白浆在线播放| 中文字幕人成人乱码亚洲影| 中文字幕最新亚洲高清| 精品久久久久久久毛片微露脸| 国产精品国产高清国产av| 在线观看午夜福利视频| www.自偷自拍.com| 亚洲成国产人片在线观看| 免费av毛片视频| 真人做人爱边吃奶动态| 久久久久久久精品吃奶| 悠悠久久av| 亚洲免费av在线视频| 日本 av在线| 91大片在线观看| or卡值多少钱| 国产黄片美女视频| 女警被强在线播放| 99re在线观看精品视频| 国产精品一区二区免费欧美| 欧美日韩亚洲综合一区二区三区_| 一二三四在线观看免费中文在| 后天国语完整版免费观看| 神马国产精品三级电影在线观看 | 亚洲国产中文字幕在线视频| 婷婷亚洲欧美| 老汉色∧v一级毛片| 99国产精品一区二区蜜桃av| 99国产精品99久久久久| 免费看a级黄色片| 久久性视频一级片| 动漫黄色视频在线观看| 国产精华一区二区三区| 在线观看免费视频日本深夜| 欧美日韩中文字幕国产精品一区二区三区| 国产精品一区二区三区四区久久 | √禁漫天堂资源中文www| 午夜影院日韩av| 在线av久久热| 成人三级黄色视频| 可以免费在线观看a视频的电影网站| 亚洲国产精品sss在线观看| 特大巨黑吊av在线直播 | 国产精品久久电影中文字幕| 男人舔女人下体高潮全视频| 欧洲精品卡2卡3卡4卡5卡区| 国产欧美日韩一区二区三| 国产1区2区3区精品| 亚洲七黄色美女视频| 成年版毛片免费区| 18禁裸乳无遮挡免费网站照片 | 国产精品美女特级片免费视频播放器 | 一级毛片女人18水好多| 香蕉av资源在线| 少妇的丰满在线观看| 亚洲真实伦在线观看| 可以免费在线观看a视频的电影网站| av天堂在线播放| 夜夜夜夜夜久久久久| 黑人巨大精品欧美一区二区mp4| 老司机靠b影院| 国产精品爽爽va在线观看网站 | 美女国产高潮福利片在线看| 性色av乱码一区二区三区2| 欧美最黄视频在线播放免费| 久久精品国产清高在天天线| svipshipincom国产片| 成人三级黄色视频| 午夜福利成人在线免费观看| 久久婷婷人人爽人人干人人爱| 久久午夜综合久久蜜桃| 国产精品免费一区二区三区在线| 国产又黄又爽又无遮挡在线| 日韩欧美三级三区| 黄色a级毛片大全视频| 日韩三级视频一区二区三区| 亚洲av片天天在线观看| 嫁个100分男人电影在线观看| 久久久国产欧美日韩av| 一级毛片女人18水好多| 母亲3免费完整高清在线观看| www.自偷自拍.com| 国产又黄又爽又无遮挡在线| 黄频高清免费视频| 欧美一区二区精品小视频在线| 婷婷丁香在线五月| 女性生殖器流出的白浆| 欧美成人午夜精品| 亚洲第一欧美日韩一区二区三区| 亚洲熟妇中文字幕五十中出| 老司机在亚洲福利影院| 国产日本99.免费观看| 88av欧美| 欧美不卡视频在线免费观看 | 欧美日本视频| 香蕉国产在线看| avwww免费| 亚洲av成人一区二区三| 日本 欧美在线| 国产野战对白在线观看| 亚洲avbb在线观看| 黑丝袜美女国产一区| 不卡一级毛片| 色综合欧美亚洲国产小说| videosex国产| 久久精品91蜜桃| 美女扒开内裤让男人捅视频| or卡值多少钱| 亚洲精品中文字幕在线视频| 午夜成年电影在线免费观看| 国产精品av久久久久免费| 黄色 视频免费看| 国产精品 欧美亚洲| 日韩欧美免费精品| 亚洲精品国产区一区二| 国产精品 欧美亚洲| 日韩欧美免费精品| 老熟妇仑乱视频hdxx| 欧洲精品卡2卡3卡4卡5卡区| 叶爱在线成人免费视频播放| 午夜视频精品福利| 一本精品99久久精品77| 亚洲一码二码三码区别大吗| 亚洲精品在线观看二区| 中文字幕久久专区| 一边摸一边抽搐一进一小说| 欧美+亚洲+日韩+国产| 可以免费在线观看a视频的电影网站| 亚洲中文av在线| 动漫黄色视频在线观看| 亚洲国产精品久久男人天堂| 欧美日韩乱码在线|