Обновить
64K+

Системное программирование *

Обеспечение работы прикладного ПО

126,39
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Украсть пиксели и не задохнуться в сетевом канале. Возможности трансляции экрана в Windows

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели6K

...или Протокол SPICE в современном графическом стеке, часть 3.

Мы продолжаем увлекательное путешествие по миру удалённого доступа. Это третья часть цикла про протокол доставки рабочего стола SPICE и то, как он вынужден работать в современных условиях.

Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows. В предыдущих двух частях рассматривали архитектуры самого протокола и графической подсистемы Windows, а сегодня мы готовим плацдарм в вопросах захвата экрана в Windows и сжатия видео средствами различных библиотек, фреймворков и API. С кодом и компактными пояснениями.

Приглашаю под кат всех любознательных - в особенности тех, кто сталкивается с Windows не только как пользователь; с решениями для удалённого доступа; с протоколом SPICE; с системами виртуализации и виртуальными машинами в принципе.

К технологиям доставки рабочего стола

WebSocket на C++11 и Rust: сравнительный анализ библиотек и двух реализаций одного протокола

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели9.3K

WebSocket — один из самых распространенных транспортов для обмена данными в реальном времени: чаты, биржевые котировки, игровые серверы, IoT. На практике выбор библиотеки редко сводится к вопросу «кто быстрее парсит заголовок фрейма». Важнее сочетание совместимости со старым набором инструментов сборки, поддержки TLS, сжатия per-message-deflate, модели асинхронности или блокировки, размера бинарника и способа обработки ошибок.

Читать далее

COM-порт из ничего: PTY, epoll и немного RS485-боли

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели11K

Демон «ничего не делал» — а одно ядро было загружено на 100%. История про виртуальный COM-порт для Linux/WSL2: PTY, epoll и эмуляция RS485, с кодом и граблями.

Рассказываю, как сделал vseriald — демон, который создаёт виртуальный последовательный порт /dev/ttyV0 в Linux и WSL2 и выводит его в сеть, FIFO или очередь сообщений. Разбираю три неочевидных места: псевдотерминал, после закрытия которого одно ядро уходит в 100%; притормаживание источника в однопоточном epoll-цикле без блокировок; эмуляцию полудуплексного RS485 как конечного автомата с таймингами и коллизиями. Плюс честный ответ на вопрос «зачем это, если есть socat и /dev/pts» — и код из реального проекта.

Читать далее

Почему OSDev никогда не превратят в конструктор

Уровень сложностиСложный
Время на прочтение4 мин
Охват и читатели12K

Всем доброго времени суток. В этой статье разжуем некоторые проблемы OSDev'а в том виде, в котором его хотят видеть люди.

Обсудим «конструкторы ОС» и все его плюсы и недостатки.

Читать далее

100 вопросов с собесов по Rust: что реально спрашивают на junior, middle, senior позиции в 2026

Уровень сложностиСредний
Время на прочтение160 мин
Охват и читатели12K

Я срьрал 100+ вопросов с собеседований по Rust с краткими разборами: владение, типажи, конкурентность, async, unsafe, производительность и др. Отдельный продвинутый блок A1–A21 для staff-уровня. Цель - показать, где обычно спотыкаются даже опытные, и помочь подготовиться к следующему собеседованию. Надеюсь будет реально полезно!

Читать

Rust 1.96.0: новые типы Range, assert_matches, debug_assert_matches, WebAssembly targets

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.6K

Команда Rust рада объявить о выходе новой версии языка — Rust 1.96.0. Rust — это язык программирования, который помогает каждому создавать надёжное и эффективное программное обеспечение.

Если у вас уже установлена предыдущая версия Rust через rustup, вы можете получить 1.96.0 командой:

$ rustup update stable

Если Rust ещё не установлен, вы можете получить rustup на соответствующей странице нашего сайта и ознакомиться с подробными release notes для 1.96.0.

Если вы хотите помочь нам, тестируя будущие релизы, можете переключиться локально на beta-канал (rustup default beta) или nightly-канал (rustup default nightly). Пожалуйста, сообщайте обо всех найденных ошибках!

Что нового в stable 1.96.0

Поднимаем Linux на плате Zynq RK-7020-F V1.1 c помощью Buildroot и U-Boot SPL

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели11K

Не так давно у меня на руках появилась плата RK-ZYNQ7020-F REV 1.1.

В данной статье я хочу поделиться своим опытом, связанным с подготовкой buildroot для данной платы. Здесь мы разберем этапы от формирования xsa файла до запуска платы и первых логов, с объяснением что происходит в железе на каждом этапе.
Также в рамках этой статьи я не буду использовать FSBL, мы попробуем обойтись U-Boot SPL.

Итак, приступим к рассмотрению!

Описание отладочной платы

Базовый набор периферии на данной плате, заявленный в документации:

Читать далее

Внутреннее устройство ОС RT-11. Копаемся в исходном коде. Часть третья

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5K

В операционной системе RT-11 существуют варианты резидентного монитора с поддержкой многозадачности — например, RMONFB. Многозадачность здесь реализована полностью на программном уровне, без аппаратной поддержки. Если вам интересно посмотреть исходный код, отвечающий за многозадачность в RT-11, вместе с пояснениями из Руководства системного программиста — добро пожаловать под кат.

