5

特に私は (ご想像のとおり) オペレーティング システムを作成しようとしているので、これはお粗末に聞こえるかもしれません。現時点では、ファイルシステムを作成しようとして立ち往生しています。

私が欲しいのは、EXT4であるLinux Ubuntuと同様のファイルシステムです(少なくとも私のものはです)。私は試してみたいし、Cで書いてもいいです。

これについてどうすればよいかについて何か考えはありますか?および/または私を助けるかもしれないあなたが見つけたかもしれないチュートリアル(私は運がなかったので検索しようとしました):L

前もって感謝します!

ジェイミー。

4

2 に答える 2

4

この問題を広範に研究した本当に賢くて経験豊富な人々は、ユーザーのデータを食い尽くすバグを作りました。計算レイヤーのバグ (カーネル クラッシュなど) とストレージ レイヤーのバグの違いは、ユーザーのデータを黙って食べることは非常に悪いことです。スプレッドシートで間違った回答をするよりもはるかに悪いです (Excel はバグがありますが、人気があります)。ディスク上のデータを保持しながら sigfaulting (これは、頻繁な自動保存によって簡単に軽減されます)。

古いオペレーティング システムの本 [1] (Linus Torvalds が 20 年前に始めたものと同じもの) の minix ファイルシステムのような、より単純な設計を研究することから始めます。

他の人が言ったように、ジャーナリング、エクステント、または ACL のない ext2 は、ext4 よりも優れた出発点です。そのソース コードは、Linux カーネルと e2fsprogs ユーザー空間ツール パッケージ [2] にあります。フォーマットは十分に文書化されています。

チュートリアルについては、誰が作成し、なぜこの作業に労力を費やすのかを考えてください。チュートリアルは通常、プラットフォームの利害関係者によって作成され、そのプラットフォームを使用して開発する新しい人々を呼び込み、ネットワーク効果を使用してプラットフォームを成長させ、より大きなエコシステムですでに確立されたアクターであることから利益を得ます。

独自の互換性のないバギー[3] ファイル システムを実装する人の数が増えることにビジネス モデルがあると思いますか? ソフトウェア工学の学位を販売する場合のみ。そのため、Microsoft は NTFS の実装方法ではなく、NTFS の使用方法に関するチュートリアルのみを作成しています。Sun と ZFS、Red Hat と Google と EXT2/3/4、SGI と XFS、IBM と JFS、Oracle と BTRFS などについても同様です。

トレーニングではなく教育が必要な場合は、チュートリアルを探すのではなく、本を読んで、彼らが本番環境で使用するスマートな人々のコードを研究する必要があります。

  1. http://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation
  2. http://e2fsprogs.sourceforge.net/
  3. どのくらいの使用で、いくつの異なる使用パターンで見ることができますか?数百万台のコンピューターで何年も使用した後、実稼働 FS で発見されたバグを考えてみてください。あなたが Matthew Dillon のように賢くても、あなたのコードのバグが少ないとは思えません。
于 2012-04-16T01:11:57.350 に答える
0

Linuxのような既存の実装を調べてみてください。

于 2012-04-15T22:37:39.563 に答える