Рубрика «системное программирование» - 6
О чем нельзя забывать при работе с POSIX-сигналами
2021-10-12 в 18:45, admin, рубрики: bsd-системы, C, c++, linux, posix, reentrancy, UNIX, Программирование, Разработка под Linux, системное программированиеЛезем в сорцы компилятора — как работает goscheduler (Часть I)
2021-10-04 в 7:00, admin, рубрики: FirstDEDIC, firstvds, golang, goscheduler, Анализ и проектирование систем, Блог компании FirstVDS, Компиляторы, Программирование, системное программированиеКаждый раз, когда я открываю новую книжку о golang, обязательно лезу в главу о горутинах и в очередной раз читаю, как беспощадно прекрасен голанг. Подумать только, вместо того, чтобы создавать потоки для обработки параллельно выполняемых задач, мы будем пользоваться внутренними инструментами языка!
Всё это замечательно, и большинство книг и курсов по golang приводят множество примеров того, насколько быстр го и как он запросто может справиться с бесконечным количеством задач. К сожалению, все эти книги не рассказывают, что же происходит под капотом голанга. Что же, давайте откроем сорцы суслика и посмотрим, что там внутри. Читать полностью »
Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад
2021-09-23 в 13:00, admin, рубрики: assembly, ruvds_статьи, ассемблер (x86), ассемблер для начинающих, Блог компании RUVDS.com, ламповый код, ненормальное программирование, программирование микроконтроллеров, системное программированиеРабота с СОМ-портом на Си в linux
2021-09-17 в 9:00, admin, рубрики: C, linux, ruvds_статьи, uart, Блог компании RUVDS.com, Программирование, Производство и разработка электроники, Разработка под Linux, системное программированиеКаждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "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 и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А не понимание того, что там происходит и приводит к различным трудноуловимым багам.Читать полностью »
Rust 1.55: обновление `std::io::ErrorKind`, изменение алгоритма разбора чисел с плавающей точкой
2021-09-10 в 14:52, admin, рубрики: cargo, clippy, open source, release, Rust, rustc, rustdoc, rustfix, rustfmt, stable, выпуск версий, Компиляторы, новости технологий, перевод, Программирование, системное программирование, стабильная версия, языки программированияКоманда Rust рада сообщить о выпуске новой версии — 1.55.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если вы установили предыдущую версию Rust средствами rustup
, то для обновления до версии 1.55.0 вам достаточно выполнить следующую команду:
rustup update stable
Если у вас ещё не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Разработка одноплатного компьютера. Пособие для продвинутых
2021-09-10 в 9:01, admin, рубрики: altium, IMX8M, linux, NXP, OrCAD, pcb, pcie, usb, v4l2, Wayland, Анализ и проектирование систем, гаджеты, Разработка под Linux, системное программирование, Электроника для начинающихЯ занимаюсь разработкой электроники. Шесть лет назад я написал свою первую статью начинавшуюся этими же словами и увидел неподдельное внимание. Все эти годы я продолжал оттачивать свое мастерство и на текущий момент я хочу перефразировать вступление:
Я занимаюсь разработкой электроники и мне этого мало.Читать полностью »
Слегка ржавое EFI-приложение
2021-09-06 в 17:00, admin, рубрики: bootloader, EFI, Rust, ruvds_статьи, SecureBoot, UEFI, Блог компании RUVDS.com, операционные системы, системное программированиеТак что сегодняшняя цель — это создание UEFI-приложения на Расте, которое распечатывает карту памяти, отфильтрованную по доступности для использования (такая память называется традиционной памятью в описании UEFI-спецификаций):
UUID версии 7, или как не потеряться во времени при создании идентификатора
2021-08-12 в 23:30, admin, рубрики: Bender Bending Rodriguez, big data, GUID, uuid, UUIDv6, UUIDv7, UUIDv8, Администрирование баз данных, идентификатор, инженерные системы, Новый, Новый UUID, системное программирование, Уникальный идентификатор, хранение данныхRust 1.53.0: IntoIterator для массивов, "|" в шаблонах, Unicode-идентификаторы, поддержка имени HEAD-ветки в Cargo
2021-06-18 в 14:45, admin, рубрики: cargo, clippy, open source, release, Rust, rustc, rustdoc, rustfix, rustfmt, stable, выпуск версий, Компиляторы, новости технологий, перевод, Программирование, системное программирование, стабильная версия, языки программированияКоманда Rust рада сообщить о выпуске новой версии — 1.53.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если вы установили предыдущую версию Rust средствами rustup
, то для обновления до версии 1.53.0 вам достаточно выполнить следующую команду:
rustup update stable
Если у вас ещё не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Что было стабилизировано в 1.53.0
Этот выпуск содержит несколько новых возможностей языка и ещё больше — стандартной библиотеки, включая долгожданную реализацию IntoIterator
для массивов. Смотрите подробные примечания к выпуску, чтобы узнать о других изменениях, не представленных в данном анонсе.