Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zu Inodes in Linux ein. Die Einführung im Artikel ist sehr detailliert und bietet einen gewissen Referenz- und Lernwert für alle Freunde, die sie unten lesen können.
Hintergrund
Ich habe kürzlich Linux-Befehle überprüft, und als ich zu df ging, entdeckte ich etwas, das ich vorher ignoriert hatte. Das heißt, die Option -i listet die Inode-Informationen der Dateisystempartition auf. Was ist dieser Inode?
Wofür wird der Inode verwendet?
Der Inode ist der Bereich, der zum Speichern von Dateimetainformationen verwendet wird. Die chinesische Übersetzung heißt „Indexknoten“.
Hintergrundwissen über Inodes
Lassen Sie uns zunächst einige Inhalte zur Dateispeicherung durchgehen. Wir wissen, dass Dateien auf der Festplatte gespeichert werden. Die kleinste Speichereinheit der Festplatte wird auch als Sektor bezeichnet. Die Größe eines Sektors beträgt 512 Byte.
Wenn das Betriebssystem Informationen auf der Festplatte liest, liest es mehrere Sektoren gleichzeitig, und diese mehreren Sektoren werden auch Blöcke genannt. Normalerweise beträgt die Blockgröße 4 KB, also etwa 8 Sektoren. Es ist zu beachten, dass es sich bei den gelesenen Blöcken um zusammenhängende Leerzeichen handelt.
Zu diesem Zeitpunkt können wir wissen, dass Dateien in „Blöcken“ gespeichert werden. Genau wie beim Schreiben von C-Sprachprogrammen wissen wir, dass beim Deklarieren eines Arrays nicht nur der Wert gespeichert wird Wenn es in das Array eingefügt wird, werden auch die entsprechenden Array-Informationen gespeichert, z. B. die erste Adresse des Arrays, der Dateityp, die Array-Länge usw. Ebenso müssen Sie einen Ort zum Speichern der Metainformationen der Datei finden, ähnlich dem Informationen zur Dateierstellung, zur Länge der Datei usw. Und dieser Ort heißt Inode.
Der im Inode gespeicherte Inhalt
Der Inode enthält die Metainformationen der gespeicherten Datei, einschließlich dieser Inhalte:
Die Anzahl der Bytes in der Datei.
Die ID des Dateierstellers.
Gruppen-ID der Datei.
Lese- und Schreibberechtigungen für Dateien.
Der relevante Zeitstempel der Datei. Es gibt drei spezifische: ctime –>Der Zeitpunkt, zu dem der Inode zuletzt geändert wurde; mtime –>Der Zeitpunkt, zu dem der Dateiinhalt zuletzt geändert wurde; atime –>Der Zeitpunkt, zu dem die Datei zuletzt geöffnet wurde;
Anzahl der Links
Speicherort der Dateidaten blockieren
Inode-Nummer
Nachdem ich den oben genannten Speicherinhalt zum ersten Mal gesehen habe, denke ich, dass jeder die gleiche Frage haben wird. Da Inode dateibezogene Informationen speichert, warum nicht Dateien speichern? Der Name. Der Grund dafür ist, dass Dateinamen nicht der Standard für Unix/Linux-Betriebssysteme sind, um verschiedene Dateien zu identifizieren.
Das Betriebssystem identifiziert verschiedene Dateien anhand von Inode-Nummern.
In Unix/Linux-Systemen wird der Name der Benutzerebene zum Öffnen der Datei über den Dateinamen verwendet. Auf der Systemebene werden zum Öffnen der Datei hauptsächlich drei Schritte ausgeführt:
-
Suchen Sie anhand des Dateinamens die entsprechende Inode-Nummer.
Inode-Informationen über die Inode-Nummer abrufen.
Suchen Sie anhand der Inode-Informationen den Block, in dem die Dateidaten gespeichert sind, und trennen Sie die Daten.
Die Sonderfunktion von Inode
Im Unix/Linux-System die Inode-Nummer und -Datei Name getrennt. Dies hat zu einigen besonderen Phänomenen im System geführt:
Das Löschen des Inode-Knotens bedeutet das Löschen der Datei. Einige Dateien werden möglicherweise nicht korrekt gelöscht. In diesem Fall können wir den entsprechenden Inode-Knoten direkt löschen, um die Datei zu löschen.
Verschieben oder benennen Sie die Datei um, ohne die Inode-Nummer zu ändern, nur den Dateinamen.
Im Allgemeinen kann das System den Dateinamen nicht über die Inode-Nummer ermitteln. Wenn eine Datei geöffnet wird, identifiziert das System die Datei über den Inode und berücksichtigt den Dateinamen nicht mehr.
Aufgrund der Existenz der Inode-Nummer kann das System aktualisiert werden, ohne die Software zu schließen. Das System identifiziert laufende Dateien anhand der Inode-Nummern. Während des Aktualisierungsvorgangs sind Dateien mit demselben Dateinamen und neuem Inode vorhanden, ohne dass dies Auswirkungen auf die aktuell ausgeführten Dateien hat. Die ursprüngliche alte Version des Inodes wird beim nächsten Öffnen der Software recycelt und der Dateiname verweist automatisch auf die neue Inode-Nummer.
Inode-Platzbelegungsproblem
Da die Daten auch auf der Festplatte gespeichert sind, wird der Inode definitiv die Festplatte belegen Beim Formatieren der Festplatte unterteilt das Betriebssystem die Festplatte automatisch in zwei Bereiche:
Datenbereich
Inode-Tabelle
Der Datenbereich speichert hauptsächlich Dateidaten und der Inode-Tabellenbereich speichert Inode-Informationen.
Insbesondere wird die Größe des vom Inode belegten Bereichs bereits beim Formatieren der Festplatte vom Betriebssystem vorgegeben. Dies hat zur Folge, dass der Speicherplatz im Datenbereich nicht aufgebraucht ist, aber auf die Daten nicht mehr zugegriffen werden kann. Da der Inode-Tabellenbereich zu diesem Zeitpunkt voll ist, können keine neuen Dateien auf der Festplatte gespeichert werden.
Verzeichnisdatei
Wir wissen, dass unter Unix/Linux jede Ressource in Form einer Datei existiert. So auch der Katalog. Wenn wir ein Verzeichnis öffnen, öffnen wir tatsächlich die Verzeichnisdatei. Die Struktur einer Verzeichnisdatei ist eine Liste.
Verzeichniseintrag = Dateiname der eingebundenen Datei + entsprechende Inode-Nummer.
Hardlinks und Softlinks
Ich werde nicht auf die Einzelheiten eingehen, was ein Hardlink und was ein Softlink ist In diesem Blogbeitrag werde ich nicht auf Details eingehen, sondern es nur aus der Inode-Perspektive betrachten.
Aus Sicht der Inode-Nummer dürfen in Unix/Linux-Systemen mehrere Dateinamen auf dieselbe Inode-Nummer verweisen. Wenn zu diesem Zeitpunkt einer der Dateinamen gelöscht wird, hat dies keinen Einfluss auf den Zugriff auf den anderen Dateinamen. Wenn gleichzeitig die Datei über einen Dateinamen geöffnet und Änderungen vorgenommen werden, können die Änderungen für andere freigegeben werden Dateinamen werden geöffnet. Dann nennen Sie dies einen „Hardlink“. Unter Linux können wir über den Befehl ln feste Links erstellen.
Wie oben zusammengefasst, gibt es im Inode ein Speicherelement namens „Anzahl der Links“, das die Gesamtzahl der Dateinamen aufzeichnet, die nur den Inode benötigen. Wenn ein Dateiname erstellt wird, um über einen festen Link auf eine Datei zu verweisen, ist die Linknummer im Inode-Datenfeld, das der Datei entspricht, + 1 und umgekehrt – 1. Wenn dieser Wert 0 ist, verwendet das System standardmäßig keinen Dateinamen, der auf den Inode verweist. Zu diesem Zeitpunkt wird die Inode-Nummer recycelt und der entsprechende Blockbereich wird recycelt.
Was den entsprechenden Softlink betrifft, nehmen wir an, dass es Datei A und Datei B gibt und B ein Softlink von A ist. Zu diesem Zeitpunkt sind die Inode-Nummern von A und B unterschiedlich, da es sich um unterschiedliche Dateien handelt, aber! Der Inhalt von B ist der Pfad von A. Beim Lesen von B greift das System automatisch auf A zu, sodass unabhängig davon, welche Datei geöffnet wird, auf Datei A zugegriffen wird. Zu diesem Zeitpunkt wird Datei B als „Softlink“ oder „symbolischer Link“ zu Datei A bezeichnet.
In Unix/Linux-Systemen können wir Softlinks über den Befehl ln -s erstellen.
Zusammenfassung und kleine Ergänzungen
Durch die obige Beschreibung wissen wir, dass Inode wie die Zeigerdomäne in der C-Sprache ist, die Zeigerdomäne Es zeichnet eine Vielzahl von Informationen auf und leitet uns zum richtigen Dateispeicherort, um die erforderlichen Informationen zu lesen. (Natürlich ist es nicht genau dasselbe.)
Beim Erstellen eines Verzeichnisses in einem Unix/Linux-System werden automatisch zwei Verzeichniseinträge generiert:
.Verzeichnis
.. Verzeichnis
Sie können diese beiden Verzeichnisse mit dem Befehl ls -al beobachten. Die Inode-Nummer von „.directory“ ist die Inode-Nummer des aktuellen Verzeichnisses, die dem Hardlink des aktuellen Verzeichnisses entspricht, während die Inode-Nummer des Verzeichnisses „..“ die Inode-Nummer des übergeordneten Verzeichnisses ist aktuelles Verzeichnis, das dem Hardlink des übergeordneten Verzeichnisses entspricht. Gesamtzahl der Verzeichnis-Hardlinks = 2 + Gesamtzahl der Unterverzeichnisse (einschließlich versteckter Dateien).
Das obige ist der detaillierte Inhalt vonTutorial zur Inode-Nutzung unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung
