Из Linux уберут поддержку десятков ARM-чипов. Что происходит?

от автора

Привет, Хабр! На связи Виктор Сергеев, редактор «МТС Диджитал». Сегодня обсудим «большую чистку» ядра Linux.

Для начала стоит избавиться от поддержки десятков устаревших ARM-процессоров. Многие чипы почти не используются, смысла в их поддержке в ядре Linux все меньше. Но как их убрать, чтобы изменения прошли безболезненно для пользователей? У одного из самых известных контрибьюторов Linux Арндта Бергмана есть план. Подробности — под катом.

Что за план

Бергман предлагает устроить «большую чистку» для ядра Linux и компиляторов из набора GCC (GNU Compiler Collection) — это набор компиляторов для языков программирования в рамках проекта GNU. GCC — открытое ПО. Оно распространяется фондом свободного программного обеспечения на условиях GNU GPL и GNU LGPL.

Если коротко, сначала Бергман хочет убрать поддержку ARMv3 (семейство ARM6) и ARMv4 (ARM 11). Эти чипы появились в конце XX века и давно потеряли актуальность. Некоторые процессоры на базе архитектур ARMv3 и ARMv4 еще изредка применяются, например, в StrongARM и FA526. Но это уже отголоски прошлого.

В случае ARMv4 Бергман считает, что на первом этапе поддержку нужно вырезать из компиляторов и только потом, через несколько лет, — из ядра Linux. Еще от одной архитектуры, ARMv7-M, планируют избавиться в 2027 году. Ее развитие прекращено в 2017-ом.

В 2023 году эксперты проводили анализ ядра и подсчитывали, насколько его можно облегчить, если убрать поддержку устаревших технологий. Выяснилось, что на 154 тыс. строк программного кода. Бергман, к сожалению, аналогичные подсчеты не проводил, но, вероятно, объем «чисток» примерно такой же.

Автор проекта рекомендует не вводить изменения сразу, а избавляться от устаревших технологий планомерно — от совсем не актуальных в настоящее время до иногда используемых.

Какие архитектуры удалят

В плане содержится подробная информация об архитектурах, чипах и расширениях, которые Бергман предлагает удалить:

  • ARMv3 — ее поддержка уже убрана из GCC 9;

  • ARMv4 — от архитектуры отказались в Debian 5.0. По плану поддержку ARMv4 прекратят сначала в GCC, а через несколько лет — в ядре;

  • ARMv4T — сейчас встречается шесть семейств SoC с ядрами ARM720T, ARM920T и ARM922T. Они распространены больше, чем представители вышеупомянутой архитектуры. Бергман предлагает избавиться от поддержки технологии в ядре, но не раньше, чем от ARMv5;

  • ARMv5 — архитектура применяется примерно на трети всех поддерживаемых в ядре платформ. Казалось бы, все хорошо, но нет: почти все они близки к окончанию жизненного цикла. Из-за отсутствия FPU и атомарных операций сохранять поддержку в Debian, например, все сложнее. Так что, возможно, скоро порт Debian для ARMv5 будет переведен в число неофициальных;

  • ARMv6 — планируется избавиться только от начальных поколений чипов этой архитектуры, включая ARM1136r0p (NXP i.MX31) и OMAP24xx (Nokia N8xx);

  • ARMv6K — используется в процессорах ARM1176 (Raspberry Pi 1, AST2500) и ARM1136r1;

  • ARMv7-M — еще используется в микроконтроллерах на базе Cortex-M3/M4/M7. Это последние из могикан, то есть поддерживаются в ядре чипами без MMU. Бергман предлагает удалить поддержку ARMv7-M в 2027 году, спустя 10 лет после остановки разработки чипов с этой архитектурой;

  • iWMMXt — в ядре Linux уже нет некоторых чипов на базе этой архитектуры, включая CPU ARMv7 PJ4 (MMP2, Berlin). Поддержка iWMMXt прекращена в Clang, ее предлагают удалить и из GCC;

  • BE32 (big endian ARMv5) — редкая архитектура, на базе которой построен только SoC Intel IXP4xx. Автор предлагает убрать поддержку технологии как из GCC, так и из ядра;

  • BE8 (big-endian ARMv7) — во многих драйверах есть проблемы, поэтому ее тоже предлагают вырезать. Тестирование не ведется, да и информации об устройствах, которые работают на базе чипов, нет.

План пока обсуждается, финального решения нет. Автор предлагает не затягивать с ним, а начать работу по очистке ядра Linux уже с версии 6.12. Стабильный дистрибутив запланирован на декабрь 2024 года.

Не только ARM

Разработчики Linux избавляются от наследия прошлого не только в виде прекращения поддержки старых чипов на базе ARM. То же самое они делают и в отношении устаревших x86-процессоров. В самом конце прошлого года из Linux 6.7 удалили код, отвечавший за поддержку микросхем Intel Itanium на базе архитектуры IA-64. Инициатором той чистки был сам Линус Торвальдс. Еще в 2021 году он назвал эти чипы «мертвыми».

А в 2022 году он же предложил удалить и процессоры Intel семейства i486. По словам Торвальдса, технология безнадежно устарела, поэтому из ядра Linux нужно убрать весь связанный с ними код. Ну а поддержку i386 убрали еще в конце 2012, так что i486 продержались достаточно долго.

А что вы думаете о «большой чистке Бергмана» и ее возможных последствиях?

Еще можно почитать:


ссылка на оригинал статьи https://habr.com/ru/articles/834148/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *