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는 기존의 리눅스에서 제공하는 것과 동일한 인터페이스를 지원한다. 물리장치에 접근하기 위한 디바이스 드라이버 역시 사용자 영역에서 구현되어 장치나 파일 시스템의 오류가 발생하더라도 커널에 미치는 영향을 최소화하여 시스템의 안정성을 증가시길 수 있다.