検索
ニュース

FATメディアに1TB超のファイルを保存できる「BigFAT」仕様が公開特許による制限がなく、無償で使用できる

SEGGER Microcontrollerは標準的なFATメディアに4GBを超えるファイルを保存できる「BigFAT」仕様を公開した。

Share
Tweet
LINE
Hatena

 ドイツのSEGGER Microcontroller(SEGGER)は2022年8月25日(ドイツ時間)、標準的なFAT(File Allocation Table)を用いるメディアで、4GBを超えるファイルを保存できる「BigFAT」仕様を公開した。この仕様は特許による制限がなく、支援ツールとともに自由に利用できる。

 FATは一般的なほぼ全てのOSでサポートされており、SDカードやUSBメモリなどのリムーバブルストレージをフォーマットするための業界標準規格だ。技術的にシンプルで、汎用(はんよう)性が高いため、組み込み機器が採用する中型マイクロコントローラーのように、計算能力や消費電力などリソース上の制約のあるデバイスで動作するアプリケーションでも魅力的だ。システム間でファイルを転送する際にも適している。

 だが、FATには短所がある。ファイルサイズの上限が4GBと小さいことだ。動画ファイルの保存や転送時、データベースの使用時には利用できない場合がある。

BigFATとは何か?

 SEGGERはBigFATでこの短所に対処した。

 BigFATは1TBをはるかに超えるファイルをサポートするよう、FATファイルシステムを拡張したものだ。大きなファイルを細かく「チャンク」に分割し、それぞれのファイルがFATボリュームに収まるようにした。標準のFATと完全な互換性を保ち、ユーザーに対しては1つの巨大なファイルとして表示することが可能だ。


BigFATファイルを利用した場合のディレクトリの内容 ユーザーからは10GBの単一ファイル(TestFile.bin)に見える(提供:SEGGER)

 BigFATはSDカードやマルチメディアカード、CompactFlashカードなど、さまざまなストレージで利用できる。

 SEGGERはLinuxやmacOS、Windows上で動作する「BigFAT Converter」というツールを無償で提供している。ユーザーはこのツールを利用して、ホストファイルシステムからBigFATファイルの作成や読み取り、コピーを実行できる。

Microsoftの「exFAT」とはどこが異なるのか

 FATの制限を超えるためにMicrosoftが開発し、2006年から利用されている「exFAT」と、BigFATは何が異なるのだろうか。SEGGERの創業者ロルフ・セガー氏の説明はこうだ。

 「FATは組み込み分野で重要な役割を担っている。SDカードやUSBメモリなどのリムーバブルストレージや、(携帯型機器などの)内部ファイルシステムとして、多くの組み込みシステムがFATを使用している。SDカード向けなどの用途でFATの後継と位置付けられている『exFAT』は、残念ながらFATと互換性がなく、特許の制限もある」

 「exFATを使用したり、実装したりする企業は、Microsoftからライセンスを受ける必要がある。だが、特に小規模企業やオープンソースコミュニティーにとって、これは困難であったり、コストがかかる場合がある」と、SEGGERのマネージングディレクターを務めるイボ・ギーレンブルージュ氏は述べている。

 「SEGGERはBigFATを特許による制限がないオープン仕様として公開することを決めた。全ての関係者がBigFATを無償で容易に使用できるようにすることで、BigFATを新しい標準として確立することを目指す。この仕様は誰でも自由に実装できる」(ギーレンブルージュ氏)

 BigFATは既にSEGGERの組み込みシステム用ファイルシステム「emFile」でテストされ、実装されている。

4GBを超えるファイルをどのように扱うのか

 BigFATはFAT上に構築されている。扱うファイルが4GB以上の場合は、FATファイルシステムで扱える小さなファイル(チャンク)に分割して保存する。ファイルにアクセスする際は、ファイル内のどの位置にアクセスするかに応じて、適切なチャンクが選択される。

 4GBよりも小さいファイルの場合は、FAT上の通常のファイルと同様に扱われる。ファイルアクセス時にも標準的なFATファイルシステムの実装と同様に動作する。ファイルを書き換えて4GBの制限を超えて大きくなった場合は、即座にBigFATの方式でファイルを拡張する。

 4GB以上のファイルは、1つの「基本ファイル」と1つ以上の「継続ファイル」に分割される。継続ファイルは基本ファイルと同じディレクトリに格納される。継続ファイルの名前は基本ファイルの名前に拡張子を加えたものになる。なお基本ファイルの名前は変更されない。

 継続ファイルの拡張子は「.<Index>.BigFAT」という形式であり、Indexには3桁の10進数が入る。最初の継続ファイルのインデックスは「001」になり、継続ファイルを追加するごとに1つずつ増えていく。BigFATを使う際は、継続ファイルの追加拡張子を適用できるようにするために、基礎となるファイルシステム層で長いファイル名をサポートする必要がある。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る