2017-07-26 6 views
0

私はubuntuとgrub 2ブートローダを使用しています。ubuntu kernel、INT 13H割り込み、ファイルシステム書き込み

質問です:

私はUbuntuのカーネルは、特に、INT 13H割り込みをBIOS/UEFIサービスを使用して、またはカーネルがBIOSが独立している場合かどうかを知りたいのですが?

Ubuntuが低レベルのディスクサービスを扱うこの最後のケースでは、つまり、Ubuntuは呼び出しを傍受し、低レベルのディスクの読み込み/書き込みアクセス用にBIOSルーチンをバイパスして、オペレーティングシステムのネイティブディスクI/Oメカニズムに渡します。

私が理解しているところは、Linuxカーネルは通常保護モードで動作しているため、ディスクI/OにBIOSサービスを使用していないことです。しかし、私は、これが真実ではなく、カーネルがプラグインされたディスクのファイルシステムへの書き込み操作を実行するという事態が発生する可能性があるかどうかはわかりません。

私はこのトピックについてのヒントを尋ねると考えました。

+1

SOは「Ubuntuメーリングリスト」ではありませんが、とにかく歓迎します。 https://askubuntu.com/で混乱するかもしれませんか? – TGrif

+0

こんにちは!ありがとう!あなたにお詫び申し上げます。しかし、私はaskubuntu.comを使いましたが、彼らは私が提起した質問について私にここでお答えしました。ヒントは、私がubuntuカーネル開発者について聞くことができるところを歓迎しています。前もって感謝します。 – vince66

+0

ほんとうに、カーネル開発者がいるかもしれません。 – TGrif

答えて

0

Ubuntu Zesty Zapus master branchから/arch/x86/boot/edd.cを見てみましょう:int 0x13はまだ使われているよう

/* 
* 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 */ 
} 

が見えます。

注意:BIOS割り込みを使用すると、カーネルはリアルモードで動作しています。その後、プロテクトモードに移行し、BIOSはもはやアクセスされません。カーネルは、独自のドライバを今すぐセットアップすることができ、柔軟性とパフォーマンスが向上します。

BIOSはであり、は、カーネルが保護モードで実行されたときに再び呼び出されます。代わりに、カーネルはそれ以降の独自のドライバを使用します。

+0

私は明確化を求める: – vince66

+0

@ vince66どのような面で? – Downvoter

関連する問題