精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

按下開機鍵后的4.98秒,到底發生了什么

系統 Linux
本講只為講明白下面一個問題:我們按下開機鍵后究竟發生了什么。來看一下吧。

 [[383511]]

本講只為講明白下面一個問題:

我們按下開機鍵后究竟發生了什么?

好的,這似乎是好多人都特別想搞明白的一個問題,有時候非常納悶,為什么一個看似這么簡單的問題,就是搜不到一個直面問題的答案呢?

好問題,我也不知道為什么會這樣,但我猜是因為:

  •  其一,似懂非懂的人太多,他們其實也不知道究竟發生了什么,所以只能模糊大概地說一些教科書上的話。
  •  其二,知道這個答案的人一定是大牛,大牛要么不回答這個問題,要么就不會簡單地回答這個問題。而我呢,自認為剛好處于兩者之間,現在又特別想把自己知道的分享出來,所以你在這里找到了答案。

我想當你探尋這個問題的答案時,搜到的大多數是這樣的描述:

BIOS 按照“啟動順序”,把控制權轉交給排在第一位的存儲設備:硬盤。然后在硬盤里尋找主引導記錄的分區,這個分區告訴電腦操作系統在哪里,并把操作系統被加載到內存中,然后你就能看到經典的啟動界面了,這個開機過程也就完成了。

這種描述簡直太魔幻了,為什么是 BIOS 主導這一切?怎么叫按照啟動順序?這個分區咋就被加載到內存了,又咋告訴電腦操作系統在哪里了?我無法忍受這樣的魔幻描述,我非要把它說得清清楚楚。

首先學一個東西,一定要有一個前置的知識,我們把它當做已知的,我不可能從原子組成分子開始講原理。那學習計算機啟動過程的前置知識是什么呢?我要求你已知以下幾點:

  1.  內存是存儲數據的地方,給出一個地址信號,內存可以返回該地址所對應的數據。
  2.  CPU 的工作方式就是不斷從內存中取出指令,并執行。
  3.  CPU 從內存的哪個地址取出指令,是由一個寄存器中的值決定的,這個值會不斷進行 +1 操作,或者由某條跳轉指令指定其值是多少。

好了,只需要知道這三點前置知識,你就能專業地解釋計算機的啟動過程了。

一、為什么是 BIOS 主導?

都說開機后,BIOS 就開始運行自己的程序了,又硬件自檢,又加載啟動區的。我就不服了,為什么開機后是執行 BIOS 里的程序?為啥不是內存里的?為啥不是硬盤里的?

好的,不要懷疑前置知識,CPU 的工作方式,就是不斷從內存中取指令并執行,那為什么會說是執行 BIOS 里的程序呢?這就不得不說說內存映射了。

二、內存映射

CPU 地址總線的寬度決定了可訪問的內存空間的大小。比如 16 位的 CPU 地址總線寬度為 20 位,地址范圍是 1M。32 位的 CPU 地址總線寬度為 32 位,地址范圍是 4G。你可以算算我們現在的 64 位機的地址范圍。

可是,可訪問的內存空間這么大,并不等于說全都給內存使用,也就是說尋址的對象不只有內存,還有一些外設也要通過地址總線的方式去訪問,那怎么去訪問這些外設呢?就是在地址范圍中劃出一片片的區域,這塊給顯存使用,那塊給硬盤控制器使用,等等 。

這樣說,其實就不符合我們的前置知識了,所以可以有一種不太正確的理解方式,那就是內存中的這塊位置就是顯存,那塊位置就是硬盤控制器。我們在相應的位置上讀取或者寫入,就相當于在顯存等外設的相應位置上讀取或者寫入,就好像這些外設的存儲區域,被映射到了內存中的某一片區域一樣。這樣我們就不用管那些外設啦,關注點仍然是一個簡簡單單的內存。這就是所謂的內存映射。

太好了,現在又用簡單的前置知識就能解釋得通了,我們繼續往下推。

三、實模式下的內存分布

