LINUX.ORG.RU

Официально стартовал проект eudev — форк udev от Gentoo

 , ,


3

4

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

Udev часто ломает совместимость со старыми системами из-за зависимости от новых версий ядра Linux, даже если такой зависимости можно избежать. Ситуация ухудшилась после того как Udev стал частью Systemd, который поставил под угрозу способность поддерживать существующие установки. Разработчики Gentoo намерены продолжить развитие udev в виде отдельного проекта (без зависимости от systemd) — eudev — своими силами. При этом они заявляют, что в идеале eudev не будет ограничен использованием в Gentoo: после того как eudev достигнет стабильного состояния в Gentoo, они намерены начать сотрудничать с другими дистрибутивами для дальнейшего развития. В идеале, все дистрибутивы cмогут использовать eudev в качестве замены для Systemd-udevd.

Среди ключевых целей eudev называется улучшение поддержки udev существующего программного обеспечения: init-систем OpenRC (используется в Gentoo) и Upstart (Ubuntu), старых версий ядра, утилит разработки и т. п.

Исходный код eudev будет распространяться на условиях свободной лицензии GNU LGPL. На GitHub уже около месяца существует репозиторий для eudev.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: Silent (всего исправлений: 4)

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

б) хрень это все: загрузка имеет значение при работе сервисов, а не при анализе логов.

Я уже как-то приводил «оверхед» fputs vs. fwrite. Он практически только в strlen.

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

чем индексируете логи, кстати?

Только там, где это ДЕЙСТВИТЕЛЬНО нужно (единичные случаи):

«insert into...»

Выбор базы - на усмотрение. ;-))

4. еще раз, вы меряете не то, о чем говорил user_id_*.

Он говорил о «Вызов mount_fs[12345] выдал ошибку 34567 с аргументами ptr[6789023], ptr[1235467]»?

(Не смонтировался раздел с форматами вывода) ;-))))

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

у тебя 7 пакетов хотящих старый удев (которые при этом не обновляются и видимо новые версии замаскированы), и один, который хочет новый удев. Если предположение о замаскированности новых версий верно, то ССЗБ и думай теперь сам, если не верно, то попробуй --backtrack=9999 =)

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

это конечно тут оффтоп, но всё же.

1. более безопасно (от подмены).

от подмены лишнее слово, была ли подмена или лог уничтожен полностью - разницы никакой нет, при этом на системах, в которох это действительно важно делается дублирование логов на защищённый хост или используются жесткие политики. И в том и в другом случае бинарный лог и тем более реализация в systemd не дают бонусов, а systemd реализация ещё и страдала тем, что там принципиально нельзя было сделать отдачу логов на безопасный хост (до появления http сервера). Все вопросы, что json over http и только pull модель могут это неоптимальная реализация, оставим на потом. Плюс демон живёт от рута, при наличии уязвимости в нём мы получаем: а). доступ к логам, б). доступ к api, при этом в иерархических моделях логирования (объявленных устаревшими) такая проблема не возникает.

2. более удобное поиск/фильтрация в логе.

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

3. более широкие возможности для запоминания внутри лога всякой маловажной фигни.

??? Примеры можно

4. более стандартизированно (относительно различных программ).

ссылку на стандарт можно? И примеры нестандартизованностей

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

Вот и разработчики генты так подумали. Поэтому я и в печали.

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

Я про то, что systemd до сих пор не работает как надо. Шел декабрь 2012-го

MY POINT EXACTLY

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

Лично мне удобно смотреть в нем логи и запускать сервисы (с этим openrc когда сервис падает при запуске, задолбаешься делать каждый раз start и status, потому что оно не умеет автоматически проверить результат).

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

да ну, у меня вот выводит или ok или error, при этом в инитскриптах я видел проверку результата в start для тех сервисов, где это не очевидно (напр. lxc). Мне кажется, что проблема в самописном скрипте или надумана..

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

