LINUX.ORG.RU

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

 , ,


0

0

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

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

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

★★★★

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

>Да, кстати, в случае текстовых конфигов в /etc я могу их очень просто забекапить, выполнив "интуитивную" операцию копирования.

а как ldap бэкапят, как ты думаешь?

>А что мне делать, если будет gconf?

если приспичит - дамп и diff. Хотя ответы на вопросы "а что у нас изменилось со вчерашнего дня" в каталогах решаются совершенно по-другому.

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

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

с чего бы ей это делать? и с чего бы вообще такой функционал разрешать?

да и собственно, чего вы спорите? есть живой пример _работающего_ решения - gconf. причем, работающего вполне хорошо. и там не один "реестр на 20 метров который если грохнется то настанет локальный пипец", а кучка мелких xml файлов.

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

> нет, ну можно, конечно, и XML, но не меняем ли мы шило на мыло...

XML имеет стандартные схемы для валидации, чего не имеют другие _распространенные_ форматы типа налабал на коленке и положил в /etc

Пока провалидировать конфиг может только само приложение, а синтаксис на языке описания не существует. В отличии от этого XML схему можно описать отдельно И сделать единый конфигуратор ВСЕХ приложений который следит за корректностью конфига на основе схемы, подсказывает подходящие варианты опций, контекстную справку к элементам и т.п.

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

<msg to="geek"><msgbody encoding="fuckedup">гик, выпей йоду </msgbody></msg>

> каждому приложению по валидатору! каждой программе по скрипту, вытягивающего данные из ldap и генерирующего конфиг!

Что за херь ты написал?

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

> Если уж так сильно им хочется переделать, пусть зададут все в виде "параметр = значение" и не трахают мозг.

Далеко не каждому приложению хватит конфига вида "параметр = значение". Часто бывает что через несколько значений настраивается одна сущьность - тогда нужно вводить велосипед групп [group] типа как в самбе. Если же и этого мало, то получаем псевдо-XML как в apache.

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

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

<msg to="geek"><msgbody encoding="fuckedup">&amp;#1075;&amp;#1080;&amp;#1082;&amp;#44;&amp;#32;&amp;#10
74;&amp;#1099;&amp;#1087;&amp;#1077;&amp;#1081;&amp;#32;&amp;#1081;&amp;#1086;&a
mp;#1076;&amp;#1091;&amp;#10;</msgbody></msg>

Должно было быть так =\

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

>Что за херь ты написал?

попробуй подумать. Вдруг получится

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

>>ну пусть xml, или asn.1, или еще что, какая разница? главное чтоб разобрать можно было одинаково легко.

>Под разные задачи нужны разного типа конфиги

Ага, а под одинаковые нужно каждый раз изобретать один и тот же лисапед, но с разной вормой колес / квадратными / треугольными / трапецефидными... вместо того, чтобы принять общий подход и пользоваться круглыми (XML).

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

s/&amp;/\&/g

Дебильное говно, навижу хмл и иже с ним!

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

>Зоопарк форматов конфигов - проблема линукса в целом (RIP-OS брать в расчет не будем). Откройте конфиги apache, php, xorg, rp-pppoe, grub и ужаснитесь - везде свой не похожий ни на что формат.

>Уж лучше один говеный xml, чем тысяча замечательных велосипедов.

>А по-хорошему, формат должен быть один, и быть простым, удобным и универсальным, легко правиться текстовым редактором и легко парсится програмами.

>ИМХО, конечно :-/

+1. XML не идеал в каждом случае, но "Уж лучше один говеный xml, чем тысяча замечательных велосипедов."

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

Почему не YAML?

Ты фанат XML и больше не ничего не знаешь? Чем один велосипед (хмл) лучше другого? (хинт: YAML читабельнее для людей)

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

Валидация проще делается сразу при вычитывании/парсинге конфига.

К тому же при таком подходе программа всегда будет валидировать входной конфиг, а не полагаться на внешнюю валидацию.

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

> XML имеет стандартные схемы для валидации,

После которых нельзя пользоваться атрибутами вместо тегов, ага.

XML - для роботов.

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

>По второму кругу пойдём? Спросим, что будут делать любители Plain Text-а, когда у них в системе пять десятков пользователей, разговаривающих на пяти десятках языков? ... [scrip]...Aceler *** (*) (19.07.2008 22:58:13)

Use UTF-8, [g]Luke!

