Inode

inode (index node)是指在许多“类Unix文件系统”中的一种数据结构,用于描述文件系统对象(包括文件目录设备文件socket管道等)。每个inode保存了文件系统对象数据的属性和磁盘块位置[1]文件系统对象属性包含了各种元数据(如:最后修改时间[2]) ,也包含用户组(owner)和权限数据[3]

命名

Unix先驱丹尼斯·里奇[4],inode这个命名的来源可能是文件系统的存储组织为一个扁平数组,分层目录資訊使用一个数作为文件系统这个扁平数组的索引值(index)。

细节

Unix上的文件描述符、文件表与inode表 [5]

文件系统创建(格式化)时,就把存储区域分为两大连续的存储区域。一个用来保存文件系统对象的元信息数据,这是由inode组成的表,每个inode默认是256字节或者128字节。另一个用来保存“文件系统对象”的内容数据,划分为512字节的扇区,以及由8个扇区组成的4K字节的块。块是读写时的基本单位。一个文件系统的inode的总数一般情况下是固定的。这限制了该文件系统所能存储的文件系统对象的总数目。典型的实现下,所有inode占用了文件系统1%左右的存储容量。

文件系统中每个“文件系统对象”对应一个“inode”数据,并用一个整数值来辨识。这个整数常被称为inode号码(“i-number”或“inode number”)。由于文件系统的inode表的存储位置、总条目数量都是固定的,因此可以用inode号码去索引查找inode表。

Inode存储了文件系统对象的一些元信息,如所有者、访问权限(读、写、执行)、类型(是文件还是目录)、内容修改时间、inode修改时间、上次访问时间、对应的文件系统存储块的地址,等等。知道了1个文件的inode号码,就可以在inode元数据中查出文件内容数据的存储地址。

文件名与目录名是“文件系统对象”便于使用的别名。一个文件系统对象可以有多个别名,但只能有一个inode,并用这个inode来索引文件系统对象的存储位置。

  • inode不包含文件名或目录名的字符串,只包含文件或目录的“元信息”。
  • Unix的文件系统的目录也是一种文件。打开目录,实际上就是读取“目录文件”。目录文件的结构是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件或目录的名字,以及该文件或目录名对应的inode号码。
  • 文件系统中的一个文件是指存放在其所属目录的“目录文件”中的一个目录项,其所对应的inode的类别为“文件”;文件系统中的一个目录是指存放在其“父目录文件”中的一个目录项,其所对应的inode的类别为“目录”。可见,多个“文件”可以对应同一个inode;多个“目录”可以对应同一个inode。
  • 文件系统中如果两个文件或者两个目录具有相同的inode号码,那么就称它们是“硬链接”关系。实际上都是这个inode的别名。换句话说,一个inode对应的所有文件(或目录)中的每一个,都对应着文件系统某个“目录文件”中唯一的一个目录项。
  • 创建一个目录时,实际做了3件事:在其“父目录文件”中增加一个条目;分配一个inode;再分配一个存储块,用来保存当前被创建目录包含的文件与子目录。被创建的“目录文件”中自动生成两个子目录的条目,名称分别是:“.”和“..”。前者与该目录具有相同的inode号码,因此是该目录的一个“硬链接”。后者的inode号码就是该目录的父目录的inode号码。所以,任何一个目录的"硬链接"总数,总是等于它的子目录总数(含隐藏目录)加2。即每个“子目录文件”中的“..”条目,加上它自身的“目录文件”中的“.”条目,再加上“父目录文件”中的对应该目录的条目。
  • 通过文件名打开文件,实际上是分成三步实现:首先,操作系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。

Linux系统使用struct inode作为数据结构名称。BSD派生的系统,使用vnode名称,其中v表示“virtual file system”。

POSIX inode

POSIX 标准强制规范的文件系统的行为受到传统 UNIX 文件系统的深刻影响。可以用短语“文件序列号”来形容inode,定义为文件系统范围的唯一文件标识符。[6]上述的文件序列号和包含此文件的设备ID一起,在整个系统上对应唯一的文件。[7]

在POSIX系统上,可使用stat系统调用取得文件的下列属性:[7]

  • 字节为单位表示的文件大小。
  • 设备ID,标识容纳该文件的设备。
  • 文件所有者的User ID。
  • 文件的Group ID
  • 文件的模式(mode),确定了文件的类型,以及它的所有者、它的group、其它用户访问此文件的权限。
  • 额外的系统与用户标志(flag),用来保护该文件。
  • 3个時間戳,记录了inode自身被修改(ctime, inode change time)、文件内容被修改(mtime, modification time)、最后一次访问(atime, access time)的时间。
  • 1个链接数,表示有多少个硬链接指向此inode。
  • 文件系统存储位置的指针。通常是1K字节或者2K字节的存储容量为基本单位。

