LINUX.ORG.RU

Что придёт на смену xorg.conf?

 , ,


0

0

Уже давно очевидно, что хранение настроек иксов в xorg.conf устарело и не справляется с возложенными на него задачами, в связи с чем, например, писатели проприетарных драйверов от AMD/ATI и NVIDIA изобрели собственные реестроподобные велосипеды.

Недавно по этому поводу разгорелась дискуссия среди разработчиков иксов, в ходе которой было выдвинуто несколько смелых идей — в их числе, например, хранение настроек в GConf. Мэтью Типпет из AMD рекомендовал использовать иерархаичную конфигурацию, сходную с решением в проприетарных драйверах ATI. «NIH syndrome always rules...» — отметил он.

>>> Подробности в репортаже Phoronix

★★★★

Проверено: JB ()
Ответ на: комментарий от jackill

> А вынести (как все вменяемые люди) в тридцать языковых конфигов не позволяет религия?

А сейчас так и происходит. Конфиг отдельно - ман отдельно. Кому это удобно?

Aceler ★★★★★
()
Ответ на: комментарий от jackill

>А у любого качественного приложения валидатор есть.

да? и ldap-backend у любого качественного приложения есть? Ты уверен?

а схема есть у "любого качественного приложения", чтобы сторонняя конфигурялка без костылей могла изменять конфиг?

geek ★★★
()
Ответ на: комментарий от Aceler

>А сейчас так и происходит. Конфиг отдельно - ман отдельно. Кому это удобно?

не, он похоже имеет ввиду, что в пакете должно быть 30 конфигов - по конфигу на язык.

Я вот думаю, что делать, если один админ привык к комментариям на инглише, а второй кроме русско-германского словаря ничем не владеет.

Может, jackill подскажет? =)

geek ★★★
()
Ответ на: комментарий от geek

Вообще по моему микрософт рекомендует хранить конфиги программ в файлах в аппдата в каталогах пользователя, а не в реестре.

orcy
()
Ответ на: комментарий от orcy

Зависит от. Читайте MSDN.

P.S. Хотя лучше не читайте... :)

Aceler ★★★★★
()
Ответ на: комментарий от geek

> не, он похоже имеет ввиду, что в пакете должно быть 30 конфигов - по конфигу на язык.

Ну тут один уже предлагал в систему записывать конфиг на одном языке, а в ~/ - на другом. Проблема в том, что даже если такая схема будет работать, я ни разу не видел подобной схемы в реальности. В отличие от мультиязычных комментов в xml.

Aceler ★★★★★
()
Ответ на: комментарий от geek

> текстовый формат надежнее? Ты в это искренне веришь? =)

Аргументировать? Замени-ка один байтик в бинаре и в любом текстовом конфиге. А я посмотрю, что после этого работать будет ::))

> ты привел неправильный парсер. Неработающий =)

Это почему же? Ты проверял? ::))

>а в случае _единого_ апи _парсер_ нахер не нужен. Вообще. Интересно, с какого раза до тебя это дойдет

Да ну? gconf парсит через астрал? Или мне ещё БД поднимать из-за него?

> Покажи мне неинтерактивный cli-инструмент для текстовых файлов. Сравним сложность.

Да хотя бы sed. Беда в обратном нужен как раз интерактивный.

>так что твои вопли отклоняются, как самодурство необразованного школьника.

Ты в это действительно веришь?

> костыли, написанные для добавления доли возможностей от того, что мы тут обсуждаем, не публикую. И публиковать не буду. Стыдно.

Всё ясно. Разработчик не разработчик, пользователь не пользователь. хз кто

anonymous
()
Ответ на: комментарий от argin

2argin

>Ты описал именно меня, именно мне приходится ежедневно админить много машин, но у меня проблемы именно с xml конфигами, именно их понимать и править трудно, они удобны только для программистов создающих эти конфиги

Ты фанатик. При слове XML у тебя сразу отрубается мозг. XML конфиги на 1-й машине может и сложнее править чем INI Like. Но вот для 10 машин они уже дают удобство. Какое?

1) Наличие XSLT для генерации конфига из микроконфигов (ты в конфиге сколько параметров меняешь? 100% Или не более 1?

2) Удобное API для любого ЯП.

