В этом году в мире Open Source произошло не так уж много действительно знаковых и интересных событий: в основном допиливался существующий софт и развивались операционные системы. Поэтому сенсаций не будет, и мы тихим и спокойным шагом пройдемся по прошлому, дабы вспомнить все самое важное в мире открытого софта.

 

Linux 3.19–4.3

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

Остановимся на самых важных:

  • Поддержка технологии MPX (Memory Protection Extensions), которая будет доступна в процессорах на ядре Intel Skylake и Goldmont (версия ядра 3.19). MPX позволяет реализовать защиту от срыва стека, передавая процессору сведения о допустимых границах области памяти для каждой ссылки на память. Технология не будет работать из коробки и потребует как минимум пересборки софта.
  • Драйвер AMD KFD, реализующий новый интерфейс для GPGPU-вычислений (ядро 3.19). Естественно, с полной поддержкой OpenCL.
  • Механизм наложения патчей «на живую», без перезагрузки системы (ядро 4.0). В своей реализации напоминает старые ядерные руткиты: память ядра модифицируется напрямую, ссылка на одну функцию заменяется ссылкой на альтернативную реализацию в модуле ядра. Соответственно, работает только в отношении мелких патчей с исправлением безопасности без возможности модификации структур данных и базовых частей ядра.
  • Поддержка шифрования в файловой системе ext4 (ядро 4.1). Причем шифруется не вся ФС целиком, а только отдельные каталоги или даже файлы, а ключ шифрования задается во время монтирования ФС. В качестве алгоритмов используются AES-256-XTS для данных и AES-256-CBC для имен. Однако размер и права доступа на файлы остаются видимыми, что создает проблему в том случае, когда стоит задача не только скрыть данные, но и не позволить определить их тип.
  • Распределенный RAID 1 (ядро 4.1). Позволяет отзеркалировать данные по узлам кластера при помощи DLM (Distributed Lock Manager).
  • Драйвер PMEM, превращающий энергонезависимую память (NVM, non-volatile memory) в виртуальный диск (ядро 4.1). NVM намного быстрее (и дороже) SSD и обеспечивает производительность, близкую к оперативной памяти. Раньше ядро воспринимало такую память только как часть оперативной.
  • Поддержка виртуальных GPU (ядро 4.1). Решение позволяет закрепить часть критичных для обеспечения высокой производительности ресурсов реального GPU за каждым виртуальным окружением, не требуя при этом никаких модификаций окружения и позволяя использовать внутри ВМ обычные видеодрайверы. Технология разработана в Intel, поэтому пока поддерживает только их видеоадаптеры.
  • Поддержка стекового подключения модулей LSM (Linux Security Modules) (ядро 4.2). Позволяет подключать модули обеспечения безопасности один к другому для организации сложных конфигураций. Например, теперь можно подключить специализированные LSM-модули в качестве надстройки поверх SELinux, Smack, TOMOYO или AppArmor.
  • Драйвер AMDGPU (ядро 4.2). Отныне открытый и закрытый драйверы видеоадаптеров AMD будут использовать один и тот же ядерный модуль, реализующий базовую функциональность, тогда как Catalyst будет лишь надстройкой над этим модулем. Пользующиеся открытыми драйверами, однако, разницы не заметят.
  • Удаление драйвера ext3 (ядро 4.3). Отныне за монтирование ext3-разделов отвечает драйвер ext4.
  • Сборка по умолчанию с поддержкой IPv6 (ядро 4.3). Размер образа ядра увеличился на 270 Кбайт.
  • Поддержка виртуальных таблиц маршрутизации (VRF — Virtual Routing and Forwarding) (ядро 4.3). Теперь изолированные контейнеры могут использовать собственные таблицы маршрутизации.

Ну и немного скандалов, интриг, расследований. Под конец года сообщество разработчиков покинула Сара Шарп (Sarah Sharp), которая мало того что является разработчиком стека USB 3.0, так еще и входит в технический совет Linux Foundation. Причина: грубость и неуважение разработчиков друг к другу. Чуть позже вслед за ней ушел Мэтью Гарретт (Matthew Garrett), один из директоров Фонда свободного ПО и создатель метода запуска Linux на системах с UEFI Secure Boot (за который получил премию). Оба продолжат участвовать в разработке, но с сообществом решили не пересекаться.

Релиз Linux 4.1.15, под управлением которого работает терминатор, состоялся 15 декабря
Релиз Linux 4.1.15, под управлением которого работает терминатор, состоялся 15 декабря
 

Ubuntu 15.04, 15.10

За год Ubuntu обновился два раза. В обоих случаях — никаких кардинальных изменений интерфейса, дистрибутив остается на Unity 7, а все силы брошены на разработку Unity 8. Ubuntu 15.04 «Vivid Vervet» («Яркая верветка») увидел свет 23 апреля и, если не считать обновлений софта и багфиксов, включал в себя два наиболее значительных изменения: перевод дистрибутива с Upstart на systemd (с опциональной возможностью загрузки с Upstart) и новый инструмент командной строки Ubuntu Make. Последний позволяет в одну команду развернуть окружение разработки для разных языков и сред. Реализована поддержка Android, Go, Dart, окружений IDEA, PyCharm, WebStorm, RubyMine, PhpStorm и Eclipse. Для сравнения: полное окружение разработчика Android в Ubuntu стандартными средствами устанавливается в девять команд, с помощью Ubuntu Make — в одну.

