пятница, 7 августа 2009 г.

Автомонтирование и авторазмонтирование

Наткнулся на заметку, где автор пытается представить идеальное автомонтирование и авторазмонтирование сменных накопителей в Linux: Сферическое супермонтирование в вакууме

В настоящее время схема монтирования сменных накопителей в Linux как бы распалась на два независимых уровня:
1. системный уровень, когда все настройки монтирования файловых систем прописываются в /etc/fstab, а само монтирование и размонтирование осуществляется автоматически при запуске или останове ядра, либо вручную, из командной строки,
2. уровень рабочего стола, когда монтирование на самом деле не осуществляется, а все операции по доступу к файловым системам происходят через специальные библиотеки, работающие в связке с HAL, специфичные для этого рабочего стола. Например GVFS/GIO в Gnome или KIO в KDE.

В чём недостаток такого подхода? Все файловые системы, смонтированные на уровне ядра, доступны любому приложению, а смонтированные средствами рабочего стола будут доступны только тем программам, которые ориентированы на работу с этим рабочим столом.

В лагере Linux появляется раздробленность: системные программисты и сисадмины живут отдельной жизнью, а разработчики и пользователи Gnome и KDE отдельной. В результате происходит дублирование кода, понижение интеропрабельности различных программ и систем и общий раскол.

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

В результате для обмена сообщениями в KDE долгое время использовался DCOP, а в Gnome - D-Bus. Потом разработчики KDE посчитали D-Bus более удобным и перешли на него. В результате подобных же процессов в Gnome и KDE существовали разные звуковые серверы - ESD и aRtsd. В результате такого же раскола сейчас Gnome перешёл на новую мультимедийную подсистему GStreamer, а разработчики KDE реализовали обёртку над GStreamer и другими подобными системами в виде Phonon. В результате таких же процессов, разработчики Gnome и KDE не захотели дорабатывать системы автомонтирования Linux, а реализовали свои системы Gnome-VFS, KIO, GVFS/GIO. Сюда же можно отнести и HAL, который пытается "глобальным и надёжным" способом обернуть подсистемы udev Linux и devfs FreeBSD.

Видимо теми же соображениями, для создания "глобальной и надёжной" системы "со своим блекджеком и шлюхами" разработчики Linux придумали заменить OSS на несовместимую с ней ALSA. Правда, следует отдать им должное, они практически сразу же сделали конвертеры интерфейсов alsa-oss и oss-alsa.