본문 바로가기

학부_대학원/임베디드 리눅스

MTD 및 파일시스템 정리 -1

SMALL

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

 

LIST