Wat zijn inodes in Linux en hoe worden ze gebruikt?

Alles in Linux wordt als een bestand beschouwd om de consistentie te behouden. Dat omvat hardwareapparaten, printers, mappen en processen. Gewone bestanden zoals muziek, tekst, video's en andere multimediabestanden hebben ook aanvullende gegevens die metagegevens worden genoemd.

Wat zijn Inodes in Linux ? Inode- items vormen de basis van het Linux-bestandssysteem(Linux file system) . Ze beheren de metadata over een bestand en zijn essentiële onderdelen van de innerlijke werking van Linux

Wat is de structuur van een bestandssysteem?(What Is The Structure Of a File System?)

Een bestandssysteem is verdeeld in twee delen: datablokken en inodes. Het aantal blokken staat vast zodra het is gemaakt en kan niet worden gewijzigd.

De naam, het pad, de locatie, links en andere bestandskenmerken bevinden zich niet in de directory. Directory's zijn gewoon tabellen die de namen van de bestanden bevatten met het bijbehorende inodenummer.

U kunt een harde link maken die resulteert in meer dan één naam voor hetzelfde bestand. Als je een harde link maakt, wordt er ook een nieuwe naam in de tabel gemaakt met de inode, maar wordt het bestand niet verplaatst.

Als u een groot bestand zou verplaatsen, zou dit lang duren. Het is efficiënter om het naamitem in een nieuwe map te maken en het oude item te verwijderen. U kunt op dezelfde manier ook de naam van bestanden wijzigen.

Het bovenste deel van de hiërarchie is het bestandssysteem zelf. Binnen het bestandssysteem zijn de bestandsnamen. De bestandsnamen linken naar de inodes. De inodes linken naar de fysieke data.

Wat zijn inodes in Linux?(What Are Inodes In Linux?)

Een inode is een datastructuur. Het definieert een bestand of een directory op het bestandssysteem en wordt opgeslagen in de directory-ingang. Inodes verwijzen naar blokken waaruit een bestand bestaat. De inode bevat alle administratieve gegevens die nodig zijn om een ​​bestand te lezen. De metadata van (metadata)elk(Every) bestand wordt opgeslagen in inodes in een tabelstructuur.

Bij gebruik van een programma dat op naam naar een bestand verwijst, zoekt het systeem in het directory-invoerbestand waar het bestaat om de overeenkomstige inode op te halen. Dit geeft uw systeem de bestandsgegevens en informatie die het nodig heeft om processen of bewerkingen uit te voeren.

Inodes bevinden zich meestal aan het begin van een partitie(beginning of a partition) . Ze slaan alle informatie op die aan een bestand is gekoppeld, behalve de bestandsnaam en de feitelijke gegevens. Alle bestanden in een Linux- directory hebben een bestandsnaam en een inodenummer. Gebruikers kunnen de metadata voor een bestand ophalen door te verwijzen naar het inodenummer.

Bestandsnamen(File) en inodenummers worden opgeslagen in een aparte index en linken naar de inode. U kunt een koppeling maken naar de metagegevens die het bestand vertegenwoordigen. Het is mogelijk om meerdere bestandsnamen te hebben die naar één stuk data of inode verwijzen, zoals u in de onderstaande afbeelding kunt zien.

Wat is het inodenummer?(What Is The Inode Number?)

Elke inode in de Linux - structuur heeft een uniek nummer dat ermee wordt geïdentificeerd. Het wordt ook wel het indexnummer genoemd en heeft de volgende kenmerken:

  • Maat
  • Baasje
  • Datum Tijd
  • Machtigingen en toegangscontrole
  • Locatie op de schijf
  • Bestand types
  • Aantal koppelingen
  • Aanvullende metadata over het bestand

Gebruik de volgende opdracht om de lijst met inodenummers te controleren:

ls -i

De onderstaande schermafbeelding toont een map met inodenummers die in de uiterst linkse kolom verschijnen.

Hoe werken inodes?(How Do Inodes Work?)

Wanneer u een nieuw bestand aanmaakt, krijgt het een bestandsnaam en inodenummer toegewezen. Beide worden opgeslagen als items in een directory. Als u het ls-commando (ls -li ) uitvoert, ziet u een lijst met bestandsnamen en inodenummers die in een directory zijn opgeslagen.

Gebruik de onderstaande opdracht om de inode-informatie voor elk bestandssysteem weer te geven.

df -hi

Hoeveel inodes gebruikt u?

Een manier om geen ruimte meer te hebben in een bestandssysteem is door al je inodes op te gebruiken. Zelfs als u voldoende vrije ruimte op uw schijf hebt, kunt u geen nieuwe bestanden maken.

Het gebruik van alle inodes kan er ook toe leiden dat uw systeem plotseling stopt. Typ de volgende opdracht om een ​​lijst met statistieken over het gebruik van inodes te zien, zoals gebruikt, gratis en gebruikt:

sudo df -ih

Extra manieren waarop inodes worden gebruikt:(Additional Ways Inodes Are Used)

De manier waarop inodes in Linux werken, maakt het onmogelijk om conflicterende inodenummers te hebben. Het is niet mogelijk om een ​​harde koppeling tussen verschillende bestandssystemen te maken. U kunt echter zachte koppelingen gebruiken voor verschillende bestandssystemen. U kunt de originele bestanden verwijderen en toch over de gegevens beschikken via een harde link.

Door een bestand te verwijderen, hoeft u alleen maar een van de namen te verwijderen die naar een specifiek inodenummer verwijzen. De gegevens blijven behouden totdat u alle namen verwijdert die aan hetzelfde inodenummer zijn gekoppeld. Linux -systemen worden bijgewerkt zonder dat het systeem grotendeels opnieuw moet worden opgestart vanwege de manier waarop inodes werken. 

Een proces kan een bibliotheekbestand gebruiken terwijl een ander proces hetzelfde bestand vervangt door een nieuwere bijgewerkte versie en een nieuwe inode maakt. Het lopende proces blijft het oude bestand gebruiken. De volgende keer dat u hetzelfde proces gebruikt, wordt de nieuwe versie gebruikt.

Gebruikers hebben geen directe interactie met inodes, maar ze vertegenwoordigen wel een fundamenteel onderdeel van Linux -bestandsstructuren.



About the author

Ik ben een softwareontwikkelaar met meer dan 10 jaar ervaring. Ik ben gespecialiseerd in Mac-programmering en heb duizenden regels code geschreven voor verschillende Mac-programma's, waaronder maar niet beperkt tot: TextEdit, GarageBand, iMovie en Inkscape. Ook heb ik ervaring met Linux en Windows ontwikkeling. Dankzij mijn vaardigheden als ontwikkelaar kan ik hoogwaardige, uitgebreide tutorials schrijven voor verschillende softwareontwikkelingsplatforms - van macOS tot Linux - waardoor mijn tutorials de perfecte keuze zijn voor diegenen die meer willen weten over de tools die ze gebruiken.



Related posts