RU

Как я писал ОС, но не под x86, а под RISC-V

Решил разобраться, как устроены операционные системы изнутри, и написал свою простую ОС под RISC-V. Делюсь написанием многопоточности, сохранением р…

C++Низкоуровневое программированиеOpen SourceОперационные системыЯзык ассемблераСтатьи
Tproger
RU

KolibriOS 0.7.7: ОС на ассемблере, которая влезает на дискету

KolibriOS 0.7.7 — российская ОС на ассемблере, которая помещается на дискету и работает на i586 с 8 МБ ОЗУ. Разбираем возможности и ограничения. — Ч…

Низкоуровневое программированиеРетроOpen SourceОперационные системыОптимизацияИнструментыHardwareПроизводительностьБраузерыЯзык ассемблераСтатьи
Tproger
RU

Async Rust: как уменьшить бинарник, пока rustc не оптимизирован

Разбираем, почему async Rust генерирует лишние state machine, как это бьёт по embedded и WASM, и что можно сделать в коде прямо сейчас. — Читать дал…

МногопоточностьНизкоуровневое программированиеОптимизацияКомпиляторыПроизводительностьRustАсинхронное программированиеСтатьи
Tproger
RU

Hazard pointers на пальцах

Привет, Хабр. Сегодня я постараюсь максимально понятным языком объяснить Hazard pointers , с схемой и примерами. Читать далее

C++Lock-FreeМногопоточностьHazard PointersСистемное программированиеНизкоуровневое программированиеLow-LatencyБарьеры памятиПамять
Habr
RU

Протоколы связи микроконтроллеров: проектирование и парсинг

Разбираем структуру кадра, контрольные суммы и конечные автоматы для обмена данными между хостом и микроконтроллером. Примеры на C — читайте и внедр…

Алгоритмы и структуры данныхНизкоуровневое программированиеОптимизацияHardwareСетевые протоколыРазработкаСтатьи
Tproger
RU

Пишем прошивку Bluetooth Low Energy на Zephyr OS: полное руководство для разработчиков

Как с нуля собрать BLE-устройство на Zephyr OS: настройка окружения, GAP, GATT, notifications и примеры кода. Практический гайд для embedded-разрабо…

Низкоуровневое программированиеOpen SourceИнструментыHardwareСетевые протоколыСтатьи