MTD(Memory Technology Device)
--> A Memory Technology Device (MTD) is a type of device file in Linux for interacting with flash memory.
기존 리눅스에서 디바이스를 처리할 때 character device 또는 block device 형태로 디바이스를 처리한다.
하지만 flash memory라는 형태의 디바이스를 처리하는데 있어서 character, block 형태로 처리하기 어렵다.
애매한 이유는 다음과 같다.
- 캐릭터 디바이스는 seek를 지원하지 않는다.
- A Character ('c') Device is one with which the Driver communicates by sending and
receiving single characters (bytes, octets).
- A Block ('b') Device is one with which the Driver communicates by sending entire blocks of data.
- 블럭 디바이스는 write와 erase를 구분하지 않는다.
이러한 이유들로 플래시 메모리를 처리하기 위한 처리 작업들이 요구되어 졌다.
그 작업의 일환으로 FTL(Flash Translantion Layer)인 Flash Device를 block device처럼 보이도록 변환해주는 Layer로 이를 통해서 기존의 block device용으로 개발된 파일 시스템을 변경없이 flash memroy위에서 사용할 수 있게 되었다.
그리고 이러한 Flash Memory를 사용할 때 주로 사용되어지는 파일 시스템은 임베디드에서 많이 본 JFFS2, YAFFS, Squash등이 사용된다.
디바이스로 인식되면 리눅스 디렉토리 tree에 다음과 같은 위치에 표시된다.
/dev/mtdN - 디바이스, character device
/dev/mtdblockN - 파일시스템, block device
플레시 메모리 덤프나 마운트할때 필요한 내용이다.
ref. https://www.embhack.com/block-driver-vs-character-driver/
ref. https://en.wikipedia.org/wiki/Memory_Technology_Device
'학부_대학원 > 임베디드 리눅스' 카테고리의 다른 글
낸드 플레시 물리 덤프 분석 방법 정리 (0) | 2020.11.16 |
---|---|
tcpdump cross compile (0) | 2019.05.15 |
[임베디드 정리] (0) | 2017.07.17 |
(임베디드)리눅스 커널 모듈 - IOCTL (0) | 2017.07.14 |
(임베디드)리눅스 커널 모듈 - 인터럽트, 플랫폼 디바이스 드라이버 (0) | 2017.07.13 |