剛剛說到內存中劃分出了一片一片區域給各種外設,那么問題自然就來了,哪塊區域,分給了哪塊外設了呢?如果是規定,那應該有一張表比較好吧。嗯沒錯,還真有,它就是實模式下的內存分布,筆者給它畫了一張圖:

在這里插入圖片描述

哎喲我真是個小天使,把比例都表現出來了,網上能再找出比我這個更直觀的請給我留言。實模式之后再解釋,現在簡單理解就是計算機剛開機的時候只有 1M 的內存可用。

我們看到,內存被各種外設瓜分了,即映射在了內存中。BIOS 更狠,不但其空間被映射到了內存 0xC0000 - 0xFFFFF 位置,其里面的程序還占用了開頭的一些區域,比如把中斷向量表寫在了內存開始的位置,真所謂先到先得啊。

四、怎么就從 BIOS 里的程序開始執行了

好了,現在我們知道 BIOS 里的信息被映射到了內存 0xC0000 - 0xFFFFF 位置,其中最為關鍵的系統 BIOS 被映射到了 0xF0000 - 0xFFFFF 位置。假如我現在說,CPU 開機就是執行了這塊區域的代碼,然后巴拉巴拉一頓操作就開機了,你肯定要噴我了,為什么就執行到這了呢,那咋不從頭開始執行?

這就自然有了一種猜想,我們要用到另一個前置知識了,就是 CPU 從內存的哪個位置取出執行并執行呢?是 PC 寄存器中的地址值。BIOS 程序的入口地址也就是開始地址是 0xFFFF0(人家就那么寫的),也就是開機鍵一按下,一定有一個神奇的力量,將 pc 寄存器中的值變成 0xFFFF0,然后 CPU 就開始馬不停蹄地跑了起來。沒錯,接下來這句話,可能就是你找了很久的答案,請做好準備:

在你開機的一瞬間,CPU 的 PC 寄存器被強制初始化為 0xFFFF0。如果再說具體些,CPU 將段基址寄存器 cs 初始化為 0xF000,將偏移地址寄存器 IP 初始化為 0xFFF0,根據實模式下的最終地址計算規則,將段基址左移 4 位,加上偏移地址,得到最終的物理地址也就是抽象出來的 PC 寄存器地址為 0xFFFF0。

當我在學習這段知識時,看到這句話才讓將我心里積壓了很久的疑惑解開,多么簡單粗暴的道理啊。寫到這里我也是長舒了一口氣,因為剩下的過程,就幾乎只是流水賬一樣的正推了。

至于怎么強制初始化的,我覺得就越過了前置知識的邊界了,況且各個廠商的硬件實現也不一定相同,有很多辦法,也很簡單。討論起來意義就不大了。

五、BIOS 里到底寫了什么程序

好了,我們現在知道了 BIOS 被映射到了內存的某個位置,并且開機一瞬間 CPU 強制將自己的 pc 寄存器初始化為 BIOS 程序的入口地址,從這里開始 CPU 馬不停蹄地向前跑了起來。那接下來的問題似乎也非常自然地就問出來了,那就是 BIOS 程序里到底寫了啥?

把 BIOS 程序里的二進制信息全貼出來也不合適,我們分析一些主要的。我們首先還是來猜測,你看入口地址是 0xFFFF0,說明程序是從這執行的。實模式下內存的下邊界就是 0xFFFFF,也就是只剩下 16 個字節的空間可以寫代碼了,這夠干啥的呢?如果你有心的話應該能猜出,入口地址處可能是個跳轉指令,跳到一個更大范圍的空間去執行自己的任務。沒錯就是這樣,0xFFFF0 處存儲的機器指令,翻譯成匯編語言是:

  1. jmp far f000:e05b 

意思是跳轉到物理地址 0xfe05b 處開始執行(回憶下前面說的實模式下的地址計算方式)。

地址 0xfe05b 處開始,便是 BIOS 真正發揮作用的代碼了,這塊代碼會檢測一些外設信息,并初始化好硬件,建立中斷向量表并填寫中斷例程。這里的部分不要展開,這只是一段寫死的程序而已,而且對理解開機啟動過程無幫助,我們看后面精彩的部分,也就是 BIOS 的最后一項工作:加載啟動區。

