日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核启动文档翻译(i386)

發布時間:2024/1/18 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核启动文档翻译(i386) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文檔的翻譯是基于linux內核版本2.6.11.1的,本人英語超難,但是由于學習linux內核代碼也硬著頭皮看英文文檔,看的過程中感覺能夠學到許多東西所以決定發點時間把這篇翻譯下來了,里面很很多的不準確希望大家糾正和指導。希望共同探討和學習,這也是自己學習linux源代碼的一部分內容,接下來會有更多關于這方面的知識和大家分享,包括詳細的內核運行原理和超詳細的內核代碼注釋,期待和大家分享學習過程中的點點滴滴。每天成長一點點嘛!這篇文章雖然不長,但也發了我一天的時間,主要還是因為我英文太差的緣故吧。文章中翻譯不當之處或錯誤還請大家提出來以便我盡快改正和學習。

寫在前面的一點知識:

ramdisk一個作用就是用來解決boot過程中mount根文件系統的先有雞還是先有蛋的問題的。
一般來說,根文件系統在形形色色的存儲設備上,不同的設備又要不同的硬件廠商的驅動,比如intel的南橋自然需要intelide/sata驅動,VIA的南橋需要VIAide/sata驅動,根文件系統也有不同的文件系統的可能,比如ubuntu發行版可能一般用ext3suse可能就不是了,不同的文件系統也需要不同的文件系統模塊;假如把所有驅動/模塊都編譯進內核,那自然沒問題,但是這樣就違背了內核的精神或本質,所以一般來說驅動/模塊都駐留在根文件系統本身上/lib/modules/xxx,那么雞蛋問題就來了,現在要mount根文件系統卻需要根文件系統上的模塊文件,怎么辦?于是,就想出ramdisk,內核總是能安裝ramdisk的,然后把所有可能需要的驅動/模塊都放在ramdisk上,首先,讓內核將ramdisk當作根文件系統來安裝,然后再用這個根文件系統上的驅動來安裝真正的根文件系統,就將這個矛盾問題解決了.

ramdisk還舉出一個作用,現在的發行版在boot時一般都是圖形界面的,那么,ramdisk就可以放framebuffer驅動和一些圖片來做這種簡單的動畫。

說明:文章中的“命令行”都應該是“命令行參數”更好吧。從下面開始是英文和我翻譯中文的對照。

THELINUX/I386BOOTPROTOCOL(Linux/I386啟動協議)

----------------------------

H.PeterAnvin<hpa@zytor.com>(作者郵箱)

Lastupdate2002-01-01(最后更新時間2002-01-01

Onthei386platform,theLinuxkernelusesarathercomplicatedbootconvention.Thishasevolvedpartiallyduetohistoricalaspects,aswellasthedesireintheearlydaystohavethekernelitselfbeabootableimage,thecomplicatedPCmemorymodelandduetochangedexpectationsinthePCindustrycausedbytheeffectivedemiseofreal-modeDOSasamainstreamoperatingsystem.

i386平臺,linux內核使用了一個相當復雜的啟動協議。這個特別的演變是由于歷史各個方面,在早期的愿望是內核本身是可引導的鏡像,復雜的PC機內存模型和由于期望改變在個人計算機產業中有效的終止實模式DOS而作為主流的操作系統。

Currently,fourversionsoftheLinux/i386bootprotocolexist.

當前,四種版本的Linux/i386啟動協議存在。

Oldkernels: zImage/Imagesupportonly.Someveryearlykernelsmaynotevensupportacommandline.

老的內核:zImage/Image格式僅僅被支持。一些非常早的內核甚至可能不支持命令行。

Protocol2.00: (Kernel1.3.73)AddedbzImageandinitrdsupport,aswellasaformalizedwaytocommunicatebetweenthebootloaderandthekernel.setup.Smaderelocatable,althoughthetraditionalsetupareastillassumedwritable.

協議2.00:(Kernel1.3.73)增加了bzImageinitrd支持,以及引導加載程序和內核之間的通信的正式方式。setup.S作出可重定位,盡管傳統setup區域仍假定可寫。

Protocol2.01: (Kernel1.3.76)Addedaheapoverrunwarning.

協議2.01(Kernel1.3.76)添加堆溢出警告

Protocol2.02: (Kernel2.4.0-test3-pre3)Newcommandlineprotocol.Lowertheconventionalmemoryceiling. Nooverwriteofthetraditionalsetuparea,thusmakingbootingsafeforsystemswhichusetheEBDAfromSMMor32-bitBIOSentrypoints.zImagedeprecatedbutstillsupported.

協議2.02:(Kernel2.4.0-test3-pre3)新的命令行協議。降低常規的內存上限。傳統setup區域不能重寫,從而使安全的啟動系統,使用從SMMSystemManagementMode系統管理模式)或32BIOS入口點EBDAExtendedBIOSDataArea可擴展的BIOS數據區域)。zImage不贊成但是仍然支持。

Protocol2.03: (Kernel2.4.18-pre1)Explicitlymakesthehighestpossibleinitrdaddressavailabletothebootloader.

協議2.03:(Kernel2.4.18-pre1)明白地安排最高initrd地址可用引導裝入過程

****MEMORYLAYOUT(內存布局)

Thetraditionalmemorymapforthekernelloader,usedforImageor

zImagekernels,typicallylookslike:

傳統的內核裝載內存映射,使用ImageorzImage內核,典型地看起來像:

| |

0A0000 +------------------------+

|ReservedforBIOS | Donotuse.ReservedforBIOSEBDA.(不使用。為BIOSEBDA保留)

09A000 +------------------------+

|Stack/heap/cmdline | Forusebythekernelreal-modecode.(實模式內核代碼使用)

098000 +------------------------+

|Kernelsetup | Thekernelreal-modecode.(實模式內核代碼)

090200 +------------------------+

|Kernelbootsector | Thekernellegacybootsector.(內核啟動扇區)

090000 +------------------------+

|Protected-modekernel| Thebulkofthekernelimage.(保護模式,大的內核映像)

010000 +------------------------+

|Bootloader | <-Bootsectorentrypoint0000:7C00(啟動裝載進入點0000:7c00

001000 +------------------------+

|ReservedforMBR/BIOS|(為MBRmasterbootrecord主引導記錄)BIOS保留)

000800 +------------------------+

|TypicallyusedbyMBR|(典型被MBR使用)

000600 +------------------------+

|BIOSuseonly |(僅僅被BIOS使用)

000000 +------------------------+

WhenusingbzImage,theprotected-modekernelwasrelocatedto0x100000("highmemory"),andthekernelreal-modeblock(bootsector,setup,andstack/heap)wasmaderelocatabletoanyaddressbetween0x10000andendoflowmemory.

當使用bzImage,保護模式內核是移動到0x100000(“高內存”),實模式模塊(bootsector,setup,andstack/heap)被裝載到地址0x10000到最低內存的結尾的任何地方。

Unfortunately,inprotocols2.00and2.01thecommandlineisstillrequiredtoliveinthe0x9XXXXmemoryrange,andthatmemoryrangeisstilloverwrittenbytheearlykernel.The2.02protocolresolvesthatproblem.

幸運地,在協議2.002.01中命令行仍然被要求存在0x9XXXXX內存區域,那段內存區域仍然被早期內核重寫。2.02協議解決了那個問題。

Itisdesirabletokeepthe"memoryceiling"--thehighestpointinlowmemorytouchedbythebootloader--aslowaspossible,sincesomenewerBIOSeshavebeguntoallocatesomeratherlargeamountsofmemory,calledtheExtendedBIOSDataArea,nearthetopoflowmemory. Thebootloadershouldusethe"INT12h"BIOScalltoverifyhowmuchlowmemoryisavailable.

期望保持內存上限--在低內存的最高點被引導加載程序接觸--盡可能的低,因為一些新的BIOSes已經開始分配一些相當大的內存數量,叫做可擴展BIOS的數據區域,在低內存的頂端附近。引導加載程序應該使用"INT12h"BIOS中斷調用確定有多大的低內存是可利用的。

