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

深度介紹Linux內核是如何工作的

運維 系統運維
比如lsmod的輸出在我們的電腦上顯示了一個名叫isofs的卸載模塊,它的使用次數是零而且沒有依賴模塊,(isofs是一個模塊,它支持CD上使用的ISO系統文件格式)這種情況下,kernel會允許我們卸載模塊:# modprobe -r is

本文發表于Linux Format magazine雜志,作者從技術深度上解釋了Linux Kernel是如何工作的。相信對Linux開發者來說有不小的幫助。

牛津字典中對"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)。

 

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

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

#include <fcntl.h>
int main()
{
    int fd, count; char buf[1000];
    fd=open("mydata", O_RDONLY);
    count = read(fd, buf, 1000);
    write(1, buf, count);
    close(fd);
}

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

 

#p#

 

臺前幕后

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

#include <stdlib.h>
main()
{
  if (fork()) {
    write(1, "Parent\n", 7);
    wait(0);
    exit(0);
  }
  else {
    write(1, "Child\n", 6);
    exit(0);
  }
}
   
在這個程序中創建了一個新進程,而原來的進程(父進程)和新進程(子進程)都編寫了標準輸出然后結束。注意系統調用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。這里有一個輸出的例子:

# lsmod
pcspkr              4224  0
hci_usb            18204  2
psmouse            38920  0
bluetooth          55908  7 rfcomm,l2cap,hci_usb
yenta_socket       27532  5
rsrc_nonstatic     14080  1 yenta_socket
isofs              36284  0

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

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

# modprobe -r isofs

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

# modprobe -r isofs
FATAL: Module isofs is in use.
   
Lsmod只是列出了當前被載入的模塊,modprobe則將列出所有可用的模塊,它實際上輸出了/lib/modules/KERNELVERSION目錄下所有的模塊,名單會很長!

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

# modprobe usbcore blinkenlights=1

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

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

# modinfo snd-hda-intel
filename:       /lib/modules/2.6.20-16-generic/kernel/sound/pci/hda/snd-hda-intel.ko
description:    Intel HDA driver
license:        GPL
srcversion:     A3552B2DF3A932D88FFC00C
alias:          pci:v000010DEd0000055Dsv*sd*bc*sc*i*
alias:          pci:v000010DEd0000055Csv*sd*bc*sc*i*
depends:        snd-pcm,snd-page-alloc,snd-hda-codec,snd
vermagic:       2.6.20-16-generic SMP mod_unload 586
parm:           index:Index value for Intel HD audio interface. (int)
parm:           id:ID string for Intel HD audio interface. (charp)
parm:           model:Use the given board model. (charp)
parm:           position_fix:Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size). (int)
parm:           probe_mask:Bitmask to probe codecs (default = -1). (int)
parm:           single_cmd:Use single command to communicate with codecs (for debugging only). (bool)
parm:           enable_msi:Enable Message Signaled Interrupt (MSI) (int)
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選項賦給模塊,如果你是手動加載模塊,你需要輸入:

# 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中。

#p#

/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數據包,也就是說是否扮演網關的作用?,F在,kernel告訴我們這是關閉的:

# cat /proc/sys/net/ipv4/ip_forward
0

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

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

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

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

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

這等同于:
# cat /proc/sys/net/ipv4/ip_forward
0

也等同于:
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 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上下載。

【編輯推薦】

  1. 嵌入式系統Linux內核開發實戰指南
  2. 嵌入式設備上的 Linux 系統開發
  3. Linux模塊你能結課了嗎?
責任編輯:張燕妮 來源: Csdn
相關推薦

2022-08-03 11:00:20

Linux內核

2023-04-19 08:13:02

EpollLinux

2011-01-04 18:15:21

2013-10-31 14:09:14

Linux內核

2015-09-11 15:56:52

內核構建Linux

2017-03-03 09:40:52

Linux休眠喚醒

2021-08-23 06:59:38

Linux內核代碼

2024-07-19 08:00:00

深度學習知識蒸餾

2017-01-05 14:28:43

Linux內核代碼源碼

2009-12-17 14:34:24

Linux系統內核

2012-05-14 14:09:53

Linux內核調度系統

2021-05-10 17:20:55

AIOps開發人員人工智能

2011-08-08 13:45:58

jQuery

2025-05-28 02:10:00

