TiVo 미디어 파일 시스템

TiVo Media File System
MFS
개발자티보 주식회사
풀네임미디어 파일 시스템

MFS 또는 미디어 파일 시스템은 라이브 TV의 폴트 톨러런스 실시간 녹화를 위해 TiVo 하드 드라이브에서 사용되는 전용 파일 시스템입니다.

MFS는 아직 TiVo Corporation에 소속되어 있지 않은 프로그래머에게 잘 알려져 있지 않지만 파일 시스템에 대해서는 읽기 및 쓰기 제한이 있을 정도로 충분히 알려져 있습니다.파일 시스템과 파일 시스템 내의 개체를 조작하는 애플리케이션이 존재합니다.이러한 어플리케이션의 대부분은 TiVo 자체에서 발견된 소프트웨어에서 리버스 엔지니어링됩니다.이는 초기 TiVo 프로그램의 대부분이 데이터를 조작하는 전문 스크립트에 불과했기 때문입니다.

MFS 파일 시스템은 트랜잭션 로깅 및 롤백 기능을 포함하여 데이터베이스와 같이 구성됩니다.전체 시스템을 위해 드라이브의 여러 파티션을 사용합니다.파티션은 한 쌍으로 제공되며, 하나는 "응용 프로그램" 파티션이고 다른 하나는 "미디어" 파티션입니다.미디어 영역은 항상 상당히 크고 최소 1메가바이트의 가변 블록 크기를 가진 긴 연속 데이터 블록으로 구성됩니다.이는 비디오의 큰 부분을 저장하도록 설계되었기 때문입니다.

TiVo 파일시스템의 각 오브젝트에는 ID가 할당되어 있습니다.이 ID는 내부적으로 "FSID"(파일 시스템 ID일 가능성이 있음)라고 불립니다.MFS가 지원하는 오브젝트에는 적어도4가지 타입이 있습니다.스트림(녹화, 오디오 또는 비디오), 디렉토리, 데이터베이스 및 파일.모든 스트림 객체는 MFS 미디어 영역에 저장되며 다른 유형은 "응용 프로그램" 영역에 저장됩니다.

파일 시스템 자체는 완전히 Linux 사용자 공간에 구현됩니다.TiVo가 이러한 시스템을 고안한 주된 이유는 CPU에 의존하지 않고 TiVo 디바이스의 미디어 디코더에 데이터를 직접 스트리밍하는 데 적합한 방식으로 대량의 연속 데이터 섹션을 쉽게 저장할 수 있는 방법이 필요했기 때문입니다.따라서 CPU는 재생 및 기록 기능에 거의 관여하지 않으며, 단순히 인코더/디코더 칩이 가상 메모리의 섹션을 드라이브에 매핑하면서 직접 메모리 액세스를 통해 데이터를 드라이브에 스트리밍하도록 지시합니다.그런 다음 메인 CPU가 전체 문제를 조정합니다.그 결과 MFS 미디어 영역에 저장된 데이터는 일반 파일로 포맷되지 않고 MFS 응용 프로그램 영역의 데이터베이스 섹션에 의해 인덱싱되는 직접 데이터 스트림입니다.

레퍼런스

  • 크리코리안, "TiVo Hacks" (O'Reilly Media, 2003)
  • 키건, "해킹 티보" (Wiley, 2004).