六、0x7c00 是啥

該較真的地方就是要較真,我絕對不會讓加載這種魔幻的詞出現在這里,我們現在就來把它拆解成人話。

其實這個詞也并不魔幻,加載在計算機領域就是指,把某設備上(比如硬盤)的程序復制到內存中的過程。那加載啟動區這個過程,翻譯過來就是,BIOS 程序把啟動區的內容復制到了內存中的某個區域。好了,問題又自然出來了,啟動區是哪里?被復制到了內存的哪個位置?然后呢?我們一個個來回答。

什么是啟動區呢?即使你不知道,你也應該能夠猜到,一定是符合某種特征的一塊區域,于是人們把它就叫做啟動區了,那要符合什么特征呢?先不急,不知道你有沒有過設置 BIOS 啟動順序的經歷,通常有 U 盤啟動、硬盤啟動、軟盤啟動、光盤啟動等等,BIOS 會按照順序,讀取這些啟動盤中位于 0 盤 0 道 1 扇區的內容。

至于磁盤格式的劃分,本篇就不做講解了,總之對于內存,我們給出一個數字地址就能獲取到該地址的數據,而對于磁盤,我們需要給出磁頭、柱面、扇區這三個信息才能定位某個位置的數據,都是描述位置的一種方式而已。

接著說, 這 0 盤 0 道 1 扇區的內容一共有 512 個字節,如果末尾的兩個字節分別是 0x55 和 0xaa,那么 BIOS 就會認為它是個啟動區。如果不是,那么按順序繼續向下個設備中尋找位于 0 盤 0 道 1 扇區的內容。如果最后發現都沒找到符合條件的,那直接報出一個無啟動區的錯誤。

BIOS 找到了這個啟動區之后干嘛呢?哦,前面說過了是加載,就是把這 512 個字節的內容,一個比特都不少的全部復制到內存的 0x7c00 這個位置。怎么復制的?當然是指令啦。哪些指令呢?這里我只能簡單說指令集中是有 in 和 out 的,用來將外設中的數據復制到內存,或者將內存中的數據復制到外設,用這兩個指令,以及外設給我們提供的讀取方式,就能做到這一點啦。

啟動區內容此時已經被 BIOS 程序復制到了內存的 0x7c00 這個位置,然后呢?這個其實也不難猜測,啟動區的內容就是我們自己寫的代碼了,復制到這里之后,就開始執行唄,之后我們的程序就接管了接下來的流程,BIOS 的使命也就結束啦。所以復制完之后,接下來應該是一個跳轉指令吧!沒錯,正是這樣,PC 寄存器的值變為 0x7c00,指令開始從這里執行。

咦?不知道你有沒有發現,我們似乎不知不覺又把之前的一句魔法語言翻譯成人話了,開頭我們說:

BIOS 把控制權轉交給排在第一位的存儲設備。

所以這句話是什么意思呢?就是 BIOS 把啟動區的 512 字節復制到內存的 0x7c00 位置,并且用一條跳轉指令將 pc 寄存器的值指向 0x7c00。你看,這不是也沒多幾個字嘛,就把這個問題說得明明白白,簡簡單單。