Кроме того, подготовлены первые сборки двух новых вариантов дистрибутива: Snappy Ubuntu Core и Ubuntu MATE. Первый — это форк Ubuntu Core для умных устройств, систем домашней автоматизации, дронов и автономных роботов. Система формируется как единый образ, готовый для заливки на устройство, обновление происходит атомарно. Ubuntu MATE, в свою очередь, вариант Ubuntu с рабочим столом MATE — модернизированный GNOME 2 с классическим рабочим столом.

Ubuntu MATE собственной персоной
Ubuntu MATE собственной персоной

22 октября состоялся релиз Ubuntu 15.10 «Wily Werewolf» («Хитрый оборотень»). Это уже, скорее, инкрементальный релиз. На этот раз Unity подверглась небольшому тюнингу, включая поддержку перемещения пиктограмм с Dash на рабочий стол и управление списком результатов с клавиатуры. Unity 8, которая была запланирована на включение в релиз 16.04 (но уже не будет включена), предложена как ознакомительная версия. Доступны музыкальный проигрыватель Music player и почтовый клиент Dekko.

Unity 8 на ПК, планшетах и смартфонах
Unity 8 на ПК, планшетах и смартфонах

Новая версия базируется на ядре Linux 4.2 и включает в себя LibreOffice 5.0.2, Shotwell 0.22, Chromium 45, Rhythmbox 3.2.1 и другие приложения. Продолжена работа по более тесной интеграции дистрибутива с компонентами systemd. Steam Controller теперь работает из коробки, достаточно установить Steam и запустить его в полноэкранном режиме. Расширено количество платформ и сред разработки в Ubuntu Make.

 

Парад релизов *BSD

За год обновление получили все четыре BSD-системы, а команда NetBSD даже выпустила мажорный релиз, работа над которым продолжалась более двух лет. Как и обычно, изменений в BSD намного меньше, чем в Linux, а сами они носят не столь кардинальный характер, но здесь тоже есть на что посмотреть. Особенно в NetBSD, разработчики которой славятся смелостью идей и не колеблясь воплощают их в жизнь.

Начнем с FreeBSD 10.2. Релиз минорный — разработчики активно пилят 11-ю версию, поэтому изменения носят характер багфиксов и небольших доработок, включая обновления драйверов. Из наиболее интересных изменений можно отметить расширение поддержки ARM: добавлена поддержка систем Exynos 5420 Octa и плат Toradex Apalis i.MX6, также появился драйвер bcm2835_cpufreq для управления частотой на Raspberry Pi, реализованы средства корректного завершения работы на платах BeagleBone Black. Гипервизор bhyve теперь поддерживает аппаратные расширения SVM и AMD-V процессоров AMD, для виртуальных дисков реализована поддержка команды DSM TRIM. Обновлены многие драйверы.

NetBSD 7.0 получилась куда более интересной. Это не просто мажорный релиз, это первая версия системы, в которую включили реализацию механизма исполнения Lua-скриптов в ядре. Теперь любой желающий с минимальными знаниями в программировании может заскриптовать ядро, расширив его функциональность или добавив новую. Фактически на Lua теперь можно писать даже драйверы! Зачем это нужно? Для быстрого прототипирования и проверки идей.

Виртуальная машина Lua в ядре NetBSD
Виртуальная машина Lua в ядре NetBSD

Из других важных нововведений можно отметить поддержку мультиядерных процессоров ARM, драйверы DRM/KMS для GPU Intel и Radeon, реализацию распараллеленного USB-стека на многопроцессорных системах, множество улучшений файрвола NPF и демон blacklistd, защищающий от брутфорса SSH, named и ftpd. Последний особенно хорош тем, что интегрируется с пакетным фильтром, так что не создает лишней нагрузки на процессор. Сборки NetBSD 7.0 доступны для 58 архитектур, включая 16 различных семейств CPU. В новой версии появилась поддержка новых платформ ARM:

  • Raspberry Pi 2;
  • ODROID-C1;
  • BeagleBoard, BeagleBone, BeagleBone Black;
  • MiraBox;
  • Allwinner A20, A31: CubieBoard2, CubieTruck, Banana Pi и другие;
  • Freescale i.MX50, i.MX51: Kobo Touch, Netwalker;
  • Xilinx Zynq: Parallella, ZedBoard.

OpenBSD за год обновилась два раза: версия 5.7 и юбилейная 5.8, приуроченная к 20-летию проекта. Как и обычно, основное внимание разработчики уделили безопасности: режим защиты памяти W^X для адресного пространства ядра, защита от перекрытия областей памяти в memcpy, генератор arc4random для системных вызовов семейства rand(), сброс генератора случайных чисел при выходе из сна, полный перевод базовой системы на формат PIE, безальтернативное использование алгоритма blowfish в утилите passwd, использование SHA-512 при генерации начальных номеров TCP, удаление кода поддержки procfs и модулей ядра, новая утилита file с разделением привилегий и изоляцией системных вызовов, усиленная проверка заголовков исполняемых файлов ELF.

Кроме того, в версии 5.7 появился драйвер xhci с реализацией одноименной спецификации USB 3.0. Из базовой поставки удалены nginx и sendmail, которые можно установить из портов либо использовать OpenSMTPD и HTTP-сервер от команды OpenBSD. В 5.8 утилиту sudo заменили на doas (первая устарела и была излишне сложна) и начали работу над технологией изоляции tame, разделяющей все системные вызовы на группы, которые пользователь может разрешить приложению.

Кроме того, разработчики начали работу над собственным гипервизором VMM. В результате должно получиться некое подобие KVM из Linux, но с некоторыми отличиями в виде поддержки архитектуры i386, задействования механизма теневых страниц (shadow paging), вложенной виртуализации и устаревшей периферии. Ожидается, что под управлением VMM можно будет запустить любую ОС с поддержкой драйверов virtio. Другими словами: «работает под KVM, заработает и у нас».

Обновилась и DragonFly BSD (версия 4.4). В частности, были обновлены драйверы radeon и i915, переработана система локали, ну и по традиции обновились файловые системы HAMMER и HAMMER 2. Последняя примечательна высокой производительностью и поддержкой таких возможностей, как распределение данных на несколько хостов в режиме multi-master, снапшоты с возможностью их отдельного монтирования (причем даже на запись), квоты для каталогов и сжатие данных.

 

Браузеры

Из других событий в первую очередь хотелось бы отметить появление нового браузера Vivaldi, созданного под руководством бывшего главы Opera Software. Vivaldi примечателен двумя вещами. Во-первых, при его развитии основное внимание будет уделено функциональности и кастомизируемости, то есть тем самым чертам, за которые любили Opera (ныне превратившуюся в очередной клон Google Chrome). Во-вторых, Vivaldi, базируясь на Chromium, фактически использует только его движок, тогда как весь интерфейс написан с использованием веб-технологий: HTML, JavaScript, CSS. Это позволяет тонко настроить и кастомизировать браузер любому, кто хоть чуть-чуть понимает, что такое HTML-теги. Представленный в январе браузер уже к ноябрю добрался до бета-версии.

Vivaldi с открытой панелью заметок
Vivaldi с открытой панелью заметок

А раз уж мы заговорили о браузерах, то стоит отметить и то, что Chrome/Chromium и Firefox обновились за год пять раз каждый. Причем если изменения в самих браузерах не так уж и интересны (косметические поправки в интерфейсе, новые API, новые блобы), то связанные с ними события более чем. Например, в конце года Google объявила о прекращении поддержки 32-разрядных Linux-систем. Так что все владельцы стареньких нетбуков либо идут лесом, либо пересаживаются на Firefox.

Отметились и мозиловцы. Кроме того что многопоточный движок Servo допилили до приемлемого состояния, они также решили отказаться от XUL (XML User Interface Language), языка, на котором написан интерфейс браузера и который в свое время стал его отличительной чертой и особенностью, позволяющей расширениям модифицировать интерфейс. Частично это связано с тем, что XUL несовместим с Servo, частично с желанием разгрузить браузер от лишнего кода. Самое же интересное в том, что XUL решено заменить на HTML, по сути так же, как это сделано в Vivaldi.

Также представители Mozilla заявили, что добавленный в Firefox 35 механизм защиты от отслеживания (активируется через установку переменной privacy.trackingprotection.enabled в about:config) позволил сократить время загрузки страниц на 44%. В реализации механизма задействован список disconnect.me, в который внесены сайты, отслеживающие пользователя через iFrame- и JavaScript-вставки. Кстати, данный механизм активирован по умолчанию в режиме «инкогнито» начиная с Firefox 42, выпущенного третьего ноября.

 

Выводы

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

С наступающим!

Новости одной строкой

12.03 — хостинг открытых проектов Google Code официально закрыт
25.03 — релиз GNOME 3.16
28.04 — релиз nginx 1.9.0
07.07 — появился порт Docker для FreeBSD
01.08 — поддержка FreeBSD 8 прекращена
25.08 — релиз окружения рабочего стола KDE Plasma 5.4
28.09 — создатели Vagrant представили инструмент деплоя приложений Otto
20.10 — релиз SteamOS 2
31.10 — релиз GNU Hurd 0.7
02.11 — релиз окружения рабочего стола Cinnamon 2.8
03.11 — представлен Neovim, полностью переработанный вариант редактора Vim
12.11 — в продаже появились первые игровые консоли на базе SteamOS
18.11 — релиз сетевого анализатора Wireshark 2.0
23.11 — представлена NodeOS, операционная система на базе ядра Linux с окружением исполнения на базе Node.js
05.12 — Microsoft заявила об открытии JavaScript-движка браузера Edge

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии