Memory Technology Device
Type of device file in Linux for interacting with flash memory

A Memory Technology Device (MTD) is a type of device file in Linux for interacting with flash memory. The MTD subsystem was created to provide an abstraction layer between the hardware-specific device drivers and higher-level applications. Although character and block device files already existed, their semantics don't map well to the way that flash memory devices operate.
USB sticks, MMC cards, SD cards, CompactFlash cards and other popular removable devices are not MTDs. Although they contain flash memory, this is hidden behind a block device interface using a flash translation layer and not directly interfacing with the kernel.
When using an MTD, the use of an MTD-aware file system such as UBIFS, JFFS2 or YAFFS is recommended. The MTD subsystem exports block devices as well, which allows the use of common filesystem like ext4. However, using an MTD this way is not recommended since there is neither detection of bad blocks nor any kind of wear leveling.
MTDs don't address to the kernel like traditional storage devices (solid-state drive, hard disk drive, etc.) using LBAs, but rather using offsets and sizes.
Sources and credits
This article is adapted from the Wikipedia article “Memory Technology Device”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Images, from Wikimedia Commons:
- Macronix MX29LV320ATTC-70G 20110908.jpg by Hippie2000, CC BY-SA 3.0
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.