Unfortunately,ifINT12hreportsthattheamountofmemoryistoolow,thereisusuallynothingthebootloadercandobuttoreportanerrortotheuser.Thebootloadershouldthereforebedesignedtotakeupaslittlespaceinlowmemoryasitreasonablycan.ForzImageoroldbzImagekernels,whichneeddatawrittenintothe

0x90000segment,thebootloadershouldmakesurenottousememoryabovethe0x9A000point;toomanyBIOSeswillbreakabovethatpoint.

幸運地,如果INT12h中斷調用報告內存總量太少,則通常沒有引導加載程序能啟動并且報告一個錯誤給用戶。因此引導加載程序應該被設計在低內存占用盡量少量的空間。因為zImage或老的bzImage內核,需要數據被寫在0x90000段處,引導加載程序應該確保不使用高于0x9A000點的內存;太多的BIOSes將破壞那個點以上的內存。

****THEREAL-MODEKERNELHEADER(實模式內核開頭)

Inthefollowingtext,andanywhereinthekernelbootsequence,"asector"refersto512bytes.Itisindependentoftheactualsectorsizeoftheunderlyingmedium.

在下面的文本中,在內核啟動順序的任何地方,“一個扇區”是指512字節。它是下面媒介的實際扇區大小的獨立(意思不依賴具體的存儲介質,一個扇區都是指512字節)。

ThefirststepinloadingaLinuxkernelshouldbetoloadthereal-modecode(bootsectorandsetupcode)andthenexaminethefollowingheaderatoffset0x01f1.Thereal-modecodecantotalupto32K,althoughthebootloadermaychoosetoloadonlythefirsttwosectors(1K)andthenexaminethebootupsectorsize.

第一步在裝載一個linux內核應該被裝載實模式代碼(bootsectorsetup代碼)然后檢查接下來在偏移0x01f1處的header代碼。實模式代碼能達到32K,但是引導加載程序可能選擇裝載僅僅開始的兩個扇區(1K)然后檢查啟動扇區的大小。

Theheaderlookslike:

Header看起來像:

Offset(偏移量)Proto(協議)Name(名字)Meaning(意思)

/Size(大小)

01F1/1 ALL setup_sects Thesizeofthesetupinsectors

(所有)setup設置扇區的大小)

01F2/2 ALL root_flags Ifset,therootismountedreadonly

如果被設置,root被只讀掛載

01F4/2 ALL syssize DONOTUSE-forbootsect.Suseonly

不使用-僅僅被bootsect.S使用

01F6/2 ALL swap_dev DONOTUSE-obsolete

(不使用-已不用的)

01F8/2 ALL ram_size DONOTUSE-forbootsect.Suseonly

不使用-僅僅被bootsect.S使用

01FA/2 ALL vid_mode Videomodecontrol

視頻模式控制

01FC/2 ALL root_dev Defaultrootdevicenumber

默認的根設備號

01FE/2 ALL boot_flag 0xAA55magicnumber

0xAA55魔法數字

0200/2 2.00+ jump Jumpinstruction

2.00以上 跳轉指令

0202/4 2.00+ header Magicsignature"HdrS"

魔法信號"HdrS"

0206/2 2.00+ version Bootprotocolversionsupported

協議版本 啟動協議版本支持

0208/4 2.00+ realmode_swtch Bootloaderhook(seebelow)

實模式轉換 引導裝載程序鉤子(看下面)

020C/2 2.00+ start_sys Theload-lowsegment(0x1000)(obsolete)

開始系統段 低裝載段0x1000(已過時)

020E/2 2.00+ kernel_version Pointertokernelversionstring

內核版本 指向內核版本字符串

0210/1 2.00+ type_of_loader Bootloaderidentifier

裝載類型 引導裝載程序標志

0211/1 2.00+ loadflags Bootprotocoloptionflags

裝載標志 引導協議可選標志

0212/2 2.00+ setup_move_size Movetohighmemorysize(usedwithhooks)

Setup移動大小 移動到高內存大小(使用鉤子)

0214/4 2.00+ code32_start Bootloaderhook(seebelow)

32位代碼啟動 引導裝載程序鉤子(看下面)

0218/4 2.00+ ramdisk_image initrdloadaddress(setbybootloader)

Ramdisk鏡像 initrd(初始化跟設備)裝載地址(被引導裝載程序設置)

021C/4 2.00+ ramdisk_size initrdsize(setbybootloader)

Ramdisk大小 initrd大小(被引導裝載程序設置)

0220/4 2.00+ bootsect_kludge DONOTUSE-forbootsect.Suseonly

不使用-僅僅被bootsect.S使用

0224/2 2.01+ heap_end_ptr Freememoryaftersetupend

2.01以上 堆結束指針 setup結束以后是自由內存

0226/2 N/A pad1 Unused

0228/4 2.02+ cmd_line_ptr 32-bitpointertothekernelcommandline

2.02以上 命令行參數指針 32位指向內核命令行參數

022C/4 2.03+ initrd_addr_max Highestlegalinitrdaddress

2.03以上 initrd最大地址 最高合法的initrd地址

Forbackwardscompatibility,ifthesetup_sectsfieldcontains0,therealvalueis4.

為了后面的兼容性,如果setup_sects區域包含0,真實的值是4

Ifthe"HdrS"(0x53726448)magicnumberisnotfoundatoffset0x202,thebootprotocolversionis"old".Loadinganoldkernel,thefollowingparametersshouldbeassumed:

如果"HdrS"(0x53726448)魔法數字沒有在偏移0x202處被找到,啟動協議版本是“老的”。裝載一個老的內核,下面的參數應該被假設:

Imagetype=zImage 映像內核=zImage

initrdnotsupportedinitrd不被支持

Real-modekernelmustbelocatedat0x90000.實模式內核必須位于0x90000

Otherwise,the"version"fieldcontainstheprotocolversion,e.g.protocolversion2.01willcontain0x0201inthisfield.Whensettingfieldsintheheader,youmustmakesureonlytosetfieldssupportedbytheprotocolversioninuse.

否則,“version”區域包含協議版本,例如協議本版2.01將包含0x0201在這個區域。當設置區域在header中時,你必須確保僅僅設置區域被使用的協議版本所支持。

The"kernel_version"field,ifsettoanonzerovalue,containsapointertoanull-terminatedhuman-readablekernelversionnumberstring,less0x200.Thiscanbeusedtodisplaythekernelversiontotheuser.Thisvalueshouldbelessthan(0x200*setup_sects).Forexample,ifthisvalueissetto0x1c00,thekernelversionnumberstringcanbefoundatoffset0x1e00inthekernelfile.Thisisavalidvalueifandonlyifthe"setup_sects"fieldcontainsthevalue14orhigher.

"kernel_version"字段,如果被設置為一個非零值,包含一個指向(NULL)空結束的人可讀的內核版本數字字符串,小于0x200。這個能夠被使用顯示內核版本給用戶看。這個值應該小于(0x200*setup的扇區數)。例如,如果這個值被設置為0x1c00,內核版本數字字符串能夠被找到在內核文件偏移0x1e00處。如果并且僅僅如果"setup_sects"字段包含值14或更高這是一個有效值

Mostbootloaderswillsimplyloadthekernelatitstargetaddressdirectly.Suchbootloadersdonotneedtoworryaboutfillinginmostofthefieldsintheheader.Thefollowingfieldsshouldbefilledout,however:

大多數引導裝載程序將簡單直接的裝載內核到它的目的地址。這樣引導裝載程序不需要擔心在header填充很多的字段。然而,下面的字段應該被填充:

vid_mode:PleaseseethesectiononSPECIALCOMMANDLINEOPTIONS.

視頻模式:請看特殊的命令行可選部分

type_of_loader:裝載類型

Ifyourbootloaderhasanassignedid(seetablebelow),enter0xTVhere,whereTisanidentifierforthebootloaderandVisaversionnumber.Otherwise,enter0xFFhere.

如果你的引導裝載程序有一個被指派的id(看下面的表格),進入0xTV這兒,T是一個引導裝載程序的標志符,V是一個版本數字。否則,進入0xFF這兒。

Assignedbootloaderids:指派的引導裝載程序(以下9種)

0LILO

1Loadlin