Поэтому делаем шаблон конфига, выносим НУЖНЫЕ нам параметры в табличку типа IP машины XPath параметра Значение и Вуаля - у нас 10 конфигов - и УЧТИ DTD Проверил их - они 100% рабочие.

А ты как правишь конфиги? Как обезян? Руками. Ну так книжки пиши - вон Дарья Донцова денег рубит

anonymous
()
Ответ на: комментарий от VoDA

>Причем ни в одном из этих случаев НЕТ программно-независимой схемы позволяющей валидировать конфиг.

Можно ли в схеме допустить ошибку? Можно.

Сознательно испортить? Как и plain.config.

Нужны ли деревья всем программам? Не нужны.

Текстовым конфигам не хватает одного - чтобы нельзя было выставить два взаимоисключающих (или частично исключающих) параметра. Наверное, это можно сделать в xml (можно?).

Но почему-то dbus/hal все это не помогает. Чтобы исправить один параметр, нужно изнасиловать свой мозг - потому что нихрена не понятно без толстой пачки документации.

jackill ★★★★★
()
Ответ на: комментарий от anonymous

>Аргументировать? Замени-ка один байтик в бинаре и в любом текстовом конфиге. А я посмотрю, что после этого работать будет ::))

бинарник - получит ошибку при загрузке демоном конифигурации, будет почекан и заменен на архивный. Приложение даже не узнает

а если ты в одной буковке ошибешся в конфиге иксов - они даже не стартуют

>Да ну? gconf парсит через астрал? Или мне ещё БД поднимать из-за него?

зачем? gconf может у ldap'а просить, читать через стандартную libxml2 или из бинарника.

приложению знать, в каком именно виде все это хранится - не надо.

>Да хотя бы sed. Беда в обратном нужен как раз интерактивный.

sed...бгыгыгы =))) Продемонстрируй замену дефолтного разрешения и цветности у дефолтного экрана. На sed. Ага

интерактивный - gconf-editor. Как вариант - с консольным gtk-бакендом. Да, есть и такой =)

>Ты в это действительно веришь?

верю во что? в то что _ты_ сам сказал, что твоё _мнение_ - субъективно, а проблемы с масштабируемостью и прочим - объективны? Не, не верю. ЗНАЮ

geek ★★★
()
Ответ на: комментарий от isden

>мог бы сбэкапить /etc, развернуть в другом - и у меня будет полностью рабочая система с моими настройками

Ну да. С теми же лейблами винтов, с тем же железом, временем работы, требованиями к security context, ключами... Как думаешь, через сколько запусков тебе удастся вычистить эти параметры и завестись как надо?

jackill ★★★★★
()
Ответ на: комментарий от jackill

>Можно ли в схеме допустить ошибку? Можно.

прекращай фантазировать. Кто тебе схему даст ломать? Даже я сходу не вспомню, где она лежит в том же gconf =)

geek ★★★
()
Ответ на: комментарий от geek

Слушай, geek, а ты чего весь день не работаешь?

jackill ★★★★★
()
Ответ на: комментарий от geek

Сломать я могу что угодно. А лучше не я, а злобный хацкер. И что дальше, загрузятся твои проги, если схему поломать? Или если конфиги испортить?

А насколько легко будет починить, если доступ идет не через волшебную "конфигурилку на все"?

jackill ★★★★★
()
Ответ на: комментарий от geek

>бинарник - получит ошибку при загрузке демоном конифигурации, будет почекан и заменен на архивный.

Насколько свежий?

А если нет?

jackill ★★★★★
()
Ответ на: комментарий от geek

>а если ты в одной буковке ошибешся в конфиге иксов - они даже не стартуют

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

jackill ★★★★★
()
Ответ на: комментарий от Aceler

>Проблема в том, что даже если такая схема будет работать, я ни разу не видел подобной схемы в реальности. В отличие от мультиязычных комментов в xml.

А видел ли ты KDE или файлы .po?

jackill ★★★★★
()
Ответ на: комментарий от jackill

>В еще более приличных он сам копируется обратно.

