The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Предложение по переводу системных логов lastlog, btmp, utmp и wtmp на использование SQLite

13.03.2026 08:11 (MSK)

В списке рассылки linux-api выставлено на обсуждение предложение (RFC) заменить устаревшие бинарные форматы системных журналов lastlog, btmp, utmp и wtmp на новые разделяемые библиотеки, использующие SQLite в качестве бэкенда. Инициатива направлена на решение накопившихся проблем, среди которых переполнение 32-разрядных счётчиков времени в 2038 году, отсутствие расширяемости, низкая производительность запросов и отсутствие атомарности при записи.

В настоящее время для хранения данных о сеансах и попытках аутентификации в Linux используются следующие бинарные файлы, имеющие фиксированную структуру:

  • /var/log/lastlog - время последнего входа (структура "struct lastlog" с полем "ll_time" 32-разрядного типа time_t);
  • /var/log/btmp - неудачные попытки входа;
  • /var/run/utmp - текущие сеансы;
  • /var/log/wtmp - история входов и выходов.

Формат данных файлов был разработан несколько десятилетий назад и имеет ряд фундаментальных ограничений:

  • Поле "tv_sec" в структуре "utmpx" и поле "ll_time" в "lastlog" имеют тип "int32_t", значение счётчиков времени на основе которого переполнится 19 января 2038 года. Из-за требований ABI‑совместимости даже на 64-разрядных системах эти поля остаются 32-разрядными, поэтому проблема затронет все установки Linux.
  • Фиксированный размер записей не позволяет добавлять новые поля (например, идентификатор контейнера, имя сервиса, IP-адрес) без полной замены формата и перекомпиляции всех утилит.
  • Утилиты last, lastb, who и lastlog вынуждены линейно перебирать содержимое файлов. При большом размере журналов без использования индексов, позволяющих эффективно фильтровать записи, нагрузка на систему ввода/вывода и задержки при выполнении запросов становятся неприемлемыми.
  • Запись в бинарный файл не является атомарной операцией. При сбое запись может быть частично повреждена.
  • Для исключения конфликтов при одновременной записи в журтал несколькими процессами (например, sshd и login) используются flock-блокировки, которые не гарантируют атомарность и могут приводить к взаимным блокировкам.

Автор RFC предлагает полностью отказаться от бинарных форматов в пользу специализированных разделяемых библиотек, использующих SQLite. Для каждого типа журналов создаётся отдельная библиотека с единообразным C-интерфейсом: liblastlog2, libbtmp2, libutmp2 и libwtmp2. Все библиотеки работают с БД, схема которых включает 64-разрядные временные метки (тип INTEGER) и индексы по пользователю и времени. Имеется возможность добавления новых полей без нарушения совместимости (через ALTER TABLE).

Среди доводов в пользу использования SQLite упоминается использование 64-разрядного типа INTEGER для хранения эпохального времени, задействование индексов для снижения ввода/вывода за счёт выборочного обращения к записями вместо полного сканирования, возможность добавления новых полей без изменения существующих записей, поддержка ACID-транзакций, режим WAL (Write-Ahead Logging) для конкурентного доступа без блокировок, проверенная надёжность работы SQLite.

Для обеспечения плавного перехода предлагается стратегия "двойной записи" (dual-write):

  • Программы, которые пишут в бинарные файлы (login, sshd, sudo, cron и др.), модифицируются так, чтобы одновременно выполнять запись и в старый бинарный файл, и в новую SQLite-базу через соответствующую библиотеку.
  • Разрабатываются новые версии утилит (last2, lastb2, who2, lastlog2), которые читают данные из SQLite-баз, используя индексы для быстрой работы. Старые утилиты продолжают работать с прежними файлами.
  • Через несколько лет, когда подавляющее большинство систем обновятся, поддержка записи в старые форматы может быть отключена, а старые утилиты - объявлены устаревшими.

