До настоящего времени для каждой ARM-платформы на каждом отдельном процессоре (SoC) приходилось создавать отдельный билд Linux. Это была главная сложность портирования Linux на мобильные устройства, которые работают на ARM.

В мире ARM-процессоров совершенно нет унификации. Все SoC сильно отличаются друг от друга на уровне аппаратной конфигурации, поэтому раньше нельзя было взять Linux с одной ARM-системы и поставить на другую. Хуже того, даже разные устройства на одном ARM могут по разному использовать GPIO, и если на прошлом устройстве этот GPIO включал светодиод питания, то сейчас он может отключать порт USB. Все эти изменения приходится вносить в ядро ОС, причём изменения могут быть взаимоисключающими, то есть возникают конфликты. Как точно выразился Линус Торвальдс, «вся эта мутотень с ARM — большой хреновый геморрой».

К счастью, ситуация немного изменится с выходом следующей версии Linux 3.7 уже через пару месяцев. Новая версия ядра будет изначально поддерживать несколько SoC-платформ на процессорах ARM. Это не только сразу сделает возможным использование нового ядра на многочисленных ARM-процессорах, но и вообще приблизит платформу ARM по уровню развитости инфраструктуры к конкурентной платформе x86.

«Это довольно существенная ветка, — говорит автор соответствующего коммита Олоф Йоханссон (Olof Johansson). — Мы впервые представляем мультиплатформенную поддержку для ARM, и когда эта (и следующая) ветка сольётся с основной, станет возможным сделать одно ядро с поддержкой highbank, vexpress, mvebu, socfpga и picoxcell. Дополнительные платформы будут добавлены к следующим релизам».

Изменения в соответствующую ветку Linux 3.7 внесены 2 октября 2012 года. Ниже приведён фрагмент из письма Линуса Торвальдса с перечнем изменённых файлов.



Оставить мнение