LINUX.ORG.RU

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

 , ,


0

0

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

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

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

★★★★

Проверено: JB ()

Ответ на: комментарий от Absurd

> Не факт что они лучше технически, т.к опыт промышленной эксплуатации того же Оракела накоплен в разы больший.

в каком году появился Оракел и в каком -- М системы? Опыт промышленной эксплуатации у кого больше?

> . Не факт что они лучше в плане программерского сахара, т.к на MUMPS например очень тяжело делать отчеты по словам людей которые с этим чудом имели дело.

просто реализуешь поверх MUMPS свою модель данных и свой язык запросов, делов-то.. и терминах этой модели с иерархиями и пишешь остальные отчёты. Не надо разбивать на атомарные реляционные ячейки, а потом собирать опять.

Сахар там можно сделать любой, семантику -- тоже. В SQL не так, требование атомарности ограничивает.

Получается как в стереометрии, можно разбить задачу на плоскости и считать отдельные уголки и отрезки тригонометрией. А можно использовать 3D теоремы и свойства.

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

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

А как по плану запросов в SQL планировщик предлагает хинты чтобы индексы расставить?

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

>>А какие езыги доступа к данным еще есть? Навигиционный способ? MUMPS

ещё кто-то тут "триады данных" упоминал. Это ведь RDF, тоже универсальная модель, онтология. По ней и язык запросов есть, куда уж универсальнее.

Опять мозиллу с XUL+RDF изобретаем.

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

> Доставать проблемы нет. Проблема в том, как будут внутренние данные отображаться на базу/зюмель и обратно.

Это должно быть скрыто под интерфейсом. Но опять же проблемы отобразить настройки на ХМЛ я лично не вижу. Хотя предвижу некоторые проблемы с перформансом и отсутствием удобных человекопользуемых средств для работы с данными.

> А без валидации неинтересно.

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

> Отлично, покажи мне таблицу базы, в которую можно занести конфиг любого типа.

Глупость какая, для того данные и типизируют, что бы с ними можно было работать эффективнее. А с "любыми типами" нечего и лезть к вычислительной технике :-)

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

> ждал, пока наконец всплывёт xsl

А я не ждал. И как только допились до валиции средствами трансформации о_О

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

> Ясли бы я принял решение применять xsl я бы не только проверял xml файл но и эффективно экстрактил из него данные.

Какие интересные смысловые оттенки приобретает слово "эффективно" - вплоть до обратных по смыслу к первоначальному..

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

> В SQL не так, требование атомарности ограничивает.

Раскрой свою мысль :-)

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

>> Доставать проблемы нет. Проблема в том, как будут внутренние данные отображаться на базу/зюмель и обратно.

> Это должно быть скрыто под интерфейсом.

Что ты сможешь скрыть под интерфейсом, ежели мне надо схоронить машину состояний в Универсальный Хранитель? Ещё раз, как мне сохранить её через функции сохранения древесного конфига?

> Ну стандартный единый способ доступа к настройкам уже интересно.

Ну давай, продвигай тут стандартный способ доступа. Я привёл достаточно разнотипных задач, для которых стандартный способ доступа будет слишком всеобщ, а следовательно и неудобен.

>> Отлично, покажи мне таблицу базы, в которую можно занести конфиг любого типа.

> Глупость какая, для того данные и типизируют, что бы с ними можно было работать эффективнее. А с "любыми типами" нечего и лезть к вычислительной технике :-)

Ну так ты же хочешь хоронить все конфиги в единообразно. Не противоречь сам себе.

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

> Опять мозиллу с XUL+RDF изобретаем.

Зато какую потрясающую производительность демонстрирует нам мозилла!

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

> Что ты сможешь скрыть под интерфейсом, ежели мне надо схоронить машину состояний в Универсальный Хранитель? Ещё раз, как мне сохранить её через функции сохранения древесного конфига?

Точно так же как и через любые другие функции - как ты сторил бы эти данные в SQL-базу или писал бы в файл.

> Ну давай, продвигай тут стандартный способ доступа. Я привёл достаточно разнотипных задач, для которых стандартный способ доступа будет слишком всеобщ, а следовательно и неудобен.

Я видимо пропустил эти примеры. А в том, который видел - про таблицу состояний автомата - не вижу проблемы.

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

А конфигам не нужны данные "любого типа".

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

>> Ясли бы я принял решение применять xsl я бы не только проверял xml файл но и эффективно экстрактил из него данные.

>Какие интересные смысловые оттенки приобретает слово "эффективно" - вплоть до обратных по смыслу к первоначальному..

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

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

>> Что ты сможешь скрыть под интерфейсом, ежели мне надо схоронить машину состояний в Универсальный Хранитель? Ещё раз, как мне сохранить её через функции сохранения древесного конфига?

