Линус Торвальдс категорически высказался против предлагаемой поддержки режима big‑endian для архитектуры RISC‑V в ядре Linux. Всё началось с вопроса в рассылке о том, смогут ли патчи для RISC‑V BE попасть в текущий цикл разработки ядра:

О господи. Кто‑то всерьёз занимается поддержкой BE в 2025 году?

ЗАЧЕМ?

Серьёзно, это звучит просто ТУПО. Есть какая‑то реальная причина для этого, или это снова история в стиле «RISC‑V используется в академических курсах по проектированию, и люди хотят заниматься порядком байтов из академического интереса»?

Потому что я был бы более чем счастлив просто провести черту и сказать: 'Новые проблемы с порядком байтов — это чья‑то ЧУЖАЯ проблема', и сказать людям перестать валять дурака.

Давайте не будем усложнять вещи без веской причины. И у нас НЕТ причин добавлять новый порядок байтов.

RISC‑V и так уже достаточно запутанная архитектура с миллионами глупых проблем в конфигурации. Не делайте всё ещё хуже.

Лучше посоветуйте этим людям сходить к психотерапевту. Это будет ГОРАЗДО продуктивнее.

Аргументы Линуса выглядят вполне обоснованными.

Затем Линус погуглил информацию и ещё больше разошёлся:

Окей, я только что погуглил это, и я принял решение:

МЫ НЕ БУДЕМ ПРЕВЕНТИВНО ПОДДЕРЖИВАТЬ BIG‑ENDIAN НА RISC‑V.

Задокументированное 'обоснование' этого безумия слишком глупо для слов, но поскольку riscv.org всё же выразил это словами, я просто процитирую эти слова здесь:

«Всё ещё существуют приложения, где важен способ хранения данных, например протоколы, передающие данные через Интернет с полями big‑endian. Поэтому когда little‑endian системе нужно прочитать или изменить сетевой пакет, ей приходится менять big‑endian значения на little‑endian и обратно — процесс, который может занять до 10–20 инструкций на платформе RISC‑V без расширения Zbb»

Другими словами, это предполагает, что RISC‑V добавит режим big‑endian из‑за

(a) интернет‑протоколов — где перестановка байтов не является проблемой

(b) использования «некоторых реализаций RISC‑V, которые не поддерживают существующее расширение Zbb» в качестве оправдания.

Это просто безумие. Во‑первых, даже если бы перестановка байтов была реально затратной для сетей — а это не так, ведь реальные затраты обычно связаны с подсистемами памяти — просто реализуйте чёртово расширение Zbb.

Не говорите «мы слишком некомпетентны, чтобы реализовать Zbb, поэтому мы просим чтобы ВСЕ ОСТАЛЬНЫЕ почувствовали боль от гораздо худшего решения и ещё больше фрагментируем RISC‑V».

Я надеюсь, что это какая‑то первоапрельская шутка, но эта страница датирована «10 марта 2025 года». Близко, но недостаточно близко.

Это тот тип глупых вещей, который просто выставляют RISC‑V в плохом свете.

Бен[автор коммита] — я боюсь, что на этой странице есть «доп материалы», указывающие на codethink.

Я вижу, что частично CONFIG_CPU_BIG_ENDIAN уже попал внутрь, но это должно прекратиться.

Главное ядро для основной разработки. Не для случайных экспериментов, которые делают мир хуже.

И да, мы open source, и это означает, что более чем приветствуется попытаться доказать, что я неправ.

Если окажется, что BE RISC‑V станет реальной вещью, которая релевантна и действительно найдёт место в экосистеме RISC‑V, тогда конечно мы должны поддерживать это в этот момент в главном ядре.

Но я действительно думаю, что это на самом деле делает RISC‑V только хуже, и что мы не должны активно помогать фрагментации.

Так что не ждите, что RISC‑V BE появится в главном ядре Linux.

Only registered users can participate in poll. Log in, please.
Нужна ли поддержка LE и BE вариантов архитектур в ядре?
21.06%Одного варианта(LE или BE) достаточно155
8.7%Нужны оба, есть реальные кейсы использования64
37.23%Что такое Big Endian?274
33.02%Только LE где это возможно243
736 users voted. 179 users abstained.