可以查询一个文件的inode号码及一些元信息。

推论

  • 一个文件系统对象可以有多个名字,这些具有硬链接关系的文件系统对象名字具有相同的inode号码,彼此是平等的。即首个被创建的文件并没有特殊的地位。这与符号链接不同。一个符号链接文件有自己的inode,符号链接文件的内容是它所指向的文件的名字。因此删除符号链接所指向的文件,将导致这个符号链接文件在访问时报错。
  • 删除一个文件或目录,实际上是把它的inode的链接数减1。这并不影响指向此inode的别的硬链接。
  • 一个inode如果没有硬链接,此时inode的链接数为0,文件系统将回收该inode所指向的存储块,并回收该inode自身。
  • 从一个inode,通常是无法确定是用哪个文件名查到此inode号码的。打开一个文件后,操作系统实际上就抛掉了文件名,只保留了inode号码来访问文件的内容。库函数getcwd()用来查询当前工作目录的绝对路径名。其实现是从当前工作目录的inode逐级查找其上级目录的inode,最后拼出整个绝对路径的名字。
  • 历史上,对目录的硬链接是可能的。这可以使目录结构成为一个有向图,而不是通常的目录树的有向无环图。一个目录甚至可以是自身的父目录。现代文件系统一般禁止这些混淆状态,只有根目录保持了特例:根目录是自身的父目录。这项限制最著名的一个例外可在Mac OS X(10.5或更高版本)上找到:它允许超级用户建立目录的硬链接。[8]
  • 一个文件或目录在文件系统内部移动时,其inode号码不变。文件系统碎片整理可能会改变一个文件的物理存储位置,但其inode号码不变。非UNIX的FAT及其衍生的文件系统是无法实现inode不变这一特点。
  • inode文件系统中安装新库十分容易。当一些进程正在使用一个库时,其它进程可以替换该库文件名字的inode号码指向新创建的inode,随后对该库的访问都被自动引导到新inode所指向的新的库文件的内容。这减少了替换库时重启系统的需要。而舊的inode的链接数已经为0,在使用舊函式庫的进程结束后,舊的inode与舊函式庫文件会被系统自动回收。
  • 一些文件系统,由于inode表在文件系统创建时就已经确定并且不能再动态增加,新增的文件数量可能会用尽inode。这导致文件系统还有空闲的存储空间,但已经没有空闲的inode可供使用了。例如,一个电子邮件服务器可能会被大量的小文件用尽所有inode,但是却没有填满文件存储空间。部分文件系统,如JFSXFS,能够动态地增加inode,因此不会用尽inode。

实际考虑

系统管理员使用的很多程序往往用inode号码来替代文件名来访问文件系统。例如磁盘完整性检查程序fsckpfiles。因此,inode号码与文件全路径名的互查是需要的。可以用find带参数选项-inumls带参数选项(-i做到。

参考文献

  1. ^ Tanenbaum, Andrew S. Modern Operating Systems 3rd. : 279. 
  2. ^ JVSANTEN. Difference between mtime, ctime and atime - Linux Howtos and FAQs. Linux Howtos and FAQs. [2020-01-20]. (原始内容存档于2020-09-21). 
  3. ^ Anatomy of the Linux virtual file system switch. ibm.com. [2020-01-20]. (原始内容存档于2018-10-02). 
  4. ^ Linux Kernel list archive页面存档备份,存于互联网档案馆). Retrieved on 2011-01-12.
  5. ^ Bach, Maurice J. The Design of the UNIX Operating System. Prentice Hall. 1986: 94. Bibcode:1986duos.book.....B. 
  6. ^ Definitions - 3.176 File Serial Number. The Open Group. [10 January 2018]. (原始内容存档于2013-04-29). 
  7. ^ 7.0 7.1 <sys/stat.h>. The Open Group. [15 January 2018]. (原始内容存档于2022-01-30). 
  8. ^ What is the Unix command to create a hardlink to a directory in OS X?. Stack Overflow. 16 Jan 2011 [5 Jan 2020]. (原始内容存档于5 January 2020). 

外部链接

Read other articles:

Berma Paru-paru dombaCommon connotationsDarah     Koordinat warnaTriplet hex#BC3F4AsRGBB    (r, g, b)(188, 63, 74)CMYKH   (c, m, y, k)(0, 66, 61, 26)HSV       (h, s, v)(355°, 66%, 74%)SumberColorXS[1]B: Dinormalkan ke [0–255] (bita)H: Dinormalkan ke [0–100] (ratusan) Berma (Inggris: Sanguinecode: en is deprecated ) atau kapur merah adalah suatu corak merah kecokelatan yang nampak seperti warna darah.[2] Kapur berwarna ini b...

 

