久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeBSD学习总结

發布時間:2025/4/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeBSD学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FreeBSD完全入門手冊

http://www.jb51.net/os/Unix/1525.html


雖然非常基礎,但是對于初學者非常有用的,相信不管是初學者還是非初學者,都是有用的。 引用:送


給FreeBSD和UNIX的初學者 Annelise Anderson August 15, 1997 引用: 1.登錄和退出引用: ? ? ??


登錄時(當看到login:時)你必?
雖然非常基礎,但是對于初學者非常有用的,相信不管是初學者還是非初學者,都是有用的。
引用:送給FreeBSD和UNIX的初學者?
Annelise?
Anderson?
August 15, 1997
引用:?
1.登錄和退出引用:?
? ? ? 登錄時(當看到login:時)你必須是在系統安裝時創建的用戶或root超級用戶.(在FreeBSD系統安裝


時就已經創建了root用戶了 ,root用戶遍歷到系統的任何一個目錄并且可以做任何事情,包括刪除系統文


件,所以一定要千萬小心!)符號%和符號# 代表提示符(你的可能不一樣),%表示普通用戶,#表示超級用戶


root要退出系統(并且回到login:提示符),打命令:?
? ? ? # exit?
? ? ? 對,打完命令后按回車,記住UNIX對命令是區分大小寫的--也就是說,是exit,而不是EXIT.?
? ? ? 要關閉機器,打命令:?
? ? ? # /sbin/shutdown -h now?
? ? ? 要重啟機器,打命令:?
? ? ? # /sbin/shutdown -r now?
? ? ? 或者?
? ? ? # /sbin/reboot?
? ? ? 你也可以按Ctrl-Alt-Delete來重啟機器.?
? ? ? 花少許時間練習一下.在最近發行的FreeBSD版本中這和/sbin/reboot是相等的,而且這比按reset


按鈕要好多了.你也不想重裝東西,難道不是嗎?
2.用Root權限添加用戶引用:?
? ? ? 當你第一次運行adduser時,它也許會創建一些缺省設置.在它建議你把sh作為缺省shell的時候,你


可能想把csh作為缺省shell 而不是sh.否則直接按回車接受默認值.這些默認設置保存


在/etc/adduser.conf中,一個可編輯文件.?
? ? ? # adduser?
? ? ? 假如你創建了一個新用戶jack全名為Jack Benimble.出于安全因素,給jack一個口令(即使周圍的


孩子也可能敲擊鍵盤).當它問你是否想jack成為某個組的成員時,回答wheel?
? ? ? Login group is ``jack''. Invite jack into other groups: wheel?
? ? ? 這樣就可以用戶jack登錄系統,再用su命令成為root超級用戶.然后你就再也不會因為以root超級


用戶登錄而受到責備了.
? ? ? 你可以在adduser中,通過按Ctrl-C退出隨時退出.在創建結束時你可以批準該用戶的生成或打n來


取消創建該用戶.你也許想創建第二個用戶(jill?)這樣當你編輯jack的登錄文件時,就有一個熱備份以免


出錯.一旦創建完用戶,exit用exit回到login:提示符以jack登錄.通常情況下,最好不要用root用戶而是


用普通用戶完成大部分的工作.如果你已經創建了一個用戶而且想使該用戶能夠用su命令成為root用戶,


你可以root登錄然后編輯文件/etc/group,把jack加入第一行(wheel組),但是你首先要練習使用vi,文本


編輯器--或簡單些的編輯器,安裝在最近發行的FreeBSD中的ee.
? ? ? 要刪除一個用戶使用rmuser命令.
3. 環顧四周引用:?
? ? ? 以普通用戶登錄,四處瀏覽一下再使用一些命令試著訪問幫助資源和FreeBSD的別的信息.以下是一


些命令和它們的功能:?
? ? ? id 告訴你你是誰!?
? ? ? pwd 顯示你在哪個目錄--當前工作目錄.?
? ? ? ls 顯示當前目錄的文件.?
? ? ? ls -F 顯示當前目錄的文件.執行文件的文件名后加*,目錄名后加/,符號鏈接后加@.?
? ? ? ls -l 以長格式顯示文件.?
? ? ? ls -a 列出隱藏點文件和其它文件.如果你是root用戶,無須加-a選項,點文件將自動顯示.?
? ? ? cd 改變目錄.?
? ? ? cd .. 回到上級目錄;注意cd后的空格.?
? ? ? cd /usr/local 到/usr/local目錄下.?
? ? ? cd ~ 到以登錄用戶的主目錄--例如/usr/home/jack.?
? ? ? 試試cd /cdrom,然后ls, 看看你的CDROM是否mounted并且正常工作.?
? ? ? view filename?
? ? ? 讓你看一個文件(文件名為filename 不改變文件名).試試?
? ? ? view /etc/fstab.?
? ? ? :q :q退出.?
? ? ? cat filename?
? ? ? 在屏幕上顯示filename.如果文件太長你只能看到文件的最末部分,按ScrollLock 然后用上下鍵往


回移; ? ? ? ? ? ??
? ? ? ScrollLock鍵在看手冊的時候也用的上.再按一下ScrollLock將退出屏幕滾動.你可以試一下cat你


主目錄的點文件cat .cshrc , cat .login , cat .profile.?
? ? ? 你也許注意到了.cshrc文件中有關ls命令的別名(它們用起來很方便).你可以編輯.cshrc文件來創


建一些別的別名.為了使系統的所有用戶都能使用這些別名,把它們放到csh的系統配置文


件/etc/csh.cshrc中.
4. 獲得幫助信息引用:?
? ? ? 這里有一些關于幫助的有用的資源.text表示你從鍵盤打入的東西--通常是一條命令或文件名.?
? ? ? apropos text 在whatis數據庫中所有包含text的有關信息.?
? ? ? man text?
? ? ? text的手冊.是Un*x系統文檔的主要來源.man ls會告訴你使用ls命令的所有方法.按回車鍵在文本


中移動,Ctrl-b往前翻一頁,Ctrl-f往后翻一頁,q或Ctrl-c退出.?
? ? ? which text 告訴你text命令所在的路徑.?
? ? ? locate text 所有找到text字符串的路徑.?
? ? ? whatis text?
? ? ? 告訴你text命令主要用來干什么和它的手冊頁.打入whatis *將告訴你當前目錄中的所有命令的有


關信息.?
? ? ? whereis text 尋找text文件,并給出它的完全路徑.?
? ? ? 你可能想對一些常用命令如cat, more,grep,mv,find,tar,chmod,chown,date,和script使用


whatis命令.more命令可以讓你以DOS的方式一次只閱讀一頁內容. 例如: ls -l | more 或 more?


filename.符號*代表通配符--例如:ls w*將顯示所有以w開頭的文件名.
? ? ? 這些命令是不是并不太有效?locate和whatis命令都取決于每星期重建一次的數據庫.如果你不準


備讓你的機器在周末也運行的話(運行FreeBSD),你也許希望不時地每天、每星期、每月運行這些命令?


現在,以root身份運行這些命令然后在運行下條命令之前指定一個結束時間.?
? ? ? # /etc/daily 輸出省略?
? ? ? # /etc/weekly 輸出省略?
? ? ? # /etc/monthly 輸出省略?
? ? ? 如果你等的不耐煩了,按Alt-F2到另一個虛擬控制臺上并登錄進去.實際上FreeBSD是一個多用戶、


多任務系統.不過這些命令在運行時出現的信息大概會在你的屏幕上顯示一下;你可以打clear命令清除


屏幕.一旦它們開始運行了,你可以看看/var/mai l/root和/var/log/messages著兩個目錄.
? ? ? 你是你自己系統的管理員,作為一個系統管理員或Unix系統的單用戶,運行這些命令是最基本的.實


質上,所有你須要已root身份做的事情就是系統管理.這種職責在那些又大又厚的Unix書里并沒有得到很


好的概括,這些書籍似乎花了很大空間用來說明w indows管理器的下拉菜單.系統管理方面的書你應該看


看以下兩本,
? ? ? 紅封面的Evi Nemeth et.al.'s UNIX System Administration Handbook(Prentice-Hall, 1995,?


ISBN 0-13-15051-7)--the second edition,另外一本為aleen Frisch's Essential System?


