色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

從零編寫Linux 0.11中斷機制:CPU如何響應外部事件?

從零編寫Linux 0.11中斷機制:CPU如何響應外部事件? 從零編寫Linux 0.11的系列寫到這一章系統(tǒng)已經(jīng)能啟動、能進保護模式、能打印字符了。但說實話這時候的內(nèi)核頂多算個“大號引導程序”——因為CPU還在傻乎乎地按順序執(zhí)行指令。外部設備來了數(shù)據(jù)它不知道定時器走了它不知道連程序自己犯了錯它也來不及反應。中斷機制就是讓這顆CPU從“被動執(zhí)行”變成“主動響應”的那一錘子。寫這一章時我最大的體會是中斷不是操作系統(tǒng)的一個“功能模塊”而是整個內(nèi)核賴以生存的底層骨架不理解中斷后面講進程調(diào)度、內(nèi)存管理都會像在聽天書。先回顧一個最基礎(chǔ)的問題CPU怎么知道外部有事情發(fā)生答案只有兩條路輪詢和中斷。輪詢是CPU每隔一段時間就問一遍設備“你有事嗎”有事就處理沒事就接著干。這種方式簡單直觀但CPU的大部分時間都浪費在“問”上面而且延遲不確定——設備正好在上一次問完之后來消息CPU得等到下一次輪詢才能知道運氣差一點延遲能被拉得很長。中斷正好反過來設備主動發(fā)一個電信號CPU在每執(zhí)行完一條指令后檢查一下“有沒有中斷請求”有就暫停當前工作跳轉(zhuǎn)到對應處理程序處理完再回來。這個“檢查”是硬件在指令周期的微操作里完成的開銷極小而且響應是事件驅(qū)動的來了就處理不來了CPU安心做自己的事。用人類打個比方輪詢像你每隔十分鐘去門口看快遞到了沒有中斷像給快遞員一個門鈴他到了按一下你再放下手頭的事去開門。門鈴這個機制就是8259A和IDT配合實現(xiàn)的。1.2 中斷向量號從0到255的編號世界CPU能識別的中斷事件不是一個而是256個每個都有一個編號叫中斷向量號。這個256不是拍腦袋定的而是因為IDT最多放256個描述符每個描述符8字節(jié)總共2KB正好是頁大小的整數(shù)倍查表方便。其中0到31號向量是CPU保留的異常由CPU內(nèi)部觸發(fā)包括除零、缺頁、非法指令等32到255號是外部中斷和軟件中斷。在Linux 0.11里32到47被用作8259A映射過來的硬件中斷號1280x80被用作系統(tǒng)調(diào)用軟中斷48到255還空著一大把后面要加什么新功能再分配。這個編號跟你平時說的“中斷號”IRQ0、IRQ1不是一回事中間差了一個偏移量。8259A的IRQ0對應CPU向量號32IRQ1對應33這就是Linux 0.11里init_IRQ要做的“重新映射”工作。如果你不重新映射IRQ0默認對應CPU向量8一進來就會直接撞上Double Fault異常系統(tǒng)當場崩掉。我當初偷懶跳過PIC初始化結(jié)果模擬器直接重啟查了半天不知道怎么回事。1.3 保護模式與實模式的分水嶺這一章的標題是“中斷與異常”但如果只看實模式比如BIOS階段的中斷那跟裸機編程沒什么區(qū)別中斷向量表放在內(nèi)存地址0x00000開始處每一項4字節(jié)存的是段地址和偏移查表跳過去完事。但進入保護模式之后一切都變了。實模式的“中斷向量表”變成了“中斷描述符表”表的位置不再固定在0x0而是由IDTR寄存器告訴你它在哪里。每一項不再是一個簡簡單單的地址而是一個8字節(jié)的門描述符——里面不僅有處理程序的地址還包含特權(quán)級和類型信息。這意味著CPU在跳轉(zhuǎn)之前還要做一大堆安全檢查。很多人第一次寫保護模式內(nèi)核最容易掛在這一點上你在實模式下的中斷能跑進了保護模式一開中斷就重啟十有八九是IDT沒建立或者門描述符的類型/特權(quán)級不對。提示CPU在保護模式下每執(zhí)行完一條指令都會檢查“當前有沒有待處理的中斷”。只要中斷允許位IF是1并且IDT里對應向量是有效描述符它就會立刻走中斷流程。所以“開中斷”這件事不是簡單的sti就能完事你得先保證IDT已經(jīng)就緒。2. IDT一張8字節(jié)一行的查找表2.1 門描述符的位級拆解IDT里的每一項叫門描述符一共8字節(jié)。以Linux 0.11的啟動初始化代碼為例最終要填的是這樣一個結(jié)構(gòu)內(nèi)存小端序字節(jié)0到1處理函數(shù)偏移地址的低16位字節(jié)2到3段選擇符就是要跳轉(zhuǎn)到的目標代碼段這里固定填0x0008也就是內(nèi)核代碼段字節(jié)4這個字節(jié)比較特殊一共8位大部分被用作類型字段的低位在Linux 0.11的寫法里它和字節(jié)5一起構(gòu)成屬性字節(jié)5P存在位、DPL2位、S1位、Type4位字節(jié)6到7處理函數(shù)偏移地址的高16位一個字一個字拆開看對于中斷門來說Type111014對于陷阱門Type111115。P位必須為1DPL是特權(quán)級。內(nèi)核態(tài)的中斷門DPL0系統(tǒng)調(diào)用門DPL3。所以內(nèi)存里看到的屬性值一般是0x8E00內(nèi)核中斷門、0x8F00內(nèi)核陷阱門、0xEF00系統(tǒng)調(diào)用陷阱門。Linux 0.11源碼里的set_intr_gate、set_trap_gate、set_system_gate往描述符屬性字段里塞的就是這幾個值。我不厭其煩地把位布局講清楚是因為后面手工寫_set_gate宏時只要任何一個位放錯系統(tǒng)表現(xiàn)都會非常詭異。比如DPL寫成了0你去用戶態(tài)調(diào)int 0x80CPU直接判定為特權(quán)級違規(guī)扔一個13號異常出來用戶程序根本進不了內(nèi)核。2.2 中斷門、陷阱門、任務門選哪個CPU一共支持三種門。任務門會觸發(fā)硬件任務切換Linux 0.11基本沒用我們直接跳過中斷門和陷阱門的區(qū)別只有一個細節(jié)進入中斷門時CPU會自動把IF標志清0也就是關(guān)中斷防止在處理過程中被新的中斷打斷而陷阱門不會清IF。這個區(qū)別決定了它們的用途。硬件中斷比如時鐘中斷、鍵盤中斷通常用中斷門因為處理過程是高優(yōu)先級的不希望被打擾異常和系統(tǒng)調(diào)用通常用陷阱門因為進入內(nèi)核后我們往往要主動管理中斷狀態(tài)比如缺頁異常處理中你可能希望保持中斷開啟讓磁盤請求完成時能觸發(fā)中斷來喚醒自己。Linux 0.11里trap_init用set_trap_gate注冊異常init_IRQ用set_intr_gate注冊硬件中斷set_system_gate注冊系統(tǒng)調(diào)用門各司其職。2.3 lidt只做一件事告訴CPU表在哪IDT準備好以后需要執(zhí)行l(wèi)idt指令把表的位置和大小加載到IDTR寄存器。IDTR一共6字節(jié)低2字節(jié)是表長度減1高4字節(jié)是表的線性地址。在Linux 0.11的head.s里setup_idt這個匯編函數(shù)干的事就是把一整張“空表”鋪好setup_idt: lea ignore_int, %edx movl $0x00080000, %eax movw %dx, %ax movw $0x8E00, %dx lea idt, %edi mov $256, %ecx rp_sidt: movl %eax, (%edi) movl %edx, 4(%edi) addl $8, %edi dec %ecx jne rp_sidt lidt idt_descr ret這段代碼先把256個中斷向量統(tǒng)一指到一個ignore_int函數(shù)——這個函數(shù)暫時什么都不做只在出錯時打一行提示——然后把門類型設成中斷門0x8E00最后加載IDTR。這其實是一種“先把桌子擺好”的啟動策略剛開始來不及逐個設置每個中斷的處理函數(shù)就先拿一個統(tǒng)一入口頂住保證系統(tǒng)不會因為表不存在而崩潰。之后trap_init和init_IRQ再逐個替換成真正的處理函數(shù)。3. 異常CPU主動扔過來的“錯誤報告”3.1 三種異常的語義差異異常跟外部中斷最大的區(qū)別是它不是外部設備發(fā)來的而是CPU在執(zhí)行指令的過程中自己發(fā)現(xiàn)不對勁。比如你寫了一條除數(shù)為0的指令CPU在微碼層面發(fā)現(xiàn)除數(shù)是0就立刻觸發(fā)0號向量你訪問了一個沒有映射的頁就觸發(fā)14號向量。異??梢苑殖扇怓ault故障、Trap陷阱、Abort終止。用一句話解釋區(qū)別Fault指令“還沒執(zhí)行完”就發(fā)現(xiàn)問題保存的EIP指向觸發(fā)異常的那條指令處理完后CPU會重新執(zhí)行這條指令。頁錯誤就是典型異常處理函數(shù)把缺的頁補上之后回來還能繼續(xù)執(zhí)行。Trap指令“已經(jīng)執(zhí)行完”了才觸發(fā)保存的EIP指向下一條指令。調(diào)試斷點int3就是陷阱處理完直接往下走。Abort發(fā)生了嚴重錯誤程序已經(jīng)無法繼續(xù)CPU保存的EIP都不保證正確。Double Fault和機器檢查異常屬于這一類。這個區(qū)別直接決定異常處理函數(shù)返回后CPU去哪。如果你想寫一個“屏蔽掉除零錯誤”的實驗型處理程序你必須想清楚你站在Fault的立場上處理完要重新執(zhí)行那條除法指令如果除數(shù)和被除數(shù)沒改你會無限觸發(fā)這個異常。3.2 有錯誤碼和無錯誤碼另一個容易踩的點是不是所有異常壓棧內(nèi)容都一樣。大部分異常壓入EFLAGS、CS、EIP之后就跳轉(zhuǎn)到處理函數(shù)了但有少數(shù)異常會再壓入一個錯誤碼告訴你是哪個段、哪個頁惹的禍。這些異常包括10號無效TSS、11號段不存在、12號棧段異常、13號一般保護異常、14號頁異常。這個錯誤碼是硬件自動壓入的但處理函數(shù)返回時CPU并不會自動把錯誤碼彈出去。所以Linux 0.11在處理這些異常時特意把入口分成兩套無錯誤碼的在入口處先壓入一個假的錯誤碼讓后續(xù)C函數(shù)統(tǒng)一按“有一個錯誤碼參數(shù)”來處理有錯誤碼的直接使用“參數(shù)已經(jīng)由CPU壓?!钡娜肟?。我在寫簡單實驗時曾直接把有錯誤碼的異常和沒錯誤碼的異常當成同一個入口結(jié)果處理函數(shù)返回時棧指針對不上iret彈出的是錯誤碼程序直接跑飛。這個問題非常隱蔽你得先把哪些向量帶錯誤碼背下來不然調(diào)試到深夜也查不出所以然。3.3 Linux 0.11的traps.c結(jié)構(gòu)Linux 0.11的異常處理代碼有一個“統(tǒng)一處理差異化打印”的好設計。在kernel/traps.c里它給每個異常都注冊了一個入口函數(shù)這些入口函數(shù)最終都會跳轉(zhuǎn)到一組專門的匯編代碼把現(xiàn)場壓棧然后把“向量號、錯誤碼、當前EIP”作為參數(shù)調(diào)C函數(shù)。比如初始化代碼void trap_init(void) { set_trap_gate(0, divide_error); set_trap_gate(1, debug); set_trap_gate(2, nmi); set_trap_gate(3, int3); set_trap_gate(4, overflow); set_trap_gate(5, bounds); set_trap_gate(6, invalid_op); set_trap_gate(7, device_not_available); set_trap_gate(8, double_fault); set_trap_gate(9, coprocessor_segment_overrun); set_trap_gate(10, invalid_TSS); set_trap_gate(11, segment_not_present); set_trap_gate(12, stack_segment); set_trap_gate(13, general_protection); set_trap_gate(14, page_fault); set_trap_gate(15, reserved); set_trap_gate(16, coprocessor_error); }這里的第二個參數(shù)是“入口函數(shù)的地址”但這個入口函數(shù)不是普通的C函數(shù)而是一段匯編。為什么不能用C函數(shù)直接當中斷入口因為C編譯器生成的函數(shù)開頭會有標準的棧布局和現(xiàn)場保存動作但它不會替你把EFLAGS、CS這些由硬件壓棧的值按預期順序彈出來更不會保證處理完后用iret返回。中斷入口必須嚴格遵循“硬件壓棧順序”和“iret彈出順序”所以必須有匯編包一層。這是初寫中斷時最大的思維轉(zhuǎn)換中斷處理函數(shù)的“調(diào)用約定”不是操作系統(tǒng)約定的是CPU硬件約定的。你沒辦法讓編譯器替你遵守這個約定只能手寫。4. 8259A把硬件設備的中斷請求“接線”給CPU4.1 主片從片為什么是級聯(lián)的8259A是可編程中斷控制器俗稱PIC。在PC/AT架構(gòu)里兩塊8259A級聯(lián)主片管IRQ0到IRQ7從片管IRQ8到IRQ15從片的中斷輸出接到主片的IRQ2上。所以主片IRQ2這條線承載的是“從片有中斷”的信號。這么設計的根本原因很樸實老CPU只有一根INT引腳硬件上無法直接接16個設備只能通過一個控制器匯總。8259A內(nèi)部有一個優(yōu)先級裁決器多設備同時請求時按優(yōu)先級挑一個報給CPU。你要是不初始化8259A它內(nèi)部狀態(tài)完全是亂的中斷請求的映射和屏蔽位全不對設備一觸發(fā)就覺得“有扇門倒了”系統(tǒng)立刻崩。4.2 初始化參數(shù)ICW與OCW的計算Linux 0.11的init_8259A函數(shù)寫得很清楚我把關(guān)鍵參數(shù)列一下參數(shù)主片從片含義ICW10x110x11需要ICW4、級聯(lián)模式ICW20x200x28中斷向量起始號主片32、從片40ICW30x040x02級聯(lián)關(guān)系從片掛在主片IRQ2上ICW40x010x018086模式OCW10xFF0xFF默認全部屏蔽逐個開放主片端口是0x20、0x21從片端口是0xA0、0xA1。為什么要讓主片從32開始因為0到31是CPU異常的保留區(qū)外部中斷必須避開。IRQ0對應向量32IRQ7對應39IRQ8對應40IRQ15對應47后面接設備時看到0x20、0x21這些宏就應該條件反射地想到“這是PIC的口地址不是內(nèi)存地址”。4.3 時鐘中斷是怎么“開”起來的時鐘中斷是整個操作系統(tǒng)的脈搏。Linux 0.11在init_IRQ里除了初始化8259A還做了兩件事注冊IRQ0的handler以及操作OCW1把IRQ0對應的中斷釋放出來。比如主片掩碼改成0xFE就是把IRQ0開放其他保持屏蔽。注意這里有一個容易混的概念CPU的IF標志是“總閘”PIC的OCW1是“分閘”一個設備要真正觸發(fā)中斷總閘和分閘都得打開。我在實驗里只開了IF但忘了改OCW1結(jié)果時鐘中斷永遠不來系統(tǒng)像死了一樣查了很久才意識到PIC側(cè)還被屏蔽著。5. 系統(tǒng)調(diào)用讓用戶程序主動“敲門”進內(nèi)核5.1 int 0x80一條特殊指令系統(tǒng)調(diào)用是中斷機制最巧妙的用途。用戶態(tài)的程序想訪問硬件、申請內(nèi)存、打開文件直接執(zhí)行特權(quán)指令是會被CPU拒之門外的因為當前特權(quán)級是3而特權(quán)指令要求特權(quán)級0。那怎么辦答案是用戶程序執(zhí)行一條int 0x80指令主動觸發(fā)一個軟件中斷。關(guān)鍵點是0x80這個系統(tǒng)調(diào)用門描述符的DPL被設成了3。DPL3意味著“處在特權(quán)級3的用戶代碼也有權(quán)調(diào)用這個門”。如果DPL設成0用戶程序一執(zhí)行int 0x80CPU直接判定權(quán)限不足觸發(fā)13號一般保護異常。你可以自己動手改一下DPL試試能非常直觀地看到權(quán)限檢查在起作用。5.2 system_call的入口匯編邏輯在Linux 0.11里0x80向量指向system_call這個匯編函數(shù)它的執(zhí)行分為三步用SAVE_ALL把用戶態(tài)帶來的所有寄存器壓入內(nèi)核棧形成pt_regs結(jié)構(gòu)。檢查系統(tǒng)調(diào)用號是否越界然后根據(jù)eax里的調(diào)用號跳到sys_call_table數(shù)組對應的C函數(shù)。比如eax2就是forkeax4就是write。這里有一個很漂亮的細節(jié)sys_call_table是個函數(shù)指針數(shù)組數(shù)組下標就是調(diào)用號所以“根據(jù)調(diào)用號分發(fā)”就是一次“數(shù)組索引間接跳轉(zhuǎn)”。拿到返回值后把返回值寫回內(nèi)核棧中原來eax保存的位置這樣iret恢復時eax自然就是返回值然后用RESTORE_ALL彈出寄存器執(zhí)行iret回到用戶態(tài)。很多人在理解系統(tǒng)調(diào)用時會把它當成普通的“函數(shù)調(diào)用”但它的本質(zhì)是中斷調(diào)用用戶程序不壓返回地址CPU壓的是EFLAGS、CS、EIP用戶程序不保證棧方向CPU要切換到內(nèi)核棧。所以你寫系統(tǒng)調(diào)用時不能寫“返回值在eax里”就直接return必須先把現(xiàn)場完整壓棧因為中斷的返回不是ret是iret。5.3 從用戶態(tài)到內(nèi)核態(tài)的棧切換還有一個繞不開的細節(jié)特權(quán)級變了棧也要變。Linux 0.11為每個任務都準備了一個內(nèi)核棧TSS里有ss0和esp0兩個字段記錄內(nèi)核棧的段和棧頂。當用戶態(tài)程序觸發(fā)int 0x80時CPU看到當前CPL3而目標代碼段的DPL0立即從當前棧切換到ss0:esp0指向的內(nèi)核棧然后才壓入EFLAGS、CS、EIP。整個過程由CPU硬件完成不需要操作系統(tǒng)手動干預。用戶態(tài)原本棧里的數(shù)據(jù)并沒有被搬走它們還在用戶棧上CPU壓進去的CS是用戶態(tài)CSss和esp保存在TSS里處理完通過iret彈回。到內(nèi)核態(tài)之后想訪問用戶棧里的參數(shù)就需要通過用戶空間指針去讀這也是為什么Linux 0.11里很多系統(tǒng)調(diào)用函數(shù)要從“用戶棧上取參數(shù)”這一步開始。6. 代碼落地從零初始化IDT的完整記錄6.1 分階段先setup再trap_init再init_IRQ我在實際搭建內(nèi)核的過程中中斷相關(guān)的初始化是分三個時間點進行的這個順序是Linux 0.11源碼給我的啟發(fā)也強烈推薦大家遵循同樣的節(jié)奏第一階段在head.s里setup_idt把256個向量全部指向ignore_int。這一步的目的是先把表建起來但先不處理任何中斷事件。第二階段在main的trap_init里把0到16的CPU異常逐個替換成真正的處理入口。第三階段在init_IRQ里初始化8259A把硬件中斷向量注冊好并打開需要的IRQ屏蔽位。這個順序不能亂。如果上來就讓硬件中斷開著但IDT里沒有對應描述符CPU查表失敗直接引發(fā)Double Fault。先讓PIC全部屏蔽再逐個開放就能把“不知道該誰處理的中斷”扼殺在萌芽里。6.2 _set_gate宏逐行拆解_set_gate是Linux 0.11里最精華的宏之一很多人第一次看到它的內(nèi)聯(lián)匯編會頭痛。我把它逐行翻譯一下#define _set_gate(gate_addr, type, dpl, addr) \ __asm__(movw %%dx,%%ax\n\t \ movw %0,%%dx\n\t \ movl %%eax,%1\n\t \ movl %%edx,%2\n\t \ : \ : i ((short) (0x8000(dpl13)(type8))), \ o (*((char *) (gate_addr))), \ o (*((char *) (gate_addr)4)), \ d ((char *) (addr)), \ a (0x00080000))編譯器會把d約束里的addr裝進edxa約束里的0x00080000裝進eax。movw %dx, %ax把addr低16位搬到ax這時候eax就變成了0x0008xxxx——前16位是段選擇符0x0008后16位是處理函數(shù)地址的低16位。接著movw %0, %dx把屬性比如0x8E00裝進dx此時edx的高16位仍然是addr的高16位低16位是屬性。最后兩條movl把edx、eax分別寫入門描述符的第0字節(jié)和第4字節(jié)。一個8字節(jié)的門描述符就填好了。寫這個宏的時候我建議初學的人不要光看宏一定要把門描述符的8字節(jié)按“偏移低16位/段選擇符/屬性/偏移高16位”畫個圖對著填充一遍。我當年在紙上畫了不下十遍才真正記住每個bit在哪。6.3 trap_init與init_IRQ的掛接細節(jié)trap_init的代碼前面已經(jīng)展示過了它調(diào)set_trap_gate把0到16的異常入口都設好。這里有個容易被忽略的點2號向量NMI也注冊了。NMI是不可屏蔽中斷不經(jīng)過8259ACPU的NMI引腳一被拉低就直接觸發(fā)2號向量。Linux 0.11對NMI的處理很佛系打印一條錯誤消息然后進死循環(huán)。因為NMI本身意味著硬件層面嚴重異常普通內(nèi)核一般不會去“處理”它。init_IRQ做的事是先初始化PIC然后把硬件中斷向量注冊到IDT。注冊時要先把門描述符填好再在PIC里開放對應IRQ順序也是先注冊后開放。我實驗時試過反著來結(jié)果中斷先到了處理函數(shù)還沒掛上系統(tǒng)啟動到一半就崩了。這些順序問題在教科書里不會直接告訴你只有跑一遍才知道。7. 實戰(zhàn)復現(xiàn)用一個小demo驗證中斷基礎(chǔ)7.1 先搭一個最小可運行的中斷實驗環(huán)境如果你也正在跟著“從零編寫Linux 0.11”這一系列走我會建議你寫到這一章時不要急著一口氣調(diào)完整內(nèi)核而是先做一個獨立小實驗只保留最精簡的啟動代碼、建立IDT、初始化8259A用一個自定義門來模擬一個“中斷測試”處理函數(shù)里設置一個標志變量并打印一段字符串。如果實驗能在模擬器里跑出預期的打印結(jié)果說明IDT、門描述符、特權(quán)級鏈路已經(jīng)通了。直接構(gòu)造一個最小的測試入口void test_int_entry(void) { printk([test] interrupt handler called!\n); } void test_setup(void) { set_intr_gate(0x40, test_int_entry); __asm__(int $0x40); }如果屏幕上打出了test消息就說明IDT設置、門描述符類型、段選擇符、特權(quán)級檢查全都沒問題——這幾個環(huán)節(jié)只要有一步出錯輕則沒反應重則整機重啟。這個小demo比在一整個復雜內(nèi)核里排查問題要快得多。7.2 用int指令主動觸發(fā)驗證玩過匯編的人都知道int指令后面跟的是向量號int 0x40這種寫法在執(zhí)行時CPU查的是IDT的第0x40項。所以在上述測試里只要把set_intr_gate(0x40, ...)設好然后執(zhí)行int 0x40就能直接跳過外部設備純靠軟件觸發(fā)一次完整的中斷流程。這一步的價值在于如果連軟件觸發(fā)的內(nèi)部中斷都進不去處理函數(shù)那問題一定出在IDT、門描述符或特權(quán)級這部分如果軟件觸發(fā)一切正常但外部設備的中斷沒反應那問題就出在PIC初始化或設備本身。這相當于給整個中斷鏈路做了“單元測試”排查范圍一下子縮小了。我后來調(diào)試鍵盤驅(qū)動時就是靠這個把IDT的問題和PIC的問題區(qū)分開的。8. 調(diào)試心得與避坑清單8.1 Triple fault是怎么發(fā)生的剛連上模擬器跑內(nèi)核時遇到最多的一個現(xiàn)象是啟動到某一步屏幕上最后一行打印消失了或者模擬器直接黑屏甚至整個模擬機自己重啟。這個現(xiàn)象叫Triple Fault——CPU在處理第一個異常時發(fā)現(xiàn)IDT無效觸發(fā)Double Fault處理Double Fault時IDT還是無效那就無藥可救硬件直接復位重啟。它連顯示錯誤的機會都沒有。最常見的原因有這幾個lidt指令還沒執(zhí)行就開了中斷IDT放在了一個不可訪問的內(nèi)存區(qū)域或者IDTR的基地址算錯了IDT描述符里的段選擇符指向的段不存在或者特權(quán)級不匹配給8259A的初始化命令順序搞錯導致IRQ向量號錯亂。排查Triple fault的辦法是給模擬器打開中斷日志讓它把每次中斷/異常的詳細信息寫進日志文件CPU當前在哪個EIP、觸發(fā)哪個向量、IDT表項內(nèi)容是什么都一清二楚。我第一次看到日志里滿屏的“check_exception: 8”時才意識到是IDT表項全空引起的兜底異常。8.2 8259A的坑中斷全被屏蔽了另一個特別容易忽略的問題init_8259A之后OCW1發(fā)0xFF把所有中斷屏蔽了外部硬件中斷根本到不了CPU。這時候你需要打開對應位。我當時測試鍵盤中斷發(fā)現(xiàn)怎么敲都沒反應查了很久才發(fā)現(xiàn)IRQ1一直是masked狀態(tài)。所以“要不要開CPU中斷”和“PIC里要不要開某個IRQ”是兩件事前者是CPU級IF標志后者是PIC級屏蔽寄存器少哪一個都不行。8.3 中斷打開后系統(tǒng)正常啟動的順序我們經(jīng)常說要“先注冊后開放”其實開CPU級中斷的時間點是最后一個階段。head.s剛進保護模式時清IF是必須的因為此時IDT還沒建好。trap_init、init_IRQ都完成之后才在main里用sti打開IF。你如果一開始就讓IF1系統(tǒng)在IDT半成品狀態(tài)下一有風吹草動就崩。還有一個小細節(jié)Linux 0.11里的sti不是放在init_IRQ之后馬上做的它是在調(diào)度器第一次schedule之前才做。也就是說內(nèi)核把“能響應中斷的所有條件”準備好之后才把門打開。這個思想特別值得學習不要在任何前置條件未滿足時打開中斷寧可晚一點開不要冒一點險。9. 寫在最后中斷讓內(nèi)核活了起來這一章寫到這里我對中斷機制的看法已經(jīng)變了不少。以前看操作系統(tǒng)教材總覺得中斷是一堆規(guī)范和術(shù)語的堆砌真正自己從零寫完一個能響應中斷的內(nèi)核之后才明白“中斷”就是操作系統(tǒng)活起來的“呼吸”。沒有中斷內(nèi)核只是一個執(zhí)行完就停的批處理程序有了中斷它才能感知外部世界、管理進程、調(diào)度任務。我個人的建議是如果你也在手寫操作系統(tǒng)不要只滿足于“能把Linux 0.11跑起來”。試著拆掉IDT、拆掉PIC一點一點重新加回來觀察每種現(xiàn)象的根源。這個過程比跟著別人的代碼讀十遍都有用。中斷這一章是最容易讓人崩潰的但也是最能讓人建立起“CPU硬件與軟件協(xié)作”直覺的地方。接下來寫內(nèi)存分頁和進程調(diào)度時你會發(fā)現(xiàn)到處都是中斷和異常在背后撐著——到時候再回頭看這一章很多當時覺得晦澀的細節(jié)都會變得理所當然。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品亚洲高清在线| 人妻少妇无码| 一区二区乱码福利| 亚洲AV无线| 亚洲操逼网| 午夜福利区| 97操| 亚洲午夜福利在线影院| 欧美日韩国第一区| 日日爱99| 久久草在线综合视频| 日韩中文字幕av在线播放| 亚洲97精品| 亚洲欧美国产成人综合不卡| 在线观看A啊啊啊| 人妻丝袜一区二区三区在线| 亚洲欧美日韩精品久久久一区二区 | 中文字幕,人妻,日韩| 日本色婷婷| 九九九九97| 一级性爱视频免费观看| 久久久久免费少妇| 久9爱精品| 中国zzijzzijzzwww精品| AV天天在线观看| 一本大道久| av在线观看不卡网站| 国产熟女少妇一区| 97色香蕉| 婷婷五月av| 日韩精品国模| 国产自产自拍| 久久久性爱视频| 亚洲精品久久久久毛片A片拉屎| 日本123区操B视频| 大香蕉日亚洲日本亚大| aaaa少妇高潮大片| 国产地址二三| 国产在线视频二区| 日少妇亚洲版| 91操操操操| 殴美牲| 99少妇| 国产成人无码网站在线视频| 91女优在线观看 | 五月丁香激情综合| 少妇熟女视频一区二区三区| 亚洲综合中文字幕有码| A一级色女| 凹凸视频在线观看伊人| 日欧毛片久久| 国产av强奸美女| 男人的天堂色偷偷青青草视频婷婷网| 美女操逼A A| 亚洲狼狼干综合1| 亚洲国产综合视频| 人妻碰碰碰碰碰碰| 国产精品成人AV片免费看网站| 天堂精品在线| 超清中文乱码字幕| 欧美制服网站美腿丝袜| 起碰97| 高凊专区人人操| 啊啊啊好想要| 中文字幕丝袜美腿| 国产成人91一区二区三区| 亚洲 欧美 中文 日韩超碰| 搡老女人老熟女91| 国产精品制服丝袜中文字幕日韩一区二区三区| 性无码专区2020| 有码人妻系列| 国产精品日韩在线一区| 久干网| 在线色导航| av东京热男人的天堂| 日va操| 亚欧美色图| 午夜精品探花| 欧美大的香蕉有线电视视频| 极品色社| 人人操我人人干| 夜草欧美| 激情五月天社区| 白嫩91在线亚洲| 99久久九九| 美欧色综合| 国产农村妇女一区二区| 欧美人人操人人插| 中国小夫妻勾搭露脸淫荡对白| 国产Aα| 日本三级韩国三级美三级91| 日本 欧美 国产一区| 肥臀熟女一区二区三区视频| 人人乐大香蕉| 青青青国产手线观看视频2| 精产国品一区二三产品| 日本网色| 国产精品视频内谢女人| 久久精品女同亚洲女同13| 9久热| 国产毛片毛片4p懂色| 操逼内射干逼白丝91| 国产成人欧美一区二区三区的国产| 欧美青青草视频| 99这里只有精品| 2024年最新色情网站在线观看| 久久综合女优| 国产又色又爽又舒服的三级视频| 91亚洲网| 久久是精品| 狠狠操天天干| 翔田千里一区二区三区奶水| 99精品无码| 国模限制级电影| 亚洲密乳AV| 中文在线视频| 青青草日本无码| 久久美女国产| 花花AV导航| 天天综合有色网| 人妻人人做人人澡人人爽欧美一区| 麻豆色99999| 久久久草成人网站久久久草成人久久久草久久久 | 偷拍 亚洲 欧美| 免费久久9999| 色婷婷亚洲婷婷| 亚洲一区中文精品| 欧美日韩97在线| 精品超碰中文在线| 99热这里只有精品地址 | 人人操人人色网| 天天躁狠狠躁av| 青草视频在线看看看看看看看看看| 中文字幕第9页萱萱影音先锋| 色哟哟av网址| 青青草精品| 97最新在线播放视频| 欧美人体性爱互联网第一页婷婷日本| 天天天操天天天爱| 18精品一区| 午夜黄色免费在线观看| 国产中出内射一区二区| 欧美色道啊| 东北女人av| 自拍视频一区在线观看| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 欧美性爱91| 国产精品一区二区三区在线| 伦理弟一页| av天天在线观看| 亚洲欧美自拍偷拍| 日韩视频中文字幕| 欧美色九九| 人人超碰在线观看黄| 狠狠色丁香| 99国产精品视频尤物| 午夜超碰| 超碰在线在公开超碰在线在公开| 91成人在线| 人妻少妇视频在线播放| 丰满人妻av一区二区三区| 国产精品点击进入在线影院高清| 久久粉色| 亚洲熟妇AV日韩熟妇在线| 桃色六月天| 综合色播| 爱做久久久久久| 日韩高清黄片| 九九九九精品九九九九| 国产精品对白自产拍| 日本97久久久精品| 国产精品情侣啪啪| 欧州色图区| 成人av动漫在线观看| 宅男影院久久久,99| 色香AV| 丰满熟女人妻一区二区三五十一路| 97 视频在线| 啊a一区在线| 婷婷综合久久| 色综合久| 国产一级作爱毛片| 亚洲成人日韩小说| 91av一区二区在线观看| a片久久久久久久久久久久| 狠日欧美| 91欧美网| 精品无码久久| WWW美腿丝袜香蕉中文| 日逼五月天| 99久久com免费视频′| 97人人射| 欧美性生活综合| 男女激情黄色网址| 天天色,天天干,天天干| 黄色电影在线播放综合网站| 欧美中文字幕日韩在线| 免费视频在线一区二区不卡| 亚洲成人黄色在线观看| 久久成年片色大黄全免费网站| 久久尹人大香焦视| 外站AV在线| 可乐操亚洲蜜911| 伊人久日| 啊啊啊慢点| 青青草在线视频美女| 国产吹潮女在线观看| 欧美日韩另类字幕中文| 亚洲电影91| 精品国产国产AV| 亚州久久9| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 暖暖精品二区三区观看| 欧美美女啪啪视频| 欧美无圣光在线| 丰满翘臀美女影院视频| 日韩精品三区四区| 综合久欧洲| 神马久久久久久久久久久久| 超碰98综合网| 啊啊啊啊好疼视频| 久久九九精品一区二区| 999热日韩精品| 久久粉色| 精品九九九九| 天天射天天操天天干天天吃2018| 超碰在线人妻中文字幕| 国产一区二区三区免费视频在性观看 | 91成人社区| 久9久精品视频| 亚洲偷91色| 偷拍欧美亚洲| 九九九网站| 国产精品96| 秋霞网无码| 性久久久| 动漫爆乳3D奶水一区在线观看| 亚洲精品日日夜夜52| 性色av婷婷久久一区二区点复制| 发朗少妇买婬全视频中文| 中文字幕啊啊啊在线观看视频| 激情一区二区三区在线观看| 婷婷国产精品九区| 97频视在线| 997色在线| 精品人妻15区| 97在线免费观看| 在线人成亚洲视频免费观看| 无码精品久久久天天影视| 中文一区在线视频| 国产亚洲在线| 青青草在线成人视频| 色爱欲亚洲| 九九九九免费高| 天天搞欧美| 欧美日韩欧美| 摸奶性爱视频网站在线免费播放| 国产强上视频在线观看| 五月开心网| 免费看污网站| 夜夜国自区| 久久精品一区二区| 琪琪精品免费一区二区三区| 免费一级毛片在线视频观看| 久久黄黄| 亚州日韩97| 这里只有97精品| 青春草莓视频在线观看网址| 约操熟妇| 69精品在线| 男人的天堂VA在线| 精品人妻丰满熟妇一区二区三| 日韩兔费看黄片| 亚洲 欧美 偷拍 唯美| 睡产熟女乱伦| 国产精品对白内射| 无码精品啪啪啪一区二区三区三州| 中文字幕人妻丝袜乱一区三区| 亚洲无码偷拍| 操逼逼无码| 好湿好紧好爽 视频| 亚洲一二三| 加勒比aⅴ| 婷婷干黄色| 黄片在线免费在线观看| 超碰爽人妻熟女Av| 激情婷婷丁香| 欧美亚洲国产91在线| 日本一级二级三级网站| 99精品丰满人妻无| 超碰欧美97资源| 午夜小电影在线插入淫高潮| 人人操人人摸人 | 亚洲欧美日韩精品久| 日本有码久久| 午夜福利一区二区三区四区五区色婷婷| 爱逼综合| 干婷婷综合网| 久久做97| 欧美色乱| 久草免费在线一区二区| 天天弄欧美| 精品在线78| 国产一区二区三区久久久精品| 亚洲另类在线观看| 97干综合网| 欧美中出| 婷婷久久久| 日本999精品| 久久人妻熟女一区二区| 国产女人操逼视频| 久久成年精品| 国产综合久久久麻桃个| 国产一区在线免费播放| 天美传媒在线一区| w w w.久久精品| 大香蕉黄色一区| 一本大道综合伊人精品热热| 国产在线播放成人免费| www.色婷婷| 97丝袜亚洲在线播放| 色哟哟 日韩精品| 天天插天天干| 97操碰| 国产亲戚伦亲在线| 人妻熟女一区二区三区在线| 日本久久女同性恋视频| 99热在线播放| 国产又大又粗又长视频| 亚洲精品人妻在线| 99re这里只有精品3| 91黄站| 91人妻Pr| 91劲爆| 成人麻豆av电影网站| 91人妻超碰| 中文字幕激情小说| 久久草在线综合视频| 国产在线精品电影观看| 1000部熟女视频在线观看| 长长久久88视频| 久久久久久中文| 四虎影视永久在线免费| 欧美韩国你懂得在线 | 色婷婷久久| 午夜精品久久久久久久99| 中文人妻av高清一区| 青青草在线视频人人想人人上| 久久αⅴ| 九九无码| 欧美人妻少妇| 91狠| 久久超碰网| 在线 制服丝袜中出 人妻| 后入式福利| 亚洲最新a在线观看| 天天天天天超碰| 日韩美女啪啪一区| 青青草啪啪网| 超碰在线香蕉| 五十路人妻在线| 一级黄色性爱A级片| 秋霞一区二区三区四区五区六区七区| 久久欲| 欧美激情片一区二区| 欧美中文字幕日韩在线| 97天天综合网| 国产精品探花色| 97天天做| 思思热国产在线视频| 欧美视频激情久久久久久| 51久久夜色精品国产麻豆| 黄色高清久久无码依人| 蜜乳Av成人片网站| 91国产在线精品| 亚洲成人免费中文字幕| 中文欧丝袜诱惑| 强奸乱伦av电影| 国产AV线| 亚洲欧洲另类| 97超碰日韩| 91人妻丝袜无码| 久久av无码| 久久久久久波多野吉衣高潮| 做爱A级亚欧| 啊啊啊啊好大好硬啊啊啊啊啊 | 亚洲一区二区中文字幕| 色五月婷婷麻豆在| 一级性爱网| 亚洲 图片 欧美 色图| 操逼日批| 丝袜狠狠草尤物 91| 全球成人中文在线| 清纯唯美综合| 97色插| 在线观看不卡一区二区三区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 国产精品麻豆免费视频| 国产成人天堂| 大香蕉黄色一区| 欧美劲爆第一页| 亚洲色堂免费视频| 波多野结衣被操50分钟免费视频| 欧美色图片欧美色图| 九九碰九九爱97超碰| 屁股久久久久久久久久| 性生活久久久久久久久久| 性在久久久久久| 99视频自拍区| 久久综合18p| 亚洲综合另类小说色区亚洲成av人片在www | 亚洲开心网| 五月婷婷hd| 在线可观看的黄色网址| 日逼97| 人妻精品4K4K4K4K4| 欧美一级国产一级| 天天日天天看| 大香蕉欧美国产日韩高潮| 亚洲天堂无码| 国产呦精品系列在线观看| 青青草啪啪网| 五月丁香激情综合网| 操逼操2| 综合网97| 野狼激情网| 久久国产性爱| 国产AV中文| 天天α片| 丁香五月AV| 亚洲激情综合另类男同| 巨乳特殊服务按摩| 久久夜嗨| 五月婷婷无码| 国产对白刺激视频| 九九九九九九九九九国产精品 | 成人性爱av| 国产一区二区在线看| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 欧美日韩夜夜| 日本在线播放不卡一区| 欧美人与动性人交a| 久草老司机| 麻豆区99999| 91精品伊人久久久大香线蕉91| 97干在线| 精品久操| 亚洲天堂自拍| 五月婷婷综合激情| 欧美另类精品xxxx| 家庭乱伦麻豆| 亚洲欧美国产精品久久久久久久| 东北女人的毛片| 五月天婷婷色色| 欧美一级久久久丰满| 97亚洲中文| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 久久久婷| 亚洲色图大香| 天天干夜夜一操| 日韩强奸av| 久久久久久久久久久久97 | 日韩成人高清一区二区| 97精品全部| 啊啊啊啊啊啊啊啊啊啊在线观看| 99热色这里只有精品| 欧美成人一区二区三区在线播放| 国产精品嫩草影院午夜两性| 亚洲综合首页| 日本精品加勒比海一区| 天天舔天天日天天射| 91九九九馒头| 日韩人妻资源在线看| 艹少妇网站| 日韩视频精品在线观看| 91欧美在线| 91丝袜人妻| 96久久久精品| 蜜臀久久99精品久久久久免费观| 日韩在线76| 岛国成人av在线播放网址| 天天操天天射天天日| 小说区 图片区色 综合区| 麻豆天美在线| 久久华人网| 日本999精品| 亚洲熟妇乱女区二区三区| 99精品网| 亚洲欧美日韩综合在线尤物 | 色噜噜狠狠色综无码久久合欧美| 立川理惠无码一区二区| 天天激情干| 搡老熟女免费视频| 啊啊啊好想要| 色香综合| 麻豆成人AV| 日本ZZ高免费A级视频| 欧美亚州色的图| 99国产精品免费| 色狠狠综合噜一二三区| 免费看美国人人爽,人人操 | 玖玖人人爱| 婷婷色婷婷| 男人的天堂一区三区| 嫩草一区二区在线观看| 国产高清免费不卡av| www.亚洲成人一区| 摸奶性爱视频网站在线免费播放| 丁香婷婷五月| 永久免费观看的毛片的网站| 亚洲熟女av中文字幕| 超碰人人干天天射| 欧美九九九| 插插综合网天天影视网| 日韩BBN| 欧美亚洲韩国视频十五区| 97超色| 欧美第二页午夜| 91丝袜美腿片| 人妻素股| 99蜜月精品久久| 久久久九九| 久久机热| 精品免费成人久久| 久九九九九九九九热| 婷婷性网| 久久青青草在线视频| 麻豆天美一区二区| 超碰成人人人爽人人爽| 亚洲国产成人精品久久久国产成人一区二区| 久久神马| 精品人妻1区| 一级特黄aaa大片在线观看成人一级片在线观看 | 成人精品久久久午夜福利| 欧美性爱综合,免费| 内射小黄片| 一二三四视频中文字幕在线看| 天天躁日日躁成人字幕aⅴ| 一个国产在线综合网站| 操操操日本的逼| 欧洲一级性爱视频在线观看| 一级免费啪啪片| 开心五月激情网| 亚洲色图激情小说| 久久熟妇五十路一区| 999综合色| 亚洲s色图| 97 国产精品| AV女优男人的天堂| 大肥女高潮bbwbbwhd视频| 亚洲性爱成人| 波多野结衣先锋影音| 99久久精品国产高潮| 91热爆在线| 亚洲图片欧美日韩| 干b在线性社区| 久久婷婷欧美| 日本黄色精品| 亚洲性网| 久久五十路熟女人妻| 在线国产一区二区av| 一区二区三区四区色图| 欧美中文字幕一区 | 色精品极品| 最新精品久久蜜桃 | 欧洲成人性爱视频| 国产亚洲在线| 大香蕉十区| 欧洲亚洲天堂精品| 9久久久久久| 日韩成人高清一区二区| 国产精品久久久久久久黄无码| 99ri在线视频| 欧美久久婷| 99热日| 色噜噜国产精品视频一区二区| 人人操人人干xxx| 成人八戒网站| 欧美成人国产精品| 人妻精品一区二区三区| 狠狠中文字幕| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 国产精品制服丝袜中文字幕日韩一区二区三区| 96国产污污污丝袜| 久久丝袜| 亚洲图片激情综合另类| 久久婷婷五月综合| 99xav| 日韩精品资源| 激情小说日韩无码| 一区二区三区精品久久| 午夜呻吟欧美| 亚洲97网站| 日本中文熟女视频| 99久久久无码国产精品性男| 人妻一区二区三区| 精品免费成人久久| 国产日韩色综合| 丁香六月激情| 青青青艹在线视频| 国产精品日日摸夜夜添骚逼| 免费A V在线播放| 超碰亚洲欧美日韩无| 97爱啪| 欧美岛国精品在线观看| 国产亚洲国产超碰| 久久爽爽精品| 男人天堂2017| 日本道久久综合色色| 成人网欧美风情| 韩日欧亚a级| 精品中文字幕第一页| 激情综合97| 美女爽爽爽刺痛洞洞| 亚洲欧洲自拍图片专区满春格| 婷婷色播婷婷| 九一综合网| 国产色产精品在线观看| 91free福利| 精品久久大胆人体| 思思热一热婷婷热一热| 国产精品福利资源在线尤物| 狠狠色丁香| 国产精品午夜福利视频| 一区二区三区美女超清| 99这里只有精品| 日韩欧美天堂| 天堂а√在线最新版在线| 欧美男女午夜啪啪| 久九九九九九九九热| 性开放中文AV高清无码免费看| 97精彩视频网站| 久久97视频| 国产日韩在线播放| 中文字幕精品乱码| 欧美精品二区视频在线| 日韩高潮一区| 东北女人性交| 国语对白在线播放视频| 粉嫩AV输入| 欧美性生活男人的天堂| 丰满人妻一区二区三区在线| 欧美熟妇精品黑人巨大91| 天堂8在线新版官网| 高清肉丝中文无码| 国内偷自视频区视频综合| 97网址www| 神马午夜久久| 开心激情站| 国产蜜臀精品一区二区尤物| 中文字幕亚韩| 天天插天天操天天摸天天射天天看| 欧美人人曰人人操人人射射| 很黄很污的免费网站 | 天天弄欧美| 老司机福利青青草| 夜夜嗨一区二区| 天天干夜夜鈤| 91久久久久久| 凹凸 69堂 在线播放| 黄色高清无码无码破解免费暗网 | 国产美女自拍AV| 91精品人妻一区二区三区蜜桃臀| 色激情综合网站| 78综合网| 国产精品视频内谢女人| 色一射色一射| 老司机福利青青草| 67194无码不卡| 日本熟妇浓毛hdsex| 久妇网| 日本成人在线不卡一区二区三区| 亚洲欧洲小说图片视频| 91天天看| 中文字幕在在线观看网站| 亚洲无码视频免费在线观看网址!| 日本在线不卡123| 国产老女人久久毛| 亚洲国产一区二区三区在线 | 亚洲限制级| 欧美精品一区二区少妇免费A片 | 91色伦综合| 搡老女人老妇女AAA一VU麻豆| 91久久国产综合精品| 国产 日韩 欧美高清| 欧美天堂亚洲电影院一区在线播放 | 首页亚洲国产高跟丝袜诱惑视频 | 国产精品天堂| 99青草| 欧美人与动性人交a| 久久精品视频28| 看大黄色大片原件| 香蕉av一区二区三区| 人人干人人搞人人摸| 久久久免费高清中文视频| 97人人超| 国产精品自拍视频| 欧美日韩222| 啪啪啪东京| 日韩精品9区| 人人看人人摸人人色| 九九操久久国产免费视频| 91oumei| aaa亚无码专区| 亚洲吊色| 凸凹视频在线观看| 亚欧洲日韩国产精品| 超碰97精品在线| 午夜男女爽爽爽影院视频| 亚洲青色欧美| 亚洲天堂无码| 久久 精品| 日产中文字幕2020| 亚洲成人一区二区精品| 美女91网| 91女网站| 成人三一级一片aaa| 亚洲日韩狠狠撸视频| 精品国产少妇高潮视频| av一区二区三区四区| 在线小说视频一区| 亚洲男人的天堂亚洲| 日本性感人妻91| 自拍亚洲综合| 丁香六月激情| 操逼视频国产无套| 玖玖爱伊人玖玖爱| 欧美综合站| 1级黄色夫妻对换性交免费看| 麻豆区久久久久亚| 蜜臀av在线播放一区二区三区| 国产福利电影| 亚洲情色无码一区二区三区| 综合日本女人伊人| 亚洲精品人妻在线| 97美日韩视频| 91久久久视| 极品极品色影院| 日韩免费中文字幕视频| x97av| 婷婷日韩一区二区三区中文字幕在线| 国产精品人人爽人人做可爱福利| 后入综合久久| 欧美天天综| 亚洲欧洲国产综合av| A 天堂| 亚洲素人综合| 欧美亚男人的天堂| 抽插无码高清一区| 欧美性爱第一页久久| 超碰在线综合97| 夜夜狼人妻| 激情久久久| 亚洲AV成人精品网站在AV| 亚洲欧美91√| 这里是精品| 视频分类 国内精品| 日韩日本欧美在线观看| 91中出在线| 91精品成人| 激情深爱五月天| 思思热免费在线视频| 天天cao在线| 亚洲色图伊人网| 99热这里只有精| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 免费视频97| 亚欧美综合网。| 亚洲综合春色| 日本一级性爱| 国产精品久久久久久久AV大片 | 四虎永久在线精品免费网址| 黄aaaaaaaaaaaaaaaaaa色网站| 9国产超碰| 97资源亚洲| 日韩淫色网| 白丝AV网站| 九九AV| 综合久久六月久久婷婷| 日韩精品资源专区二区| 变态综合色| 午夜AV污污污| 69人妻精品丰满熟女区| 亚洲影视综合网| 国产 丝袜 欧美中文 另类| 最新国内自拍av免费| 射综合网| 日日骚av| 搡老女人老91妇女熟女| 99热在线不卡| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 精产品久久| 亚洲天堂电影网| 熟女欧美日韩综合婷婷| 国产不卡片| 天天日夜夜爽| 新版天堂中文资源8在线| 国产精品女生av| 国产精品视频内谢女人| 久久这里只| 五月天精品| 日本免费一区二区不卡| 色偷偷色偷偷欧美日韩| yirendaxiangjiashipin| 成人资源中文字幕在线观看天天| 天天看,天天做| 东北丰满熟女国产一区| 成人免费毛片| 国产综合色精品在线观看| 中文字幕制服诱惑| 啊啊啊水好多| 亚洲综合另类色图| 五十路人妻在线| 老女人老91妇女老热女| 色噜噜人妻丝袜AV资源| 国产天天骚| caopeng97| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 亚洲 综合 第一页| 日本欧美色| 久草婷婷| 麻豆性爱视频在线播放| 欧美亚洲丝袜美女电影| 欧美日韩国产中文精品字幕自在自线,| 五月激情小说| 人人操av| 99视频只有精品| 久久激情网| 亚洲欧美经典一区二区| 一区二区三区欧美激情| 亚洲第一在线视频| 中文久久爆乳| 国产福利第一视频| www…国产操逼| 国产亚洲禁久一区二区| 精品一二三区久久AAA片| 色综合久久88色综合久久天天| 99热99在线播放激情| 青娱乐亚洲自拍| 97精品熟女少妇一区| 女人被男人桶爽视频网站| 巨爆乳一区二区爆乳区| 福利操逼| 亚洲无码一二三区| 国产女人操逼视频| hd成人一区二区在线| www成人啪啪18秘 免费| 1769精品一区二区三区| 天天插天天操| 六月激情婷婷| 亚洲精品男人的天堂| 97资源制服丝袜| 97久久久久久久精| 精品免费一区二区三区在线亚洲人成| 人人色人人射人人妻| 一区二区三区日韩欧美| 精久久久91| 中文字幕AV片| 影音资源男人日韩| 亚洲精品黄码久久久久| 夜夜欢天天干| 天天日天天操天天射河南省| 国产女s强制榨精视频| 色五天伊人| 久久三| 久久久久国产无av| 日本狠狠干| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 91美女在线视频| 欧美精品久久| 四虎884| 一起草视频在线| 日本色色色网站免费看不卡| 青青免费在线视频一区 | 激情网色| 人人考人人摸人人干| 五月丁香成人网| 江都AV在线| 淫骚熟女一区二区三区| 尤物视频偷拍免费| 男人的天堂VA| 国产精品高潮久久久无码| 国产综合在线视频网站| 亚洲色图日韩精品| 丁香五月性| 美女啊啊啊啊啊啊啊| 中文字幕久久精视频久久大全| 男人的天堂久久狠| 992大香蕉| 亚洲无码偷拍| 97人人操人人摸人人爱| 欧美激情综合| 一区二区首页| 久湿久久| 60秒不遮不挡| 婷婷在线视频在线观看| 凸凹视频在线观看| 蜜臀久久99精品久久久老,,| 99久久综合| 超碰9 7女人| 久草午夜| 成人性爱视频在线看| 99热精品在线播放| 天天综合有色网| 久久久91福利姬| 99999精品| 天天躁日日躁xxxxx| 九九碰九九爱97| 欧洲射精91| 婷婷激情五月综合| 又大又大又大又粗爽高潮观看 | 操逼精品视频| 97在线播放| 国产肏逼网站| 蜜臀AV网站| 午夜福利久久久噜久噜久久综合| 欧美色图在线视频少妇| 久久精品熟妇丰满人妻99| 国产毛片在线| 五月天激情综合网| 1二区9| 久久欧美激情| 人人摸.人人色| 丁香六月综合激情| 欧美页片| 99夜夜操| 激情网色| 91是天天| 欧美天天在线| 欧美日韩国产成人高清| 最新国产亚洲精品精品国产亚洲综合| 高凊专区人人操| 欧美激情黑人| 欧美高清无码免费视频高清版| 一起草精品人妻| 老师充足的奶水小说| 欧美激情 一区| 尤物视频一区| 天综合网| 麻豆a'v电影| 无码动漫av中文字幕| 亚洲精品亚洲人成人网| 区二区亚洲婷| 丝袜亚洲综合| 婷婷AV一区二区三区| 亚州再线| 天美传媒AV在线| 播播亚洲小说亚洲| 日韩二级| 日本男人天堂| 中日韩欧美精品无码AⅤ一区二区| 日韩AV中文字幕电影| 国语精品av| 国模不卡| 97高清啪啪| 91天堂| 亚洲午夜福利视频| 十八禁黄色成人网站观看| 91欧美综合| 日韩性爱视频免费在线| 亚洲激情色片 | 在线免费观看高清无码视频| 欧美性生活综合| 欧美性天天影院| 亚洲**2021在线观看| 欧美男人一区| 九九久精品| 99热99在线播放激情| 中文字幕55555| 少妇精品久久| 国产热RE99久久6国产精品首| 色网在线| 91成人高清在线观看| 亚洲色人妻综合| 狠狠入| 九九黄色视频在线观看| jiujiujiujingpin| 婷婷av在线中文字幕| 色香色香欲天天天影视综合网| 色噜噜人妻av中文字幕| 人妻系列无码专区中文有码 | 国产真实野战在线视频| 嗯嗯啊啊视频一区二区三区| 久久精品国产亚洲AV清纯| 五月天色图影视| 中文字幕国产| 日韩av不卡在线观看| 色综合99999| 日本三级A片网站com| 人人操天天爽| 久久久96| 丰满人妻-区二区三区免费| 综合亚洲网| 欧美刺激色黄片免费看| 精品视频久久区| 欧美日本中字另类在线| 久久一二三四五六七八九区区| 天堂69亚洲精品中文字| 一二三啪啪专区| 91久久| 玖玖97综合| 不卡在线观看视频| 成人欧美一区二区三区黑人一| 亚洲女优有码无码高清| 欧美啪啪女女| 欧美 日韩第一性色| 人人看人人摸人人色| 精品一区99999| 自拍大香蕉乱插| 欧美在线|亚洲| 8050无码八戒| 欧美综合自拍亚洲综合图| 一区二区三区 日韩欧美| 亚洲超碰综合网| 亚洲第一黄色av网站| 桃色人妻在线视频| 日韩亚洲中文字幕在线| 蜜桃丰满熟妇av无码区不卡| 粉嫩粉嫩一区性色AV片| 校园春色综合香蕉| 欧美日韩香蕉| 成人精品水蜜桃久久久久久久| 成人性爱美曰韩| 欧美综合在线第一页| 成人黑料社久久| 99re28在线观看| 日本在线一二| 96精品久久久久久久久久| AV天堂电影网| 欧美十八禁视频| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产精品扒开腿做爽爽爽视频| 视频二区美腿丝袜制服人妻欧美| 四虎在线观看视频| 精品一区96| 久久无码一区二区二三区性色| 东北女人| 久久精品高清AV| 97在线观看免费| 色一情一乱一乱一区91Av| 亚洲男人的天堂va亚洲男人社| 久久日韩毛| 日韩免费av片高清无码| 免费啊啊啊| 国产精品岛国片在线观看| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲熟女国产综合另类| 亚洲精品免费中文字幕| 亚州色国| 亚洲精品aa久久伊人| 青青草影视蜜久久| 激情五月天综合网| 成人线上超碰| 欧洲精品一区二区三区| aaaa少妇高潮大片| 狠狠入| 老熟女91av| 欧美性爱91| 老色鬼成人精品视频下载大在线观看| 99超级碰免费视频| 水多多映视AV| 亚洲人妖网| 熟妇操花| 97干97色| 91国产美女丝袜足交精品视频| 爆操无码| 天天噜| 激情欧美日韩女同久久| 亚洲欧美一区二区三区一猛片| 欧美九九九九九| 九九热五区| 中文字幕aⅴ在线视频| 久夜操| 国产农村妇女精品一二区| 亚洲中文日韩欧美大香蕉视频| 日本 情色 1区| 欧美亚洲第1页| 美中日韩无码| 欧美色性情| 欧美日韩亚洲高清不卡一区二区三区| 92午夜免费福利视频| 国产精品乱码久久久久| 成人久久精品| 啪啪一区| 欧美日韩*字幕一区| 加勒比性爱成人在线| 亚洲欲色9532548967一区| 大香蕉黄色一级片免费看| 欧美第五页| 91丝袜美女| 欧美性爱三区二区| 欧美综合网在线| 91综合国产精品| 激情五月综合网| 国产精品ⅴ无码大片在线看.| 91久久久久| 麻豆久久久久久久久丝袜| 蜜乳AV网址| 韩国一级做a久久久久| 97精品97久久| 天堂九九九九九九九九九| 乱伦图一区| 试看60秒 爽| 91男人天堂网| 九九热精品免费视频| 欧美日韩性爱无码| 午夜操一操| 舔舔啊| 亚洲男人的天堂V| 国产精品午夜高潮呻吟久久av| 亚洲av性爱电影| 在线 欧美 亚洲| 日韩/97| 制服乱伦| 日韩欧美大力操| 欧美激情区| 日本精品久久久久久久| 日韩偷拍色图| 国产1769在线| 欧美日韩国产一区二区小黄片大全| 女人爽到高潮潮喷18禁网站| 国产午夜精品一区二区三区牛牛| 狠插 制服 自拍| 99热婷婷| 99精品视频在线观看免费| 国产强奸乱伦第1页| 久久久久久久久久久精| 97亚洲资源| 五月婷婷综合网| 婷婷午夜成人色中色| 久久精品国产精品一区| 啊啊啊 在线| 久干网| 啪啪视频mP4| 五月婷婷激情网| 免费的很黄很污的全部视频| 亚洲天堂精品日韩电影| 暴力av在线| 91久久久老司机| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 好色美女九七第一页| a人欧美综合天堂麻豆| 亚洲av在线免费观看| 日本肉体xxxx裸交| 在线A日本| 黄色免费一级在线毛片| 日逼97| 公司1区2区3区精产精| 久久一二三四不卡| 91N五十路| 色五月亚洲| 日韩去日本高清在| 欧美性爱日韩性爱| 亚洲性爱成人| 久久久久久九九九| 婷婷丁香人妻| 精品制服美女中文一区二区三区| 久久久久久9999| 五月天伊人|