Возможно, проблема и в скрипте. Если они реализуют все фичи от systemd в openrc, я буду только рад (кроме раздражения от того, что все команды не как в остальных дистрибутивах). Но они же этого не делают, openrc фактически давно уже не развивается (во всяком случае я не замечали изменения за все время его использования).

А заодно пусть мне расскажут, как посмотреть логи текущей сессии системы (т.е. с последней перезагрузки) и только уровня ERROR.

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

Сейчас два инита сломали из-за шаманства с директорией /var/run. Они не запускаются, потому что не могут создать в ней подкаталог и положить туда пид процесса. Когда говоришь сервису старт, он отвечает успехом. А если потом сделать status, говорит, что процесс crashed. Поэтому, когда я разбирался, что конкретно не дает ему запуститься, мне приходилось делать последовательно restart (какой рестарт, если он лежит?!) и status.

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

А с поддержкой инитов в генте вообще весело. Отправил багрепорт на инит от rtorrent — мне в баге ответили «А зачем мы вообще поддерживаем этот инит, если он не работает? А давайте его удалим!». И эти люди собираются форкать udev.

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

Возможно, проблема и в скрипте. Если они реализуют все фичи от systemd в openrc, я буду только рад (кроме раздражения от того, что все команды не как в остальных дистрибутивах).

Всех не будет т.к. куча фич не должно быть в системе инициализации.

Но они же этого не делают, openrc фактически давно уже не развивается (во всяком случае я не замечали изменения за все время его использования).

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

А заодно пусть мне расскажут, как посмотреть логи текущей сессии системы (т.е. с последней перезагрузки) и только уровня ERROR.

При дефолтной настройке с *syslog:

grep ERROR /var/log/messages

при этом openrc не мешает использовать любый более сложные системы логирования.

qnikst ★★★★★
()

Все правильно делают, systemd нинужен.

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

grep ERROR /var/log/messages

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

И да, мне эта команда выдала пустоту.

при этом openrc не мешает использовать любый более сложные системы логирования

Какие есть системы логгирования с аналогичным journald функционалом? http-сервер и qr-коды не учитываем, мне они нафиг не нужны. Имеются в виду средства фильтрации и ротации логов.

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

куча фич не должно быть в системе инициализации

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

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

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

у меня там только последняя сессия.

Какие есть системы логгирования с аналогичным journald функционалом?

какой именно интересует? Существует целая коллекция syslog сервисов: syslog-ng, rsyslog, metalog. Из них самая фичастая это rsyslog, он умеет базы данных и сеть и rotate, так же ты можешь прицепить logrotate к любым логам. Можешь заюзать (только если сам не поленишься s6). Ещё есть sagan, который тоже умеет всё.

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

Это должно что-то изменить?

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

В любом случае это сразу решает кучу проблем, напр. KRoN73 периодически приводит ссылки на некорректные проблемы и некорректные баги.

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

у меня там только последняя сессия.

Тогда как ты смотришь предыдущие сети? journal хранит все сессии в рамках ротации, но ты можешь просмотреть только последнюю.

Существует целая коллекция syslog сервисов

Интересует фильтрация по сессии, уровню логгирования, имени процесса или пиду, по времени от и до. Сислог просто пишет логи в текстовый файл, поэтому он не подходит. С ротацией та же проблема: ты не можешь держать в логе n последних записей или записи за последние 30 дней. Просто по достижении определенного размера (или времени) лог полностью сжимается и кладется в стороночку. Т.е. в определенный дискретный момент твой лог куда-то убирается и создается чистый, посмотреть сообщения на секунду раньше ты можешь только уже распаковывая и доставая предыдущий.

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

Почему?

потому, что они должны решаться специализированными системами, которые делают это лучше.

Кто решает, что где должно быть?

разработчик.

Куда разработчикам удобно было поместить эти фичи, туда и поместили.

к сожалению это огромная проблема openrc, systemd, и любого другого случайно взятого софта.

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

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

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