> Точно так же как и через любые другие функции - как ты сторил бы эти данные в SQL-базу или писал бы в файл.

Покажи _конкретный_ пример, как через эти 2 функции захоронить и прочитать настройку банкомата. Опять начнёшь вилять -- нареку троллем.

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

> А конфигам не нужны данные "любого типа".

Конкретному конфигу конкретной программы -- нет. А для охвата всех программ надо уметь сохранять конфиги любого типа и структуры.

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

> Семантику можно с помощью xsl проверить - чисто декларативный Тюринг-полный язык кстати.

"Чисто декларативный"? Бгг.

Набросаешь на XSL валидатор для fstab? Чтобы проверял наличие разделов , типы ФС на них. GUID, labels?

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

>"Чисто декларативный"? Бгг.

Состояний в нем нет, чисто функциональный подход. В чем "Бгг" ?

>Набросаешь на XSL валидатор для fstab? Чтобы проверял наличие разделов , типы ФС на них. GUID, labels?

ФГМ? Извини, но иначе твой пост не классифицировать. gaa тут распинался что с помошью xsd ссылочную целостность в графах общего вида не проверить, а теперь приходишь ты весь в белом и предлагаешь с помощью xsl извлекать данные из примитивной таблицы, к тому же системной, которую никто кроме как самопальным парсером или в крайнем случае expat'ом обрабатывать не будет.

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

>> "Чисто декларативный"? Бгг.

> Состояний в нем нет, чисто функциональный подход.

А, так "фунуциональный" == "декларативный"? Понятненько.

>>Набросаешь на XSL валидатор для fstab? Чтобы проверял наличие разделов , типы ФС на них. GUID, labels?

>ФГМ? Извини, но иначе твой пост не классифицировать.

Я так понял, валидатора для fstab мне не дождаться.

> приходишь ты весь в белом и предлагаешь с помощью xsl извлекать данные из примитивной таблицы

Бгг еще раз. Ты даже не понял, о чем речь. Валидатора мне точно не дождаться :D

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

> Покажи _конкретный_ пример, как через эти 2 функции захоронить и прочитать настройку банкомата. Опять начнёшь вилять -- нареку троллем.

Какие именно "эти две функции"? Алгоритм я тебе написал уже давно.

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

Заблуждаешься.

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

>Я так понял, валидатора для fstab мне не дождаться

ты шутишь, да? Или ты в самом деле думаешь, что валидатор проверяет соответствие информации действительности?

geek ★★★
()

угу, щас наизобретают :) SGML(RDF)-parser на USF, в PostreSQLlite :-) и усе абы, таки-портировать, этот меГзкий, гаткий реестр ;P

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

>>> "Чисто декларативный"? Бгг.

>> Состояний в нем нет, чисто функциональный подход.

>А, так "фунуциональный" == "декларативный"? Понятненько.

Типичную свою иботню с терминами оставь себе. Декларативный ∈ Функциональный.

>>ФГМ? Извини, но иначе твой пост не классифицировать.

>Я так понял, валидатора для fstab мне не дождаться.

Точно ФГМ

>> приходишь ты весь в белом и предлагаешь с помощью xsl извлекать данные из примитивной таблицы

>Бгг еще раз. Ты даже не понял, о чем речь. Валидатора мне точно не дождаться

Т.е разницу между validity и correctness ты не понимаешь. Понятненько.

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

>> Покажи _конкретный_ пример, как через эти 2 функции захоронить и прочитать настройку банкомата. Опять начнёшь вилять -- нареку троллем.

> Какие именно "эти две функции"? Алгоритм я тебе написал уже давно.

Ясно, тролль. Сиди голодный.

gaa ★★
()

http://www.linux.org.ru/jump-message.jsp?msgid=2420602&cid=2422662

>Проблема не в процах и не в софте, а в XML, лузиры. Читайте интервью с Грегом Кроах-Хартманом или Эндрю Мортоном, где они оттрейсили запуск Гнома и охерели от того, что считывание и парсинг XML занимали >85% времени.

:)))

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

>>Проблема не в процах и не в софте, а в XML, лузиры. Читайте интервью с Грегом Кроах-Хартманом или Эндрю Мортоном, где они оттрейсили запуск Гнома и охерели от того, что считывание и парсинг XML занимали >85% времени.

Gharic>Помнишь закон 80+20? Теперь вспомни вульгарный вариант теории оптимизации, что на что влияет в процессе написания софта и насколько сильно. А самый медленный компонент - это в любом случае HDD, поэтому и нет никакого толка от оптимизации.

Gharic>А ты думаешь что под кедами лучше? Да там тот же самый XML и куда большая задница, вызванная общей кривизной кода и отсутствием кэширования в бакенде типа GConf. Поэтому Гном тормозит на загрузке, а кеды тормозят всегда! ;)

