seungjun.dev

SimpleFS 가상 파일 시스템

UNIX의 파일 시스템을 최소한으로 모방한 SimpleFS 가상 파일 시스템

  • UNIX 스타일의 파일 시스템 구조를 최소 단위로 단순화한 실습/예제용 가상 파일 시스템

  • 실제 운영체제의 복잡한 파일 시스템보다 간단한 데이터 구조와 명령어 인터페이스를 가짐

    SimpleFS 링크

주요 설계 요소 및 구조

데이터 구조(트리/객체 중심)

  • 파일/디렉토리: 객체로 구현
  • 계층형 트리 구조
  • 핵심 정보
    • 이름, 타입, 크기, 생성일, 내용
    • 디렉토리에는 children 배열
{
  name: '/',
  type: 'dir',
  children: [
    { name: 'readme.txt', type: 'file', size: 20, content: '...' },
    { name: 'docs', type: 'dir', children: [ ... ] }
  ]
}

명령어 기반 CLI

  • 필수 명령
    • init [maxSize]: 파일 시스템 초기화 (최대 용량 부여)
    • mkdir [경로/이름]: 새 디렉토리 생성
    • create [경로/이름.txt]: 텍스트 파일 생성
    • ls [경로]: 디렉토리 내 파일/폴더 목록 표시
    • cat [경로/이름.txt]: 텍스트 파일 내용 출력

데이터의 영속성 보장

  • 전체 파일 시스템 구조(트리)를 JSON 파일로 저장
  • 프로그램 시작 시 파일을 읽어 메모리로 로드, 종료 시 저장

SimpleFS를 선택하는 이유

  • 설계가 단순해 짧은 시간 내 구현에 현실적
  • Node.js의 기본 문법과 트리 자료구조만으로 완성 가능
  • 이후 저수준 FAT 구조로 확장도 가능