メモリ技術デバイス

ルータのフラッシュEEPROM - 真のMTD

メモリテクノロジーデバイス(MTD)は、 Linuxにおいてフラッシュメモリとやり取りするためのデバイスファイルの一種です。MTDサブシステムは、ハードウェア固有のデバイスドライバと高水準アプリケーションの間に抽象化レイヤーを提供するために作成されました。キャラクタデバイスファイルとブロックデバイスファイルは既に存在していましたが、それらのセマンティクスはフラッシュメモリデバイスの動作と適切にマッピングされていませんでした。

USBメモリMMCSDコンパクトフラッシュなどの一般的なリムーバブルデバイスはMTDではありません。フラッシュメモリを搭載していますが、フラッシュ変換層(Flash Translation Layer)を使用したブロックデバイスインターフェースの背後に隠されており、カーネルと直接インターフェースすることはありません。[ 1 ]

MTDを使用する場合は、 UBIFSJFFS2YAFFSなどのMTD対応ファイルシステムの使用をお勧めします。MTDサブシステムはブロックデバイスもエクスポートするため、ext4などの一般的なファイルシステムを使用できます。ただし、不良ブロックの検出やウェアレベリング機能は一切ないため、この方法でMTDを使用することは推奨されません。

MTD は、従来のストレージ デバイス (ソリッド ステート ドライブハード ディスク ドライブなど)のようにLBAを使用してカーネルをアドレス指定するのではなく、オフセットとサイズを使用します。

参考文献

さらに読む

  • クリストファー・ハリナン(2010年)『組み込みLinux入門:実践的アプローチ』(第2版)第10章:ピアソン・エデュケーション。ISBN 978-0-13-706110-5{{cite book}}: CS1 メンテナンス: 場所 (リンク)