угу, failsafe с vesa, в котором бедный пользователь безуспешно будет искать nv, чтобы прописать вместо него nvidia

вообще это костыль, и такого рода ошибки должны обрабатываться автоматом для всего софта, а не только для того, где догадались враппер прикрутить

geek ★★★
()
Ответ на: комментарий от jackill

>Насколько свежий?

который был _до_ изменения. Собственно, реализовать неограниченный undo в такой схеме можно без проблем, без привлечения систем контроля версий.

>А если нет?

а если нет - консоль, dpkg-reconfigure, ncurses-редактор и прочие инструменты. Ты же такой фантазер - уверен, сможешь придумать что-нибудь и сам =)

geek ★★★
()
Ответ на: комментарий от argin

>Мне не нужны лишние посредники между мной и конфигами. Это дополнительные источники ошибок. Из всех инструментов мне нужен только текстовый редактор.

Это вы не нужны если слабо осознаете потенциальные траблы данного подхода.

Вы конфиг правите в стиле cfg=open('template').readlines().join('\n'); cfg.replace('$$$hostname','bigserver').replace('$$$bind','192.168.1.1'); write('cfgfile',cfg) ?Мне не нужны лишние посредники между мной и конфигами. Это дополнительные источники ошибок. Из всех инструментов мне нужен только текстовый редактор.

А теперь после очередного APT-GET UPDATE в конфиге повится новый неучтенный параметр - и вы не будете в курсе что он есть, что произойдет? Все 1000 ваших серверов лягут. И лягут ночью в воскресенье.

С генерацией конфигов в XML есть возможность верификации по DTD. Тут народ уже все уши прожужжал про преимущества статической типизации - а вы отрицаете.

Теперь про тулзы QConfig использует столько парсеров и столько генераторов, что яб на месте его создателей застрелился. Вам уже WebMin в пример привели... Вы меня простите, вы не админ... Даже стыдно как-то. У меня например благодаря XML конфигам каждый новый юзер получает 100% настроенный PSI и знаете, что - и в Linux и в Windows это один конфиг.

anonymous
()
Ответ на: комментарий от jackill

>И что дальше, загрузятся твои проги, если схему поломать?

если их стереть - тоже не загрузятся. Ну или если libc грохнуть. А если "злобный хакер" получил у тебя рутовые права - тут уже ini-style конфиги тебя не спасут =)

>А насколько легко будет починить

а как ты обычно чинишь? Надеюсь, из бекапа =)

geek ★★★
()
Ответ на: комментарий от VoDA

>Читать сторонним нужно чтобы уйти от лисапеда YAST / другие конфигурялки и можно было СОЗДАТЬ программу которая легко редактирует ЛЮБОЙ конфиг ЛЮБОГО приложения, валидирует его, подсказывает какие параметры / аттрибуты можно использовать, выдает контекстную справку и т.п.

Даже Microsoft не стала такого делать (а ведь опыта не занимать). Более того, что-то у них идет в текстовых конфигах, а что-то - правится напрямую в реестре.

А почему?

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

Неужели годы работы в unix-системах тебя ничему не научили?

>прога кроме своей деятельности занимается всякой херней - парсит конфиг, валидирует его и т.п.

А многие из них еще проверят формат собственных файлов, IO и т.п.

И как выжили?

jackill ★★★★★
()
Ответ на: комментарий от geek

>А если "злобный хакер" получил у тебя рутовые права - тут уже ini-style конфиги тебя не спасут =)

О чем я и говорю - ни один конфиг не спасет: есть у него валидация, нет валидации, есть таймстампы, нет таймстампов...

>Надеюсь, из бекапа =)

Когда как.

jackill ★★★★★
()
Ответ на: комментарий от anonymous

>И лягут ночью в воскресенье.

Они и так лягут, пока он параметр не включит.

jackill ★★★★★
()
Ответ на: комментарий от geek

>бинарник - получит ошибку при загрузке демоном конифигурации, будет почекан и заменен на архивный. Приложение даже не узнает

Сколько всего надо мутить. У товарища Мазоха таки есть почитатели.

>а если ты в одной буковке ошибешся в конфиге иксов - они даже не стартуют

