コンテンツにスキップ

inode

Xuất điển: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』

inode( アイノード ) は,ext2などのUnix hệファイルシステムで cổ くから sử われているデータ cấu tạo である. inode にはファイル,ディレクトリなどのファイルシステム thượng のオブジェクトに quan する cơ bổn tình báo が cách nạp される.

ReiserFSなどの tối cận のUnix hệ ファイルシステムでは inode を sử dụng していないが, đồng đẳng の cơ năng を đề cung するには đồng đẳng の tình báo をどこかに cách nạp しなければならない.statシステムコールがそれらのデータをプログラム hướng けに đề cung するので, これを statデータと hô ぶことがある.

Khái yếu

[Biên tập]

Linuxでは, このようなデータのカーネルでのメモリ thượng の biểu hiện をstruct inodeと hô ぶ.BSDHệ システムではvnodeと hô ぶが, このvnodevはカーネル nội の仮 tưởng ファイルシステムTằng から lai ている.

POSIXTiêu chuẩn で quy định されているファイルシステムの động tác は従 lai からのUNIXファイルシステムに đại きく ảnh hưởng されている. Thông thường ファイルは dĩ hạ のような chúc tính を trì つことを yếu cầu されている:

  • ファイルの trường さ ( バイト sổ )
  • デバイスID ( ファイルを cách nạp しているデバイスを thức biệt )
  • ファイル sở hữu giả のユーザーID
  • ファイルのグループID
  • ファイルシステム nội でファイルを thức biệt する inode phiên hào
  • ファイルモード (ファイルパーミッション)
  • Tối chung inode canh tân thời (ctime), tối chung ファイル canh tân thời (mtime), tối chung tham chiếu thời (atime) を kỳ すタイムスタンプQuần
  • その inode を chỉ すハードリンクがいくつあるかを kỳ すTham chiếu カウント

inodeという dụng ngữ はブロックデバイスThượng の inode も ý vị し, thông thường ファイルやディレクトリや tràng hợp によってはシンボリックリンクにも đối ứng している. この khái niệm は phá tổn したファイルシステムのリカバリにおいて đặc に trọng yếu である.

inode phiên hào は, その inode が ký lục されているデバイス thượng で nhất ý のChỉnh sổTrị である. Toàn てのファイルは inode に vật lý đích にリンクされている. プログラムがファイルをファイル danh で tham chiếu するとき, システムはそのファイル danh に đối ứng する inode を kiểm tác する.

statシステムコールはファイルの inode phiên hào やその tha の inode nội の tình báo の nhất bộ を đắc る cơ năng である.

inodeiが hà を ý vị するのかは bất minh xác である. UNIXの khai phát giảデニス・リッチーは, それを văn かれたとき dĩ hạ のように thuật べている:

Thật tế, tư にもわからない. Ngã 々が sử い thủy めたときは単なる dụng ngữ だった. たぶん "index" が nguyên になっているんじゃないかと tư う. というのはちょっと変わったファイルシステム cấu tạo があって, ディレクトリを sử った giai tằng cấu tạo があるのに toàn てのファイルのアクセス tình báo をディスク nội のフラットな phối liệt に cách nạp していたんだ. だから i-number というのはその phối liệt のインデックスで, i-node はその phối liệt の yếu tố だろう. ( "i-" という thư き phương は sơ bản のマニュアルで sử われていたが, từ 々にハイフンが vô くなっていった ).
inodeを sử dụng したファイルシステムでのファイルの cấu tạo đồ

Quan liên

[Biên tập]

