Метафора файла как универсального интерфейса доступа ко всем компонентам системы представляет собой одну из главных отличительных черт ОСей семейства UNIX, распространяясь, естественно, и на Linux. Попросту говоря всё, что существует в системе, суть файлы.

Файлами особого типа являются и все физические устройства, имеющиеся в машине. Они так и называются — файлами устройств, и содержатся в отдельном каталоге — /dev, и в его подкаталогах. До некоторого времени в Linux’е они создавались статически при инсталляции как бы «впрок», вне зависимости от наличия соответствующего им оборудования.

Однако на рубеже тысячелетий в Linux проникли идеи динамического создания файлов устройств, происходящего каждый раз заново в процессе старта машины на основе тестирования наличного оборудования. В результате чего файлы создавались только для тех устройств, которые реально присутствуют в машине, и при этом поддерживаются текущей конфигурацией ядра.

Первой реализацией динамического создания файлов устройств в Linux стала файловая система устройств — devfs, заимствованная из Solaris и утвердившаяся также во FreeBSD. Однако в Linux реализация её оказалась неудачной — в частности, она таки и не избавила окончательно от проблем при работе с устройствами “горячего” подключения. И потому просуществовала в Linux’е недолго, не успев даже вытеснить полностью статическую систему создания файлов устройств.

На смену devfs пришёл менеджер устройств udev. В отличие от файловой системы устройств, работающей в пространстве ядра, он целиком функционирует в пользовательском пространстве, хотя и использует собственную файловую систему — devtmpfs, представляющую собой одну из разновидностей tmpfs — файловой системы в оперативной памяти. Менеджер устройств обеспечивает динамическое управление ими, создавая соответствующие файлы при старте машины или по мере подключения в ходе сеанса работы. Файлам устройств присваиваются имена, генерируемые по определённым правилам, обеспечивающим их неизменность и независимость от порядка включения устройств. Именно последнее будет для нас особенно важно при использовании ZFS.


Назад | Рассказы о ZFS | Вперёд