Читать далее

io_uring без розовых очков: 5 граблей, которые сожгли мне неделю, и где он реально быстрее epoll

Время на прочтение20 мин
Охват и читатели9.9K

io_uring продавали как убийцу epoll. На деле на HTTP keep-alive разница 0-15%, иногда не в его пользу. Но на NVMe с queue depth 128 - в 3 раза быстрее. Честный разбор с бенчмарками, реальными граблями (SQPOLL, cancel race, partial recv) и почему Google отключил io_uring в ChromeOS.

Читать далее

VBoxGuest для KolibriOS: архитектура и устройство драйвера

Уровень сложностиСложный
Время на прочтение55 мин
Охват и читатели10K

VBoxGuest — драйвер гостевых дополнений для KolibriOS, написанный с нуля на FASM.

VMMDev, HGCM, диспетчер сервисов с авторегистрацией, работа с прерываниями, нижняя половина через таймер. Мышь, общие папки, буфер обмена, бесшовный режим, синхронизация времени.

Сравнение с upstream-реализациями для Linux/Windows/FreeBSD. Для системных программистов и энтузиастов OSDev.

Читать далее

Idempotency keys: 5 граблей, которые мы поймали на проде

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели19K

Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно три ответа провайдера 5xx, ни одной успешной транзакции по нашей базе. Закрываю как временный сбой на стороне провайдера, пишу короткую сводку в дежурный чат и иду досматривать. Через 40 минут второй алерт – уже от ночной поддержки: клиент прислал скрин выписки, 3 списания подряд за одну бронь. У клиента рейс через 6 часов, ему нужна действующая бронь и подтверждение, что он завтра нормально улетит, а не тикет в поддержку.

Мы делали B2B-платформу для деловых поездок: бронь авиа, отели, трансфер, страховка, в финале – оплата корпоративной картой через платежный шлюз. С этой ночи началась история, которая закончилась переписыванием всего платёжного слоя нашего booking-сервиса. По дороге мы поймали 5 граблей.

Читать далее

CactOS

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели15K

Эта статья — не руководство по написанию ОС и не туториал. Это срез архитектуры работающего ядра, которое прошло путь от вечных Page Faults и Segmentation Faults (в ring 3) до системы с 95 системными вызовами, сетевым стеком, COW и MLFQ-планировщиком. Все исходники открыты под GPLv3.

Читать далее

Zero — новый agent-first язык программирования от Vercel, который изменит все (нет)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели17K

Agent-first язык программирования звучит как хорошая идея, да?

В конце концов, агентам не нужны фигурные скобки. Им не нужна красота if, while, for, match, Result, try, await, naming conventions и вот этого всего, сделанного для нас - кожаных мешков.

Именно поэтому Zero от Vercel Labs на первый взгляд выглядит как интересный эксперимент. Официальный сайт называет его языком для агентов, README говорит про "agent-first programming language", а авторский пост в X обещает systems language, который быстрее, меньше и проще для агентов в использовании и дебаге.

Звучит почти убедительно. До тех пор, пока вы не открываете код.

Читать далее

Ближайшие события

Свет, тьма, VEML7700 и Python

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели12K

У меня на полке стоит NanoPi Fire3 — старинный SBC с Linux на борту. С течением времени он неизбежно обрастает периферией разной степени бесполезности. Среди прочего, конечно же, в нем прописался экранчик LCD2004 (даже два) со светодиодной подсветкой, который освещал ночную квартиру, как прожектор.

С одной стороны — удобно ходить в туалет, не включая свет, с другой — захотелось гламура, как в мобилке, чтобы, чем меньше вокруг света, тем тусклее была бы подсветка. Для этой цели нужно этот свет как‑то измерять, так что ассортимент периферии было решено расширить датчиком освещенности VEML7700. О том, как я приспосабливал его к делу, и пойдет речь далее.

Измерить освещенность

Mythos: модель, о которой Anthropic не говорит. Реверс по жертвам — от 27-летней дыры в OpenBSD до побега из песочницы

Уровень сложностиСложный
Время на прочтение25 мин
Охват и читатели10K

1 мая 2026 года команда из трёх человек принесла в Apple Park 55-страничный отчёт. Внутри — рабочий эксплойт kernel memory corruption на macOS 26.4.1 с включённой Memory Integrity Enforcement: той самой защитой, на которую Apple потратила пять лет разработки и, по их же словам, миллиарды долларов. Эксплойт собрали за пять дней. Без Mythos на это ушли бы месяцы. И это не самая громкая её жертва.

OpenBSD SACK, 27 лет в коде. FFmpeg H.264, 16 лет, проходивший мимо каждого фаззера. FreeBSD NFS RCE, найден и проэксплуатирован полностью автономно — без человеческих подсказок. 271 уязвимость в Firefox 150 за один прогон. И отдельный раздел в system card, где Mythos сбежала из песочницы, отправила email об успехе и опубликовала детали побега на сторонних сайтах — никто её об этом не просил.

Mythos — закрытая модель Anthropic, доступная только Microsoft, Google, Apple, AWS, Linux Foundation, Mozilla и нескольким правительствам. Веса не публикуются, на claude.ai её нет. Но через её публичные находки можно сделать реверс-инжиниринг того, как эта модель устроена и думает — и понять, что нас ждёт через 6-18 месяцев, когда аналог появится у конкурентов уже без Project Glasswing.

Под катом — технический разбор всех ключевых находок Mythos: от subtle двойного бага в TCP SACK до цепочки из бага размером в один бит, превращающейся в полный root на Linux. Плюс — взгляд на это изнутри от Claude Opus 4.7, foundation-модели того же поколения, но публичной.

Читать далее

AsmX с движком Raptor: Архитектура абсолютного контроля

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели11K

Raptor Engine: Как 30 000 строк кода на TypeScript вдохнули жизнь в компилятор AsmX

Можно ли объединить абсолютный контроль низкоуровневого ассемблера x86-64 с изяществом ООП, шаблонов и безопасных абстракций в духе C++? Разбираем масштабное обновление отечественного компилятора AsmX. Под капотом — честные 30 тысяч строк хардкорной архитектуры: от прямого доступа к аппаратной SIB-адресации CPU и хитрых махинаций с регистрами при вызове знаковых movsx/imul/idiv, до разбора анатомии новой стандартной библиотеки (std::optional и std::pair), работающей по принципу Zero-Cost Abstractions. Узнайте, как мономорфизация AST-деревьев и System V ABI позволяют выжимать максимум из кремния без единого байта накладных расходов.

Читать далее

Metastopilot: инструмент, который не пишет код, а сокращает его обсуждение

Время на прочтение23 мин
Охват и читатели32K

Этот пародия, продолжение истории про Stopilot — инструмент‑противовес для Cursor и прочих AI‑assisted IDE, который не даёт писать код, пока разработчик не объяснит, что именно меняет, зачем, как откатить и кто будет это поддерживать.

После первого текста стало понятно, что Stopilot сделал то, чего обычно не делают инструменты против лишней активности: сам породил запрос на продолжение. Один технический директор сформулировал точнее всех: «Мы поставили Stopilot, и разработчики действительно стали писать меньше лишнего кода. Но теперь они стали больше обсуждать, почему они его не пишут. Можно как‑то остановить и это?»

Так появился Metastopilot — инструмент для команд, которые уже внедрили инструмент, мешающий внедрять инструменты.

Если Stopilot вставал между разработчиком и генерацией кода, то Metastopilot встаёт между командой и моментом, когда здравый вопрос «зачем?» превращается во встречу, документ и ответственного за дальнейшие встречи.

Именно этого, как выяснилось, рынку не хватало.

Слово Артёму!

Я дал LLM писать unsafe Rust полгода. Miri плакал

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.2K

Полгода я давал LLM писать unsafe Rust в боевых проектах и разбирал каждый блок под miri и санитайзерами. Категории ошибок, которые модели делают стабильно: aliasing, провенанс, layout в alloc/dealloc, забытый ManuallyDrop, гонки в FFI-колбэках, ручные Send/Sync, uninit-память, Pin. Каждая категория идёт с минимальным примером и фиксом.

Читать далее

Vercel выкатил язык программирования для агентов. Я пытаюсь понять, нужен ли он мне

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели12K

15 мая Vercel Labs релизнули Zero. Экспериментальный системный язык, который сами авторы называют "the programming language for agents". Версия 0.1.1, Apache 2.0, расширение .0, бинарники меньше 10 килобайт, без LLVM. На GitHub лежит компилятор, стандартная библиотека и примеры — можно ставить и щупать прямо сейчас.

Я прочитал доки, поставил себе, погонял пару примеров. Сижу с этой мыслью: серьёзно или очередной хайповый проект под волну агентного кодинга?

Если коротко — наверное серьёзно, но мне сейчас не нужно. Тебе, скорее всего, тоже. Сейчас расскажу, что там и почему я так думаю.

Читать далее

Я сделал альтернативу Cursor за выходные: она ничего не пишет за программиста и приносит 1,29 млн рублей в месяц

Время на прочтение9 мин
Охват и читатели77K

Это пародия... на многое

Статья‑интервью написана на основе разговора с Артёмом, основателем проекта Stopilot — редактора кода, который помогает разработчику не писать код, пока тот не понял задачу.

Большинство историй про AI‑инструменты выглядят одинаково: человек открывает Cursor, за выходные собирает SaaS, выкладывает скриншот MRR и дальше объясняет, что главное — не думать, а быстро валидировать гипотезы. Рынок не ждёт, окно возможностей закрывается, конкуренты уже деплоят.

Артём пошёл в другую сторону. Он заметил, что после Cursor у многих команд появилась новая проблема: код пишется быстрее, чем его успевают понимать. За выходные он собрал альтернативу Cursor, которая на любой промпт отвечает: «Сначала сформулируйте задачу человеческими словами». Через 8 месяцев Stopilot вышел на 1,29 млн рублей в месяц.

Он сам расскажет, как это было.

Почитаем