Linux內核NUMA

2021-01-26 09:14:19

Linux內核模塊

2025-04-18 04:05:00

2024-09-06 17:55:27

Springboot開發

2012-07-23 10:36:46

工作流

2023-04-18 14:53:48

2010-08-02 16:56:03

ICMP協議
點贊
收藏

51CTO技術棧公眾號

日本少妇做爰全过程毛片| 污污网站在线观看视频| 深夜福利在线看| 亚洲少妇在线| 在线成人激情视频| 五月天丁香花婷婷| а√在线中文在线新版| 国产日产欧美一区| 91福利入口| 亚洲精品男人的天堂| 欧美电影《轻佻寡妇》| 精品国产1区二区| 婷婷丁香激情网| 亚洲丝袜精品| 国产精品网站在线观看| 国产精品免费视频一区二区| 最近中文字幕在线观看视频| 午夜精品国产| 在线视频欧美性高潮| 男人网站在线观看| 91精品一区| 色哟哟国产精品| 免费网站永久免费观看| 国产一区二区三区福利| 国产宾馆实践打屁股91| 国产精品成熟老女人| 国产一级片免费| 久久中文字幕二区| 亚洲色图国产精品| 在线xxxxx| 9999在线精品视频| 在线观看一区二区视频| 999久久欧美人妻一区二区| 黄色av网址在线免费观看| 国产成人精品影视| 成人国产在线视频| 中文区中文字幕免费看| 国产一区二区三区的电影| 美乳少妇欧美精品| 欧美一级特黄高清视频| 女优一区二区三区| 精品亚洲永久免费精品| 95视频在线观看| 99精品美女视频在线观看热舞| 色综合网色综合| 3d动漫一区二区三区| 伊人精品影院| 亚洲免费在线观看| 午夜精品一区二区三区四区| 日韩在线免费播放| 91农村精品一区二区在线| 激情小说综合区| 乱精品一区字幕二区| 国产激情精品久久久第一区二区| 国产精品一区二区3区| 蜜臀尤物一区二区三区直播| 亚洲综合日本| 欧美自拍视频在线观看| www.国产色| 老鸭窝毛片一区二区三区| 热久久免费视频精品| 日韩精品1区2区| 午夜亚洲一区| 国产精品国产三级国产aⅴ浪潮| 狠狠人妻久久久久久综合| 亚洲欧美日韩精品一区二区| 日本亚洲欧美成人| 中文字幕无码乱码人妻日韩精品| 免播放器亚洲一区| 91网站在线看| 欧美一级在线免费观看| 91色.com| 亚洲aⅴ天堂av在线电影软件| 成人在线免费视频| 亚洲欧洲日产国产综合网| 国产一二三四五| 丁香花在线观看完整版电影| 亚洲成人动漫一区| 男女av免费观看| 国产极品久久久久久久久波多结野| 欧美日韩精品一区二区天天拍小说| 亚洲涩涩在线观看| 成人激情自拍| 亚洲人成网站色ww在线| 国内毛片毛片毛片毛片毛片| 久久精品影视| 性欧美xxxx交| 中文字幕一区二区三区免费看 | 成人免费一级片| 美女看a上一区| 成人在线看片| 国产区视频在线| 亚洲欧美视频一区| 噜噜噜久久亚洲精品国产品麻豆| 亚洲www.| 日韩精品一区二区三区四区视频| 亚洲综合色一区| 亚洲最新av| 热门国产精品亚洲第一区在线| 伊人久久亚洲综合| 99精品视频在线观看免费| 亚洲精品一卡二卡三卡四卡| 日本在线观看大片免费视频| 日本韩国欧美在线| 性高潮久久久久久| 欧美精品羞羞答答| 91国内揄拍国内精品对白| 中文字幕第三页| 成人av电影在线网| 一区二区三区av在线| а√在线中文网新版地址在线| 欧美日韩精品三区| 欧美高清性xxxx| 欧美日本不卡高清| 国产精品亚洲网站| 国产资源在线观看| 婷婷夜色潮精品综合在线| 一级做a免费视频| 国产一区二区区别| 91精品国产九九九久久久亚洲| 91久久国语露脸精品国产高跟| 91麻豆国产福利在线观看| 欧美少妇在线观看| 日本肉肉一区| 亚洲欧美日韩直播| 中日韩精品视频在线观看| 国产一区不卡在线| 亚洲精品成人三区| 成人免费网站www网站高清| 欧美喷水一区二区| 欧美成人精品一区二区综合免费| 色综合蜜月久久综合网| 欧美一级电影久久| 手机看片1024国产| 亚洲高清视频在线| 制服丝袜av在线| 久久国产成人精品| 国产精品久久一| 国产视频三级在线观看播放| 欧美性猛xxx| 欧美日韩一区二区三区四区五区六区| 亚洲女同中文字幕| 91中文精品字幕在线视频| 伊人免费在线| 欧美日韩国产一级| 激情高潮到大叫狂喷水| 蜜桃免费网站一区二区三区| 日日夜夜精品网站| 日韩欧美2区| 一区二区三区国产在线观看| 在线观看你懂的网站| 国产无人区一区二区三区| 国产黄色特级片| 久久99影视| 国产精品美女999| 午夜伦全在线观看| 正在播放一区二区| 久久久久亚洲av无码专区体验| 国产乱码精品一区二区三区忘忧草 | 国产精品444| av网站无病毒在线| 欧美日韩成人激情| 校园春色 亚洲| 成人自拍视频在线| 日日碰狠狠添天天爽超碰97| 日韩a级大片| 国产成人激情视频| 日本高清中文字幕在线| 制服丝袜亚洲色图| 久久精品国产亚洲av香蕉| 成人成人成人在线视频| 色综合av综合无码综合网站| 欧美一区二区三| 91青草视频久久| 美女精品导航| 亚洲精品一区二区网址| 亚洲字幕av一区二区三区四区| 中文字幕一区二区三区色视频| 国产精品999.| 一本色道精品久久一区二区三区| 欧美日韩综合网| 亚洲欧美一级| 97精品伊人久久久大香线蕉| 国产精品久久一区二区三区不卡| 欧美丰满高潮xxxx喷水动漫| 国产一级二级毛片| 国产欧美精品一区aⅴ影院| 91 视频免费观看| 国产亚洲精品bv在线观看| 视频一区视频二区视频三区视频四区国产| 日韩一级视频| 欧美影院久久久| 国产精品一卡二卡三卡| 日韩精品免费看| 国产一区二区视频免费观看| 亚洲第一福利视频在线| 青青草华人在线视频| 国产.欧美.日韩| 天天干天天综合| 亚洲高清av| 中文字幕中文字幕一区三区| 六月丁香久久丫| 成人网在线免费看| 六月婷婷综合| 久久久久国产精品免费| 1pondo在线播放免费| 亚洲国产91色在线| 国产又粗又长又大视频| 色综合久久综合| 九九九久久久久| 中文字幕精品综合| 中文字幕在线观看网址| 国产麻豆精品theporn| 午夜激情福利在线| 国产亚洲激情| 成人网站免费观看入口| 亚洲高清影视| 亚洲最大色综合成人av| 国产日产一区| 久久99国产精品| 北条麻妃一区二区三区在线| 91久久精品在线| 91超碰碰碰碰久久久久久综合| 欧美黑人狂野猛交老妇| 午夜免费福利在线观看| 一区二区三区视频观看| 亚洲欧洲综合在线| 亚洲国产成人在线播放| www.久久色| 91麻豆精品国产91久久久更新时间| 中文字幕高清在线免费播放| 午夜电影久久久| 国产精品成人久久| 一区二区三区在线观看国产 | 男人天堂av网| 日韩欧美亚洲国产另类| 国产精品无码久久av| 欧美日韩国产免费| 亚洲一区中文字幕永久在线| 欧美午夜激情小视频| 成人精品在线看| 黄色成人av在线| 男人天堂中文字幕| 偷拍一区二区三区| 欧美啪啪小视频| 欧美日韩免费在线观看| 国产三级av片| 色综合久久精品| 一级一片免费看| 欧美最猛性xxxxx直播| 91在线视频免费播放| 色婷婷亚洲一区二区三区| 久久国产黄色片| 日本高清不卡在线观看| 亚洲综合成人av| 欧美日韩美少妇| 91麻豆成人精品国产免费网站| 欧美日韩日日骚| 国产丝袜在线视频| 日韩精品专区在线影院观看| 高h震动喷水双性1v1| 精品精品欲导航| 五月婷婷丁香网| 国产一区二区三区直播精品电影| 成人福利在线| 久久视频在线播放| 成人三级小说| 欧美中文字幕第一页| 日本精品裸体写真集在线观看| 国产精品视频yy9099| 国产免费区一区二区三视频免费| 俄罗斯精品一区二区三区| 西野翔中文久久精品字幕| 色综合影院在线观看| 91精品国产自产拍在线观看蜜| 欧美在线观看黄| 亚洲一区久久| 精品999在线| 国产精品99久久久久久久vr| 波多野结衣有码| 国产精品欧美一级免费| 玖玖爱免费视频| 一本一本大道香蕉久在线精品| 一本色道久久综合熟妇| eeuss影院一区二区三区| 无码人妻aⅴ一区二区三区玉蒲团| 波多野结衣中文一区| 日本二区在线观看| 伊人性伊人情综合网| 韩国av中文字幕| 欧美精品色综合| 亚洲 国产 欧美 日韩| 中文字幕欧美日韩| 成人ssswww在线播放| 国产精品香蕉国产| 精品国产午夜肉伦伦影院| 日韩国产伦理| 亚洲国产高清一区| 欧美成人黄色网址| 成人av网站在线| 少妇aaaaa| 色婷婷亚洲精品| 国产91免费看| 久久精品亚洲精品| 欧美韩国亚洲| 国产区一区二区三区| 国产精品不卡| 男人的天堂日韩| 99麻豆久久久国产精品免费优播| 日本爱爱小视频| 日本韩国欧美在线| 香蕉国产在线视频| 久久91精品国产91久久久| 99riav视频一区二区| 精品一区二区国产| 国产精品v亚洲精品v日韩精品| 超碰在线公开97| 久久九九久久九九| 日韩成人在线免费视频| 91精品婷婷国产综合久久性色| 伦理片一区二区三区| 午夜精品久久久久久久久久久久| 99综合久久| 亚洲一卡二卡三卡| 日本免费在线视频不卡一不卡二 | 一级片免费观看视频| 亚洲精品中文字| 国产福利片在线观看| 99视频国产精品免费观看| 我不卡影院28| 成人综合久久网| 国产精品麻豆视频| 中国老头性行为xxxx| 亚洲色图偷窥自拍| 中文字幕一区久| 欧美二区三区| 美女日韩在线中文字幕| 日本少妇毛茸茸| 精品国产老师黑色丝袜高跟鞋| 高h震动喷水双性1v1| 久久免费成人精品视频| 18国产精品| 91午夜在线观看| 成人美女视频在线看| 国产性生活网站| 亚洲电影第1页| 三级在线看中文字幕完整版| 极品尤物一区二区三区| 亚洲青涩在线| 国产成人无码一区二区在线观看| 精品久久久久久电影| 亚洲av成人精品日韩在线播放| 4k岛国日韩精品**专区| 中日韩免视频上线全都免费| 黄色一级片播放| 国产亚洲美州欧州综合国| 波多野结衣视频在线观看| 在线播放国产一区二区三区| 成人自拍视频网| 中文字幕中文字幕99| 国产成人精品免费看| 日本少妇性生活| 亚洲美女久久久| 国产亚洲精品精品国产亚洲综合| 中文字幕av日韩精品| 国产精品性做久久久久久| 国产系列精品av| 亚洲人免费视频| 亚洲狼人在线| 2018中文字幕第一页| 久久亚洲一级片| 中文字幕一区二区人妻| 色综合天天狠天天透天天伊人| 久久夜色电影| 超碰在线播放91| 一区二区在线免费| 欧美日韩在线精品一区二区三区激情综| 国产成人福利视频| 在线一区免费| 一级国产黄色片| 欧美精品久久99久久在免费线| 牛牛精品在线| 日韩精品国内| 国产高清不卡二三区| 天堂在线免费观看视频| 久久久999精品视频| 美女一区2区| 欧美激情第3页| 欧美日韩在线免费| 成人在线播放免费观看| 久久精品一区二区三区不卡免费视频| 日本亚洲天堂网| 国产精品99精品无码视| 在线日韩av观看| 老牛国内精品亚洲成av人片| 99re精彩视频| 欧美日韩美女在线观看| av网站免费在线观看| 久久久亚洲综合网站| 国产乱人伦偷精品视频免下载|