Создание единого Linux-ядра для всех ARM-процессоров приближается

В репозитарии исходного кода для ядра Linux появился одобренный лично Линусом Торвальдсом, изобретателем и главой Linux-движения, пакет для создания универсального ядра для большинства существующих аппаратных платформ на базе архитектуры ARM. Главным разработчиком нового универсального ядра Linux 3.7 выступает Олаф Йохансон (Olof Johansson), который сообщил, что уже сейчас тестовая сборка ядра поддерживает такие платформы, как HighBank, VeXpress, MVebu, SoCFPGA и PicoXCell. В ближайшем будущем разработчики обещают реализовать поддержку и других ARM-платформ.
В отличие от мира x86-архитектуры, на которой построены практически все современные ПК и которая имеет крайне высокий уровень стандартизации и документации, архитектура ARM представляет собой настоящее смешение красок. Большинство ARM-платформ не связаны между собой практически ничем, кроме общей системы процессорных инструкций. Практически каждый новый чип создается по собственному проекту, наглядно показывая, чем может обернуться дешевая технология разработки. Подобная фрагментация ARM-платформы вынуждает программистов создавать новые варианты ядра под каждое новое устройство и каждый новый гибридный чип типа SoC (System-on-Chip – «система на чипе»).
На этот раз, похоже, разработчикам открытой системы Linux удалось вплотную приблизиться к созданию универсального Linux-ядра для ARM-процессоров и оборудования на их базе. Внимание к архитектуре ARM в грядущей версии ядра Linux 3.7 является отражением внимания разработчиков к ARM. Именно эта архитектура сейчас становится главным выбором разработчиков для любой техники, работающей от батарей, включая смартфоны и планшеты. Благодаря низкому энергопотреблению и возможности плотной упаковки ARM-процессоры уже находят свой путь к серверному рынку. В частности, большую работу в этом направлении ведут авторы дистрибутива Ubuntu Linux, компания Hewlett-Packard, как производитель ПК и серверов, а также сами производители чипов, включая Applied Micro, Marvell и Calxeda.
В ядре Linux 3.7 планируются такие новинки, как поддержка 64-битных ARM-процессоров и гипервизор Xen для процессоров ARM. Интересно отметить, что многоплатформенное ARM-ядро анонсировано после того, как Торвальдс в прошлом году обрушился с критикой на ARM-производителей за фрагментацию рынка и вынужденное раздувание ядра для поддержки всех этих нестандартизованных платформ. Тогда Торвальдс обвинил ARM-производителей в том, что они называют свои устройства в совершенно маниакальной манере, меняют имена файлов по своему усмотрению и применяют собственные неудобочитаемые наименования в коде, специфичном для их чипов «просто чтобы разозлить тех, кто попытается включить эту ерунду в общий код».
Сообщество ARM-производителей откликнулось на критику Торвальдса. Они признали, что из-за фрагментации каждый новый релиз ядра Linux получает около 70 000 новых строк кода для ARM вместо всего 5000 для платформы x86. Сам же торвальдс отмечает, что при получении кода от четырех ключевых участников альянса Linaro (ARM, Freescale, Samsung и Texas Instruments) изменения встречаются в одних и тех же файлах, что явно указывает на проблемы. По словам того же Торвальдса, кому-то в ARM-сообществе надо срочно выйти и призвать остальных к прекращению нынешнего бездумного подхода – надо перестать переименовывать драйверы и платы, по крайней мере, без острой необходимости.
С включением нового пакета с компонентами ядра от Йохансона одна и та же сборка ядра Linux сможет поддерживать практически все ARM-устройства. В частности, разработчики обещают поддержку таких устройств, как встроенные интегрированные системы, накопители, цифровые камеры, медицинская техника и новые серверы HP ProLiant SL6500 на базе ARM-процессоров от Calexda.