Jak działają i-węzły Linux?

Jeśli używasz Linuksa wystarczająco długo, zobaczysz termin „i-węzły”. Jest to coś, co pojawia się od czasu do czasu, ale nie wpływa na to, co robisz. Tutaj wyjaśnimy, co to jest i-węzły i jak to działa.

Co to jest i-węzły?

W bibliotece wszystkie książki są uporządkowane według gatunku, nazwiska autora lub grupy wiekowej odbiorców. Jeśli chcesz zlokalizować thriller Bobby'ego Danielsa, przejdziesz bezpośrednio do sekcji thrillera i zaczniesz znajdować nazwiska autorów zaczynające się na „B”. Podobnie jak biblioteka, wszystkie pliki w systemie Linux są zorganizowane w celu wydajnego pobierania i użytkowania. I-węzeł to jednostka pomagająca w rozmieszczaniu plików w systemie Linux.

Co to są metadane pliku?

Powiedzmy, że mamy plik o nazwie „sample.txt” zawierający dane „hello”.

Czym jest Inode - przykładowy plik z danymi hello

Ten plik zawiera pewne dane i informacje, które są z nim związane, takie jak rozmiar pliku, uprawnienia, własność użytkownika i grupy, znaczniki czasu tworzenia / dostępu / modyfikacji, liczba linków itp. Wszystkie te informacje są łącznie nazywane metadanymi pliku.

Czym jest Inode - metadane pliku

Co to są systemy plików?

Na urządzeniu pamięci masowej, takim jak dysk twardy, partycja jest formatowana jako system plików, zanim zostanie użyta do przechowywania plików. System plików to bibliotekarz dysku twardego. Formalnie jest to zestaw struktur danych i algorytmów, które działają w tandemie, aby metodycznie przechowywać pliki na partycji.

Partycje w systemach Linux są często formatowane przy pomocy EXT4. Dostępne są również inne systemy plików, takie jak B-Tree File System (BTRFS), Reiser File System, ZFS itp.

Wiązanie ich wszystkich razem

I-węzeł to struktura danych w Ext4, która przechowuje wszystkie metadane pliku.

I-węzeł w szczegółach

Oczywiście w systemie plików będzie wiele plików. Jak się domyślacie, każdy plik miałby swój własny i-węzeł. Aby jednoznacznie zidentyfikować i-węzły, każdy i-węzeł jest ponumerowany.

Jaka byłaby numeracja i-węzłów?

Numery i-węzłów w systemie plików zaczynają się od 1. Pierwsze dziesięć i-węzłów jest zarezerwowanych do użytku systemu. Pliki użytkownika mają swoje metadane przechowywane z i-węzła 11. Wszystkie i-węzły są starannie ułożone razem w tabeli i-węzłów.

Tabela i-węzłów

Jeden wpis w tabeli i-węzłów miałby 256 bajtów. W przypadku pliku Linux inteligentnie organizuje wszystkie metadane w obrębie 256 bajtów! Ponadto i-węzeł dla pliku zawierałby również informacje o tym, gdzie w systemie plików znajdują się dane plików. Pamiętaj – tylko metadane pliku są przechowywane w i-węźle.

Całkowita liczba i-węzłów w systemie plików zależy od dostępnego miejsca i liczby plików, które można zapisać na partycji.

Jak są przydzielane i zwalniane węzły?

Gdy użytkownik dodaje pliki do świeżo sformatowanego systemu plików, i-węzły zaczynające się od 11 są przydzielane do przechowywania metadanych plików.

Istnieje inna struktura danych o nazwie „Inode Bitmap” do śledzenia statusu alokacji i-węzła. Jest to zbiór bitów, który działa jak mapa.

Rozważmy osiem bitów w mapie bitowej i-węzła, aby oznaczyć status przydziału i-węzłów od 11 do 18, jak pokazano w poniższej tabeli. Wartość 1 w mapie bitowej oznacza, że ​​i-węzeł jest przydzielony, tj. używany do przechowywania metadanych pliku. Wartość 0 w mapie bitowej oznacza, że ​​i-węzeł nie jest obecnie używany. Tutaj widzimy, że i-węzeł 17 jest w użyciu.

Mapa bitowa i-węzłów

W przypadku usunięcia pliku, który ma metadane w i-węźle 17, odpowiadający mu stan bitmapy zostałby zmieniony 0, wskazując, że może być używany przez inny plik.

Węzeł tabeli bitmap

Jak wyświetlić numer i-węzła dla pliku?

Można to zrobić na dwa sposoby.

Pierwszym z nich jest polecenie ls z przełącznikiem i, a następnie nazwa pliku. Pierwszym polem w danych wyjściowych jest numer i-węzła, który ma metadane „sample.txt”.

I-węzeł 7

Te same informacje można uzyskać za pomocą polecenia stat, po którym następuje nazwa pliku.

I-węzeł 8

Aby wyświetlić całkowitą liczbę i-węzłów dostępnych dla partycji, można użyć polecenia df z przełącznikiem -i.

I-węzeł 9

Na partycji „/ dev / sda4” dostępnych jest 404754480 i-węzłów, z których tylko 359044 jest używanych.

Wniosek

Z natury tablica i-węzłów układa metadane wszystkich plików dokładnie w i-węzłach wraz z informacjami o lokalizacji danych plików. Wszystko, co omówiliśmy na temat i-węzłów Linuksa, to po prostu wierzchołek góry lodowej. Aby uzyskać więcej informacji o jego wewnętrznej pracy, możesz rzucić okiem to połączyć.

Czy ten artykuł jest przydatny?