GNU/Linux >> Znalost Linux >  >> Linux

K čemu jsou Inody dobré?

Zajímalo by mě, zda uchovávání informací o souborech v inodech namísto přímo v adresáři stojí za další režii. Možná je dobře, že přeceňuji režii nebo přehlížím nějakou důležitou věc, ale proto se ptám.

Vidím, že něco jako „inody“ je pro pevné odkazy nezbytné, ale v případě, že je režie skutečně tak velká, jak si myslím, zajímalo by mě, zda to opravňuje některý z důvodů:

  • používání pevných odkazů pro zálohování je chytré, ale efektivita zálohování není dostatečně důležitá ve srovnání s efektivitou běžných operací
  • není důležitá ani rychlost, ani velikost penalizace pro pevné odkazy, protože tato výhoda platí pouze pro několik souborů využití pevných odkazů při přístupu ke všem souborům utrpí režii
  • úspora místa pro několik stejně pojmenovaných binárních souborů, jako je bunzip2 a bcat je zanedbatelný

Neříkám, že inody/hardlinky jsou špatné nebo zbytečné, ale může to ospravedlnit náklady na další nepřímé směrování (cachování jistě hodně pomáhá, ale není to žádná sláva)?

Přijatá odpověď:

Tvrdé odkazy jsou vedle. Nejsou důvodem, proč mít inody. Jsou vedlejším produktem:v podstatě každý rozumný návrh souborového systému podobného unixu (a dokonce i NTFS je v tomto bodě dostatečně blízko) má pevné odkazy zdarma.

Inode je místo, kde jsou uložena všechna metadata souboru:čas jeho modifikace, jeho oprávnění a tak dále. Je to také místo, kde je uloženo umístění dat souboru na disku. Tato data musí být někde uložena.

Ukládání dat inodů do adresáře s sebou nese vlastní režii. Zvětší adresář, takže získání výpisu adresáře je pomalejší. Ušetříte hledání pro každý přístup k souboru, ale každé procházení adresářů (kterých je pro přístup k souboru potřeba několik, jedno na adresář na cestě k souboru) stojí trochu víc. Nejdůležitější je, že je mnohem obtížnější přesunout soubor z jednoho adresáře do druhého:namísto přesunutí pouze ukazatele na inode musíte přesunout všechna metadata.

Unixové systémy vždy umožňují přejmenovat nebo odstranit soubor, i když je proces otevřený. (U některých unixových variant to proveďte téměř vždy.) Toto je v praxi velmi důležitá vlastnost:znamená to, že aplikace nemůže „unést“ soubor. Přejmenování nebo odstranění souboru neovlivní aplikaci, může pokračovat ve čtení a zápisu do souboru. Pokud je soubor odstraněn, data zůstanou v okolí, dokud žádný proces již soubor neotevře. To je usnadněno přidružením procesu k inodu. Proces nelze přiřadit k názvu souboru, protože se může kdykoli změnit nebo dokonce zmizet.

Související:Jaký je dobrý nástroj pro vizualizaci úloh SQL Agent?
Linux
  1. Co jsou řídké soubory v Linuxu

  2. K čemu slouží soubor .la libtool?

  3. Co je soubor .so?

  1. Jaké jsou dobré knihy o Linuxu/Unixu pro pokročilé uživatele?

  2. K čemu je Linux test – příkazový test?

  3. Jaká jsou správná oprávnění pro složku .gnupg? gpg:VAROVÁNÍ:nebezpečné uzavření oprávnění k adresáři v konfiguračním souboru

  1. Potřebujete dobrý hex editor pro Linux

  2. Jaký je dobrý přístup k extrahování částí řeči z libovolného zvukového souboru?

  3. Co je to stránka mapovaná v paměti a anonymní stránka?