Обновить
256K+

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

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

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

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

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

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 мин
Охват и читатели9.8K

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

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

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

Читать далее

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

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

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

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

Читать далее

CactOS

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

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

Читать далее

MemForge2: загрузочная флешка, которая за минуту говорит — какую планку памяти менять

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

Сегодня собирал HP EliteDesk 8300, четыре планки DDR3 по 2 ГБ. При первой загрузке — синий экран Windows. Стандартный сценарий: сейчас полчаса вытаскивать планки по одной, перезагружаться, выяснять какая сбойная. «Танцы с бубнами», которые каждый сервисник делал тысячу раз.

Потом вспомнил, что у меня есть собственный инструмент ровно для этого. Воткнул флешку, прогон, минута — на экране большими буквами: REPLACE DIMM1, confidence HIGH. Чтобы убедиться что программа не «запоминает» слот а реально находит планку, переставил её в DIMM4. Прогон повторно — нашла её и в DIMM4, тот же серийник из SPD. Замена планки — BSOD больше нет.

Я работаю на сборке ПК — и новых, и б/у. На б/у это типичная ситуация: всё собрано, провода уложены, включаешь — синий экран на загрузке. Метод исключения работает, но это перезагрузка за перезагрузкой, глубокий вдох перед каждой, час твоего времени уходит на то, что должна была бы решить минута. Мне нужен был инструмент, который сразу показывает где проблема — без часовых прогонов и без танцев со свапами планок. Готового с такой комбинацией возможностей я не нашёл, поэтому собрал свой.

Сразу честно про авторство. Я не программист. Я сборщик. Код MemForge2 писал не я — его писал Claude (LLM от Anthropic) под мою постановку задачи. Я приходил с пониманием предметной области («нужно SPD через SMBus, серийник для гарантии, MCA‑снимок до/после, контекст в момент ошибки»), описывал что должна делать программа на конкретных кейсах со своей сборки, гонял каждую версию на реальном железе, ловил баги, возвращался с дампами и описаниями поведения. Claude писал C, разбирался с UEFI‑API, MSR‑ами, SMBus‑протоколом, SPD JEDEC‑стандартом.

Читать далее

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 мин
Охват и читатели11K

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

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

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

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

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

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 мин
Охват и читатели31K

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

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

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

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

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

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

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

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

Полгода я давал 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 мин
Охват и читатели71K

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

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

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

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

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

Почитаем

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

Свой P2P-файлообменник с блэкджеком и NAT punching: как пет-проект Z-Folder стал заменой облакам

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

В современных реалиях, когда интернет всё чаще напоминает минное поле с

блокировками и замедлениями, надежда на зарубежные (да и на некоторые

локальные) сервисы тает с каждым днем. В какой-то момент я пришел к выводу:

если хочешь, чтобы инструмент работал стабильно и не зависел от настроения

провайдеров или геополитики — напиши его сам.

 

Так появился, например, Fury Messenger (о котором я уже писал здесь) — мессенджер для

Android, заточенный под нестабильное соединение. Но решив проблему текстового

общения, я столкнулся со следующей «болью»: обмен файлами и документооборот. Именно на большом обьеме, а не кидая файлики или фоточки через мессенджер.

 В этой статье расскажу, как я реализовал систему прямой передачи данных между

компьютерами, почему облака — это иногда лишнее звено, и как мой «велосипед»

в итоге уехал в B2B-сегмент.

 

Проблема: Танцы с бубном вокруг VPN

 Типичный сценарий обмена файлами сегодня выглядит так:

 1.  Залить в Telegram (ограничение по размеру, скорость иногда «режут»).

2.  Закинуть на Google Drive/Dropbox (нужен VPN, который нужно то включать, то

    выключать, чтобы не отвалились другие сервисы).

3.  Передать через локальную сеть (сложно настроить права доступа, если люди

    сидят в разных сегментах или городах).

 

Мне хотелось простоты: как в старой доброй Windows Shared Folder, но через

интернет и без необходимости быть системным администратором 80-го уровня.

Чтобы можно было просто «расшарить» папку конкретному человеку и передать файл

на максимально возможной скорости канала.

Читать далее

Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2

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

Мы продолжаем увлекательное путешествие по миру удалённого доступа. В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE, а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux.

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

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

В бездну виндового угнетения

Тайна общей тарелки или System Design дачного шашлыка на 20 гостей

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

Дядя Петя съедает 12% всего шашлыка. Backend-инженер видит классический hot key в multi-tenant.

Дачный шашлык на 20 гостей это producer-consumer система с общей тарелкой как bounded buffer. 8-часовой маринад работает как pre-warm cache с TTL. Шампуры это connection pool с риском утечки. Соседская собака утащила мясо, и это unhandled storage failure без backup’а. Шеф приостанавливается при полной тарелке, чистый backpressure.

Парные сравнения альтернатив, таблица failure modes, измерения с дачи, ссылки на DDIA и Release It!.

Принципы те же что в backend, инструменты другие.

Читать далее

Индия хотела купить суперкомпьютер. Ей отказали. Она собрала свой

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

В конце 1980-х Индия попыталась купить суперкомпьютер Cray Y-MP, но США не выдали экспортную лицензию. Вместо этого в стране создали центр C-DAC и за три года собрали собственный суперкомпьютер PARAM 8000. Разбираем, как это получилось и почему отказ Cray в итоге сыграл Индии на руку.

Читать далее

Твой async fn на самом деле enum, а Pin нужен потому, что Rust наступил на грабли самоссылающихся структур

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

async fn в Rust — это не магия и не зелёный поток, а обычный enum, который компилятор генерирует за тебя. Разбираем, почему Future это машина состояний, зачем нужен Pin, как работает Waker и executor, и как одна .await-точка может незаметно заставить твой сервис есть память гигабайтами.

Читать далее

Кто набрал сотни звёзд в Open Source СНГ? И как ваш проект может оказаться следующим

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

⭐️ Каждый месяц мы собираем топ open source проектов СНГ по приросту звёзд!

Публикуем самые быстрорастущие проекты сообщества разбираем, почему они получают внимание, и делимся практическими советами, которые помогают авторам развивать свои проекты и привлекать контрибьюторов.

Если вы тоже развиваете Open Source проект, возможно следующий топ будет уже с вашим репозиторием :)

Читать далее

Изнанка Remote Desktop. Протокол SPICE в современном графическом стеке, часть 1

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

Вы когда‑нибудь пользовались виртуальной машиной в Linux? Весьма вероятно, что это был QEMU/KVM + SPICE.

Виртуальные машины на spice://localhost:5900 работают достаточно бодро, тогда как подключение по сети может вызвать самые разные эмоции. Причиной тому является специфическая архитектура, которая идёт вразрез с современными диспетчерами среды рабочего стола. И вялая поддержка протокола open‑source сообществом.

Но нас, безбашенных русских инженеров, это нисколько не останавливает! Открываю цикл статей, где мы заглянем внутрь протокола SPICE и графической подсистемы Windows, чтобы провести увлекательный экскурс и разобраться в деталях. После чего создадим пилот нового решения — стриминговый агент для виртуальной машины на ОС Windows.

В первой части мы возьмёмся за сам протокол и увидим, почему SPICE ориентирован на Windows (да, я не шучу). В следующих частях пойдём разбираться в богатствах Windows и в возможностях для нас присосаться подключиться через системное API к потоку фреймов.

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

Поехали!
1
23 ...