Какое это отношение имеет к общесистемному конфигу? Или они все имеют к нему доступ? Я уже представляю эту картину маслом "Вавилонское столпотворение-2". Я думаю, что xml к проблеме раздачи локалей каждому юзеру отдельно имеет весьма фиолетовое отношение.

P.S. За национальные символы, даже в комментариях, в файлах из директории "/etc/.." надо пальцы дробить прямо на клавиатуре.

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

>То есть, реестр вообще не занимается хранением конфигов (или просто имеет кеш, который можно воссоздать). Реестр это просто view, унифицированный интерфейс доступа к произвольным настройкам. А сами настройки хранит та конкретная программа в том конкретном формате, который именно ей нужен. anonymous (*) (20.07.2008 14:24:38)

Поздравляю! Анонимус изобрел ЗЮЗевский Яст! Срочно патентуй!

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

>Да, кстати, в случае текстовых конфигов в /etc я могу их очень просто забекапить, выполнив "интуитивную" операцию копирования. Могу их сравнить с копией с помощью какой-нить мерджилки/диффалки. А что мне делать, если будет gconf?

Друкх. Да и не только ты - Друззя вообще из тех, кто хочет написать сюда вопрос. Потрудитесь сначала хоть 1% информации о GConf осмыслить. Гугл вам поможет.

Хотя отвечая на ваш вопрос - например для наутилуса делаю копию ВСЕХ настроек:

cp -r ~/.gconf/apps/nautilus ./nau_backup/

И все! Что тут сложного? Чтот кричите-то????

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

>>хранение конфигов /boot/grub *только* в реестре :))

>хранение конфигов бутлодера даже в венде не практикуется. geek ** (*) (20.07.2008 15:32:20)

Ну дык надо исправлять такое безобразие! А то парсер с валидатором обидятся!

anonymous
()

а нафига вообще каким-то левым программам читать чужие конфиги? Не судьба просто в демон/прогу приделать интерфейс (например на сокетах) который будет отвечать на запросы о своём конфиге и по запросу же менять параметры? И очевидно реализовывать этот интерфейс отдельной библиотекой? Нужны тебе все извращения - линкуй с --with-izvrat-cfg-interface-lib , нужно минимум: --with-mini-cfg, не нужно вообще, а хочется быть вещью в себе: --without-cfg-interface..

А проге - ключик: --setup-mode, в котором она только конфиг читает и ничего больше не запускает, типа если иксы сломали - чтобы при запуске они только этот интерфейс поднимали для изменения настроек.

А в каком формате конфиги будут хранится - какая разница в таком случае? Как авторам программ удобно. Вменяемые в конце концов на libconfig какой-нибудь перейдут.

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

> Не судьба просто в демон/прогу приделать интерфейс (например на сокетах) который будет отвечать на запросы о своём конфиге и по запросу же менять параметры? И очевидно реализовывать этот интерфейс отдельной библиотекой?

омг, зачем такие сложные извраты?

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

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

>отдельным пермишеном идет право софта на запись в свои конфиги, если нужно.

cp <что-там-нужно-написать>, чтобы скопировать "свои конфиги", например, на другую систему?

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

> cp <что-там-нужно-написать>, чтобы скопировать "свои конфиги", например, на другую систему?

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

речь шла об "внутреннем" интерфейсе софта к параметрам конфигурации.

а так, для бэкапа (как это сейчас в gconf работает), достаточно, как обычно, tar -zcvf backup-etc.tgz /etc. а внутри /etc - _стандартизированная_ иерархия каталогов и, допустим, XML файлов. т.е. чтобы я в одном дистрибутиве мог бы сбэкапить /etc, развернуть в другом - и у меня будет полностью рабочая система с моими настройками.

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

> чтобы я в одном дистрибутиве [...]

это в идеале конечно :) а так, учитывая зоопарк дистров, можно в гуевой/консольной утилите для ручной правки конфигов сделать функционал дампа/восстановления. чтобы можно было перенести только настройки софта, а не полностью /etc тащить.

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

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

Я и задал "другой вопрос": как мне, пользователю, легко перенести СВОИ настройки. Просто - значит не имея root-прав, не сложнее cp .progrc ...

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

>Я и задал "другой вопрос": как мне, пользователю, легко перенести СВОИ настройки. Просто - значит не имея root-прав, не сложнее cp .progrc ...

cp -r ~/.<registry> ~/.local/Trash

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

>anonymous побрызгал на argin.

язык может брызгать только слюнями.

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

>Для standard-compliance приложений cp -r ~/.config /media/disk/

Т.е. ВСЕ настройки? мне нуны настройки для ОДНОГО приложения.

