2012-04-15 14 views
5

特に、私が(あなたが推測したように)オペレーティングシステムを書こうとしているように、これはうんざりするかもしれません。現時点では、私はファイルシステムを作ろうとしています。EXT4ファイルシステムをC言語で記述していますか?

私が望むのは、EXT4のLinux Ubuntuと同じファイルシステムです(少なくとも私のものです)。私も試してみたいと思っています。また、Cで書くこともできます。

どうすればいいですか?そして/またはあなたが私を助けてくれるかもしれないチュートリアル(Luckなしで検索しようとしました):L

ありがとうございます!

Jamie。

+1

ファイルシステムを実装しようと考えているかもしれません。 ext4は多くの耐久性保証を提供します。同じ基本的なアイデアを持つext2を調べてみてください。 – Michael

+0

@Michael - ext2 fsを生成/実装するためのソースコードがありますか?もしそうなら、どこで見つけることができますか? –

+1

@JamieEdwards: 'mkfs.ext2'のソースコードは、Linuxカーネルソースコードだけでなく、公開されています。 –

答えて

0

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

+1

そのリンクはロードされていません。ここに潜在的な置き換えがあります:https://www.kernel.org/doc/Documentation/filesystems/ext4.txt –

+1

サイトはしばらく前に落ちました、気づいてくれてありがとう! –

+0

問題はありません - グループサイトとそのすべて。答えを編集するための歓声。 –

4

この問題を深く研究してきた、スマートで経験豊かな人たちが、ユーザーのデータを取得するバグを作りました。計算レイヤーのバグ(カーネルクラッシュなど)とストレージレイヤーのバグの違いは、ユーザーのデータを黙って食べることがであることです。ディスクにデータを保存しながら断続的にシグギングすることができます(これは頻繁な自動保存によって簡単に緩和されます)。

古いオペレーティングシステムの本[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などと同じです。

訓練の代わりに教育をしたい場合は、チュートリアルを探すのではなく、プロダクションで使用するスマートな人々のコード。

  1. http://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation
  2. http://e2fsprogs.sourceforge.net/
  3. どのくらいの使用、それにどのように多くの異なる使用パターンで表示さ ?数百万台のコンピュータで長年使用されているプロダクションFSで発見されたバグを考えてみましょう。たとえあなたがMatthew Dillonほど賢明であっても、あなたのコードはバグが少なくなることはありません。
+1

信じられないかもしれませんが、時には人々は既に同じ靴を履いている他の人を助けるためにチュートリアル*を書いています。 [here](http://www.osdever.net/tutorials/view/brans-kernel-development-tutorial)を参照してください。 – Mehrdad

+1

はい、私のような人は、他人を助けるのが好きなので、ただの質問に答えます。しかし、誰かが見知らぬ人を助けるために費やすことをどれくらいの努力を費やすことができますか?私はときどき "facebook/android/etcを構築するように教えてください"と要約できる質問を見る。 OPは必要な作業の量を最小限に抑えたように見える。ウィキペディアのファイルシステムについて読むことはそれほど頼りすぎない。 –

+0

ええ、真..... – Mehrdad

関連する問題