<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / Системное программирование / Хабр]]></title>
    <link>https://habr.com/ru/hubs/system_programming/articles/</link>
    <description><![CDATA[Системное программирование – обеспечение работы прикладного ПО]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sun, 03 May 2026 08:40:06 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Реализация модульной архитектуры прошивки методом ручной динамической линковки на примере STM32]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030752/</guid>
      <link>https://habr.com/ru/articles/1030752/?utm_campaign=1030752&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/465/253/b08/465253b081bd8dafed0bedacb99584de.png" /><p>Рассмотрен подход к созданию управляемого "бэкдора", позволяющего подгружать функции без остановки и перезагрузки. С помощью манипуляций с линкер-скриптом и средств языка <em>C</em> создаются "точки расширения" в прошивке, позволяющие в будущем внедрять новые функциональные модули без пересборки и перезаписи всей программы. Такой подход может быть полезен при разработке отказоустойчивых систем для оптимизации жизненного цикла встроенного ПО, так как позволяет заложить гибкость при непредвиденных модификациях.</p> <a href="https://habr.com/ru/articles/1030752/?utm_campaign=1030752&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 02 May 2026 23:19:13 GMT</pubDate>
      <dc:creator><![CDATA[RomanBashmakov]]></dc:creator>
      
      <category><![CDATA[Бутлоадер]]></category><category><![CDATA[линкер]]></category><category><![CDATA[бэкдор]]></category><category><![CDATA[системное программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[В чем реальная проблема внедрения видеоаналитики на предприятиях?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030188/</guid>
      <link>https://habr.com/ru/articles/1030188/?utm_campaign=1030188&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e84/f5f/c39/e84f5fc3978ea5c53c5bf60a435161e2.jpg" /><p>Многие заказчики полагают, что современная видеоаналитика мыслит почти как человек: видит кадр, узнает объект и принимает решение. На самом деле это не так. Нейросети, лежащие в основе этих систем, пока далеки от человеческого мышления.</p><p>Нейросеть не ищет в своей памяти «похожую картинку», как это делал бы человек. Вместо этого она выделяет в кадре набор математических признаков (например: «объект круглой формы находится в верхней части другого объекта»). На основе миллионов заранее обученных весов (параметров) сеть вычисляет вероятность: «это каска — 96%», «это человек — 98%».</p><p><strong>Откуда берутся весы?</strong>&nbsp;База знаний нейросети наполняется вручную на этапе обучения. Специалисты-разметчики показывают модели тысячи кадров, выделяя на них людей, каски, инструменты и другие нужные объекты.</p> <a href="https://habr.com/ru/articles/1030188/?utm_campaign=1030188&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 30 Apr 2026 14:24:55 GMT</pubDate>
      <dc:creator><![CDATA[Nikittq]]></dc:creator>
      
      <category><![CDATA[видеоаналитика]]></category><category><![CDATA[IT-интегратор]]></category><category><![CDATA[внедерение]]></category><category><![CDATA[промышеленные предприятия]]></category><category><![CDATA[нейросеть]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[«Брус-16»: учебная игровая приставка с оригинальной минималистичной архитектурой]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/yadro/articles/1023972/</guid>
      <link>https://habr.com/ru/companies/yadro/articles/1023972/?utm_campaign=1023972&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8f1/c1c/647/8f1c1c64757d8575c8349e0292df14f1.png" /><p><a href="https://github.com/true-grue/Brus-16">«Брус-16»</a> — это новая игровая приставка. За полтора месяца мы спроектировали ее архитектуру, а также создали виртуальную машину, компилятор и аппаратную реализацию на FPGA. Специально для Брус-16 написано более 10 игр. Если вам интересны “серьезные” темы системного программирования, компьютерных архитектур и цифровой схемотехники, а также темы “несерьезные” – разработка игр в духе ретро-инди, демосцена и эстетика минимализма, то читайте дальше. Кстати, картинка выше состоит ровно из 64 прямоугольников. Это важно. Впрочем, обо всем по порядку!</p> <a href="https://habr.com/ru/articles/1023972/?utm_campaign=1023972&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 14:02:02 GMT</pubDate>
      <dc:creator><![CDATA[true-grue (YADRO)]]></dc:creator>
      
      <category><![CDATA[системное программирование]]></category><category><![CDATA[fpga]]></category><category><![CDATA[плис]]></category><category><![CDATA[разработка игр]]></category><category><![CDATA[игровая консоль]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Pragmata взломали за два дня до релиза. Шесть слоёв защиты Denuvo и как их обходят через гипервизор]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027974/</guid>
      <link>https://habr.com/ru/articles/1027974/?utm_campaign=1027974&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/1f8/d74/69f/1f8d7469f83065b3a40e9382fda69699.png" /><p>15 апреля 2026 года Pragmata, новый sci-fi экшен от Capcom, появилась на пиратских ресурсах. Игра официально вышла 17 апреля. Платящие клиенты ждали разблокировки в Steam, а пираты уже бегали по лунной станции. Денуво, который должен был защитить хотя бы первые недели — самые продажные дни, ради которых эту защиту и покупают — пробит через hypervisor bypass от команды DenuvOwO. И это не аномалия: с декабря 2025-го Denuvo проигрывает каждую неделю. Persona 5 Royal, Borderlands 4, Resident Evil: Requiem, Crimson Desert, теперь Pragmata.</p><p>Под капотом — модифицированный open-source отладчик HyperDbg, EfiGuard как UEFI-bootkit, патчинг PatchGuard через паттерн-матчинг Zydis, спуфинг CPUID и KUSER_SHARED_DATA через EPT. Технически — kernel rootkit, юридически — пакет «play &amp; restore» из закрытого Telegram-канала. Денуво живёт в Ring 3, обход — в Ring -1, между ними четыре уровня привилегий: detection из user-mode принципиально невозможен.</p><p>В статье разбираю шесть слоёв защиты, которые приходится снять, чтобы загрузить пиратский гипервизор: Secure Boot, PatchGuard, DSE, CPUID/RDTSC, KUSER_SHARED_DATA, Steam ownership. Что держит — HVCI. Что может сделать Irdeto и почему все варианты плохи. И на закуску — voices38, который через 40 дней после релиза Resident Evil: Requiem опубликовал классический crack: +5% FPS и работа под Proton на Linux, чего hypervisor-метод никогда не умел.</p> <a href="https://habr.com/ru/articles/1027974/?utm_campaign=1027974&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 27 Apr 2026 09:00:08 GMT</pubDate>
      <dc:creator><![CDATA[ShyDamn]]></dc:creator>
      
      <category><![CDATA[Denuvo]]></category><category><![CDATA[hypervisor bypass]]></category><category><![CDATA[DRM]]></category><category><![CDATA[Pragmata]]></category><category><![CDATA[EfiGuard]]></category><category><![CDATA[HyperDbg]]></category><category><![CDATA[Ring -1]]></category><category><![CDATA[виртуализация]]></category><category><![CDATA[защита от пиратства]]></category><category><![CDATA[Capcom]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[OptimaOS: архитектура Rust-ядра, которое загружается на реальном железе]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028378/</guid>
      <link>https://habr.com/ru/articles/1028378/?utm_campaign=1028378&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5ae/816/b74/5ae816b74a4ed46e7f280599f9ebd8ab.jpg" /><p>Центральная идея: одно ядро, runtime-профили</p><p>Проблема, которую решает OptimaOS — фрагментация через форкинг. Android — форк Linux. Embedded-дистрибутивы — форки с кастомными патчами под каждый SoC. AI-стеки — отдельные кодовые базы. Каждый форк — это отдельный security-аудит, отдельная команда и свой накапливающийся регресс.</p> <a href="https://habr.com/ru/articles/1028378/?utm_campaign=1028378&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 27 Apr 2026 07:33:05 GMT</pubDate>
      <dc:creator><![CDATA[ANTON62]]></dc:creator>
      
      <category><![CDATA[optimaos]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что скрывается в корпоративной рассылке: очевидные вещи, которые обычно не делают]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028116/</guid>
      <link>https://habr.com/ru/articles/1028116/?utm_campaign=1028116&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0d2/e8b/dd6/0d2e8bdd63ff4fd9ec8a6084627d19fd.jpg" /><p>Большинство компаний уже умеют делать «нормальные» рассылки: есть шаблон, темы писем, календарь и какие‑то метрики. На этом уровне всё обычно и останавливается: письма что‑то рассказывают, но слабо влияют на процессы и не используют свой потенциал. Внутри всё выглядит прилично: open rate «нормальный», люди иногда переходят по ссылкам, новая политика безопасности или свежий релиз продукта формально донесены до адресатов. Но ощущение такое, будто рассылка живёт сама по себе, а жизнь компании — сама по себе.</p><p>В этой статье я соберу несколько нетривиальных методик корпоративных рассылок — не про то, «как правильно верстать в таблицах» или «почему нужен SPF/DKIM/DMARC», а про вещи, которые лежат чуть глубже. Как использовать прехедер и автоответы как инструмент, превратить статистику в личные письма, не бояться ошибок в рассылках, заставить письма двигать внутренние процессы, подружиться с отпиской и оживить самые скучные служебные уведомления. Каждый кейс дальше можно будет развернуть в отдельную статью, а сейчас — обзор с небольшими анонсами.</p> <a href="https://habr.com/ru/articles/1028116/?utm_campaign=1028116&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 26 Apr 2026 13:11:38 GMT</pubDate>
      <dc:creator><![CDATA[egrifey]]></dc:creator>
      
      <category><![CDATA[email]]></category><category><![CDATA[email-маркетинг]]></category><category><![CDATA[email рассылки]]></category><category><![CDATA[email оповещения]]></category><category><![CDATA[email-рассылка]]></category><category><![CDATA[email-marketing]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Своя почта против Gmail]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027950/</guid>
      <link>https://habr.com/ru/articles/1027950/?utm_campaign=1027950&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/08e/7a3/ba1/08e7a3ba1071369ba4c4b944cb95cc48.jpg" /><p>В&nbsp;первой статье я рассказывал историю «деда из&nbsp;деревни», который вместе с&nbsp;внуком поднял свой почтовый сервер вместо Gmail&nbsp;— на&nbsp;обычном VPS, с&nbsp;доменом, DNS‑записями и всеми сопутствующими приключениями. Эта иллюстрация продолжает ту&nbsp;линию: дед‑айтишник и внук уже не&nbsp;просто радуются первому письму, а&nbsp;разбираются, что&nbsp;происходит с&nbsp;их маленьким сервером в&nbsp;большом почтовом мире. </p> <a href="https://habr.com/ru/articles/1027950/?utm_campaign=1027950&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 25 Apr 2026 18:37:50 GMT</pubDate>
      <dc:creator><![CDATA[egrifey]]></dc:creator>
      
      <category><![CDATA[email]]></category><category><![CDATA[email-маркетинг]]></category><category><![CDATA[email-рассылки]]></category><category><![CDATA[email оповещения]]></category><category><![CDATA[сетевое администрирование]]></category><category><![CDATA[сетевое оборудование]]></category><category><![CDATA[сетевое программирование]]></category><category><![CDATA[сетевое устройство]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Визуализатор структуры адреса на Си для Linux и Termux: Попасть в «Голову» кеш-линии]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1026430/</guid>
      <link>https://habr.com/ru/articles/1026430/?utm_campaign=1026430&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/953/6ef/798/9536ef7989bed8470d3ff7ce313d4dbd.png" /><p>В 47 мои увлечения стали Си, Radare2 , Биты, Логика, Память. Изучая память зацепился за адреса. На адрес 0x7ffe10b284 можно смотреть бесконечно долго. Трудно сказать с ходу насколько удачно ваши данные легли в память. Влезают они в одну кеш-линию или размазаны по двум. Чтоб не заниматься битовой арифметикой в уме, я написал утилиту на Си для Linux и Termux. Она раскладывает младшие 12 бит адреса на 4 строки визуализации. Теперь сразу видно, попали мы в "Голову" или застряли в "Хвосте" кеш-линии.</p><p>Утилита максимально легковесная. Вам не нужны сложные дебаггеры, достаточно gcc. Работает, как на десктопном Linux, так и в Termux на Android. Можно проверить выравнивание даже лёжа на диване.</p> <a href="https://habr.com/ru/articles/1026430/?utm_campaign=1026430&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 22 Apr 2026 08:15:49 GMT</pubDate>
      <dc:creator><![CDATA[DataViz]]></dc:creator>
      
      <category><![CDATA[С]]></category><category><![CDATA[Кеш]]></category><category><![CDATA[низкоуровневое программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Внутреннее устройство ОС RT-11: копаемся в исходом коде. Часть первая]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1026302/</guid>
      <link>https://habr.com/ru/articles/1026302/?utm_campaign=1026302&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><strong>RT-11</strong> — это операционная система из 1970-х годов для популярного в то время мини-компьютера <strong>PDP-11</strong> фирмы DEC. В СССР известна под именами Электроника 60, ДВК, БК 0011М. Для тех, кто любит изучать чужой код в поисках инженерной эстетики — дальнейшее изложение.</p> <a href="https://habr.com/ru/articles/1026302/?utm_campaign=1026302&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 21 Apr 2026 19:27:17 GMT</pubDate>
      <dc:creator><![CDATA[IlyasKzn]]></dc:creator>
      
      <category><![CDATA[RT-11]]></category><category><![CDATA[PDP-11]]></category><category><![CDATA[DEC]]></category><category><![CDATA[БК-0010]]></category><category><![CDATA[РАФОС]]></category><category><![CDATA[ФОДОС]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1025964/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1025964/?utm_campaign=1025964&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c71/c88/c01/c71c88c01ae328e108217fc3ddd5c117.jpg" /><p>Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. </p><p>Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для&nbsp;тех, кто строит или&nbsp;эксплуатирует highload‑системы, это хороший способ заново посмотреть на&nbsp;причины тормозов там, где код вроде&nbsp;бы уже давно «нормально работает».</p> <a href="https://habr.com/ru/articles/1025964/?utm_campaign=1025964&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">К сути статьи</a>]]></description>
      
      <pubDate>Tue, 21 Apr 2026 09:00:10 GMT</pubDate>
      <dc:creator><![CDATA[kmoseenk (OTUS)]]></dc:creator>
      
      <category>highload</category><category>инфраструктура highload</category><category>Mechanical Sympathy</category><category>производительность ПО</category><category>многопоточность</category><category>оптимизация highload</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Не просто OpenBMC: как мы сделали свой BMC]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/openyard/articles/1024534/</guid>
      <link>https://habr.com/ru/companies/openyard/articles/1024534/?utm_campaign=1024534&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0c5/c47/70a/0c5c4770a6cd7eb4afbb3a4b9813f90c.jpeg" /><p>Привет, Хабр! Летом мы <strong><a href="https://habr.com/ru/companies/openyard/articles/940458/">рассказывали</a></strong> о сложном, но очень интересном пути в создании UEFI-загрузчика для серверных продуктов компании OpenYard. Теперь хочется перейти к его постоянному спутнику ― BMC, без которого сегодня трудно представить полноценную серверную платформу.&nbsp;</p> <a href="https://habr.com/ru/articles/1024534/?utm_campaign=1024534&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 20 Apr 2026 07:00:05 GMT</pubDate>
      <dc:creator><![CDATA[tohas1986 (OpenYard)]]></dc:creator>
      
      <category><![CDATA[OpenYard]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[openbmc]]></category><category><![CDATA[серверы]]></category><category><![CDATA[серверное администрирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ICMP-туннель на уровне ядра Linux: передаём TCP/UDP-трафик через эхо-запросы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025264/</guid>
      <link>https://habr.com/ru/articles/1025264/?utm_campaign=1025264&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Недавно я наткнулся <a href="https://habr.com/ru/companies/ruvds/articles/516266/" rel="noopener noreferrer nofollow">на статью о том, что в ICMP-пакеты можно вставлять произвольные данные</a>. Сразу возникла мысль: а почему бы не попробовать загнать весь трафик через ICMP (да, о существовании ICMP-туннеля я тоже ничего не знал). Так появился проект — ICMP?туннель на уровне ядра, который:</p> <a href="https://habr.com/ru/articles/1025264/?utm_campaign=1025264&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Apr 2026 13:46:18 GMT</pubDate>
      <dc:creator><![CDATA[kormilicinkostia]]></dc:creator>
      
      <category><![CDATA[linux kernel]]></category><category><![CDATA[си]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Управление фазой аппаратного PWM сигнала на STM32 (или таймер на ошейнике)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1023940/</guid>
      <link>https://habr.com/ru/articles/1023940/?utm_campaign=1023940&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3e7/898/fc2/3e7898fc2da7158e3854867fa5c46a10.jpg" /><p>На микроконтроллерах  STM32 можно генерировать <strong>аппаратные </strong>PWM сигналы. Это всегда применяют для регулирования яркости свечения, управления температурой нагревателей, управления крутящим моментом на электрических моторах. <br><br>При этом на STM32 обычно очень легко регулировать частоту, заполнение и инвертировать фазу меняя полярность. <br><br>Однако как <u>непрерывно</u> регулировать фазу PWM? </p><p>В этом тексте я написал <strong>четыре способа</strong> управлять фазой PWM сигнала.</p> <a href="https://habr.com/ru/articles/1023940/?utm_campaign=1023940&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 18 Apr 2026 12:13:47 GMT</pubDate>
      <dc:creator><![CDATA[aabzel]]></dc:creator>
      
      <category><![CDATA[pwm]]></category><category><![CDATA[stm32]]></category><category><![CDATA[phase]]></category><category><![CDATA[pwm phase]]></category><category><![CDATA[hw pwm]]></category><category><![CDATA[pwm hw]]></category><category><![CDATA[шим]]></category><category><![CDATA[master-slave]]></category><category><![CDATA[master]]></category><category><![CDATA[slave]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как одна буква в ассемблере стоит 3× производительности]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024862/</guid>
      <link>https://habr.com/ru/articles/1024862/?utm_campaign=1024862&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c1d/c1e/cda/c1dc1ecda70fcf828db466f7b9373aff.png" /><p>Я хочу показать вам, как одна буква в ассемблере может стоить 3× производительности. Не в теории — на живых замерах. По дороге мы заглянем внутрь процессора: Register Alias Table, partial register merge, scheduler, latency vs throughput, и даже обнаружим, что делитель выдаёт остаток раньше частного.</p><p>Но начнём с основ. Приготовьтесь: кроличья нора окажется глубже, чем кажется.</p> <a href="https://habr.com/ru/articles/1024862/?utm_campaign=1024862&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 19:16:12 GMT</pubDate>
      <dc:creator><![CDATA[Erbium]]></dc:creator>
      
      <category><![CDATA[x86]]></category><category><![CDATA[assembly]]></category><category><![CDATA[NASM]]></category><category><![CDATA[div]]></category><category><![CDATA[partial register merge]]></category><category><![CDATA[latency]]></category><category><![CDATA[throughput]]></category><category><![CDATA[микроархитектура]]></category><category><![CDATA[Skylake]]></category><category><![CDATA[оптимизация]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Rust 1.95.0: макрос cfg_select!, if-let guards в match-выражениях]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024620/</guid>
      <link>https://habr.com/ru/articles/1024620/?utm_campaign=1024620&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Команда Rust рада объявить о новом выпуске Rust 1.95.0. Rust — это язык программирования, который дает каждому возможность создавать надежное и эффективное программное обеспечение.</p><p>Если у вас уже установлена предыдущая версия Rust через <code>rustup</code>, вы можете получить 1.95.0 командой:</p><p><code>$ rustup update stable </code></p><p>Если у вас еще не установлен Rust, вы можете <a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer nofollow">получить <code>rustup</code></a> на соответствующей странице нашего сайта, а также ознакомиться с <a href="https://doc.rust-lang.org/stable/releases.html#version-1950-2026-04-16" rel="noopener noreferrer nofollow">подробными примечаниями к выпуску 1.95.0</a>.</p><p>Если вы хотите помочь нам, тестируя будущие релизы, попробуйте локально переключиться на beta-канал (<code>rustup default beta</code>) или nightly-канал (<code>rustup default nightly</code>). Пожалуйста, <a href="https://github.com/rust-lang/rust/issues/new/choose" rel="noopener noreferrer nofollow">сообщайте</a> о любых найденных ошибках!</p> <a href="https://habr.com/ru/articles/1024620/?utm_campaign=1024620&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что вошло в стабильный 1.95.0</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 11:20:35 GMT</pubDate>
      <dc:creator><![CDATA[RustLangRu]]></dc:creator>
      
      <category>перевод</category><category>новости технологий</category><category>cargo</category><category>clippy</category><category>rustc</category><category>rust</category><category>release</category><category>stable</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Rust 1.94.0: метод array_windows у массива, ключ include в конфигурационных файлах, поддержка TOML 1.1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024612/</guid>
      <link>https://habr.com/ru/articles/1024612/?utm_campaign=1024612&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Команда Rust рада объявить о новом выпуске Rust 1.94.0. Rust — это язык программирования, который дает каждому возможность создавать надежное и эффективное программное обеспечение.</p><p>Если у вас уже установлена предыдущая версия Rust через <code>rustup</code>, вы можете получить 1.94.0 командой:</p><p><code>$ rustup update stable </code></p><p>Если у вас еще не установлен Rust, вы можете <a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer nofollow">получить <code>rustup</code></a> на соответствующей странице нашего сайта, а также ознакомиться с <a href="https://doc.rust-lang.org/stable/releases.html#version-1940-2026-03-05" rel="noopener noreferrer nofollow">подробными примечаниями к выпуску 1.94.0</a>.</p><p>Если вы хотите помочь нам, тестируя будущие релизы, попробуйте локально переключиться на beta-канал (<code>rustup default beta</code>) или nightly-канал (<code>rustup default nightly</code>). Пожалуйста, <a href="https://github.com/rust-lang/rust/issues/new/choose" rel="noopener noreferrer nofollow">сообщайте</a> о любых найденных ошибках!</p> <a href="https://habr.com/ru/articles/1024612/?utm_campaign=1024612&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что вошло в стабильный 1.94.0</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 11:14:59 GMT</pubDate>
      <dc:creator><![CDATA[RustLangRu]]></dc:creator>
      
      <category>перевод</category><category>новости технологий</category><category>clippy</category><category>cargo</category><category>rustc</category><category>release</category><category>stable</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Почему твой Open Source проект не замечают?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024074/</guid>
      <link>https://habr.com/ru/articles/1024074/?utm_campaign=1024074&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/da4/7a1/d12/da47a1d12dcfce5b48e29c2f84100096.png" /><p>Вы сделали open source проект. Потратили на него недели или даже месяцы: продумали архитектуру, аккуратно написали код, добавили нужные фичи. Даже сами начали им пользоваться. <br>А потом открыли GitHub… и ничего не произошло. Ни пользователей. Ни обсуждений. Ни pull request’ов. Иногда даже звёзды не появляются.</p><p>И в этот момент возникает вполне логичный вопрос:<br> <strong>“Что не так?”</strong></p><p> Разбираем, что мешает проектам получать пользователей и контрибьюторов, и как это изменить.</p> <a href="https://habr.com/ru/articles/1024074/?utm_campaign=1024074&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Apr 2026 09:12:58 GMT</pubDate>
      <dc:creator><![CDATA[temaweb10]]></dc:creator>
      
      <category><![CDATA[open source]]></category><category><![CDATA[опенсорс]]></category><category><![CDATA[программирование]]></category><category><![CDATA[веб разработка]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[свободное программное обеспечение]]></category><category><![CDATA[разработка]]></category><category><![CDATA[github]]></category><category><![CDATA[научпоп]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы с внуком подняли свой сервер вместо Gmail в деревне]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1023586/</guid>
      <link>https://habr.com/ru/articles/1023586/?utm_campaign=1023586&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d1d/c67/20d/d1dc6720dbbf4adae378deebdbfd8e02.jpg" /><p>— Дед, Gmail опять всё перекрутил. Письма теряются, половина — реклама, интерфейс другой, ничего не понятно. Ты же у нас главный по всяким проводам, придумай что‑нибудь.</p><p>Я посмотрел на него, потом на старый систем ник в углу комнаты, на наш деревенский интернет, который любит падать в самый неподходящий момент, и вдруг поймал себя на мысли: а действительно, почему бы не попробовать завести почту «по‑стариковски» — на своём домене, на своём сервере, со своими правилами. Не потому что я лучше Google, а потому что интересно понять, сколько сегодня стоит «своя почта» для обычного человека из глуши и можно ли на ней жить в реальном, а не лабораторном деревенском быту.</p><p>Начал я, как ни странно, не с железа, а с имени.<br> Объяснил внуку, что домен — это человеческое имя вместо голых цифр. Ящик <a href="mailto:vnyuk@ded-v-derevne.ru" rel="noopener noreferrer nofollow"><code>vnyuk@ded-v-derevne.ru</code></a> звучит всё‑таки повеселее, чем <code>vanya2008_mega@какой‑нибудь‑бесплатный‑сервис</code>. Домен зарегистрировали, я зашёл в панель и занялся тем, что обычно никого не волнует, пока всё работает, — настройкой записей, которые говорят остальному миру, куда нести письма.</p><p>Рассказывал внуку на пальцах: вот у нас есть «адрес дома» — запись, где написано, на какой IP смотреть, когда кто‑то ищет <a href="http://ded-v-derevne.ru" rel="noopener noreferrer nofollow"><code>ded-v-derevne.ru</code></a>. Есть особая запись для почты — мол, «письма складывать вот сюда, в этот ящик на сервере». Есть ещё строка с перечислением тех, кому вообще можно доверять отправку писем от нашего имени — чтобы спамеры не прикидывались нами. Для него это звучало как какая‑то бюрократия, для меня — как привычная настройка, которой просто давно не занимался.</p> <a href="https://habr.com/ru/articles/1023586/?utm_campaign=1023586&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 20:23:36 GMT</pubDate>
      <dc:creator><![CDATA[egrifey]]></dc:creator>
      
      <category><![CDATA[email-рассылки]]></category><category><![CDATA[email-рассылка]]></category><category><![CDATA[email-marketing]]></category><category><![CDATA[email]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Проблема несанкционированного вызова инструментов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1019342/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1019342/?utm_campaign=1019342&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c0d/ef0/398/c0def03988258504b97e086061b219d9.jpg" /><p>Вызов инструментов в LLM сегодня воспринимается как решённая задача: модели научились стабильно работать с функциями, а API – ограничивать доступ. Но на практике остаётся неприятный класс сбоев, который не выглядит как баг, пока не становится инцидентом. В определённых условиях модель может «придумать» инструмент и успешно его вызвать – если он существует в окружении. В статье разберемся, почему это происходит, как это связано с архитектурой агентных систем и к каким последствиям приводит в реальных сценариях работы с данными и доступами.</p> <a href="https://habr.com/ru/articles/1019342/?utm_campaign=1019342&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Разобраться в рисках</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 14:00:32 GMT</pubDate>
      <dc:creator><![CDATA[kmoseenk (OTUS)]]></dc:creator>
      
      <category>llm</category><category>вызов инструментов LLM</category><category>безопасность LLM-систем</category><category>несанкционированный доступ</category><category>промпт-инъекции</category><category>агентные системы</category><category>архитектура AI</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Как мы запустили 35B LLM на видеокарте за $500: внутри ZINC inference engine]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020702/</guid>
      <link>https://habr.com/ru/articles/1020702/?utm_campaign=1020702&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/07f/4a9/342/07f4a9342283d98651f8423527c0a870.gif" /><p>Год назад запуск модели на 35 миллиардов параметров подразумевал облако, очередь на GPU, и счёт от провайдера в конце месяца. Сегодня я покажу, как мы сделали это на одной потребительской видеокарте AMD за $500 — без ROCm, без CUDA, без MLX, одним бинарником на Zig.</p><p>Это пост про <a href="https://github.com/zolotukhin/zinc" rel="noopener noreferrer nofollow">ZINC</a> — inference engine, который мы строим с нуля под железо, которое люди реально покупают. Не как proof of concept, а как рабочий инструмент с OpenAI-совместимым API, потоковой генерацией и встроенным чатом.</p> <a href="https://habr.com/ru/articles/1020702/?utm_campaign=1020702&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Погрузиться</a>]]></description>
      
      <pubDate>Wed, 08 Apr 2026 08:27:49 GMT</pubDate>
      <dc:creator><![CDATA[zolotukhinru]]></dc:creator>
      
      <category><![CDATA[LLM]]></category><category><![CDATA[inference]]></category><category><![CDATA[AMD]]></category><category><![CDATA[Vulkan]]></category><category><![CDATA[Zig]]></category><category><![CDATA[Metal]]></category><category><![CDATA[GPU]]></category><category><![CDATA[local AI]]></category><category><![CDATA[Qwen]]></category><category><![CDATA[MoE]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Логгер — это не про скорость: что действительно важно в дизайне]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020188/</guid>
      <link>https://habr.com/ru/articles/1020188/?utm_campaign=1020188&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6e5/628/0f8/6e56280f88687a23b0edf65b3e8fc22a.jpg" /><p>Когда логирование попадает в&nbsp;реальную систему, довольно&nbsp;быстро становится понятно, что&nbsp;это не&nbsp;про&nbsp;API и не&nbsp;про&nbsp;удобство вызова. Это про&nbsp;постоянный компромисс. </p><p>С&nbsp;одной стороны, хочется, чтобы система работала максимально&nbsp;быстро: любое логирование&nbsp;— это накладные расходы, и в&nbsp;нормальном режиме его стараются минимизировать. С&nbsp;другой стороны, как&nbsp;только возникает проблема, внезапно оказывается, что&nbsp;либо логов недостаточно,&nbsp;либо они есть, но&nbsp;в&nbsp;таком виде, что&nbsp;восстановить картину происходящего невозможно. В&nbsp;этот момент становится очевидно, что&nbsp;задача логгера&nbsp;— не&nbsp;просто «писать строки» максимально&nbsp;быстро, а&nbsp;помогать удерживать баланс между производительностью и диагностируемостью.</p><p>Первая проблема, которая всплывает практически сразу, связана не&nbsp;со скоростью, а&nbsp;со структурой. Лог начинает отражать структуру кода, а&nbsp;не&nbsp;структуру происходящего. Есть бизнес‑логика, есть библиотеки, есть множество параллельных операций, и каждая из&nbsp;них пишет что‑то своё. В&nbsp;итоге лог превращается в&nbsp;поток сообщений, где перемешаны разные задачи, и вместо «обработки конкретного запроса» мы видим просто последовательность вызовов. На&nbsp;небольшом проекте это ещё можно терпеть, но&nbsp;в&nbsp;серверной системе такая картина&nbsp;быстро становится непригодной для&nbsp;анализа.</p><p>Естественное&nbsp;желание&nbsp;— привязать лог не&nbsp;к&nbsp;месту вызова, а&nbsp;к&nbsp;самой задаче. Самый прямой путь&nbsp;— передавать контекст через параметры (например, инстанс логгера), но&nbsp;довольно&nbsp;быстро это начинает протекать через весь код и превращается в&nbsp;обязательный шум в&nbsp;сигнатурах. Гораздо более устойчивый подход&nbsp;— привязать контекст к&nbsp;потоку выполнения. В <a href="https://github.com/efmsoft/logme" rel="noopener noreferrer nofollow">библиотеке logme</a> это делается через thread channel:</p> <a href="https://habr.com/ru/articles/1020188/?utm_campaign=1020188&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Apr 2026 07:26:19 GMT</pubDate>
      <dc:creator><![CDATA[emishkurov]]></dc:creator>
      
      <category><![CDATA[логирование]]></category><category><![CDATA[логирование C++]]></category><category><![CDATA[системы логирования]]></category><category><![CDATA[дизайн логгера]]></category><category><![CDATA[logging]]></category><category><![CDATA[C++ logging]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019502/</guid>
      <link>https://habr.com/ru/articles/1019502/?utm_campaign=1019502&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ecc/a87/065/ecca8706541ed7511b338cc36b1cd4d7.png" /><p>Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования.</p><p>Мой проект <strong>Rwal</strong> — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.</p> <a href="https://habr.com/ru/articles/1019502/?utm_campaign=1019502&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 05 Apr 2026 12:45:29 GMT</pubDate>
      <dc:creator><![CDATA[Aloncie]]></dc:creator>
      
      <category><![CDATA[C++20]]></category><category><![CDATA[Rwal]]></category><category><![CDATA[CMake]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[архитектура ПО]]></category><category><![CDATA[Qt]]></category><category><![CDATA[utility]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Zig вместо C: пишем высокопроизводительный CLI-инструмент и заменяем 3000 строк C-кода]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019466/</guid>
      <link>https://habr.com/ru/articles/1019466/?utm_campaign=1019466&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f72/686/671/f72686671f353d046cea85a86d9b0a9a.png" /><p>Всё началось на второй паре по системному программированию. Нам дали задачу: написать CLI-утилиту для анализа логов - парсить файл, фильтровать записи по уровню ошибок, считать статистику, выводить красиво в консоль. "Ну понятно", - открыл я vim и началось мое долгое приключение...</p><p>Неделя. Две. Утилита называлась <strong><code>logz</code></strong>, она умела читать логи nginx и apache, фильтровать по уровню (DEBUG, INFO, WARN, ERROR), по дате, по IP, выводила топ адресов с наибольшим числом ошибок, рисовала простенький bar-chart прямо в терминале через unicode-символы. Только вот я сидел как-то вечером, запустил <strong><code>wc -l main.c</code></strong> - <strong>3147 строк</strong>. И смотрел на это число минуты три с таким лицом - <code>O_O</code>.</p><p>Сама утилита работала. Но открывая её осознаешь что - это месиво. Одна функция <code>process_file</code> на 400 строк. Сегфолты раз в неделю. Valgrind как лучший друг. И каждый раз когда надо добавить фичу - сначала полчаса вспоминаешь что вообще происходит в коде.</p><p>Потом я случайно прочитал пост про Zig на <a href="http://lobste.rs" rel="noopener noreferrer nofollow">lobste.rs</a>. Заинтересовался и попробовал. Через месяц у меня была та же утилита, но теперь на <strong>1089 строках</strong>, которая работала быстрее и не падала.</p><p>Тут я понял что вот золотая жила и расскажу о том  - зачем Zig, как переписывал, где облажался и что вышло в итоге.</p> <a href="https://habr.com/ru/articles/1019466/?utm_campaign=1019466&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Смотреть как горит C-код</a>]]></description>
      
      <pubDate>Sun, 05 Apr 2026 11:15:10 GMT</pubDate>
      <dc:creator><![CDATA[skywalker192]]></dc:creator>
      
      <category><![CDATA[zig]]></category><category><![CDATA[c]]></category><category><![CDATA[cli]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[производительность]]></category><category><![CDATA[компилятор]]></category><category><![CDATA[низкоуровневое программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Где вырастают разработчики компиляторов, JVM и рантаймов: СПИСОК-2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/axiomjdk/articles/1019438/</guid>
      <link>https://habr.com/ru/companies/axiomjdk/articles/1019438/?utm_campaign=1019438&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c1c/6fd/2c5/c1c6fd2c5cee2b71da762bb3d42fe60e.png" /><p>Есть конференции, куда идут за нетворком. А есть такие, куда идут за средой, в которой вырастают сильные инженеры, исследователи и создатели сложных технологий. <strong>СПИСОК</strong> — именно такая конференция.</p><p>С <strong>27 по 30 апреля 2026 года</strong> на базе матмеха СПбГУ пройдет всероссийская научная конференция по проблемам информатики <strong>СПИСОК-2026</strong>.</p><p>В этом году конференция посвящена памяти <strong>Андрея Николаевича Терехова</strong> — доктора физико-математических наук, профессора, многолетнего руководителя кафедры системного программирования СПбГУ, человека, который во многом сформировал эту школу и заметно повлиял на развитие российской ИТ-среды.</p><p>Свое участие в конференции уже подтвердили:</p> <a href="https://habr.com/ru/articles/1019438/?utm_campaign=1019438&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 05 Apr 2026 10:16:04 GMT</pubDate>
      <dc:creator><![CDATA[ekhala (Axiom JDK)]]></dc:creator>
      
      <category><![CDATA[jvm]]></category><category><![CDATA[виртуальная машина]]></category><category><![CDATA[axiomjdk]]></category><category><![CDATA[java]]></category><category><![CDATA[runtime]]></category><category><![CDATA[ринц]]></category><category><![CDATA[публикация]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[спбгу]]></category><category><![CDATA[компиляторы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Параллелизм с общим состоянием в Rust]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1018592/</guid>
      <link>https://habr.com/ru/articles/1018592/?utm_campaign=1018592&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d1b/03b/995/d1b03b995953ab0705295ccf7d2147df.jpeg" /><p>Привет, Хабр! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.</p> <a href="https://habr.com/ru/articles/1018592/?utm_campaign=1018592&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 02 Apr 2026 15:15:21 GMT</pubDate>
      <dc:creator><![CDATA[MaksUnweb]]></dc:creator>
      
      <category><![CDATA[backend]]></category><category><![CDATA[backend-программирование]]></category><category><![CDATA[rust]]></category><category><![CDATA[параллелизм]]></category><category><![CDATA[параллельные вычисления]]></category><category><![CDATA[параллельное программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1017842/</guid>
      <link>https://habr.com/ru/articles/1017842/?utm_campaign=1017842&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/08e/3e6/645/08e3e664550812e0d958d4c8dbbf74f2.png" /><p>Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее.</p><p>Но если копнуть глубже, оказывается, что это не совсем так.</p><p>В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры:<br> 👉 <a href="https://habr.com/ru/articles/1012874/" rel="noopener noreferrer nofollow">https://habr.com/ru/articles/1012874/</a></p><p>Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым.</p><p>В этой статье разберёмся, <strong>почему async logging не делает логирование быстрее само по себе</strong>, и что на самом деле происходит внутри:</p> <a href="https://habr.com/ru/articles/1017842/?utm_campaign=1017842&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 01 Apr 2026 16:20:11 GMT</pubDate>
      <dc:creator><![CDATA[emishkurov]]></dc:creator>
      
      <category><![CDATA[с++]]></category><category><![CDATA[логирование]]></category><category><![CDATA[асинхронное программирование]]></category><category><![CDATA[производительность]]></category><category><![CDATA[многопоточность]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Отладка программ уровнями логирования (или медицинская карта вашей программы)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1016480/</guid>
      <link>https://habr.com/ru/articles/1016480/?utm_campaign=1016480&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4e5/233/1df/4e52331dfb9273938e265c757295ff98.jpg" /><p>Программы часто отлаживают применяя printf-отладку. <br>Однако в этом есть недостаток. Со временем вывод printf сообщений становится настолько частыми и плотным, что становится просто невозможно что-либо прочитать. </p><p>Чтобы с этим бороться придумали уровни логирования Log Levels. <br><br>Суть в том, чтобы из shell консоли в run time можно было включать или отключить логи для конкретных программных компонентов.  Отдельными командами вы можете увеличивать или уменьшать многословность логирования. <br><br>Это позволяет Вам сфокусировать внимание на конкретном программном компоненте и найти суть ошибки в программе или причину по которой не проходит модульный тест.</p> <a href="https://habr.com/ru/articles/1016480/?utm_campaign=1016480&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 29 Mar 2026 12:56:03 GMT</pubDate>
      <dc:creator><![CDATA[aabzel]]></dc:creator>
      
      <category><![CDATA[LogLevel]]></category><category><![CDATA[log levels]]></category><category><![CDATA[log-levels]]></category><category><![CDATA[debug]]></category><category><![CDATA[error]]></category><category><![CDATA[warning]]></category><category><![CDATA[notice]]></category><category><![CDATA[trace]]></category><category><![CDATA[info]]></category><category><![CDATA[paranoid]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я учу C, делая ASCII игру]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1016516/</guid>
      <link>https://habr.com/ru/articles/1016516/?utm_campaign=1016516&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Я решил учить C не по учебникам, а через практику — сделать свою простую консольную игру. Не ради “проекта мечты”, а чтобы на собственных ошибках разобраться, как всё работает на самом деле.</p> <a href="https://habr.com/ru/articles/1016516/?utm_campaign=1016516&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 29 Mar 2026 10:46:23 GMT</pubDate>
      <dc:creator><![CDATA[Meronto]]></dc:creator>
      
      <category><![CDATA[C]]></category><category><![CDATA[ascii]]></category><category><![CDATA[игры]]></category><category><![CDATA[c++]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[консоль]]></category><category><![CDATA[windows]]></category><category><![CDATA[linux]]></category><category><![CDATA[gamedev]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Возврат значений из функций в x86-64: регистры, память и скрытые аргументы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1016440/</guid>
      <link>https://habr.com/ru/articles/1016440/?utm_campaign=1016440&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/2b7/b3b/5a2/2b7b3b5a2b560efd7b1bc9aaf926566d.png" /><p>Наверняка многие и не задумываются: а как на самом деле происходит возврат структур и других типов значений из функций? Что происходит под капотом, какие приемы задействует компилятор? В данной статье я постараюсь дать ответы на эти вопросы и сделать это просто и понятно.</p> <a href="https://habr.com/ru/articles/1016440/?utm_campaign=1016440&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 29 Mar 2026 07:22:54 GMT</pubDate>
      <dc:creator><![CDATA[klewy]]></dc:creator>
      
      <category><![CDATA[x86-64]]></category><category><![CDATA[assembly]]></category><category><![CDATA[возврат значений из функции]]></category><category><![CDATA[low-level programming]]></category><category><![CDATA[компилятор C++]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Всё про ИТ-архитектуру: монолит и микросервисы, системное мышление — интервью с Филиппом Дельгядо]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1015988/</guid>
      <link>https://habr.com/ru/articles/1015988/?utm_campaign=1015988&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/731/4b8/b24/7314b8b242fbfcda80dc6053b013818e.jpg" /><p>Архитектура в ИТ — это не «нарисовать диаграмму» и не «выбрать стек». Это работа со сложностью: там, где одной команде уже тесно, где требования конфликтуют, а решения нужно держать в голове годами.</p><p>В этом интервью я, Александр Шулепов (телеграм-канал Shulepov Code), поговорил с Филиппом Дельгядо — архитектором финтех-продуктов&nbsp;и создателем сайта&nbsp;<a href="http://lekton.io" rel="noopener noreferrer nofollow">lekton.io</a>&nbsp;— о том, с чего начинается архитектура, почему «монолит vs микросервисы» не решается одной фразой и какие навыки действительно определяют уровень специалиста. </p> <a href="https://habr.com/ru/articles/1015988/?utm_campaign=1015988&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 27 Mar 2026 14:27:14 GMT</pubDate>
      <dc:creator><![CDATA[aleksandr_shulepov]]></dc:creator>
      
      <category><![CDATA[ит-архитектура]]></category><category><![CDATA[архитектор по]]></category><category><![CDATA[микросервисы]]></category><category><![CDATA[монолиты]]></category><category><![CDATA[системное мышление]]></category><category><![CDATA[ddd]]></category><category><![CDATA[rfc]]></category><category><![CDATA[adr]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[CLI через CAN по ISO-TP (или утилита CANshell)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1013008/</guid>
      <link>https://habr.com/ru/articles/1013008/?utm_campaign=1013008&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fba/8f7/bed/fba8f7bed93702d3dd7cef440b401124.jpg" /><p>В этом тексте я написал как реализовать CLI на CAN шине. <br><br>В разработке электроники часто делают электронные плату без UART, но с CAN . <br><br>Как же отлаживать софт и железо в таких случаях? <br></p> <a href="https://habr.com/ru/articles/1013008/?utm_campaign=1013008&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 26 Mar 2026 18:26:45 GMT</pubDate>
      <dc:creator><![CDATA[aabzel]]></dc:creator>
      
      <category><![CDATA[can]]></category><category><![CDATA[CLI]]></category><category><![CDATA[shell]]></category><category><![CDATA[ISOTP]]></category><category><![CDATA[iso tp]]></category><category><![CDATA[iso-tp]]></category><category><![CDATA[WinSock2]]></category><category><![CDATA[WinSock]]></category><category><![CDATA[C]]></category><category><![CDATA[fifo]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Возможости современных моделей в разработке кода: кейс автоматического решения сложной проблемы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1014276/</guid>
      <link>https://habr.com/ru/articles/1014276/?utm_campaign=1014276&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/dcb/0d3/c3d/dcb0d3c3d7ef5a38ac517486f95580ee.jpg" /><p>Кейс полностью автономного траблшутинга нетривиальной системной проблемы с неработоспособностью NVENC в Docker-контейнере на Jetson Orin NX с помощью Claude Opus 4.6, как пример выхода больших языковых моделей за пределы квалификации middle-grade инженера. Около 40 минут заняло расследование проблемы, по мотивам которого, я попросил сеть написать статью, которую и предлагаю вашему вниманию как пример того, на что я мог потратить целый день, а большинство middle-grade инженеров бы не справилось вообще. Весь траблшутинг и статья сделаны в полностью автоматическом режиме без участия человека.</p> <a href="https://habr.com/ru/articles/1014276/?utm_campaign=1014276&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 24 Mar 2026 10:46:50 GMT</pubDate>
      <dc:creator><![CDATA[ivankudryavtsev]]></dc:creator>
      
      <category><![CDATA[nvidia]]></category><category><![CDATA[nvenc]]></category><category><![CDATA[gstreamer]]></category><category><![CDATA[video encoding]]></category><category><![CDATA[troubleshooting]]></category><category><![CDATA[ai]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Почему программисты стали писать медленный код и это почти никого не волнует]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1013014/</guid>
      <link>https://habr.com/ru/articles/1013014/?utm_campaign=1013014&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Иногда возникает странное ощущение: железо стало безумно быстрым, процессоры научились выполнять миллиарды операций в секунду, памяти стало больше, чем раньше было дискового пространства. Но почему-то программы всё равно тормозят. Открываешь простой веб-интерфейс — и ноутбук начинает шуметь вентиляторами. Запускаешь приложение для заметок — и оно ест полгигабайта RAM. Я долго думал, откуда это ощущение. Потом начал копаться: читать дизассемблер, смотреть профилировщики, запускать микробенчмарки. И постепенно стало понятно, что дело не в железе. Дело в том, как мы пишем код.</p><p>Предлагаю поговорить о кэше процессора, о том, сколько стоит случайный доступ к памяти, о том, как CPU исполняет ваш цикл.</p> <a href="https://habr.com/ru/articles/1013014/?utm_campaign=1013014&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 21 Mar 2026 08:46:31 GMT</pubDate>
      <dc:creator><![CDATA[SerRozan]]></dc:creator>
      
      <category><![CDATA[производительность программ]]></category><category><![CDATA[архитектура процессора]]></category><category><![CDATA[кэш процессора]]></category><category><![CDATA[оптимизация кода]]></category><category><![CDATA[CPU performance]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сколько на самом деле стоит LOG_INFO(): benchmark библиотек логирования C++]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1012874/</guid>
      <link>https://habr.com/ru/articles/1012874/?utm_campaign=1012874&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7ed/8d4/74a/7ed8d474a431d8f833c645a7096c9aa2.png" /><p>Логирование есть практически в каждом C++ проекте. Почти любой сервис, демон или библиотека рано или поздно обрастает строками вроде <code>LOG_INFO(...)</code> или <code>logger.debug(...)</code>.</p><p>Чаще всего библиотека выбирается по привычке или популярности — spdlog, quill, easylogging++ и т.п. При этом редко кто проверяет, <strong>какую цену приложение платит за логирование</strong>.</p><p>В высоконагруженных системах логирование может выполняться:</p> <a href="https://habr.com/ru/articles/1012874/?utm_campaign=1012874&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 20 Mar 2026 15:15:39 GMT</pubDate>
      <dc:creator><![CDATA[emishkurov]]></dc:creator>
      
      <category><![CDATA[c++]]></category><category><![CDATA[logging]]></category><category><![CDATA[benchmark]]></category><category><![CDATA[performance]]></category><category><![CDATA[spdlog]]></category><category><![CDATA[logme]]></category><category><![CDATA[quill]]></category><category><![CDATA[high-performance]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Дадим ещё один шанс советскому языку программирования?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1012840/</guid>
      <link>https://habr.com/ru/articles/1012840/?utm_campaign=1012840&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d8c/b87/fbe/d8cb87fbe254377b989651681691d760.png" /><p>А вы знаете что в СССР у нас были свои языки программирования? Что ж, почему бы нам не посмотреть что мы можем возродить?</p> <a href="https://habr.com/ru/articles/1012840/?utm_campaign=1012840&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 20 Mar 2026 14:26:04 GMT</pubDate>
      <dc:creator><![CDATA[dacsson]]></dc:creator>
      
      <category><![CDATA[языки программирования]]></category><category><![CDATA[разработка языков программирования]]></category><category><![CDATA[компиляторы]]></category><category><![CDATA[ссср]]></category><category><![CDATA[рапира]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Дремлющий демон GPIO: простой и надежный мониторинг событий в embedded-системах]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/yadro/articles/1011858/</guid>
      <link>https://habr.com/ru/companies/yadro/articles/1011858/?utm_campaign=1011858&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/612/4c2/c9a/6124c2c9aebebe319e707ee5d11a9dbd.jpg" /><p>Иногда старые проекты дают о себе знать в самый неожиданный момент&nbsp;—&nbsp;так случилось и с моим Linux GPIO Daemon. Коллеги из департамента методик и автоматизации тестирования в YADRO заинтересовались разработкой, и я наконец решил довести его до ума. Расскажу о демоне, который реагирует на события линий: текстовым сообщением об изменении состояния в сокет либо запуском скрипта. Это аналог incron-ng, только мониторит он не файлы, а линии GPIO. А в конце обсудим, как найти и затем не терять нужный нам gpiochip.</p> <a href="https://habr.com/ru/articles/1011858/?utm_campaign=1011858&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 19 Mar 2026 11:23:11 GMT</pubDate>
      <dc:creator><![CDATA[maquefel (YADRO)]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[gpio]]></category><category><![CDATA[daemon]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[.NET под микроскопом | процессы, метаданные, AOT и GC]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1010474/</guid>
      <link>https://habr.com/ru/articles/1010474/?utm_campaign=1010474&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b13/c51/498/b13c5149866b9bf56eed1f85303d9457.png" /><p>Эта статья скорее всего будет полезна тем, кто продолжает разбираться или работать на платформах .NET . Предупреждаю! Здесь будет далекое плавание в разные места, и с точки ОС будет упомянуто достаточно много!</p><p>На просторах Хабра есть несколько хороших статей про устройство и поведение .NET. Мне хотелось бы стать "чем-то по связующим" между ними.</p> <a href="https://habr.com/ru/articles/1010474/?utm_campaign=1010474&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Спустить шлюпку</a>]]></description>
      
      <pubDate>Sun, 15 Mar 2026 13:09:15 GMT</pubDate>
      <dc:creator><![CDATA[art2021]]></dc:creator>
      
      <category><![CDATA[dotnet]]></category><category><![CDATA[net]]></category><category><![CDATA[netcore]]></category><category><![CDATA[il]]></category><category><![CDATA[csharp]]></category><category><![CDATA[windows]]></category><category><![CDATA[дотнет]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как работает RPC. Пишем свое RPC-приложение]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1010204/</guid>
      <link>https://habr.com/ru/articles/1010204/?utm_campaign=1010204&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ca8/be4/2e1/ca8be42e15b07dbdd7cab8effdee4f05.png" /><p>В данной статье мы подробно поговорим об устройстве RPC. Также для лучшего понимания применим знания на практике и напишем свое RPC-приложение под Windows.</p> <a href="https://habr.com/ru/articles/1010204/?utm_campaign=1010204&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Изучить матчасть</a>]]></description>
      
      <pubDate>Sat, 14 Mar 2026 13:23:39 GMT</pubDate>
      <dc:creator><![CDATA[ArtemDudich]]></dc:creator>
      
      <category><![CDATA[rpc]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[безопасность]]></category><category><![CDATA[сетевая безопасность]]></category><category><![CDATA[ipc]]></category><category><![CDATA[межпроцессное взаимодействие]]></category><category><![CDATA[windows]]></category><category><![CDATA[системное программирование]]></category><category><![CDATA[программирование под windows]]></category><category><![CDATA[информационная безопасность]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Join-to-domain. Вводим устройство под управлением РЕД ОС в домен и забываем про скучные мануалы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/redsoft/articles/1009346/</guid>
      <link>https://habr.com/ru/companies/redsoft/articles/1009346/?utm_campaign=1009346&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cbe/2db/9ce/cbe2db9ce7d6d20bf0f22f33b3920d89.jpg" /><p>Привет, Хабр! Меня зовут Владлен, я ― инженер-программист отдела разработки РЕД ОС. Ко мне пришли с предложением рассказать об утилите, которую мы создали для быстрого ввода устройств на базе РЕД ОС в домен. Тема интересная, ведь join-to-domain умеет в несколько механизмов подключения, пережил перенос на другой язык программирования и дружит с РЕД АДМ. Итак, сегодня я расскажу подробнее о том, как мы создали join-to-domain и как использовать его на благо вашей ИТ-инфраструктуры.</p> <a href="https://habr.com/ru/articles/1009346/?utm_campaign=1009346&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 12 Mar 2026 09:18:11 GMT</pubDate>
      <dc:creator><![CDATA[RED_SOFT (РЕД СОФТ)]]></dc:creator>
      
      <category><![CDATA[ред ос]]></category><category><![CDATA[утилита]]></category><category><![CDATA[Ввод в домен]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Active Directory]]></category><category><![CDATA[Samba]]></category><category><![CDATA[SSSD]]></category><category><![CDATA[Winbind]]></category><category><![CDATA[Автоматизация]]></category><category><![CDATA[администрирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Необычный заказ: разработка под CP/M]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1009104/</guid>
      <link>https://habr.com/ru/articles/1009104/?utm_campaign=1009104&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6ef/9de/bac/6ef9debac779a683a61e4cb1cb53b1bb.jpeg" /><p>Древний дисковод ожил и издавая чудовищный скрежет стал медленно загружать мое послание. Через какое-то время на экране появились строки:</p><p>NE PUERO GLADIUM, DR. KRIGER. 04.03.2026</p><p>Три пары глаз повернулись ко мне в немом изумлении.</p><p>—&nbsp;Это длинная история, нам лучше присесть.</p> <a href="https://habr.com/ru/articles/1009104/?utm_campaign=1009104&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 11 Mar 2026 12:49:58 GMT</pubDate>
      <dc:creator><![CDATA[alex0x08]]></dc:creator>
      
      <category><![CDATA[cpm]]></category><category><![CDATA[kaypro]]></category><category><![CDATA[aztec]]></category><category><![CDATA[старое железо]]></category><category><![CDATA[компиляторы]]></category><category><![CDATA[archer]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