Проблемы появляются не просто так. Это следствие неправильной организации работы. И это нельзя решить в стиле «ладно, сам за них напишу». Для этого нужно либо убедить разработчиков работать, либо свалить на другой дистрибутив с другой командой, либо со своей командой форкнуть этот. Форкать генту, как показывает практика funtoo, бесполезно — там хейтеров еще больше. Переубеждать разработчиков тоже бесполезно, они фанатики еще те. Угадай, какой вариант остается.

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

потому, что они должны решаться специализированными системами, которые делают это лучше.

Кому должны? С чего ты взял, что «делает лучше» — следствие из «отдельная система»?

к сожалению это огромная проблема openrc, systemd, и любого другого случайно взятого софта.

В чем проблема?

мы о пользователях мобилок - тогда да

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

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

Тогда как ты смотришь предыдущие сети?

у меня logrotate, а что?

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

и, что дальше? я разве sagan и rsyslog не перечислил?

С ротацией та же проблема: ты не можешь держать в логе n последних записей или записи за последние 30 дней.

правда? ну с n записей действительно есть некоторые сложности, а вот записи за 30 дней, вообще за O(1) решается.

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

в journald другая ситуация?

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

Лично я после новости в emerge о том, что после 181-го удева поломается куча всего, просто замаскировал на всякий случай у себя >=sys-fs/udev-181 и пока живой.

shell-script ★★★★★
()
Ответ на: комментарий от vurdalak

И это нельзя решить в стиле «ладно, сам за них напишу».

так _нужно_ решать. Других идеальных способов для сложного в инфраструктуре некоммерческого дистра нет. Точнее есть, но работает не всегда.

Я вот не понимаю зачем ты мне пытаешься что-то доказать, я ж «фанатик ещё тот»?

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

С ротацией та же проблема: ты не можешь держать в логе n последних записей или записи за последние 30 дней. Просто по достижении определенного размера (или времени) лог полностью сжимается и кладется в стороночку

таки man logrotate

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

в journald другая ситуация?

Да. Если ты, например, хочешь держать только последних n записей, то при добавлении новой просто удаляется последняя. Что-то подобное и по времени. Этого они добиваются, потому что используют бинарный формат логов.

у меня logrotate, а что?

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

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

так _нужно_ решать

Это называется костылем. Костыль работает ровно до тех пор, пока приходит мастер и делает новый костыль на каждое изменение. Это ни разу не решение проблемы.

Я вот не понимаю зачем ты мне пытаешься что-то доказать, я ж «фанатик ещё тот»?

Это лор. Тут не доказывают, а просто устраивают срачи ни о чем.

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

Кому должны?

Пути unix.

С чего ты взял, что «делает лучше» — следствие из «отдельная система»

нет, я считаю, что «делает лучше» это следствие «специализированная система».

В чем проблема?

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

При чем тут мобилки?

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

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

Это называется костылем. Костыль работает ровно до тех пор, пока приходит мастер и делает новый костыль на каждое изменение. Это ни разу не решение проблемы.

раскрой мысль без аналогий.

Это лор. Тут не доказывают, а просто устраивают срачи ни о чем.

и это печально.

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

так и обсуждать будет чего

а пока что нужно обязательно говном кинуть. а то потом не успеешь — посоны за лоха сочтут?

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

Да. Если ты, например, хочешь держать только последних n записей, то при добавлении новой просто удаляется последняя.

o.O, ты серьёзно, это по дефолту? это ведь точно можно поменять? Ну и интересно как это делается, на файловом уровне

Что-то подобное и по времени. Этого они добиваются, потому что используют бинарный формат логов.

мне кажется, что ты что-то недопонимаешь.

Ну и man logrotate.

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

а как ровно <=n записей через logrotate сделать, я что-то не нашёл способа из-коробки, хотя как сделать через notruncate и внешний скрипт вижу.

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