哦,對了,現在似乎就剩下一個問題了,為什么非要是 0x7c00 呢?好問題,當然答案也很簡單,那就是人家 BIOS 開發團隊就是這樣定的,之后也不好改了,不然不兼容。為什么不好改?我們看一個簡單的啟動區 512 字節的代碼。(代碼摘抄自《30 天自制操作系統》) 

  1. ; hello-os  
  2. TAB=4  
  3.   ORG  0x7c00   ;程序加載到內存的 0x7c00 這個位置  
  4. ;程序主體  
  5. entry:  
  6.   MOV  AX,0   ;初始化寄存器  
  7.   MOV  SS,AX  
  8.   MOV  SP,0x7c00  
  9.   MOV  DS,AX   ;段寄存器初始化為 0 
  10.   MOV  ES,AX  
  11.   MOV  SI,msg  
  12. putloop:  
  13.   MOV  AL,[SI]  
  14.   ADD  SI,1  
  15.   CMP  AL,0   ;如果遇到 0 結尾的,就跳出循環不再打印新字符  
  16.   JE  fin  
  17.   MOV  AH,0x0e   ;指定文字  
  18.   MOV  BX,15   ;指定顏色  
  19.   INT  0x10   ;調用 BIOS 顯示字符函數  
  20.   JMP  putloop  
  21. fin:  
  22.   HLT  
  23.   JMP  fin  
  24. msg:  
  25.   DB  0x0a,0x0a  ;換行、換行  
  26.   DB  "hello-os"  
  27.   DB  0x0a   ;換行  
  28.   DB  0    ;0 結尾  
  29.   RESB 0x7dfe-$   ;填充0到512字節  
  30.   DB 0x55, 0xaa   ;可啟動設備標識 

我們看第一行: 

  1. ORG  0x7c00 

這個數字就是剛剛說的啟動區加載位置,這行匯編代碼簡單說就表示把下面的地址統統加上 0x7c00。正因為 BIOS 將啟動區的代碼加載到了這里,因此有了一個偏移量,所以所有寫啟動區代碼的人就需要在開頭寫死一個這樣的代碼,不然全都串位了。

然后正因為所有寫操作系統的,啟動區的第一行匯編代碼都寫死了這個數字,那 BIOS 開發者最初定的這個數字就不好改了,否則它得挨個聯系各個操作系統的開發廠商,說唉我這個地址改一下哈,你們跟著改改。在公司推動另一個團隊改個代碼都得大費周折,想想看這樣的推動得耗費多大人力。況且即使改了,之前的代碼也都不兼容了,這不得被人們罵死啊。

再看最后一行: 

  1. DB 0x55, 0xaa 

這也驗證了我們之前說的這 512 字節的最后兩個字節得是 0x55 0xaa,BIOS 才會認為它是一個啟動區,才會去加載它,僅此而已。

回過頭來說 0x7c00 這個值,它其實就是一個規定死的值,但還是會有人問,那必然有它的合理性吧。其實,我的解釋也只能說是人家規定了這個值,后人們替他們解釋這個合理性,并不是說當初人家就一定是這樣想的,就好比我們做語文的閱讀理解題一樣。

第一個 BIOS 開發團隊是 IBM PC 5150 BIOS,當時被認為的第一個操作系統是 DOS 1.0 操作系統,BIOS 團隊就假設是為它服務的。但操作系統還沒出,BIOS 團隊假設其操作系統需要的最小內存為 32 KB。BIOS 希望自己所加載的啟動區代碼盡量靠后,這樣比較“安全”,不至于過早的被其他程序覆蓋掉。可是如果僅僅留 512 字節又感覺太懸了,還有一些??臻g需要預留,那擴大到 1 KB 吧。這樣 32 KB 的末尾是 0x8000,減去 1KB(0x400) ,剛好等于 0x7c00。哇塞,太精準了,這可以是一種解釋方式。

七、啟動區里的代碼寫了啥

其實寫到這,我這篇文章就應該戛然而止了,因為最初的那個問題已經解決了,CPU 已經開始馬不停蹄地從我們預期的位置跑起來了,萬事開頭難,剩下的內容,就是操作系統想怎么玩就怎么玩了。

但我覺得還不夠味,似乎還有些問題縈繞在你腦海里。比如說這個問題:

啟動區里的代碼寫了啥?就 512 字節就是全部操作系統內容了?

這是一個好問題,512 個字節確實干不了啥,現在的操作系統怎么也得按 M 為單位算吧,512 個字節遠遠不夠呢,那是怎么回事呢?

其實我們可以按照之前的思路猜測,BIOS 用很少的代碼就把 512 字節的啟動區內容加載到了內存,并跳轉過去開始執行。那按照這個套路,這 512 字節的啟動區代碼,是不是也可以把更多磁盤中存儲的操作系統程序,加載到內存的某個位置,然后跳轉過去呢?

