В ядре Linux 3.7 будет унифицирована и значительно расширена поддержка ARM-платформ
6 октября 2012 года
В будущий выпуск ядра 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-указателя.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.