иксы - это частной случай. Большинство программ просто подставят дефолтное значение и всё будет работать. Даже если похерится один конфиг в etc, то скажется это только на программах, которые этот конфиг юзают - остальное будет работать нормально. В случае же вындовс-вэй придётся каждый раз чекать и восстанавливать всю эту хрень. Вот только где гарантии, что момент восстановления это всё будет актуально? > зачем? gconf может у ldap'а просить, читать через стандартную libxml2 или из бинарника.

хорошо, если так.

> приложению знать, в каком именно виде все это хранится - не надо.

Конечно не надо. Любой более менее нормальный тулкит умеет с ними работать.

> интерактивный - gconf-editor. Как вариант - с консольным gtk-бакендом. Да, есть и такой =)

корноче, gtk прибит (пока?) гвоздями.

> верю во что? в то что _ты_ сам сказал, что твоё _мнение_ - субъективно, а проблемы с масштабируемостью и прочим - объективны? Не, не верю. ЗНАЮ

Примеры проблем с масштабируемостью в студию.

anonymous
()
Ответ на: комментарий от geek

>оторый был _до_ изменения. Собственно, реализовать неограниченный undo в такой схеме можно без проблем, без привлечения систем контроля версий.

Где-то я уже это видел. Наверное, в windows.

Откатывать будете только контент файлов или сами файлы тоже? Скажем, повредилась папочка с конфигами наполовину...

>Ты же такой фантазер - уверен, сможешь придумать что-нибудь и сам

Несомненно, можно и траву косить в скафандре, стоя в гамаке.

Кстати, а что будет, если вдруг волшебный парсер/конфигуратор сдохнет?

jackill ★★★★★
()
Ответ на: комментарий от geek

>угу, failsafe с vesa, в котором бедный пользователь безуспешно будет искать nv, чтобы прописать вместо него nvidia

Это если загрузится. Кстати, nv работает вполне себе. А если не загрузится, то пойдет в консоль.

jackill ★★★★★
()
Ответ на: комментарий от jackill

>Где-то я уже это видел. Наверное, в windows.

интересно, где ты там такое видел

>Откатывать будете только контент файлов или сами файлы тоже?

сам-то понял, что сказал?

>Скажем, повредилась папочка с конфигами наполовину...

да не будет никакой "папочки с конфигами".

>Кстати, а что будет, если вдруг волшебный парсер/конфигуратор сдохнет?

от старости?

geek ★★★
()
Ответ на: комментарий от svu

>Каким именно - из миллиона? Я же говорю - мне плевать на синтакс, Вы мне дайте один API. Чтоб я мог делать конфигурялки для "базовой системы

Каждому делу - свой инструмент.

А ты пытаешься ножницами для стрижки ногтей разжигать костер.

jackill ★★★★★
()
Ответ на: комментарий от geek

>и будет искать в консоли. Разница-то в чем?

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

Отказоустойчивость.

С plain text/ini у меня больше вероятность сделать исправление хотя бы потому, что под них больше подходящих легких инструментов.

jackill ★★★★★
()
Ответ на: комментарий от VoDA

>неойтишнего НЕ ДОЛЖНЫ лазить в конфиги и копаться в них. Если лазаешь в конфиг - ты уже оЙтишнег, хоть и начинающий.

Какой снобизм.

Можно я запишу - любители пихать xml везде - снобы?

P.S. Не против xml'я там, где он нужен.

jackill ★★★★★
()
Ответ на: комментарий от jackill

> Более того, что-то у них идет в текстовых конфигах, а что-то - правится напрямую в реестре.

Ну позови милиционера, пусть прогонит того дядьку, который заставляет тебя писать конфиги в XML.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

>Только это слегка не конфиг-файлы.

Верно. Это файлы перевода. Дык и в примере был слегка не конфиг файл, а инишник на сообщения.

jackill ★★★★★
()
Ответ на: комментарий от jackill

Короче этим людям, хоть кол на голове теши. Они будут рассказывать, что замена 101 парсера на 1 усложнит систему. Они будут рассказывать, что наличие валидатора в КАЖДОЙ!!! программе лучше одного DTD валидатора и это уменьшает программы и делает их безопаснее. Они утверждают, что sendmail.cf читабельнее XML. Они утверждают, что переносить кусочки текстовых файлов из одного в другой надежнее, чем перенос поддерева DOM.

