FreeBSD Daily Topics

2011年3月22日 NetBSD向けFlash/NANDサブシステムの設計と実装

この記事を読むのに必要な時間:およそ 0.5 分

2011年3月19日と20日,東京理科大学森戸記念館においてAsiaBSDCon 2011が開催されました。東北地方太平洋沖地震の影響で講演者が来日できないなど,日程や実施方法を大幅に変更しての実施となりました。AsiaBSDCon 2011からいくつかのセッションを紹介します。

Flash and NAND Subsystem for NetBSD

Adam Hoka氏からNetBSDにおけるFlashデバイス(NAND)を利用するためのサブシステムの設計と実装に関する発表がありました。Adam Hoka氏は最終的にFlashでの利用に特化したファイルシステムの開発を目指しており,発表された内容はその前提段階となるFlashデバイス(NAND)向けのデバイスドライバの設計と実装に関するものでした。

Flashデバイスドライバ(サブシステム)としてはLinux MTDが代表的な実装のひとつということですが,これは設計の見通しが悪くコーディングも読みやすいものとはいえないということでした。Adam Hoka氏は設計の見通しがよく実装も理解しやすいFreeBSDのAndrew Thuners NANDドライバを参考にし,NANDドライバの設計と実装を実施したことを説明していました。

FreeBSDはFlash(NAND)向けのサブシステム/デバイスドライバは持っているものの,Flashに特化したファイルシステムは持っていません。UFS2はその仕組み上特定の領域,たとえばi-nodeなどがある領域が頻繁に書き換えられることになるため,Flashデバイスの特性上あまり好ましくないという特徴があります(SSDも同じようなデバイスということになりますが,こちらはSSDに搭載されているチップやファームウェアが適切に処理を実施するため顕著な問題としては現れません。このあたりを自前で処理する必要がでてくる組込みデバイスでのFlashデバイスが今回の議論の対象となります⁠⁠。

FreeBSDは組込み用途での採用も増えています。Flash向けのファイルシステムを実装することはそういった面で利点があります(組込みで使う場合,そもそも書き換えが発生しないようにメモリファイルシステムを活用したり,別途専用のファイルシステムを開発するといった取り組みが行われます⁠⁠。Adam Hoka氏の取り組みは組み込み用途で活用できるものとして今後の取り組みが注目されます。