>Для остальных cp -r ~/.something /media/disk.

Я правильно понял, что для каждого пользователя и каждого приложения - отдельный файл реестра?

Led ★★★☆☆
()

И вот geek на протяжении всего топика умело поддерживает флейм в тонусе :-)...

P.S. geek, забавно, конечно, но, может, ну его, а? Не мучай людей :-).

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

Слушайте пацаны, ну это уже вообще не смешно. Вы что попугаи какие-то? Или пересмешники?

Ну яснож пример я привел. Черт пример пашет.... проверено.

cp -r /home/dem/.gconf/apps/nautilus Куда_дон_хочет_сделать_бэкап

В конце концов, неужели слабо заглянуть в .gconf в хомяке??? Это конечно если в гугле забанены

anonymous
()

Ктонть, отрезюмируйте плиз все выше сказанное на 15 страницах, а то читать сильно долго :)

Deleted
()

ЫЫ, товарищи. xml должен гореть в аду. Ибо это адская смесь + пока я не вижу чистой его реализации. Рассмотреть хотя бы html. Вместо одного парсера надо писать два. фтопку это отправить надо!! Тьфуна*!!

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

>ЫЫ, товарищи. xml должен гореть в аду. Ибо это адская смесь + пока я не вижу чистой его реализации. Рассмотреть хотя бы html. Вместо одного парсера надо писать два. фтопку это отправить надо!! Тьфуна*!!

Деточка - иди читай книжки.... и вообще не вылазь сюда.

Чистой реализации чего???? XML? Ты еще чистой реализации ВАЗ 2110 попроси? Тебе что XML как чистой реализации XML не хватает?

Пойди почитай про SGML, и вообще что такое подмножество...

Какой кошмар - помоему надо не капчу ставить - а аленьки тест на въезд в тему... А то скоро народ спросит, так что, XML это разве компьютерная штука? А я думал его BMW придумал чтоб пепси в айрбаг засунуть...

anonymous
()

А теперь пирожки в сторону горячо любимого гконф!! ::))

Вместо того чтобы написать парсер

key=ОЛОЛОЛО!!

надо извратиться и осилить такое (ручной правке это уг не поддаётся):

<key=value key2=value2> <key3>ОЛОЛОЛО!!</key3> </key>

Короче, вынос мозга и ппц в одном флаконе

ЗЫ про совместимость ключей я таки промолчу...

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

>Ктонть, отрезюмируйте плиз все выше сказанное на 15 страницах, а то читать сильно долго :)

Короче, тема такая. Один из девелоперов дров для 3D ускорителя сказал, что у его дров есть необходимость хранить где-то настройки. И самое интересное, что эти настройки возможно понядобится читать/менять сторонним утилям. Ну в принципе для SUSE это YaST для Ubuntu что-то еще. Разраб не нанимался обслуживать всех это раз, а два он не нанимался кажды раз следить за сдвигами по фазе других разрабов xorg и каждый раз менять форат конфига.

Итого этот мужественный персонаж предложил в качестве хранилища GConf.

Метные персонажи, не въезжая в тему сразу завыли, потому, что баба дуся на рынке сказала, что GConf это "реестр", только для гнома. Реестр сказали персонажи???!!! Это свтотатство... И даже не заглянули в гугл.

Тут кто-то кто, заглянулв гугл обнаружил среди бэкэндов XML backend.

Но поскольку, о XML народ слышал только от бабы, клавы, страницы 4 идет базар, что в XML файл нельзя адресно записать настройки - поэтому давайте использовать INI стиль (а в INI файл open seek write???).

Вобщем такой расклад. Еще изредка подтягивается народ, предлагающие недоделанный GConf - типа они щас все разрулят.... И все снова.

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

anonymous (*) (21.07.2008 2:20:49)

С тобой видимо не совместимо, а с чем еще - это еще вопрос.

Насчет ручной правки, НУ ТАК НАБРАЛ-ЖЕ!!!! Что ты тогда жалуешься. Или хочешь senmail.cf руками набрать? Неужели лучше? А если в key=ОЛОЛОЛ имя ключа должно содержать "=" ???? А если # ??? Ни разу base64 в LDAP не набирал?

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

2anonymous (*) (21.07.2008 2:31:19)
Ок пример - вот инишник
[MAIN_WINDOW]¶
x=0¶
y=0¶

