В феврале 2000 года в ядро 2.3.46 была добавлена новая файловая система, которая называлась devfs, и она присутствовала в стабильных ядрах серии 2.4. Хотя метод динамического создания устройств был в самом исходном коде ядра, он у основных разработчиков ядра никогда не получал достаточной поддержки.
Основная проблема в подходе, используемом с devfs, была связана с тем, как устройства обнаруживались и создавались и как им назначались имена. Последняя проблема, связанная с назначением имен, была, пожалуй, самой важной. Принято считать, что если имена устройств могут настраиваться, то политика именования устройств должна полностью определяться системным администратором, а не навязываться ему каким-либо конкретным разработчиком (разработчиками). Файловая система devfs также страдала от эффекта "гонок" (race condition), который связан с конструкцией файловой системы и его нельзя избежать без существенных изменений в ядре. Из-за отсутствия технической поддержки, эта файловая система в течение длительного периода времени была помечена как устаревшая (deprecated), и, наконец, в июне 2006 года она была удалена.
В процессе разработки нестабильной ветки ядра 2.5, которая затем была реализована в виде стабильных ядер серии 2.6, появилась новая виртуальная файловая система, названная sysfs. Задача файловой системыsysfs состоит в экспорте отображения аппаратной конфигурации системы в процессы пользовательского пространства. Благодаря такому представлению в пользовательском пространстве просмотр новой файловой системы стал более простым и удобным, чем просмотр devfs.