2bootsect-loader

3SYSLINUX

4EtherBoot

5ELILO

7GRuB

8U-BOOT

Pleasecontact<hpa@zytor.com>ifyouneedabootloaderIDvalueassigned.

請聯系<hpa@zytor.com>如果你需要一個引導裝載程序被指派的ID

loadflags,heap_end_ptr:裝載標志,堆結束指針

Iftheprotocolversionis2.01orhigher,entertheoffsetlimitofthesetupheapintoheap_end_ptrandsetthe0x80bit(CAN_USE_HEAP)ofloadflags.heap_end_ptrappearstoberelativetothestartofsetup(offset0x0200).

如果協議版本是2.01或更高,設置setup堆棧的限制到heap_end_ptr(堆結束指針)處和設置0x80位(能夠使用堆棧)標志。heap_end_ptr(堆結束指針)顯示相對setup的開始(偏移0x0200)。

setup_move_size:setup移動的大小

Whenusingprotocol2.00or2.01,iftherealmodekernelisnotloadedat0x90000,itgetsmovedtherelaterintheloadingsequence.Fillinthisfieldifyouwantadditionaldata(suchasthekernelcommandline)movedinadditiontothereal-modekernelitself.

當使用協議2.002.01,如果實模式內核是不裝載在0x90000,它在加載序號以后被移動那里。如果你需要額外的數據(例如內核命令行)被移動,那么填充這個字段增加到實模式內核自身。

ramdisk_image,ramdisk_size:內存盤映像,內存盤大小

Ifyourbootloaderhasloadedaninitialramdisk(initrd),setramdisk_imagetothe32-bitpointertotheramdiskdataandtheramdisk_sizetothesizeoftheramdiskdata.

如果你的引導裝載程序已經裝載一個初始化的內存盤(initrd),設置內存盤映像(ramdisk_image)為一個32位指針指向內存盤數據和設置內存盤大小(ramdisk_size)為內存盤數據的大小。

Theinitrdshouldtypicallybelocatedashighinmemoryaspossible,asitmayotherwisegetoverwrittenbytheearlykernelinitializationsequence. However,itmustneverbelocatedabovetheaddressspecifiedintheinitrd_addr_maxfield. Theinitrdshouldbeatleast4Kpagealigned.

初始化的內存盤(initrd)應該典型地位于盡可能的高的內存,因為它可能被早的內核初始化序列覆蓋寫。然而,它必須從來不位于在專門化的initrd_addr_max字段以上的地址。初始化的內存盤(initrd)應該被設置至少4K頁對齊。

cmd_line_ptr:命令行指針

Iftheprotocolversionis2.02orhigher,thisisa32-bitpointertothekernelcommandline.Thekernelcommandlinecanbelocatedanywherebetweentheendofsetupand0xA0000.Fillinthisfieldevenifyourbootloaderdoesnotsupportacommandline,inwhichcaseyoucanpointthistoanemptystring(orbetteryet,tothestring"auto".)Ifthisfieldisleftatzero,thekernelwillassumethatyourbootloaderdoesnotsupportthe2.02+protocol.

如果協議是2.02或更高,這是一個32位指針指向內核命令行。內核命令行能位于setup結束至0xA0000的任何地方。填充這個字段雖然你的引導裝載程序不支持一個命令行,它能使你這個字段指向一個空字符串(或更好,是一個“auto”字符串)如果這個字段被留下在零,內核將假設你的引導裝載程序不支持2.02以上的協議。

ramdisk_max:內存盤最大

Themaximumaddressthatmaybeoccupiedbytheinitrdcontents.Forbootprotocols2.02orearlier,thisfieldisnotpresent,andthemaximumaddressis0x37FFFFFF.(Thisaddressisdefinedastheaddressofthehighestsafebyte,soifyourramdiskisexactly131071310722byteslongandthisfieldis0x37FFFFFF,youcanstartyourramdiskat0x37FE0000.)

可能被初始化內存盤內容占用最大地址。對于引導協議2.02或更早,這個字段是不存在的,并且最大地址是0x37FFFFFF。(這個地址被定義為最高的安全字節,因此如果你的內存盤確切的131072字節長并且這個區域是0x37FFFFFF,你能開始你的內存盤在0x37FE0000)。

****THEKERNELCOMMANDLINE內核命令行

Thekernelcommandlinehasbecomeanimportantwayforthebootloadertocommunicatewiththekernel.Someofitsoptionsarealsorelevanttothebootloaderitself,see"specialcommandlineoptions"below.

內核命令行已近是改變引導裝載程序和內核通信的一種重要方式。一些它的可選項也是有關于引導裝載程序自身的,看下面的“特殊的命令行可選項”。

Thekernelcommandlineisanull-terminatedstringupto255characterslong,plusthefinalnull.

內核命令行是一個NULL(空)終止的加上最后的null到達255個字符長度的字符串。

Ifthebootprotocolversionis2.02orlater,theaddressofthekernelcommandlineisgivenbytheheaderfieldcmd_line_ptr(seeabove.)

如果引導協議版本是2.02或更晚,內核的命令行地址被header字段cmd_line_ptr給出(看上面)。

Iftheprotocolversionis*not*2.02orhigher,thekernelcommandlineisenteredusingthefollowingprotocol:

如果協議版本不是2.02或更高,內核命令行被輸入使用下面的協議:

Atoffset0x0020(word),"cmd_line_magic",enterthemagicnumber0xA33F.

在偏移0x0020(字),“cmd_line_magic”,輸入魔法數字0xA33F

Atoffset0x0022(word),"cmd_line_offset",entertheoffsetofthekernelcommandline(relativetothestartofthereal-modekernel).

在偏移0x0022(字),"cmd_line_offset",輸入內核命令行的偏移量(與實模式內核開始有關)

Thekernelcommandline*must*bewithinthememoryregioncoveredbysetup_move_size,soyoumayneedtoadjustthisfield.

內核命令行必須在被setup_move_size內存區域大小覆蓋以內,因此你可能需要調整這個字段。

****SAMPLEBOOTCONFIGURATION引導程序配置樣例

Asasampleconfiguration,assumethefollowinglayoutoftherealmodesegment:

作為一個樣例配置,假設實模式段有下面的布局:

0x0000-0x7FFF Realmodekernel實模式內核

0x8000-0x8FFF Stackandheap棧和堆

0x9000-0x90FF Kernelcommandline內核命令行

Suchabootloadershouldenterthefollowingfieldsintheheader:

如此一個引導裝載程序應該進入下面字段,在header中。

unsignedlongbase_ptr; /*baseaddressforreal-modesegment*/實模式的段地址

if(setup_sects==0){

setup_sects=4;

}

if(protocol>=0x0200){

type_of_loader=<typecode>;

if(loading_initrd){

ramdisk_image=<initrd_address>;

ramdisk_size=<initrd_size>;

}

if(protocol>=0x0201){

heap_end_ptr=0x9000-0x200;

loadflags|=0x80;/*CAN_USE_HEAP*/

}

if(protocol>=0x0202){

cmd_line_ptr=base_ptr+0x9000;

}else{

cmd_line_magic =0xA33F;

cmd_line_offset=0x9000;

setup_move_size=0x9100;

}

}else{

/*Veryoldkernel*/

cmd_line_magic =0xA33F;

cmd_line_offset=0x9000;

/*AveryoldkernelMUSThaveitsreal-modecode

loadedat0x90000*/一個老的內核必須有它的實模式代碼裝載在0x90000

if(base_ptr!=0x90000){

/*Copythereal-modekernel*/復制實模式內核

memcpy(0x90000,base_ptr,(setup_sects+1)*512);

/*Copythecommandline*/復制命令行

memcpy(0x99000,base_ptr+0x9000,256);

base_ptr=0x90000; /*Relocated*/重映射

}

/*Itisrecommendedtoclearmemoryuptothe32Kmark*/它要求清除內存到32K標志

memset(0x90000+(setup_sects+1)*512,0,

(64-(setup_sects+1))*512);

}

****LOADINGTHERESTOFTHEKERNEL(裝載剩余的內核部分)

