2017-12-01から1ヶ月間の記事一覧

x86_64アーキテクチャ

制御の移譲(=control transfer) 制御の移譲とは、現在実行されているプロシージャー(=procedure)の実行を中断して、別のプロシージャーを実行すること。制御を移譲する手法は、 コール(=call) ジャンプ(=jump) ハンドラ(=handler) の3種類ある。プロセ…

x86_64アーキテクチャ

タスク タスクは、プロセッサがディスパッチ(=dispatch)・実行(=execute)・中断(=suspend)を行う処理単位。プロテクティッドモードでは、すべての処理はいずれかのタスク内で行われる。そして、OSは少なくとも一つのタスクを作らなくてはならない。タスク…

x86_64アーキテクチャ

割り込み・例外 割り込みや例外の発生は、システム中にある特定の状態が生じたことを示す。割り込みは、ハードウェアからの信号等により、プログラムの実行と非同期に(ie. ランダムなタイミングで)起こる。また、INT命令(INT n, INT 3, INTO)を使うことで、…

x86_64アーキテクチャ

プロテクション Intel 64アーキテクチャでは、プロセッサレベルで、様々な保護機構(protection)が用意されている。これを用いる事で、OSは、カーネルをユーザーアプリケーションから保護したり、カーネル自身のバグによってカーネルが壊れるのを防いだりして…

x86_64アーキテクチャ

メモリアクセス(続き) ページング(=paging) メモリ領域を分割する方法には、セグメントの他にページングがある。セグメントが、意味のある区切りでメモリを分割したのに対し、ページングは、メモリを決まった大きさに分割する。ページングはセグメントと対…

x86_64アーキテクチャ

メモリアクセス protected modeと64-Bit modeではメモリアクセスの方法が(少し)異なる。protected modeでは、セグメントと(オプションで)ページを使って、物理メモリ(=physical memory)にアクセスする。一方で、64-Bit modeでは、セグメントが実質的に…

x86_64アーキテクチャ

アーキテクチャの種類 Intel developer's manual (以降、IDMと略す) vol-1 ~ vol-4をざっと読んだので、内容を忘れないうちにメモ。この後は、パタヘネ本を読んでいこうと思う。というのも、IDMでは、「アーキテクチャ」が説明されている。だから、実際の実…