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

你不知道的Linux Kernel

運維 系統運維
Linux內核更新是越來越快了,可能由于Linux的普及,大家都開始關注了,各種安全隱患也越來越多。支持Intel、Alpha、PPC、Sparc、IA-64、ARM、MIPS、Amiga、Atari和IBMs/390等,還支持32位大文件系統。而在Intel平臺上,物理內存最大支持可以達到64GB。加強對IDE和SCSI硬件系統的支持,并增強了對USB設備和3D加速卡的支持。下面向大家詳細介紹Linux Kernel。

Linux內核更新是越來越快了,可能由于Linux的普及,大家都開始關注了,各種安全隱患也越來越多。支持Intel、Alpha、PPC、Sparc、IA-64、ARM、MIPS、Amiga、Atari和IBMs/390等,還支持32位大文件系統。而在Intel平臺上,物理內存最大支持可以達到64GB。加強對IDE和SCSI硬件系統的支持,并增強了對USB設備和3D加速卡的支持。下面向大家詳細介紹Linux Kernel

牛津字典中對"kernel"一詞的定義是:"較軟的、通常是一個堅果可食用的部分。"當然還有第二種定義:"某個東西核心或者最重要的部分。"對Linux來說,它的Kernel無疑屬于第二種解釋。讓我們來看看這個重要的東西是如何工作的,先從一點理論說起。

廣義地來說kernel就是一個軟件,它在硬件和運行在計算機上的應用程序之間提供了一個層。嚴格點從計算機科學的角度來說,Linux中的Kernel指的是Linus Torvalds在90年代初期寫的那點代碼。

所有的你在Linux各版本中看到的其他東西--Bash shell、KDE窗口管理器、web瀏覽器、X服務器、Tux Racer以及所有的其他,都不過是運行在Linux上的應用而已,而不是操作系統自身的一部分。為了給大家一個更加直觀的感覺,我來舉個例子,比如RHEL5的安裝大概要占據2.5GB的硬盤空間(具體多大當然視你的選擇安裝來定),在這其中,kernel以及它的各個模塊組件,只有47MB,所占比例約為2%。

在kernel內部

那么kernel到底是如何工作的呢?如下面的圖表。Kernel通過許多的進入端口也就是我們從技術角度所說的系統調用,來使得運行在它上面的應用程序可用。Kernel使用的系統調用比如"讀"和"寫"來提供你硬件的抽象(abstraction)。

你不知道的Linux Kernel

從程序員的視角來看,這些看起來只是普通的功能調用,然而實際上系統調用在處理器的操作模式上,從用戶空間到Kernel空間有一個明顯的切換。同時,系統調用提供了一個"Linux虛擬機",可以被認為是對硬件的抽象。

