2017-07-26 62 views
0

我使用ubuntu和grub 2引導裝載程序。ubuntu內核,INT 13H中斷,文件系統寫入

的問題是:

我想知道,如果Ubuntu的內核使用BIOS/UEFI服務,特別是INT 13H中斷,或者如果內核是BIOS獨立?

在這最後一種情況下,Ubuntu對待低級磁盤服務的方式是什麼?那麼Ubuntu是如何攔截這個調用並將其傳遞給操作系統的本地磁盤I/O機制,繞過用於底層磁盤讀/寫訪問的BIOS例程?

我的理解是Linux內核通常不使用BIOS服務進行磁盤I/O,因爲它在保護模式下運行。但是,我不知道是否可能存在一些邊緣情況,這種情況並非如此,並且可能發生內核將執行寫操作插入到插入磁盤的文件系統中的情況。

所以我想問一些關於這個話題的提示。

+1

SO不是「Ubuntu郵件列表」,但無論如何都歡迎。也許你與https://askubuntu.com/混淆? – TGrif

+0

嗨!謝謝 !我向你道歉。然而,我使用了askubuntu.com,但他們在這裏提到我提出的問題。歡迎提供有關ubuntu內核開發人員可以詢問的地方。提前致謝。 – vince66

+0

足夠的代價,你可能會在這裏找到一些內核開發者。 – TGrif

回答

0

看看/arch/x86/boot/edd.cUbuntu Zesty Zapus master branch

/* 
* Read the MBR (first sector) from a specific device. 
*/ 
static int read_mbr(u8 devno, void *buf) 
{ 
    struct biosregs ireg, oreg; 

    initregs(&ireg); 
    ireg.ax = 0x0201;  /* Legacy Read, one sector */ 
    ireg.cx = 0x0001;  /* Sector 0-0-1 */ 
    ireg.dl = devno; 
    ireg.bx = (size_t)buf; 

    intcall(0x13, &ireg, &oreg); 

    return -(oreg.eflags & X86_EFLAGS_CF); /* 0 or -1 */ 
} 

貌似int 0x13仍然在使用。

但要注意,當內核在使用BIOS中斷時在實模式下運行。之後,它進入保護模式,不再訪問BIOS:內核現在可以設置自己的驅動程序,從而獲得更好的靈活性和性能。

BIOS是從不在內核在保護模式下執行時再次調用。相反,內核從此使用自己的驅動程序。

+0

請澄清一下: – vince66

+0

@ vince66在哪方面? – Downvoter