DOI QR코드

DOI QR Code

Implementation of The User-level Flash File System Based on Linux

리눅스 기반의 사용자 수준 플래시 파일 시스템의 구현

  • 권우일 (한국전자통신연구원 임베디드S/W기술센터) ;
  • 박현희 (숭실대학교 대학원 컴퓨터학) ;
  • 양승민 (숭실대학교 컴퓨터학부)
  • Published : 2004.06.01

Abstract

The number of applications of small embedded systems such as PDAs, electronic note books, etc. based on Kinux, have increased. Due to the monolithic characteristic of Linux kernel, it is not suitable to satisfy the various kinds of embedded application requirement. To assist the shortcoming of monolithic kernel, we implement uJFFS 113th file system as an application program process which runs in user space. This solution consists of a file system and a flash device driver, and makes Linux kernel smaller by separating the file system from the kernel. uJFFS consists of ujffs_fs that plays a part of file system and ujffs_drv that controls a flash device. Which provides the same user interface as Linux does. A Device driver for the physical device is implemented in user pace, which prevents kernel failures from file system errors. So uJFFS can increase stability of the system.

리눅스를 운영체제로 사용하는 PDA, 전자수첩 등의 소형 임베디드 시스템의 사용이 증가하고 있다. 그러나 리눅스 커널은 모노리딕(monolithic)하다는 특성 때문에 다양한 형태의 임베디드 시스템에 필요한 요구사항을 만족하지 못하고 있다. 본 논문에서는 모노리딕 커널의 단점을 보완하기 위해 리눅스에서 널리 사용되는 JFFS 파일 시스템을 커널에서 분리하여 사용자 수준에서 응용 프로그램 프로세스로 실행되는 uJFFS를 구현한다. uJFFS는 파일 시스템과 플래시 디바이스 드라이버 구성되며 커널과 분리되어 실행되므로 커널을 소형화할 수 있다. uJFFS는 파일 시스템의 자료구조가 사용자 주소 공간에 존재하며, 파일 시스템을 담당하는 ujffs_fs와 플래시 디바이스를 제어하는 ujffs_drv 드라이버로 구성된다. 또, uJFFS는 기존의 리눅스에서 제공하는 것과 동일한 인터페이스를 지원한다. 물리장치에 접근하기 위한 디바이스 드라이버 역시 사용자 영역에서 구현되어 장치나 파일 시스템의 오류가 발생하더라도 커널에 미치는 영향을 최소화하여 시스템의 안정성을 증가시길 수 있다.

Keywords

References

  1. Alessandro Form, David B. Golub and Bershad, 'An I/O System for Mach 3.0,' Proceedings of the Usenix Mach Symposium, November, 1991
  2. Understanding the Flash Translation Layer(FTL) Specification,' http://www.intel.com, December, 1998
  3. David Woodhouse, 'JFFS The Journaling Flash File System,' http://sources.redhat.com/jffs2, 2000
  4. David B. Golub and ard P. Draves, 'Moving the Default Memory Manager out of the Mach Kernel,' Proceedings of the USENIX Mach Symposium, November, 1991
  5. Hari Krishna Vemuri, 'Userdev:A Framework For User Level Device Drivers In Linux,' April, 2002
  6. Randall W. Dean, 'Data Movement in Kernelized Systems,' Proceedings of the USENIX Workshop on Micro Kernels and Other Kernel Architectures, pp.243-261, April, 1992
  7. Daniel P. Bovet, Marco Cesati, 'Understanding the LINUX KERNEL 2nd,' O'reilly, December, 2002
  8. Rubini, A., Corbet, J., 'Linux Device Drivers 2nd,' O'reilly, June, 2001
  9. Brent B. Welch, John K. Ousterhout, 'Pseudo Devices : User-Level Extensions to the Sprite File System,' In Summer USENIX Conference, June, 1988
  10. Fitzhardinge, J., 'Userfs:A user file system for linux,' ftp://www.tldp.org/HOWTO/Module-HOWTO/index.html, August, 2001
  11. Fitzhardinge, J., 'Userfs-Filesystems Implemented as User Processes,' ftp://sunsite.unc.edu/pub/Linux/ALPHA/userfs, 1997
  12. Jeremy Elson, 'FUSD:A Linux Framework for User-Space Device,' http://www.cfrclemud.org/jelson/softwarei/fusd, Octber, 2001
  13. Theodore Ts'o, 'Standalone Device Drivers in Linux,' Proceedings of the 1999 USENIX Annual Technical Conference, July, 1999
  14. Charles Manning, 'YAFFS(yet another Flash File System),' http://www.aleph1.co.kr.co.uk/arm1inux/projects/yaffs, December, 2001