沒錯,就是這個套路。所以 BIOS 負責加載了啟動區,而啟動區又負責加載真正的操作系統內核,這配合默契吧?

由于用于啟動盤的磁盤是人家寫操作系統的廠商制作的,俗稱制作啟動盤,所以他也肯定知道操作系統的核心代碼存儲在磁盤的哪個扇區,因此啟動區就把這個扇區,以及之后的好多好多扇區(具體取決于操作系統有多大)都讀到內存中,然后跳轉到開始的程序開始的位置。跳轉到哪里呢?這個就不像 0x7c00 這個數那么經典了,不同的操作系統肯定也不一樣,也不用事先規定好,反正寫操作系統的人給自己定一個就好了,別覆蓋其他關鍵設備用到的區域就好。

八、操作系統內核寫了啥

好了現在經過好幾輪跳跳跳,終于跳到內核代碼啦,我們來一起回顧一下:

  1.  按下開機鍵,CPU 將 PC 寄存器的值強制初始化為 0xffff0,這個位置是 BIOS 程序的入口地址(一跳)
  2.  該入口地址處是一個跳轉指令,跳轉到 0xfe05b 位置,開始執行(二跳)
  3.  執行了一些硬件檢測工作后,最后一步將啟動區內容加載到內存 0x7c00,并跳轉到這里(三跳)
  4.  啟動區代碼主要是加載操作系統內核,并跳轉到加載處(四跳)

經過這連續的四次跳躍,終于來到了操作系統的世界了,剩下的內容,可以說是整個操作系統課程所講述的原理,分段、分頁、建立中斷、設備驅動、內存管理、進程管理、文件系統、用戶態接口等等。

這些名詞在操作系統的課程中你可能都或多或少聽過,如果你好好學了的話也一定知道大概的原理,不過像筆者這樣從頭到尾研讀過 linux 內核源碼的硬核狗來說,這些概念不只是書本上枯燥無味的概念,而是活靈活現在操作系統的每一行代碼上,有的展現了作者無比的智慧,有的讓我看到了作者由于硬件設定不得已做出的屈服。

如果這篇文章提起了你對操作系統的好奇心,建議你也找時間讀一讀,和我一起入坑,你會發現一個新世界的大門向你打開了

九、參考資料

好了,這回我真的要結束了,相信如果你真的看完了全文,計算機的啟動過程,可以說有了比較具象的了解。如果你想深入細節,也就是了解整個過程的每一點,那可要下功夫了。 

 

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

2020-09-01 11:40:01

HTTPJavaTCP

2020-10-09 08:59:55

輸入網址解密

2021-12-16 15:58:48

Linux內存微軟

2020-08-17 12:47:07

Mozilla裁員瀏覽器

2011-03-31 09:20:45

URLDNSWeb應用程序

2019-11-12 14:41:41

Redis程序員Linux

2010-02-07 09:00:29

AndroidLinux Kerne

2019-08-26 09:35:25

命令ping抓包

2023-08-29 16:26:20

Linux命令行

2022-05-26 23:36:36

SQLMySQL數據

2021-04-20 19:15:51

瀏覽器網絡URL

2023-11-02 08:00:00

ClickHouse數據庫

2022-02-15 13:20:28

特斯拉電動車

2018-01-12 15:32:55

大數據DBA數據庫管理員

2019-12-10 09:42:57

OOM運維內存

2022-09-15 07:54:59

awaitPromise

2017-04-11 13:54:49

HTTPURLHTML

2025-04-27 08:11:26

2020-07-28 23:22:35

制造業工業物聯網IIOT

2017-09-06 16:20:51

點贊
收藏

51CTO技術棧公眾號

