Pull to refresh

Сегодняшний мир — это amd64, armv7 и aarch64. Всё остальное мертво, Джим

Reading time 3 min
Views 76K
Original author: Miod Vallat
Вашему вниманию предлагается перевод прощального письма Миода Валлата, разработчика OpenBSD в течение 15+ лет, покинувшего проект неделю назад. Письмо, изначально адресованное лично некоему Джиму, рассказывает историю о том, куда порой приводят благие намерения, и вызвало резонанс среди пользователей Reddit и HackerNews. Учтите — высказанное мнение субъективно, и, по словам самого автора, "вы имеете право с ним не согласиться".

Сегодняшний мир — это amd64 (по-другому x64, или x86-64), armv7 и, в скором будущем, aarch64 (64-битный ARMv8). Всё остальное мертво, Джим. Никто не вкладывает достаточно денег и мыслительного труда в прочие архитектуры. В действительности, лишь небольшая часть людей в курсе существования остальной части экосистемы (mips, power8, ...), и все равно никому нет до них дела.

Поддержка устаревшей платформы на плаву — это весело, поскольку это напоминает тебе о 90-ых, когда существовал большой выбор «железных» платформ, с приблизительно одинаковым соотношением цены/мощности. В конце концов, дешевые PC убили практически всю конкуренцию, а рынок смартфонов дал ARM нездоровую долю рынка в мире встраиваемых систем.

Затем, спустя некоторое время, веселье подходит к концу, поскольку никто не пишет код, держа в уме твою платформу, — ведь она не считается достаточно мощной, а современные компиляторы больше ее не поддерживают (или они генерируют для нее нерабочий код, что на деле еще хуже). У твоей платформы есть аппаратные границы в несколько сотен MB физической памяти? Тебе не удастся запустить на ней веб-браузер или даже программу для просмотра PDF. Кто-нибудь все еще запускает testsuite из последней версии gcc на твоей платформе? Нет? Прости, чувак, но вот тебе «никель» (5 центов), сходи купи себе уже компьютер получше

На деле, поддержка платформы в жизнеспособном состоянии — это настоящая командная работа. Она требует серьезных обязательств от проектов, являющихся «строительными блоками»: не слишком сильно «забагованного» тулчейна (as/ld/gcc), поддержки в флагманских проектах (emacs, python, X11, mozilla, libreoffice...), а также аккуратной и актуальной документации, доступной бесплатно.

Ни один из перечисленных пунктов не является истиной для всех платформ, исключая amd64, armv7 и aarch64.

Из-за всего этого стремление поддерживать «жизнь» какой-либо другой платформы — это на самом деле попытка плыть против течения.

Взгляни на все проекты всех бесплатных операционных систем: они реально поддерживают только amd64, armv7 и aarch64. Вот так вот! Иногда они притворяются, что поддерживают несколько экспериментальных платформ; или другие платформы, которые не тестировались годами и кросс-компилируются только потому, что они больше не self-hosted.

Конечно, ты все еще можешь встретить нескольких безумцев, готовых выполнить невероятный объем работы для предотвращения упадка их любимой платформы и умело создающих впечатление того, что эти платформы — все еще «пассажиры первого класса». Но эти ребята — те же самые люди, что были и десять лет назад. Рано или поздно, они устают и сдаются. Как, например, я.

Самое худшее во всем этом — это когда ты оглядываешься назад и понимаешь, что после всех этих лет, свободное ПО проиграло. Компаниям, занимающимся созданием не-свободного ПО, хватило достаточно ума и смекалки, чтобы поймать «импульс» разработчиков свободного ПО, направленный на работу над встраиваемыми платформами, и использовать его для того, чтобы максимально сократить собственные расходы на разработку ПО, получив при этом еще и позитивную реакцию прессы.

Таким образом, сегодня мы строим одноразовые системы, не учитывающие того, что ждет нас в будущем — поскольку, когда придет время, мы просто возьмем очередной модный SoC. Нет необходимости иметь всё то, что формирует архитектуру:
  • видение будущего, позволяющее различным поколениям аппаратного обеспечения использовать одно и то же «железо» и софт;
  • дизайн, позволяющий сегодняшнему ПО запускаться на «железе» завтрашнего дня до тех пор, пока изменения не слишком радикальны;
  • целостность в выборе шин, процессоров, отображений адресного пространства (consistency in choices of busses, key chips, address maps);
  • настоящего firmware, а не чего-то абсолютно отвратительного вроде EFI, который не может соревноваться даже со старым Open Firmware (IEEE 1275), которому уже больше 20 лет;
  • надежные перечислители шин (reliably enumerable busses).

Нет, сэр, мы возьмем нынешний распоследний SoC, подключим несколько дополнительных устройств туда, где сможем найти дыру в адресном пространстве, засунем туда кастрированный u-boot и стабильное ядро Linux, — получите и распишитесь, ваша "платформа" готова. А люди и рады.

Я потратил 20 лет своей жизни, пытаясь продвигать правильный взгляд на свободное программное обеспечение, его ценности и его этику; сражался за него, всегда был активно вовлечен, старался показывать другим пример, и сегодня я чувствую так, словно все мои усилия были лишь пустой тратой времени, и ничего из того, что я сделал, не принесло пользы.

С этим трудно смириться, но лучше сдаться сейчас, чем продолжать попытки и только еще больше расстраиваться.
Tags:
Hubs:
+65
Comments 128
Comments Comments 128

Articles