Kernel提供的更明顯的抽象之一是文件系統。舉例來說,這里有一段短的程序是用C寫的,它打開了一個文件并將內容拷貝到標準的輸出:

  1. #include <fcntl.h> 
  2.  
  3. int main()  
  4.  
  5. {  
  6.  
  7.     int fd, count; char buf[1000];  
  8.  
  9.     fd=open("mydata", O_RDONLY);  
  10.  
  11.     count = read(fd, buf, 1000);  
  12.  
  13.     write(1, buf, count);  
  14.  
  15.     close(fd);  
  16.  

在這里,你可以看到四個系統調用的例子:打開、讀、寫和關閉。不談這段程序語法的細節,重點是:通過這些系統調用Linux Kernel提供了一個文件的"錯覺",而實際上它不過是一堆數據有了個名字,這樣一來你就不必去與硬件底層的堆棧、分區、頭和指針、分區等交涉了,而是直接以例子中的方式與硬件"交流",這也就是我們所說的抽象(abstraction),將底層的東西以更易懂的方式表達出來。

臺前幕后

系統文件是Kernel提供的較為明顯的一種抽象。還有一些特性不是這么的明顯,比如進程調度。任何一個時間,都可能有好幾個進程或者程序等待著運行。Kernel的時間調度給每個進程分配CPU時間,所以就一段時間內來說,我們會有種錯覺:電腦同一時間運行好幾個程序。這是另外一個C程序:

  1. #include <stdlib.h> 
  2.  
  3. main()  
  4.  
  5. {  
  6.  
  7.   if (fork()) {  
  8.  
  9.     write(1, "Parent\n", 7);  
  10.  
  11.     wait(0);  
  12.  
  13.     exit(0);  
  14.  
  15.   }  
  16.  
  17.   else {  
  18.  
  19.     write(1, "Child\n", 6);  
  20.  
  21.     exit(0);  
  22.  
  23.   }  
  24.  

在這個程序中創建了一個新進程,而原來的進程(父進程)和新進程(子進程)都編寫了標準輸出然后結束。注意系統調用fork(), exit() 以及 wait()執行程序的創建、結束和各自同步。這是進程管理和調度中最典型的簡單調用。

Kernel還有一個更加不易見到的功能,連程序員都不易察覺,那就是存儲管理。每個程序運行得都好像它有個自己的地址空間來調用一樣,實際上它跟其他進程一樣共享計算機的物理存儲,如果系統運行的存儲過低,它的地址空間甚至會被磁盤的交互區暫時寄用。存儲管理的另外一個方面是防止一個進程訪問其他進程的地址空間--對于多進程操作系統來說這是很必要的一個防范措施。

Kernel同樣還配置網絡鏈接協議比如IP、TCP和UDP等,它們在網絡上提供機器對機器(machine-to-machine)和進程對進程(process-to-process)的通信。這里又會造成一種假象,即TCP在兩個進程之間提供了一個固定連接--就好像連接兩個電話的銅線一樣,實際中卻并沒有固定的連接,特殊的引用協議比如FTP、DNS和HTTP是通過用戶級程序來實施的,而并非Kernel的一部分。

Linux(像之前的Unix)在安全方面口碑很好,這是因為Kernel跟蹤記錄了每個運行進程的user ID和group ID,每次當一個應用企圖訪問資源(比如打開一個文件來寫入)的時候,Kernel就會核對文件上的訪問許可然后做出允許/禁止的命令。這種訪問控制模式最終對整個Linux系統的安全作用很大。

Kernel還提供了一大套模塊的集合,其功能包括如何處理與硬件設備交流的諸多細節、如何從磁盤讀取一個分區、如果從網絡接口卡獲取數據包等。有時我們稱這些為設備驅動。

模塊化的Kernel

現在我們隊Kernel是做什么的已經有了一些了解,讓我們再來簡單看下它的物理組成。早期版本的Linux Kernel是整體式的,也就是說所有的部件都靜態地連接成一個(很大的)執行文件。

相比較而言,現在的Linux Kernel是模塊化的:許多功能包含在模塊內,然后動態地載入kernel中。這使得kernel的內核很小,而且在運行kernel時可以不必reboot就能載入和替代模塊。

Kernel的內核在boot time時從位于/boot 目錄的一個文件加載進存儲中,通常這個/boot 目錄會被叫做KERNELVERSION,KERNELVERSION與kernel版本有關。(如果你想知道你的kernel版本是什么,運行命令行顯示系統信息-r。)kernel的模塊位于目錄/lib/modules/KERNELVERSION之下,所有的組件都會在kernel安裝時被拷貝。

管理模塊

大部分情況下,Linux管理它的模塊不需要你的幫忙,但是如果必要的時候有命令行可以來手動檢查和管理模塊。比如,為了查清楚當前到底哪個模塊在載入kernel。這里有一個輸出的例子:

  1. # lsmod  
  2.  
  3. pcspkr              4224  0   
  4.  
  5. hci_usb            18204  2   
  6.  
  7. psmouse            38920  0   
  8.  
  9. bluetooth          55908  7 rfcomm,l2cap,hci_usb  
  10.  
  11. yenta_socket       27532  5   
  12.  
  13. rsrc_nonstatic     14080  1 yenta_socket  
  14.  
  15. isofs              36284  0  

輸出的內容包括:模塊的名字、大小、使用次數和依賴于它的模塊列表。使用次數對防止卸載當前活躍的模塊非常總要。Linux只允許使用次數為零的模塊被移除。

你可以使用modprobe來手動加載和卸載模塊,(還有兩個命令行叫做insmod和rmmod,但modprobe更易于使用因為它自動移除了模塊依賴)。比如lsmod的輸出在我們的電腦上顯示了一個名叫isofs的卸載模塊,它的使用次數是零而且沒有依賴模塊,(isofs是一個模塊,它支持CD上使用的ISO系統文件格式)這種情況下,kernel會允許我們卸載模塊:

  1. # modprobe -r isofs 

現在,isofs不再顯示在Ismod的輸出中,kernel由此節省了36,284字節的存儲。如果你放入CD并且讓它自動安裝,kernel將自動重新載入isofs模塊,而且isofs的使用次數增加到1次。如果這時候你還試圖移除模塊,就不會成功了因為它正在被使用:

  1. # modprobe -r isofs   
  2.  
  3. FATAL: Module isofs is in use. 

Lsmod只是列出了當前被載入的模塊,modprobe則將列出所有可用的模塊,它實際上輸出了/lib/modules/KERNELVERSION目錄下所有的模塊,名單會很長!

實際上,使用modprobe來手動加載一個模塊并不常見,但確實可以通過modprobe命令行來對模塊設置參數,例如:

  1. # modprobe usbcore blinkenlights=1 

我們并不是在創建blinkenlights,而是usbcore模塊的實參數。

那么如何知道一個模塊會接受什么參數呢?一個比較好的方法是使用modinfo命令,它列出了關于模塊的種種信息。這里有一個關于模塊snd-hda-intel的例子

  1. # modinfo snd-hda-intel   
  2.  
  3. filename:       /lib/modules/2.6.20-16-generic/kernel/sound/pci/hda/snd-hda-intel.ko  
  4.  
  5. description:    Intel HDA driver  
  6.  
  7. license:        GPL  
  8.  
  9. srcversion:     A3552B2DF3A932D88FFC00C  
  10.  
  11. alias:          pci:v000010DEd0000055Dsv*sd*bc*sc*i*  
  12.  
  13. alias:          pci:v000010DEd0000055Csv*sd*bc*sc*i*  
  14.  
  15. depends:        snd-pcm,snd-page-alloc,snd-hda-codec,snd  
  16.  
  17. vermagic:       2.6.20-16-generic SMP mod_unload 586   
  18.  
  19. parm:           index:Index value for Intel HD audio interface. (int)  
  20.  
  21. parm:           id:ID string for Intel HD audio interface. (charp)  
  22.  
  23. parm:           model:Use the given board model. (charp)  
  24.  
  25. parm:           position_fix:Fix DMA pointer (0 = auto1 = none2 = POSBUF3 = FIFO size). (int)  
  26.  
  27. parm:           probe_mask:Bitmask to probe codecs (default = -1). (int)  
  28.  
  29. parm:           single_cmd:Use single command to communicate with codecs (for debugging only). (bool)  
  30.  
  31. parm:           enable_msi:Enable Message Signaled Interrupt (MSI) (int)  
  32.  
  33. parm:           enable:bool 

對我們來說比較有興趣的以"parm"開頭的那些部分:顯示了模塊所接受的參數。這些描述都比較簡明,如果想要更多的信息,那就安裝kernel的源代碼,在類似于/usr/src/KERNELVERSION/Documentation的目錄下你會找到。

里面會有一些有趣的東西,比如文件/usr/src/KERNELVERSION/Documentation/sound/alsa/ALSA-Configuration.txt描述的是被許多ALSA聲音模塊承認的參數;/usr/src/KERNELVERSION/Documentation/kernel-parameters.txt這個文件也很有用。

前幾天在Ubuntu論壇有一個例子,說的是如何將參數傳遞到一個模塊(詳見https://help.ubuntu.com/community/HdaIntelSoundHowto)。實際上問題的關鍵是snd-hda-intel參數在正確驅動聲音硬件時需要一點操作,而且在boot time加載時會中止。解決方法的一部分是將probe_mask=1選項賦給模塊,如果你是手動加載模塊,你需要輸入:

  1. # modprobe snd-hda-intel probe_mask=1 

更有可能,你在文件/etc/modprobe.conf中放置這樣類似的一行:options snd-hda-intel probe_mask=1

這"告訴"modprobe每次在加載snd-hda-intel模塊時包含probe_mask=1選項。現在的有些Linux版本將這一信息分離進/etc/modprobe.d下的不同文件中了,而不是放入modprobe.conf中。

/proc系統文件

Linux kernel同樣通過/proc系統文件來展示了許多細節。為了說明/proc,我們首先需要擴展我們對于文件的理解。除了認為文件就是存儲在硬盤或者CD或者存儲空間上的持久信息之外,我們還應當把它理解為任何可以通過傳統系統調用如:打開、讀、寫、關閉等訪問的信息,當然它也可以被常見的程序訪問。

/proc之下的"文件"完全是kernel虛擬的一個部分,給我們一個視角可以看到kernel內部的數據結構。實際上,許多Linux的報告工具均能夠很好地呈現在/proc下的文件中尋到的格式化版本的信息。比如,一列/proc/modules將展示一列當前加載的模塊。

同樣的,/proc/meminfo提供了關于虛擬存儲系統當前狀態的更多細節信息,而類如vmstat的工具則是以一種更加可理解的方式提供了相同的一些信息;/proc/net/arp顯示了系統ARP cache的當前內容,從命令行來說,arp -a顯示的也是相同的信息。

尤其有意思的是/proc/sys下的"文件"。/proc/sys/net/ipv4/ip_forward下的設置告訴我們kernel是否將轉發IP數據包,也就是說是否扮演網關的作用。現在,kernel告訴我們這是關閉的:

  1. # cat /proc/sys/net/ipv4/ip_forward   
  2.  

當你發現你可以對這些文件寫入的時候,你會覺得更加有意思。繼續舉例來說:

  1. # echo 1 > /proc/sys/net/ipv4/ip_forward 

將在運行的kernel中打開IP 轉發(IP forwarding)

除了使用cat和echo來檢查和更正/proc/sys下的設置以外,你也可以使用sysctl命令:

  1. # sysctl net.ipv4.ip_forward    
  2.  
  3. net.ipv4.ip_forward = 0 

這等同于:

  1. # cat /proc/sys/net/ipv4/ip_forward   
  2.  

也等同于:

  1. # sysctl -w net.ipv4.ip_forward=1 
  2.  
  3. net.ipv4.ip_forward = 1 

還等同于:

  1. # echo 1 > /proc/sys/net/ipv4/ip_forward 

    

需要注意的是,以這種方式你所做的設置改變只能影響當前運行的kernel的,當reboot的時候就不再有效。如果想讓設置永久有效,將它們放置在/etc/sysctl.conf文件中。在boot time時,sysctl將自動重新確定它在此文件下找到的任何設置。

/etc/sysctl.conf下的代碼行大概是這樣的:net.ipv4.ip_forward=1

性能調優(performance tuning)

有這樣一個說法:/proc/sys下可寫入的參數孕育了整個Linux性能調優的亞文化。我個人覺得這種說法有點過夸,但這里會有幾個你確實很想一試的例子:Oracle 10g的安裝說明(www.oracle.com/technology/obe/obe10gdb/install/linuxpreinst/linuxpreinst.htm)要求你設置一組參數,包括:kernel.shmmax=2147483648 這將公用存儲器的大小設置為2GB。(公用存儲器是處理期內的通信機制,允許存儲單元在多個進程的地址空間內同時可用)

IBM 'Redpaper'在Linux性能和調優方面的說明(www.redbooks.ibm.com/abstracts/redp4285.html)在調教/proc/sys下的參數方面給出了不少建議,包括:vm.swappiness=100 這個參數控制著存儲頁如何被交換到磁盤。

一些參數可以被設置從而提高安全性,如net.ipv4.icmp_echo_ignore_broadcasts=1 它"告訴"kernel不必響應ICMP請求,從而使得你的網絡免受類如Smurf攻擊之類的拒絕服務器(denial-of-service)型攻擊。

net.ipv4.conf.all.rp_filter=1 則是"告訴"kernel加強入站過濾(ingress filtering)和出站過濾(egress filtering)

那么有沒有一個說明能涵蓋這所有的參數?好吧,這有一行命令:# sysctl -a 它將展示所有的參數名字和當前值。列表很長,但是你無法知道這些參數是做什么的。另外比較有用的參考是Red Hat Enterprise Linux Reference Guide,對此有整章節的描述,你可以從www.redhat.com/docs/manuals/enterprise上下載。

總結:

希望本文介紹的linux kernel的知識能夠對讀者有所幫助,更多有關linux系統的知識還有待于讀者去探索和學習。

責任編輯:韓亞珊 來源: 博客轉載
相關推薦

2020-08-11 11:20:49

Linux命令使用技巧

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2017-12-15 13:44:22

2009-12-10 09:37:43

2022-10-13 11:48:37

Web共享機制操作系統

2021-02-01 23:23:39

FiddlerCharlesWeb

2010-08-23 09:56:09

Java性能監控

2024-01-26 06:26:42

Linuxfzf工具

2022-11-04 08:19:18

gRPC框架項目

2020-09-15 08:35:57

TypeScript JavaScript類型

2021-10-17 13:10:56

函數TypeScript泛型

2015-06-19 13:54:49

2021-12-29 11:38:59

JS前端沙箱

2021-12-22 09:08:39

JSON.stringJavaScript字符串

2012-11-23 10:57:44

Shell

2010-07-21 12:37:11

Linux用戶

2010-07-26 13:24:11

2010-08-10 09:13:49

Linux用戶

2016-09-05 13:14:11

點贊
收藏

51CTO技術棧公眾號

亚洲自拍中文字幕| 色小说视频一区| 国产精品视频一区二区三区四区五区 | 无码日韩精品一区二区免费| 在线视频亚洲一区| 国产911在线观看| 色鬼7777久久| 热久久久久久久| 九九热精品在线| 亚洲色成人网站www永久四虎| 亚洲久草在线| 丁香五六月婷婷久久激情| 亚洲色图自拍| 色一情一乱一区二区三区| 青青青伊人色综合久久| 久久久久中文字幕2018| 国产又粗又黄又猛| 果冻天美麻豆一区二区国产| 欧美日韩一区久久| 波多野洁衣一区| 久久成人精品视频| 大又大又粗又硬又爽少妇毛片| 国产美女视频一区二区| 日韩欧美国产成人| 欧美黑人在线观看| 日本高清中文字幕在线| 91偷拍与自偷拍精品| 亚洲在线免费观看| 国产精品51麻豆cm传媒| 国产亚洲毛片在线| 久久久久久成人精品| 91n在线视频| 欧美日韩中字| 亚洲精品有码在线| 97人妻精品一区二区三区免费| 不卡的国产精品| 91成人网在线| 激情五月开心婷婷| 白浆在线视频| 亚洲午夜精品17c| 2021国产视频| 怡红院在线播放| 中文字幕在线观看不卡| 视频一区三区| 成人免费高清在线播放| 久久视频一区二区| 精品在线视频一区二区| 国产一区私人高清影院| 亚洲人成人无码网www国产| 亚洲一区二区三区在线免费| 91麻豆精品国产91| 青青草原国产在线视频| 国产麻豆一区| 欧美午夜一区二区| 一级在线免费视频| 国产精品久久久久久妇女| 色94色欧美sute亚洲线路二| 免费男同深夜夜行网站| 亚洲伦乱视频| 欧美日韩亚洲综合一区二区三区| 九热视频在线观看| 国产极品久久久久久久久波多结野 | 精油按摩中文字幕久久| 92看片淫黄大片看国产片| av中文字幕播放| 成人自拍视频在线| 精品国产乱码久久久久久丨区2区| 乱精品一区字幕二区| av中文字幕不卡| 麻豆亚洲一区| avtt亚洲| 亚洲美女视频在线| 日韩成人三级视频| 男人久久天堂| 欧美伊人久久大香线蕉综合69| 欧美日韩一区二区三区69堂| 日韩精品第二页| 日韩一区二区免费在线电影| 欧美日韩人妻精品一区在线| 网红女主播少妇精品视频| 亚洲欧美中文日韩在线v日本| 中文天堂资源在线| 四虎成人av| 欧美激情乱人伦一区| 中文字幕日韩一级| 免费高清在线视频一区·| 成人激情电影一区二区| 成人免费视频国产| 久久日韩精品一区二区五区| 亚洲欧洲精品一区二区三区波多野1战4| 麻豆传媒在线观看| 亚洲国产成人va在线观看天堂| 亚洲熟妇国产熟妇肥婆| 欧美日韩女优| 日韩一区二区三区观看| 亚欧洲乱码视频| 国产精品精品| 97在线视频一区| 91精品国产综合久| 播五月开心婷婷综合| 水蜜桃一区二区| 欧美78videosex性欧美| 在线中文字幕不卡| 亚洲免费观看在线| 精品国产乱码久久久久久蜜坠欲下 | 国产日本精品| 2014国产精品| 成人免费一区二区三区视频网站| 亚洲最新视频在线播放| 天天操,天天操| 日韩系列在线| 欧美成人精品一区二区三区| 国产精品久久久久久久久久精爆| 国产精品一卡二| 亚洲精品中文综合第一页| 无码小电影在线观看网站免费| 3atv一区二区三区| a天堂中文字幕| 日韩午夜在线电影| 99爱精品视频| 在线免费观看的av网站| 欧美性黄网官网| 91精品又粗又猛又爽| 欧美1级片网站| 国产精品精品国产| 性xxxx视频| 亚洲色图视频网| 色播五月综合网| 精品欧美激情在线观看| 91精品国产高清自在线看超| 国产ts变态重口人妖hd| 中文字幕在线免费不卡| www.欧美日本| 国内精品久久久久久久影视简单| 91国自产精品中文字幕亚洲| 人妻一区二区三区四区| 一区二区三区日韩| 五月天六月丁香| 91精品国产乱码久久久久久久 | 国产精品va无码一区二区| 日韩视频一二区| 久久综合亚洲社区| 国产极品999| 亚洲欧美日韩在线不卡| 午夜免费福利网站| 91精品一区二区三区综合在线爱 | 综合久久给合久久狠狠狠97色| 丰满少妇在线观看| 欧美色图国产精品| 国产精品精品国产| 中文字幕日本在线观看| 精品1区2区3区| 九九热久久免费视频| 久久精品99国产精品| 亚洲一区二区三区在线观看视频| 国产精品videossex撒尿| 中文字幕在线精品| 国产精品女人久久久| 亚洲欧美激情插 | 成人自拍在线| 992tv在线成人免费观看| 亚洲欧美综合在线观看| 一本一道久久a久久精品| 国产成人无码精品久久二区三| 久久亚洲视频| 一区二区日本| 在线综合色站| 欧美一级在线播放| 成人三级黄色免费网站| 欧美精品久久一区二区三区| 午夜爽爽爽男女免费观看| 国内成人自拍视频| 日韩精品视频在线观看视频| 日韩高清在线免费观看| 日韩av免费在线播放| 99riav在线| 日韩手机在线导航| 欧美成人精品欧美一级乱黄| 久久久五月婷婷| 亚洲一区在线不卡| 欧美片第1页综合| 久久精品美女| 祥仔av免费一区二区三区四区| 欧美超级免费视 在线| 少妇喷水在线观看| 日本韩国欧美一区| 少妇aaaaa| 2023国产精品| 欧美又黄又嫩大片a级| 亚洲久久一区二区| 亚洲欧美一区二区原创| 成人精品毛片| 国产欧美va欧美va香蕉在| 国产理论电影在线| 一区二区三区在线播放欧美| www.亚洲欧美| 欧美在线|欧美| 国产在线拍揄自揄拍| 中文字幕国产一区| 国产精品19p| 日韩电影在线观看电影| 男人天堂a在线| 91视频久久| 欧美一区二区福利| 爱爱精品视频| 92看片淫黄大片看国产片| 欧美性xxx| 久久全球大尺度高清视频| 日本最黄一级片免费在线| 国产丝袜精品第一页| 精品人妻午夜一区二区三区四区| 欧美在线一区二区三区| 日本亚洲色大成网站www久久| 国产精品女同互慰在线看| 亚洲精品国产成人av在线| 韩国成人福利片在线播放| 日本三区在线观看| 在线不卡亚洲| 国产成人一区二区三区别| 欧美好骚综合网| 奇米影视首页 狠狠色丁香婷婷久久综合 | 欧美va亚洲va日韩∨a综合色| 日韩wuma| 中日韩免视频上线全都免费| 国产99在线免费| 精品91福利视频| 国产日韩在线亚洲字幕中文| 亚洲一区二区三区四区| 2019av中文字幕| 国产嫩草在线视频| 色综合视频网站| av免费在线免费观看| 日韩在线视频播放| www.在线视频.com| 国产午夜精品全部视频播放 | 国产午夜精品在线观看| 亚洲午夜久久久久久久久红桃| 成人免费视频app| 中文字幕人妻一区| 大尺度一区二区| 精品人妻人人做人人爽夜夜爽| 国产一区二区伦理| 五月天丁香花婷婷| 激情av综合网| 91在线第一页| 国产精品自拍毛片| 三区视频在线观看| 国内精品写真在线观看| 日本特黄在线观看| 国产精品资源网| 国产精品一区二区无码对白| 成人精品一区二区三区四区 | 豆花视频一区二区| 国产高清精品一区二区| 风间由美中文字幕在线看视频国产欧美| 91免费观看| 国产精品18hdxxxⅹ在线| 国产欧美亚洲日本| 一本久道综合色婷婷五月| 日韩有码一区| 奇米精品在线| 久久中文亚洲字幕| 91免费版看片| 亚洲性视频h| aa在线免费观看| 日韩和欧美的一区| 日本77777| 成人黄色一级视频| 熟女俱乐部一区二区视频在线| 久久久久久久久久久久久夜| 美女网站视频色| 亚洲一区二区在线观看视频| 国产微拍精品一区| 欧美日韩视频专区在线播放| 99久久久久成人国产免费| 精品日本一线二线三线不卡| 日本大片在线观看| 在线日韩日本国产亚洲| 精品孕妇一区二区三区| 欧美大片在线免费观看| 美女100%一区| 91久久大香伊蕉在人线| 免费看久久久| 一区二区免费在线视频| 亚洲高清网站| 在线免费观看av的网站| 成人免费的视频| 在线观看天堂av| 亚洲网友自拍偷拍| 无码人妻黑人中文字幕| 欧美一二三区精品| 免费理论片在线观看播放老| 久色乳综合思思在线视频| 性欧美freesex顶级少妇| 91香蕉亚洲精品| 国产伦精品一区二区三区千人斩| 香蕉视频免费版| 久久久一二三| www.黄色网| 国产精品国产三级国产a| 在线看成人av| 91精品国产一区二区三区| 欧美女子与性| 久久久久免费精品国产| yy6080久久伦理一区二区| 岛国一区二区三区高清视频| 成人动漫免费在线观看| 亚洲人成网站影音先锋播放| 中文字幕人妻熟女在线| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲理论电影在线观看| 日本不卡视频一二三区| 日本护士做爰视频| 亚洲丝袜自拍清纯另类| 欧美亚洲另类小说| 亚洲国语精品自产拍在线观看| 九色porny丨首页在线| 国产成人a亚洲精品| 6080亚洲理论片在线观看| 亚洲日本精品| 久久久久久9| 日本50路肥熟bbw| 亚洲精品中文字幕在线观看| 一区二区自拍偷拍| 亚洲欧美999| 黄色激情在线播放| 国产精品免费区二区三区观看| 999久久久免费精品国产| 国产精品涩涩涩视频网站| 久久这里都是精品| 国产高潮久久久| 亚洲成人av在线播放| 大香伊人久久| 99在线首页视频| 一区二区影视| 激情在线观看视频| 亚洲人成在线播放网站岛国| 国产精品久久久久久久一区二区 | 成年人在线视频| 国产成人97精品免费看片| 亚洲aa在线| 女人扒开屁股爽桶30分钟| 91首页免费视频| 欧美三日本三级少妇99| 亚洲黄在线观看| 午夜影院在线播放| 欧美 日韩 国产在线| 男人天堂欧美日韩| a级片在线观看| 欧美三级电影网站| 91在线无精精品一区二区| 日本午夜精品久久久久| 伊人情人网综合| 国产精品白丝jk白祙喷水网站| avhd101老司机| 911精品国产一区二区在线| 国内外激情在线| 999热视频在线观看| 亚洲天堂激情| 深爱五月激情网| 欧美视频在线一区| 精品视频在线一区二区| 99re在线观看视频| 在线日韩中文| 91成人破解版| 欧美欧美午夜aⅴ在线观看| 久久bbxx| 国语精品中文字幕| 日韩精品一级中文字幕精品视频免费观看 | 亚洲影视在线观看| 亚洲 美腿 欧美 偷拍| 国产99视频在线观看| 99精品美女| 亚洲av人人澡人人爽人人夜夜| 色综合久久综合中文综合网| 69久久精品| 国产精品久久国产精品| 久久精品91| 成人性生活毛片| 亚洲精品久久久久久久久久久久| 亚洲wwww| 免费的一级黄色片| 久久久午夜精品| h狠狠躁死你h高h| 日韩av男人的天堂| 欧美1区免费| 久久美女免费视频| 欧美一区二区三区系列电影| 色偷偷色偷偷色偷偷在线视频| 亚洲国产精品一区二区第四页av| 国产老女人精品毛片久久| 四虎精品永久在线| 久久久国产精彩视频美女艺术照福利 | 特级毛片在线| 日本一区二区三区视频在线播放 | 欧美日韩视频在线观看一区二区三区| 在线视频国产区| 日韩亚洲一区在线播放| 成人免费福利片| 国产毛片毛片毛片毛片|