ファイルシステムに quán れていないユーザーの đa くは, inode のコンセプトを lợi dụng するファイルシステムの đặc tính に kinh く.

  • Phục sổ の danh tiền が đồng じ inode にリンクしていると (ハードリンク), どの danh tiền も đẳng 価と ngôn える. ファイルを tối sơ に tác thành したときの danh tiền は đặc biệt な ý vị を trì たない. これはシンボリックリンクがオリジナルの danh tiền に y tồn しているのと toàn く dị なる.
  • リンクを toàn く trì たない inode もありうる. Thông thường そのようなファイルはディスクから tước trừ され, そのリソース ( ディスクブロック ) はファイル tước trừ 処 lý の quá trình で tái lợi dụng のために giải phóng されるが, hà らかのプロセスがそのファイルを sử dụng trung ならば, アクセスし続けることができ, tối hậu にクローズされるときに tước trừ 処 lý が hành われる. このため, プログラムを cải bản ( リコンパイル ) するときは, dĩ tiền のThật hành ファイルをまず tước trừ して, tân しい bản の thật hành ファイルは tân たな inode で tác thành されるようにすることが thôi thưởng される. これにより, cổ い bản が thật hành trung であっても hà ら vấn đề なく処 lý を続 hành することになる. ( 訳 chú: Tước trừ しないで thượng thư きすると, thật hành trung の thật hành ファイルが thư き hoán えられるため,メモリ quản lýの thật trang によってはおかしな trạng thái が phát sinh する ).
  • 従 lai, オープン trung のファイル (ファイル ký thuật tử) からオープンされたファイル danh を đắc ることはできなかった. オペレーティングシステムは nhất độ ファイル danh を inode phiên hào に変 hoán すると, ファイル danh の phương を vong れてしまう. 従って,getcwd()getwd()といったライブラリ quan sổ は "."ディレクトリに đối ứng する inode phiên hào からその thân ディレクトリを sưu し, tối chung đích に"/"ディレクトリまでたどることでフルパス danh を đắc ている. この vô đà な処 lý を tỉnh くため,SVR4Linuxシステムは truy gia tình báo を bảo trì している.
  • ディレクトリのハードリンクは cổ くから khả năng だった. これによりディレクトリ cấu tạo はMộc cấu tạoではなく nhậm ý のHữu hướng グラフとなっている. あるディレクトリを tự thân の thân ディレクトリとすることも khả năng である. Tối cận のシステムではそのような hỗn loạn の nguyên となる trạng thái を phòng ぐようになっている.

Thật dụng thượng の khảo lự

[Biên tập]

UNIXオペレーティングシステムシステムアドミニストレータが sử dụng するプログラムには, ファイルを đặc định するために inode phiên hào を biểu kỳ するものがある.ハードディスクの kiện toàn tính チェックユーティリティのfsckpfilesがそのようなコマンドの lệ である. そこで inode phiên hào をファイルのパス danh に変 hoán する ( およびその nghịch 変 hoán をする ) tất yếu が sinh じる. これはファイル danh kiểm tác ユーティリティfind( の-inumオプション ) やlsコマンドに thích đương なオプション ( đa くの tràng hợp-i) を phó けることで thật hiện される.

また, “ファイルが tước trừ された tế に hà らかのプロセスがそのファイルを sử dụng している tràng hợp, そのプロセスからはアクセスが継続できる.” という đặc trưng がセキュリティ thượng vấn đề となる tràng hợp がある. Lệ えば, đa くのプロセスが tham chiếu しているライブラリのセキュリティアップデートを thích dụng した hậu, đương cai プロセスからは cựu バージョンのライブラリにアクセスし続けるため, thúy nhược tính が hoàn toàn に tu chính されないという sự thái が phát sinh する. したがって, đặc にシステムの trung hạch に vị trí するようなライブラリをアップデートした tế には động tác thượng vấn đề がなくてもシステムを tái khởi động する đẳng の đối sách が tất yếu となってくる.

トリビア

[Biên tập]

International Association of Computer Investigative Specialists (IACIS[1])の2003 niên の hội nghị で, "inode" は "I'm Not Operating DOS Ever" ( DOSなど nhị độ と xúc るか ) の lược であるという đề án がなされた. しかし, toàn くの hư として thối けられた.

Cước chú

[Biên tập]


Ngoại bộ リンク

[Biên tập]