「Intel MPX」の版間の差分
提供: セキュリティ
(ページの作成:「Intel MPX (Intel Memory Protection Extensions, インテルメモリプロテクションエクステンションズ) とは、インテルのCPUの機能で...」) |
(→GCCコンパイラによるIntel MPXの利用) |
||
行29: | 行29: | ||
* [[Linuxカーネル]]の[[Intel MPX]]のサポート(Linux 3.19 Kernel) | * [[Linuxカーネル]]の[[Intel MPX]]のサポート(Linux 3.19 Kernel) | ||
== GCCコンパイラによるIntel MPXの利用 == | == GCCコンパイラによるIntel MPXの利用 == | ||
− | - | + | * [[gcc] 5.0 からサポートされます。 |
+ | * -fmpx オプションで有効になります。 | ||
+ | |||
== 参考資料 == | == 参考資料 == | ||
* [https://code.google.com/p/address-sanitizer/wiki/IntelMemoryProtectionExtensions google code IntelMemoryProtectionExtensions] | * [https://code.google.com/p/address-sanitizer/wiki/IntelMemoryProtectionExtensions google code IntelMemoryProtectionExtensions] |
2015年4月19日 (日) 00:23時点における版
Intel MPX (Intel Memory Protection Extensions, インテルメモリプロテクションエクステンションズ) とは、インテルのCPUの機能でアプリケーションのメモリアクセスを保護する機能を提供します。
読み方
- Intel MPX
- いんてる えむぴーえっくす
- Intel Memory Protection Extensions
- いんてる めもり ぷろてくしょん えくすてんしょんず
- インテルメモリプロテクションエクステンションズ
- いんてる めもり ぷろてくしょん えくすてんしょんず
- Skylake
- すかい れいく
概要
Intel MPXは、インテルの Skylake と呼ばれる CPU から実装される機能です。Skylake は、 第六世代のCore i processor で、2015年に発売される予定です。2015年の4月時点では、MPXをサポートされたCPUは、出荷されていません。
Intel MPXは、配列の境界チェックをハードウェアでサポートします。命令とレジスタが追加されます。
実行環境
- IntelのSkylake 以降のCPU
- Intel Software Development Emulator
MPX
MPXのために、128bitのBNDレジスタが4つ追加されました。配列の最初と最後のアドレスをレジスタの上位(Upper Bound)と下位(Lower Bound)に格納します。
プレフィックスが 0f のため、 MPX 未対応のCPUでは nop として扱われます。
新しいレジスタ
- BND0-3 Bounds レジスタ
- 128bit長、64bitずつメモリの上限と下限を設定します。
- BNDCFGU
- Bound Paging のベース (リング3)
- BNDCFGS
- Bound Paging のベース (リング0-2)
- BNDSTATUS
- Bound Paging の操作アドレスやエラーコードが格納されます。
利用できる環境
Intel MPXに対応したプログラムとOS(カーネル)が必要です。
GCCコンパイラによるIntel MPXの利用
- [[gcc] 5.0 からサポートされます。
- -fmpx オプションで有効になります。
参考資料
- google code IntelMemoryProtectionExtensions
- Intel Architecture Instruction Set Extensions Programming Reference
関連項目
- バッファオーバーラン(バッファオーバーフロー)
- インテル