Thenon-real-modekernelstartsatoffset(setup_sects+1)*512inthekernelfile(again,ifsetup_sects==0therealvalueis4.)Itshouldbeloadedataddress0x10000forImage/zImagekernelsand0x100000forbzImagekernels.

非實模式內核開始在內核文件偏移(setup_sects+1)*512處(重復一下,如果setup_sects==0真實值是4)。作為Image/zImage它應該被裝載在地址0x10000,作為bzImage它應該被裝載在地址0x100000

ThekernelisabzImagekerneliftheprotocol>=2.00andthe0x01bit(LOAD_HIGH)intheloadflagsfieldisset:

如果協議大于等于2.00并且在裝載標志(loadflags)字段的0x01位(高裝載)被設置,則內核是一個bzImage(大模式內核)。

is_bzImage=(protocol>=0x0200)&&(loadflags&0x01);//偽代碼表示

load_address=is_bzImage?0x100000:0x10000;//偽代碼表示

NotethatImage/zImagekernelscanbeupto512Kinsize,andthususetheentire0x10000-0x90000rangeofmemory.Thismeansitisprettymucharequirementforthesekernelstoloadthereal-modepartat

0x90000.bzImagekernelsallowmuchmoreflexibility.

注意thatImage/zImage(小模式內核)能夠到達512K大小,因此使用整個0x10000-0x90000內存區域。這意味著對這些內核它是相當多的要求來裝載實模式部分在0x90000bzImage內核允許更多的靈活性。

****SPECIALCOMMANDLINEOPTIONS(特殊的命令行可選項)

Ifthecommandlineprovidedbythebootloaderisenteredbytheuser,theusermayexpectthefollowingcommandlineoptionstowork.Theyshouldnormallynotbedeletedfromthekernelcommandlineeven

thoughnotallofthemareactuallymeaningfultothekernel.BootloaderauthorswhoneedadditionalcommandlineoptionsforthebootloaderitselfshouldgetthemregisteredinDocumentation/kernel-parameters.txttomakesuretheywillnotconflictwithactualkerneloptionsnoworinthefuture.

如果被引導裝載程序提供的命令行被用戶輸入,用戶可能期望根據下面的命令行的可選項來運行。通常不應該從內核命令行刪除他們,即使不是所有的他們對內核來說都有實際上的意義。針對引導裝載程序自身的需要額外的命令行可選項的引導裝載程序作者應該從注冊在Documentation/kernel-parameters.txt這個文件中得到他們,來確保他們將不會和現在或將來的實際的內核可選項產生沖突。

vga=<mode>VGA=《模式》(也就是顯卡模式配置)

<mode>hereiseitheraninteger(inCnotation,eitherdecimal,octal,orhexadecimal)oroneofthestrings

"normal"(meaning0xFFFF),"ext"(meaning0xFFFE)or"ask"(meaning0xFFFD).Thisvalueshouldbeenteredintothevid_modefield,asitisusedbythekernelbeforethecommandlineisparsed.

<模式>這兒不是一個整數(在C語言中的記號,不是十進制,八進制,就是十六進制)就是一個字符串“正常”(0xFFFF代表的意義),“ext”(0xFFFE代表的意義),“ask”(0xFFFD代表的意義)。這個值應該被輸入視頻模式(vid_mode)字段,在命令行被解析以前被內核使用。

mem=<size>

<size>isanintegerinCnotationoptionallyfollowedbyK,MorG(meaning<<10,<<20or<<30).Thisspecifiestheendofmemorytothekernel.Thisaffectsthepossibleplacementofaninitrd,sinceaninitrdshouldbeplacednearendofmemory.Notethatthisisanoptionto*both*thekernelandthebootloader!

C語言的表示<size>是隨意地跟著KMG的一個整數(意思左移10,20,30位),這指定內核的內存末端。這可能影響的地方是一個初始化的內存盤(initrd),因為初始化的內存盤(initrd)應該被放置在內存末端的附近。注意在內核(kernel)和引導裝載程序(bootloader)都是一個可選項。

initrd=<file>

Aninitrdshouldbeloaded.Themeaningof<file>isobviouslybootloader-dependent,andsomebootloaders(e.g.LILO)donothavesuchacommand.

這個初始化的內存盤應該被裝載。<file>的意思明顯是依賴于引導裝載程序(bootloader),并且一些引導裝載程序(bootloader)(像LILO)沒有如此的一個命令。

Inaddition,somebootloadersaddthefollowingoptionstotheuser-specifiedcommandline:

另外,一些啟動裝載程序增加以下選擇項到用戶指定的命令行:

BOOT_IMAGE=<file>

Thebootimagewhichwasloaded.Again,themeaningof<file>isobviouslybootloader-dependent.

被裝載的引導鏡像。再一次,<file>的意思明顯是依賴于引導裝載程序(bootloader)。

Auto(自動)

Thekernelwasbootedwithoutexplicituserintervention.

內核被引導沒有明顯的用戶交互。

Iftheseoptionsareaddedbythebootloader,itishighlyrecommendedthattheyarelocated*first*,beforetheuser-specifiedorconfiguration-specifiedcommandline.Otherwise,"init=/bin/sh"getsconfusedbythe"auto"option.

如果這些選擇項由啟動裝載程序增加,在用戶指定或配置指定的命令行之前我們極力推薦他們是被第一個被找出的。否則,“init=/bin/sh”由“自動”選項拒絕。

****RUNNINGTHEKERNEL運行內核

Thekernelisstartedbyjumpingtothekernelentrypoint,whichislocatedat*segment*offset0x20fromthestartoftherealmodekernel.Thismeansthatifyouloadedyourreal-modekernelcodeat0x90000,thekernelentrypointis9020:0000.

內核跳轉到位于的內核入口點被啟動的,從實模式內核開始的地址處段偏移0x20。這意味著如果您加載您的實時模式內核代碼在0x90000,內核入口點是9020:0000

Atentry,ds=es=ssshouldpointtothestartofthereal-modekernelcode(0x9000ifthecodeisloadedat0x90000),spshouldbesetupproperly,normallypointingtothetopoftheheap,andinterruptsshouldbedisabled.Furthermore,toguardagainstbugsinthekernel,itisrecommendedthatthebootloadersetsfs=gs=ds=es=ss.

在入口,ds=es=ss應該指向實模式內核代碼開始的地方(如果代碼被裝載在ox90000處就是0x9000),SP(堆棧指針)的開始應該適當地設定,通常指向堆的頂端,并且所有的中斷應該被禁止。此外,為了在內核控制產生錯誤(bugs),建議啟動裝載程序設置fs=gs=ds=es=ss

Inourexamplefromabove,wewoulddo:

在來至上面我們的例程,我們應該做:

/*Note:inthecaseofthe"old"kernelprotocol,base_ptrmustbe==0x90000atthispoint;seetheprevioussamplecode*/

注意:在老內核協議的情況下,在base_ptr這一點必須是在0x90000,看以前樣例代碼

seg=base_ptr>>4;

cli(); /*Enterwithinterruptsdisabled!*/禁止中斷

/*Setupthereal-modekernelstack*/建立實模式內核堆棧

_SS=seg;