Теперь мы хотим сделать x=100 Делаем open, seek (это еще позицию x=0 надо вычислить и пишем 100. Что получим?

[MAIN_WINDOW]¶
x=100y=0¶

Что с конфигом? испртился...

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

> Насчет ручной правки, НУ ТАК НАБРАЛ-ЖЕ!!!! Что ты тогда жалуешься. Или хочешь senmail.cf руками набрать? Неужели лучше? А если в key=ОЛОЛОЛ имя ключа должно содержать "=" ???? А если # ??? Ни разу base64 в LDAP не набирал?

Во-первых, на счёт "если" существуют тулзы. А, во-вторых, набросай-ка мне парсер сей простенькой конструкции.

ЗЫ LDAP меня не интересует, а вот в xorg.conf (как и в куче других конфигов) ненабираемая кодировка таки не встречается ::))

ЗЗЫ Умолчу про консольные тулзы..

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

>Теперь мы хотим сделать x=100 Делаем open, seek (это еще позицию x=0 надо вычислить и пишем 100. Что получим?

Ну так перенос строки подставить можно

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

>Во-первых, на счёт "если" существуют тулзы. А, во-вторых, набросай-ка мне парсер сей простенькой конструкции.

http://www.xml.com/pub/rg/XML_Parser_Sites

Это если ты XML привел, а ты не его привел. И валидатор еще в момент правки послал-бы.

А вот теперь дай список INI Like парсеров, с валидацией.

>ЗЗЫ Умолчу про консольные тулзы..

Если будет XML конфиг. Консольные тулзы для настройки будут выглядеть аналогично консольной тулзе для настройки ядра. Давно ядро компилировал? А Make файл сам правил? Так вот пользоваться XML, особенно если есть XPath в разы удобнее, чем Lex Yacc созданными парерами

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

>Ну так перенос строки подставить можно

И что? Затереть то, что было на месте переноса строки? Или в OS есть волшебная команда INSERT? Или всетаки согласишься, что в INI Like тоже НЕЛЬЗЯ вписать что,то в середину не переписав весь файл?

Почему народ пугает root.getElementsByTagName("title").getElementsByTagName("ID")[0] ????

В INI такую структуру вообще хрен сохранишь

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

Те, кто ругают XML - как правило, невежды, не осилившие Infoset, и просто нелюбящие угловые скобочки (они ведь даже не в курсе, что это не единственный синтакс). За долгие годы флеймования на ЛОРе я так и не услышал внятной и последовательной критики Infoset как базовой модели для реализации конфиг файлов. Никто в здравом уме не справляется задирать заднюю лапу на очевидную идею необходимости иерархии в конфигурации.

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

>и просто нелюбящие угловые скобочки (они ведь даже не в курсе, что это не единственный синтакс)

Как множественность синтаксиса соотносится с идеей единного способа задания конфигов ?

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

>Как множественность синтаксиса соотносится с идеей единного способа задания конфигов ?

Примерно так:

<section name="main">
    <param name="display">Monitor1</param>
</section>

Или

(section name=main
   (param name=display, content="Monitor1")
)

Или

StartSection main
     display "Monitor1"
EndSection

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

>Делаем open, seek (это еще позицию x=0 надо вычислить и пишем 100. Что получим?

Не тупи. Файл считывается весь, на лету парсится. Делаются изменения - полностью весь выплёвывается. libxf86config так и делает, и делает это не быстро, а ОЧЕНЬ быстро.

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

2Led Сам, не тупи. Мой пример был в качестве ответа тем, кто говорил, что XML файл сначала распарсивается (в DOM), потом в него вносятся изменения, а потом он сериализуется. При этом переписывается весь файл. Там еще народ про SAX упоминал для тупых. Так вот я привел пример (и ты), что и в INI Like все так-же, тем более что xorg.conf всетаки не INI Like уже хотяб потому. что вложенные группы MB

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

Причем в качестве ответа, на не быстро, а очень быстро приведу пример с Python. Тот тоже парсит py файл и чтоб не терять время рядышком кладет сериализованное внутреннее представление. Так вот я подозреваю, что при 1 чтении нынешняя реализация быстрее XML парсера (учитывая, большую бедность и отсутствие валидации). Но если сохранить DOM дерево рядышком, то при 100 чтениях приврост производительности в 50% гарантирован.

Кроме того, за каждым параметром обращаться предлагалось не к файлу. А к демону наподобие GConf - итого еще прирост

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

> омфг, а что сказал Патрик по этому поводу?

Единственное, что интересует всех в этой теме. Надеюсь, небеса не рухнут, и патрик не скажет богохульное слово из трёх букв, начинающееся на Х.

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