Ну и я свои два цента вставлю. Парсил я зюмель руками на Си. Мне понадобился один буфер в динамической памяти, увеличиваемый через realloc в случае если лексема немеряной длины + три указателя - на начало тега, начало текущей лексемы в буфере и на текущий символ + битовая маска с текущим состоянием - int'а (32 бит) хватает за глаза и за уши. Так что не надо компостировать мозги.

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

> Парсил я зюмель руками на Си. Мне понадобился один буфер в динамической памяти, увеличиваемый через realloc в случае если лексема немеряной длины + три указателя - на начало тега, начало текущей лексемы в буфере и на текущий символ + битовая маска с текущим состоянием - int'а (32 бит) хватает за глаза и за уши. Так что не надо компостировать мозги.

И ты готов отдать голову на отсечение, что в gconf всё сделано настолько же эффективно?

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

> Декларативный ∈ Функциональный.

Ты зря не проставил копирайт %)

> Т.е разницу между validity и correctness ты не понимаешь.

Не понимаю, Разницу между well-formedness и validity - понимаю, между validity и correctness - нет. Объяснишь?

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

>> Я так понял, валидатора для fstab мне не дождаться

> ты шутишь, да?

Нет.

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

Я думаю, что валидатор должен проверять корректность конфигурации. Корректность fstab - это правильные ФС на правильных разделах.

Ну или объясни, что такое валидатор конфигурации.

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

> Ну или объясни, что такое валидатор конфигурации.

Вещь, проводящяя те и только те действия, которые умеет делать мой фетиш.

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

>Я думаю, что валидатор должен проверять корректность конфигурации.

валидатор должен проверять соответствие информации некоей спецификаци на структуру и содержание.

>Корректность fstab - это правильные ФС на правильных разделах.

Валидный fstab может быть некорректным в данной конкретной ситуации, а невалидный корректным быть не может нигде. Вот тебе и

>..., что такое валидатор конфигурации.

доступно?

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

> валидатор должен проверять соответствие информации некоей спецификаци на структуру и содержание.

И чем тебе "указанные названия разделов и типы ФС должны соответствовать реальным разделам и типам ФС на диске" не "спецификация на содержание"? Или для тебя является валидным fstab, в котором указаны только правильные названия разделов, только существующие ФС и правильные опции для их монтирования, является валидным, даже если часть разделов не существует, а на существующих - не те файловые системы?

>Валидный fstab может быть некорректным в данной конкретной ситуации, а невалидный корректным быть не может нигде. Вот тебе и

>>..., что такое валидатор конфигурации.

>доступно?

Это не определение, а пример. Причем настолько туманный пример, что он не представляет практической ценности.

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

>А самый медленный компонент - это в любом случае HDD, поэтому и нет никакого толка от оптимизации.

Эээ.. Боюсь, если в системе на парсинг конфигов тратится >85% времени запуска, то HDD здесь - отнюдь не самое узкое место..

>А ты думаешь что под кедами лучше? Да там тот же самый XML

Это где это? о_О

>и куда большая задница, вызванная общей кривизной кода

Зато в гноме кривого кода нет! :)

>и отсутствием кэширования в бакенде типа GConf.

Прааавда? =)

>Ну и я свои два цента вставлю. Парсил я зюмель руками на Си. Мне понадобился один буфер в динамической памяти, увеличиваемый через realloc в случае если лексема немеряной длины + три указателя - на начало тега, начало текущей лексемы в буфере и на текущий символ + битовая маска с текущим состоянием - int'а (32 бит) хватает за глаза и за уши.

Предлагаю отправить твой парсер gnome team. :)

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

>И чем тебе "указанные названия разделов и типы ФС должны соответствовать реальным разделам и типам ФС на диске" не "спецификация на содержание"?

зависимостью от _внешних_ условий, которые надо как-то проверять. А смысл проверки не ясен.

>Это не определение, а пример. Причем настолько туманный пример, что он не представляет практической ценности.

что тебе там туманного и непонятного? Не стесняйся, спрашивай

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

>>И чем тебе "указанные названия разделов и типы ФС должны соответствовать реальным разделам и типам ФС на диске" не "спецификация на содержание"?

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

Это как раз одно из отличий валидация конфига от валидации XML-документа.

> что тебе там туманного и непонятного?

Да ничего мне непонятно. Давай ты приведешь точное определение, какой fstab считается валидным. А то у меня есть подозрение, что твое понятие "валидности" сильно отличается от моего.

> Не стесняйся, спрашивай

А ты не стесняйся, отвечай :D

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

>>И чем тебе "указанные названия разделов и типы ФС должны соответствовать реальным разделам и типам ФС на диске" не "спецификация на содержание"?

>зависимостью от _внешних_ условий, которые надо как-то проверять. А смысл проверки не ясен.

