В ядре Linux 3.7 будет унифицирована и значительно расширена поддержка ARM-платформ
В будущий выпуск ядра Linux будет включено несколько важных изменений, связанных с поддержкой архитектуры ARM:
Интегрированы наработки по унификации кода поддержки архитектуры ARM и обеспечению формирования многоплатформенных ARM-сборок. Если ранее требовалось собирать отдельный вариант ядра для каждого типа SoC, то начиная с выпуска 3.7 появится возможность собрать одно ядро, которое будет содержать поддержку различных ARM-платформ.
В первое время унифицированная сборка сможет работать на платформах 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. Представленный для интеграции в ядро код основан на использовании аппаратных расширений для обеспечения виртуализации, поддерживаемых архитектурой ARMv7. Особенностью реализации Xen для ARMv7 является отсутствие разделения в поддержке запуска гостевых систем в режиме паравиртуализации (PV) и аппаратной виртуализации (HVM). Вместо этого используется один комбинированный режим запуска гостевых систем, напоминающий запуск PV поверх HVM без необходимости эмуляции оборудования при помощи Qemu. Гостевые системы при этом всегда запускаются в режиме полной виртуализации, но для доступа к сетевым и блочным устройствам должны использовать специальные паравиртуальные драйверы (т.е. для гостевых окружений не требуется модификация ядра системы, но необходимо наличие нескольких драйверов).
Из предложенных для включения в ядро 3.7 улучшений, связанных с поддержкой процессоров на базе иных архитектур, можно отметить:
Поддержка расширенных возможностей процессоров SPARC-T4 (Niagara 4), используемых на новых моделях серверов T-серии от компании Oracle. Процессоры SPARC-T4 включают в себя 8 ядер, параллельно обрабатывающих по 8 потоков на каждое ядро, для системы такой процессор выглядит как 64 логических CPU. Из задействованных в представленных патчах особенностей SPARC-T4 отмечается поддержка дополнительных событий профилирования, использование инструкции для ускорения шифрования (sha1, sha256, sha512, md5, crc32c, AES, DES, CAMELLIA, Kasumi) и оптимизированный вариант функции memcpy;
Поддержка систем на базе третьего поколения многоядерных MIPS64-совместимых процессоров Loongson, разработанных Академией наук Китая совместно с Институтом компьютерных технологий Китая;
Поддержка набора инструкций SMAP (Supervisor Mode Access Prevention), реализованного в процессорах Intel на базе микроархитектуры Haswell. Задействование SMAP в ядре позволяет блокировать доступ к данным в пространстве пользователя из привилегированного кода, выполняемого в пространстве ядра (по аналогии с тем, как добавленная в ядре 3.0 поддержка SMEP не позволяет переходить из режима ядра к выполнению кода, находящегося в пользовательских областях). При обеспечении оборудованием поддержки инструкций SMAP, представленные средства защиты будут включаться автоматически, что существенно усложнит эксплуатацию уязвимостей в ядре, вызванных такими ошибками, как разыменование NULL-указателя.