REG.RU и Let's Encrypt
Множество людей покупают доменные имена у регистраторов и создают собственные сайты. Разумеется, им необходимы SSL‑сертификаты. Однако покупать доверенные сертификаты могут не все и, зачастую, используют бесплатные Let's Encrypt SSL‑сертификаты, время жизни которых составляет 90 суток.
![REG.RU](https://radix-linux.su/blog/2025-01-19/00/.pixmaps/reg-ru-letsencrypt-1200x800.png)
Для автоматического обновления SSL‑сертификатов Let's Encrypt обычно используется API управления DNS‑зоной, который предоставляет регистратор доменных имен.
Рассмотрим один из возможных способов автоматического обновления сертификатов на примере регистратора REG.RU и его API управления DNS‑зонами.
tags
LibMPU (Большие числа)
Библиотека выполнена как эмулятор процессора с набором регистров и флагов, устанавливаемых по результатам проведенных операций. Набор целочисленных функций содержит арифметические, логические операции, а также операции сдвига. Для вещественных и комплексных чисел реализованы основные тригонометрические функции.
![libmpu](https://radix-linux.su/blog/2024-12-26/00/.pixmaps/big-numbers-925x662.png)
Разрядность ограничена 65536 бит для арифметических операций и 16384 бит для тригонометрии. Ограничения обусловлены порядком рядов аппроксимации.
tags
Кросс-компиляция NGINX (для случая GCC)
NGINX – это HTTP‑сервер и обратный прокси‑сервер, почтовый прокси‑сервер, а также TCP/UDP прокси‑сервер общего назначения, изначально написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных сайтов.
![NGINX](https://radix-linux.su/blog/2024-12-01/00/.pixmaps/nginx-1280x720.png)
Однако кросс‑компиляция NGINX практически невозможна, поскольку разработанные Игорем Сысоевым скрипты конфигурирования исходного кода в большинстве случаев используют так называемую процедуру "Try Run".
Те кто знаком с утилитами Autoconf, Automake знают, что проверки необходимых параметров системы и кросс‑компилятора осуществляются различными процедурами, которые, в свою очередь, могут применять попытки сборки исходного кода (Try compile), компоновки объектных файлов (Try link) и, наконец, попытки запуска тестовых программ (Try Run).
Естественно, если речь идет о кросс‑сборке, операции "Try Run" недопустимы, ведь мы не можем запустить программу, собранную под целевую архитектуру отличающуюся от архитектуры машины сборки на самой машине сборки.
tags
Система сборки (подключение инструментов)
В этой статье мы рассмотрим, как подключить к системе сборки новый toolchain и использовать его в работе над проектом простого приложения для платы Longan Nano на базе микроконтроллера GD32VF103CBT6 от компании GigaDevice.
![Build System](https://radix-linux.su/blog/2024-11-27/00/.pixmaps/risc-v-1024x576.png)
Система сборки создавалась для обеспечения параллельной сборки множества прошивок для линеек различных устройств, построенных на CPU с разными архитектурами. Однако если возникает необходимость, к ней можно подключать новые устройства. Именно этот процесс мы и рассмотрим.
Ведь у каждого Bare-metal разработчика наверняка в шкафу лежит масса всяческих плат и проводочков, но для каждого из них проекты исходников разбросаны по разным каталогам и найти нужный со временем становится все труднее и труднее.
Если в проектах, основанных на Yocto или BuildRoot, вы поставляете свой код в чужой репозиторий, то здесь наоборот, вы подключаете систему сборки к своему дереву каталогов, где хранятся ваши личные проекты. Одним словом, система сборки дает вам несколько иной уровень независимости, ну и про импортозамещение тоже забывать нельзя.
tags
Система сборки (примеры)
Система сборки Radix cross Linux достаточно подробно описана на странице Overview.
![Build System](https://radix-linux.su/blog/2024-11-25/00/.pixmaps/build-system-1024x640.png)
Здесь мы рассмотим новые аспекты использования системы сборки на простых примерах "Здравствуй, Мир!" для создания независимых пользовательских приложений с применением набора инструментариев Radix cross Linux.
Предыдущие версии системы сборки не подразумевали использования компиляторов Clang и Rust как основных cross-компиляторов. Однако современные реалии привели нас к необходимости использования собственных инструментариев LLVM и RUST, но не в качестве основных (поясним это далее).
Дело в том, что множество современных пакетов прикладных программ, помимо GCC, используют компиляторы языка Rust и набор LLVM. Разработчиков привлекает тот момент, что для поддержки множества архитектур целевых устройств достаточно установить одно средство, вместо использования нескольких инструментариев (Toolchain), собранных из исходного кода GCC.