что мешает сделать journalctl | 100500 утилит?

Пайп не всегда решает. Некоторые логи надо скриптами обрабатывать и это удобнее делать с файлом/файлами. Особенно удобно, когда предварительно настроенный logrotate складывает файлы аккуратненько по дате, архивируюя их и добавляя соответсвующие индексы в название. Ещё удобно, найдя что-нибудь в файле, вернуться на десяток строк назад. При этому весь файл в память не загружен. С пайпом такое уже не катит - либо в памяти держи весь вывод, либо заново дёргай утилиту.

А ещё иногда в лог надо скриптом/руками собственную метку поставить. Что я должен делать в этом вашем бинарном журнале вместо echo $MARK >> /var/log/filename.log ?

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

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

shell-script ★★★★★
()
Ответ на: комментарий от vurdalak

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

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

хватит ломиться в открытую дверь.

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

посоны за лоха сочтут?

Пофиг.

По теме: мне вот интересно, как ЛП вывернется с прикручиванием разных индексов для разных демонов? (Пока там тупо хэш по дате/времени и демону, если мне склероз не изменяет. Потому и обсуждать пока нечего.)

P.S.: Поинт был в том, что индексировать все подряд - оверкилл.

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

Вообще без каких либо настроек..

localhost rtorrent # rc-service rtorrentd start
 * Caching service dependencies ...
 * Starting rtorrent ...                                                      [ ok ]
localhost rtorrent # rc-service rtorrentd status
 * status: started 
localhost rtorrent # xargs ps < /var/run/rtorrentd.pid 
  PID TTY      STAT   TIME COMMAND
17550 ?        Ss     0:00 Storrent -D -m -S rtorrentd /usr/bin/rtorrent

Давай разбираться: 1). какая у тебя система инициализации? 2). если openrc то какой версии? и openrc какой версии ты загружал систему 3). использовал ли ты INSTALL_MASK или прочие вещи, которые могли поломать tmpd файлы (они для скрина нужны)

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

Я vurdalak. Я не доказываю, а просто устраиваю срачи ни о чем.

fixed

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

Поставить в нее несколько версий libc, несколько Firefox, несколько X-серверов.

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

libc? x-сервер?

фф для линукса можно скачать с мозиллы в виде все-свое-тяну-с-собой и поставить в другой /home/$user

«Преврати свою систему в Слаку» (ц)

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

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

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

Только там, где это ДЕЙСТВИТЕЛЬНО нужно (единичные случаи)

По остальным пунктам констатирую слив

Он говорил о «Вызов mount_fs[12345] выдал ошибку 34567 с аргументами ptr[6789023], ptr[1235467]»?

Не распарсил этот бред

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

Как хорошо, что я вовремя успел свалить с генты.

Удачи.

Она скатывается всё стремительнее и стремительнее.

Кто скатывается и куда?

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

это ведь точно можно поменять?

Да. Там все можно поменять.

Ну и интересно как это делается, на файловом уровне

Вот это хз.

vurdalak ★★★★★
()

А почему бы не выпилить все эти заумные systemd/*udev и не позволять ведру самостоятельно девайсины определять? Оно это умеет!

$ ps ax | grep udev

1489 pts/1 S+ 0:00 grep udev

$ ps ax | grep systemd

1491 pts/1 S+ 0:00 grep systemd

$ lsmod

Module Size Used by

nvidia 8540171 38

scsi_wait_scan 459 0

vmnet 44241 3

vsock 44506 0

vmci 70629 1 vsock

vmmon 64057 0

$ uname -a

Linux pc 3.2.33 #1 SMP PREEMPT Mon Nov 19 11:00:49 MSK 2012 i686 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux

$ cat /etc/slackware-version

Slackware 13.37.0

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

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

Придется. Вот только фиг ты найдешь, в каком файле и в каком его месте у тебя хранятся логи с 19:00 позавчера до 03:37 вчера.

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