Прочтённые книги — 30.01.2022
Прочёл
Лига стариков — Д. Лондон
Всякие интересности.
Прочёл
Лига стариков — Д. Лондон
Некоммерческий удостоверяющий центр Let’s Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, объявил о досрочном отзыве около двух миллионов TLS-сертификатов, что составляет около 1% от всех активных сертификатов данного удостоверяющего центра. Отзыв сертификатов инициирован из-за выявления несоответствия требованиям спецификации в применяемом в Let’s Encrypt коде с реализацией расширения TLS-ALPN-01 (RFC 7301, Application-Layer Protocol Negotiation). Несоответствие было связано с отсутствием некоторых проверок, выполняемых в процессе согласования соединений на базе TLS-расширения ALPN, применяемого в HTTP/2. Детальная информация об инциденте будет опубликована после завершения отзыва проблемных сертификатов.
Показать
Соответствующие уведомления о необходимости обновления сертификатов отправлены на email. Пользователей, применяющих для получения сертификата инструментарии Certbot и dehydrated, при использовании настроек по умолчанию проблема не затронула. Метод TLS-ALPN-01 поддерживается в пакетах Caddy, Traefik, apache mod_md и autocert. Проверить корректность своих сертификатов можно через поиск идентификаторов, серийных номеров или доменов в списке проблемных сертификатов.
Так как изменения затрагивают поведение при проверке методом TLS-ALPN-01, для продолжения работы может требоваться обновление ACME-клиента или изменение настроек (Caddy, bitnami/bn-cert, autocert, apache mod_md, Traefik). Изменения сводятся к использованию версий TLS не ниже 1.2 (клиенты теперь не смогут использовать TLS 1.1) и прекращению поддержки OID 1.3.6.1.5.5.7.1.30.1, идентифицирующего устаревшее расширение acmeIdentifier, поддерживаемое только в ранних черновиках спецификации RFC 8737 (при формировании сертификата теперь допускается только OID 1.3.6.1.5.5.7.1.31, а клиенты использующие OID 1.3.6.1.5.5.7.1.30.1 не смогут получить сертификат).
Источники:
https://www.opennet.ru/opennews/art.shtml?num=56588
https://community.letsencrypt.org/t/2022-01-25-issue-with-tls-alpn-01-validation-method/170450
Эмили Долсон (Emily Dolson), преподаватель из Мичиганского университета, столкнулась с необычным поведением сервиса Google Drive, который стал блокировать доступ к одному из сохранённых файлов с сообщением о нарушении правил сервиса, связанных с авторскими правами, и предупреждением о невозможности запросить для данного типа блокировок ручную проверку. Интересно то, что содержимое заблокированного файла состояло только из одной цифры «1».
Изначально предполагалось, что блокировка может быть вызвана коллизиями при вычислении хэшей, но данная гипотеза была отвергнута, так как экспериментальным путём выявлено, что блокировка срабатывает не только на «1», но и на многие другие цифры, независимо от наличия символа перевода строки и имени файла. Например, при создании файлов с числами из диапазона от -1000 до 1000, блокировка была применена для чисел 0, 500, 174, 833, 285, 302, 186, 451, 336 и 173. Блокировка производится не сразу, а примерно через час после размещения файла. Представители Google сообщили, что пытаются разобраться в причинах сбоя и работают над устранением проблемы.
Источники:
https://news.ycombinator.com/item?id=30060405
http://www.opennet.ru/opennews/art.shtml?num=56574
P. S. Как тут не вспомнить Незаконное простое число...
Прочёл/прослушал
Фантастика, 1988-1989
Сборник фантастических произведений издательства «Молодая гвардия» за 1988-1989 годы. Отмечу рассказы Вадима Наумовича Эвентова «Жила-была Катя», Александра Анатольевича Фина «Автофон», Владислава Христофоровича Ксионжека «Рыжий».
Техническая разница между различными командами выключениями системы.
*nix-систему можно выключить различными способами: можно использовать poweroff, shutdown, init, halt.
Результат выполнения команд выключения:
poweroff (команда выключения) посылает команду ACPI на выключение системы (как при однократном нажатии кнопки выключения питания);
shutdown (команда завершения) — позволяет выполнить отложенные операции с питанием. При этом утилита выводит оповещение всем залогинившимся пользователям о предстоящем завершении работы и может с помощью файла /run/nologin блокировать вход в систему за 5 минут до времени выключения (если указан аргумент времени) После вызываются системные и локальные {init/rc}.d-скрипты с параметром stop.. В конце вызывается тот же poweroff;
halt (команда останова) отдаёт команду аппаратному обеспечению приостановить все функции CPU, но оставляет систему включённой (в некоторых случаях использование команды без параметров полностью выключает ПК). На машинах с архитектурой x86 обычно происходит выключение, но на машинах Sun управление возвращается в «ROM monitor» для получения информации о состоянии системы. Как и reboot, команда сбрасывает кэш файловой системы на диск и посылает всем процессам сигналы TERM и KILL;
init (команда изменения уровня выполнения системы) — при переходе на уровень выполнения 0 производится остановка системы командой halt с помощью выполнения скриптов, соответствующих этому уровню.
В большинстве современных *nix-систем для обратной совместимости со старыми проприетарными ОСями эти команды выполняют одно и то же и ссылаются на один и тот же файл. Например, команды poweroff и shutdown представляют из себя символические ссылки на /bin/systemctl:
user@localhost:/sbin$ ls -l poweroff
lrwxrwxrwx 1 root root 14 Sep 5 18:01 poweroff -> /bin/systemctl
user@localhost:/sbin$ ls -l shutdown
lrwxrwxrwx 1 root root 14 Sep 5 18:01 shutdown -> /bin/systemctl
Деривативы ОСи, на основе которой можно создать собственный дистр...
Девуан (Devuan GNU+Linux) — форк Дебиана, созданный группой анонимных ИТ-специалистов Veteran Unix Admins в ноябре 2014 года для предоставления дистрибутива без демона systemd init по умолчанию. Название проекта пошло от словослияния Debian и VUA (Veteran Unix Admins), изначально обсуждалась версия названия systemd-free fork Debian. Первый стабильный выпуск (1 ’Jessie’) был опубликован 25 мая 2017 года.
Проект имеет свой собственный репозиторий пакетов, отражающий апстрим репозитория Дебиана, но с локальными изменениями, которые вносятся только для других систем инициализации, а не systemd. Дистр доступен для Raspberry Pi и других типов одноплатных компьютеров. Названия релизов Девуана используют имена планет (например, релиз Jessie назван в честь малой планеты 10464).
Список дистров, созданных на основе Девуана, которые я успел «пощупать» (отсутствие скрина, как всегда, означает, что «пощупать» ещё не успел, но планирую): Показать
P. S. Статья, само собой, будет дополняться по мере рассмотрения мною новых ОСей, основанных на Девуане.
Прочёл/прослушал
Фантастика, 1987 год
Сборник фантастических произведений издательства «Молодая гвардия» за 1987 год. Очень неплохие рассказы Павла (Песаха) Рафаэловича Амнуэля «И услышал голос», Ивана Тимофеевича Фролова «Деловая операция», Владимира Ивановича Щербакова «Морег», Альберта Абрамовича Валентинова «Казнь», Руслана Парнавазовича Сагабаляна «Человек с „кейсом“», Вадима Наумовича Евентова «Бабушка», Анатолия Сергеевича Карташкина «Фуга Баха в понедельник», Владимира Николаевича Цветкова «Дождь, которому хотелось курить». Также с детства помню рассказ Владислава Христофоровича Ксионжек «Зверушка для малыша», читал его в «Юном технике» за 1983 год.
GNU parallel — утилита командной строки, за авторством
Оле Танге (Ole Tange), позволяющая выполнять задачи на одном или нескольких компьютерах параллельно. Ссылка на GIT-репозиторий — https://git.savannah.gnu.org/cgit/parallel.git.
Показать
В прошлом году я нашел старую резервную копию с самой первой версией Parallel. В архиве не было исполняемого сценария, тем не менее остался временный файл от emacs (~parallel). Это обстоятельство позволило установить дату создания первой версии проекта: 6 января 2002г. На тот момент программа представляла из себя ~15 строк кода на Perl и она до сих пор запускается:
#!/usr/bin/perl
$processes=shift;
chomp(@jobs=<>);
for (@jobs) {
$jobnr++;
push @makefile,
(".PHONY : job$jobnr\n",
"job$jobnr :\n",
"\t$_\n");
}
unshift @makefile, "all : ",(map { "job$_ " } 1 .. $jobnr),"\n";
open (MAKE, "| make -k -f - -j $processes") || die;
print MAKE @makefile;
close MAKE;
Эта версия Parallel не являлась частью GNU, принятие в проект случилось только в апреле 2011 года.
Похоже Parallel сохраняет актуальность по сей день. Утилита упомянается в 1000 научных статьях и число цитирований растёт из года в год. Статьи охватывают широкий спектр вопросов, начиная с обрезки фруктовых деревьев, заканчивая проверкой программ марсохдов или исследованиям COVID-19.
Больше всего споров за минувшие 20 лет вызвала необходимость уведомления о цитировании. Подробнее можно узнать из описания параметра
--citation
в документации.
Источник — https://www.gnu.org/software/parallel/20th-birthday.html
Прочёл/прослушал
Фантастика, 1986 год
Сборник фантастических произведений издательства «Молодая гвардия» за 1986 год. Очень понравились рассказы Сергея Стефановича Сухинова «Дворник», Натальи Аркадьевны Дарьяловой «Великая и загадочная», Игоря Валентиновича Яковлева «Веланская история», Артёма Ильича Гая «Незавершенный эксперимент», Виталия Ивановича Пищенко «Равные возможности». Ну и отдельно выделю рассказ Владимира Игоревича Малова «Статуи Ленжевена» — читал его в детстве в журнале «Юный техник» в 1984 году, очень интересный.
Инго Молнар (Ingo Molnar), известный разработчик ядра Linux и автор планировщика задач CFS (Completely Fair Scheduler), предложил для обсуждения в списке рассылки разработчиков ядра Linux серию патчей, затрагивающих более половины всех файлов в исходных текстах ядра и обеспечивающих увеличение скорости полной пересборки ядра на 50-80% в зависимости от настроек. Реализованная оптимизация примечательна тем, что она сопряжена с добавлением самого крупного в истории разработки ядра набора изменений — для включения разом предложено 2297 патчей, меняющих более 25 тысяч файлов (10 тысяч заголовочных файлов в каталогах include/ и arch/*/include/ и 15 тысяч файлов с исходными текстами).
Показать
Прирост производительности достигается за счёт изменения метода обработки заголовочных файлов. Отмечается, что за тридцать лет разработки ядра состояние заголовочных файлов приняло удручающий вид из-за наличия большого числа перекрёстных зависимостей между файлами. Работа над реструктуризацией заголовочных файлов заняла более года и потребовала проведения значительной переработки иерархии и зависимостей. В ходе реструктуризации была выполнена работа по разделению определений типов и API для разных подсистем ядра.
Среди внесённых изменений: отделение высокоуровнневых заголовочных файлов друг от друга, исключение связывающих заголовочные файлы inline-функций, выделение заголовочных файлов для типов и API, обеспечение обособленной сборки заголовочных файлов (около 80 файлов имели мешающие сборке непрямые зависимости, выставляемые через другие заголовочные файлы), автоматическое добавление зависимостей к файлам .h и .c, пошаговая оптимизация заголовочных файлов, использование режима CONFIG_KALLSYMS_FAST=y, выборочная консолидация Си-файлов в сборочные блоки для снижения числа объектных файлов.
В итоге, проделанная работа позволила на 1-2 порядка сократить размер заголовочных файлов, обрабатываемых на стадии постпроцессинга. Например, до оптимизации использование заголовочного файла linux/gfp.h приводило к добавлению 13543 строк кода и подключения 303 зависимых заголовочных файлов, а после оптимизации размер сократился до 181 строк и 26 зависимых файлов. Или другой пример: при препроцессинге файла kernel/pid.c без патча подключается 94 тысяч строк кода, большая часть которого не используется в pid.c. Разделение заголовочных файлов позволило снизить объем обрабатываемого кода в три раза, сократив число обрабатываемых строк до 36 тысяч.
При полной пересборке ядра командой make -j96 vmlinux на тестовой системе применение патчей показало сокращение времени сборки ветки v5.16-rc7 с 231.34 до 129.97 секунд, а также повысило эффективность использования ядер CPU во время сборки. При инкрементальной сборке эффект от оптимизации ещё более заметен — время повторной пересборки ядра после внесения изменений в заголовочные файлы сократилось в разы (от 112% до 173% в зависимости от изменяемого заголовочного файла). Оптимизации пока доступны только для архитектур ARM64, MIPS, Sparc и x86 (32- и 64-бит).
Источники:
https://www.opennet.ru/opennews/art.shtml?num=56449
https://lwn.net/Articles/880175/rss