JFFS2

JFFS2
JFFS2
개발자데이비드 우드하우스
풀네임플래시 파일시스템 버전2 저널링
소개했다2001년 9월 23일(2001-09-23) Linux 2.4.10 탑재
특징들
투과적 압축zlib, 루빈 및 rtime
다른.
지원되는 운영 체제리눅스

저널링 Flash File System 버전2 또는 JFFS2플래시 메모리 [1]디바이스에서 사용하는 로그 구조 파일시스템입니다JFFS의 후속 버전입니다.JFFS2는 2001년 9월 23일 커널 버전 2.4.10 릴리스의 일부로 Linux 커널 메인라인에 병합된 이후 Linux 커널에 포함되어 있습니다.JFFS2는 Das U-Boot, Open Firmware, eCos RTOS, RTEMS RTOS 및 RedBoot같은 일부 부트 로더에도 사용할 수 있습니다.JFFS2의 가장 중요한 용도는 OpenWrt입니다.[2]

JFFS2를 대체하기 위해 LogFS, UBIFSYAFS라는 최소 3개의 파일 시스템이 개발되었습니다.

특징들

소개된 JFFS2:

  • NAND 플래시 장치 지원.NAND 장치는 순차 I/O 인터페이스를 갖추고 있어 메모리 매핑을 통해 읽을 수 없기 때문에 상당한 양의 작업이 필요했습니다.
  • 하드 링크온디스크 형식의 제한으로 인해 JFFS에서는 이 작업을 수행할 수 없었습니다.
  • 압축.zlib, rubin, rtime 및 lzo의 4가지 알고리즘을 사용할 수 있습니다.
  • 퍼포먼스 향상JFFS는 디스크를 순전히 순환 로그로 취급했습니다.이로 인해 불필요한 I/O가 많이 발생하였습니다.JFFS2의 가비지 컬렉션알고리즘의해, 이것은 거의 불필요하게 됩니다.

설계.

JFFS와 마찬가지로 파일 및 디렉토리의 변경은 노드에 "로그인"되며, 그 중 두 가지 유형이 있습니다.

  • inodes: 파일메타데이터가 포함된 헤더와 그 뒤에 파일데이터 페이로드가 있습니다(있는 경우).압축 페이로드는 1페이지로 제한됩니다.
  • derent nodes: 각각 이름과 inode 번호를 포함하는 디렉토리 엔트리.하드 링크는 같은 inode 번호를 가진 다른 이름으로 나타납니다.특별한 inode 번호0은 링크 해제를 나타냅니다.

JFFS와 마찬가지로 노드는 작성 시 유효한 으로 시작되며 새로운 버전이 다른 곳에서 작성되면 사용되지 않게 됩니다.

단, JFFS와는 달리 순환 로그는 없습니다.대신 JFFS2는 플래시 미디어의 지우기 세그먼트와 같은 크기의 단위인 블록을 취급합니다.블록은 한 번에 하나씩 노드에서 위로 채워집니다.클린 블록은 유효한 노드만 포함하는 블록입니다.더티 블록에는 사용되지 않는 노드가 하나 이상 포함되어 있습니다.사용 가능한 블록에 [3]노드가 없습니다.

쓰레기 수집기는 백그라운드에서 작동하여 더러운 블록을 빈 블록으로 바꿉니다.유효한 노드를 새 블록에 복사하고 오래된 노드를 건너뜁니다.이렇게 하면 더티 블록을 지우고 프리 블록으로 지정된 특수 마커를 사용하여 태그를 지정합니다(소거 [3]작업 중에 전원이 끊길 경우 혼란을 방지할 수 있습니다).

웨어 레벨링을 보다 균등하게 해, 소거가 정적인 파일 시스템에 너무 집중되는 것을 막기 위해서, 가비지 콜렉터는 클린 [3]블록도 소비하는 일이 있습니다.

단점

로그 구조 설계로 인해 JFFS2의 단점은 다음과 같습니다.[3]

  • 마운트 시 모든 노드를 계속 검색해야 합니다.플래시 장치가 기가바이트 범위로 확장됨에 따라 이 속도는 느리고 점점 더 심각한 문제가 되고 있습니다.이 문제를 해결하기 위해 EBS(Erase Block Summary)는 Linux 커널 버전 2.6.15에서 도입되었습니다.EBS는 각 블록의 끝에 배치되고 블록에 쓸 때마다 업데이트되며 블록의 내용을 요약합니다. 마운트 중에는 전체 블록을 검색하는 대신 EBS가 읽힙니다.
  • 작은 데이터 블록을 많이 쓰면 압축률이 음이 될 수 있으므로 응용 프로그램에서 큰 쓰기 버퍼를 사용하는 것이 중요합니다.
  • 디바이스에 남아 있는 사용 가능한 여유 공간의 양을 알 수 있는 실질적인 방법은 없습니다.이는 추가 데이터를 압축할 수 있는 정도와 쓰기 시퀀스에 따라 달라지기 때문입니다.

「 」를 참조해 주세요.

외부 링크

레퍼런스

  1. ^ "Memory Technology Device (MTD) Subsystem for Linux". www.linux-mtd.infradead.org. Retrieved 2021-05-15.
  2. ^ "The OpenWrt Flash Layout - OpenWrt Wiki". Wiki.openwrt.org. 18 January 2010. Retrieved 2014-03-04.
  3. ^ a b c d "Software Profile: Journaling Flash File System, Version 2 (JFFS2)" (PDF). micron.com. 2011. Archived from the original (PDF) on 2014-03-07. Retrieved 2014-03-04.