Рубрика «Разработка под Linux» - 9

Пару недель назад Линус Торвальдс активировал флаг -Werror для всех сборок ядра. Мнения сообщества касательно этого решения разделились. Против даже высказался разработчик фронтенда Clang и фреймворка LLVM. Обсуждаем ситуацию.

Unsplash / Markus Spiske
Unsplash / Markus Spiske

Warning’и не нужны

Год назад Линус Торвальдс в рассылке LKML рассказалЧитать полностью »

Кросс компиляция пакета для роутера на примере Qbittorrent - 1

Добрый день друзья. Как-то мне захотелось установить Qbittorrent на мой роутер который оснащен OpenWRT. Конечно создатели OpenWRT уже предусмотрели возможность сборки кастомных пакетов об этом можно почитать вот тут: https://habr.com/ru/company/ruvds/blog/530984/Читать полностью »

Работа с СОМ-портом на Си в linux - 1

Телетайп, на который БЭВМ могли выводить и получать данные. Фото взято здесь.

Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с чем его едят" спустя 11 лет после выпуска набирает просмотры и комментарии.

Для разработчиков чаще всего появляется задача сопрячь какой-то датчик, либо удалённое устройство с одноплатником. Да что греха таить, сейчас в 2021 году UART, наверное, самый распространённый интерфейс для обмена данными, несмотря на всю его архаичность. Далеко за примером ходить не надо, внутри смартфона, лежащего у вас в кармане, будет с десяток UART интерфейсов, самый известный из которых — это подключение SIM-карты.

Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.

В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А не понимание того, что там происходит и приводит к различным трудноуловимым багам.Читать полностью »

NavQ+, герой сегодняшнего рассказа
NavQ+, герой сегодняшнего рассказа

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

Я занимаюсь разработкой электроники и мне этого мало.Читать полностью »

image

Прошлым летом, во время распространения коронавируса по городам и весям, я почти все время сидел дома. У меня появилось много свободного времени, так что, наконец, получилось заняться давно запланированным обзором PinePhone. Напомню, что это смартфон с ОС Linux, а не Android.

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

Возможность организации работы SCTP поверх UDP (известная ещё как инкапсуляция SCTP-пакетов в UDP-пакеты) определена в RFC 6951 и реализована в пространстве ядра Linux начиная с версии ядра 5.11.0. Поддержку этой возможности планируется включить в Red Hat Enterprise Linux (RHEL) 8.5.0 и 9.0.

Простейшее решение «проблемы промежуточных устройств»: организация работы SCTP поверх UDP в ядре Linux - 1

В этом материале даётся краткий обзор организации работы SCTP поверх UDP в ядре Linux.
Читать полностью »

Любой программист, решивший заняться разработкой под Embedded Linux, придя буть-то из высокоуровневых языков программирования, либо из программирования микроконтроллеров на С/С++, неизбежно оказывается удивлен крайней недружелюбностью embedded linux. Текстовый блокнот и консольные утилиты вместо столь привычных IDE, и отладка по логам вместо отладки программатором сильно замедляют процесс разработки. В статье описывается, как мне удалось снизить время доставки изменений до целевого железа при кросс-компиляции в 10 раз.

Кросс-компиляция

Читать полностью »

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

Кунг-фу стиля Linux: делаем все и сразу - 1
Читать полностью »

Привет! Меня зовут Александр Петровский, я инженер в DINS. Я работаю в команде, которая участвует в разработке сервисов облачной телефонии и видеоконференций для RingCentral. Каждый из них состоит из большого количества микросервисов.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js