Что такое inode

«Что такое inode» — вопрос из категории Linux, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Inode (index node) — это структура данных в файловых системах Unix/Linux, хранящая метаданные о файле (размер, права доступа, владелец, временные метки), но не имя файла или его содержимое. Каждый файл имеет уникальный inode в рамках файловой системы.

Пример проверки inode в Linux:

ls -i /path/to/file

В Go можно получить информацию о файле через os.Stat(), которая включает данные из inode (но не сам номер inode напрямую):

info, err := os.Stat("file.txt")
if err != nil {
    log.Fatal(err)
}
fmt.Println("Size:", info.Size())
fmt.Println("ModTime:", info.ModTime())

Inode особенно важны для жестких ссылок (hard links) — несколько имен файлов могут ссылаться на один inode.