Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 1 month ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month, 3 weeks ago
Фундаментальный принцип работы Системы сборки
Сейчас многие разработчики стараются перевести свои проекты на новые системы сборки, отказываясь от Make(1).
Мы же хотим поговорить здесь именно о GNU Make, поскольку данная утилита позволяет запросто решать сложные, на первый взгляд, задачи.
Например, как можно организовать параллельную, многопоточную сборку программ, одновременно на несколько целевых машин и при этом сохранить простоту пользовательских Make-файлов?
Ответ на этот вопрос представлен в описании главного принципа работы Системы сборки Radix cross Linux.
Посмотрите, может и в ваших проектах найдется достойное место старой доброй утилите GNU Make.
Telegram: @rxlinux
Telegram List
На GitHub существует репозиторий, в котором представлен:
Список интересных групп, каналов и ботов телеграма. Чаты Telegram для программистов и разработчиков, гиков, айтишников, сисадминов и девопсов, а также прочих неравнодушных к компьютерам и программированию.
Чтобы добавить собственный канал или группу, необходимо создать пулреквест.
Надеюсь, в этом списке найдется что-нибудь интересное для каждого.
Telegram: @rxlinux
Radix cross Linux 1.11
Начинается большая работа по обновлению системы до версии 1.11. Впереди обновление практически всех пакетов, переход на новые версии GNU Libc, GCC-14.2.0, binutils-2.43.1, ...
На данный момент в системе около 1000 пакетов, так что работы предстоит много. Работа будет не быстрой.
Все будет происходить на ветке radix-1.11, начиная с ревизии 388, так что можно будет видеть последовательность обновления системы.
Telegram: @rxlinux
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
Прискорбно наблюдать, как в 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 у него великоват.
Следует добавить, если заказчик решит построить сборку собственного дистрибутива на собственных серверах, то мы можем оказать ему полное содействие (даже название можно сменить, если дистрибутив заказчика будет нацелен на другие задачи, не совпадающие с целями Radix cross Linux, и не будет конкурировать). Но это отдельная тема.
Возможно ли выделить ту часть артефактов 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.
Дистрибутив Radix cross Linux не является разработкой "на основе". Все, начиная с инструментариев и заканчивая готовыми загрузочными образами, готовится самостоятельно из открытых исходных кодов с применением cross-компиляторов. Устройства, на которых работает система, выбираются исходя из наличия свободных драйверов и загрузчиков, а также возможности приобрести целевое оборудование в России.
ПО, авторы которого не предусмотрели возможность cross-сборки, не включается в состав системы.
В основном, дистрибутив предназначен для инженеров использующих одноплатные компьютеры в работе или в качестве хобби, напрмер, для организации домашней сети.
Загрузочные образы содержат локальный репозиторий пакетов и поэтому установка системы не требует подключения к сети Internet.
Telegram: @rxlinux
Кросс-компиляция NGINX (для случая GCC)
NGINX – это HTTP‑сервер и обратный прокси‑сервер, почтовый прокси‑сервер, а также TCP/UDP прокси‑сервер общего назначения, изначально написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных сайтов.
Однако кросс‑компиляция NGINX практически невозможна, поскольку разработанные Игорем Сысоевым скрипты конфигурирования исходного кода в большинстве случаев используют так называемую процедуру "Try Run".
Те кто знаком с утилитами Autoconf, Automake знают, что проверки необходимых параметров системы и кросс‑компилятора осуществляются различными процедурами, которые, в свою очередь, могут применять попытки сборки исходного кода (Try compile), компоновки объектных файлов (Try link) и, наконец, попытки запуска тестовых программ (Try Run).
Естественно, если речь идет о кросс‑сборке, операции "Try Run" недопустимы, ведь мы не можем запустить программу, собранную под целевую архитектуру отличающуюся от архитектуры машины сборки на самой машине сборки.
В Autotools проблемы, связанные с невозможностью запуска целевых программ на сборочной машине в некоторых случаях решаются кешированием переменных, которые могу быть переопределены пользователем в файле ‑‑cache‑file или заданы в командной строке вызова скрипта ./configure.
Скрипты Игоря Сысоева не предусматривают такого переопределения машинно‑зависимых величин. Однако величин, которые необходимо задать во время конфигурирования исходных кодов NGINX достаточно много. К ним, в первую очередь, относятся размеры типов данных. Именно с них мы и начнем.
Telegram: @rxlinux
URL: https://radix-linux.su/
В Телеге не разрешают тематические разделы создавать в каналах до тех пор, пока число подписчиков не превысит 200 человек.
Но хотелось бы завести несколько диалогов:
- микроконтроллеры
- загрузчики
- GPU
- минималистичный сборки для встройки
- Desktop окружение
И т. д. и т. п.
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 1 month ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month, 3 weeks ago