Итоговая подборка наиболее важных и заметных событий 2021 года:
- Движение по смещению Столлмана и роспуску совета директоров Фонда СПО, возникшее после возвращения Столлмана в совет директоров Фонда СПО. Разрыв отношений с Фондом СПО многих открытых проектов, включая Red Hat, Fedora, Creative Commons, GNU Radio, OBS Project, SUSE, The Document Foundation. Проект Debian занял нейтральную позицию. Реструктуризация управления Фондом СПО.
- Отстранение Университета Миннесоты от разработки ядра за эксперименты c отправкой потенциально уязвимых патчей.
- Конфликты: Смена власти в IRC-сети FreeNode и инцидент с захватом IRC-каналов многих проектов. Прекращение разработки Mypal из-за действий Pale Moon. Сообщество отстояло функцию Hot Reload, удалённую из .NET. Халтурная реализация WireGuard для FreeBSD.Приостановка работы команды, следящей за соблюдением кодекса поведения в сообществе Perl. Нападки на создателя форка Audacity. Смена лицензииLibopenaptx назло Freedesktop.Отставка
модераторов сообщества Rust. Блокировка Matrix-клиента Element в Google Play. Удаление репозиториев musescore-downloader и Barinsta. - Форки: Amazon создал OpenSearch, форк Elasticsearch. Компания Elasticsearch блокировала в клиентских библиотеках возможность подключения к форкам. zlib-ng – высокопроизводительный форк zlib. Прекращена разработка Glimpse, форка GIMP.Дистрибутив OpenJDK от Microsoft.
- Поглощения: Muse Group поглотила Audacity и ввела новые правила конфиденциальности (сообщество отреагировало форками. Microsoft купил ReFirm Labs. Brave выкупил поисковый движок Cliqz.
- Судебные разбирательства: Судебный иск против Vizio, связанный с нарушением GPL. Иск и отзыв лицензии GPL у ChessBase. Разбирательство Xinuos против IBM и Red Hat. Sony Music добилась блокировки пиратских сайтов на уровне DNS-резолвера Quad9, суд отклонил апелляцию Quad9. Google победил Oracle в деле, связанном с Java и Android.
- Компания Take-Two Interactive добилась блокировки на GitHub открытого проекта RE3. После апелляции GitHub восстановил доступ, но компания Take-Two подала против разработчиков судебный иск, а GitHub повторно заблокировал репозиторий.
- Авторские права: Нарушение авторского права в хранителе экрана GNOME. Попытка сторонней организации зарегистрировать торговую марку PostgreSQL в Европе и США. Заимствование кода OBS в TikTok Live Studio.Феномен копилефтных троллей. Исключения DMCA, разрешающие замену прошивок маршрутизаторов.
- GitHub учредил службу для защиты разработчиков от необоснованных DMCA-блокировок. GitHub ужесточил правила, связанные с размещением результатов исследований безопасности, после конфликта, связанного с удалением прототипа эксплоита для Microsoft Exchange. GitHub снял ограничения для разработчиков из Ирана.
- Лицензии: Elasticsearch перешёл на несвободную лицензию SSPL. Проекты GCC и Glibc отменили обязательную передачу имущественных прав на код Фонду СПО. Grafana изменила лицензию с Apache 2.0 на AGPLv3. Nokia перелицензировала ОС Plan9 под лицензией MIT. Минцифры РФ разработало “Государственную открытую лицензию. Устранение нарушения GPL в библиотеке mimemagic привело к сбою в Ruby on Rails. Признание лицензии на NMAP несовместимой с Fedora, после чего Nmap изменил лицензию.
- Продвижение СПО: В России планируют создать свой Фонд открытого ПО. Еврокомиссия будет распространять свои программы под открытыми лицензиями. Задействование открытого ПО в марсолёте Ingenuity.
- Языки программирования и компиляторы: GCC 11, LLVM 12/13, Ruby 3.1, Perl 5.43, PHP 8.1, Go 1.17, Rust 2021, Dart 2.5, Julia 1.7, Nim 1.6, Haxe 4.2,Erlang/OTP 24,
Crystal 1.0/1.2, .NET 6
Открыт код Luau, варианта языка Lua с проверкой типов. Mariana Trench и PHPStan – статические анализаторы для Java и PHP.
IBM опубликовал компилятор COBOL для Linux. Новый язык логического программирования Logica. HPVM – компилятор для CPU, GPU, FPGA и ускорителей. Высокопроизводительный компоновщик Mold от автора LLVM lld. - Python: Python 3.10 с поддержкой сопоставления с образцом. Python исполнилось 30 лет. Cinder – форк CPython, используемый в Instagram. Pyston (Python с JIT) вернулся к открытой модели разработки. Поддержка сборки CPython для работы в браузере. План существенного повышения производительности Python. В PIP прекращена поддержка Python 2. Python занял первое место в рейтинге TIOBE.
- Экспансия языка Rust: Создана организация Rust Foundation с директорами из AWS, Huawei, Google, Microsoft, Facebook и Mozilla. Google финансирует добавление поддержки Rust в ядро Linux и разработку на Rust нового TLS-модуля для http-сервера Apache. Добавление поддержки Rust в Android. Эксперименты с Rust в Chrome. Эксперимент с переводом Debian на coreutils на Rust. Фронтэнд OpenCL на Rust. Реализация Tor на Rust.
- Системные компоненты: systemd 248/249/250. Форк systemd портирован для OpenBSD. Сборки Gentoo на базе Musl и systemd. Проект OpenPrinting взял на себя разработку системы печати CUPS и выпустил CUPS 2.4.0. Система инициализации Finit 4.0.
- Аппаратное обеспечение: Открытый чип Libre-SOC. RV64X и Vortex – открытые GPU и GPGPU на базе архитектуры RISC-V. Открытая архитектура прошивок Universal Scalable Firmware от Intel.
Открытые RISC-V процессоры XuanTie (от Alibaba) и XiangShan. Прекращение развития архитектуры MIPS в пользу RISC-V. Открытая PCIe-карта с атомными часами. Инициатива по развитию открытых проектов для FPGA. Открытый BMC-контроллер LibreBMC. Исследовательская программа OpenHW Accelerate. Открытая клавиатура Launch. Умные часы PineTime.
Электронная книга PineNote. Смартфон PinePhone Pro. - Сетевая инфраструктура: Протокол HTTPA (HTTPS Attestable). VPN-протокол Lightway. Прекращение браузерами поддержки FTP.
- Стандарты: Получили статус стандарта WebRTC, Web Audio, QUIC и OpenDocument 1.3. Началась стандартизация Web GPU и WebTransport. Mozilla, Google, Apple и Microsoft приступили к стандартизации платформы для браузерных дополнений.
- Механизмы защиты: Snort 3. Фонд СПО представил браузерное дополнение JShelter для ограничения JavaScript API. Перевод NPM на расширенную верификацию учётных записей. SLSA для защиты от вредоносных изменений в процессе разработки. Рандомизация адресов стека ядра Linux.
- Новые ОС: MuditaOS для экранов на базе электронной бумаги. Muen – микроядро для создания высоконадёжных систем. Kerla – Linux-совместимое ядро на языке Rust. Chimera (ядро Linux + окружение FreeBSD). ToaruOS. Порт OpenVMS для x86-64. Предустановка ОС Fuchsia на устройства Nest Hub и поддержка запуска Linux-программ в Fuchsia.
- BSD: FreeBSD 12.3/13.0, OpenBSD 7.0, NetBSD 9.2, DragonFly BSD 6.0. Дистрибутивы helloSystem (от автора AppImage) и Airyx в стиле macOS. Разработка нового инсталлятора для FreeBSD. Поддержка RISC-V и Apple M1 в OpenBSD. Первичная поддержка ARM64 и вторичная i386 во FreeBSD.
- Мобильные платформы: Android 12, LineageOS 18, CalyxOS 2.8, WebOS 2.14, KDE Plasma Mobile 21.12, NemoMobile 0.7, postmarketOS 21.06/21.12, EdgeX 2.0, Ubuntu Touch OTA-20. InfiniTime (прошивка для умных часов). PinePhone перешёл по умолчанию на Manjaro Linux. Интерфейс для умных часов на базе postmarketOS. Миграция Google Play с APK на App Bundle.
- Дистрибутивы: Debian 11, Devuan 4.0, Ubuntu 20.04/21.10, openSUSE 15.3, RHEL 8.4/8.5, Fedora 34/35, SUSE 15.3.
Проблема мелких зависимостей и разрешение
встраивания зависимостей Kubernetes в Debian. Microsoft выпустил Linux-дистрибутив CBL-Mariner. Бесплатные варианты использования Red Hat Enterprise Linux. Эмуляция RHEL на базе Fedora Rawhide. Начало тестирования RHEL 9 и формирование CentOS Stream 9. Прекращение выпуска обновлений для CentOS 8.x. Выпуски альтернатив CentOS 8 – AlmaLinux, Rocky Linux и VzLinux. Fedora Kinoite, аналог Fedora Silverblue с рабочим столом KDE. CentOS для автомобильных информационных систем. Развитие нового интсталлятора для Ubuntu. Формирование промежуточных сборок openSUSE. Переименование дистрибутива Fedora в Fedora Linux. DUR (Debian User Repository). - Новые пользовательские окружения: Maui Shell, COSMIC, Ubuntu Frame, labwc, wayward, CuteFish.
- Обновление пользовательских окружений: GNOME 40/41, KDE 5.21/5.22/5.23, LXQt 1.0, MATE 1.26, Enlightenment 0.25, Budgie 10.5.3, Regolith 1.6, Sway 1.6. Переименование KDE Applications в KDE Gear. Budgie переходит с GTK на EFL.
- GUI и графика: Qt 6.1/6.2, GTK 4.2/4.4/4.6, SDL 2.0.18, DearPyGui 1.0.0, X.Org Server 21.1. Продвижение Wayland. SDL переходит на Git и GitHub. Компания Qt Company ограничила доступ к коду Qt 5.15, а KDE взял на себя сопровождение открытой ветки Qt 5.15. Новая GUI-библиотека SixtyFPS. Язык построения интерфейсов Blueprint. GUI для разработки GTK-интерфейсов Cambalache.
- Мультимедия, графика, моделирование и 3D: Blender 3.0, FreeCAD 0.19, KiCad 6.0, FFmpeg 4.4, Krita 5.0, GIMP 2.99.x, Inkscape 1.1.Аудиокодек Lyra. Открытие системы IPTV-вещания msd. Kodi 19.
- Игры: Amazon открыл игровой движок Open 3D Engine. DeepMind открыл симулятор физических процессов MuJoCo. Открыт код игрового движка Storm. Godot 3.4. Valve анонсировала игровую консоль Steam Deck на базе Arch Linux.
- СУБД: PostgreSQL 14, MariaDB 10.6, rqlite 6.0, Tarantool 2.8, Apache Cassandra 4.0, MongoDB 5.0, Firebird 4.0, immudb 1.0, libmdbx 0.10, Dolt, TimescaleDB 2.0, SQLite 3.37.
Amazon открыл Babelfish для замены MS SQL Server на PostgreSQL. Распределённая СУБД PolarDB. FerretDB/MangoDB с реализацией протокола MongoDB поверх PostgreSQL.Изменения в разработке MariaDB. - Firefox: Улучшение поддержки Wayland и аппаратного ускорения. Использование EGL для X11. Переработка интерфейса. Улучшение средств защиты от отслеживания и изоляции сайтов. Новые правила в каталоге дополнений. Новый интерфейс Firefox Focus. Прекращение разработки Firefox Lite, Voice Fill и Firefox Voice. Включение поддержки HTTP/3. Переход на ECH для скрытия домена в HTTPS-трафике.
- Chrome: Проблемы с сопровождением Chromium в дистрибутивах Linux. Перевод на прослойку Ozone для систем с X11.Возможность локального запрета просмотра кода web-страниц. Релиз MS Edge для Linux. Оптимизации RenderingNG. Скорое прекращение второй версии манифеста.
Порт для ОС Fuchsia. Режим HTTPS-First. Отложено прекращение поддержки сторонних Cookie. Отказ от идеи показа только домена в адресной строке. Сокращение цикла подготовки релизов. Запрет использования Google API в сторонних браузерах.Анализ производительности дополнений к Chrome. - Распределённые и P2P системы: Децентрализованное хранилище LF.
Распределённая ФС JuiceFS. Обновление IPFS 0.9, Nebula 1.5, Venus 1.0, Yggdrasil 0.4, GNUnet 0.15.0, Hubzilla 5.6, 4.0. Прекращение разработки Mesos. - Машинное обучение: ControlFlag для выявления ошибок в коде. CodeNet для создания трансляторов из одного языка программирования в другой. StyleGAN3 для синтеза лиц. HyperStyle для редактирования изображений. PIXIE для построения 3D-моделей людей по фотографии. Система распознавания текста Tesseract 5.0.
- Виртуализация и контейнеры: Поддержка запуска GUI-приложений Linux в Windows. Lima для запуска Linux-приложений в macOS.Runj на базе FreeBSD jail.
- Ядро Linux: Продвижение патчей для разработки драйваеров на языке Rust (приняты в ветку linux-next). Возможность создания eBPF-обработчиков на языке Rust. Инициатива по повышению защиты Linux от ИСП РАН. Переход к развитию новшеств для Android в основном ядре. 30 лет ядру Linux. Прекращение поддержки устаревших платформ. Модернизация работы над ошибками.
- Основные изменения в ядре:
- 5.15:
новый драйвер NTFS с поддержкой записи, модуль ksmbd с реализацией SMB-сервера, подсистема DAMON для мониторинга доступа к памяти, примитивы блокировок для режима реального времени, поддержка fs-verity в Btrfs, системный вызов process_mrelease для систем реагирования на нехватку памяти, модуль удалённой аттестации dm-ima. - 5.14
новые системные вызовы quotactl_fd() и memfd_secret(), удаление драйверов ide и raw, новый контроллер приоритетов ввода/вывода для cgroup, режим планирования задач SCHED_CORE, инфраструктура для создания загрузчиков верифицированных BPF-программ. - 5.13
начальная поддержка чипов Apple M1, cgroup-контроллер “misc”, прекращение поддержки /dev/kmem, поддержка новых GPU Intel и AMD, возможность прямого вызова функций ядра из BPF-программ, рандомизация стека ядра для каждого системного вызова, возможность сборки в Clang с защитой CFI (Control Flow Integrity), LSM-модуль Landlock для дополнительного ограничения процессов, виртуальное звуковое устройство на базе virtio, multi-shot режим в io_uring. - 5.12 поддержка зонированных блочных устройств в Btrfs, возможность маппинга идентификаторов пользователей для ФС, чистка устаревших ARM-архитектур, режим “нетерпеливой” записи в NFS, механизм LOOKUP_CACHED для определения файловых путей из кэша, поддержка атомарных инструкций в BPF, отладочная система KFENCE для выявления ошибок при работе с памятью, работающий в отдельном потоке ядра режим NAPI poll-инга в сетевом стеке, гипервизор ACRN, возможность изменения на лету preempt-модели в планировщике задач и поддержка LTO-оптимизаций при сборке в Clang.
- 5.11: поддержка анклавов Intel SGX, новый механизм перехвата системных вызовов, виртуальная шина auxiliary, запрет сборки модулей без MODULE_LICENSE(), режим быстрой фильтрации системных вызовов в seccomp, прекращение сопровождения архитектуры ia64, перенос технологии WiMAX в ветку “staging”, возможность инкапсуляции SCTP в UDP.
- 5.15:
- Шифрование: OpenSSL 3.0, Libgcrypt 1.9.0. Google открыл инструментарий для полностью гомоморфного шифрования. Сервис для криптографической верификации кода Sigstore. GNU Anastasis для резервного копирования ключей шифрования. Криптографическая хеш-функция BLAKE3 1.0.
- Локальные уязвимости: гипервизор KVM, ядро Linux (USB, tty, eBPF, eBPF 2, eBPF 3,eBPF 4, io_uring, vfs, netfilter, CAN, iSCSI,VSOCK
), PHP-FPM, OpenOffice, Polkit, runc, Please, Flatpak (2), GRUB, sudo, Cinnamon, firejail, Python. - Удалённые уязвимости: Log4j, Mozilla NSS, LibreSSL, Grafana, принтеры HP, Samba, ядро Linux (TIPC), Apache httpd, OMI Agent, Matrix, Ghostscript, libssh, Node.js, Suricata, nginx, Exim, BIND (2), Git, MyBB, OpenSSL, SaltStack, wpa_supplicant, Libgcrypt, dnsmask.
- Уязвимости в процессорах и оборудовании: Новые виды атак на CPU Intel и AMD. Три уязвимости класса Spectre и Meltdown в CPU AMD и уязвимость в AMD SEV. Утечка данных через кольцевую шину CPU Intel. Атака на Intel SGX. Уязвимости в DSP-чипах MediaTek и токенах c чипами NXP. Три новых варианта атак на память DRAM. Realtek SDK.
- Методы атак: Методы эксплуатации Spectre и извлечения данных из кэша через выполнение JavaScript в браузере. Атаки Trojan Source, NAT slipstreaming 2, FragAttacks (в Wi-Fi), ALPACA (MITM на HTTPS), HTTP Request Smuggling 2, SAD DNS 2, NAME:WRECK. Обход защиты от Spectre через eBPF.
- Исследования: Влияние на производительность источника точного времени. Клонирование отпечатков пальцев при помощи лазерного принтера. Определение PIN-кода по видеозаписи. Определение скрытых камер при помощи ToF-датчика смартфона.
- Бэкдоры в маршрутизаторах FiberHome, NETGEAR, коммутаторах Cisco Catalyst PON, точках доступа Zyxel и клиенте MonPass.
- Взломы: Компрометации git-репозитория и базы пользователей проекта PHP. Потеря контроля над доменом perl.com. Компрометация системы голосования OSI. История с компрометацией Ubiquiti. Взлом сервера MidnightBSD, GoDaddy, форума OpenWRT. Попытки взлома сайта Blender. Волна взломов уязвимых серверов GitLab. Массовое удаление данных на сетевых накопителях WD My Book Live и My Book Live Duo.
- Приватность: Сопротивление внедрению API FLoC, продвигаемого Google вместо отслеживающих Cookie. Идентификация через анализ внешних обработчиков протоколов в браузере и манипуляции с кэшированием Favicon.
- Продолжение выявления вредоносных пакетов в репозиториях и каталогах NPM, PyPI, Mozilla AMO. 46% Python-пакетов в PyPI содержат потенциально небезопасный код. Уязвимости в NPM, позволяющие перезаписать файлы и выпустить обновление для любого пакета. Уязвимость Composer, допускающая компрометацию PHP-репозитория Packagist.
- Атаки на инфраструктуры: SolarWinds. Travis CI. Cloudflare (cdnjs). Компрометация PGP-ключа HashiCorp.Атака на зависимости, позволившая выполнить код на серверах PayPal, Micrоsoft, Apple, Netflix, Uber. Взлом Cloudflare и Tesla через камеры наблюдения Verkada. Майнинг криптовалюты на серверах GitHub
- Инциденты: Потеря доверия к Let’s Encrypt на старых устройствах и сбои во многих проектах из-за устаревания корневого сертификата IdenTrust. Сдвиг времени из-за ошибки в GPSD.
За год на OpenNET было опубликовано 1625 новостей, на которые было оставлено 202177 комментариев. Осенью 2021 года проекту OpenNET исполнилось 25 лет. Желающие оказать финансовую поддержку для продолжения написания новостей могут найти реквизиты на данной странице.
Release.
Ссылка here.