Вопросы, выставленные для дополнительного обсуждения:

  • Целесообразность разделения на отдельные библиотеки или объединения в одну (например, libsession2).
  • Выбор имён для библиотек и утилит (сохранить исторические названия или перейти к более общим).
  • Расположение файлов баз данных (/var/lib/ как для состояния приложений или /var/log/ как для логов).
  • Механизм версионирования схемы и миграции.
  • Параметры производительности SQLite для различных сценариев (серверы, встраиваемые системы).
  • Предоставление fallback-бэкенда, хранящего журналы в упрощённом бинарном формате, для систем, на которых SQLite может оказаться избыточным (например, встраиваемые устройства с жёсткими ограничениями по памяти).


  1. Главная ссылка к новости (https://github.com/bakshansky/...)
  2. OpenNews: Для избавления Glibc от проблемы 2038 года предложено прекратить использование utmp
  3. OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
  4. OpenNews: Проект Redka развивает реализацию протокола и API Redis поверх SQLite
  5. OpenNews: Эксперимент с использованием SQLite в качестве контейнера для архивирования файлов
  6. OpenNews: Google использовал большую языковую модель для выявления уязвимости в SQLite
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64981-wtmp
Ключевые слова: wtmp, log, sqlite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (152) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:25, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чем metakit4 не угодил?
     
     
  • 2.15, Аноним (15), 08:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Написана на C++ - https://ru.wikipedia.org/wiki/MetaKit
     
  • 2.18, Жироватт (ok), 08:44, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Недостаточно стильно@модно@молодёжно и обновлялась не "в прошлом месяце"
    Хотя я не удивлён был бы, если бы туда по решению платинового спонсора предложили запихнуть sql server 2026 localDB
     
     
  • 3.20, Аноним (15), 08:56, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это уже перебор, хватит https://github.com/microsoft/FASTER
     
     
  • 4.32, Жироватт (ok), 09:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Почему перебор? Самый раз. Полноценный движок баз, который потом можно будет смигрировать на

    "
    Три файла БД – для логов царственных демонов в системдишных шатрах,
    Семь – для пользовательских профилей программ и гуртовщиков мыши,
    Девять – для всеъ, облечённых в сисопские права,
    Один движок запустит Владыка на облачном троне,
    В ядре по имени linux, где уже распростёрся мрак.

    Один ms sql server в системе покорит их, он соберет их,
    скуль сервер притянет их и в чёрную цепь скуёт их
    В ядре по имени linux, где уже распростёрся мрак.
    "

     
     
  • 5.88, Аноним (88), 11:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но ведь можно как это любят оптимизровать sqlite инплейс заменить на Mysql, Postgres, MSSQL, Oracle наконец, чтобы было энтерпрайзненько.  
     
     
  • 6.95, Жироватт (ok), 12:31, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но ведь можно как это любят оптимизровать sqlite инплейс заменить на

    Ну или хотя бы единый движок СУБД типа марии, который будет тянутся уже ядром, но это херит любые встраивыемые сценарии.

     
  • 3.21, Аноним (21), 08:56, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    - Для каждого типа журналов создаётся отдельная библиотека
    - задействование индексов
    - одновременно выполнять запись и в старый бинарный файл, и в новую SQLite-базу

    Странная система логирования. Мы точно логи пишем?

     
     
  • 4.33, Жироватт (ok), 09:16, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, для времени миграции с базы на базу - вполне.
    Далее старый способ фиксации логов отключается, когда новый уже достаточно отлажен
     
     
  • 5.44, Аноним (21), 09:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Уточню проблему, если кто не понял:

    - Для каждого типа журналов создаётся отдельная библиотека
    - задействование индексов

    Точно логи пишем?

     
     
  • 6.131, Аноним (131), 17:56, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >- Для каждого типа журналов создаётся отдельная библиотека

    Крохотная библиотека, генерирующая специфические SQL-запросы. Вероятно API будет обратно совместим со старым API логов.
    >- задействование индексов

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

     
     
  • 7.134, Аноним (134), 18:29, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > на производительность жалуются, без индексов выборка

    А что мы чаще делаем: пишем в лог или разбираем падения прог?

     
  • 3.52, Аноним (52), 10:08, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Больше 10 лет - в прошлом месяце))
     

  • 1.2, User (??), 08:25, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Автор RFC предлагает полностью отказаться

    Так вроде ж и отказались уже - в пользу journald?

     
     
  • 2.107, Аноним (107), 14:23, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    systemD к GNU/Linux не имеет прямого отношения.
     
     
  • 3.118, User (??), 15:23, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > systemD к GNU/Linux не имеет прямого отношения.

    Ну, будем честны - имеет примерно такое же, как "GNU" к "linux'у": какие-то мутные перцы сделали что им надо было и на какое-то время стали стандартом de-facto.

     

  • 1.3, Аноним (52), 08:28, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    "Запись в бинарный файл не является атомарной операцией. При сбое запись может быть частично повреждена."

    Так это и к journald относится, разве нет?

     
     
  • 2.16, Олег (??), 08:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да не слушай их. Программисты деградируют походу. Если записывать не больше страницы за раз, то вполне себе атомарная. А дальше уже работает журнал ФС. Sqlite хорошая штука, но зачем тащить её сюда,  не понятно.
     
     
  • 3.133, Аноним (131), 18:16, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Если записывать не больше страницы за раз, то вполне себе атомарная

    А там есть выравнивание по страницам? Если нет, то вообще нельзя предсказать произойдёт ли разрыв записи между страницами или нет. Без журнала, нельзя быть уверенным была ли завершена запись. ФС конечно старается не развалится, но она вообще не оберегает данные внутри файлов. Нужно понимать, что для HDD мы вообще не можем быть уверены на каком бите прервётся запись. В случае SSD запись производится блоками в несколько килобайт, но реальный размер на конкретном SSD абсолютно неизвестен от 4 КБ до 64 КБ.

     
  • 2.46, Аноним (21), 09:54, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > При сбое запись может быть частично повреждена

    Дак это и к скуляйту относится. Что они подразумевают под сбоем? Железо гикнулось? Система в панике? Приложение кривое? Первым двум скуляйт не поможет. Остаётся приложение. Если приложение глюкнуло - мы в логах ничего не увидим. Скуляйт намекает, что сервера логирование теперь нету, а записью занимается непосредственно само приложение.

     
     
  • 3.64, Аноним (64), 10:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, логированием занимается не приложение, а все так же система  / системный демон. Но пишет оно теперь не в конкретно-специфичный бинарный файл, а в гораздо более широко распространенном формате. Приложению (если только оно не занимается анализом тех самых специфичных бинарных файлов) что в лоб, что по лбу - оно от этой смены бэкэнда никак не зависит.

     
     
  • 4.135, Аноним (134), 18:34, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > система  / системный демон

    И какая тогда проблема с записью? Или система падает что ли чаще, чем скуляйт?

     
  • 3.143, tkzv (ok), 19:40, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> При сбое запись может быть частично повреждена
    > Дак это и к скуляйту относится.

    SQlite сперва создаёт временный файл, затем переписывает старый. В худшем случае теряются несколько последних записей.

     
  • 2.80, Аноним (80), 11:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    GDBM как-то обеспечивает атомарность через reflink copying и создание двух файлов БД: старой и новой версии, которые меняются местами.
     
  • 2.128, morphe (?), 17:31, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С append-only вроде journald проще убедиться что ничего не повредилось
     

  • 1.6, iCat (ok), 08:31, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Кому-то очень хочется внедрить нечитаемую систему протоколирования из мира Windows в мир GNU/Linux ?
    А зачем?
    Системды мало?
     
     
  • 2.9, Аноним (9), 08:32, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Когда свободу на хлеб, остаются и без свободы и без хлеба.          
     
  • 2.11, анон (?), 08:34, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Она и сейчас нечитаемая.
     
  • 2.28, Аноним (52), 09:12, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А это "год линукса на десктопе против серверного линукса" ака "функциональность против простоты"
    И то, и другое имеет право на жизнь...
     
  • 2.36, aname (ok), 09:23, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Раст в ведро протащили, почему бы и не протащить SQLite
     
     
  • 3.92, Аноним (92), 12:06, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тогда в Unbreakable Linux будет Oracle DB для lastlog, btmp, utmp и wtmp.
     
     
  • 4.119, aname (ok), 16:06, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Тогда в Unbreakable Linux будет Oracle DB для lastlog, btmp, utmp и
    > wtmp.

    Стоит отдать должное: оно работает.
    Бтв, всегда можно пропатчить на своё. Неужели СООБЩЕСТВО™©® не осилит?

     
  • 2.121, aname (ok), 16:08, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Кому-то очень хочется внедрить нечитаемую систему протоколирования из мира Windows в мир
    > GNU/Linux ?
    > А зачем?
    > Системды мало?

    "EVTX — это
    формат бинарных файлов журналов событий Windows (начиная с Vista/7), используемый для хранения системных, прикладных записей и логов безопасности Solvusoft. Файлы представляют собой XML-структуры, упакованные в бинарный контейнер, и обычно располагаются в C:\Windows\System32\winevt\Logs" © АИ

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

     
  • 2.146, tkzv (ok), 19:54, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    1. С каких пор SQlite стала виндовой?

    2. Для чтения нужнен один 2-мегабайтный бинарник: sqlite3 log.db .dump | less. Можно more. Версия без поддержки UTF и Tcl существенно меньше. Программа ставится по зависимостям кучей других пакетов, включая Python, PHP, Node.js, NSS, Qt, Gnome, SVN, Cargo, MPD, NFS, Audacity, Avidemux, Hugin, Doxygen.

    3. Если бы systemd был таким же простым, вылизанным и предсказуемым, все бы давно на него перешли.

     

  • 1.7, Аноним (9), 08:31, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Хранение логов в тормозлайт худшая идея, какую можно придумать. Ещё это завязывает на стороннего разработчика, который неизвестно что может сделать и с продуктом и со своим форматом. Если они такие любители прокладок пусть пишут новые либы для нового бинарного собственного и если надо расширяемого формата. А не превращают всю систему в один единый тормозящий скуль.
     
     
  • 2.13, Фонтимос (?), 08:37, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Подтверждаю, линукс станет тормозом. Хотя по мне, пучть внедряют, быстрее все слиняют на ФриБиЭсДи.
     
     
  • 3.30, gz (?), 09:14, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    все ненадо, ато слиняют ведь и те внедрятели с чудесатыми предложениями сделать чтото во фряхе
     
  • 2.17, User (??), 08:43, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, в доelastic'овскую пору - я вот вполне себе делал центральный rsyslog с хранением в mysql - вполне себе работало.
     
     
  • 3.29, Аноним (52), 09:13, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    mysql и sqlite не сравнимы по скорости
     
     
  • 4.41, User (??), 09:39, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да - sqlite в таких сценариях прям сильно быстрее будет.
     
     
  • 5.72, Аноним (88), 11:24, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да в воображаемых сценариях, которые не встречаются в реальной жизни.
     
     
  • 6.81, User (??), 11:41, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Да в воображаемых сценариях, которые не встречаются в реальной жизни.

    Ооо, экспертная экспертиза от экспертов подкатила.
    Мускуль _может_ быть быстрее в сценариях, когда у тебя "горячие" данные\индексы в памяти и ты работаешь с ними - но в случае с аппенд-онли логами, которых может быть еще и немало? Неа.
    Может быть быстрее в случаях конкуррентной многопоточной записи - но этот ластлог сам угадай, кем-и-как пишется.
    А в сценариях "пролопатить *цать-данных" - ну вот duckdb _у меня_ прям изрядно быстрее работает.
    Такие вот дела.

     
     
  • 7.86, Аноним (88), 11:45, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Да в воображаемых сценариях, которые не встречаются в реальной жизни.
    > Ооо, экспертная экспертиза от экспертов подкатила.
    > Мускуль _может_ быть быстрее в сценариях, когда у тебя "горячие" данные\индексы в
    > памяти и ты работаешь с ними - но в случае с
    > аппенд-онли логами, которых может быть еще и немало? Неа.
    > Может быть быстрее в случаях конкуррентной многопоточной записи - но этот ластлог
    > сам угадай, кем-и-как пишется.
    > А в сценариях "пролопатить *цать-данных" - ну вот duckdb _у меня_ прям
    > изрядно быстрее работает.
    > Такие вот дела.

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

     
     
  • 8.89, User (??), 11:58, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Ээээ ну вот тебе сценарий - пишем логи в реляционную ... текст свёрнут, показать
     
  • 2.38, Аноним (38), 09:24, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Хранение логов в тормозлайт

    По сравнению с чем SQLite тормозной?

     
     
  • 3.73, Аноним (88), 11:25, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот прям по сравнению совершенно со всем.
     
     
  • 4.87, Аноним (87), 11:45, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отличная аргументация.

    Может, хотя бы попробуешь ссылки какие-то найти, бенчмарки?

     
     
  • 5.125, Аноним (125), 17:22, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть ты умеешь думать только чужими ссылками бенчмарками? Совет никогда не включай телевизор.
     
     
  • 6.140, Аноним (140), 18:47, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > То есть ты умеешь думать только чужими ссылками бенчмарками?

    Я умею не воспринимать всерьез набросы без какой-либо аргументации и доказательств.

    В общем, ясно-понятно: никаких доказательств тормознутости SQLite не будет - только ad hominem.

     
  • 6.154, Аноним (154), 20:22, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > То есть ты умеешь думать только чужими ссылками бенчмарками?

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

     
  • 4.147, tkzv (ok), 19:55, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > совершенно со всем.

    Даже с grep-ом?

     
  • 2.39, letsmac (ok), 09:36, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    1C в свое время такое уже пробовал. В итоге вернулись к бинарным журналам. Тормозило на больших файлах знатно.
     
     
  • 3.74, Аноним (88), 11:26, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я даже не удивлён что они попробовали этот заведомо провальный варинт это фишка их компании.
     
  • 2.40, Аноним (38), 09:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > это завязывает на стороннего разработчика, который неизвестно что может сделать и с продуктом

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

    > Если они такие любители прокладок пусть пишут новые либы для нового бинарного собственного и если надо расширяемого формата

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

    > А не превращают всю систему в один единый тормозящий скуль

    Тем временем в новости:

    "проблем, среди которых [...] низкая производительность запросов"

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

     
     
  • 3.75, Аноним (88), 11:28, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да только все проблемы, может кроме переполнения даты полностью выдуманные и нужны для попивателей смузи. В остальном логи работали идеально.  
     

  • 1.8, Аноним (8), 08:31, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в чём проблема писать условный protobuf? Быстро, дёшево, достаточно атомарно
     
     
  • 2.57, Сталин (?), 10:16, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно тем, что там нет индексов и поиск o(n), а не o(log n)
     
     
  • 3.136, Аноним (134), 18:37, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Как часто надо разбирать логи? Это точно логи?
     

  • 1.12, Аноним (12), 08:35, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    т.е. если все равно переписывать, то они предлагают переписать так, чтобы сразу отсечь кору дуба и embedded системы, вместо того чтобы решить проблему создать новую
     
     
  • 2.148, tkzv (ok), 20:04, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты SQlite пользовался хоть раз? Для работы ей достаточно 100 килобайт плюс размер библиотеки.
     

  • 1.19, Duck Fi (?), 08:45, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Идея неплохая, но мб пора задуматься и унифицировать не только это ?
    Почти каждый файл конфигурации и данных имеет свой формат.
    Например /etc/passwd,  мб что то по типу yaml применять.
    И обязательно сохранить текстовый формат, можно потерпеть скорость, потому что тут она не на что не влияет.
     
     
  • 2.22, User (??), 09:00, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да сделали бы сразу "реестр linux - можно поверх sqlite'а", что ли - чего стесняться-то?
     
     
  • 3.25, Аноним (21), 09:03, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > можно поверх sqlite'а

    sqlite'а обязательно в контейнере

     
     
  • 4.34, Жироватт (ok), 09:21, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Внутри особой виртуальной машины
     
  • 3.31, Аноним (31), 09:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Было бы неплохо, если одним методом/способом модно было управлять настройками всего софта, как на системном, так и на пользовательском уровне. Вроде были попытки /etc в xml/json записать. Но это надо от религии отказаться. Потому что как и во всякой религии наибольшее сопротивление любому (даже самому здравому изменению) будет от упоротых фундамендалистов.
    Хотите чтобы все было как 20 лет назад? В чем проблема - скачайте из архива линукс 20 летней давности и пользуйте.

    Проблема виндового реестра в бинарности и монолитности, что легко решаемо технически. Но В еще большей мере в отсутствии документации, и зоопарком подходов чего и зачем там хранить.  

     
     
  • 4.35, Duck Fi (?), 09:21, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо, а то я уже думал что меня не поняли.
     
     
  • 5.42, Аноним (31), 09:45, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это понимает любой, кому приходится часто лезть в потроха линуксовых систем. Ну а школота на то и школота - ей, как собачке, главное заявить о своем присутствии опИсав самый высокий столб/дерево/забор что они нашли в пределах своей видимости.
     
  • 4.43, User (??), 09:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А не нужно уже. Проблема "в общем" решена дополнительными уровнями абстракции в виде terraform+(ansible|salt|черт-в-ступе) - _ты_ управляешь состоянием системы плюс-минус декларативно, описывая его да-да, вот этими вот yaml'ями плюс-минус в одном месте - а то, что "под капотом" там ошмётки потрохов с 70х еще годов... Ну вот у связистов еще с 40х наследие не разгребли до конца, а у энергетиков - так и вовсе девятнаха местами, и чО? Не переделывать же, право-слово.
     
     
  • 5.69, Аноним (69), 11:14, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Раз в 40 лет можно и переделать. С учётом накопившегося опыта, так сказать.
     
  • 5.91, Аноним (64), 12:05, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дык, о чем и речь. С уровня абстракции выше какая разница что там в потрохах ниже. Но вот кто-то решил разгрести и привести их в порядок. Я так скажу - эти бинарные файлы меня иногда раздражали, ибо их так быстро и просто не посмотришь, надо утильку соотвествующую запускать. Благо это не часто требуется. Но раз эту утильку не обойти, какая разница в каком конкретно бинарном формате оно свое барахлишко хранит. Насчет ресурсов тоже какой-то просто анекдот. Это что за линукс системы такие, что ядро там и куча юзерспейса взлетает, пользователи какие то подразумеваются (ссш там например, или консоль какая-то, не говоря уж про шелл), а вот для скулайта уже не хватает? да любой пакетный менеджер в разы больше отожрет.
     
     
  • 6.116, User (??), 15:20, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > что там в потрохах ниже. Но вот кто-то решил разгрести и
    > привести их в порядок. Я так скажу - эти бинарные файлы
    > меня иногда раздражали, ибо их так быстро и просто не посмотришь,
    > надо утильку соотвествующую запускать. Благо это не часто требуется. Но раз
    > эту утильку не обойти, какая разница в каком конкретно бинарном формате
    > оно свое барахлишко хранит. Насчет ресурсов тоже какой-то просто анекдот. Это
    > что за линукс системы такие, что ядро там и куча юзерспейса
    > взлетает, пользователи какие то подразумеваются (ссш там например, или консоль какая-то,
    > не говоря уж про шелл), а вот для скулайта уже не
    > хватает? да любой пакетный менеджер в разы больше отожрет.

    Да поздно уже, говорю же. Смысл какой? Если понадобилось логи вот прям _на сервере_ смотреть - значит очень и очень многое у тебя _уже_ пошло не так. И тут есть у тебя "утилька", нет её...

     
  • 4.60, Аноним (21), 10:25, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    фиксэд:

    > Вроде были попытки /etc в xml/json записать. Но это надо религию принять. Потому что как и во всякой религии наибольшее сопротивление любому существующему инструменту будет от упоротых религиозных. Хотите чтобы всё менялось каждую неделю? В чём проблема - делайте форк от форка каждую неделю.

     
     
  • 5.65, Аноним (64), 10:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дык оно и меняется, каждую неделю, причем безо всяких форков. Нужно быть идиотом, чтобы требовать чтобы что-то развивалось/улучшалось, но при этом не менялось. То что не развивается - оно уже мертво и давно на свалке. А вот кому хочется чтобы все оставалось как есть - ради бога, делайте форк и держитесь за него крепко. Ибо апстрим (если он еще не сдох - см. выше) БУДЕТ меняться независимо от вашего желания.
     
     
  • 6.137, Аноним (134), 18:40, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что такое декларация и имплементация - некоторым предстоит только узнать.
     
  • 3.48, Аноним (52), 10:05, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Реестр linux это gconf/dconf?)
     
  • 2.96, Фнон (?), 12:36, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В мозгах линуксоидов, явно, наблюдается отход от принципов построения UNIX: "всё есть файл".
    Ещё немного, и линукс превратится в System i, где "всё есть запись в табличке в реляционной БД".
     
     
  • 3.97, Аноним (52), 12:39, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не только наблюдается - активно применяется в том же systemd.
     
  • 3.105, Аноним (64), 13:41, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Действительно, имеется проблема в мозгах отдельных линуксоидов. Некоторые не могут понять что между "все есть файл" и "все есть текстовый файл" огромная разница.
     

  • 1.23, Аноним (23), 09:01, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Короче, нельзя поменять то, нельзя поменять сё, потому что совместимость. Тогда давайте все на sqlite переведем, ведь он остается совместимым с тем что было до него.
     
     
  • 2.49, Аноним (21), 10:05, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > все на sqlite переведем

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

     

  • 1.24, Аноним (21), 09:02, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Фиксированный размер записей не позволяет добавлять новые поля

    А текстовый формат всё позволял.

     
     
  • 2.37, Жироватт (ok), 09:24, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это не стильно, не модно, нужно знать grep+awk и иметь квалификацию повыше, чем one-button-monkey.
     
     
  • 3.50, Аноним (21), 10:06, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для чтения бинарников или скуляйта что надо знать? :)
     
  • 3.54, Аноним (54), 10:12, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Короче, нужно по-дидовски и пердольно.
     
     
  • 4.62, Аноним (21), 10:31, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Пройдёт немного времени - и логи в скуляйте станут "по-дидовски и пердольно". А внуки будут топить за новое, например, логи в облачном блокчейте через торренты.
     
     
  • 5.111, User (??), 14:41, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Пройдёт немного времени - и логи в скуляйте станут "по-дидовски и пердольно".
    > А внуки будут топить за новое, например, логи в облачном блокчейте
    > через торренты.

    Очнись, Нео!
    Все значимые логи давно уже по эластикам-грейлогам-локи лежат. Даже journald вспышку похлопал и реальные задачи не им решаются. Это вот хрен пойми зачемное копошение слоупоков

     
  • 4.68, Аноним (68), 10:57, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    нее, по миллениальски кавайно и лобно-томильно-дольно
     
  • 3.123, User (??), 17:02, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это не стильно, не модно, нужно знать grep+awk и иметь квалификацию повыше,
    > чем one-button-monkey.

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

     
     
  • 4.138, Аноним (134), 18:43, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > чтобы грепнуть какой-нибудь десяток гигабайт

    У вас точно там логи?

     
     
  • 5.157, User (??), 20:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> чтобы грепнуть какой-нибудь десяток гигабайт
    > У вас точно там логи?

    ээээ... у меня _на серверах_ их примерно "нет". А в эластике... Ну, скажем так - до известных событий прохладное хранение этого добра на мамазоне мы пробовали. Заказчик почему-то был уверен, что петабайты этого добра имеют ценность в течении десяти лет и порывался за это самое хранение заплатить.
    Порвался, ага. Хватило почти на два года )

     
  • 2.61, Соль земли2 (?), 10:26, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Индексировать для быстрого поиска по полям позволял?
     
     
  • 3.63, Аноним (21), 10:33, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > быстрого

    Хинто 1: Как часто это делаешь? Сколько процессорного времени от суточного на это уходит?

     
     
  • 4.90, Соль земли2 (?), 12:01, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну благодаря индексам journald позволяет быстро найти нужный отрезок времени.
     
     
  • 5.124, Аноним (124), 17:13, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Journald даже при открытии логов за текущий запуск сервиса без логов заставляет тебя сидеть ждать, пока оно соизволит раздуплится. Поттеринговский журнал - это анти-пример того, как нужно делать логи.
     
     
  • 6.130, Соль земли2 (?), 17:37, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    нет, давайте лучше будем разбрасывать логи по всей файловой системе
     
  • 3.132, Аноним (132), 17:57, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так вон и по бинарникам этим ищут фуллсканом.
    Хотя мне непонятно, что мешает сбоку положить индекс, как в dBASE IV примерно из тех времён.
     
  • 2.149, tkzv (ok), 20:05, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Когда там был текстовый?
     

  • 1.26, Аноним (23), 09:08, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Предоставление fallback-бэкенда, хранящего журналы в упрощённом бинарном формате, для систем, на которых SQLite может оказаться избыточным (например, встраиваемые устройства с жёсткими ограничениями по памяти).

    А там что с изначальными ограничениями будет? Если их нет, то почему тогда этот fallback и не использовать везде вместо sqlite?

     
  • 1.27, Аноним (21), 09:10, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > не позволяет добавлять новые поля (например, идентификатор контейнера, имя сервиса, IP-адрес)
    > liblastlog2, libbtmp2, libutmp2 и libwtmp2... возможность добавления новых полей ... (через ALTER TABLE)

    Надо так: liblastlog2containerid liblastlog2servicename liblastlog2ipaddress libbtmp2containerid libbtmp2servicename  libbtmp2ipaddress libutmp2containerid libutmp2servicename  libutmp2ipaddress libwtmp2containerid libwtmp2servicename libwtmp2ipaddress

     
     
  • 2.145, Сладкая булочка (?), 19:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Рыжий в очках уже возбудился.
     

  • 1.47, Диды (ok), 10:04, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Для исключения конфликтов при одновременной записи в журтал несколькими процессами (например, sshd и login) ....

    Чёт не понятно, как тут sqlite поможет

     
     
  • 2.51, Аноним (52), 10:06, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Механизм блокировки
     
     
  • 3.56, Аноним (21), 10:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Этот механизм эксклюзивный только для скуляйта? Больше нигде нельзя использовать?
     
     
  • 4.58, Аноним (52), 10:18, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, man flock
     
     
  • 5.79, Аноним (80), 11:36, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Звучит как шикарная возможность организовать DoS, если кто-то блокировку не отпустит.
     
  • 3.112, Диды (ok), 14:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так и у sqlite писатель всегда один - вроде блокировка на уровне файла базы данных
     

  • 1.53, Аноним (21), 10:10, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Предоставление fallback-бэкенда, хранящего журналы в упрощённом бинарном формате, для систем, на которых SQLite может оказаться избыточным

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

     
  • 1.55, Аноним (55), 10:14, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    самый лучший формат в данном случае - это текстовый.
     
     
  • 2.108, User (??), 14:31, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > самый лучший формат в данном случае - это текстовый.

    Но диды почему-то выбрали...

     

  • 1.59, Соль земли2 (?), 10:24, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже же есть journald, зачем этот огород?
     
  • 1.66, Аноним (66), 10:51, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > lastlog, btmp, utmp и wtmp

    А оно вообще нужно? Первый раз о таких слышу.

    > специализированных разделяемых библиотек, использующих SQLite. Для каждого типа журналов создаётся отдельная библиотека с единообразным C-интерфейсом: liblastlog2, libbtmp2, libutmp2 и libwtmp2

    Логгинг системных событий должен делаться через интерфейсы ОС, а не сбоку, какими-то спец. либами.

     
     
  • 2.151, tkzv (ok), 20:07, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Какие проблемы? Добавят в ядро несколько мегабайт сишных файлов. Лицензия позволяет.
     

  • 1.67, Ахз (?), 10:54, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Текстовый формат это ущерб.
    Логи всегда структурированы, набор полей почти всегда предопределен. имхо очень здравая и полезная идея, когда к логам можно обратиться кверей, а не отправлять на стдин грепа тонну овна в поисках вхождения.
     
     
  • 2.76, Аноним (88), 11:32, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кто предопределяет набор полей? Министерство логов, отдел наименования полей?
     
  • 2.93, Макан Негодяй (?), 12:26, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ещё они должны быть зашифрованы, чтобы логи не смог прочитать злоумышленник!
     
     
  • 3.113, Абра (?), 14:58, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Судя по предложению, злоумышленники смогут и записи удалять после себя:))
     
  • 3.141, Аноним (134), 18:49, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > должны быть зашифрованы

    Ведь в логах часто логят плейн-пароли.

     

  • 1.70, Аноним (70), 11:14, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Из-за требований ABI‑совместимости

    Ага, вот и шиза вскрылась - api  у них нонсенс а abi железобетоно нетрогать. Биполярочка

     
     
  • 2.77, Аноним (88), 11:34, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так это внутреннее abi, которое по кругу используют все программы и имеют жесткие связи. Как только меняешь тебе сразу прилетает. А api пользуется тот кто тебя никогда не достанет и не узнает где ты живешь.  
     
  • 2.104, Аноним (23), 13:30, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ты разницу между ABI и API понимаешь?
     

  • 1.71, mumu (ok), 11:22, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Есть опасения насчет устойчивости к bad-секторам и т.п. проблемам, если файлы немного побились. SQL-ям от этого обычно очень плохо
     
     
  • 2.82, Аноним (88), 11:41, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    sqlite терял данные и потому что место на диске кончилось и просто так. Худшее решение для всего как electron.
     
  • 2.115, Аноним (115), 15:19, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть опасения

    Вы серьезно? опасения? Да им плевать на ваш хард диск, задайтесь вопросом, на кой Х нужны эти логи? Секурюрности ради? Аудита ради? Курам на смех!!! Задать надо главный вопрос, какого Х они используют без необходимости и насилуют диск пользователя?

     

  • 1.78, Аноним (78), 11:36, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Текстовые логи не пробовали?
     
     
  • 2.83, Аноним (88), 11:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Резиновые жесткие диски уже завезли или служебная информация в текстовом виде более красиво?
     
     
  • 3.85, Аноним (85), 11:44, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > - /var/log/lastlog - время последнего входа (структура "struct lastlog" с полем "ll_time" 32-разрядного типа time_t);
    > - /var/log/btmp - неудачные попытки входа;
    > - -var/run/utmp - текущие сеансы;
    > - /var/log/wtmp - история входов и выходов.

    Для чего из этого вам не хватает нынешних объёмов диска?

     
     
  • 4.127, Аноним (125), 17:26, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вместо даты 32 бита 4 байта ты собрался писать 10 юникод символов суммарно в 20 байт? Ты гуманитарий?
     
     
  • 5.142, Аноним (134), 18:54, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > 10 юникод символов суммарно в 20 байт? Ты гуманитарий?

    Такое только гуманитарий может написать.

     

  • 1.84, Аноним (84), 11:43, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В принципе неплохой вариант - стандартизировать API с библиотеками. А как именно библиотеки будет хранить - это уже будет вторично (backend хоть на простых текстовых, хоть на бинарных, хоть в XML/JSON/etc.., хоть интегрируют в это journald)
     
  • 1.94, Аноним (94), 12:27, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вроде бы я когда-то видел предостережение от Мозиллы, в котором она призывала с осторожностью относиться к sqlite и не использовать его для новой функциональности. Видимо, они им очень наелись с Лисой.
     
     
  • 2.98, анон (?), 12:39, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Кеды с непомуком своим мучались с sqlite-ом, мучались, а потом сказали что нужен встроенный mysql, т.к. у них не решаемые проблемы с конкурентным доступом к sqlite из разных процессов.
     
     
  • 3.100, Аноним (52), 12:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://bugs.gentoo.org/936102 возвращаются на sqlite?
     
  • 3.110, Аноним (66), 14:39, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нерешаемые для разрабов всяких некомуков с алконадями.
     
  • 2.99, Аноним (52), 12:40, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очень интересно, можно ссылочку?
     
     
  • 3.101, Аноним (94), 12:58, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Поискал и не нашел. Давно это было, лет 10-15 тому или даже раньше. Может быть с тех пор что-то поменялось. Насколько я помню содержание статейки, основная мысль была в том, что базу надо аккуратно и грамотно обслуживать, ее нельзя оставить на самотек. Ну и, конечно, всё зависит от данных и сценариев использования, насколько часто они удаляются/обновляются. В свое время (а может быть и сейчас) в интернете были советы "как ускорить Лису" - всё сводилось к операции vacuum на разросшейся и фрагментированной sqlite-базе.
     
     
  • 4.102, Аноним (52), 13:08, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно что Chrome/ium тоже использует sqlite.
     
  • 3.153, tkzv (ok), 20:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылку не дам, но подтверждаю, что многие данные, которые логично было бы хранить в sqlite, хранятся в самопальном формате, представляющем собой JSON, пожатый LZ4 с приклеенным магическим числом. Например, список вкладок в previous.jsonlz4.
     
  • 2.156, Сладкая булочка (?), 20:30, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вроде бы я когда-то видел предостережение от Мозиллы, в котором она призывала
    > с осторожностью относиться к sqlite и не использовать его для новой
    > функциональности. Видимо, они им очень наелись с Лисой.

    Возможно вы путаете с websql? https://en.wikipedia.org/wiki/Web_SQL_Database

    К ней была критика как раз.

     

  • 1.106, Аноним (106), 13:42, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Блин, можно сто угодно но не скулайт? Медленная, нанадёжная, однопоточная базёнка, без типизации, с непонятной моделью разработки от непонятного BDFL, не принимающего контрибушоны, в самописной недо vcs?
     
     
  • 2.109, Аноним (66), 14:34, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Андройд разрабам надо что-то делать.
     

  • 1.114, Аноним (115), 15:16, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    протестую, давайте сразу постгрес какой-нибудь, или куда-нибудьсразу в облако в спланк какой-то, зачем насиловать диск пользователя? зачем тратить ресурсы пользователя? На кой мне ваши эти логи если их любой может зачистить и удалить? на кой они нужны? для расследования инцидентов? да в современном мире нах никому не нужно ничего расследовать, у вас из карманов  свертки подарков достанут и все.
     
  • 1.117, Stanislavvv (ok), 15:21, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хрен бы с тем, что логи будут в БД, от Y2038 всё ж действительно надо избавляться. Но БД требует обслуживания — кто его делать будет?

    Ещё: как часто вы заглядываете в эти файлы тем или иным способом? Лично я — хорошо, если раз в неделю на подчинённых серверах и скорость доступа тут ни разу не ограничитель, несмотря на то, что на сервера есть пользователи из голого инета.

    По-моему, не в том месте оптимизируют...

     
  • 1.120, Аноним (120), 16:08, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Главное, чтобы sql injections предотвратили, когда будут в btmp писать имена юзеров.
     
     
  • 2.155, Сладкая булочка (?), 20:25, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Главное, чтобы sql injections предотвратили, когда будут в btmp писать имена юзеров.

    Тут еще орм нужен... на си, конечно.

     

  • 1.122, premium user (?), 16:39, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > переполнится 19 января 2038 года.

    Ну и чё, сделать в смотрелке логов обработку скачка на 2^31 секунд назад, если вдруг в логах появились даты из 70х - делов на 15 минут. Либо начинать сейчас хранить дату в uint32 хотя бы - хватит ещё до 2136 года. Они там 1 бит не используют.
    >  Для каждого типа журналов создаётся отдельная библиотека

    ИБД

     
  • 1.126, Аноним (124), 17:22, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Sqlite атомарность имеет ровно через тот же механизм - flock Это вообще не пана... большой текст свёрнут, показать
     
  • 1.129, Аноним (132), 17:36, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > переполнение 32-разрядных счётчиков времени в 2038 году

    Кого-то волнует история входов до 1970 года? А unsigned хватит до 2106 года.

    Вместо одного каста к unsigned тащить sqlite? :) Остальные проблемы вообще надуманные.

     
  • 1.139, Аноним (139), 18:45, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1. Индексы всегда были маппингом. Зачем их тащит в формат файла?
    2. Что в формате нет места для флага размера даты в байтах? Пишите с какого-то момента в 64-битном формате или сбрасывайте 32-битный, только учитывайте флаг.
    3. использование интерфейса запросов это обслуживание и новый класс уязвимостей.
    4. получается - что знаем то и предлагаем.
    5. бинарность хороша для аппаратной реализации.
     
  • 1.144, Сладкая булочка (?), 19:44, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А зачем для системных логов, которые по факту временная серия, целая sql база данных?
     
     
  • 2.158, tkzv (ok), 20:40, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Приходилось когда-либо работать с логами? Всерьёз, с поиском одновременных событий по нескольким логам, сопоставлением полей из нескольких логов. В объёмах, требующих автоматизации. Мы в такой ситуации быстро пришли к выводу, что SQL-база удобнее текстового файла, а SQlite удобнее самодельного бинарного формата, который можно спроектировать за разумное время.
     
     
  • 3.159, Сладкая булочка (?), 20:59, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Приходилось когда-либо работать с логами? Всерьёз, с поиском одновременных событий по нескольким
    > логам, сопоставлением полей из нескольких логов. В объёмах, требующих автоматизации. Мы
    > в такой ситуации быстро пришли к выводу, что SQL-база удобнее текстового
    > файла, а SQlite удобнее самодельного бинарного формата, который можно спроектировать за
    > разумное время.

    Как вы сранвиваете логи на разных хостах?

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

     

  • 1.150, Анон1110м (?), 20:05, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чёто вспомнилась ОС на .NET.

    C# Open Source Managed Operating System (Cosmos) is a toolkit for building GUI and command-line based operating systems, written mostly in the programming language C# and small amounts of a high-level assembly language named X#.

    https://www.gocosmos.org/

     
  • 1.152, nrv (ok), 20:13, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я вот всегда думал:
    сначала разрабатывается ОС (хз конечно как, может на более старой ОС, на ДОС, та на ЭВМ с перфокартой). С минимальным набором средств разработки под эту ОС, ака компилятор С
    на ОС разрабатывает низкоуровневое ПО, утилиты
    потом на них высокоуровневое ПО

    чтобы иметь возможность ступить на уровень ниже - и исправить баг

    а тут, что мы имеем: включить в системное окружение ОС высокоуровневое ПО

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру