From: Sergey Matveev
Date: 2026-05-14 10:29:26Z
*** kmeaw [2026-05-14 09:58]:
>доработан linux(4)
Лично мне это вообще не играет роли.
>пересборана базовая система с помощью lcc и clang из ОС Эльбрус
То есть, всё равно без закрытых несвободных компиляторов нельзя будет
собрать? Или речь про то, что начальную bootstrap сборку делаем на ОС
Эльбрус, получаем на выходе какую-то FreeBSD которую можно будет
загрузить и уже в ней снова полностью саму себя собрать её штатным
LLVM/Clang? Меня бы это устроило.
>то что нужно будет открыть, чтобы платформа стала пригодной для использования?
Я не писал ОС, так что не знаю какие именно наборы инструкций нужны.
Вроде бы написать ОС, с тем что они открыли, не выйдет. Насколько
понимаю, вот например LoongArch открыл достаточно, чтобы можно было и в
компиляторы его добавить (LLVM, Go) и ОС портировать. Вот так должно
быть, как мне кажется.
Вот беру я ISO FreeBSD. В ней, само собой, куча бинарей которые я
запускаю с диска. Потом всю ОС пересобираю. Вот беру я её компилятор: он
будет из исходников пересобран с нуля? Да. Будет ли ядро пересобрано?
vi, ed? Загрузчик UEFI? Всё будет. Это меня удовлетворяет. Вроде бы и
байт в байт идентичный .iso образ можно будет собрать в принципе.
Строго говоря, никто не гарантирует что тот бинарник компилятора с .iso
не встроит что-то плохое во время компиляции cc из исходника, но пока я
с этим готов мириться, ибо ещё не был прецедентов мне известных. Если
lcc будет использовать для начальной сборки, как bootstrap -- ok, тоже
могу смириться.
Хотя вспомнил про другой большой stopper: в Go нет поддержки e2k. Если
бы это был какой-нибудь гипотетический Java, Rust -- плевать на них, всё
равно не использую. А куда ж я без Go?
From: kmeaw
Date: 2026-05-15 11:02:39Z
> > доработан linux(4)
> Лично мне это вообще не играет роли.
Без этого не получится запустить lcc и clang, который (пока что) использует
lcc.
> То есть, всё равно без закрытых несвободных компиляторов нельзя будет
> собрать?
Да, компилятор (по крайней мере его backend) останется несвободным.
При этом доступна документация, которой достаточно для написания альтернативной
реализации. Возможно силами сообщества доделают полноценный порт LLVM.
> в Go нет поддержки e2k
Есть форк, в котором такая поддержка есть. Но придётся подменить
golang.org/x/sys, чтобы поддержать новый ABI и возможно что-то ещё.
Поддержка Go находится на достаточном уровне, чтобы для Linux собирался и
работал dockerd, портирован gccgo. Если интересно проверить совместимость, то
могу попросить собрать и запустить какой-нибудь код.