Radix cross Linux
120 subscribers
60 photos
2 videos
5 files
116 links
Radix cross Linux - Distribution with a cross platform build system. Дистрибутив Radix cross Linux не является разработкой "на основе". Это полностью самостоятельный дистрибутив.

Homepage: https://radix-linux.su
Download Telegram
Дистрибутив Radix cross Linux не является разработкой "на основе". Все, начиная с инструментариев и заканчивая готовыми загрузочными образами, готовится самостоятельно из открытых исходных кодов с применением cross-компиляторов. Устройства, на которых работает система, выбираются исходя из наличия свободных драйверов и загрузчиков, а также возможности приобрести целевое оборудование в России.

ПО, авторы которого не предусмотрели возможность cross-сборки, не включается в состав системы.

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

Загрузочные образы содержат локальный репозиторий пакетов и поэтому установка системы не требует подключения к сети Internet.

Telegram: @rxlinux
Возможно ли выделить ту часть артефактов Radix, которые и являются собственно этим проектом? Какая на них лицензия (если есть)?

Разумеется можно. В проекте 4 основных репозитория:
1) sources - его клон расположен на FTP-сервере и служит для сбора оригинальных исходников из Internet (лицензия MIT).
2) Toolchains - здесь готовятся инструменты для сборки (лицензия MIT).
3) build-system - Система сборки (лицензия RADIX почти равна лицензии Apache v2 [но требование распространять главный принцип работы]), которая подключается к следующему репозиторию:
4) System - непосредственно репозиторий сборки дистрибутива (лицензия RADIX).

Первый репозиторий отчуждаемый, то есть пользователь может создать клон на собственном FTP-сервере и самостоятельно указать свой сервер как источник для репозиториев 2, 3, 4

Второй репозиторий, пользователь может клонировать и строить собственные toolchain-ы, если ему не хватает существующих.

Третий, - также доступен для самостоятельного использования, как написано в статье Система сборки.

Четвертый, - содержит сценарии сборки пакетов и создания образов Radix cross Linux. Данный репозиторий нацелен на сборку полной системы (возможна сборка по слоям: base, X11, MATE, ...).

Таким образом все сценарии сборки (артефакты Radix) находятся в 4-м репозитории и подпадают под лицензию (Radix cross Linux). Все используемые лицензии приведены на странице Licenses.
👍2
Следует добавить, если заказчик решит построить сборку собственного дистрибутива на собственных серверах, то мы можем оказать ему полное содействие (даже название можно сменить, если дистрибутив заказчика будет нацелен на другие задачи, не совпадающие с целями Radix cross Linux, и не будет конкурировать). Но это отдельная тема.
Прискорбно наблюдать, как в GNU Compiler Collection (GCC) добавляют компиляторы не заботясь о кросс-сборке. Так, например, компилятор Modula-2 не кросс-компиляемый. Во время конфигурирования просто забыли добавить —host триплет (что приводит к ошибке сразу) и, кроме того, утилиты mlink, mc, которые должны работать на build-машине, собираются кроссом на целевую машину. В результате, естественно, происходит ошибка при запуске mlink на build-машине (во время сборки GCC).

Подобных ошибок множество, например, при компоновке библиотеки gmp использутся левые build, host, target триплеты и без наложения pathch-ей на Makefile.in собрать кроссом GCC не получится.

Люди забывают, что (в случае GCC):
—build - это машина, на которой собирают GCC;
—host - это машина, на которой будет работать собранная коллекция компиляторов (GCC);
—target - это машина, для которой готовятся программы с помощью GCC на host-машине.

В общем, компилятор Modula-2 не готов и в сборку GCC добавлен не будет.

Rust, вообще не понятно зачем, добавили в GCC. Он (тот что в составе GCC) вообще не может готовить программы.

Отрадно то, что к компилятору языка D, в составе GCC, нет никаких претензий. Разве что runtime у него великоват.
❤1
Baikal-M (BE-1000)