_SP=0x9000; /*LoadSPimmediatelyafterloadingSS!*/在裝載了SS(堆棧段)以后立即裝載堆棧指針(SP

_DS=_ES=_FS=_GS=seg;

jmp_far(seg+0x20,0); /*Runthekernel*/運行內核

Ifyourbootsectoraccessesafloppydrive,itisrecommendedtoswitchoffthefloppymotorbeforerunningthekernel,sincethekernelbootleavesinterruptsoffandthusthemotorwillnotbeswitchedoff,especiallyiftheloadedkernelhasthefloppydriverasademand-loadedmodule!

如果您的引導扇區訪問(軟盤)磁盤驅動器,推薦在運行內核之前關閉馬達。因為內核引導停止中斷,因此電機將不會關閉,特別是如果在加載的內核有軟盤驅動程序作為需求加載的模塊!

****ADVANCEDBOOTTIMEHOOKS先進的啟動時間掛鉤

Ifthebootloaderrunsinaparticularlyhostileenvironment(suchasLOADLIN,whichrunsunderDOS)itmaybeimpossibletofollowthestandardmemorylocationrequirements.Suchabootloadermayusethefollowinghooksthat,ifset,areinvokedbythekernelattheappropriatetime.Theuseofthesehooksshouldprobablybe

consideredanabsolutelylastresort!

如果你的引導裝載程序運行在一個特別的不穩定的環境中(例如LOADIN,運行在DOS之下)它可能不能按照標準內存位置的要求。因為一個引導裝載程序可能使用下面那樣的鉤子,如果設置,被內核在合適的時間調用。使用這些鉤子可能應考慮一個絕對最后的手段。

IMPORTANT:Allthehooksarerequiredtopreserve%esp,%ebp,%esiand%ediacrossinvocation.

重要:所有在調用的鉤子要求保護esp寄存器,ebp寄存器,esi寄存器和edi寄存器

realmode_swtch:實模式切換

A16-bitrealmodefarsubroutineinvokedimmediatelybeforeenteringprotectedmode.ThedefaultroutinedisablesNMI,soyourroutineshouldprobablydoso,too.

在進入保護模式以前16位實模式遠子程序立即調用。默認例程禁止NMI(不可屏蔽中斷),因此你的例程也應該可能這樣做。

code32_start:32位代碼開始

A32-bitflat-moderoutine*jumped*toimmediatelyafterthetransitiontoprotectedmode,butbeforethekernelisuncompressed.Nosegments,exceptCS,aresetup;youshouldsetthemuptoKERNEL_DS(0x18)yourself.

在過渡到保護模式以后立即跳轉到一個32位的線性平板模式運行路線,但是在內核被解壓之前。除了CS代碼段是沒有段被建立;你應該建立你自己的內核數據段(KERNEL_DS)(0x18)。

Aftercompletingyourhook,youshouldjumptotheaddressthatwasinthisfieldbeforeyourbootloaderoverwroteit.

在完成您的勾子以后,您應該跳到在這個字段的地址,在您的啟動裝載程序重寫它之前。

<!--EndFragment-->

總結

以上是生活随笔為你收集整理的linux内核启动文档翻译(i386)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产精品wwwwww | 国产精品日韩在线 | 久久99网 | 午夜国产影院 | 天天操天天干天天综合网 | 国产午夜免费视频 | 2022久久国产露脸精品国产 | 欧美色就是色 | 成年人视频在线免费播放 | 国产精品成人自产拍在线观看 | 97色在线观看 | 五月综合网| 国产在线不卡视频 | 国产精品久久久久久久久软件 | 超碰免费久久 | 亚洲国产伊人 | 国产成人久久av免费高清密臂 | 欧美日韩视频一区二区三区 | 99精品美女| 日韩中文字幕第一页 | 一区二区三区四区五区在线 | 日韩欧美一区二区三区黑寡妇 | 在线天堂视频 | 国产亚洲精品久久久久动 | 夜夜夜夜爽 | 日韩av成人在线观看 | 亚洲精品欧美成人 | 日韩av午夜在线观看 | 久久久免费电影 | 91自拍视频在线 | 干干操操| 日韩一级精品 | 玖玖在线视频观看 | 麻豆极品 | 亚洲成人午夜av | 国产精选在线观看 | 操久久网| 精品中文字幕在线 | 成人午夜电影网 | 久草精品视频在线播放 | 日韩三级在线观看 | 六月色 | 91精品免费 | 超碰精品在线 | 91精品国产一区二区三区 | 在线看av的网址 | 激情欧美一区二区三区免费看 | 97超级碰碰碰视频在线观看 | 久久婷婷精品 | 久久久久久久久久久久国产精品 | 日韩高清不卡一区二区三区 | 亚洲91精品 | 四虎成人在线 | 最近中文字幕高清字幕在线视频 | 在线免费国产 | 亚洲综合在线五月天 | 久久久国产精品电影 | 久久精品国产免费看久久精品 | 国产精品美女网站 | 国产精品久久久久三级 | 久草视频播放 | 久久成人高清 | 欧美一级片在线 | 99久久婷婷国产精品综合 | 九九久久国产精品 | 久久在线电影 | 国产色网 | 久日视频 | 特级西西444www大胆高清无视频 | 97看片吧| 91成人免费看 | 区一区二在线 | 国产精品久久久久久a | 免费黄色av. | 亚洲 欧美 日韩 综合 | 国产视频一区二区在线观看 | 婷婷丁香激情 | 中文字幕在线观看一区二区 | 久久精品国产免费看久久精品 | 久久久久久久久久久久久影院 | 亚洲高清国产视频 | 精品国产一区二区三区噜噜噜 | 久久久久久久久久久久久久免费看 | 国产免费一区二区三区最新 | 91精品啪在线观看国产81旧版 | av线上免费看 | 成人黄色小说视频 | 国产一区二区视频在线 | 久久你懂的 | 久久综合成人 | 亚洲资源视频 | 国产精品一区二区无线 | 免费在线日韩 | 日本中文字幕在线免费观看 | 久久久国产精品亚洲一区 | 精品视频免费播放 | 久久精品欧美日韩精品 | 免费观看性生交 | 国产资源av | 国产麻豆精品一区 | 国产一区国产二区在线观看 | 丁香五月缴情综合网 | 午夜在线看片 | 99久久国产免费,99久久国产免费大片 | 亚洲精品乱码久久久久久蜜桃欧美 | 2019中文在线观看 | 少妇18xxxx性xxxx片| 欧美另类成人 | 六月婷色 | 国产福利电影网址 | 国产91精品一区二区麻豆亚洲 | av在线看网站| 久久久久久久久电影 | 国产91对白在线播 | 欧美日韩性生活 | 伊人久久国产精品 | 超级碰碰免费视频 | 欧美国产不卡 | 日韩毛片一区 | 成人a免费看 | 国产明星视频三级a三级点| 黄色av三级在线 | 免费欧美精品 | 国产免费观看高清完整版 | 91经典在线 | 日本中文字幕在线免费观看 | 97电影院网 | 激情电影影院 | 韩国av电影在线观看 | 免费a网 | 日韩视频免费观看高清完整版在线 | 亚洲狠狠操 | 一个色综合网站 | 在线导航福利 | 国产国产人免费人成免费视频 | 国产精品麻豆99久久久久久 | 成人资源站 | 日日干,天天干 | 热99在线视频| 天天天综合网 | 久久久天堂 | 久久不卡电影 | 国产精品免费在线视频 | 久草www| 中文字幕高清有码 | 国产裸体视频bbbbb | 黄网站免费大全入口 | 国产亚洲成人网 | 色激情在线 | 97av在线 | 国产成人久久av977小说 | 久久综合久久综合这里只有精品 | 免费观看不卡av | 在线不卡中文字幕播放 | 国产97色| 97久久精品午夜一区二区 | 操操综合 | 亚洲午夜精品久久久 | 丁香六月婷婷 | 国产裸体永久免费视频网站 | 视频高清 | 97免费在线观看视频 | 欧美精品在线观看免费 | 亚洲高清色综合 | 最新日韩在线观看 | 91免费网址 | 久久久www免费电影网 | 在线电影a | 在线视频 你懂得 | 美女网站黄免费 | 欧美一区二区伦理片 | 久久99精品久久久久蜜臀 | 国产视频在线一区二区 | 国产精品电影一区 | 亚洲黄色大片 | 96香蕉视频| 韩国精品视频在线观看 | 一区二区三区四区五区六区 | 91视频在线免费 | 欧美国产精品一区二区 | 九精品 | 亚洲欧洲精品视频 | 黄色性av | 日日草天天干 | 99在线精品视频在线观看 | 久久久视频在线 | 精品国产乱码久久久久久天美 | 久久爱综合 | 久久久久成人免费 | 欧美午夜精品久久久久 | 99久久99久久精品免费 | 人人射人人插 | 特级黄色视频毛片 | 91大神dom调教在线观看 | 9999免费视频| 亚洲理论在线观看 | 久久精品香蕉 | 日韩精品一区二区久久 | 亚洲欧美视频在线观看 | 国内精品久久久久影院优 | 免费国产在线精品 | .国产精品成人自产拍在线观看6 | 91黄色小网站| 久久影视一区 | 天堂av在线免费 | 亚洲va欧美va国产va黑人 | 亚洲精品资源在线 | 一区二区三区 亚洲 | 91精品啪啪 | 亚洲女欲精品久久久久久久18 | 中文字幕在线一区二区三区 | 成人一区二区三区在线观看 | 国产精品手机在线播放 | 看片一区二区三区 | 成人精品视频 | 午夜电影一区 | 69av久久 | 伊人五月天 | 欧美日韩亚洲在线观看 | 91精品免费| 免费网站在线观看成人 | 国产精品 视频 | 欧美激情精品久久久久久免费印度 | 中文视频在线看 | 日本中文在线观看 | av免费网站观看 | 成人超碰在线 | 久久天天躁夜夜躁狠狠躁2022 | 91亚洲永久精品 | 国产免费久久精品 | 日韩大片在线 | 91精品国产福利 | 久久夜色精品国产欧美乱极品 | 91精品国产乱码 | 成人免费视频视频在线观看 免费 | 在线导航av| 国产日韩欧美在线观看视频 | 91爱爱中文字幕 | 国产精品丝袜在线 | 中文字幕中文字幕在线中文字幕三区 | jizz欧美性9| 超碰公开97 | 久久综合射 | 欧美日韩不卡在线视频 | 国产精品日韩高清 | 午夜精品在线看 | 狠狠干夜夜爱 | 91九色蝌蚪国产 | 亚洲va欧洲va国产va不卡 | 99色视频在线 | 色丁香综合 | 欧美超碰在线 | 亚洲第一色 | 韩国精品视频在线观看 | 久久久久久久久久久久国产精品 | 精品一二三区视频 | 日韩精品首页 | 亚洲免费资源 | 亚洲午夜精品久久久 | 成人午夜影视 | 91精品国产欧美一区二区 | 九九久久影视 | 国产成人99av超碰超爽 | 黄色软件大全网站 | av高清影院| 在线色亚洲 | 国产精品刺激对白麻豆99 | 99草在线视频 | 久久激情视频免费观看 | 久久久久久久久久久久久国产精品 | 中文字幕一区二区三区在线播放 | 免费开视频| 亚洲区另类春色综合小说 | 国产精品露脸在线 | 激情伊人五月天 | 国产黄大片在线观看 | 天天操天天干天天摸 | 91在线精品秘密一区二区 | 人人看人人 | 久久,天天综合 | 久久短视频 | 粉嫩av一区二区三区四区 | 激情婷婷av| 久久久国产精品电影 | 久久精品aaa | 国内精品免费久久影院 | 国产精品免费麻豆入口 | 日韩黄色一区 | 国内视频在线 | 97国产在线视频 | 国内精品久久天天躁人人爽 | 999成人| 97精品久久| 久久久久免费精品视频 | 免费特级黄色片 | 中文字幕丝袜一区二区 | 成人免费网视频 | 国产在线久久久 | 国产一级久久久 | 色多多在线观看 | 麻豆视频网址 | www.av免费观看| 97成人超碰 | 欧美日韩不卡一区二区三区 | 色婷婷久久久 | 欧美天天综合网 | 亚洲精品国精品久久99热一 | av成年人电影 | 美国三级黄色大片 | 丁香花在线视频观看免费 | a视频在线看 | 欧洲精品亚洲精品 | 亚洲综合一区二区精品导航 | 91视频专区 | 色91在线视频 | 久久中文字幕导航 | 一级性生活片 | 97色婷婷成人综合在线观看 | 日韩精品免费在线观看 | 日韩免费小视频 | 欧美一级电影免费观看 | 99国产精品免费网站 | 久久免费看a级毛毛片 | 精品久久综合 | 久久亚洲成人网 | 在线观看亚洲国产精品 | 国产高清视频网 | 欧美一级爽 | 久久精品亚洲一区二区三区观看模式 | 黄色网www| 日韩在线观看不卡 | 在线观看黄网 | 四虎永久免费 | 色综合久久久网 | 久久综合给合久久狠狠色 | 麻豆精品国产传媒 | 麻豆91在线看 | 久久激情片 | 亚洲国产三级在线观看 | 精品国产一区二区三区男人吃奶 | 在线激情av电影 | avav片| 中文字幕色播 | 亚洲精品日韩av | 成人欧美一区二区三区黑人麻豆 | 蜜桃av人人夜夜澡人人爽 | 国产亚洲久一区二区 | 欧美一区,二区 | 亚洲黄色免费在线看 | 最近中文字幕 | 中文字幕不卡在线88 | 日韩高清一区在线 | 99在线视频免费观看 | 亚洲国产精品推荐 | 99国产免费网址 | 国产主播99 | 中文字幕一区二区三区在线播放 | 色婷婷激情 | 国产小视频福利在线 | 五月婷婷网站 | 麻豆网站免费观看 | 国产美女被啪进深处喷白浆视频 | 亚洲另类视频在线 | 玖玖在线观看视频 | 久久久影院一区二区三区 | 国模视频一区二区 | 91久久国产综合精品女同国语 | 亚洲日本韩国一区二区 | 日韩免费在线看 | 久久精品4| 99精品视频免费看 | 91大神电影| 久久久久久久久亚洲精品 | 探花视频在线观看+在线播放 | 国产一级性生活视频 | 亚洲乱码久久久 | 午夜 久久 tv | 天天色天 | 中文字幕免费在线看 | 久久久久久免费毛片精品 | 在线国产一区二区三区 | 精品国产一区二区三区四区在线观看 | 欧美久久九九 | 亚洲精品成人在线 | 99久久99久久精品免费 | 日韩免费电影 | 国产专区欧美专区 | 欧美日韩不卡一区二区三区 | 99中文字幕在线观看 | 在线精品在线 | 超碰在线1 | 97在线看片 | 亚洲免费成人 | 午夜精品视频免费在线观看 | 久久天天躁夜夜躁狠狠85麻豆 | 免费看久久久 | 波多野结衣网址 | 成人av在线播放网站 | 午夜国产一区二区 | 97视频人人澡人人爽 | 五月婷婷爱 | 国产18精品乱码免费看 | 四虎国产精品永久在线国在线 | 中文在线亚洲 | 欧美一区二区三区在线 | 国产精品久久久久久久久久免费 | 久久精品女人毛片国产 | 黄色a视频免费 | 成年人黄色av| 国产在线观看免 | www国产亚洲精品久久麻豆 | 成人久久久电影 | 91视频麻豆视频 | 久草免费手机视频 | 精品国产一区二区三区免费 | 久久这里只有精品23 | 日韩精品免费一区二区三区 | 精品国产资源 | 视频国产一区二区三区 | 日本韩国精品一区二区在线观看 | 亚洲欧美综合精品久久成人 | 久久国产精品网站 | 免费色视频网址 | 久久久www| 丁香九月婷婷综合 | 久久久久久久久影视 | 国产成人精品亚洲精品 | 久久精品7| 久久综合狠狠综合 | 免费在线观看国产精品 | 99免费在线观看 | 亚洲 欧美 综合 在线 精品 | 久久久久免费电影 | 久久久国产一区二区 | 欧美韩日视频 | 在线精品视频免费播放 | 日韩视频www | 人人舔人人爽 | 欧美日韩高清在线一区 | 欧美日在线| 久久国产一区 | 天天草夜夜 | 欧美一级片免费观看 | 91成人天堂久久成人 | 一级片视频免费观看 | 婷婷四房综合激情五月 | 99热这里只有精品8 久久综合毛片 | 久久天天躁狠狠躁亚洲综合公司 | 五月婷影院| 免费观看十分钟 | 午夜成人免费电影 | 国产免费久久av | 色射爱| 五月天综合激情 | 激情五月激情综合网 | 日韩av高清在线观看 | 亚洲国产精品va在线看 | 亚洲91网站| www.天天干 | 五月婷婷在线播放 | 久久免费精品一区二区三区 | 伊人影院在线观看 | 亚洲天堂免费视频 | 国内精品久久久久影院日本资源 | 亚洲欧美乱综合图片区小说区 | 精品国产1区二区 | 九九在线精品视频 | 国产高清不卡一区二区三区 | 天天碰天天操视频 | 中文字幕字幕中文 | 成人黄色毛片视频 | 亚洲日本黄色 | 美女激情影院 | 欧美日韩精品在线免费观看 | 久久久精品午夜 | 国产v视频 | 色丁香色婷婷 | 黄色三级久久 | 欧美日产一区 | 欧美成人中文字幕 | 欧美怡红院 | 国产精品久久片 | 久久国产精品一国产精品 | 欧美一级在线观看视频 | 日日草视频 | 久久免费视频这里只有精品 | 最近日本mv字幕免费观看 | 久久伦理 | 国产一区二区午夜 | 麻豆播放| 国产国产人免费人成免费视频 | 国产99久久久久 | 美女久久 | 91成品视频 | 国产精品美女毛片真酒店 | 国产亚洲精品久久久久久大师 | 久久伊人免费视频 | 亚洲精品综合在线观看 | a在线v| 国产在线va | 日韩专区av| 成人高清av在线 | 97超碰人人看 | 天天亚洲综合 | 日本福利视频在线 | 精品亚洲免费视频 | 国产精品99在线播放 | 国产精品18毛片一区二区 | 黄色一级在线视频 | 99精品视频在线看 | 99热在线免费观看 | 午夜手机电影 | 六月丁香婷 | 国产一区视频在线播放 | 手机av观看 | 91九色porny在线 | 男女全黄一级一级高潮免费看 | 国产精品毛片网 | 久久男人视频 | 国产 在线观看 | 成人网色 | 91在线视频观看免费 | 超碰在线公开 | 91香蕉视频黄 | 国产视频欧美视频 | 精品视频免费 | www日韩高清 | 特黄特黄的视频 | 久久久久久久久久久综合 | 欧美性爽爽 | 五月激情综合婷婷 | 狠狠色综合网站久久久久久久 | 91久久精品一区二区三区 | 三级动态视频在线观看 | 日日夜夜狠狠干 | 香蕉网在线 | 欧美日韩高清 | 天堂网av 在线 | 波多野结衣视频一区二区 | 一区二区三区免费在线播放 | 一区二区在线影院 | 国内精品视频在线 | 久草观看 | 亚洲涩涩涩 | 国产免费观看久久 | 亚洲成人免费观看 | 在线观看精品黄av片免费 | 国产露脸91国语对白 | 亚洲精品视频免费在线 | 在线黄色免费av | 五月婷婷国产 | 欧美性做爰猛烈叫床潮 | 国产精品第二页 | 日韩 在线a | 天天做天天爱天天爽综合网 | 日韩中文字幕视频在线观看 | 激情欧美一区二区免费视频 | 麻豆传媒视频在线免费观看 | 国产日韩欧美在线播放 | 黄色软件在线观看视频 | 欧美巨乳波霸 | 日本久久精品 | 成人国产精品入口 | 久久精品视频观看 | av黄色av | 97超碰人人网| 日日夜夜狠狠 | 草久久久 | 啪啪免费试看 | 国产亚洲精品久久久久久 | 日韩免费三级 | 在线视频 区 | 99re中文字幕 | japanesexxxxfreehd乱熟 | 国产v在线 | 亚洲精品小区久久久久久 | 视频在线在亚洲 | 久草在线免费播放 | 欧美日韩在线播放 | 国产精品普通话 | 97视频总站 | 天天天操天天天干 | 黄色毛片在线观看 | 天堂视频中文在线 | 国产福利在线不卡 | 制服丝袜欧美 | 日韩精品一区二区三区丰满 | 日韩av片在线 | 久久久福利影院 | 久久综合狠狠综合久久综合88 | 麻豆视频国产精品 | 国产精品一区二区三区免费看 | 国产99久久久精品 | av先锋中文字幕 | 久久久久五月天 | 91精品国产亚洲 | 国产精品久久久久aaaa | 久草爱视频 | 婷婷在线视频观看 | 久久久久99精品成人片三人毛片 | www黄在线 | 超级碰99 | 97av在线视频免费播放 | 中文亚洲欧美日韩 | 日本精品一 | 亚洲精品久久激情国产片 | 亚州五月| 国产精国产精品 | 午夜精品久久久久久久久久久久久久 | 欧美激情精品一区 | 中文字幕国产精品 | 久久av黄色 | 国产五月婷婷 | 男女全黄一级一级高潮免费看 | 亚州精品天堂中文字幕 | 欧美va日韩va| 探花视频网站 | 亚洲黄网站 | 日韩久久视频 | 96香蕉视频| 国产精品久久久久久久久久久久冷 | 97视频网址 | 狠狠操天天射 | 久久精品男人的天堂 | 日韩中文在线字幕 | 欧美日韩国产精品爽爽 | 福利视频网站 | 国产高清在线观看av | 欧美激情视频一区二区三区免费 | 中文字幕日本特黄aa毛片 | 中文资源在线观看 | 国产高清无线码2021 | 国产人成看黄久久久久久久久 | 国产 日韩 欧美 中文 在线播放 | 免费观看性生交大片3 | 婷婷丁香六月天 | 国产精品露脸在线 | 成人av亚洲| 久久精品第一页 | 精品国内自产拍在线观看视频 | 天天综合五月天 | 国产高清综合 | 人人爽人人爽 | 天天操天天射天天操 | 在线观看不卡视频 | 黄色av免费电影 | 狠狠撸电影 | 亚洲a网| 国产高清在线不卡 | 精品亚洲成a人在线观看 | 色偷偷中文字幕 | 久久y | 欧美日韩超碰 | 欧美精品久久久久久久久久久 | 婷婷在线免费观看 | 91免费看黄| 日韩在线观看a | 中文在线a√在线 | 久久久久久久久久久久久国产精品 | 97碰在线视频 | 国产日产精品久久久久快鸭 | 手机在线看永久av片免费 | 国产一级淫片在线观看 | 99热在线观看 | 日本超碰在线 | 亚州视频在线 | 久久久久欧美精品 | 国产高清在线精品 | 婷婷在线观看视频 | 岛国av在线不卡 | 亚洲精品欧美专区 | 国产亚州av | 五月婷婷激情综合网 | 国产一级二级三级在线观看 | 操天天操 | 色偷偷88欧美精品久久久 | 日本电影久久 | 国产免费精彩视频 | 欧美一级淫片videoshd | 天天操综合网 | 色橹橹欧美在线观看视频高清 | 欧美精品久久久久久久久久丰满 | 91麻豆精品国产91久久久无限制版 | 在线精品视频免费播放 | 亚洲黄色软件 | 亚洲狠狠| 久草 | 碰超在线观看 | 亚洲综合激情 | 精品国产一区二区三区不卡 | 在线观看aaa| 手机av在线网站 | 亚洲高清在线观看视频 | 久操中文字幕在线观看 | 久久精品99北条麻妃 | 日韩电影一区二区三区在线观看 | 成人av高清在线观看 | 久久久久成人免费 | 久久久国产成人 | 久久男人影院 | 久久最新视频 | 中文字幕精品在线 | av在线免费观看不卡 | 98涩涩国产露脸精品国产网 | 日韩在线视频网址 | 欧美性色网站 | 黄色三级免费 | 国产在线观看免费 | 99亚洲精品在线 | 91在线中文| 婷婷丁香花五月天 | 欧美亚洲另类在线视频 | 国产精品一区二区三区四区在线观看 | 在线亚洲午夜片av大片 | 精品久久久久久一区二区里番 | 国产丝袜一区二区三区 | 免费亚洲视频在线观看 | 国产中文字幕在线免费观看 | 91精品电影 | 久久视频99 | 亚洲va欧美va人人爽 | 日韩乱色精品一区二区 | 一本一道久久a久久精品蜜桃 | 99精品国产99久久久久久福利 | 91久久爱热色涩涩 | 国产99久久久国产精品 | 一区二区三区免费在线观看视频 | a天堂中文在线 | 九九九热视频 | 操高跟美女 | 国产精品国产三级国产aⅴ无密码 | 曰本免费av | 久久99久久99 | 日韩mv欧美mv国产精品 | 久久精品视频免费 | 成人黄色一级视频 | 国产成人av在线 | 日韩丝袜在线 | 国产一级电影在线 | 日本久久久久久 | 9色在线视频 | 日本韩国中文字幕 | 久草在线 | 五月天丁香综合 | 久久夜色精品国产欧美乱 | 欧美三人交| 在线观看黄色国产 | 手机av看片 | 国产高清免费视频 | 久久精品视频中文字幕 | 玖玖在线免费视频 | 91av电影在线观看 | 在线日韩一区 | 久久午夜羞羞影院 | 国产又粗又猛又爽 | 九九九热精品免费视频观看网站 | 成人av在线一区二区 | 免费观看一级一片 | 狠狠色丁香婷婷综合橹88 | 亚洲综合在线一区二区三区 | 中文在线中文资源 | 中文欧美字幕免费 | 92精品国产成人观看免费 | 色偷偷网站视频 | 成人av电影在线播放 | 国产综合久久 | 亚州精品国产 | 国产精品毛片网 | 在线观看日本高清mv视频 | 久久久久久久久网站 | 色播五月激情综合网 | 99精品小视频 | 四虎免费在线观看 | 黄色91在线观看 | 五月天久久综合 | 国产精品综合久久久 | 蜜桃av观看 | 最新av电影网站 | 人人搞人人干 | 黄色91在线观看 | 免费精品在线 | 特级黄录像视频 | 天天色天天射天天综合网 | 亚洲成人国产精品 | 人人舔人人爱 | 中文字幕电影高清在线观看 | 波多野结衣在线视频免费观看 | 亚洲精品国精品久久99热一 | 91色在线观看视频 | 五月天综合网站 | 国精产品一二三线999 | 黄色特级毛片 | 国产精品嫩草影视久久久 | 99视频免费播放 | 日韩免费电影一区二区三区 | 探花视频免费观看高清视频 | 91亚洲精品久久久蜜桃借种 | 91黄视频在线 | 天天色天天操天天爽 | 色999精品 | 日韩精品91偷拍在线观看 | 99久久精品午夜一区二区小说 | 深夜免费小视频 | 日韩不卡高清视频 | 国产精品久久久久久久久久久久午夜 | 中文一二区 | 久久视频网 | 色 中文字幕 | 欧美精品久久久久久久久久 | 免费在线国产 | 久久国产精品免费视频 | 免费男女羞羞的视频网站中文字幕 | 日日碰狠狠添天天爽超碰97久久 | 中文字幕大全 | 中文字幕一区二区三区四区 | 一级一片免费视频 | 色婷在线 | 精品一区二区三区久久久 | 91色九色 | 免费三级黄色片 | 玖玖在线资源 | 有码视频在线观看 | aⅴ视频在线 | 天天操天天操天天操 | 亚洲三级黄 | 欧美一区免费在线观看 | 欧美一级免费在线 | 手机色在线 | 91精品视频观看 | 亚洲精品高清一区二区三区四区 | 日韩一区二区三免费高清在线观看 | 伊人婷婷网| 国产一区二区三区高清播放 | 黄色片视频在线观看 | 黄色三级免费网址 | 欧美色精品天天在线观看视频 | 在线观看国产一区 | 国产精品av免费 | 女人18片| 亚洲 欧美日韩 国产 中文 | 国产午夜精品福利视频 | 天天操操操操操操 | 少妇bbbb| 亚洲最新av网址 | 久青草电影 | 91视频一8mav | 成年人免费看 | 国产女人免费看a级丨片 | 免费a网站 | 国产精品久久久毛片 | 色在线视频网 | a级国产乱理论片在线观看 特级毛片在线观看 | 中文字幕在线观看视频一区二区三区 | 少妇搡bbbb搡bbb搡忠贞 | 婷婷黄色片 | 免费一级特黄录像 | 久久成人免费电影 | 亚洲另类交| 麻豆传媒视频观看 | 精品一区二区三区久久 | 久久久久久久久久久免费av | 久久久精品亚洲 | 日韩成人中文字幕 | 成人免费在线网 | 日b黄色片 | 久久久久免费电影 | 亚洲欧美精品一区 | 伊色综合久久之综合久久 | 色婷五月| 福利视频第一页 | 一级片免费观看视频 | 成人一区二区三区中文字幕 | 在线观看韩日电影免费 | 国产精品永久免费在线 | 亚洲国产中文字幕在线观看 | 日韩av视屏在线观看 | 国产精品成人自产拍在线观看 | 丁香婷婷基地 | 亚洲天堂网在线播放 | 国产精品成人久久久久 | 欧美日韩超碰 | 国产一区二区三区免费视频 | 亚洲天天看 | 91av社区 | 久久久精品一区二区 | 美女视频黄频 | 成人午夜剧场在线观看 | 99久久精品网 | 草草草影院 | 精品久久久久久国产91 | 久久天天躁狠狠躁夜夜不卡公司 | 国产精品尤物 | 在线成人一区二区 | 国产色婷婷在线 | 精品99在线 | 成人在线免费小视频 | 99草视频在线观看 | 日韩国产精品毛片 | 久久一区二区三区日韩 | 91精品一区国产高清在线gif | 成人午夜电影网站 | 久草热久草视频 | 日韩精品久久一区二区 | 东方av在| 免费在线成人av电影 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 日韩一级精品 | 天天色天天上天天操 | 99久热在线精品视频观看 | 夜夜操狠狠操 | 亚洲精品97| 婷婷精品进入 | 激情五月婷婷综合网 | 中文在线免费看视频 | 伊人日日干 | 久久图| 美女久久久久久久 | 久av电影 | 国产一级二级在线观看 | 国产高清视频免费最新在线 | 国产精品丝袜久久久久久久不卡 | 国产精品高潮在线观看 | 国产午夜剧场 | 日韩在线一二三区 | 日韩精品五月天 | 在线观看日韩一区 | 一区二区三区久久 | 国产韩国日本高清视频 | 午夜精品久久久久久久99热影院 | 日韩一区二区免费播放 | 日韩久久精品一区二区 | 精品一区在线 | 91手机视频在线 | 国产亚洲免费的视频看 | 很黄很色很污的网站 | 国产一区在线播放 | 欧美日本国产在线观看 | 久草精品在线观看 | 久久精品美女视频网站 | 日韩av中文在线 | 最近中文字幕mv免费高清在线 | 亚洲国产高清在线观看视频 | 国产精品自产拍 | 国产精品尤物视频 | 亚洲高清视频在线播放 | 色天天中文 | 99视频精品免费观看, | av3级在线 | 免费观看性生活大片3 | 国产精品免费在线 | 免费看成人片 | 亚洲成 人精品 | 丁香视频全集免费观看 | 国产精品免费看久久久8精臀av | 一区二区三区四区久久 | 精品在线小视频 | 色五月色开心色婷婷色丁香 | 中文字幕的 | 国产日韩欧美在线播放 | 最近字幕在线观看第一季 | 色综合久久久久 | 久久久网 | 四虎8848免费高清在线观看 | 久久久久久久99 | 国产精品网红直播 | 在线视频成人 | 色欧美日韩 | www.亚洲视频.com | 日本精品一区二区三区在线播放视频 | 五月天丁香视频 | 天天av综合网 | 日韩av影视在线观看 | 国内99视频 | 久久精品视 | 六月色丁香 | 久草精品电影 | 99久久精 | 日韩在线欧美在线 | 精品国自产在线观看 | 99久久精品免费看国产免费软件 | 久久精品亚洲精品国产欧美 | 中文字幕在线播放视频 | 在线观看黄网 | 免费黄在线看 | 亚洲国产日韩精品 | 五月天综合网站 | www.com.黄| 在线观看国产永久免费视频 | 亚洲精品综合一区二区 | 久草在在线视频 | 91亚洲精品久久久中文字幕 | 中文字幕精品一区 | 美女视频a美女大全免费下载蜜臀 | 国产拍揄自揄精品视频麻豆 | 国产精品美| 国产91精品欧美 | 97超碰人人网 | 国产成人精品免费在线观看 |