問題タブ [ext2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - EXT2でファイルを開こうとしているときにACL権限はどこでチェックされますか?
EXT2 file.cファイルを開く操作(.open)では、に存在するさらにポイントが示されていdquot_file_openます。generic_file_openfs/open.c
以下のgeneric_file_openコードがあるようです
ファイルを開こうとしているときにACL権限はどこでチェックされますか?
いつグーグルでLXRを使用してコードを調べたのか、以下のパスを見つけました。
do_sys_open -> do_filp_open -> path_openat -> do_last -> may_open -> inode_permission -> do_inode_permission -> generic_permission -> acl_permission_check -> check_acl -> posix_acl_permission
しかし、EXT2の.openがdo_sys_openにどのようにリンクされているのか理解できませんでした。
ファイルを開いているときにACLのアクセス許可を確認するためのパスを教えていただければ幸いです。
directory - マップされたメモリから ext2 ルート ディレクトリを読み取るにはどうすればよいですか?
大学用にリモート ファイルシステム サーバーを作成していますが、ルート ディレクトリの読み取りに問題があります...ここに問題があります: ルート i ノード (i ノード 2) を読み取ったところ、一貫したデータがあります。たとえば、所有者のユーザー ID フィールドは「1000」に設定されています。次に、i ノード データ ブロックの内容の読み取りに進みますが、問題のデータ ブロック (i ノード i_block 配列でアドレス指定されている唯一のブロック、デバッグでは 240) にアクセスしようとすると、すべてのバイトが '0 に設定されます。 '。誰でもこれで私を助けることができますか?それは本当に重要です。注:マップされたメモリを使用する以外の方法では作成できません。実際のディスクを開いているのではなく、.disk Linuxファイルを開いています。コマンドラインで作成されました
mkfs.ext2 -F -r 0 -b 1024 ext2.disk 30000
これが私のコードです:
unix - Unix カーネルはファイル オフセットをどのように変換しますか?
タイトルが示すように、Unix カーネルが論理ファイル オフセットを論理ブロック番号に変換し、それを i ノードから取得する方法を理解するのに苦労しています。
参考までに、Maurice J. Bach による「UNIX オペレーティング システムの設計」で最初に説明された「bmap」アルゴリズムの詳細な説明を求めています。
ありがとうございました..
c - FUSE を使用してディレクトリを一覧表示する
これは、私がかなり長い間戦ってきた問題であり、進歩はありません。あなたが私を助けてくれることを願っています!
FUSE をディレクトリ ('home/fsc') に問題なくマウントしています。親ディレクトリ (/home) を次のようにリストしても問題ありません。
/home にいる間 .. ls -l
そして操作 getattr はうまく機能します。
ディレクトリ(「cd fsc」)を開くと問題が発生し、正しく開き、操作をデバッグすると、ヒューズが「/」ファイル属性をどのように要求するかがわかりますが、そのディレクトリ内のファイルをリストしようとすると、ヒューズが'/tls' の属性は、切断されるまで常にエラー '2'、'No such file or directory' を受け取ります。
さらに興味深いのは、予想どおり、readdir 操作に入らないことです。
なぜこれが起こっているのでしょうか?'/' の readdir を実行する代わりに、ヒューズが '/tls' 属性を要求するのはなぜですか?
ここであなたの助けをありがとう、私はすぐに取り組む必要がある大学のプロジェクトのためにこれに対する解決策が必要です.
よろしく、
編集:
このループ中に「/i686」、「/sse2」、「/cmov」、「/librt.so.1」のファイル属性も要求し、「/tls」に戻ります。
2.-編集:
GETATTR 操作
READDIR 操作
ヒューズメイン
embedded - 組み込みデバイスのext2/ext3
Linuxを使用せずに組み込みデバイスでext2またはext3ファイルシステムを使用できるようにしたいと思います。SATAハードドライブが接続された組み込みプロセッサを使用する予定です。Kernel.orgでソースコードを見つけましたが、使い方がわかりません。理想的には、ファイルの書き込み/読み取りなどのために呼び出すことができるいくつかの関数が欲しいです。これに関するドキュメントはありますか、または誰かが同様のことをしましたか。
ありがとう
ジョン
filesystems - 生データからファイルシステムを解釈するために何かをコーディングするには、UFSリファレンスが必要です
生データへのアクセス権が与えられたディスク上のファイルシステムUFSの処理に役立つツールをいくつか作成したいと思っています。私はすでにUFSについてたくさんのことを学び、ほとんどのUnix/Linuxファイルシステムにはいくつかの共通点があることを知っています。FS構造を読み取り、ファイルシステムドライバーのようにトラバースできるようになることを願っています。現在の難しさは、UFSがそのことをどのように行うかについての文書化にあります。私はより高いレベルのものをたくさん読みましたが、ext2用のこのようなものを見たいです-http ://homepage.smc.edu/morgan_david/cs40/analyze-ext2.htm。
このページは、スーパーブロック、iノード、ディレクトリエントリなどの完全な定義を示しているという点で優れています。また、他の研究でiノードがどのように機能するかについても学びました。私はFreeBSDをインストールし、それを分析して比較していますが、似ています。しかし、私は違いがあることを知っています。また、ファイルのiノードを見つけるなど、いくつかのことがどのように行われるのかわかりません。ext2のそのリンクはこれを行うように言っています-
- ルートディレクトリのiノード(inode 2)にアクセスして、ルートディレクトリのデータの場所を取得します
- ルートディレクトリのデータにアクセスして、alpha1のディレクトリエントリを見つけます
- alpha1のiノードの場所を取得するには、alpha1のエントリにアクセスしてください
- alpha1のiノードにアクセスしてalpha1のデータの場所を取得します
- alpha1(アルファベット)のデータを訪ねる
手順3がわかりません。ファイルのディレクトリエントリにiノード番号が表示されます。それはどのようにしてiノードの場所を提供しますか?iノードを見つけるにはどうすればよいですか?
より良い参照は素晴らしいでしょう。役立つ本は見つかりませんでしたが、間違いなく本を購入したいと思っています。
助けてくれてありがとう!
linux - struct super_block および ext2_super_block
struct ext2_super_block (fs/ext2/ext2.h 内) と struct super_block (include/linux/fs.h 内) の関係を誰か説明してくれませんか。LKP ( by Robert Love ) では、各ファイルシステムが struct super_block を実装する必要があると書かれているため、私はこれを求めています。しかし、ext2_super_block は異なり、super.c の関数はどのように ext2 に適用されるのでしょうか?
c - カスタム カーネル: ファイルシステムの実装
コース外のプロジェクトとして、私は現在、実際の OS のすべての側面をよりよく理解するためにカーネルを開発しています。ここまでで、ページングと基本的な割り込み (次はキーボード、おそらくトラックパッド/マウス) をサポートするフラットな物理メモリ モデルのセットアップが完了しました。ファイルシステムを実装することが前進だと思っていたので、ext2 に関心があります。私はSOでも周りを見回しましたが、私の質問に答える明確なものは何もありません:
- C で ext2 ファイルシステムにアクセスするドライバを作成することは可能ですか?
- USB デバイスからファイルシステムにアクセスする場合は、最初に USB 用のデバイス ドライバーを実行する必要があると想定しています。これに関するヘルプは大歓迎です。
- ファイルシステムを検出するためのコードが MINIX やその他のカーネルで既に利用可能であることは知っていますが、本当に知りたいのは、単純ではあるがカスタムのファイルシステムを構築したい場合、どうすればよいのでしょうか? 私もその可能性を考えています。
質問と詳細が少し無知に聞こえる場合は申し訳ありませんが、私はまだ学習過程にあります.
ありがとう :)
filesystems - EXT2 ファイル システム構造の詳細を教えてください。
EXT2 ファイル システムについて頭を悩ませようとしていますが、EXT2 ファイル システムの詳細を示している場所が 1 つも見つかりません。
最後に自分で図を描きました。だから私はそこまで行きました。今、私は次のことを理解しようとしています(すでにいくつかの情報を見つけました):
- セクターあたりのバイト数: 0.5kB - 4kB
- ブロックあたりのバイト数: 4kB - 64kB
- ブロックあたりのセクター数: 1 - 128
- ブロック グループあたりのブロック数: ?
- パーティションごとのブロック グループ数: ?
この情報を持っている場所が 1 つも見つからないのは、私には頭がおかしいです。
編集:これも見つかりました。これは、ブロック番号あたりのバイト数がおそらく間違っていることを意味します: