Линус Торвальдс представил первый кандидат в релизы ядра Linux 3.7, который ознаменовал закрытие окна по приёму новшеств в ветку 3.7.
Среди принятых в ветку 3.7 улучшений, можно отметить:
Унификация кода поддержки архитектуры ARM и обеспечение возможности формирования многоплатформенных ARM-сборок. Если ранее требовалось собирать отдельный вариант ядра для каждого типа SoC, то начиная с выпуска 3.7 появится возможность собрать одно ядро, которое будет содержать поддержку различных ARM-платформ. Унифицированная сборка ядра 3.7 сможет работать на платформах Calxeda Higbank (серверы HP Moonshot), Versatile Express (эталонная плата, поддерживается эмулятором QEMU), Marvell ARMADA (от мини-серверов до телеприставок), Altera SoC FPGA и Picohip picoXcell (мини-базовые станции для офисов). В будущих выпусках ядра число поддерживаемых платформ будет расширено. Указанное нововведение существенно упростит жизнь разработчикам дистрибутивов для ARM-систем, которым теперь не придётся формировать отдельный загрузочный образ для каждой ARM-платформы.
Поддержка 64-разрядной архитектуры AArch64 (ARM64), реализованной в процессорах, поддерживающих набор команд ARMv8. 64-рязрядная архитектура AArch64 включает в себя новый набор команд A64, примечательный расширением числа регистров, новыми командами для вычислений с плавающей запятой (FP) и новыми векторными SIMD-инструкциями NEON, такими как инструкции для ускорения работы алгоритмов шифрования AES и SHA-1/SHA-256. Реализация AArch64 для Linux поддерживает расширенную 39-разрядную адресацию памяти для ядра и пользовательского уровня и предоставляет режим совместимости, позволяющий выполнять 32-битные программы, собранные для архитектуры ARMv7 (ARM EABI). В настоящее время устройства на базе ARMv8 пока находятся на стадии тестирования прототипов, поступление в продажу первых ARMv8-систем ожидается в следующем году;
Поддержка механизмов виртуализации Xen для систем на базе процессоров ARM Cortex A15. Таким образом Xen стал первым гипервизором, поддерживаемым в Linux на платформе ARM. Представленный для интеграции в ядро код основан на использовании аппаратных расширений для обеспечения виртуализации, поддерживаемых архитектурой ARMv7. Особенностью реализации Xen для ARMv7 является отсутствие разделения в поддержке запуска гостевых систем в режиме паравиртуализации (PV) и аппаратной виртуализации (HVM). Вместо этого используется один комбинированный режим запуска гостевых систем, напоминающий запуск PV поверх HVM без необходимости эмуляции оборудования при помощи Qemu. Гостевые системы при этом всегда запускаются в режиме полной виртуализации, но для доступа к сетевым и блочным устройствам должны использовать специальные паравиртуальные драйверы (т.е. для гостевых окружений не требуется модификация ядра системы, но необходимо наличие нескольких драйверов).
Добавлена рабочая реализация пространств имён для идентификаторов пользователей (user namespaces). Указанная возможность позволяет сформировать в контейнерах собственные наборы идентификаторов групп и пользователей, а также связанные с ними привилегии (например, в каждом контейнере может быть свой root);
Продолжение работы по рефакторингу заголовочных файлов с целью разделения по разным иерархиям директорий заголовочных файлов для UAPI (Userspace API) и KAPI (Kernel API). Подобное разделение позволит более явно выделить необходимые для использования в пространстве пользователя заголовочные файлы, которые теперь перемещены в include/uapi и arch/$(ARCH)/include/uapi;
В реализацию файловой системы JFS добавлена поддержка команды TRIM (discard), которая позволит увеличить производительность при работе с SSD-накопителями и повысить их срок службы;
Поддержка загрузки модулей ядра с проверкой корректности их цифровой подписи.
Поддержка набора инструкций SMAP (Supervisor Mode Access Prevention), реализованного в процессорах Intel на базе микроархитектуры Haswell. Задействование SMAP в ядре позволяет блокировать доступ к данным в пространстве пользователя из привилегированного кода, выполняемого в пространстве ядра (по аналогии с тем, как добавленная в ядре 3.0 поддержка SMEP не позволяет переходить из режима ядра к выполнению кода, находящегося в пользовательских областях). При обеспечении оборудованием поддержки инструкций SMAP, представленные средства защиты будут включаться автоматически, что существенно усложнит эксплуатацию уязвимостей в ядре, вызванных такими ошибками, как разыменование NULL-указателя;
В утилиту perf добавлена команда trace ("perf trace PID") по выполняемым функциям напоминающая утилиту strace, но дополнительно позволяющая отображать события не связанные с системными вызовами;
Для приложений, работающих на системах на базе архитектуры s/390, добавлена возможность использования аппаратной транзакционной памяти System zEC12;
В реализации файловой системы CIFS обеспечена поддержка протокола SMB2.1. Статус поддержки SMB2 на уровне ядра переведен из разряда "поломанный" в "экпериментальный";
В соответствии с пожеланиями разработчиков systemd, расширенные атрибуты для управляющих групп (control groups) могут задаваться через создание иерархии директорий. При использовании неиерархических групп управления во вложенных элементах иерархических групп будет выдаваться ошибка;
Поддержка протокола туннелирования GRE (Generic Routing Encapsulation) для IPv6;
Поддержка трансляции адресов (NAT) для IPv6. IPv6 NAT позволяет осуществить подмену адресной информации в пакетах IPv6 в соответствии с заданными правилами трансляции, примерно так как это делается в классическом трансляторе адресов для IPv4. Для реализации поддержки IPv6 NAT, существующий в ядре код netfilter был переработан с целью разделения модуля NAT на два независимых компонента, один из которых включает в себя ядро подсистемы NAT, а второй реализует поддержку того или иного протокола третьего уровня;
Поддержка режима быстрого открытия TCP-соединений (TFO - TCP Fast Open) на стороне сервера. Режим TFO позволяющет сократить число шагов установки соединения за счёт комбинирования в один запрос первого и второго шагов классического 3-этапного процесса согласования соединения, и давая возможность отправки данных на начальном этапе установки соединения. В ядре 3.6 поддержка TFO была ограничена возможностью управления только на стороне клиента в процессе создания соединения. Теперь TFO может быть активирован и по инициативе серверной стороны;
Добавление модуля IMA (Integrity Measurement Architecture) для обеспечения хранения и проверки базы хэшей для проверки целостности файлов и связанных с ними метаданных. Данные для контроля целостности сохраняются как атрибуты xattr;
Поддержка протокола VXLAN для туннелированя виртуализированных сетей второго уровоня поверх сетей третьего уровня. Указанный протокол позволяет обойти ограничение на 4096 VLAN-ов (в VXLAN используются 24-разрядные идентификаторы);
Поддержка SoC Broadcom BCM2835, Raspberry Pi и Micrel KS8695;
Поддержка игровых пультов Sony PS3 BD;
Поддержка сетевых контроллеров Silicom Bypass, Freescale XGMAC MDIO и Microchip MRF24J40;
Поддержка USB-контроллеров: Broadcom BCM63xx, Marvell USB 3.0 PHY, ZTE USB-to-serial переходников и плат Cambridge Electronic Design 1401 USB;
Источник »
Главная ссылка к новости »