Ну осталось заявить, что земля имеет форму чемодана, а разработчик WebMin просто тащится от того сколько плагиновк к скольки системам ему пришлось написать. А особенно ег прет, что кто-то регулярно там ломает.

anonymous
()
Ответ на: комментарий от svu

>В тулзах уровня gconf-editor/gconftool-2 всегда будут все параметры. Хотя даже эти тулзы требуют минимальной квалификации и понимания смысла происходящего.

Ждем с нетерпением для:

apache, vsftpd, mysql, samba, iptables

Тут, помнится, на xen сменили стиль конфигов - с питоновского на xml. И сделали особую прожку (даже две) - для графического режима и текстового. Ну и старые оставили на случай атомной войны.

В итоге гуевая работает через раз до сих пор - приходится пользоваться новой текстовой. Можно и старой, но бывает, что происходит некий конфликт и виртуальная машинка зависает.

Была еще такая вещь - не клонировались машины. Если бы раньше я в текстовом конфиге можно было прописать несколько строчек (четыре, по-моему), то теперь для создания мегабезопасного всесодержащего xml'я нужно было запустить процесс создания новой машины, затем его прервать и бродить по этому файлу, исправляя нужные места.

Вот на хрена?

jackill ★★★★★
()
Ответ на: комментарий от jackill

>>То есть, реестр, если он вообще нужен (как унифицированный механизм) должен быть не единственным, а вторичным механизмом.

> Yast?

не, скорее что-то вроде /sys в FreeBSD (/proc/sys в Linux, sysctl). Чтобы в этой FS хранились конфиги разных приложений, и глагне, была одинаковая семантика этих /proc/sys конфигов.

А "за сценой" оно бы отображалось чем-то вроде http://sope.opengroupware.org/en/sope_appserver/ofs.html + gitshelve (для фонатегов hgshelve) : 1) http://www.newartisans.com/blog_files/git.versioned.data.store.php http://209.85.135.104/search?q=cache:0Ifm6UHwDT8J:www.siebert-wd.de/projects/git-shelve+gitshelve&hl=en&ct=clnk&cd=... 2) http://piranha.org.ua/blog/2008/05/19/hgshelve/

в "реальные" Freeze Dried Object, засушенные персистентные объекты с настройками (defaults в макосе). Прозрачно для всех приложений

Сосбно, речь не про то, что "так в принципе можно сделать". Скорее, вопрос, какой интерфейс, семантика этой конфигфс должна быть.

anonymous
()
Ответ на: комментарий от anonymous

>Сколько всего надо мутить. У товарища Мазоха таки есть почитатели.

а _сейчас_ это все надо мутить в _каждом_ приложении. Хотя бы чтобы оно не сегфолтилось при неверном параметре

>иксы - это частной случай.

а, ну да...

>Большинство программ просто подставят дефолтное значение и всё будет работать.

тебя не пугает такое кол-во велосипедов в системе? =)

>В случае же вындовс-вэй придётся каждый раз чекать и восстанавливать всю эту хрень.

ты думаешь, на каждое чтение параментра будет открывать бд/нужный зумль, парсится, верифицироваться и тд? Почему ты считаешь девелоперов такими идиотами?

>корноче, gtk прибит (пока?) гвоздями.

к редактору конкретного gconf'a, который все равно в нынешнем состоянии не подойдет в качестве system-wide registry - да.

>Примеры проблем с масштабируемостью в студию.

два десятка одинаковых серверов. Решение для управления в студию :)

geek ★★★
()
Ответ на: комментарий от anonymous

> Короче этим людям, хоть кол на голове теши. Они будут рассказывать, что замена 101 парсера на 1 усложнит систему. Они будут рассказывать, что наличие валидатора в КАЖДОЙ!!! программе лучше одного DTD валидатора и это уменьшает программы и делает их безопаснее. Они утверждают, что sendmail.cf читабельнее XML. Они утверждают, что переносить кусочки текстовых файлов из одного в другой надежнее, чем перенос поддерева DOM.

Аналогичного мнения придерживались девелоперы windows: в результате мы имеем то, что нас имеет ::)) Сомневаюсь, что за джастфорфан выйдет что-то лучше..

> Они будут рассказывать, что наличие валидатора в КАЖДОЙ!!! программе

Товарищ явно не осилил разделяемые библиотеки и GPL..

anonymous
()
Ответ на: комментарий от jackill

>В том, что сейчас я могу в консоли это делать любым редактором.

а почему ты решил, что не сможешь делать это любым не-иксовым редактором реестра? =)

>С plain text/ini у меня больше вероятность сделать исправление хотя бы потому, что под них больше подходящих легких инструментов.

ты по памяти воспроизведешь грохнутую половину /etc ? Респект тебе и уважуха, да. Я так не умею

geek ★★★
()
Ответ на: комментарий от jackill

> А потому что невозможно написать на большое сложное приложение гуевую утилиту, охватывающую все функции системы и группирующую их в удобном виде.

мнээ.. что, в make xconfig / make gconfig / make qconfig все опции ведра ручками хардкодят? или всё-таки есть один список с опциями, из которого этот гуй генерится?

anonymous
()
Ответ на: комментарий от jackill

> Откатывать будете только контент файлов или сами файлы тоже? Скажем, повредилась папочка с конфигами наполовину...

да хранить их в git и обращаться библиотекой через gitshelve, и все дела

anonymous
()
Ответ на: комментарий от anonymous

>Аналогичного мнения придерживались девелоперы windows:

пруфлинк в студию. Учитывая, что ни валидаторов, ни схем, ни подключаемых бекендов в венде не наблюдается.

>Сомневаюсь, что за джастфорфан выйдет что-то лучше..

уже вышло лучше. gconf. При всех его недостатках

>Товарищ явно не осилил разделяемые библиотеки и GPL..

ну-ка, расскажи, как относятся разделяемые библиотеки к валидатору.

метаданные для проверки где брать?

geek ★★★
()
Ответ на: комментарий от anonymous

> Они утверждают, что sendmail.cf читабельнее XML.

читабельнее, подтверждаю. M-x psychoanalyze-pinhead на sendmail.cf читабельнее выглядит, чем на XML.

anonymous
()
Ответ на: комментарий от demmsnt

>3) Писателям дров ATI

Они уже два года эту хреноту пишут. Говорят, закончена на 60%. Тем временем все работает через жопу и не поддерживается как надо даже xrandr и input.

>Тысяче и одному перцу.

Я прочитал весь тред - не нужен практически никому. Пейсателям ati пожелали удачи.

jackill ★★★★★
()
Ответ на: комментарий от geek

>gconf. При всех его недостатках

В треде сказали, что он крашится и вообще его будут менять...

jackill ★★★★★
()
Ответ на: комментарий от geek

> а _сейчас_ это все надо мутить в _каждом_ приложении. Хотя бы чтобы оно не сегфолтилось при неверном параметре

Ну это бабушка на двое сказала. Замутить такую общую либу с проверкой валидности не проблема даже для меня. Даже на ненавистном си.

> тебя не пугает такое кол-во велосипедов в системе? =)

Где велосипеды? Например, есть QSettings юзай хоть в иксах, хоть в голой консоли. Прозреваю, что есть ещё куча подобных либ для любого радиуса загиба рук ::))

>ты думаешь, на каждое чтение параментра будет открывать бд/нужный зумль, парсится, верифицироваться и тд?

Пока это твои домыслы. Но ссылка, как оно там работает таки не помешает..

>Почему ты считаешь девелоперов такими идиотами?

В отличия от тебя, я идиотами ни кого не считаю. Вот только от они всё равно умом не блещут ::))

>два десятка одинаковых серверов. Решение для управления в студию :)

Пока вижу rsync+ssh, может cvs. Жаль я не админ

anonymous
()
Ответ на: комментарий от geek

> Я вот думаю, что делать, если один админ привык к комментариям на инглише, а второй кроме русско-германского словаря ничем не владеет.

Уволить админа? ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.