gladilov.org.ru gladilov.org.ua

172 заметки с тегом

события

Позднее Ctrl + ↑

20 лет проекту GNU Parallel

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

Вышел набор патчей, ускоряющих сборку ядра Linux на 50-80%

Инго Молнар (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

2022   Linux   в мире   досуг   интересное   события   софт

Линусу Торвальдсу 52!


Сегодня Линус Торвальдс (Linus Benedict Torvalds), финно-американский программист, создатель ядра Linux, отмечает своё 52-летие. Здоровья, долголетия, счастья и добра.

С ДР, крч.

DMCA теперь разрешает перепрошивку роутеров

Правозащитные организации Software Freedom Conservancy (SFC) и Electronic Frontier Foundation (EFF) добились внесения поправок в «Закон об авторском праве в цифровую эпоху» (DMCA, Digital Millennium Copyright Act), добавляющих прошивки к маршрутизаторам в список исключений, на которые не распространяются ограничения DMCA.

Раз в три года в Библиотеке Конгресса США созывается специальная комиссия, которая в ходе публичных слушаний принимает решение о пересмотре списка исключений с описанием ситуаций к которым закон DMCA не может быть применим. Данный список формируется для защиты от возможных злоупотреблений и необоснованных ограничений, которые могут продвигаться под прикрытием DMCA, не являясь при этом объектом нарушения авторских прав.

Показать

Утверждённые в этом году исключения разрешают установку альтернативных прошивок на маршрутизаторы и другие сетевые устройства (в том числе совершая jailbreak и обходя привязки к прошивкам с DRM). Исключение даёт пользователю возможность продлить жизненный цикл своего устройства после истечения срока поддержки производителем, установив альтернативную прошивку, такую как OpenWrt.

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

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

Расширены категории устройств для которых действуют исключения, позволяющие самостоятельно проводить ремонт. Проект Right to Repair добивается предоставления исключений для ремонта любых устройств и в этом году удалось приблизится к намеченной цели. Одобрены поправки, разрешающие диагностику, техническое обслуживание и ремонт любых потребительских устройств, включая электронные книги, проигрыватели дисков и умные динамики, а также ремонт транспортных средств, морских судов и медицинских устройств. Для медицинских устройств разрешён как ремонт так и извлечение данных, хранящихся на собственном устройстве, независимо от того имплантировано устройство или нет.

Продлены исключения, связанные дешифровкой материалов c DVD, Blu-Ray и online-сервисов, которые используются для составления ремиксов с включением в них отдельных отрывков видео. Из действия DMCA также выведены компьютерные игры и игровые консоли, производители которых прекратили поддержку своих продуктов (любители компьютерных игр могут легально вносить изменения в старые игровые приложения и прошивки игровых консолей для обхода привязок к внешним игровым сервисам и серверам аутентификации). Продлены исключения, позволяющие использовать альтернативные материалы в 3D-принтерах.

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

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

Из нерешённых проблем также отмечается отсутствие исключений для распространения инструментов, используемых для ремонта — поставка утилит, обходящих блокировки производителей по-прежнему считается нелегальной. Отмечается, что комиссия не имеет полномочий принять исключение по этому вопросу, так как он требует реформирования законодательства. Таким образом складывается ситуация, что пользователь получил право самостоятельно изменить прошивку и обойти привязку к периферийным устройствам на своём Xbox, но распространение кода для осуществления таких действий является незаконным.

Источники:
https://public-inspection.federalregister.gov/2021-23311.pdf
https://www.opennet.ru/opennews/art.shtml?num=56066
https://sfconservancy.org/news/2021/oct/28/2021-DMCA-final-exemptions-win/

Компания Intel развивает протокол HTTPA, дополняющий HTTPS

Инженеры из компании Intel предложили новый протокол HTTPA (HTTPS Attestable), расширяющий HTTPS дополнительными гарантиями безопасности произведённых вычислений. HTTPA позволяет гарантировать целостность обработки запроса пользователя на сервере и убедиться в том, что web-сервис заслуживает доверия и работающий в TEE-окружении (Trusted Execution Environment) на сервере код не был изменён в результате взлома или диверсии администратора.

Показать

HTTPS защищает передаваемые данные на этапе передачи по сети, но не может исключить нарушение их целостности в результате атак на сервер. Изолированные анклавы, создаваемые при помощи таких технологий, как Intel SGX (Software Guard Extension), ARM TrustZone и AMD PSP (Platform Security Processor), дают возможность защитить важные вычисления и снизить риск утечек или изменения конфиденциальной информации на конечном узле.

HTTPA для гарантирования достоверности переданной информации позволяет задействовать предоставляемые в Intel SGX средства аттестации, подтверждающие подлинность анклава, в котором произведены вычисления. По сути HTTPA расширяет HTTPS возможностью удалённой аттестации анклава и позволяет проверить то, что он выполняется в подлинном окружении Intel SGX и web-сервису можно доверять. Протокол изначально развивается как универсальный и помимо Intel SGX может быть реализован и для других TEE-систем.

Помимо штатного для HTTPS процесса установки защищённого соединения, HTTPA дополнительно требует согласования сессионного ключа, заслуживающего доверия. Протокол вводит в обиход новый HTTP-метод «ATTEST», который позволяет обрабатывать три типа запросов и ответов:

«preflight» для проверки, поддерживает ли удалённая сторона аттестацию анклавов;
«attest» для согласования параметров аттестации (выбор криптографического алгоритма, обмен уникальными для сеанса случайными последовательностями, генерация идентификатора сеанса и передача клиенту открытого ключа анклава);
«trusted session» — формирование сессионного ключа для доверительного обмена информацией. Сессионный ключ формируется на основе ранее согласованной предварительной секретной последовательности (pre-session secret), сформированной клиентом с использованием полученного от сервера открытого ключа TEE, и сгенерированных каждой стороной случайных последовательностей.

HTTPA подразумевает, что клиент заслуживает доверия, а сервер нет, т. е. клиент может использовать данный протокол для верификации вычислений в TEE-окружении. При этом HTTPA не гарантирует, что производимые в процессе работы web-сервера остальные вычисления, производимые не в TEE, не были скомпрометированы, что требует применения отдельного подхода к разработке web-сервисов. Таким образом, в основном HTTPA нацелен на использование со специализированными сервисами, к которым предъявляются повышенные требования к целостности информации, такие как финансовые и медицинские системы.

Для ситуаций когда вычисления в TEE должны быть подтверждены как для сервера, так и для клиента предусмотрен вариант протокола mHTTPA (Mutual HTTPA), выполняющий двухстороннюю верификацию. Данный вариант более усложнённый из-за необходимости двустороннего формирования сессионных ключей для сервера и клиента.

Источники:http://www.opennet.ru/opennews/art.shtml?num=56050
https://arxiv.org/pdf/2110.07954.pdf

Завтра ошибка в GPSD приведёт к сдвигу на 19 лет назад

В пакете GPSD, применяемом для извлечения точного времени и данных о координатах из GPS-устройств, выявлена критическая проблема, из-за которой 24 октября произойдёт смещение времени на 1024 недели назад, т. е. время будет переведено на март 2002 года. Проблема проявляется в выпусках с 3.20 по 3.22 включительно и устранена в выпуске GPSD 3.23 (исправление также бэкпортировано в пакет с версией 3.22 для Debian). Всем пользователям систем, в которых используется GPSD, необходимо срочно установить обновления, или быть готовым к сбою.

Показать

Эффект от ошибки может привести к непредсказуемым сбоям на разных системах, в том числе напрямую не использующих GPSD, так как данное приложение применяется для получения данных о точном времени на некоторых NTP-серверах, используемых для синхронизации времени. При сдвиге времени в системах могут возникнуть проблемы с аутентификацией (например, перестанут срабатывать одноразовые пароли, Kerberos и другие механизмы проверки доступа, у которых есть время действия), с проверкой сертификатов и с вычислениями, манипулирующими диапазонами времени (например, расчёт времени сеанса пользователя).

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

Протокол GPS предусматривает наличие счётчика недель, отсчитывающего недели начиная с 5 января 1980 года. Проблема в том, что при вещании под данный счётчик отводится всего 10 бит, что подразумевает его переполнение через каждые 1023 недели (19.7 лет). Первое переполнение произошло в 1999 году, второе в 2019, а третье произойдёт в 2038 году. Данные события отслеживаются производителями и для них предусмотрены специальные обработчики. В настоящее время параллельно внедрён новый формат GPS-сообщений (CNAV), в котором для счётчика отводится 13 бит (т. е. переполнение ожидается только в 2137 году).

В GPSD в логике корректировки появления лишней секунды (добавляется с целью синхронизации эталонных мировых атомных часов с астрономическим временем Земли) была допущена ошибка из-за которой 24 октября 2021 года преждевременно будет произведено вычитание 1024 из счётчика числа недель. По задумке автора кода сдвиг должен был произойти 31 декабря 2022 года, но перевод этой даты в число недель был выполнен не верно и фактически приведённое в проверке число недель подпадало под октябрь 2021 года (указано значение 2180 вместо 2600).

/* sanity check week number, GPS epoch, against leap seconds
     * Does not work well with regressions because the leap_sconds
     * could be from the receiver, or from BUILD_LEAPSECONDS. */
    if (0 < session->context->leap_seconds &&
        19 > session->context->leap_seconds &&
        2180 < week) {
        /* assume leap second = 19 by 31 Dec 2022
         * so week > 2180 is way in the future, do not allow it */
        week -= 1024;
        GPSD_LOG(LOG_WARN, &session->context->errout,
                 "GPS week confusion. Adjusted week %u for leap %d\n",
                 week, session->context->leap_seconds);
    }

Источники:
https://us-cert.cisa.gov/ncas/current-activity/2021/10/21/gps-daemon-gpsd-rollover-bug
http://www.opennet.ru/opennews/art.shtml?num=56017

Минцифры РФ разработало открытую лицензию

В git-репозитории программного комплекса «Витрины данных НСУД», разработанного по заказу Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации, обнаружен текст лицензии, озаглавленной «Государственная открытая лицензия, версия 1.1». Согласно пояснительному тексту, права на текст лицензии принадлежат Минцифры. Датирована лицензия 25 июня 2021 года.

Показать

По сути лицензия является пермиссивной и близка к лицензии MIT, но создана с оглядкой на российское законодательство и гораздо более многословна. Условия лицензии содержат множество уточнений, и без того следующих из законодательства РФ. В то же время в лицензии присутствуют спорные моменты в части определений. Так, исходный код определяется как «программа для ЭВМ в форме текста на языке программирования, который может быть прочтён человеком», что не обязательно подразумевает возможность получения из него исполняемого кода, а также то, что этот код не является сгенерированным на базе настоящего исходного кода (то есть кода в предпочтительной форме для внесения изменений).

Лицензия разрешает использовать программу или её части в любых не запрещённых законодательством РФ целях, а также изучать, перерабатывать и распространять копии программы и своей изменённой версии. Лицензия не требует распространять производную программу на условиях той же лицензии. В тексте также достаточно подробно раскрыты вопросы освобождения от ответственности — ни одна из сторон лицензионного соглашения не вправе требовать от другой стороны возмещения убытков, в том числе вызванных возможными недостатками или ошибками программы, а лицензиар не обязан исправлять недостатки или ошибки.

Примечательно, что в пояснительном тексте указана версия лицензии 1.0, в то время как текст лицензии имеет версию 1.1. Вероятно, это указывает на то, что лицензия дорабатывалась наспех.

Источники:
https://g.info.gov.ru/datamart/nsud-datamarts/-/blob/master/open_license_ru
http://www.opennet.ru/opennews/art.shtml?num=55960

Компания Canonical представила оболочку Ubuntu Frame

Компания Canonical представила первый выпуск оболочки Ubuntu Frame, предназначенной для создания интернет-киосков, терминалов самообслуживания, информационных стендов, цифровых вывесок, умных зеркал, промышленных экранов, IoT-устройств и других подобных применений. Оболочка рассчитана на предоставление полноэкранного интерфейса для одного приложения и базируется на использовании дисплейного сервера  Mir и протокола  Wayland. Наработки проекта распространяются под лицензией GPLv3. Для загрузки подготовлены пакеты в формате snap.

Показать

Ubuntu Frame можно использовать для запуска приложений на базе  GTK,  Qt,  Flutter и  SDL2, а также программ на базе Java, HTML5 и Electron. Возможен запуск как приложений, собранных с поддержкой Wayland, так и программ на базе протокола  X11 (используется Xwayland). Для организации работы в Ubuntu Frame с отдельными web-страницами или сайтами развивается программа Electron Wayland с реализацией специализированного полноэкранного web-браузера, а также порт движка WPE WebKit. Для быстрой подготовки и развёртывания решений на основе Ubuntu Frame предлагается использовать пакеты в формате snap, при помощи которых организована изоляция запускаемых программ от остальной системы.

Оболочка Ubuntu Frame адаптирована для работы поверх системного окружения  Ubuntu Core, компактного варианта дистрибутива Ubuntu, поставляемого в форме неделимого монолитного образа базовой системы, в котором не применяется разбивка на отдельные deb-пакеты и используется механизм атомарного обновления всей системы. Компоненты Ubuntu Core, включая базовую систему, ядро Linux, системные надстройки и дополнительные приложения, поставляются в формате snap и управляются инструментарием snapd. Компоненты в формате Span изолируются при помощи AppArmor и Seccomp, что создаёт дополнительный рубеж для защиты системы в случае компрометации отдельных приложений. Базовая файловая система монтируется в режиме только для чтения.

Для создания кастомизированного киоска, ограниченного работой одного приложения, разработчику достаточно подготовить само приложение, а все остальные задачи по поддержке оборудования, поддержанию системы в актуальном состоянии и организации взаимодействия с пользователем берут на себя Ubuntu Core и Ubuntu Frame, включая поддержку управления при помощи экранных жестов на системах с сенсорными экранами. Заявлено, что обновления с устранением ошибок и уязвимостей в выпусках Ubuntu Frame будут формироваться в течение 10 лет. При желании оболочку можно запустить не только в Ubuntu Core, но и в любом дистрибутиве Linux с поддержкой пакетов Snap. В простейшем случае для развёртывания web-киоска достаточно установить и запустить пакет ubuntu-frame и настроить несколько параметров конфигурации:

snap install ubuntu-frame
snap install wpe-webkit-mir-kiosk
snap set wpe-webkit-mir-kiosk daemon=true
snap set ubuntu-frame daemon=true
snap set wpe-webkit-mir-kiosk url=https://example.com

Источники:
https://ubuntu.com/blog/canonical-launches-ubuntu-frame-the-foundation-for-embedded-displays
https://www.opennet.ru/opennews/art.shtml?num=55933
https://github.com/MirServer/ubuntu-frame

«Он опережал время со своими изобретениями»

Скончался создатель ZX Spectrum и электромобиля Sinclair C5 сэр Клайв Синклер.

Британский предприниматель и бывший владелец компании, которая выпустила микрокомпьютер ZX Spectrum в 1982 году, Клайв Синклер (Clive Sinclair) скончался в возрасте 81 года. Его дочь, Белинда Синклер (Belinda Sinclair) в интервью с The Guardian сообщила, что её отец болел раком.

Показать

В 1980-х Синклер выпустил несколько моделей домашних компьютеров, включая ZX80, ZX81 и ZX Spectrum. В то время персональные компьютеры были очень дорогими, но Синклеру удалось продать свои устройства примерно за 100 фунтов стерлингов, а позже и ещё дешевле, что сделало их очень популярными. Впоследствии он продал свой компьютерный бизнес компании Amstrad, принадлежащей Alan Sugar. Интересно, что ещё в 1985 году был представлен трёхколёсный электромобиль Sinclair C5 для одного человека, который не стал популярным.

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

Белинда Синклер

До появления популярных домашних компьютеров Клайв Синклер также разработал электронный карманный калькулятор Sinclair Cambridge. Изначально он был дорогим, но к 1975 году цена упала до 15 фунтов стерлингов.

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

Источник

2021   в мире   история   люди   события

Для ядра Linux предложена реализация SMB-сервера

Для включение в состав следующего выпуска ядра Linux предложена новая реализация файлового сервера, использующего протокол SMB3. Сервер оформлен в виде модуля ядра ksmbd и дополняет ранее доступный код клиента SMB. Отмечается, что в отличие от SMB-сервера, работающего в пространстве пользователя, реализация на уровне ядра более эффективна с точки зрения производительности, потребления памяти и интеграции с расширенными возможностями ядра. Основным разработчиком ksmbd является Стив Френч (Steve French) из компании Microsoft (ранее много лет работал в IBM), мэйнтейнер подсистем CIFS/SMB2/SMB3 в ядре Linux и давний участник команды разработчиков Samba, внёсший значительный вклад в реализацию поддержки протоколов SMB/CIFS в Samba и Linux.

Показать

Из возможностей ksmbd выделяется улучшенная поддержка технологии распределённого кэширования файлов (SMB leases) на локальных системах, которая позволяет существенно сократить трафик. В дальнейшем планируется добавление новых возможностей, таких как поддержка RDMA («smbdirect»), а также расширений протокола, связанных с усилением надёжности шифрования и верификацией по цифровым подписям. Отмечается, что подобные расширения гораздо проще реализовать в компактном и хорошо оптимизированном сервере, работающем на уровне ядра, чем в пакете Samba.

При этом ksmbd не претендует на роль полной замены пакета Samba, который не ограничивается возможностями файлового сервера и предоставляет инструментарий, охватывающей сервисы для обеспечения безопасности, LDAP и контроллер домена. Реализация файлового сервера в Samba является кросс-платформенной и рассчитанной на более широкие области применения, что затрудняет оптимизацию для некоторых Linux-окружений, таких как прошивки для устройств с ограниченными ресурсами.

Ksmbd рассматривается не как отдельный продукт, а скорее как высокопроизводительное и готовое для применения на встраиваемых устройствах расширение к Samba, при необходимости интегрируемое с инструментами и библиотеками Samba. Например, с разработчиками Samba уже согласован вопрос использования в ksmbd совместимых с smbd файлов конфигурации и расширенных атрибутов (xattrs), что упростит переход с smbd на ksmbd и наоборот.

Источники:
Список рассылки
Опёнок

Ранее Ctrl + ↓
Наверх