Langourla Langourlae Lambang kebesaranLangourla Lokasi di Region Bretagne Langourla Koordinat: 48°17′09″N 2°24′52″W / 48.2858°N 2.4144°W / 48.2858; -2.4144NegaraPrancisRegionBretagneDepartemenCôtes-d'ArmorArondisemenDinanKantonCollinéeAntarkomuneMénéPemerintahan • Wali kota (2014–2020) Michel UlmerLuas • Land121,41 km2 (827 sq mi) • Populasi2579 • Kepadatan Populasi20,27/km2 (0,70/sq ...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Zulkifli Lubis – berita · surat kabar · buku · cendekiawan · JSTORArtikel ini bukan mengenai Ahmad Zulkifli Lubis. Ini adalah nama Mandailing, marganya adalah Lubis. Zulkifli Lubis Kepala Staf TNI Angkatan Da...

Icon of Saint Vendimianus of Bythinia from the Menologion of Basil II. Vendemianus the Hermit of Bithynia was a solitary monk of the early sixth century. Vendemianus (Bendemianus) was a disciple of St. Auxentius and became known for his holiness of life and gift of healing. He dwelt for more than forty years on a mountain cliff near the hermitage of Auxentius in the region of Chalcedon in Asia Minor. Vendemianus the Hermit of Bithynia is commemorated on 1 February in the Eastern Orthodox and ...

 

Asimina triloba Asimina triloba Asiminier trilobéClassification Règne Plantae Sous-règne Tracheobionta Division Magnoliophyta Classe Magnoliopsida Sous-classe Magnoliidae Ordre Magnoliales Famille Annonaceae Genre Asimina EspèceAsimina triloba(L.) Dunal, 1817 Synonymes Annona triloba L. Classification phylogénétique Classification phylogénétique Clade Angiospermes Clade Magnoliidées Ordre Magnoliales Famille Annonaceae Genre Asimina Statut de conservation UICN LC  : Préoccupati...

 

Listes de films américains 1902 1903 1904 1905 1906 1907 1908 1909 1910 ►► Liste de films américains sortis en 1906. Titre Réalisateur Distribution Genre Notes The Automobile Thieves James Stuart Blackton James Stuart Blackton, Florence Lawrence Drame policier Sorti sur les écrans le 10 novembre 1906. Histoire d'un jeune couple auteur d'une série de cambriolages. Ils sont l'objet d'une poursuite à l'issue de laquelle les deux sont tués. Humorous Phases of Funny Faces James Stuart ...

Voce principale: Società Sportiva Dilettantistica Calcio Città di Brindisi. Brindisi SportStagione 1984-1985Sport calcio Squadra Brindisi Allenatore Lucio Vinci poi Gianni Candussi poi Giancarlo Ansaloni Presidente Biagio Pascali Serie C21º posto nel girone C. Promosso in Serie C1. Maggiori presenzeCampionato: Tomba (33) Miglior marcatoreCampionato: Tomba (17) 1983-1984 1985-1986 Si invita a seguire il modello di voce Questa pagina raccoglie le informazioni riguardanti il Brindisi Sp...

 

Pertempuran KumanovoBagian dari Perang Balkan PertamaPeta pergerakan pasukan di Front SerbiaTanggal23–24 Oktober 1912LokasiDistrik Kumanovo, Sanjak Üsküp, Vilayet Kosovo, Kesultanan Utsmaniyah(kini Kumanovo, Republik Makedonia)Hasil Kemenangan SerbiaPihak terlibat  Kerajaan Serbia  Kesultanan UtsmaniyahTokoh dan pemimpin Radomir Putnik Putra Mahkota Alexander Stepa Stepanović Božidar Janković Halepli Zeki Pasha (Angkatan Darat Vardar) Fethi Pasha (Korps VII)Kekuatan 132.000 p...

 

البرانسمعلومات عامةالبلد  إسبانيا فرنسا أندورا المكان  القائمة ... أقطانية الجديدة — قسطانية — منطقة إقليم الباسك — أَرَغـُون — منطقة نبرة — كتالونيا جزء من حزام ألبي الجغرافياالإحداثيات 42°40′N 1°00′E / 42.67°N 1°E / 42.67; 1 قمة جبل أنيتو الارتفاع 3٬404 متر ا�...

Utility transport aircraft by Lockheed For the later corporation known as Lockheed-Vega, see Vega Aircraft Corporation. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Lockheed Vega – news · newspapers · books · scholar · JSTOR (January 2010) (Learn how and when to remove this message) Vega Role TransportTyp...

 

