この問題を深く研究してきた、スマートで経験豊かな人たちが、ユーザーのデータを取得するバグを作りました。計算レイヤーのバグ(カーネルクラッシュなど)とストレージレイヤーのバグの違いは、ユーザーのデータを黙って食べることがであることです。ディスクにデータを保存しながら断続的にシグギングすることができます(これは頻繁な自動保存によって簡単に緩和されます)。
古いオペレーティングシステムの本[1](Linus Torvaldsが20年前に始めたもの)のミニファイルシステムのように、より簡単な設計を勉強することから始めます。
他にも、ジャーナリング、エクステント、またはACLのないext2は、ext4よりも良い出発点です。そのソースコードは、Linuxカーネルとe2fsprogs userspace toolsパッケージ[2]にあります。形式は十分に文書化されている。
チュートリアルでは、誰が作成するのか、なぜこのタスクに努力するのかを検討します。チュートリアルは、一般的にプラットフォームの利害関係者が作成し、そのプラットフォームを使用して開発する新しい人をネットワーク効果を使用してプラットフォームを拡張し、より大きなエコシステムの既存のアクターから利益を得ます。
あなた自身の互換性のないバギー[3]ファイルシステムを実装する人の数が増えているビジネスモデルがありますか?ソフトウェア工学の学位を販売している場合に限ります。だからMicrosoftはを使用する方法についてのチュートリアルを書いているだけですはを実装する方法ではなく、 NTFSを使用します。 SunとZFS、EXT2/3/4のRed HatとGoogle、XFSのSGI、JFSのIBM、OracleのBTRFSなどと同じです。
訓練の代わりに教育をしたい場合は、チュートリアルを探すのではなく、プロダクションで使用するスマートな人々のコード。
- http://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation
- http://e2fsprogs.sourceforge.net/
- どのくらいの使用、それにどのように多くの異なる使用パターンで表示さ ?数百万台のコンピュータで長年使用されているプロダクションFSで発見されたバグを考えてみましょう。たとえあなたがMatthew Dillonほど賢明であっても、あなたのコードはバグが少なくなることはありません。
ファイルシステムを実装しようと考えているかもしれません。 ext4は多くの耐久性保証を提供します。同じ基本的なアイデアを持つext2を調べてみてください。 – Michael
@Michael - ext2 fsを生成/実装するためのソースコードがありますか?もしそうなら、どこで見つけることができますか? –
@JamieEdwards: 'mkfs.ext2'のソースコードは、Linuxカーネルソースコードだけでなく、公開されています。 –