На базе SoC BE-M1000 компании «Байкал Электроникс» создано множество материнских плат и плат для встроенных систем. Наверное, самыми распространенными можно считать материнские платы Эдельвейс TF307.

Сам SoC BE-1000 имеет восемь ядер Arm® Cortex™-A57, работающих на частоте 1.5 GHz, и поддерживает кэш L1, L2, and L3. Видеоподсистема включает два контроллера (LVDS and HDMI), а также HD видео декодер. Графический ускоритель Arm Mali™-T628 содержит восемь ядер.

Также SoC BE-M1000 содержит два контроллера памяти DDR3/4 и множество интерфейсов: PCIe Gen3, 10 Gb Ethernet, 1 Gb Ethernet, USB 3.0, USB 2.0, SATA 6G, eMMC/SD, I2S, SPI, UART, I2C, GPIO, и так далее. SoC соответствует технологии Arm TrustZone® и предоставляет все возможности, необходимые для создания надежных систем.

Мы получили плату TF307-MB-S-D Rev. 4.0 от компании BaikalElectronics и портировали на нее систему Radix cross Linux.

Читать далее »

Telegram: @rxlinux
🔥1
Radix cross Linux 1.11

Начинается большая работа по обновлению системы до версии 1.11. Впереди обновление практически всех пакетов, переход на новые версии GNU Libc, GCC-14.2.0, binutils-2.43.1, ...

На данный момент в системе около 1000 пакетов, так что работы предстоит много. Работа будет не быстрой.

Все будет происходить на ветке radix-1.11, начиная с ревизии 388, так что можно будет видеть последовательность обновления системы.

Telegram: @rxlinux
Telegram List

На GitHub существует репозиторий, в котором представлен:

Список интересных групп, каналов и ботов телеграма. Чаты Telegram для программистов и разработчиков, гиков, айтишников, сисадминов и девопсов, а также прочих неравнодушных к компьютерам и программированию.

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

Надеюсь, в этом списке найдется что-нибудь интересное для каждого.

Telegram: @rxlinux
👍2
Фундаментальный принцип работы Системы сборки

Сейчас многие разработчики стараются перевести свои проекты на новые системы сборки, отказываясь от Make(1).

Мы же хотим поговорить здесь именно о GNU Make, поскольку данная утилита позволяет запросто решать сложные, на первый взгляд, задачи.

Например, как можно организовать параллельную, многопоточную сборку программ, одновременно на несколько целевых машин и при этом сохранить простоту пользовательских Make-файлов?

Ответ на этот вопрос представлен в описании главного принципа работы Системы сборки Radix cross Linux.

Посмотрите, может и в ваших проектах найдется достойное место старой доброй утилите GNU Make.

Читать далее »

Telegram: @rxlinux
Большие числа

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

Библиотека выполнена как эмулятор процессора с набором регистров и флагов, устанавливаемых по результатам проведенных операций. Набор целочисленных функций содержит арифметические, логические операции, а также всевозможные операции сдвига. Для вещественных и комплексных чисел реализованы основные тригонометрические функции.

Разрядность ограничена 65536 бит для арифметических операций и 16384 бит для тригонометрии. Ограничения обусловлены порядком рядов аппроксимации.

Исходный код можно найти в репозитории libmpu.git, где в файле README.md приведен простой пример вычиcлений.

Кому интересны большие числа, оставляйте комментарии и обращайтесь.

Telegram: @rxlinux
🔥2
MPU Library

Составление полной документации на библиотеку libmpu потребует много времени. Пока есть только краткое описание возможностей библиотеки в статье MPU Library.

Исходный код можно загрузить из каталога releases на FTP-сервере.

Читать далее »

Telegram: @rxlinux
This media is not supported in your browser
VIEW IN TELEGRAM
С Наступающим Новым годом.
🎄12☃3👍2
REG.RU и Let's Encrypt