Administration (O'Reilly & Associates, 1993,ISBN 0-937175-80-3).我使用的是Nemeth的書.
5. 文本編輯引用:?
? ? ? 配置系統的時候,一般都要編輯文本文件.大多數要編輯的都在/etc目錄下,你需要使用su成為root


才能更改這些文件.你可以使用方便的ee命令,但是長遠考慮,vi值得學


習./src/contrib/nvi/docs/tutorial目錄下有一個出色的教程,如果你安裝了的話;否則你可以從


ftp.cdrom.com的 FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial目錄下ftp過來.
? ? ? 在編輯文件之前,你應該先做個備份.假設你要編輯文件/etc/rc.conf.你只要用cd/etc到達/etc目


錄然后打命令:?
? ? ? # cp rc.conf rc.conf.orig?
? ? ? 這樣就把rc.conf拷貝為rc.conf.orig,稍后你可以把rc.conf.orig拷貝回rc.conf來覆蓋源文件.


但最好是先移動(重命名)然后拷貝回去:?
? ? ? # mv rc.conf rc.conf.orig?
? ? ? # cp rc.conf.orig rc.conf?
? ? ? 因為mv命令保留了文件的原先日期和擁有者.你現在可以編輯rc.conf了.如果你要源備份,你只要


mv rc.conf rc.conf.myedit?
? ? ? (假設你要保留你的編輯版本)然后用?
? ? ? # mv rc.conf.orig rc.conf?
? ? ? 來恢復成以前的樣子.?
? ? ? 要編輯文件,打命令?
? ? ? # vi filename?
? ? ? 用方向鍵在文本中來回移動.Esc(escape鍵)使vi進入命令模式.這兒有些命令:?
? ? ? x 刪除光標所在處的字符?
? ? ? dd 刪除整個一行(即使在屏幕上是折行)?
? ? ? i 在光標所在處插入文本?
? ? ? a 在光標所在處之后插入文本?
? ? ? 一旦你打了i或a,你就可以鍵入文本了.Esc使你進入命令模式,然后你可以打:?
? ? ? :w 存盤然后繼續編輯?
? ? ? :wq 存盤并退出?
? ? ? :q! 放棄存盤并退出?
? ? ? /text 移動光標到text處;/Enter (回車鍵)用來尋找下一個text?
? ? ? G 移動到文件最末?
? ? ? nG 到文件的第n行,n代表一個數字?
? ? ? Ctrl-L 刷新屏幕?
? ? ? Ctrl-b and Ctrl-f 朝前或朝后翻一屏,就象more和view一樣
? ? ? 在你的主目錄下用vi filename創建一個文件來練習一下如何添加、刪除文本,保存文件,然后繼續


編輯.vi會帶來一些驚奇,因為它的確相當復雜,有時候你會不經意的發出一條命令取得一些意想不到的效


果.(一些人竟然會喜歡vi--vi比DOS EDIT強多了--去查查:r命令.)當你遇到麻煩時,多按幾下Esc鍵


以確保你在命令模式然后從那里繼續下去,經常用:w存盤,還有在需要的時候用:q!退出重來一次.
? ? ? 現在你可以cd到/etc目錄下,su成為root,用vi編輯文件/etc/group,加一個用戶到wheel組這樣這


個用戶就有享有root特權了. 在文件的第一行的末尾加一個逗號和用戶名,按Esc,然后用:wq存盤退出.立


即生效.(你沒有在逗號之后加空格,對嗎?)
6. 在DOS下打印文件引用:?
? ? ? 在這一點上,你也許沒有打印機,有個辦法可以先從手冊頁建一個文件然后再把這個文件移到軟盤,


然后在DOS下打印.假設你想仔細閱讀一下有關文件權限的文檔(非常重要).你可以打命令man chmod.命令


:?
? ? ? # man chmod | col -b > chmod.txt?
? ? ? 會刪掉格式代碼然后把手冊頁發送到chmod.txt文件,而不是顯示在屏幕上.現在你可以插入一張


dos格式化好的軟盤,su成為ro ot,然后輸入命令:?
? ? ? # /sbin/mount -t msdos /dev/fd0 /mnt?
? ? ? 這樣就把軟盤mount到了/etc目錄下了.?
? ? ? 現在(你沒必要再用root了,輸入exit回到剛才的用戶jack)可以到剛才創建chmod.txt的那個目錄


然后把文件拷貝到軟盤:?
? ? ? % cp chmod.txt /mnt?
? ? ? 再用ls /mnt查看一下/mnt目錄下的文件列表,應該能顯示chmod.txt. 也許你很想將/sbin/dmesg


輸出到一個文件,可以輸入命令:?
? ? ? % /sbin/dmesg > dmesg.txt?
? ? ? 然后拷貝dmesg.txt到軟盤./sbin/dmesg是系統的啟動日志,最好能了解它的內容,因為它能告訴你


系統在啟動的時候都找到了什么硬件.如果你想向freebsd-questions@freebsd.org或一個USENET組--


象FreeBSD找不到我的磁帶機,我該怎么辦?--回答問題的人總是想先知道dmesg的內容.?
? ? ? 現在你可以將軟驅從FreeBSD卸掉(用root)并取出軟盤:?
? ? ? # /sbin/umount /mnt?
? ? ? 然后重啟機器到DOS.把這些文件copy到一個DOS目錄,用諸如DOS EDIT,Windows Notepad或


Wordpad,或一個字處理器打開上述文件,做一些小小的改動,然后存盤,再象平常一樣在DOS或Windows下打


印出來.希望一切順利!用dos的print命令打印手冊文檔效果最好.(把文件從FreeBSD拷貝到mount好的


dos風區要冒一些風險.)
? ? ? 要從FreeBSD下打印首先要牽涉到在/etc/printcap目錄下創建合適的條目和在/var/spool/output


目錄下創建相應的脫機目錄 .如果你的打印機在lpt0上(即dos下的LPT1),你只須到/var/spool/output目


錄然后用mkdir lpd命令(用root)建一個lpd目錄(如果該目錄原先不存在的話).接著當系統啟動的時候如


果打印機電源接通的話,打印機會有反應,并且lp或lpr命令應該能夠向打印機發送一個文件.無論文件是


否打印取決于它的配置,在FreeBSD手冊里有詳細介紹.
7. 其他一些常用命令引用:?
? ? ? df 顯示磁盤空間和安裝了的文件系統.?
? ? ? ps aux 顯示正在運行的進程.ps ax是窄格式.?
? ? ? rm filename 刪除filename.?
? ? ? rm -R dir 刪除一個目錄,包括所有子目錄--小心!?
? ? ? ls -R?
? ? ? 顯示當前目錄和所有其子目錄的文件;我用的不大一樣,用ls -AFR > where.txt,可以在我找到更


好的查找文件的方法之前得到/目錄和(分別的)/usr目錄下所有文件的列表.?
? ? ? passwd 修改一個用戶(或root)的口令?
? ? ? man hierUnix 文件系統上的手冊?
? ? ? 在/usr或任何別的目錄下使用find命令來查找文件:?
? ? ? % find /usr -name filename?
? ? ? 你可以用在filename里使用*通配符(應該加在引號里). 如果你告訴find到/目錄而不是/usr目錄


下查找文件,它會到所有安裝好的文件系統包括CDROM和dos分區中去查找文件.
? ? ? 關于Unix命令和使用工具,一本比較好的書是Abrahams & Larson, Unix for the Impatient (2nd?


ed., Addison-Wesley, 1996).在Internet上也有很多Unix信息.看看Unix Reference Desk.
8. 下一步引用:?
? ? ? 現在你有了編輯工具并且知道如何遍歷系統,因此你可以運行任何你想要的東西.在FreeBSD的站點


上和FreeBSD手冊上(很可能在你的硬盤上)都可以找到大量的相關信息.同時在Walnut Creek CDROM和它


的站點上也可以找到大量的應用程序包.使用手冊已經告訴你如何添加這些程序包(添加程序包的時候該


包必須存在 ,然后用pkg_add/cdrom/packages/All/packagename,packagename表示包的文件名).在下列


目錄及文件中可以找到光盤上有關每個程序包簡要說明的一張列表:


cdrom/packages/index,cdrom/packages/index.txt,和cdrom/ports/index.更詳細的說明可以


在/cdrom/ports/*/*/pkg/DESCR文件里找到,前后兩個*分別代表程序所屬的類別和程序名.
? ? ? 如果你不能理解手冊上所說的關于如何從cdrom上安裝程序包的話,下列步驟通常可以行的通:
? ? ? 找一個你要的包,比如kermit.存放在光盤上的某個目錄.用下列命令把該子目錄拷貝到/usr/local


目錄下(供所有用戶使用的軟件最好都放在這):?
? ? ? # cp -R /cdrom/ports/comm/kermit /usr/local?
? ? ? 這樣/usr/local/kermit子目錄就包含了是光盤上kermit子目錄下的所有文件.下一步,如


果/usr/ports/distfiles不存在的話就用mkdir把這個目錄建起來.現在到/cdrom/ports/distfiles文件


里查找一下你所要的程序包的名字.然后包相關的安裝文件拷貝到/usr/ports/distfiles目錄下;在最近


的新版本中你可以跳過這一步,FreeBSD會自動完成這一步.對kermit來說,沒有d istfile.然后cd到包含


Makefile的/usr/local/kermit子目錄下,打命令:?
? ? ? # make all install?
? ? ? 在這一過程中,如果系統在/usr/ports/distfiles目錄中找不到相關的壓縮文件的話,它就會ftp去


下載該文件.如果你沒有聯網并且該文件不在上述目錄下的話,你得用另外一臺機器來獲得該文件,然后再


把它從軟盤或dos分區拷貝到/usr/ports/distf iles下.閱讀一下Makefile(用cat或more命令)看看應該


到哪里(master distribution site)下載、文件名是什么.下載到了dos下后文件名會縮短,你把它放


到/usr/ports/distfiles下后得把文件名改為原來的(用 mv命令),這樣在安裝的時候,系統就能找到這個


文件了.(用二進制模式下載!)然后回到/usr/local/kermit目錄,到有Makefil e的目錄,打make all?


install.
? ? ? 安裝程序包的時候可能碰到的另外一件事就是需要事先安裝一些別的應用程序.如果安裝過程停下


來說找不到unzip或別的什么的話,你就必須先安裝unzip的程序包然后才能繼續. 
? ? ? 一旦安裝完畢,打rehash命令讓FreeBSD重新讀一下該路徑下的文件,這樣它就知道目錄下都有些什


么.(如果當你用whereis或w hich命令時出現很多路徑找不到的信息的話,你得在你的主目錄下的.cshrc


文件中path描述后添加一部分.出于安全考慮,Unix中的path除了當前目錄不在path中(默認),別的和DOS


下的path都是一樣的,要運行不在path中的當前目錄的命令,要在命令前打./才能使命令執行,斜杠后不能


有空格.)?
< br> 也許你想從Netscape的ftp站點上得到最新版的Netscape.(Netscape必須運行在X Windows系統


上.)現在有FreeBSD版本了,仔細找找.只要運行 gunzip filename和tar xvf filename,把執行文件移


到/usr/local/bin或其它一些存放執行文件的地方,rehash,然后把下列行加到每個用戶主目錄下的.c?


shrc文件中或者(更簡單)干脆到系統啟動配置文件/etc/csh.cshrc中:?
? ? ? setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB?
? ? ? setenv XNLSPATH /usr/X11R6/lib/X11/nls?
? ? ? 前提是假設文件XkeysymDB和目錄nls在目錄/usr/X11R6/lib/X11下;如果不在的話,查找一下然后


放到上述目錄下.
? ? ? 如果你以前就已經用CDROM(或ftp)安裝了Netscape,不要把用新的Netscape執行文件覆


蓋/usr/local/bin/netscape,老的文件只是一個設置環境變量的shell腳本.相反,把新的執行文件更名為


netscape.bin,然后覆蓋老的執行文件/usr/local/lib/nets cape/netscape.bin.
9. 你的工作環境引用:?
? ? ? 你的shell是你的工作環境中最重要的部分.在DOS下,shell通常為command.com.對你所打入的命令


進行解釋的程序就是shell, 這樣來與操作系統通信.你也可以寫你自己的shell腳本,就象DOS批處理文件


:一組在運行時不需要你的干涉的命令.
? ? ? FreeBSD裝好后有2個shell:csh和sh.Csh比較適合命令行處理,而腳本應該用sh(或bash)來寫.可


以打命令echo $SHELL來查看你用的是什么shell.
? ? ? Csh shell是不錯的,但是tcsh能做的要比csh能做的要多.它允許你用方向鍵調用歷史命令而且還


能對歷史命令進行編輯.tcsh還允許你用tab鍵補齊文件名(csh用esc鍵),用 cd -命令可以切換到上一次


你所在的目錄.除此而外,用tcsh切換你的提示符也極其方便.Tcsh是你感到更輕松.
? ? ? 安裝一個新的shell分以下3步:
? ? ? I. 把shell作為一個程序包安裝,就象安裝別的程序包一樣.用rehash和which tcsh(假設你正在安


裝tcsh)來確保安裝正確.?
? ? ? II. 成為root,編輯/etc/shells,為新的shell添加一行,就本例而言,應該


為/usr/local/bin/tcsh, 存盤.(有的程序包也許會自動完成.)?
? ? ? III. 用chsh命令把你的shell永久的改為tcsh,或者在提示符下打tcsh更改你的shell,不用重新登


錄.?
注意:對于FreeBSD較早的版本和大部分的Unix,把root的shell改為除sh或csh之外別的什么shell可能回


帶來危險;因為當系統進入單用戶模式后,你的shell可能運行不起來.解決辦法是用su -m成為root,這樣


tcsh就成為你作為root時候的shell了,因為shell是環境的一部分.把下面的別名加到你的.tcshrc文件中


后上述情況就一直如此了:?
? ? ? alias su su -m.?
? ? ? 當tcsh啟動時,它會和csh一樣樣去讀取/etc/csh.cshrc和/etc/csh.login.還會讀取你主目錄中的


.login和.cshrc文件,除非你的目錄中有.tcshrc文件.你可以干脆把.cshrc拷貝到.tcshrc.
? ? ? 這樣你就把tcsh安裝好了,可以修改提示符了.你可以查看手冊中有關tcsh的細節.把下面這行放到


你的.tcshrc中后,你就可以知道你打了多少命令、現在幾點鐘和當前所在目錄.如果你是普通用戶,還有


一個>;如果你是root,就是#.Tcsh在任何情況下都能做到:?
? ? ? set prompt = %h %t %~ %#?
? ? ? 如果原來有這句話應該放在原來設置提示符的地方;如果找不到的話,就應該在if($?prompt)?


then后面.注釋掉原來的那一行;這樣你就總是可以在喜歡的時候切換到老的提示符.別忘記空格和引號.


打source .tcshrc來讓系統重新讀一下.tcshrc文件.你可以用env命令列出已經設置好的別的環境變量.


它會顯示你默認的編輯器、翻屏、終端類型和其它一些變量.如果你遠程登錄后不能運行程序,這是因為


終端沒配置好,可以運行命令setenv TERM vt100.
10. 其它引用:?
? ? ? 作為root,用 /sbin/umount /cdrom卸裝CDROM,從光驅中取出CDROM,放入另外一張,然后假設cd0a


是你光驅的設備名,用 /sbin/mount_cd9660 /dev/cd0a /cdrom安裝光驅點.在最近的版本中,要安裝光驅


點的話,只要打/sbin/mount /cdrom.
? ? ? 如果你的空間不夠,可以使用可啟動文件系統-第二張FreeBSD CDROM.可啟動文件系統CDROM上的內


容應版本的不同而有所變化.使用可啟動文件系統將牽涉到使用lndir,lndir隨X Window系統一起安


裝,lndir告訴程序到哪里找所需要的文件,因為這些文件在/cdrom目錄下而不是通常情況下的/usr目錄.


閱讀一下man lndir.
11. 歡迎提建議引用:?
? ? ? 如果你使用這篇教程的話,我想知道哪里說的不清楚、還有哪些你認為應該包括進去的卻被遺漏的


、還有本教程是否對你有幫助.感謝Eugene W. Stark,計算機科學系的教授,和John Fieber和他具有幫助


的注釋.
Annelise Anderson, andrsn@andrsn.stanford.edu?
freebsd-questions@freebsd.org?
-----------------------------?
(C)1999 by China FreeBSD User Group. All rights reserved.?
URL:www.cn.freebsd.org?
E-Mail:webmaster@cn.freebsd.org?
$Date: 1999/12/28 05:40:56 $?
========

FreeBSD核心入門

http://blog.chinaunix.net/uid-210143-id-2408936.html
?
翻譯 :Liangvy?
原著 :FreeBSD核心入門(日文版) 大木敦雄
1.1概述?
FreeBSD可以在PC/AT兼容機器上運行。CPU是i386,i486,Pentium,?
Pentium Pro以及其兼容芯片等。?
1.1.1(略)?
1,理論地址: 2個13 bit 長+32 bit 長?
2,線形地址:32 bit 長的空間?
3,物理地址:32 bit 長的空間?
1.1.2進程的虛擬空間?
1,text部分?
這部分是執行文件的的text領域,也就是機器語言部分,對于這個?
部分的空間在機器上的物理內存頁是共有的,還有,這部分最后的變量?
地址是etext。?
2,data和bss部分?
執行文件的data部分,也就是初始化的數據段和執行文件指定的內?
存變量。內存變量在開始的時候以0填充。這一段空間可以讀寫。它的?
邊界也是以edata和end的地址做結尾。進程的malloc()等內存分配的?
操作的時候,地址的增加方向向bss空間進行。?
3,stack部分?
也就是進程執行的時候的stack空間,這部分空間(從地址的最高位?
開始可以伸縮),其對于物理內存,伸縮程度由核心自動執行。?
1.2 kernel的configure?
freebsd的kernel構成文件在/usr/src/sys的目錄下面。下面的子目錄做一個?
介紹。?
compile 編譯核心的目錄。?
conf configure的目錄。?
ddb 核心調試的sounre code的目錄。?
dev 一部分的drivers的source code的目錄。?
gnu 浮點運算的仿真以及ex2fs文件系統的source code目錄。?
i386 依賴于pc/at機器的目錄,以下介紹它的字目錄。?
apm suspend一些節電程序。?
boot 不是kernel本身的東西,只是一些怎么從開機到讀入kernel?
的boot program的source code。?
conf config的一些依賴data。?
isa isa bus的驅動程序類的source code。?
eisa eisa bus的驅動程序類的source code。?
include 對pc/at的一些include files?
i386 對pc/at的一些核心code?
ibcs2,linux 使各類的os的執行文件在freebsd上執行的code?
isofs/cd9660?
cd-rom在unix文件系統上操作的的有關code?
kern 核心code?
libkern 核心庫的source code?
miscfs 實現unix文件系統的code?
msdosfs 在unix上操作ms-dos文件系統的有關code?
net 實現network功能的基本部分code?
netatalk?
實現appletalk network功能code?
netinet 實現internet network功能的code?
netipx 實現ipx功能的code?
netns 實現ns network的code?
netkey 實現網絡加密部分的功能的code?
nfs 實現nfs服務?
pc98 對于pc98的支持?
pccard 對pcmcia的支持?
pci 對pci bus的驅動程序的source code?
scsi 對cd-rom,hard disk,tape 等的scsi驅動程序的source code?
sys 獨立于機器體系結構的一部分code?
ufs unix file system 的支持code?
vm 虛擬內存管理的部分?
1.2.1配置的操作----config command?
在root權限下,config,make實行后,可以得到簡單的kernel。?
*configure file?
移動到/usr/src/sys/i386/config看看。?
GENERIC 從cd-rom等安裝freebsd的時候對應于defaule kernel?
的配置file?
LINT kernel組合功能的網羅的的配置file?
下面4個是對配置很有必要的的依賴data file?
Makefile.386 config生成的Makefile file的template.?
devices.i386 對于unix filesystem可能的block型的device?
名字和major號的對照表?
files.i386 記錄kernel功能組合的基礎上,依賴于pc/at?
機器的功能名稱和各種功能實現的source code?
file的名字表。?
options.i386 記錄配置項目的表。?
還有,majors.i386是記錄對應驅動器的I/O表和major號的一個文件。?
于核心配置沒關系。?
對于新的i/o設備,如果要做device driver,對pc/at,要在files.i386(沒?
有的話在/usr/src/sys/conf/files)追加相應的行,不然就不能把它加入?
到核心里面。?
追加的格式為?
相對path名 optional device-name device-driver
對于配置文件,首先,要設置cpu,bus,i/o設備,多少用戶等。例如對于GENERIC?
machine "i386"?
cpu "I386_CPU"?
cpu "I486_CPU"?
cpu "I586_CPU"?
cpu "I686_COU"?
ident GENERIC?
maxusers 10?
當作為server時候,應該把最大user設置大一點,以提高系統性能。?
下一步,指定options,對于GENERIC?
options MATH_EMULATE #support for x87 emulation?
options INET #interNETworing?
options FFS #Berkeley Fast Filesystem?
options NFS #Network Filesystem?
......?
options指定的名字xxx等,如果在/usr/src/sys/conf/options或者在?
/usr/src/sys/i386/conf/options.i386中記載的時候,應在對應的opt_XXX.h中寫入?
。沒有的話,作為cc命令行的參數定義"-D"在Makefile里面追加。對于XXX的格式應該?
是?
相對path名 optional xxx?
下一步,對于config?
config kernel root on wd0?
(略)?
配置文件剩下的部分應該是bus,i/o等一些硬件配置,一般有controller,device,?
disk,tape四類。例如?
controller isa0?
controller eisa0?
controller pci0?
等。?
第二層的device和controller,記錄了一些bus設備的連接。ISA的情況是?
device device_name at isa? 參數?
controller controller_name at isa? 參數?
EISA和PCI就相對簡單一點:?
device device_name?
controller controller_name?
device_name里指定的設備名是,串口,并口,網絡等裝置。?
第三層的disk和tape為?
disk disk_name at 控制設備名 drive 號?
tape tape_name at 控制設備名 drive 號?
SCSI接口卡作為第二層的控制裝置記錄的同時?
controller scbus0?
作為通用的scsi控制設備。因此,對于它的hard disk,tape,cd-rom,mo設備,有?
device sd0?
device st0?
device cd0?
device od0?
等,它可以自動識別和分配號碼。?
對于其他的scsi設備,有?
device pt0 at scbus??
這些東西(bus,scsi,i/o),在生成的ioconf.c以及相應的include中有反映。?
configure的最后,不是一些物理設備,而是kernel內部的一些軟設置?
pseudo-device 理論設備名?
首先,要考慮以下兩個設備:?
pseudo-device pty 16 #ttys - can go as high as 256?
pseudo-device log #syslog interface (/dev/klog)?
network使用的場合,應該有下面兩個?
pseudo-device loop?
pseudo-device ether?
這種情況下,最好有?
pseudo-device bpfilter 4 #berkeley packet filter?
pseudo-device tun 1 #Tunnel driver ( PPP)?
想做floppy的時候,要?
pseudo-device vn #Vnode driver ( turns a file into a device)?
(代續)
?
FreeBSD核心探討(翻譯)2
1.3 FreeBSD boot之前的工作?
1.3.1pc/at機器的boot順序?
hard disk的最前面的一個block(512byte),叫做master boot recorder(MBR).這?
里有啟動限定的program和分區的信息。分區信息是指對于一個區是16byte長,最多?
只能有4個區。16byte的內容是,分區哪里開始,哪里結束。哪種os,能否啟動等。對?
于freebsd,安裝的時候向MBR寫入了boot easy.?
磁盤的結構如下圖表示:?
block Number?
#0 #1 #2 ... #14 #15 #16 #17?
-------------------------------------------------------------?
disk no used?
label?
-------------------------------------------------------------?
<-boot->|<---------boot2-------------->| |<--unix file system--
FreeBSD用的block#0--#14的15個block里面,含有讀入freebsd的程序,bootease?
只在block#0里面,在15個block中并沒有。它的作用?
。讀入mbr,找freebsd的分區?
。讀入最初的15個block,到物理內存中0x0001000?
。跳轉到相當于block#2的內存位置?
然后,屏幕表示為:?
。。。?
。。。?
boot:?
(參數說明略)?
它的source是/usr/src/sys/i386/boot/biosboot,make之后,生成兩個文件:?
boot1,boot2分別寫入block#1,block#2--#14中。?
一般,一個物理的unix分區理論上可以有8個,比如swap,unix system等。?
boot2部分是boot program,它讀入kernel的文件名和option。然后?
。找boot label指定的分區。?
。構造unix filesystem,找指定的kernel?
。從開始執行文件,text,data的順序向物理內存讀入。對bss清零。?
。以option的選擇,向開始位置跳轉。?
1.3.2 kernel的初始化動作?
boot program執行之后,轉向kernel的text段開始進行初始化,即先執行?
locore.s的text段。因此是虛擬內存還沒有發生作用,locore.s的開始部分必?
須對offset進行補正。locore.s的作用是?
。保存從boot program過來的option?
。設定虛擬的stacker?
。檢測cpu的module?
。對自己的bss空間進行0初始化?
。為使虛擬內存工作,要保證最少的管理信息。然后是虛擬空間動作。?
也就是,調用cpu有強的依賴關系的過程init386()(@i386/i386/machdep.c),?
然后進行kernel內的管理信息初始化,i/o設備的登記,生成4個kernel process?
,再調用main()(@kern/init_main.c)。當main()返回locore.s時,應該有如下?
5個進程:?
PID TT STAT TIME COMMAND?
0 ?? DLs 0:00.17 (swapper)?
1 ?? Is 0:00.19 /sbin/init --?
2 ?? DL 0:56.60 (pagedaemon)?
3 ?? DL 0:00.06 (vmdaemon)?
4 ?? DL 6:07.65 (updata)?
從locore.s返回到process #1,/sbin/init開始動作,然后轉向freebsd的普通?
動作。?
init386()和main()的處理大致如下:?
。init386()?
GDT和LDT,IDT,task stages處理的初始化,例外處理等locore.s沒做的?
事情,虛擬內存初始化。然后,根據boot program的參數,增加物理內?
存page數。然后,作成process #0的雛形。?
。main()?
逐步調用構成kernel模塊的的初始化部分。


FreeBSD核心探討(翻譯)3
(續上,liangvy.icewolf.leon翻譯)
但是,kernel構成的各個模塊的初始化子程序一個個的列舉出來運行很顯然是?
不行的。通常是利用時間連表的技能來運行它(ld command)。也就是,程序?
是以很多個source分開編譯和聯結。相同的模塊名字就對應于相同的地址來進?
行調用。它在時間鏈表里面自動調節執行。?
初始化時候,main()函數要call的模塊利用在sys/kernel.h里面定義的宏?
SYSINIT()和SYSINIT_KT()進行登記。這樣,kernel在link的時候,ld命令就?
能夠得到那些信息和進行配置列表。這個列表就是kernel的組成模塊的初始化?
routine的登記。檢查source,?
就可以找到初始化routine的部分。?
如表:?
print_caddr_t(copyright) kern/init_main.c?
vm_men_init(NULL) vm/vm_init.c?
syctl_order(&sysctl_) kern/kern_sysctl.c?
kmemnit(NULL) kern/kern_malloc.c?
fpu_init(NULL) i386/i386/math_emulate.c?
cpu_startup(NULL) i386/i386/machdep.c?
gnufpu_init(NULL) miscfs/devfs/devfs_tree.c?
...?
各個device的major號與處理routine的登記 (major循序號)?
...?
configure(NULL) i386/i386/autoconf.c?
proc0_init(NULL) kern/init_main.c?
rqinit(NULL) kern/kern_synch.c?
vm_init_limits(&proc0) vm/vm_glue.c?
vfsinit(NULL) kern/vfs_init.c?
elf_insert_brand_entry(&linux_brand) i386/linux/linux_sysvec.c?
initclocks(NULL) kern/kern_clock.c?
mbinit(NULL) kern/uipc_mbuf.c?
clst_init(NULL) kern/tty_subr.c?
shmnit(NULL) kern/sysv_shm.c?
seminit(NULL) kern/sysv_sem.c?
msginit(NULL) kern/sysc_msg.c?
kludge_splimp(&x_save_spl) kern/uipc_domain.c?
ifinit(NULL) net/if.c?
domaininit(NULL) kern/uipc_domain.c?
kludge_splx(&x_save_spl) kern/uipc_domain.c?
kmstartup(NULL) kern/subr_prof.c?
sched_setup(NULL) kern/init_main.c?
xxx_vfs_mountroot(NULL) kern/init_main.c?
xxx_vfs_root_fdtab(NULL) kern/init_main.c?
swapinit(NULL) kern/init_main.c?
proc0_post(NULL) kern/init_main.c?
kthread_init(NULL) kern/init_main.c||?
kproc_start(&page_kp) vm/vm_pageout.c||?
kproc_start(&vm_kp) vm/vm_pageout.c||?
kproc_start(&up_kp) kern/vfs_bio.c||?
scheduler(NULL) vm/vm_glue.c?
(||表示有多個程序)?
proc-post()被呼叫后,main()就是在對應process 0 的kernel的虛擬?
內存里動作。kthread_init(),kproc_start(&page_kp),kproc_start(&vm_kp)?
,kproc_start(&up_kp)等這幾個進程,在fork()后相繼被調用。它就是相?
應的進程1,2,3,4等。?
除process 1 以外,其他的進程調用并不返回調用的地址。(也就是,main()?
的跟隨執行后,并不返回locore.s)。對于process #1的kernel的虛擬內存,?
在kthread_init()返回后,main()的跟隨就完了,回到locore.s后,process #1?
的進程空間的配置文件/sbin/init就被執行。?
main()在process #0對應的kernel虛擬內存運行后,進入時間鏈表scheduler()。?
這個并不返回。那現在就有五個進程了。?
然后,fork() 的調用在下面說明。?
1,分配process ID,保證struct proc()用的空間。?
2,復制父親的process的虛擬內存空間,作成物理內存的變換表。對?
應兩個進程,采用相對應的物理內存表。?
3,給回父親的struct proc和struct user,然后對子進程的struct和?
struct user進行初始化。?
4,kernel的stacker也進行復制。?
5,返回父進程后,標記生成的子進程。完成處理。?
但是,process #0 -- 4 這五個進程的虛擬內存里面什么都沒有。這些是核心?
進程的特殊部分。進程0,2,3是調節系統存在的進程的執行優先級,監視物理?
內存的不足,如果不夠就使用swap區進行交換。進程4的作用就是定期調查核心?
的unix文件系統的管理信息與驅動程序的管理信息的一致性,使它的信息一直?
是最新的。
1.3.3 /sbin/init?
從kernel里面看,/sbin/init就是單一的進程空間里動作,與一般的?
user program一樣,提供user使用的unix文件系統的環境的服務。?
核心啟動后最初的動作就是/sbin/init。作用如下:?
。確保file system的一致性,進行mount。?
。之后,network的設定和各種daemon的啟動。?
。監視終端的login的配置和動作狀態。這個動作完了后(logout),?
修改和配置 login。?
也就是說,如果沒有它,用戶就不能使用unix文件系統。還有就是,如果boot?
progam參數指定-s的話,它就過渡到單一的用戶模式。相對來說,普通的用戶?
模式也就是multi模式。為了使普通用戶能夠使用系統,/sbin/init的參考文件?
主要在/etc目錄里放著。主要就是運行/etc/rc文件對系統進行初始化。?
/etc/rc文件的主要內容和作用如下:?
。使系統能夠使用swap區?
。檢查/etc/fstab,檢查它的連貫性,如果有問題就轉到單一的用戶模式?
。mount nfs以外的文件系統?
。讀入network 的設定和各種daemon進程的設定情況的記錄文件?
/etc/c.conf,這個內容作為shell script的變量設定,以下的就是?
各個shell的動作調整?
。serial的初始化(/etc/rc.serial)?
。運行PCMCIA卡的插拔監控守護進程(/etc/rc.pccard)?
。network的部分初始化(/etc/rc.network)?
。如果有nfs的時候就進行mount操作?
。network的最終初始化(/etc/rc.network:啟動和entwork有關的daemon)?
。共有庫的有關信息的初始化?
。intd,lpd,sendmail的啟動?
。依賴系統的一些初始化進程?
/etc/rc的處理完了后,/sbin/init就對/etc/ttys等記述的一些終端的用戶login進行?
監視。對于這個,/etc/ttys里指定的終端,fork()后的進程里:?
。exec()指定的程序(普通的情況是/usr/libexec/getty)?
。/usr/libexec/getty進行終端速度等的設定。提示login:,等待用戶輸入?
。用戶輸入后,名字作為參數exec() /etc/bin/login?
。/usr/bin/login就提示出passwd:,等待用戶的輸入?
。準備user名和passwd,對輸入的用戶名進行確定,正確的話就exec()用戶?
shell
下圖就是/sbin/init的監視進程圖:
process #1?
-------------------------------------------------------->?
/sbin/init | ^ \?
| fork() | | fork()?
+ exec() exec() exec() | | exec()?
process #n |---------->+--------->+------------------*+--------?
getty login user的login shell process #m
(第一章完,下一章介紹文件系統和驅動程序,liangvy)
?
FreeBSD核心探討.4.驅動程序篇
翻譯:liangvy liangvy@bigfoot.com icewolf.leon?
版權所有,可以轉貼
第二章 文件系統和設備驅動程序
這章主要介紹文件系統和特殊的設備文件以及它們的對應關系。
2..1 disk上的 unix file system 的基本知識?
首先介紹一下經典的unix file system的思維方法。?
disk 的 partition就是從0到512byte的連續長度的block的東西。這里有?
1.file/directory有關的固定長度的信息,i-node?
2.file/directory的本體,data block?
的兩樣不同的東西。partition的前面的附近塊(block#16 ,1--15用于boot?
program )就是i-node,data block用的領域等等的開始位置(block號)?
和長度(block數量)等的記錄,叫做super-block。一個block可能的容量只?
能有固定數目的i-node,所以如果分配了固定的i-node,收錄了節點號和節?
點的塊號和塊的位置就可以計算出來。?
i-node就是?
。表明i-node的種類(file ,direstory,device等)?
。這個節點參考的次數(目錄數)?
。參考,作成,變化的時間?
。權限?
。所有者的user id / group id?
。本體的長度?
。收集本體的data block的block號碼的固定長度的對應表?
的一些記錄。因為data block的對應表是固定的關系,比?
如10個,最長就能夠作出512*10=5k為止的file。
當文件比塊大的時候,unix就采用成組聯結的方式對它們進行管理。就是?
把所有的空閑塊以一定數目為一組的方法作成單向空閑塊stacker。?
特別地,文件的從先頭的byte位置開始和i-node內的對應表有著密切的關系。?
而且,對于i-node的輸入輸出,可以對應指定位置的數據塊進行讀寫。重要?
的是,核心可以依照這個管理表對io裝置進行管理。?
unix對io設備的操作也是作為(特殊)文件進行的。對于用i-node進行?
描述的io設備,data block數據塊的對應表就沒必要了。這個部分的io設備?
的識別就通過device號碼來進行。向這些對i-node進行輸入輸出處理的,?
就又設備驅動號區別,來進行device driver驅動。?
那么,節點怎么的進行查找呢?partition的最初的目錄(根目錄)就是,?
從第二個i-node開始,一個一個順著節點進行查找。?
比如,對于目錄/uuu/vvv/.../yyy/zzz的查找方式,有這種關系:?
。i-node #2 所存放的是root directory。讀入它的本體,就可以找到?
相應的uuu所對應的i-node。?
。讀入這個i-node所存放的directory的i-node本體,找到相應的vvv節點。?
......?
查找對應yyy的節點?
。讀入這個節點的本體信息,這里包含目錄本題的內容,這樣就可以找到?
zzz所對應的i-node。?
目錄里面由于記錄了對應文件名的節點號,所以,也有可能同一個節點號?
根據文件名不一樣,就可以找到不同的目錄名。這就是硬連接(hard link).?
但是,節點號有只存在于節點所在的分區的含義,所以,不同的分區,?
這種硬連接就不具有存在的可能性。為了解決這個矛盾,就有了符號連接?
(symble link)的說法。當節點是輸入符號連接的時候,符號連接就包含?
了這個節點的data block所指定的路徑名。但是,空連接和loop連接這種?
情況也是允許的,所以核心要指定循環連接的最大次數。具體由參數?
MAXSYMLINKS(@sys/param.h)指定。?
這樣,多個分區建立一個文件系統就有可能了。啟動核心的分區作為一個?
已存的文件系統,其他的分區就嫁接到目錄層上面。這個操作過程就是mount。?
利用mount指令,就可以實現上面的操作。但是,mount之前的目錄,在mount后?
就給屏蔽了,直到mount結束,那些目錄就可以再現。?
以上就是經典的unix文件系統理論。但是,對于讀入了i-node,就去讀?
data block ,這種情況,對于一個比較大的分區,硬盤磁頭向disk head的距?
離就太大了。總的來說,訪問時間就會變長。在這里有一些指導思想:?
。分區要比較小,多分小區?
。了解超級塊的地位,超級塊記錄了分區的信息,考慮由于介質的原因而?
使這個超級塊造成損害,所以,在分區內部就必須為它準備多幾個拷貝。?
。目錄和它下層的文件,要在相同的領域內放置。?
。確保單位data block要比磁盤的block大。?
考慮了一些東西后,經過改良標準,freebsd就采用一個叫做FFS的文件系?
統(Fast File System),但這只是i-node領域/data領域的配置方法的變化,基?
本的考慮方法并沒有變。對磁盤分區進行文件系統的構造的初始化由命令newfs?
提供。看看它的source就知道怎么配置的了。其他的構造(......)對應于kernel?
的source,對于構成boot program的文件disk.c和sys.c(@i386/boot/biosboot)?
比較簡單易懂(單純性)。?
上面講述的i-node對disk的partition的記錄形式,詳細的(source)在?
struct dinode(@ufs/ufs/dinode.h)里面有。在核心內部使用的,包含這個東西?
的是struct inode(@ufs/ufs.inode.h)。
描述io設備的文件叫特殊文件(special file),他對應的i-node有兩個種?
類:?
。塊型(block)?
和裝置的固有的數據記錄的單位(大多數的情況是512byte)無關。讀寫?
的最小單位是1byte,可以在任意的場所里任意長度的data。核心對各個?
block型的特殊文件進行固定的記錄單位長度(倍數)進行緩沖(buffer)?
管理,這樣就可以處理任意長度的讀寫了.?
。文字型(char)?
讀寫的基本單位是,受到裝置固有的date記錄單位長的限定。沒有block?
型的緩沖管理,對應于裝置的物理特性,讀寫屬于專用。或者說,是讀寫?
兩用。?
除了網絡接口之外,io裝置可以全部分為文字型和塊型兩個大類。總的來說,?
磁盤操作的兩樣都用,但其他的io裝置只有文字型。還有就是一些沒對應物理設?
備的kernel modules提供的虛擬設備也有,它們對應著文字型的特殊文件。特殊?
文件習慣放在目錄/dev里面。
對于特殊設備文件的i-node有block和chat兩個類,設備通過驅動號進行記錄?
。通過這些,就可以識別device driver。device 號就是major號(8bit)(主設備?
號)和minor號(24bit)(輔助設備號),device driver的識別就是由major的不?
一樣而區別。而且呢,block型,char型的等等可能存在最大數目是256種類。一般的?
情況,同種類的設備不同數目的區別就是通過輔助設備號進行識別。實際上,對于?
disk的特殊文件,有disk/slide/partition表示法,而且,文字型,塊型等的特殊?
設備文件也存在。以下就是一個ide硬盤的的文字型特殊設備文件的例子:?
/dev/rwd0 1臺ide的硬盤?
/dev/rwd0s1 1臺ide的硬盤的slide #1?
/dev/rwd0s2 1臺ide的硬盤的slide #2?
/dev/rwd0s2a slide #2的partition a?
/dev/rwd0s2b slide #2的partition b?
...?
/dev/rwd0s3 1臺的ide的硬盤的slide #3
如果把rwd換成wd,對應的就是block型的特殊設備文件了。?
對于磁盤,有如下的使用方法:?
。對于slide的文字型特殊文件?
讀寫disk label時候使用(disklabel command)?
。對于對應的partition的文字型特殊文件?
在分區上建立unix文件系統時候(newfs command),文件系統修復,?
檢查(fsck)時候使用?
。對于partition的block型的特殊文件?
作為mount命令的參數使用?
(下一節介紹虛擬文件系統和v-node,要休息了 )
?
FreeBSD核心探討.5.驅動程序篇
2.2 虛擬文件系統和v-node?
FreeBSD在disk上的除了ffs以外還可以操作各種各樣的文件系統。主要的如?
下:?
。cd9660?
可以對ISO9660形式的cd-rom的目錄/文件構造的文件系統進行mount,?
locate等目錄層的操作?
。ms-dos?
對ms-dos文件系統進行目錄層次的mount,定位等操作?
。mfs?
通過使用虛擬內存對swap區的一部分進行unix文件系統的構造,定位?
作為目錄的一部分進行讀寫?
。nfs?
由nfs server提供的remote目錄級進行mount,定位的目錄層操作。?
。null?
對已經存在的目錄層的使用別名?
。union?
對已有的目錄A(上層)在下層目錄B上進行重疊 (不大理解這的意思?
,大概是在下層目錄里面又嫁接了上層目錄的意思:譯者)。文件名的查?
找由上層優先進行。沒有的話就轉道下層。如果對下層的文件進行寫操作?
,它的拷貝就在上層上進行。舉例說明,作業目錄在上層,但cd-rom的源?
在下層,兩個目錄重疊,那么編譯source的時候,就相當方便了。?
。procfs?
對于進程號的目錄作成mount point。通過文件名對各個目錄的進程進行?
控制。?
。kernfs?
為了對動作中的kernel有關的信息進行參考,而作成的mount point?
。fdesc?
對于各個進程,用它所打開的文件柄對應的文件作成的mount point
實際上,在核心內部,為了對它們進行統一操作,就對文件系統和v-node?
進行抽象化,實際的處理過程就是調用各類的文件系統的模塊進行處理。
2.2.1對虛擬文件系統的操作?
各個文件系統可以提供的操作的一覽如下,它在struct vfsops?
(@sys/mount.h)里面定義:?
。對文件系統進行mount的操作?
。本文件系統的開始動作的操作?
。本文件系統的umount操作?
。表達文件系統的根的v-node的查找操作?
。對一般用戶的權限控制?
。取得文件系統的狀態?
。內存內的管理信息寫入介質中?
。從i-node到v-node的取得操作?
。v-node和nfs的文件柄的相互變換的操作?
。文件系統實際的模塊的初始化
對于文件系統,各個實際的操作routine在vfsops的形式提供準備工作。各個文件系?
統的vfsops,在以下的表里的source進行定義:
--------------------------------------------------------------?
file system vfsops的定義 source?
--------------------------------------------------------------?
ufs ufs_vfsops ufs/ffs/ffs_vfsops.c?
cd9660 cd9660_vfsops isofs/cd9660/cd9660_vfsops.c?
msdos msdosfs_vfsops msdosfs/msdosfs_vfsops.c?
mfs mfs_vfsops ufs/mfs/mfs_vfops.c?
nfs nfs_vfsops nfs/nfs_vfsops.c?
null null_vfsops miscfs/nullfs/null_vfsops.c?
nuion union_vfsops miscfs/union/union_vfsops.c?
procfs procfs_vfsops miscfs/procfs/procfs_vfsops.c?
kernfs kernfs_vfsops miscfs/kernfs/kernfs_vfsops.c?
fdesc fdesc_vfsops miscfs/fdesc/fdesc_vfsops.c?
devfs devfs_vfsops miscfs/devfs/devfs_vfsops.c?
ext2fs ext2fs_vfsops gnu/ext2fs/ext2_vfsops.c?
lfs lfs_vfsops ufs/lfs/lfs_vfsops.c?
portal portal_vfsops miscfs/portal.portal_vfsops.c?
umap umap_vfsops miscfs/umapfs/umap_vfsops.c?
---------------------------------------------------------------?
這些就是文件系統的實際模塊(*_vfsops.c),文件系統名稱,文件系統號等等?
在struct vfsconf(@sys/mount.h)里面匯總,各個模塊里用宏VFS_SET()進入核?
心。?
根據main()(@kern/init_main.c),在kernel初始化的過程中,vfsinit()?
(@kern/vfs_init.c)里面有?
struct vfsconf *vfsconf[MOUNT_MAXTYPE+1];?
struct vfsops *vfssw[MOUNT_MAXTYPE+1];?
各種東西的設定,這些是,管理mount信息的struct mount(@sys/mount.h)的成員?
mnt_vfc和mnt_op要指定所對應的文件系統的vfsconf,vfssw。還有宏VFS_操作名?
(struct mount *,..)里,可以各個操作的調用。
2.2.2對v-node的操作?
虛擬文件系統就是通過對i-node的抽象化之后的v-node的文件/目錄進行io處理。?
為了這個目的,作為對v-node的適用處理,有?
。從v-node到文件名的查找,返回v-node?
。打開/關閉v-node?
。檢查是否可能訪問v-node?
。得到-v-node的屬性?
。設定v-node的屬性?
。對v-node的輸入/輸出?
。擴展v-node的硬連接和符號連接?
。對v-node進行目錄的作成和刪除?
。。。。?
由這里開始,一共定義了41個。?
v-node由struct vnode(@sys/vnode.h)里定義,作為類別在enum vtype?
里面表示出來,一共是9種類。它包含著在各個文件系統上對各個的文件/目錄(包?
括特殊)文件進行統一識別的信息。為了實現這樣,v-node一連串的操作就是在各?
模塊里通過宏VNODEOP_SET()和核心通訊。這些操作名和實現的routine只需要必要?
的幾個對應。在核心初始化里,vfs_opv_init()(@kern/vfs_init.c)就使從數據得?
到的號碼一一對應,收集了routine的地址的同一size的配列再進行組合。各個?
v-node就一個一個指向這些配列。對v-node的操作在vnode_if.h里定義:?
它以?
VOP_操作名(v-node,...)?
的統一形式記述。
下面是對v-node的操作的定義source:?
------------------------------------------------------------------------?
各個v-node操作(vnodeopv) source?
------------------------------------------------------------------------?
cd9660_fifoop_opv_desc isofs/cd9660/cd9660_vnops.c?
cd9660_specop_opv_desc isofs/cd9660/cd9660_vnops.c?
cd9660_vnodeop_opv_desc isofs/cd9660/cd9660_vnops.c?
dead_vnodop_opv_desc miscfs/deadfs/dead_devfs_vnops.c?
devfs_vnodeop_desc miscfs/devfs/devfs_vnops.c?
ext2fs_fifoop_opv_desc gnu/ext2fs/ext2fs_vnops.c?
ext2fs_specop_opv_desc gnu/ext2fs/ext2fs_vnops.c?
ext2fs_vnodeop_opv_desc gnu/ext2fs/ext2fs_vnops.c?
fdesc_vnodeop_opv_desc miscfs/fdesc/fdesc_vnops.c?
ffs_fifoop_opv_desc ufs/ffs/ffs_vnops.c?
ffs_specop_opv_desc ufs/ffs/ffs_vnops.c?
ffs_vnodeop_opv_desc ufs/ffs/ffs_vnops.c?
fifo_nfsv2nodeop_opv_desc nfs/nfs_vnops.c?
fifo_vnodeop_opv_desc miscfs/fifofs/fifo_vnops.c?
kernfs_vnodeop_opv_desc miscfs/kernfs/kernfs_vnops.c?
lfs_fifoop_opv_desc ufs/lfs/lfs_vnops.c?
lfs_specop_opv_desc ufs/lfs/lfs_vnops.c?
lfs_vnodeop_opv_desc ufs/lfs/lfs_vnops.c?
mfs_vnodeop_opv_desc ufs/mfs/mfs_vnops.c?
msdosfs_vnodeop_opv_desc msdosfs/msdosfs_vnops.c?
nfsv2_vnodeop_opv_desc nfs/nfs_vnops.c?
null_vnodeop_opv_desc miscfs/nullfs/null_vnops.c?
portal_vnodeop_opv_desc miscfs/portal/portal_vnops.c?
procfs_vnodeop_opv_desc miscfs/procfs/procfs_vnops.c?
spec_nfsv2nodeop_opv_desc nfs/nfs_vnops.c?
spec_vnodeop_opv_desc miscfs/specfs/spec_vnops.c?
umap_vnodeop_opv_desc miscfs/umapfs/umap_vnops.c?
union_vnodeop_opv_desc miscfs/union/union_vnops.c?
------------------------------------------------------------------------?
這個基礎上,spec_vnodeop_opv_spec里描述的操作群就是device driver?
interface的東西!!
( 本小節完,待本島主有空再繼續 )
?
FreeBSD核心探討.6.驅動程序篇
2.3 mount根目錄之前的處理概要?
mount根目錄的時候,main()(@kern/init_main.c)的初始化的過程從xxx_vfs_mountroot()?
(@kern/init_mail.c)被調用開始。如果處理過程正常,就對rootvp設定包含了root的?
v-node。?
。main()的初始化過程中,configure()(@autoconf.c)被調用。在這個,io設備?
初始化完了后,就轉移到如下兩個變量的地址:一個是mountroot,是處理mount的routine,?
另一個是mountrootvfsops,是處理虛擬文件系統的routine。在本機磁盤中,就進入變量?
rootdev所指定的disk號中。這里就是,假定本機磁盤?
mountroot vfs_mountroot?
mountrootvfsop &ufs_vfsops?
rootdev boot disk number
。xxx_vfs_mountroot()(@kern/init_main.c)?
運行(*mountroot)(mountrootvfsops)后,就指明了root file system的mount.?
。vfs_mountroot()(@kern/vfs_conf.c)?
管理mount的了文件系統的信息的struct mount(@sys/mount.h),對它進行確認?
,然后設定傳遞過來的對虛擬文件系統的操作群(&ufs_vfsops),才進行"root"?
標記。根據VFS_MOUNT(mp,...)進行mount這個虛擬文件系統。mount成功后,就?
追加file system的list。這里,由于傳遞了&ufs_vfsops,就可以調用?
ffs_mount()(@ufs/ffs/ffs_vfsops.c)?
。ffs_mount()?
首先調用bdevvp()(@kern/vfs_subr.c),進行VBLK類別,spec_vnodeop_p?
(@misc/specfs/spec_vnops.c) v-node操作,保證設定了驅動號的rootdev的?
v-node的最新信息,然后設定rootvp。最后,通過ffs_mountfs()調用進行實際?
的mount rootvp操作。?
。ffs_mountfs()?
各種各樣的檢查完了后,調用VOP_OPEN(),打開rootvp的v-node。在這里,如果?
v-node的v_op成員在spec_vnodeop_p存在的話,就調用spec_open()(@misc/?
specfs/spec_vnops.c)。?
.spec_open?
由于VBLK里包含v-node的種類,從v-node指定的device號取得major的?
號,調用對應driver的XXopen() routine
續上,由VOP_IOCTL()(還是的通過spec_ioctl()(@misc/specfs/spec_vnops.c))?
可以得到partition信息,然后該檢查super block的內容。正確的話,就在struct?
ufsmount(@ufs/ufs/ufsmount.h)設定unix file system,這樣處理過程就完了。
2.2.4 struct buf 和block的輸入輸出routine?
前節的ffs_mountfs()提到使用bread()(@kern/vfs_bio.c)讀出partition的?
super block。這個接口函數很快就會解釋。它主要用于讀取block型的device到?
kernel內部的buffer中。?
bread(struct vnode *vp, /*(in)輸入對象的v-node*/?
daddr_t blkno, /*(in)block號*/?
int size, /*(in)讀出的byte數量,block長的倍數*/?
struct ucred * cred,/*(in)權限信息*/?
struct buf ** bpp)/*(out)存儲讀來的data*/?
同樣的buffer link后的block輸出的子程序是bwrite()。?
bwrite(struct buf *bp) /*(out)可以輸出的struct buf*/?
兩者之間共同的地方就是struct buf(@/sys/buf.h),它用于io處理中給device driver?
做橋梁作用的數據結構。它記錄了v-node,io的區別,可以io的block位置/byte數,存?
儲實際data buffer的address,io處理的進展情況等。
bread則通過getblk()對block輸入的結構struct buf進行操作。getblk()調用在核心?
管理buffer link和返回指定大小的block的struct buf。這個(緩沖區)內容在目的?
block是否存在與指定v-node的指定位置block是否已經構成緩沖環有關。struct buf?
里面有一個標志位,當緩沖環內容變化是,這個標志位就會改變。bread()根據這個?
flag判斷block是否已經緩沖,如果已經完成,它就終止退出。如果不是這樣,則在?
struct buf的mark里面標志,然后調用VOP_STRATEGY()。在v-node登記的strategy?
routine記錄了io處理的過程,所以bread()當實際的處理完了后,就調用biowait()?
進入等待狀態。然后,就轉移到別的進程A。io處理完了后,調用biodone(),進程A?
也可以繼續進行。還有,調用bread()的一邊,當完成操作后,就調用brelse(),在?
里面對struct buf的flag重新設置,讓它對別的程序開放。
bwrite也是同樣的通過VOP_STRATEGY()對io處理要求進行登記,同時也調用biowait()?
進入等待狀態,同樣,當實際操作完了后,也設置flag進行復位,使得其他程序可以?
使用io,當空閑的時候,io就掛起,轉向其他進程處理。?
進程等待進入的時候,當然不限于只是調用biowait()。在bread()或者bwrite()之前,?
系統必須分配足夠的資源供它使用,比如一些緩沖區等。當進行實際io時候,1個block?
也可以,多個block也可以,而且這樣可以獲得更高的效率,這樣看起來,就象實際上?
是連續操作了。?
(代續)
?
FreeBSD核心探討.7.驅動程序篇
2.2.5系統調用open()的處理概要?
進程通過系統調用read()/write()進行io處理,它由文件描述符指定對哪里進?
行i/o,文件描述符是0以上的整數,它在各個進程的struct proc的成員?
struct filedesc *p_fd(struct filedesc(@sys/filedesc.h))保留的struct file?
((@sys/file.h)進行選擇添加。對struct file,它含有從文件的頭的輸入輸出的byte?
位置,輸入操作,輸出操作,輸入輸出控制,輸入輸出的準備狀態的檢查,執行close?
的routine,以及描述io處理對象的信息(v-node,socket,pipe) 。系統調用open()?
(@kern/vfs_syscalls.c)就是把包含路徑信息的v-node找尋出來,為了對它進行io處理,?
先要對struct file進行初始化,然后返回文件描述符。?
從路徑名查找v-nodehe和io準備操作由vn_open()(@kern/vfs_vnops.c)承擔。?
vn_open()通過namei()(@kern/vfs_lookup.c)查找路徑對應的v-node名,由VOP_OPEN()?
調用不同的v-node定義的準備過程routine。例如,有如下的處理方法。?
。普通的file/directory?
調用ufs_open()(@ufs/ufs/ufs_vnops.c),檢查open的mode?
。特殊設備文件?
調用spec_open()(@miscfs/specfs/spec_vnops.c)?
文字型 調用device driver的open routine?
快型 mount的時候出錯。如果不是這樣,就調用device driver的?
open routine。
回過頭來,namei()的任務是就是,對于指定的路徑名,對應于跟目錄或者當?
前目錄的v-node作為起點,通過lookup()(@kern/vfs_lookup.c)進行v-node查找。?
lookup()從路徑名開始的v-node(VDIR)開始查找。找到了的v-node作為新的起點繼續進行?
查找下一步的要素名,然后得到目的的v-node。這個時候,根據v-node的不同,目錄的檢?
索方法也就不同。各個要素的實際檢索由VOP_LOOKUP()來做。
2.2.6系統調用read()的處理概要?
open()取得文件描述符后,對它的輸入處理,有如下的流程。指定的文件描述符?
的struct file內登記的處理routine有vn_read()(@kern/vfs_vnops.c),vn_write(),?
vn_ioctl(),vn_select(),vn_closefile(),v_node?
登記的操作routine不能分開使用。vn_*()里,只有在合適的前綴操作下,才能正確調用。?
read()首先在struct uio(@sys/uio.h)登記進程指定的buffer的位置和長度。?
執行read()后,vn_read()向struct file設定登記的文件的讀寫位置,然后調用VOP_READ()。?
根據讀出來的byte數,讀寫位置相應增加。?
VOP_READ()的call routine則是與v-node有關,就象下圖一樣。
vn_read()?
文字型/塊型 |?
/------------------?
| | file/directory?
spec_read() ---------ffs_read()-------VOP_READ()?
block型 | |?
/---------------|char型 |?
bread() device driver bread()?
| |?
spec_strategy() ---------------ufs_strategy() --VOP_STRATEGY()?
| | |?
| | |?
device driver spec_strategy() -------------/?
|?
|?
device driver


。普通的file/directory?
調用ffs_read()(@ufs/ufs/ufs_readwrite.c)。對應指定的讀寫位置,計算block?
的位置,然后用bread()讀出來。讀出來的數據送到進程所準備的緩沖區。從bread()?
傳遞過來的block并不是物理block的位置,而是把file作為block列的一個理論值。?
從理論塊到物理塊的變換由VOP_STARATEGY()完成。也就是說,ufs_strategy()先把?
文件內位置轉化為物理block位置,然后從v-node記錄的i-node把表示物理設備的?
v-node 去出來,這個VOP_STRATEGY就調用spec()(@miscfs/specfs/spec_vnops.c)?
讓它進行輸入要求。?
。特殊設備文件?
通過調用spec_read()(@miscfs/specfs/spec_vnops.c),把它分為文字型和塊型兩類。?
文字型 調用device driver的輸入routine?
塊型 通過bread()進行輸入處理
對文件的系統調用write()的場合也是類似的處理流程(ufs_write()->bwrite()),?
ufs_write()則要考慮到文件大小的延伸。
?


FreeBSD核心探討.8.驅動程序篇


2.3 Device Driver?
進程的io要求到這里說的差不多了。上面也解說了對于文字型,塊型的驅動程序接口,就?
是dev_spec_vnodeop_opv_desc里定義的子函數那些。參考設備驅動程序,在sys/conf.h?
里定義的結構體。block型是?
struct bdevsw{?
d_open_t *d_open;?
d_close_t *d_close;?
d_strategy_t *d_strategy;?
d_ioctl_t *d_ioctl;?
d_dump_t *d_dump;?
d_psize_t *d_psize; /*得到容量*/?
int *d_flags;?
char *d_name; /*device 名*/?
struct cdesw *d_cdev; /*對應的文字型*/?
int d_maj; /*major號*/?
}?
文字型的則是?
struct cdevsw{?
d_open_t *d_open;?
d_close_t *d_close;?
d_read_t *d_read; /* rawread() */?
d_write_t *d_write; /* rawwrite()*/?
d_ioctl_t *d_ioctl;?
d_stop_t *d_stop; /* nostop()*/?
d_reset_t *d_reset; /* nullreset()*/?
d_devtotty_t *d_devtotty; /* nodevtotty*/?
d_select_t *d_select; /* deltrue*/?
d_mmap_t *d_mmap; /* nommap*/?
d_strategy_t *d_strategy?
char *d_name; /*device名*/?
struct bdevsw *d_bdev; /*對應block型*/?
int d_may; /*major號*/?
}


兩方面共同的部分有?
xx_open(dev_t dev,int oflags,int devtype,struct proc *p)?
xx_close(dev_t dev,int fflag,int devtype,struct proc *p)?
xx_ioctl(dev_t dev,int cmd,caddr_t data,int fflag,struct proc *p)?
xx_open()用于打開device號的設備。xx_close()則用于關閉它。xx_ioctl()則對設備的?
動作狀態,機能的取得,設置等進行控制,它通過int cmd命令和參數caddr_t data對之?
進行處理。xx_open()的oflags則是系統調用open()里指定的標志。xx_close()和?
xx_ioctl()的fflag是每個文件描述符設定的標志。int devtype用來區別設備類型是文?
字型的還是塊型的。struct proc *p是本次要求的進程號。
在文字型的操作里,有這三個函數?
xx_read(dev_t dev,struct uio *uio,int ioflag)?
xx_write(dev_t dev,struct uio *uio,int ioflag)?
xx_select(dev_t dev,int which, struct proc *p)?
xx_read()/xx_write()是對device號的io,struct uio *uio 是io的buffer,int ioflag?
標志io動作的option。例如,輸入data沒準備好的場合不用進入等待狀態也可以。?
xx_select()檢查是否可以進行io要求。?
在塊設備的操作中,有一個函數?
xx_strategy(struct buf *bp)?
它處理io要求。struct buf *bp里面包含著device號,輸入還是輸出,io的buffer等。
device號中的major號,對文字型的struct cdevsw *cdevsw[],對塊型的struct?
bdevsw *bdevsw[],作為配列的添加字使用。向這些配列登記,就可以調出device driver?
的登記routine。?
對cdevsw[]登記的過程在kern/kern_conf.c,它使用?
int cdevsw_add(?
dev_t *descrip, /*收集device號的變量的指針*/?
struct cdevsw *newentry,/*設置struct cdevsw的指針*/?
struct cdevsw **oldentry,/*舊的設定內容的返回領域*/?
)?
另一方面,對bdevsw[]的登記過程則使用?
int bdevsw_add_generic(?
int bdev, /*block型的major號*/?
int cdev, /*文字型的major浩*/?
struct bdevsw *bdevsw, /*設定struct bdevsw的指針,對應d_cdev*/?
)?
block型的device和char型的device有著一定的對應關系。這些結構體相互參考。?
bdevsw_add_generic()從block的結構體開始,對作為char型的device的結構體進行初始化。?
還有,network interface的devive driver,并沒有向cdevsw[]和bdevsw[]登記。而且也沒有?
device號。網絡間的package流,和進程間與網絡間的package流也沒有特別指明。?
調用登記routine的時候,可以把文件系統的modules作為特殊設備文件參考。登記?
routine在什么地方都可以調用。?
。main()(@kern/init_mail.c)的初始化過程中登記的routine調用的時候,各個?
device driver的modules里由宏SYSINIT()準備進行。?
。確認device driver里的io設備的存在的時候,調用登記routine。?
當調用登記程序段的時候,如果major號和/dev/MAKEDEV的major號有沖突的時候,?
就調用全部無關性device file的處理routine,也可能沒有預期的的災難事情。還有別的?
以外事情,就是當/dev里沒有對應的特殊設備文件的時候,也就不能從進程進行參考。
?
FreeBSD核心探討.9.驅動程序篇


2.3.1驅動程序初始化?
從文件系統的模塊可以看出來,如果要對驅動程序的物理設備進行io,必須?
先對它們進行初始化,否則不能處理process的io。核心初始化的過程里,一共登記?
了兩個基本的操作過程。?
1.probe 確認io設備?
2.attach 設置device driver內部的數據結構,使它能夠對io設備?
進行操作。登記中斷子程序。?
在device driver中的處理過程有:?
1.i/o地址?
i/o命令使用的地址,使io設備的控制硬件和數據交換。?
2.中斷號?
io設備的狀態變化的時候,向cpu發出通知。?
3.共有內存地址?
根據設備的不同,使用一部分內存空間進行cpu和數據的交換。?
4.DMA通道?
不用通過cpu做中介,設備和內存直接交換數據時候采用的通道的識別號。?
cpu可以在數據傳送的時候同時執行它的機器語言。?
前兩種是必須有的。設備根據他連接的總線設備不一樣,處理過程也就不同。?
這個在核心的configure中反映出來。
各種總線設備的device driver的初始化?
驅動程序的初始化在main()初始化的過程中調用configure()?
(@i386/i386autoconf.c).
EISA bus?
連接EISA bus的io設備用的device driver的初始化在eisa_configure()?
(@i386/eisa/eisaconf.c)。各個device driver在module里對struct eisa_driver?
XXX(@i386/eisa/eisaconf.h)進行probe,attach等的設置,準備在宏DATA_SET?
(eisadriver_set,XXX)進行登記。?
eisa_configure()(@i386/eisa/eisaconf.c)對連接EISA bus的全部io設備?
標志和i/o地址進行檢測。之后便調用登記的probe子程序。在probe子程序中,通過?
eisa_match_dev()(@i386/eisa/eisaconf.c)對自身檢測,查找io設備,檢測i/o中斷?
號,然后進行使用預定,之后用eisa_registerdev()(@i386/eisa/eisaconf.c)在?
struct eisa_driver XXX對這個設備操作,作為device driver登記。全部的io設備?
的控制device driver登記完畢后,eisa_configure()就調用device driver的attach?
子程序。attach子程序則進行中斷處理程序的登記和device driver的數據的初始化。
核心的configure文件登記了以下的一些device driver:?
--------------------------------------------------------------------------?
device device driver的情報 source 參考?
--------------------------------------------------------------------------?
mainboard_drv i386/eisa/eisaconf.c?
ahb ahb_eisa_driver i386/eisa/aha1742.c scsi adapt?
ahc ahc_eisa_driver i386/eisa/aic7770.c scsi adapt?
bt bt_eisa_driver i386/eisa/bt74x.c scsi adapt?
ep ep_eisa_driver i386/eisa/3c5x9.c network interface?
fea pdq_eisa_driver i386/eisa/if_fea.c network interface?
vx vx_eisa_driver i386/eida/if_vx_eisa.c network interface?
--------------------------------------------------------------------------
PCI bus?
連接pci bus的設備的初始化在pci_configure()(@pci/pci.c)進行。各個?
device driver在module內的struct pci_device XXX(@pci/pcivar.h)設置probe和?
attach,在通過宏DATA_SET(pcidevice_est,XXX)進行登記。?
DATA_SET(pcibus_set,i386pci)(@i386/isa/pcibus.c)登記的子程序可以?
得到有關pci bus的一些信息。之后和eisa bus處理過程一樣進行各種各樣的調用。?
核心的configure文件登記了以下的一些device driver:?
--------------------------------------------------------------------------?
device device driver的情報 source 參考?
--------------------------------------------------------------------------?
ahc ahc_pci_driver pci/aic7870.c scsi adapt?
bt bt_pci_driver pci/bt9xx.c scsi adapt?
ncr ncr_device pci/ncr.c scsi adapt?
amd trmamd_device pci/tek390.c scsi adapt?
cy cy_device pci/cy_pci.c serial port?
meteor met_device pci/meteor.c meteor通道?
stl stlpcidriver i386/isa/stallion.c serial port?
wdc wdc_pci_driver pci/wdc_p.c ide control?
de dedevice pci/if_de.c network interface?
ed ed_pci_driver pci/if_ed_p.c network interface?
fpa pfadevice pci/if_pfa.c network interface?
fxp fxp_device pci/if_pxp.c network interface?
lnc lnc_pci_driver pci/if_lnc_p.c network interface?
sr sr_pci_driver pci/if_sr_p.c network interface?
vx vxdevice pci/if_vx_pci.c network interface?
-------------------------------------------------------------------------
ISA bus?
連接ISA bus的io設備的device driver的初始化在isa_configure()(@i386/?
isa/isa.c)進行。和EISA,PCI很大的一個區別就是,在核心的配置文件中,要指定所?
有的io地址等。?
configure文件中,有象如下的記錄?
controller 控制設備名 at isa?...?
device device名 at isa?...?
這些內容在編譯核心的目錄下作為ioconf.c的struct isa_device?
isa_devtab_XXX[]的初始值由config命令寫進去。在struct isa_device(@i386/isa?
/isa_device.h)的上,其次的成員變量由configure文件的記錄內容進行設定。但是?
,“名字”是控制設備名/device名的數字除外的部分。?
-------------------------------------------------------------------------?
member名 configure的記述內容?
-------------------------------------------------------------------------?
id_driver 名字drvier?
id_iobase prot I/O address?
id_irq irq號?
id_drq drq DMA通道號?
id_maddr iomem共有memory address?
id_msize iosiz共有memory長度?
id_intr vector device driver的中斷處理程序名?
id_unit 名字的后的數字(?)?
id_flags flags?
-------------------------------------------------------------------------
但是,和控制設備/device名有關的一些東西如bio,net,tty出現的場合,這?
些一般成為isa_devtab_bio[],isa_devtab_net[],isa_devtab_tty[]數組的初始值。?
沒有的情況,則成為isa_tab_null[]的初始值。還有一個就是名字driver,它是各個?
device driver的module內部的struct isa_driver(@i386/isa/isa_device.h)一個東?
西。對isa bus設備的device driver,這個是一個固定值。?
象這樣的記錄:?
------------------------------------------------------------?
disk device名 at 控制設備名 driver 數字?
tape device名 at 控制設備名 driver 數字?
------------------------------------------------------------?
每個數字除外控制設備名(wdc或者fdc),總結起來就是寫進一個叫做?
isa_biotab_控制設備名[]的數組的某個元素的初始設定值。但對unit成員填入數字?
外,其他的也就和isa_devtab_bio[]的內容一樣。?
isa_configure()依照isa_devtab_bio[],isa_devtab_net[],?
isa_devtab_tty[]的設定值調用probe子程序對設備的有無進行確認。有的話就繼續?
調用attach子程序。?
probe子程序對設備進行確認,不同的probe子程序也有可能對同樣的io地址?
進行操作。所以為了防止這個問題,isa_configure()對已經確認過的的io地址不再?
給別的probe進行動作。?
同樣,錯認的可能性也有的。必要的時候沒連接的設備的probe要禁止使用,?
(在boot的參數的時候)。
========

freebsd完全攻略

http://www4.it168.com/jtzt/shenlan/server/freebsd/freebsd.htm

總結

以上是生活随笔為你收集整理的FreeBSD学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

一本大道久久东京热无码av | 色一情一乱一伦 | 久久天天躁夜夜躁狠狠 | 老子影院午夜伦不卡 | 色综合久久久无码网中文 | 欧美性猛交内射兽交老熟妇 | 免费国产成人高清在线观看网站 | 欧美人与禽猛交狂配 | 国产区女主播在线观看 | 亚洲中文字幕在线观看 | 日日摸天天摸爽爽狠狠97 | 大乳丰满人妻中文字幕日本 | 亚洲国产av精品一区二区蜜芽 | 欧美国产日韩亚洲中文 | 人人妻人人澡人人爽欧美精品 | 高清不卡一区二区三区 | 中文字幕无线码免费人妻 | 国产精品亚洲五月天高清 | 成人精品一区二区三区中文字幕 | 欧美大屁股xxxxhd黑色 | 久久久精品456亚洲影院 | 无码人妻丰满熟妇区五十路百度 | 天天拍夜夜添久久精品 | 精品成在人线av无码免费看 | 国产婷婷色一区二区三区在线 | 欧美35页视频在线观看 | 在线播放亚洲第一字幕 | www成人国产高清内射 | 青青草原综合久久大伊人精品 | 久久久久免费看成人影片 | 日韩亚洲欧美中文高清在线 | 久久午夜无码鲁丝片午夜精品 | 午夜熟女插插xx免费视频 | 国产莉萝无码av在线播放 | 伊人久久大香线蕉亚洲 | 欧美日本精品一区二区三区 | 人人妻人人澡人人爽精品欧美 | 午夜成人1000部免费视频 | 夫妻免费无码v看片 | 国产亚洲精品久久久ai换 | 亚洲成色在线综合网站 | 乌克兰少妇性做爰 | av香港经典三级级 在线 | 久久精品视频在线看15 | 欧美兽交xxxx×视频 | 乱人伦人妻中文字幕无码 | 久久久成人毛片无码 | 精品乱码久久久久久久 | 国产亚洲精品久久久久久 | 国产小呦泬泬99精品 | 国产精品久久久久影院嫩草 | 国产网红无码精品视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 特级做a爰片毛片免费69 | 国产精品无码一区二区三区不卡 | 亚洲国产精品久久久天堂 | 亚洲国产成人a精品不卡在线 | 大地资源中文第3页 | 国产色视频一区二区三区 | 午夜福利电影 | 欧美阿v高清资源不卡在线播放 | 两性色午夜视频免费播放 | 成人无码视频免费播放 | 无套内谢的新婚少妇国语播放 | 国产一区二区不卡老阿姨 | 国产艳妇av在线观看果冻传媒 | 精品无码国产自产拍在线观看蜜 | 欧美freesex黑人又粗又大 | 亚洲成av人片天堂网无码】 | 国产精华av午夜在线观看 | 亚洲国产欧美国产综合一区 | 精品久久久久久人妻无码中文字幕 | 国产情侣作爱视频免费观看 | 日韩无码专区 | 国产亚洲精品精品国产亚洲综合 | 国产三级精品三级男人的天堂 | 97精品人妻一区二区三区香蕉 | 日韩亚洲欧美中文高清在线 | 特级做a爰片毛片免费69 | 伊在人天堂亚洲香蕉精品区 | 领导边摸边吃奶边做爽在线观看 | 亚洲综合伊人久久大杳蕉 | 亚洲国产av美女网站 | 国产又粗又硬又大爽黄老大爷视 | 97人妻精品一区二区三区 | 中国大陆精品视频xxxx | 亚洲人成网站免费播放 | 亚洲乱码日产精品bd | 久久无码人妻影院 | 无遮挡国产高潮视频免费观看 | 55夜色66夜色国产精品视频 | 国精品人妻无码一区二区三区蜜柚 | 中文字幕av日韩精品一区二区 | 中文字幕乱码亚洲无线三区 | 内射白嫩少妇超碰 | 国产精品18久久久久久麻辣 | 国产精品99爱免费视频 | 国产精品人妻一区二区三区四 | 男女爱爱好爽视频免费看 | 成在人线av无码免观看麻豆 | 久久熟妇人妻午夜寂寞影院 | 国产猛烈高潮尖叫视频免费 | 99国产精品白浆在线观看免费 | 日本乱偷人妻中文字幕 | 国产精品igao视频网 | 亚洲中文字幕无码中文字在线 | 性色av无码免费一区二区三区 | 免费看男女做好爽好硬视频 | 无码福利日韩神码福利片 | 国产精品久久久一区二区三区 | 精品一区二区三区波多野结衣 | 亚洲 欧美 激情 小说 另类 | 性色欲网站人妻丰满中文久久不卡 | 免费网站看v片在线18禁无码 | 午夜免费福利小电影 | 两性色午夜视频免费播放 | 亚洲国产精品无码久久久久高潮 | 亚洲日韩av一区二区三区中文 | 日日夜夜撸啊撸 | 日韩欧美群交p片內射中文 | 嫩b人妻精品一区二区三区 | 亚洲人成影院在线无码按摩店 | 特黄特色大片免费播放器图片 | 国产真人无遮挡作爱免费视频 | 中文字幕无码人妻少妇免费 | 十八禁视频网站在线观看 | 国产乡下妇女做爰 | 欧美人与动性行为视频 | av在线亚洲欧洲日产一区二区 | 成人欧美一区二区三区黑人免费 | 黑人巨大精品欧美一区二区 | 中文精品久久久久人妻不卡 | 装睡被陌生人摸出水好爽 | 国产精品成人av在线观看 | 天天躁夜夜躁狠狠是什么心态 | 久久无码人妻影院 | 国内老熟妇对白xxxxhd | 熟女少妇在线视频播放 | av在线亚洲欧洲日产一区二区 | 午夜男女很黄的视频 | 丝袜足控一区二区三区 | 欧美三级a做爰在线观看 | 国产av剧情md精品麻豆 | 最近免费中文字幕中文高清百度 | 午夜成人1000部免费视频 | 狂野欧美性猛交免费视频 | 国产精品内射视频免费 | 久久综合色之久久综合 | 成人无码精品一区二区三区 | 国产精品无码一区二区三区不卡 | 精品国产成人一区二区三区 | 久久视频在线观看精品 | 沈阳熟女露脸对白视频 | 国产精品亚洲综合色区韩国 | 我要看www免费看插插视频 | 亚洲中文字幕无码中文字在线 | 中文字幕无码免费久久9一区9 | 国精产品一品二品国精品69xx | 欧美三级不卡在线观看 | 草草网站影院白丝内射 | 亚洲欧美精品aaaaaa片 | 青青久在线视频免费观看 | 爆乳一区二区三区无码 | 无码人妻少妇伦在线电影 | 欧美日韩在线亚洲综合国产人 | 国产极品美女高潮无套在线观看 | 亚洲阿v天堂在线 | 精品国精品国产自在久国产87 | 久久国产精品_国产精品 | 亚洲熟妇色xxxxx亚洲 | 日韩精品久久久肉伦网站 | 天天综合网天天综合色 | 无码午夜成人1000部免费视频 | 国产福利视频一区二区 | 国产午夜亚洲精品不卡下载 | 午夜精品久久久久久久久 | 久久人人爽人人人人片 | 东京一本一道一二三区 | 天下第一社区视频www日本 | 一本久道久久综合婷婷五月 | 精品人妻av区 | 国产成人精品优优av | 麻豆成人精品国产免费 | 国产精品无码一区二区桃花视频 | 亚洲精品一区二区三区在线 | 图片区 小说区 区 亚洲五月 | 成人免费无码大片a毛片 | 人人爽人人澡人人高潮 | 亚洲色成人中文字幕网站 | 国产欧美亚洲精品a | 久久精品国产99精品亚洲 | 18禁黄网站男男禁片免费观看 | 国产手机在线αⅴ片无码观看 | 国产两女互慰高潮视频在线观看 | 国产一精品一av一免费 | 国产在线aaa片一区二区99 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产激情无码一区二区 | 美女毛片一区二区三区四区 | 国产熟妇另类久久久久 | 亚洲精品成a人在线观看 | 天堂久久天堂av色综合 | 最新国产麻豆aⅴ精品无码 | 国产午夜手机精彩视频 | 久久五月精品中文字幕 | 亚洲欧美日韩综合久久久 | 亚洲啪av永久无码精品放毛片 | 在线а√天堂中文官网 | 久久久久久久久888 | 国产精品久久久久久亚洲影视内衣 | 97久久国产亚洲精品超碰热 | 亚洲人成网站在线播放942 | 久久久精品成人免费观看 | 乱码av麻豆丝袜熟女系列 | 乱人伦人妻中文字幕无码 | 亚洲欧美日韩国产精品一区二区 | 女人色极品影院 | 最近中文2019字幕第二页 | 无码中文字幕色专区 | 特级做a爰片毛片免费69 | 国产精品人妻一区二区三区四 | 一区二区传媒有限公司 | 国产精品久久久 | 日日夜夜撸啊撸 | 国色天香社区在线视频 | 玩弄中年熟妇正在播放 | 国产成人综合色在线观看网站 | 精品久久综合1区2区3区激情 | 国产精品爱久久久久久久 | 国产精品igao视频网 | 国产精品久久久久久亚洲影视内衣 | 激情内射日本一区二区三区 | 人人妻人人藻人人爽欧美一区 | 中文字幕日韩精品一区二区三区 | 亚洲色大成网站www | 精品无码av一区二区三区 | 国产精品久久久久影院嫩草 | 午夜无码人妻av大片色欲 | 精品人妻中文字幕有码在线 | 日本熟妇人妻xxxxx人hd | 99视频精品全部免费免费观看 | 在线观看欧美一区二区三区 | 无码播放一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 精品无码一区二区三区爱欲 | 美女毛片一区二区三区四区 | 国产午夜亚洲精品不卡下载 | 377p欧洲日本亚洲大胆 | 欧美日本精品一区二区三区 | 两性色午夜视频免费播放 | 天堂一区人妻无码 | 帮老师解开蕾丝奶罩吸乳网站 | 未满成年国产在线观看 | 少妇无套内谢久久久久 | 色诱久久久久综合网ywww | 久久人妻内射无码一区三区 | 日韩av无码一区二区三区不卡 | 精品久久8x国产免费观看 | 中文字幕人成乱码熟女app | 亚洲 日韩 欧美 成人 在线观看 | 小sao货水好多真紧h无码视频 | 一区二区传媒有限公司 | 欧美日本免费一区二区三区 | 四十如虎的丰满熟妇啪啪 | 中文字幕人妻无码一区二区三区 | 好男人社区资源 | 日本欧美一区二区三区乱码 | 亚洲国产高清在线观看视频 | 国产成人无码av片在线观看不卡 | 国产在线aaa片一区二区99 | 国产两女互慰高潮视频在线观看 | 欧美性生交活xxxxxdddd | av无码不卡在线观看免费 | 夜夜高潮次次欢爽av女 | 黑人巨大精品欧美一区二区 | 伊人久久大香线蕉午夜 | 久久综合激激的五月天 | 欧美xxxx黑人又粗又长 | 日韩无套无码精品 | 中文无码伦av中文字幕 | 国产精品久久久 | 极品尤物被啪到呻吟喷水 | 国产精品久久久久久无码 | 亚洲精品久久久久久一区二区 | 5858s亚洲色大成网站www | 日韩视频 中文字幕 视频一区 | 九九综合va免费看 | 国产精品美女久久久 | 国产精品福利视频导航 | 在线看片无码永久免费视频 | 精品夜夜澡人妻无码av蜜桃 | 成人一在线视频日韩国产 | 在线 国产 欧美 亚洲 天堂 | 久久久精品456亚洲影院 | 99久久人妻精品免费一区 | 在线精品亚洲一区二区 | 大地资源中文第3页 | 99视频精品全部免费免费观看 | 一二三四社区在线中文视频 | 蜜桃视频插满18在线观看 | 精品久久久无码人妻字幂 | 成熟女人特级毛片www免费 | 精品国产乱码久久久久乱码 | 久久人妻内射无码一区三区 | 亚洲国产欧美在线成人 | 波多野结衣高清一区二区三区 | 亚洲人成网站免费播放 | 国产精品手机免费 | 网友自拍区视频精品 | 国产情侣作爱视频免费观看 | 国产成人无码区免费内射一片色欲 | 牛和人交xxxx欧美 | 久久无码中文字幕免费影院蜜桃 | 日韩成人一区二区三区在线观看 | 波多野结衣av在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 欧美人与牲动交xxxx | 亚洲国产高清在线观看视频 | 久久精品视频在线看15 | 丁香花在线影院观看在线播放 | 十八禁视频网站在线观看 | 高清不卡一区二区三区 | 久久天天躁夜夜躁狠狠 | 日日夜夜撸啊撸 | 国产精品二区一区二区aⅴ污介绍 | 久久综合狠狠综合久久综合88 | 亚洲天堂2017无码中文 | 欧美日本日韩 | 曰韩少妇内射免费播放 | 88国产精品欧美一区二区三区 | 精品国产精品久久一区免费式 | 久久国内精品自在自线 | 欧美阿v高清资源不卡在线播放 | 中文字幕av无码一区二区三区电影 | 黑人巨大精品欧美一区二区 | 欧美人与善在线com | 欧美高清在线精品一区 | 鲁鲁鲁爽爽爽在线视频观看 | 在教室伦流澡到高潮hnp视频 | 性开放的女人aaa片 | 国产在线无码精品电影网 | 国内精品人妻无码久久久影院蜜桃 | 免费网站看v片在线18禁无码 | 亚洲爆乳大丰满无码专区 | 黄网在线观看免费网站 | 精品熟女少妇av免费观看 | 日韩人妻系列无码专区 | 人人爽人人爽人人片av亚洲 | 精品少妇爆乳无码av无码专区 | 四虎永久在线精品免费网址 | 日本精品人妻无码免费大全 | 亚洲日韩av一区二区三区四区 | 中文字幕无码视频专区 | 日韩无套无码精品 | 在线亚洲高清揄拍自拍一品区 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕无码av激情不卡 | 蜜桃视频插满18在线观看 | 无遮挡国产高潮视频免费观看 | 强伦人妻一区二区三区视频18 | 好男人www社区 | 亚洲欧美日韩国产精品一区二区 | 一区二区三区高清视频一 | 国产又粗又硬又大爽黄老大爷视 | 国产女主播喷水视频在线观看 | 无码乱肉视频免费大全合集 | 亚洲色欲色欲欲www在线 | 网友自拍区视频精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品二区一区二区aⅴ污介绍 | 国产亚洲精品久久久久久大师 | 国内综合精品午夜久久资源 | 国产精品igao视频网 | 无码人中文字幕 | 俺去俺来也在线www色官网 | 又大又紧又粉嫩18p少妇 | 四十如虎的丰满熟妇啪啪 | 免费男性肉肉影院 | 波多野结衣aⅴ在线 | 狠狠躁日日躁夜夜躁2020 | 亚洲精品一区二区三区婷婷月 | 久久亚洲日韩精品一区二区三区 | 最近的中文字幕在线看视频 | 国产电影无码午夜在线播放 | 日本爽爽爽爽爽爽在线观看免 | 欧美人与牲动交xxxx | 色噜噜亚洲男人的天堂 | 亚洲国产欧美在线成人 | 高潮喷水的毛片 | 国产精品久久久久无码av色戒 | 久久久久99精品国产片 | 亚洲毛片av日韩av无码 | 国内老熟妇对白xxxxhd | 亚洲中文字幕在线无码一区二区 | 少妇无码av无码专区在线观看 | 99久久精品国产一区二区蜜芽 | 日韩精品a片一区二区三区妖精 | 国产sm调教视频在线观看 | 中文字幕乱码人妻无码久久 | 蜜臀av在线播放 久久综合激激的五月天 | 欧美色就是色 | 野外少妇愉情中文字幕 | 亚洲精品一区国产 | 18禁止看的免费污网站 | 又大又紧又粉嫩18p少妇 | 国内丰满熟女出轨videos | 国产精品亚洲а∨无码播放麻豆 | 国产亚洲日韩欧美另类第八页 | 人妻少妇精品久久 | 天堂在线观看www | 色偷偷人人澡人人爽人人模 | 亚洲aⅴ无码成人网站国产app | 中文字幕无码乱人伦 | 少妇无套内谢久久久久 | 狠狠色噜噜狠狠狠7777奇米 | 最新国产麻豆aⅴ精品无码 | 亚洲无人区午夜福利码高清完整版 | 99久久99久久免费精品蜜桃 | 国产99久久精品一区二区 | 国产欧美精品一区二区三区 | 无码成人精品区在线观看 | 精品厕所偷拍各类美女tp嘘嘘 | 国产午夜手机精彩视频 | 东京热无码av男人的天堂 | 国产精品99爱免费视频 | 欧美黑人性暴力猛交喷水 | 在线天堂新版最新版在线8 | 国产乱码精品一品二品 | 日韩精品无码免费一区二区三区 | 日韩av无码一区二区三区 | 亚洲第一无码av无码专区 | 夜精品a片一区二区三区无码白浆 | 亚洲精品一区国产 | 精品国产福利一区二区 | 国产成人精品一区二区在线小狼 | 欧美人与禽zoz0性伦交 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲综合无码久久精品综合 | 精品欧美一区二区三区久久久 | 国产精品久久久久久亚洲毛片 | 亚洲人亚洲人成电影网站色 | 国产精品高潮呻吟av久久 | 欧美亚洲国产一区二区三区 | 日本精品高清一区二区 | 午夜精品久久久久久久 | 7777奇米四色成人眼影 | 男女爱爱好爽视频免费看 | 婷婷丁香五月天综合东京热 | 国产两女互慰高潮视频在线观看 | aa片在线观看视频在线播放 | 日本一卡二卡不卡视频查询 | 日本熟妇浓毛 | 欧美zoozzooz性欧美 | 午夜福利一区二区三区在线观看 | 国产精华av午夜在线观看 | 波多野结衣高清一区二区三区 | 国精产品一区二区三区 | 国内揄拍国内精品少妇国语 | 日日夜夜撸啊撸 | 啦啦啦www在线观看免费视频 | 给我免费的视频在线观看 | 亚洲国产精品美女久久久久 | 久久国产精品_国产精品 | 精品国产精品久久一区免费式 | 1000部夫妻午夜免费 | 在线 国产 欧美 亚洲 天堂 | 欧美激情内射喷水高潮 | 天堂久久天堂av色综合 | 一本大道久久东京热无码av | 国产在线一区二区三区四区五区 | 亚洲码国产精品高潮在线 | 亚洲va欧美va天堂v国产综合 | 国产亚洲美女精品久久久2020 | 天天摸天天碰天天添 | 青草视频在线播放 | 波多野结衣av在线观看 | 波多野结衣av一区二区全免费观看 | 精品偷拍一区二区三区在线看 | 免费无码av一区二区 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲日韩av一区二区三区中文 | 扒开双腿吃奶呻吟做受视频 | 久久久精品456亚洲影院 | 久久综合色之久久综合 | 中文字幕 亚洲精品 第1页 | 2020久久香蕉国产线看观看 | 日韩人妻系列无码专区 | 老子影院午夜精品无码 | 久久久久成人片免费观看蜜芽 | 国产亚av手机在线观看 | 中文亚洲成a人片在线观看 | 最近免费中文字幕中文高清百度 | 爽爽影院免费观看 | 少妇厨房愉情理9仑片视频 | 99久久精品日本一区二区免费 | 亚洲最大成人网站 | 99麻豆久久久国产精品免费 | 无码人妻黑人中文字幕 | 精品久久8x国产免费观看 | 好爽又高潮了毛片免费下载 | 一本久道久久综合狠狠爱 | 狂野欧美激情性xxxx | 久久国产精品_国产精品 | 欧美一区二区三区视频在线观看 | 国产精品久久久久久无码 | 欧美35页视频在线观看 | 欧洲精品码一区二区三区免费看 | 日本高清一区免费中文视频 | 久久久亚洲欧洲日产国码αv | 天天综合网天天综合色 | 国产乱人无码伦av在线a | 国产热a欧美热a在线视频 | 日韩成人一区二区三区在线观看 | 欧美激情内射喷水高潮 | 久久久久久久女国产乱让韩 | 日产精品高潮呻吟av久久 | 免费看少妇作爱视频 | 少妇无套内谢久久久久 | 亚洲人亚洲人成电影网站色 | 青草青草久热国产精品 | 伊人久久婷婷五月综合97色 | 无码av岛国片在线播放 | 日日夜夜撸啊撸 | 国产极品视觉盛宴 | 激情人妻另类人妻伦 | 中文字幕无线码免费人妻 | 国产精品嫩草久久久久 | 18黄暴禁片在线观看 | 精品人妻人人做人人爽 | 精品欧洲av无码一区二区三区 | 无码av中文字幕免费放 | a在线亚洲男人的天堂 | yw尤物av无码国产在线观看 | 伦伦影院午夜理论片 | 色欲人妻aaaaaaa无码 | 国内精品九九久久久精品 | 国产精品久久久一区二区三区 | 日本在线高清不卡免费播放 | 国产深夜福利视频在线 | 97夜夜澡人人爽人人喊中国片 | 亚洲国产欧美国产综合一区 | 亚洲综合另类小说色区 | 色老头在线一区二区三区 | 九九久久精品国产免费看小说 | 免费中文字幕日韩欧美 | 三级4级全黄60分钟 | 男女性色大片免费网站 | 国产午夜亚洲精品不卡 | 无码任你躁久久久久久久 | 国产免费久久久久久无码 | 无码人妻黑人中文字幕 | 无码任你躁久久久久久久 | 国产成人一区二区三区在线观看 | 宝宝好涨水快流出来免费视频 | 丰满妇女强制高潮18xxxx | 学生妹亚洲一区二区 | 疯狂三人交性欧美 | 性色欲网站人妻丰满中文久久不卡 | 精品 日韩 国产 欧美 视频 | 欧美阿v高清资源不卡在线播放 | 中文字幕无码乱人伦 | 亚洲欧洲日本综合aⅴ在线 | 国产性生交xxxxx无码 | 国产特级毛片aaaaaa高潮流水 | 色婷婷av一区二区三区之红樱桃 | 久久伊人色av天堂九九小黄鸭 | 亚洲日韩av一区二区三区四区 | 人妻少妇精品视频专区 | 国产无套粉嫩白浆在线 | 女人被爽到呻吟gif动态图视看 | 强辱丰满人妻hd中文字幕 | 免费观看的无遮挡av | a在线亚洲男人的天堂 | 亚洲国产精品久久久久久 | 亚洲中文字幕av在天堂 | 精品欧洲av无码一区二区三区 | 精品国产一区av天美传媒 | 黑森林福利视频导航 | 人妻少妇被猛烈进入中文字幕 | 无码av中文字幕免费放 | 国产色xx群视频射精 | 好爽又高潮了毛片免费下载 | 中文字幕乱码中文乱码51精品 | 国产无套内射久久久国产 | 亚洲无人区一区二区三区 | 嫩b人妻精品一区二区三区 | 国产精品亚洲а∨无码播放麻豆 | 99久久精品日本一区二区免费 | 大地资源网第二页免费观看 | 伊人久久大香线蕉亚洲 | 丰满肥臀大屁股熟妇激情视频 | 99久久无码一区人妻 | 男人的天堂2018无码 | 亚洲熟妇色xxxxx欧美老妇y | 丰满肥臀大屁股熟妇激情视频 | 欧美老妇与禽交 | 国产精品丝袜黑色高跟鞋 | 高潮喷水的毛片 | 玩弄人妻少妇500系列视频 | 国产在热线精品视频 | 亚洲娇小与黑人巨大交 | 精品无码av一区二区三区 | 久久久久久久女国产乱让韩 | 红桃av一区二区三区在线无码av | 国产莉萝无码av在线播放 | av香港经典三级级 在线 | 亚洲午夜福利在线观看 | 丰满人妻翻云覆雨呻吟视频 | 亚洲中文字幕无码中文字在线 | 国产人妖乱国产精品人妖 | 国产免费观看黄av片 | 丰满人妻精品国产99aⅴ | 动漫av网站免费观看 | 日欧一片内射va在线影院 | 台湾无码一区二区 | 人妻天天爽夜夜爽一区二区 | 人妻无码久久精品人妻 | 内射爽无广熟女亚洲 | 久久久亚洲欧洲日产国码αv | 日韩成人一区二区三区在线观看 | 国产精品无码mv在线观看 | 国产精品久久久久9999小说 | 久久精品国产99久久6动漫 | 国产艳妇av在线观看果冻传媒 | 玩弄人妻少妇500系列视频 | 亚洲码国产精品高潮在线 | 亚洲国产精品毛片av不卡在线 | 熟女少妇在线视频播放 | 国产人妻久久精品二区三区老狼 | 精品久久综合1区2区3区激情 | 最新版天堂资源中文官网 | 中文字幕人妻无码一区二区三区 | 久久久久久久女国产乱让韩 | 国内精品一区二区三区不卡 | 久久国产劲爆∧v内射 | 又大又紧又粉嫩18p少妇 | 亚洲欧美中文字幕5发布 | ass日本丰满熟妇pics | 无遮挡啪啪摇乳动态图 | 人人澡人人透人人爽 | 精品亚洲韩国一区二区三区 | 国产黑色丝袜在线播放 | 永久黄网站色视频免费直播 | 亚洲国产欧美在线成人 | 久9re热视频这里只有精品 | 最新国产乱人伦偷精品免费网站 | 中文精品无码中文字幕无码专区 | 久久久无码中文字幕久... | 午夜肉伦伦影院 | 国内揄拍国内精品人妻 | 国产欧美亚洲精品a | 婷婷六月久久综合丁香 | 97久久国产亚洲精品超碰热 | 久久亚洲中文字幕精品一区 | 波多野42部无码喷潮在线 | 夜夜躁日日躁狠狠久久av | 久久综合狠狠综合久久综合88 | 欧美日韩视频无码一区二区三 | 国产综合久久久久鬼色 | 97夜夜澡人人爽人人喊中国片 | 久久 国产 尿 小便 嘘嘘 | 国产精品.xx视频.xxtv | 九九综合va免费看 | 在线播放亚洲第一字幕 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲男人av天堂午夜在 | 欧美人妻一区二区三区 | 亚洲欧美国产精品久久 | 国产高清av在线播放 | 狠狠噜狠狠狠狠丁香五月 | 久久久成人毛片无码 | 亚洲乱码中文字幕在线 | 男女下面进入的视频免费午夜 | 福利一区二区三区视频在线观看 | 成人性做爰aaa片免费看不忠 | 久久久中文久久久无码 | 国产精品免费大片 | 成人一在线视频日韩国产 | 国产精品高潮呻吟av久久4虎 | 国产成人一区二区三区别 | 国内揄拍国内精品人妻 | 99riav国产精品视频 | 亲嘴扒胸摸屁股激烈网站 | 好爽又高潮了毛片免费下载 | 国产高清av在线播放 | 300部国产真实乱 | 无码国产乱人伦偷精品视频 | 麻豆国产丝袜白领秘书在线观看 | 久久人人爽人人爽人人片ⅴ | 一个人看的www免费视频在线观看 | 蜜桃av抽搐高潮一区二区 | 亚洲精品午夜国产va久久成人 | 国产明星裸体无码xxxx视频 | 国产人妻大战黑人第1集 | 嫩b人妻精品一区二区三区 | 狠狠色欧美亚洲狠狠色www | 午夜丰满少妇性开放视频 | 一本久道久久综合狠狠爱 | 国产人成高清在线视频99最全资源 | 亚洲色无码一区二区三区 | 天堂а√在线中文在线 | 人人妻人人澡人人爽欧美精品 | 欧美激情综合亚洲一二区 | 学生妹亚洲一区二区 | 高潮毛片无遮挡高清免费视频 | 国产成人精品视频ⅴa片软件竹菊 | 国产97在线 | 亚洲 | 中文字幕人成乱码熟女app | 久久久久久九九精品久 | 小sao货水好多真紧h无码视频 | 亚洲精品www久久久 | 欧洲美熟女乱又伦 | 日日摸夜夜摸狠狠摸婷婷 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 中文字幕人成乱码熟女app | 国产无av码在线观看 | 成年女人永久免费看片 | 久久 国产 尿 小便 嘘嘘 | 97精品人妻一区二区三区香蕉 | 中文字幕精品av一区二区五区 | av无码电影一区二区三区 | 中文字幕乱码亚洲无线三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 婷婷色婷婷开心五月四房播播 | 亚洲高清偷拍一区二区三区 | 国产无套粉嫩白浆在线 | 白嫩日本少妇做爰 | 日韩精品无码一区二区中文字幕 | 欧美日本精品一区二区三区 | 黑人巨大精品欧美一区二区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产又爽又黄又刺激的视频 | 久久久av男人的天堂 | 国模大胆一区二区三区 | 国产va免费精品观看 | 亚洲区小说区激情区图片区 | 久久综合激激的五月天 | 蜜臀av在线播放 久久综合激激的五月天 | 人人妻人人澡人人爽人人精品 | 国产人妻精品一区二区三区 | 国产成人综合美国十次 | 又大又紧又粉嫩18p少妇 | 国产精品va在线播放 | 国产97人人超碰caoprom | 国产精品多人p群无码 | 国产精品视频免费播放 | 亚洲va欧美va天堂v国产综合 | 亚洲精品无码国产 | 国产精品久久国产精品99 | 日日天日日夜日日摸 | 两性色午夜免费视频 | 麻豆国产人妻欲求不满谁演的 | 亚洲综合伊人久久大杳蕉 | 一本大道伊人av久久综合 | 扒开双腿疯狂进出爽爽爽视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产又爽又猛又粗的视频a片 | 欧美激情一区二区三区成人 | 给我免费的视频在线观看 | 亚洲伊人久久精品影院 | 天天综合网天天综合色 | 爽爽影院免费观看 | 领导边摸边吃奶边做爽在线观看 | 97无码免费人妻超级碰碰夜夜 | 国产做国产爱免费视频 | 国产成人无码av片在线观看不卡 | 精品一区二区不卡无码av | 天干天干啦夜天干天2017 | 午夜成人1000部免费视频 | 欧美放荡的少妇 | 国产真实乱对白精彩久久 | 久久97精品久久久久久久不卡 | 亚洲中文字幕在线无码一区二区 | 国产亚洲美女精品久久久2020 | 日韩欧美中文字幕在线三区 | 亚洲精品中文字幕乱码 | 亚洲熟妇色xxxxx亚洲 | 成 人 免费观看网站 | 亚洲精品成人福利网站 | 纯爱无遮挡h肉动漫在线播放 | 欧美三级a做爰在线观看 | 国产97人人超碰caoprom | 欧美一区二区三区视频在线观看 | 久久久av男人的天堂 | 成 人 免费观看网站 | 中文字幕av日韩精品一区二区 | 亚洲午夜无码久久 | 亚洲熟妇自偷自拍另类 | 色综合久久久无码网中文 | 老子影院午夜伦不卡 | 精品久久久久久人妻无码中文字幕 | 国语自产偷拍精品视频偷 | 亚洲一区二区三区偷拍女厕 | 国产精品办公室沙发 | 在线看片无码永久免费视频 | 日产精品高潮呻吟av久久 | 人妻少妇被猛烈进入中文字幕 | 香蕉久久久久久av成人 | 精品aⅴ一区二区三区 | 偷窥日本少妇撒尿chinese | 国产精品无码一区二区桃花视频 | 久久国产精品_国产精品 | 领导边摸边吃奶边做爽在线观看 | 日本一区二区更新不卡 | 人人妻人人澡人人爽欧美一区 | 国产午夜手机精彩视频 | 99久久人妻精品免费一区 | 国产成人综合色在线观看网站 | 中文字幕无码免费久久9一区9 | 呦交小u女精品视频 | 麻豆人妻少妇精品无码专区 | 少妇被黑人到高潮喷出白浆 | 无套内射视频囯产 | 亚洲最大成人网站 | 国产午夜手机精彩视频 | 久在线观看福利视频 | 国产成人无码av一区二区 | 中文精品久久久久人妻不卡 | 国产绳艺sm调教室论坛 | 男人扒开女人内裤强吻桶进去 | 内射巨臀欧美在线视频 | 在线视频网站www色 | 国产精品无码久久av | 欧美性猛交xxxx富婆 | 成人一区二区免费视频 | 日韩精品乱码av一区二区 | 亚洲一区二区三区国产精华液 | 又大又紧又粉嫩18p少妇 | 人人爽人人澡人人人妻 | 欧美日韩亚洲国产精品 | 日韩精品a片一区二区三区妖精 | 人妻尝试又大又粗久久 | 男女作爱免费网站 | 午夜福利一区二区三区在线观看 | 国产av一区二区精品久久凹凸 | 无遮挡啪啪摇乳动态图 | 免费播放一区二区三区 | 九九久久精品国产免费看小说 | 国精产品一品二品国精品69xx | 正在播放东北夫妻内射 | 无码国内精品人妻少妇 | 久久亚洲a片com人成 | 中文精品久久久久人妻不卡 | 牲欲强的熟妇农村老妇女 | 丰满少妇高潮惨叫视频 | 无人区乱码一区二区三区 | 性生交大片免费看l | 18禁黄网站男男禁片免费观看 | 精品国产国产综合精品 | 最近中文2019字幕第二页 | 少妇久久久久久人妻无码 | 免费观看又污又黄的网站 | 少妇无码一区二区二三区 | 真人与拘做受免费视频 | 精品无码国产一区二区三区av | 国产精品美女久久久网av | 国产香蕉97碰碰久久人人 | 天堂无码人妻精品一区二区三区 | 国产激情艳情在线看视频 | 男人的天堂2018无码 | 亚洲国产综合无码一区 | 色婷婷av一区二区三区之红樱桃 | 乌克兰少妇性做爰 | 性开放的女人aaa片 | 激情内射日本一区二区三区 | 久久99精品国产.久久久久 | 色欲综合久久中文字幕网 | 搡女人真爽免费视频大全 | 一本色道婷婷久久欧美 | 久久久久成人精品免费播放动漫 | 国产欧美熟妇另类久久久 | 男女猛烈xx00免费视频试看 | 成人aaa片一区国产精品 | 少妇无码av无码专区在线观看 | 日本精品高清一区二区 | 精品国产av色一区二区深夜久久 | 国产成人无码一二三区视频 | 性做久久久久久久久 | 精品无码国产一区二区三区av | 日本一区二区三区免费播放 | av无码电影一区二区三区 | 色偷偷人人澡人人爽人人模 | 一本色道久久综合亚洲精品不卡 | 亚洲自偷自偷在线制服 | 亚洲一区二区三区 | 久久精品人人做人人综合试看 | 中文字幕无码热在线视频 | 天天拍夜夜添久久精品 | 日日天日日夜日日摸 | 18无码粉嫩小泬无套在线观看 | 乱人伦人妻中文字幕无码久久网 | 少妇无码一区二区二三区 | 国产成人无码av片在线观看不卡 | 日韩 欧美 动漫 国产 制服 | 日韩无码专区 | 99久久99久久免费精品蜜桃 | 在线成人www免费观看视频 | 午夜肉伦伦影院 | 国产免费观看黄av片 | 成人毛片一区二区 | 亚洲成色www久久网站 | 强辱丰满人妻hd中文字幕 | 麻花豆传媒剧国产免费mv在线 | 大地资源网第二页免费观看 | www国产亚洲精品久久久日本 | 国产激情综合五月久久 | 国产成人综合色在线观看网站 | 99精品国产综合久久久久五月天 | 鲁鲁鲁爽爽爽在线视频观看 | 扒开双腿疯狂进出爽爽爽视频 | 蜜臀aⅴ国产精品久久久国产老师 | 97久久国产亚洲精品超碰热 | 色窝窝无码一区二区三区色欲 | 国产一区二区三区日韩精品 | 亚洲毛片av日韩av无码 | 狠狠cao日日穞夜夜穞av | 娇妻被黑人粗大高潮白浆 | 漂亮人妻洗澡被公强 日日躁 | 大肉大捧一进一出视频出来呀 | 福利一区二区三区视频在线观看 | 久久人人爽人人爽人人片av高清 | 亚洲色大成网站www | 无套内射视频囯产 | 亚洲色www成人永久网址 | 国产激情无码一区二区app | 成人免费无码大片a毛片 | 乱人伦中文视频在线观看 | 亚洲国产精品久久久天堂 | 成人女人看片免费视频放人 | 欧美35页视频在线观看 | 在线播放亚洲第一字幕 | www国产亚洲精品久久网站 | 日韩精品成人一区二区三区 | 成人性做爰aaa片免费看不忠 | 在线播放亚洲第一字幕 | 无码精品人妻一区二区三区av | 精品乱码久久久久久久 | 成人动漫在线观看 | 亚洲另类伦春色综合小说 | 天堂а√在线中文在线 | 性做久久久久久久久 | 日韩精品无码免费一区二区三区 | 国产情侣作爱视频免费观看 | 中文无码成人免费视频在线观看 | 日韩成人一区二区三区在线观看 | 波多野结衣av一区二区全免费观看 | 成熟妇人a片免费看网站 | 又黄又爽又色的视频 | 俺去俺来也www色官网 | 亚洲第一网站男人都懂 | 熟妇人妻无码xxx视频 | 日日碰狠狠丁香久燥 | 中文字幕精品av一区二区五区 | 老熟女重囗味hdxx69 | 日日麻批免费40分钟无码 | 荫蒂添的好舒服视频囗交 | 激情内射日本一区二区三区 | 中文字幕无码av激情不卡 | 日本精品少妇一区二区三区 | 亚洲阿v天堂在线 | 麻豆果冻传媒2021精品传媒一区下载 | 国产内射老熟女aaaa | 久久久精品成人免费观看 | 日本熟妇大屁股人妻 | 成人无码影片精品久久久 | 亚洲欧洲中文日韩av乱码 | 亚洲热妇无码av在线播放 | www国产亚洲精品久久网站 | 欧美乱妇无乱码大黄a片 | 美女扒开屁股让男人桶 | 熟妇人妻中文av无码 | 婷婷综合久久中文字幕蜜桃三电影 | 少女韩国电视剧在线观看完整 | 久久精品视频在线看15 | 蜜桃av抽搐高潮一区二区 | 天堂无码人妻精品一区二区三区 | 欧美日本精品一区二区三区 | 欧美日韩人成综合在线播放 | 日韩精品乱码av一区二区 | 国产色精品久久人妻 | 精品久久久中文字幕人妻 | 精品无人区无码乱码毛片国产 | 国产成人精品一区二区在线小狼 | 亚洲伊人久久精品影院 | 亚洲一区二区三区在线观看网站 | 国产明星裸体无码xxxx视频 | 无码人妻丰满熟妇区五十路百度 | 欧美人妻一区二区三区 | 久久久久亚洲精品中文字幕 | 亚洲色偷偷偷综合网 | 99久久精品无码一区二区毛片 | 人妻无码久久精品人妻 | 国产精品丝袜黑色高跟鞋 | 成年女人永久免费看片 | 久久 国产 尿 小便 嘘嘘 | 一个人看的www免费视频在线观看 | 在线观看国产一区二区三区 | 欧美日韩亚洲国产精品 | 正在播放东北夫妻内射 | 欧美日韩一区二区综合 | 午夜精品一区二区三区在线观看 | 久久久久久久人妻无码中文字幕爆 | 精品少妇爆乳无码av无码专区 | 真人与拘做受免费视频 | 中文无码成人免费视频在线观看 | 蜜桃视频韩日免费播放 | 成人无码影片精品久久久 | 国产精品高潮呻吟av久久4虎 | 亚洲精品久久久久久一区二区 | 日本成熟视频免费视频 | 中文字幕乱妇无码av在线 | 国产成人无码午夜视频在线观看 | 中文字幕 人妻熟女 | 两性色午夜视频免费播放 | 野狼第一精品社区 | 一本无码人妻在中文字幕免费 | 少妇人妻偷人精品无码视频 | 一本无码人妻在中文字幕免费 | 国产高清不卡无码视频 | 网友自拍区视频精品 | 夜夜影院未满十八勿进 | 亚洲日本一区二区三区在线 | 国产精品无码久久av | 帮老师解开蕾丝奶罩吸乳网站 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲gv猛男gv无码男同 | 亚洲大尺度无码无码专区 | 在教室伦流澡到高潮hnp视频 | 亚洲乱码国产乱码精品精 | 国产精品香蕉在线观看 | 久久精品女人天堂av免费观看 | 亚洲精品综合五月久久小说 | 麻豆国产97在线 | 欧洲 | 熟女少妇人妻中文字幕 | 久久熟妇人妻午夜寂寞影院 | 国产成人无码午夜视频在线观看 | 成人影院yy111111在线观看 | 奇米影视888欧美在线观看 | 伊人久久大香线蕉午夜 | 国产综合在线观看 | 午夜福利电影 | 国内精品一区二区三区不卡 | 久久久精品人妻久久影视 | 色欲综合久久中文字幕网 | 亚洲日本va午夜在线电影 | 天堂在线观看www | 夜先锋av资源网站 | 国内精品一区二区三区不卡 | 又黄又爽又色的视频 | 荫蒂添的好舒服视频囗交 | 国模大胆一区二区三区 | 国产亚洲精品久久久久久久久动漫 | 99精品国产综合久久久久五月天 | 377p欧洲日本亚洲大胆 | 久久精品女人天堂av免费观看 | 午夜无码区在线观看 | 国产成人无码av一区二区 | 欧美日韩在线亚洲综合国产人 | 国产成人无码专区 | 精品久久久久久亚洲精品 | 久久午夜无码鲁丝片秋霞 | 日日碰狠狠躁久久躁蜜桃 | 国产美女精品一区二区三区 | 熟女少妇人妻中文字幕 | 亚洲性无码av中文字幕 | 夜精品a片一区二区三区无码白浆 | 人人澡人摸人人添 | 久久精品一区二区三区四区 | 好爽又高潮了毛片免费下载 | 少妇久久久久久人妻无码 | 中国女人内谢69xxxxxa片 | 国产莉萝无码av在线播放 | √天堂中文官网8在线 | 亚洲午夜福利在线观看 | 女人被男人爽到呻吟的视频 | 俺去俺来也www色官网 | 黑人大群体交免费视频 | 色婷婷欧美在线播放内射 | 亚洲欧美色中文字幕在线 | 久久精品中文字幕一区 | 国产精品人妻一区二区三区四 | 又大又硬又爽免费视频 | 欧美性猛交内射兽交老熟妇 | 高中生自慰www网站 | 久久综合久久自在自线精品自 | 国产精品人人爽人人做我的可爱 | av在线亚洲欧洲日产一区二区 | 国产suv精品一区二区五 | 亚洲精品午夜无码电影网 | 东京一本一道一二三区 | 51国偷自产一区二区三区 | 国产色xx群视频射精 | 激情五月综合色婷婷一区二区 | 免费播放一区二区三区 | 内射爽无广熟女亚洲 | 成人欧美一区二区三区黑人免费 | 精品厕所偷拍各类美女tp嘘嘘 | 久久久av男人的天堂 | 最新国产麻豆aⅴ精品无码 | 曰本女人与公拘交酡免费视频 | 欧美 日韩 人妻 高清 中文 | 国产亚洲欧美日韩亚洲中文色 | 狠狠色色综合网站 | 国产综合色产在线精品 | 亚洲精品一区二区三区四区五区 | 国产亚洲精品久久久久久大师 | 亚洲精品一区二区三区四区五区 | 中文亚洲成a人片在线观看 | 午夜理论片yy44880影院 | 国产精品永久免费视频 | 亚洲精品中文字幕乱码 | 中文字幕av伊人av无码av | 国产亲子乱弄免费视频 | 老司机亚洲精品影院无码 | 亚洲一区二区三区无码久久 | 夜夜躁日日躁狠狠久久av | 久久精品人人做人人综合试看 | 一本大道久久东京热无码av | 亚洲毛片av日韩av无码 | 欧美国产日产一区二区 | 精品国偷自产在线视频 | 亚洲狠狠婷婷综合久久 | 久精品国产欧美亚洲色aⅴ大片 | 国产成人无码专区 | 亚洲精品国偷拍自产在线麻豆 | 精品偷自拍另类在线观看 | 一区二区传媒有限公司 | 狂野欧美激情性xxxx | 日本爽爽爽爽爽爽在线观看免 | 在线播放免费人成毛片乱码 | 亚洲国产精华液网站w | 曰本女人与公拘交酡免费视频 | 久久99精品久久久久久动态图 | 欧美激情综合亚洲一二区 | 精品国产av色一区二区深夜久久 | 久久精品人妻少妇一区二区三区 | 亚洲国产欧美日韩精品一区二区三区 | 午夜精品久久久内射近拍高清 | 中文字幕久久久久人妻 | 一本精品99久久精品77 | 色综合久久久久综合一本到桃花网 | 国产一区二区不卡老阿姨 | 日韩精品a片一区二区三区妖精 | 荫蒂被男人添的好舒服爽免费视频 | 久热国产vs视频在线观看 | 国内少妇偷人精品视频 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲国产av美女网站 | 图片小说视频一区二区 | 无码国模国产在线观看 | 18无码粉嫩小泬无套在线观看 | 婷婷丁香六月激情综合啪 | 天天做天天爱天天爽综合网 | 大肉大捧一进一出好爽视频 | 国产三级精品三级男人的天堂 | 亚洲成a人片在线观看无码3d | 国产成人精品无码播放 | 玩弄少妇高潮ⅹxxxyw | 久久亚洲中文字幕无码 | 国产成人av免费观看 | 亚洲成a人片在线观看日本 | 麻豆人妻少妇精品无码专区 | 夫妻免费无码v看片 | 丝袜美腿亚洲一区二区 | 亚洲成av人片天堂网无码】 | 狠狠色色综合网站 | 学生妹亚洲一区二区 | 人妻少妇精品无码专区动漫 | 成熟人妻av无码专区 | 日本免费一区二区三区最新 | 日韩欧美群交p片內射中文 | 色欲久久久天天天综合网精品 | 国模大胆一区二区三区 | 亚洲精品无码人妻无码 | 97夜夜澡人人双人人人喊 | 六月丁香婷婷色狠狠久久 | 少妇无码av无码专区在线观看 | 奇米影视7777久久精品 | 国产人妻精品一区二区三区 | 亚洲国产精品美女久久久久 | 国产精品理论片在线观看 | 亚洲乱码国产乱码精品精 | 无码国产乱人伦偷精品视频 | 97se亚洲精品一区 | 国产在线一区二区三区四区五区 | 久久久精品456亚洲影院 | 久久久精品成人免费观看 | 国产疯狂伦交大片 | 国产99久久精品一区二区 | 亚洲国产精品久久人人爱 | 波多野42部无码喷潮在线 | 99精品久久毛片a片 | 亚洲午夜无码久久 | 亚洲国精产品一二二线 | 欧美一区二区三区视频在线观看 | 日韩精品成人一区二区三区 | 亚洲成熟女人毛毛耸耸多 | 激情人妻另类人妻伦 | 天天摸天天透天天添 | 亚洲人亚洲人成电影网站色 | 最新国产麻豆aⅴ精品无码 | 欧美第一黄网免费网站 | 日韩无套无码精品 | 人妻少妇精品视频专区 | 国产成人精品一区二区在线小狼 | 亚洲日韩av一区二区三区四区 | 人人爽人人爽人人片av亚洲 | 欧美黑人乱大交 | 漂亮人妻洗澡被公强 日日躁 | 九九综合va免费看 | 精品无人国产偷自产在线 | 老熟妇乱子伦牲交视频 | 天天拍夜夜添久久精品 | 亚洲成av人在线观看网址 | 亚洲国产日韩a在线播放 | 午夜精品久久久久久久 | 成人女人看片免费视频放人 | 在线天堂新版最新版在线8 | 成人试看120秒体验区 | 国产乡下妇女做爰 | 精品人妻人人做人人爽夜夜爽 | av人摸人人人澡人人超碰下载 | 日日摸日日碰夜夜爽av | 波多野结衣高清一区二区三区 | 少女韩国电视剧在线观看完整 | 亚洲欧美国产精品专区久久 | 亚洲熟妇自偷自拍另类 | aⅴ亚洲 日韩 色 图网站 播放 | 亚欧洲精品在线视频免费观看 | 日韩欧美群交p片內射中文 | 国产口爆吞精在线视频 | 蜜臀av在线播放 久久综合激激的五月天 | 欧美日韩一区二区免费视频 | 成人精品视频一区二区三区尤物 | 国产av人人夜夜澡人人爽麻豆 | 波多野42部无码喷潮在线 | 最近中文2019字幕第二页 | 蜜桃视频韩日免费播放 | 久久这里只有精品视频9 | 人妻互换免费中文字幕 | 日本丰满护士爆乳xxxx | 娇妻被黑人粗大高潮白浆 | 丰满护士巨好爽好大乳 | 色婷婷久久一区二区三区麻豆 | av人摸人人人澡人人超碰下载 | 欧美性色19p | 啦啦啦www在线观看免费视频 | 亚洲区欧美区综合区自拍区 | 澳门永久av免费网站 | 成熟人妻av无码专区 | 久久人妻内射无码一区三区 | 久久综合激激的五月天 | 国产精品资源一区二区 | 久久人人爽人人爽人人片ⅴ | 97精品国产97久久久久久免费 | 狠狠亚洲超碰狼人久久 | 国产精品美女久久久网av | 99久久精品无码一区二区毛片 | 亚洲aⅴ无码成人网站国产app | 欧美高清在线精品一区 | 人妻天天爽夜夜爽一区二区 | 国产艳妇av在线观看果冻传媒 | 成年美女黄网站色大免费视频 | 国产在线精品一区二区高清不卡 | 午夜福利不卡在线视频 | 高中生自慰www网站 | 国产av一区二区精品久久凹凸 | 免费观看激色视频网站 | 久久久精品456亚洲影院 | 国产97色在线 | 免 | 1000部啪啪未满十八勿入下载 | 国内精品九九久久久精品 | 夜夜影院未满十八勿进 | 丁香花在线影院观看在线播放 | 美女毛片一区二区三区四区 | 草草网站影院白丝内射 | 久久无码中文字幕免费影院蜜桃 | 国产真人无遮挡作爱免费视频 | 日韩精品成人一区二区三区 | 中国大陆精品视频xxxx | 亚洲精品午夜无码电影网 | 久久亚洲日韩精品一区二区三区 | 国产午夜福利100集发布 | 99国产欧美久久久精品 | 中文字幕无码人妻少妇免费 | 中文字幕无码日韩欧毛 | 国产亚洲美女精品久久久2020 | 精品无码一区二区三区爱欲 | 天天做天天爱天天爽综合网 | 夜精品a片一区二区三区无码白浆 | 精品国产国产综合精品 | 国产亚洲美女精品久久久2020 | 精品国产一区二区三区四区 | 国产一区二区三区影院 | 国产高清av在线播放 | 国产成人精品视频ⅴa片软件竹菊 | 国产成人精品久久亚洲高清不卡 | 亚洲综合精品香蕉久久网 | 国产av无码专区亚洲a∨毛片 | 国产凸凹视频一区二区 | 草草网站影院白丝内射 | 亚洲va中文字幕无码久久不卡 | 欧美性生交xxxxx久久久 | 野外少妇愉情中文字幕 | 亚洲娇小与黑人巨大交 | 高潮喷水的毛片 | 欧美肥老太牲交大战 | 久久久久久久女国产乱让韩 | 欧洲欧美人成视频在线 | 婷婷综合久久中文字幕蜜桃三电影 | 蜜臀av无码人妻精品 | 中文字幕无线码免费人妻 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久久久久国产精品无码下载 | 在线播放无码字幕亚洲 | 久久久久久a亚洲欧洲av冫 | 久久久国产一区二区三区 | 水蜜桃av无码 | 亚洲欧美精品伊人久久 | 女高中生第一次破苞av | 蜜桃臀无码内射一区二区三区 | 18禁黄网站男男禁片免费观看 | 香蕉久久久久久av成人 | 正在播放东北夫妻内射 | 波多野结衣一区二区三区av免费 | 久久综合给合久久狠狠狠97色 | 国产精品亚洲а∨无码播放麻豆 | 欧美兽交xxxx×视频 | 国产午夜福利100集发布 | 伊人久久大香线蕉av一区二区 | 思思久久99热只有频精品66 | 激情亚洲一区国产精品 | 久久久久国色av免费观看性色 | 精品人妻av区 | 少妇被粗大的猛进出69影院 | 东京热无码av男人的天堂 | 亚洲国产日韩a在线播放 | 色偷偷人人澡人人爽人人模 | 俺去俺来也www色官网 | 亚洲aⅴ无码成人网站国产app | aa片在线观看视频在线播放 | 美女扒开屁股让男人桶 | 午夜精品一区二区三区在线观看 | a在线亚洲男人的天堂 | 在线亚洲高清揄拍自拍一品区 | 一本久道久久综合婷婷五月 | 国产成人无码区免费内射一片色欲 | 久久综合激激的五月天 | 国产精品怡红院永久免费 | 亚洲精品综合一区二区三区在线 | 亚洲国产综合无码一区 | 亚洲gv猛男gv无码男同 | 国产在线精品一区二区高清不卡 | 无码av免费一区二区三区试看 | 国产绳艺sm调教室论坛 | 国产精品久久久久7777 | 日韩欧美成人免费观看 | 99精品国产综合久久久久五月天 | 国产日产欧产精品精品app | 男女下面进入的视频免费午夜 | 国产精品对白交换视频 | 成人欧美一区二区三区黑人免费 | 18禁黄网站男男禁片免费观看 | 国色天香社区在线视频 | 小泽玛莉亚一区二区视频在线 | 99久久久无码国产aaa精品 | 亚洲国产一区二区三区在线观看 | 图片区 小说区 区 亚洲五月 | 日日碰狠狠丁香久燥 | 国产另类ts人妖一区二区 | 又湿又紧又大又爽a视频国产 | 丝袜美腿亚洲一区二区 | 日韩亚洲欧美中文高清在线 | 一个人免费观看的www视频 | 在教室伦流澡到高潮hnp视频 | 久久精品人妻少妇一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 国产后入清纯学生妹 | 欧美日韩一区二区免费视频 | 久久久精品成人免费观看 | 99久久精品国产一区二区蜜芽 | 奇米影视7777久久精品 | 久久久精品国产sm最大网站 | 国产一区二区三区日韩精品 | av小次郎收藏 | 久久久久免费看成人影片 | 成 人 网 站国产免费观看 | 国产午夜无码精品免费看 | 图片区 小说区 区 亚洲五月 | 人人澡人人妻人人爽人人蜜桃 | 高潮毛片无遮挡高清免费视频 | av人摸人人人澡人人超碰下载 | 亚洲成a人片在线观看无码 | 久久综合九色综合97网 | 玩弄中年熟妇正在播放 | 成人欧美一区二区三区黑人 | 亚洲精品中文字幕乱码 | 无码av中文字幕免费放 | 动漫av网站免费观看 | 日日躁夜夜躁狠狠躁 | 一本大道伊人av久久综合 | 大胆欧美熟妇xx | 无码人妻av免费一区二区三区 | 国产精品久久久久9999小说 | 午夜精品一区二区三区在线观看 | 国产综合色产在线精品 | aa片在线观看视频在线播放 | 亚洲 a v无 码免 费 成 人 a v | 亚洲毛片av日韩av无码 | 国产激情精品一区二区三区 | 青青草原综合久久大伊人精品 | 性生交片免费无码看人 | 精品无码一区二区三区爱欲 | 亚洲一区av无码专区在线观看 | 青草视频在线播放 | 欧美老熟妇乱xxxxx | √天堂中文官网8在线 | 香蕉久久久久久av成人 | 大地资源中文第3页 | 久久精品无码一区二区三区 | 久久久久se色偷偷亚洲精品av | 一个人看的视频www在线 | 丰满少妇高潮惨叫视频 | 欧美日韩在线亚洲综合国产人 | 亚洲成色www久久网站 | 成在人线av无码免费 | 亚洲区小说区激情区图片区 | 精品无码国产一区二区三区av | 大地资源网第二页免费观看 | 日日干夜夜干 | 无码人妻av免费一区二区三区 | 久久无码专区国产精品s | 日韩亚洲欧美中文高清在线 | 亚洲国产精品一区二区美利坚 | 欧洲精品码一区二区三区免费看 | 亚洲精品久久久久久久久久久 | 成在人线av无码免费 | 日产精品高潮呻吟av久久 | 成人欧美一区二区三区黑人 | 一本久久a久久精品vr综合 | 国产精品嫩草久久久久 | 久久久精品国产sm最大网站 | 欧洲精品码一区二区三区免费看 | 无码av最新清无码专区吞精 | 天堂无码人妻精品一区二区三区 | 久久久av男人的天堂 | 国产精品无码成人午夜电影 | 7777奇米四色成人眼影 | 老熟妇乱子伦牲交视频 | 亚洲热妇无码av在线播放 | 亚洲欧美日韩国产精品一区二区 | 日韩精品无码一区二区中文字幕 | 偷窥村妇洗澡毛毛多 | 午夜无码人妻av大片色欲 | 性做久久久久久久免费看 | 亚洲色欲色欲欲www在线 | 免费观看的无遮挡av | 亚洲精品美女久久久久久久 | 男人扒开女人内裤强吻桶进去 | 亚洲精品一区二区三区四区五区 | 人妻有码中文字幕在线 | 国产suv精品一区二区五 | 乱码午夜-极国产极内射 | 亚洲の无码国产の无码步美 | 中国女人内谢69xxxxxa片 | 樱花草在线播放免费中文 | 日本精品高清一区二区 | 亚洲乱码日产精品bd | 精品国产福利一区二区 | 久激情内射婷内射蜜桃人妖 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产区女主播在线观看 | 丝袜足控一区二区三区 | 免费观看激色视频网站 | 无码一区二区三区在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 国产精品亚洲五月天高清 | 色综合久久久久综合一本到桃花网 | 欧美人与禽猛交狂配 | 久久久久久久人妻无码中文字幕爆 | 国产乱码精品一品二品 | 欧美精品国产综合久久 | 亚洲欧洲中文日韩av乱码 | 亚洲精品综合五月久久小说 | 国产亚洲日韩欧美另类第八页 | 99久久99久久免费精品蜜桃 | 国产综合在线观看 | 久久久久国色av免费观看性色 | 久久99精品国产.久久久久 | a片免费视频在线观看 | 成年女人永久免费看片 | 蜜桃av抽搐高潮一区二区 | 又大又硬又爽免费视频 | 国产黄在线观看免费观看不卡 | 永久免费观看国产裸体美女 | 欧美变态另类xxxx | 久久久婷婷五月亚洲97号色 | 天堂一区人妻无码 | 久久亚洲日韩精品一区二区三区 | 久久精品国产亚洲精品 | 日韩av无码一区二区三区不卡 | 亚洲精品国产a久久久久久 | 中文字幕 亚洲精品 第1页 | 久久久久久av无码免费看大片 | 国産精品久久久久久久 | 国产无套内射久久久国产 | 曰韩无码二三区中文字幕 | 国产明星裸体无码xxxx视频 | 麻豆果冻传媒2021精品传媒一区下载 | 久久久久99精品成人片 | 欧美黑人巨大xxxxx | 精品无码国产自产拍在线观看蜜 | 色偷偷人人澡人人爽人人模 | 久久久久久久久888 | 疯狂三人交性欧美 | 免费网站看v片在线18禁无码 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品人人爽人人做我的可爱 | 超碰97人人做人人爱少妇 | 熟妇人妻无乱码中文字幕 | 久久久久亚洲精品中文字幕 | 一二三四社区在线中文视频 | 熟女体下毛毛黑森林 | 久久久久成人片免费观看蜜芽 | 日日碰狠狠丁香久燥 | 国产亚洲精品久久久久久久 | 少妇被黑人到高潮喷出白浆 | 久久亚洲精品成人无码 | 成人精品一区二区三区中文字幕 | 精品无码国产自产拍在线观看蜜 | 1000部夫妻午夜免费 | 亚洲精品国产品国语在线观看 | 18禁黄网站男男禁片免费观看 | 麻豆国产97在线 | 欧洲 | 国语自产偷拍精品视频偷 | 麻豆果冻传媒2021精品传媒一区下载 | 玩弄人妻少妇500系列视频 | 曰韩无码二三区中文字幕 | 中文字幕av伊人av无码av | 人人妻人人澡人人爽精品欧美 | 色一情一乱一伦 | 日本丰满熟妇videos | 精品国产乱码久久久久乱码 | 欧美精品免费观看二区 | 无码av岛国片在线播放 | 亚洲精品一区二区三区在线观看 | 日韩人妻无码一区二区三区久久99 | 亚洲一区二区三区含羞草 | 久久久久成人精品免费播放动漫 | 国产 浪潮av性色四虎 | av无码电影一区二区三区 | 国产午夜亚洲精品不卡 | 99久久久国产精品无码免费 | 国产成人一区二区三区别 | 男人扒开女人内裤强吻桶进去 | 欧美猛少妇色xxxxx | 67194成是人免费无码 | 正在播放东北夫妻内射 | 亚洲日韩av一区二区三区中文 | 国内老熟妇对白xxxxhd | 无套内谢老熟女 | 无码精品国产va在线观看dvd | 欧美人与物videos另类 | 内射老妇bbwx0c0ck | 中文字幕乱码中文乱码51精品 | 亚洲国产一区二区三区在线观看 | 波多野结衣av一区二区全免费观看 | 亚洲精品无码国产 | 亚洲综合伊人久久大杳蕉 | 亚洲s码欧洲m码国产av | 无码人妻精品一区二区三区下载 | 日日躁夜夜躁狠狠躁 | 久久亚洲国产成人精品性色 | 98国产精品综合一区二区三区 | 成人女人看片免费视频放人 | 亚洲精品一区三区三区在线观看 | 亚洲国产精品一区二区第一页 | 无套内射视频囯产 | 老熟妇仑乱视频一区二区 | 久久国内精品自在自线 | 伊人久久大香线蕉午夜 | 扒开双腿吃奶呻吟做受视频 | 亚洲啪av永久无码精品放毛片 | 色五月五月丁香亚洲综合网 | 人妻少妇精品无码专区动漫 | 伊人久久大香线蕉亚洲 | 国产三级久久久精品麻豆三级 | 日日麻批免费40分钟无码 | 欧美老妇交乱视频在线观看 | 大胆欧美熟妇xx | 国产欧美熟妇另类久久久 | 久久综合香蕉国产蜜臀av | 欧美高清在线精品一区 | 激情爆乳一区二区三区 | 国产精品多人p群无码 | 高潮毛片无遮挡高清免费视频 | 国产三级精品三级男人的天堂 | 一个人看的视频www在线 | 国产综合在线观看 | 欧美怡红院免费全部视频 | 性做久久久久久久久 | 98国产精品综合一区二区三区 | 亚洲精品一区二区三区在线观看 | 初尝人妻少妇中文字幕 | 久久国产36精品色熟妇 | 夜精品a片一区二区三区无码白浆 | 97色伦图片97综合影院 | 无人区乱码一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 国产精品人妻一区二区三区四 | 少妇无码av无码专区在线观看 | 亚洲 欧美 激情 小说 另类 | 欧洲美熟女乱又伦 | 国产精品二区一区二区aⅴ污介绍 | 亚洲区欧美区综合区自拍区 | 国产精品亚洲专区无码不卡 | 国产成人精品视频ⅴa片软件竹菊 | 日韩av无码中文无码电影 | 亚洲中文字幕无码中字 | 成人三级无码视频在线观看 | 色婷婷久久一区二区三区麻豆 | 成人精品视频一区二区 | 精品偷自拍另类在线观看 | 一本无码人妻在中文字幕免费 | 国产在线一区二区三区四区五区 | 四虎国产精品一区二区 | 久久久久久国产精品无码下载 | 亚洲成av人影院在线观看 | 精品无码成人片一区二区98 | 亚洲人亚洲人成电影网站色 | 久久亚洲精品中文字幕无男同 | 国产成人无码av一区二区 | 亚洲天堂2017无码中文 | 成人免费无码大片a毛片 | 国产精品无码一区二区桃花视频 | 欧美黑人巨大xxxxx | 熟妇女人妻丰满少妇中文字幕 | 久久精品人妻少妇一区二区三区 | 无码午夜成人1000部免费视频 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲熟悉妇女xxx妇女av | 久久久精品人妻久久影视 | 国产无遮挡吃胸膜奶免费看 | 国产精品久久久久久久影院 | 久久综合久久自在自线精品自 | 免费观看又污又黄的网站 | 亚洲午夜无码久久 | 欧洲美熟女乱又伦 | 亚洲a无码综合a国产av中文 | 无码精品人妻一区二区三区av | 亚洲成色www久久网站 | 国产精品国产三级国产专播 | 人人妻人人澡人人爽人人精品浪潮 | 图片区 小说区 区 亚洲五月 | 人妻互换免费中文字幕 | 国产精品内射视频免费 | 人妻aⅴ无码一区二区三区 | 成熟女人特级毛片www免费 | 在线观看国产一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 99久久精品日本一区二区免费 | 国产国语老龄妇女a片 | 女人被男人躁得好爽免费视频 | av在线亚洲欧洲日产一区二区 | 综合人妻久久一区二区精品 | 熟女俱乐部五十路六十路av | 午夜福利一区二区三区在线观看 | 内射爽无广熟女亚洲 | 99久久99久久免费精品蜜桃 | 欧美亚洲国产一区二区三区 | 波多野结衣aⅴ在线 | 俺去俺来也www色官网 | 国产精品久久久久7777 | 国内丰满熟女出轨videos | 18黄暴禁片在线观看 | 人妻少妇被猛烈进入中文字幕 |