欧美一乱一性一交一视频| 精品欧美一区二区在线观看 | 国产高清在线免费| 亚洲一级高清| 永久免费毛片在线播放不卡| 婷婷激情综合五月天| av剧情在线观看| 国产欧美一区二区三区网站| 成人亚洲综合色就1024| 国产精品第二十页| av中字幕久久| 精品国产伦一区二区三区观看体验| 国产91xxx| 麻豆最新免费在线视频| 成人黄色777网| 国产精品视频一区二区三区四 | 97久久天天综合色天天综合色hd| 精品成人久久久| 97久久夜色精品国产| 亚洲精品一线二线三线无人区| 日本888xxxx| av3级在线| 亚洲视频中文字幕| 欧美一区免费视频| 全部免费毛片在线播放一个| 久久成人羞羞网站| 日本韩国在线不卡| 国产成人精品av久久| 欧美激情777| 亚洲欧洲高清在线| 水蜜桃av无码| 日韩激情精品| 欧美久久久一区| 久久久久久久久久福利| 都市激情久久综合| 亚洲欧美日本韩国| 亚洲综合视频一区| 国产片在线观看| 91麻豆免费观看| 国产精品视频一区二区三区经| 国产一区二区三区四区视频| 老司机免费视频久久| 久久久爽爽爽美女图片| 深夜福利影院在线观看| 人人狠狠综合久久亚洲婷婷| 亚洲图片制服诱惑| 中文字幕一区二区三区人妻| 理论片一区二区在线| 在线观看视频91| 国产精品无码av在线播放| 牛牛在线精品视频| 一区二区三区加勒比av| 亚洲区成人777777精品| 麻豆网站在线免费观看| 国产精品乱人伦| 一区二区三区偷拍| 免费在线看a| 综合久久国产九一剧情麻豆| 日本高清xxxx| av电影高清在线观看| 亚洲欧美一区二区三区孕妇| 日本在线视频www色| 亚洲区欧洲区| 午夜视频一区二区三区| 久久视频这里有精品| √8天堂资源地址中文在线| 亚洲www啪成人一区二区麻豆 | 蜜臀av性久久久久蜜臀aⅴ | 91精品国产色综合久久不8| 美女视频第一区二区三区免费观看网站| 国产精品久久久久久久久久久不卡| 日韩综合在线观看| 美女网站在线免费欧美精品| 成人黄色片在线| www.亚洲欧美| 91一区二区三区在线播放| 女人一区二区三区| 欧美日本一道| 亚洲国产视频在线| 亚洲色欲综合一区二区三区| 户外露出一区二区三区| 色av成人天堂桃色av| 亚洲国产高清av| 亚洲网站三级| 精品粉嫩超白一线天av| 91网站免费入口| 久久国产中文字幕| 欧美激情a∨在线视频播放| 国产69精品久久久久久久久久| 日韩精品五月天| 91久久在线观看| 欧美 日韩 国产 成人 在线 91 | 精品国产乱码久久久久久夜甘婷婷 | www国产精品视频| 久久久精品一区二区涩爱| 亚洲免费一区二区| 成人免费视频在线观看超级碰| 蜜桃久久一区二区三区| 国产性天天综合网| 粉嫩av一区二区三区天美传媒| 性欧美18xxxhd| 91精品在线免费观看| 毛茸茸多毛bbb毛多视频| 久久亚洲精品中文字幕蜜潮电影| 久久免费福利视频| 亚洲一区二区三区高清视频| 91在线免费播放| 日本久久高清视频| 性欧美1819sex性高清| 日韩欧美亚洲另类制服综合在线 | 自拍偷拍亚洲激情| 丰满少妇被猛烈进入高清播放| **精品中文字幕一区二区三区| 日韩精品欧美激情| 美女的奶胸大爽爽大片| 免费精品视频在线| 久久久久久久久久码影片| 中文在线观看免费| 欧美少妇一区二区| 制服丝袜第二页| 国精品一区二区| 成人两性免费视频| 国产女人在线观看| 欧美日韩激情美女| 国产精品99精品无码视亚| 色综合五月天| 日韩中文字幕观看| 经典三级久久| 亚洲欧洲黄色网| 久久99国产精品免费网站| 国产精自产拍久久久久久蜜| 婷婷久久久久久| 亚洲精品大片www| 思思久久精品视频| 波多野结衣在线观看一区二区| 91极品女神在线| 亚洲精品字幕在线| 亚洲图片你懂的| 中文字幕第88页| 欧美日韩国产在线观看网站| 欧美在线性视频| 熟妇人妻一区二区三区四区 | 任我爽在线视频| 丝袜美腿亚洲一区| 蜜桃麻豆www久久国产精品| av日韩国产| 亚洲国产精品高清久久久| 男女免费视频网站| 国产69精品久久久久777| 2025韩国大尺度电影| 综合欧美精品| 久久99国产精品自在自在app | 91成人在线视频观看| 欧美黄页免费| 久久天天躁狠狠躁夜夜av| 91资源在线视频| 国产精品久久久久久久久动漫| 少妇网站在线观看| 国产精品精品| 亚洲自拍偷拍区| 狂野欧美性猛交xxxxx视频| 日韩美女主播在线视频一区二区三区| 男女性高潮免费网站| 国产一区在线精品| 妺妺窝人体色www看人体| jizz性欧美23| 8x拔播拔播x8国产精品| 你懂的视频在线免费| 欧美性大战久久久久久久| 日本在线观看网址| 国产专区欧美精品| 日本天堂免费a| 久久亚洲黄色| 国产精品99蜜臀久久不卡二区| 国产露出视频在线观看| 欧洲精品中文字幕| 黑人狂躁日本娇小| 丁香桃色午夜亚洲一区二区三区 | 麻豆成人精品| 欧美日韩一区二区三区在线观看免| 日本.亚洲电影| 久久久国产视频| 国精产品一品二品国精品69xx| 姬川优奈aav一区二区| 欧美 变态 另类 人妖| 蜜桃视频第一区免费观看| 特色特色大片在线| 亚洲成在人线免费观看| 成人黄色大片在线免费观看| brazzers在线观看| 国产亚洲xxx| 99草在线视频| 色悠悠亚洲一区二区| 男人的午夜天堂| 91在线视频网址| 成人性生交视频免费观看| 一区在线播放| 亚洲图片欧洲图片日韩av| xvideos.蜜桃一区二区| 国产精品成人国产乱一区| 在线中文字幕电影| 亚洲偷熟乱区亚洲香蕉av| 亚洲国产精品视频在线| 欧美综合在线视频| 日韩精品一区二区三| 中文字幕在线观看一区二区| av网页在线观看| 麻豆精品一区二区三区| 欧美激情 国产精品| 888久久久| 日本一区二区免费看| 日韩精品久久久久久久软件91| 国产成人亚洲综合青青| 国产精品69xx| 萌白酱国产一区二区| 成年人在线观看视频| 亚洲激情在线观看视频免费| 国产免费一区二区三区免费视频| 色94色欧美sute亚洲线路二| 久久精品美女视频| 最新久久zyz资源站| 亚洲区自拍偷拍| 91日韩精品一区| 四虎成人免费视频| 国产在线精品一区在线观看麻豆| 成人亚洲视频在线观看| 一区二区三区国产在线| 青青在线视频免费观看| heyzo久久| 欧洲高清一区二区| 自拍偷拍欧美一区| 久久综合久久久| 欧美日韩一本| 精品伦精品一区二区三区视频| 亚洲福利合集| 97夜夜澡人人双人人人喊| 天堂综合在线播放| 国产原创欧美精品| 亚洲人成网站在线在线观看| 国产精品无码专区在线观看| 欧洲成人一区| 国产精品美女www| 蜜桃视频成人m3u8| 国产精品1234| 3d欧美精品动漫xxxx无尽| 91av在线免费观看视频| 国产激情视频在线看| 97在线看福利| 三级在线观看视频| 欧洲中文字幕国产精品| 色多多在线观看| 日本精品久久电影| 天天综合网天天| 国产高清在线不卡| 欧美xxxx网站| 亚洲一区二区免费| 高清精品久久| 91牛牛免费视频| 97久久超碰| 久久99精品久久久久久青青日本| 亚洲宅男网av| 亚洲国产欧美不卡在线观看| 国产精品久久久久无码av| 男人天堂成人网| 韩国在线视频一区| 日本在线xxx| 日韩福利视频导航| 一区二区三区欧美精品| 国产不卡高清在线观看视频| 国产精品无码一区二区三| 成人三级在线视频| 波多野结衣一本| 国产精品久久综合| 麻豆国产尤物av尤物在线观看| 亚洲h动漫在线| 欧美日韩在线视频播放| 欧美一区二区三区在线视频 | 玖玖玖视频精品| 精品国产乱码久久久久久郑州公司 | 激情综合亚洲精品| 亚洲成年人在线观看| 久久亚区不卡日本| 国产又粗又长又黄的视频| 亚洲免费在线看| 一区二区三区福利视频| 欧美视频精品在线观看| 亚洲国产中文字幕在线| 亚洲精选在线观看| 麻豆av免费在线观看| 午夜精品在线视频| 日本久久二区| 久久99欧美| 亚洲乱码免费伦视频| 国产特级淫片高清视频| 老司机精品视频一区二区三区| 免费看黄色片的网站| 日本一区二区三区高清不卡| 久久久久亚洲av片无码下载蜜桃| 色av一区二区| 天天操天天干天天干| 日韩中文字幕在线免费观看| 999av小视频在线| 成人做爽爽免费视频| 一个色免费成人影院| 大胆欧美熟妇xx| 另类欧美日韩国产在线| 在线免费观看污视频| 亚洲欧美成aⅴ人在线观看 | 91精品国产一区二区| 欧美美女搞黄| 久久久久久久久91| 日韩毛片免费看| 欧美亚洲免费高清在线观看| 亚洲午夜伦理| 特黄视频免费观看| 国产亚洲欧美中文| 日韩精品无码一区二区| 日韩午夜在线播放| 日本三级视频在线播放| 欧美一区三区三区高中清蜜桃| 日韩av综合| 最新精品视频| 免费成人av在线| 在线观看福利片| 午夜精品福利一区二区三区蜜桃| 国产同性人妖ts口直男| 中文字幕亚洲一区| 亚洲一区二区三区四区| 久久综合福利| 奶水喷射视频一区| 日本少妇色视频| 午夜成人免费电影| 黄片毛片在线看| 色综合男人天堂| 91精品导航| 免费视频爱爱太爽了| 国产精品77777| 欧美精品99久久久| 欧美一区二区三区思思人| 日本在线天堂| 91久久精品一区| 99久久精品国产亚洲精品| 99热这里只有精品在线播放| 国产午夜精品久久久久久久 | www青青草原| 欧美一区二区三区免费大片| 粗大黑人巨茎大战欧美成人| 91在线观看免费高清| 亚洲欧洲日韩| 丰满少妇中文字幕| 亚洲一区在线视频| 天堂在线视频网站| 欧美一区二区视频97| 精品久久久久久久久久久aⅴ| 国产天堂在线播放| 国产精品成人一区二区三区夜夜夜 | 国产日韩在线一区二区三区| 国产欧美精品| 好吊视频在线观看| 欧美日韩一本到| 超碰在线免费公开| 国产精品久久7| 亚洲一区黄色| 东京热无码av男人的天堂| 欧美美女网站色| 影音先锋男人资源在线| 精品视频免费观看| 日韩综合一区二区| 成人自拍小视频| 精品国产乱码久久久久久图片| 老司机深夜福利在线观看| 欧美人xxxxx| 精品一区二区三区在线播放| 国产精品九九九九九九| 亚洲精品国产免费| 韩国三级一区| 国产盗摄视频在线观看| 成人免费黄色大片| 尤物视频免费观看| 乱亲女秽乱长久久久| 美女扒开腿让男人桶爽久久动漫| 国产情侣av自拍| 亚洲欧美另类在线| 欧美视频综合| 91在线视频一区| 亚洲欧美久久久| 夫妻性生活毛片| 亚洲男女性事视频| 精品一区二区三区中文字幕| 国产视频九色蝌蚪| 最新热久久免费视频| 日韩一二三四| 亚洲xxxxx| 日韩中文欧美在线| 久草视频中文在线| 一区二区三区四区视频| 成人午夜大片| 99国产精品久久久久久| 欧美日韩免费看| 欧洲在线视频|