Множество людей покупают доменные имена у регистраторов и создают собственные сайты. Разумеется, им необходимы SSL‑сертификаты. Однако покупать доверенные сертификаты могут не все и, зачастую, используют бесплатные Let's Encrypt SSL‑сертификаты, время жизни которых составляет 90 суток.

Для автоматического обновления SSL‑сертификатов Let's Encrypt обычно используется API управления DNS‑зоной, который предоставляет регистратор доменных имен.

Рассмотрим один из возможных способов автоматического обновления сертификатов на примере регистратора REG.RU и его API управления DNS‑зонами.

Читать далее »
🔥2
UEFI PXE Boot в виртуальном окружении

Установка PXE‑сервера для тестирования edk2/OvmfPkg в виртуальном окружении может оказаться не совсем тривиальной задачей. Например мы столкнулись с тем что TFTP‑сервер, работающий на одной виртуальной машине, оказался недоступным для других виртуальных машин. Решение данной проблемы находится в конфигурации брандмауэра. В Linux netfilter есть вспомогательные модули nf_conntrack_tftp и nf_nat_tftp, которые после загрузки позволяют отслеживать обратные TFTP‑соединения. Однако и здесь настройка может потребовать дополнительных затрат времени.

В этой статье мы постарались освежить в памяти настройку DHCP-сервера и показать простой путь создания тестового окружения для работ по созданию собственных сборок EDK II.

Читать далее >>

Telegram: https://t.me/rxlinux
Blog: https://radix-linux.su/blog
👍1🙏1
Toolchains 1.11.4

Очередной выпуск инструментов включает стандартный набор на базе Binutils 2.44, GCC 14.2.0, GNU Libc 2.41, NewLib 4.5.0. Из состава Binutils исключен компоновщик gold.

Также доступны LLVM 19.1.7 и Rust 1.84.1.

Download: https://ftp.radix-linux.su/radix/toolchains/x86_64/1.11.4/

Разработчики программ для микроконтроллеров RISC-V могут воспользоваться инструментарием riscv64-NONE-elf-newlib-1.11.4.tar.xz, который поддерживает наиболее популярные RISC-V наборы инструкций. Для микроконтроллеров c архитектурой ARM служит набор arm-NONE-eabi-newlib-1.11.4.tar.xz.

Enjoy.
20.02.2025 Вышел Rust 1.85.0.
🔥2
В Rust Bootstrap 1.85.0 решили использовать версию 1.2.0 пакета cc-rs вместо версии 1.1.22. Новая версия cc-rs жестко декларирует допустимые триплеты в файле generated.rs.

Теперь, без специального изменения зависимостей, вы не сможете добавлять ваши собственные триплеты.

Такое бывает когда в разработке участвуют люди непонимающие принципов cross-сборки продуктов, а также основополагающих принципов работы UNIX-систем.

Одним словом они украли не только небо и радугу, они замахнулись на святое.
😭3🔥2
Toolchains 1.11.4

Очередной выпуск инструментов включает стандартный набор на базе Binutils 2.44, GCC 14.2.0, GNU Libc 2.41, NewLib 4.5.0. Из состава Binutils исключен компоновщик gold.

Также доступны LLVM 19.1.7 и Rust 1.85.0.

Download: https://ftp.radix-linux.su/radix/toolchains/x86_64/1.11.4/

Разработчики программ для микроконтроллеров RISC-V могут воспользоваться инструментарием riscv64-NONE-elf-newlib-1.11.4.tar.xz, который поддерживает наиболее популярные RISC-V наборы инструкций. Для микроконтроллеров c архитектурой ARM служит набор arm-NONE-eabi-newlib-1.11.4.tar.xz.

Toolchain-ы не перемещаемые и распаковывать их надо в каталог

/opt/toolchains/

Enjoy.
Build System

Ветка 1.11.x системы сборки обновлена для использования toolchains версии 1.11.4.

Статьи Система сборки (подключение инструментов), Система сборки (примеры) и Rust Custom Triplet актуальны.

Enjoy.
С Днем Советской Армии и Военно-Морского флота!
👍14