Тут как раз все ясно.

А вот смысл проверки, которая создает видимость проверки -- действительно не ясен.

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

>Тут как раз все ясно.

ну расскажи, в чем смысл. Особенно, если есть как минимум три способа превратить некорректный fstab в корректный, и из этих трех только один связан с редактированием fstab.

>А вот смысл проверки, которая создает видимость проверки -- действительно не ясен.

т.е. если валидатор не даст тебе полчаса ломать моск, почему -o iocharset=cp1251 на ext3-разделе не работает - это видимость? Ну-ну

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

>Это как раз одно из отличий валидация конфига от валидации XML-документа.

это ты сам только что придумал?

>Давай ты приведешь точное определение, какой fstab считается валидным.

без синтаксических ошибок и с допустимыми комбинациями опций (man mount)

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

>validity и correctness - нет. Объяснишь?

Функцию которая компилируется, не лезет за границы массива, не разыменовывает неинициализированный указатель, не вызывает free() два раза под один указатель, не возвращает указатель на локальный массив, вообще ни при каком континуме входных аргументов не провоцирует аварийное завершение и при этом возвращает абсолютно неверный результат можно назвать валидной но некорректной.

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

>> Декларативный ∈ Функциональный.

>Ты зря не проставил копирайт %)

Множество функциональных языков входит в множество декларативных наряду с логическими языками вроде Пролога. Символ "∈" означает вхождение в множество. Продолжим жевать эту тему?

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

>>> Декларативный ∈ Функциональный.

>> Ты зря не проставил копирайт %)

> Множество функциональных языков входит в множество декларативных наряду с логическими языками вроде Пролога. Символ "∈" означает вхождение в множество. Продолжим жевать эту тему?

Бгг, а сейчас сравни "Декларативный ∈ Функциональный" и "Множество функциональных языков входит в множество декларативных". Как минимум значок не в ту сторону стоит :P

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

>> Это как раз одно из отличий валидация конфига от валидации XML-документа.

> это ты сам только что придумал?

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

>>Давай ты приведешь точное определение, какой fstab считается валидным.

>без синтаксических ошибок и с допустимыми комбинациями опций (man mount)

Понятно. Думаю, такая слабая валидация нужна немногим.

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

> Бгг, а сейчас сравни "Декларативный ∈ Функциональный" и "Множество функциональных языков входит в множество декларативных". Как минимум значок не в ту сторону стоит :P

Да и не тот значок. Еслу уж пошла такая пьянка, то должен быть "⊃".

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

> Как минимум значок не в ту сторону стоит :P

Мелочь какая %)

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

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

это не валидация, а математически доказанная корректность системы "конфиг + программа" =)

>Понятно. Думаю, такая слабая валидация нужна немногим.

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

И "нужна немногим" - это такая вялая попытка заявить "не нужно!" ? =)

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

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

вот это весьма вкусная фраза . и как же твой фетиш gconf-editor справляется с взаимоисключающими опциями ?

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

>>А вот смысл проверки, которая создает видимость проверки -- действительно не ясен.

> т.е. если валидатор не даст тебе полчаса ломать моск, почему -o iocharset=cp1251 на ext3-разделе не работает - это видимость? Ну-ну

Хотелось бы знать мнение валидатора, какой параметр, в данном случае является ошибочным: -o iocharset=cp1251 или -t ext3?

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

>вот это весьма вкусная фраза . и как же твой фетиш gconf-editor справляется с взаимоисключающими опциями ?

а никак. А почему "фетиш", собсно?

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

>Хотелось бы знать мнение валидатора, какой параметр, в данном случае является ошибочным: -o iocharset=cp1251 или -t ext3?

ошибочна _запись_

и валидатор именно это и скажет

что именно хотел сказать автор этой записи - никому не ведомо

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

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

> это не валидация, а математически доказанная корректность системы "конфиг + программа"

Только не математически, а опытным путем.

> "нужна немногим" - это такая вялая попытка заявить "не нужно!" ? =)

Нет. Тебе же она нужна зачем-то.

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

>> вот это весьма вкусная фраза . и как же твой фетиш gconf-editor справляется с взаимоисключающими опциями ?

> а никак.

бугага, отстойная гномятина.

> А почему "фетиш", собсно?

потому что подходит под регексп ^[gG].*

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

>бугага, отстойная гномятина.

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

>потому что подходит под регексп ^[gG].*

и?

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

>Только не математически, а опытным путем.

т.е. если программа упала - значит конфиг некорректный? Именно поэтому клизмоиды падают? =)))) А почему они тогда падают _случайным_ образом?

>Нет. Тебе же она нужна зачем-то.

а я много, долго и нудно объяснял зачем. Ну и _возможность_ валидаци - одна из плюшек стандартного API.

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