Эта статья — о мирном договоре между Советской Россией и Центральными державами. О мирном договоре между УНР и Центральными державами см. Брестский мир с УНР. Брестский мирный договор Первая страница договора Тип договора Мирный договор Дата подготовки 22 дек�...

 

Oliver Makor Informasi pribadiNama lengkap Oliver Paul MakorTanggal lahir 9 Oktober 1973 (umur 50)Tempat lahir Monrovia, LiberiaTinggi 168 m (551 ft 2 in)Posisi bermain Gelandang tengahInformasi klubKlub saat ini Persik KediriNomor 11Karier senior*Tahun Tim Tampil (Gol) 1991–1992 1993 1994 1994–1996 1996–1997 1997–1999 1999–2001 2001–2002 2002–2009 2010–2011 2012-kini Black Star Julius Berger FC Canon Yaoundé Grenoble Foot 38 Tours FC Limoges FC Proodefti...

Questa voce sugli argomenti ministeri e politica d'Italia è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Ministero dell'assistenza postbellicaStato Italia Italia TipoDicastero Istituito21 giugno 1945 daGoverno Parri Soppresso14 febbraio 1947 daGoverno De Gasperi II SuccessoreMinistero dell'assistenza post-bellica della Repubblica Italiana Modifica dati su Wikidata · Manuale Il Ministero dell'assistenza postbellica venne istituito con ...

 

Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки. Мат...

 

American jazz drummer (1914–1985) For other people with similar names, see Kenneth Clark. Kenny ClarkeClarke in 1971Background informationBirth nameKenneth Clarke SpearmanBorn(1914-01-09)January 9, 1914OriginPittsburgh, Pennsylvania, United StatesDiedJanuary 26, 1985(1985-01-26) (aged 71)Montreuil, FranceGenresJazzOccupation(s)MusicianInstrument(s)DrumsYears active1931–1984Musical artist Kenneth Clarke Spearman (January 9, 1914 – January 26, 1985), known professionally...

Questa voce o sezione sull'argomento storia è ritenuta da controllare. Motivo: Pagina in generale di bassa qualità, contenente: imprecisioni storiche; eventi riportati più volte e senza un razionale nesso cronologico (in particolare per il periodo interbellico e per la II GM); dilungazione su notizie del tutto inutili; fonti difficilmente verificabili; toni celebrativi in alcune sezioni; utilizzo in molte parti di una forma di scrittura elementare, non adatta ad un'enciclopedia; mera...

 

Dominican baseball player (born 1978) In this Spanish name, the first or paternal surname is Germán and the second or maternal family name is Guridi. Baseball player Esteban GermánGermán with the Saitama Seibu LionsSecond baseman / Third basemanBorn: (1978-01-26) January 26, 1978 (age 46)Santo Domingo, Dominican RepublicBatted: RightThrew: RightProfessional debutMLB: May 5, 2002, for the Oakland AthleticsNPB: 2012, for the Saitama Seibu LionsLast appea...

 

La Grande Palestine[1] (arabe: فلسطين الكبرى) est une notion irrédentiste utilisée par certains nationalistes palestiniens cherchant à établir un État-nation palestinien sur l'ensemble de l'ancienne Palestine sous mandat (l'actuel État d'Israël, la Cisjordanie et la bande de Gaza) voire de l'Émirat de Transjordanie. Certains responsables de l'Organisation de libération de la Palestine ont étendu les revendications des années 1970 et 1980 à la Jordanie. Le terme est con...

Inca Empire Inca society Education Religion Mythology Architecture Engineering Roads Army Agriculture Ayllu Cuisine Inca history Kingdom of Cusco Inca Empire History of Cusco Chimor–Inca War Invasion of Chile Neo-Inca State Civil War Spanish conquest vte This article may need to be rewritten to comply with Wikipedia's quality standards. You can help. The talk page may contain suggestions. (May 2024) Inca mythology is the universe of legends and collective memory of the Inca civilization, w...

 

Sporting event delegationPoland at the1928 Winter OlympicsIOC codePOLNOCPolish Olympic CommitteeWebsitewww.pkol.pl (in Polish)in St. MoritzCompetitors26 (men) in 5 sportsFlag bearerAndrzej Krzeptowski[1]Medals Gold 0 Silver 0 Bronze 0 Total 0 Winter Olympics appearances (overview)192419281932193619481952195619601964196819721976198019841988199219941998200220062010201420182022 Poland competed at the 1928 Winter Olympics in St. Moritz, Switzerland. Bobsleigh Main article: Bobsl...