Привет. В процессе собеседований на Linux-администратора испытуемым задается большое количество интересных вопросов. В большинстве своём это отличные векторы для изучения системы и мне показалось хорошей идеей разобрать часть из них. Сегодня поговорим про вопросы, связанные с линками в Linux.
1. Что такое hard-link, чем он отличается от sym-link?
2. Как найти все хард-линки, ведущие в одно и тоже место?
К любому из этих вопросов можно задать усложняющие - простых ответов вида "ln и find" вам может не хватить, поэтому давайте попробуем копнуть глубже.
Начнем с того, что Linux работает с файловыми системами не напрямую, а использует для этого VFS(Virtual File System) - абстракцию, которая позволяет собрать в одном корне партиции с разными файловыми системами. Секрет заключается в том, что интерфейс VFS предоставляет для драйверов файловых систем механизм взаимодействия, который описывает типичные действия с файловой системой(например - создание файла). Схема взаимодействия выглядит так: