home.social

#системное_программирование — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #системное_программирование, aggregated by home.social.

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

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

    habr.com/ru/articles/1036570/

    #vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка

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

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

    habr.com/ru/articles/1036570/

    #vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка

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

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

    habr.com/ru/articles/1036570/

    #vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка

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

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

    habr.com/ru/articles/1036570/

    #vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка

  5. Топ Open Source проектов СНГ: кто взлетел на сотни звёзд и как ваш проект может стать следующим

    ⭐️ Каждый месяц мы собираем топ open source проектов СНГ по приросту звёзд! Публикуем самые быстрорастущие проекты сообщества разбираем, почему они получают внимание, и делимся практическими советами, которые помогают авторам развивать свои проекты и привлекать контрибьюторов. Если вы тоже развиваете Open Source проект, возможно следующий топ будет уже с вашим репозиторием :)

    habr.com/ru/articles/1034036/

    #open_source #проекты #опенсорс #github #вебразработа #серверная_разработка #системное_программирование #python #djangomodernrest #гитхаб

  6. Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием

    Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.

    habr.com/ru/articles/1033858/

    #Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go

  7. Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием

    Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.

    habr.com/ru/articles/1033858/

    #Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go

  8. Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием

    Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.

    habr.com/ru/articles/1033858/

    #Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go

  9. Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием

    Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.

    habr.com/ru/articles/1033858/

    #Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go

  10. Опыт написания компилятора вручную: Часть 2

    Компилятор и главный репозиторий: GitHub Здесь я напишу о своём личном проекте — компиляторе к C-подобному языку. Я не являюсь профессиональным разработчиком, изучал эту тему почти самостоятельно и не читал никакие книги по написанию компиляторов (но читал по операционным системам).

    habr.com/ru/articles/1032496/

    #c #системное_программирование #компиляторы

  11. [Перевод] 44 CVE в uutils: что Rust ловит, а что нет на границе с системой

    В апреле 2026 года Canonical раскрыла 44 CVE в uutils . Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy , ни cargo audit не поймали ни одной. Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production ; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса. Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка.

    habr.com/ru/articles/1031420/

    #rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование

  12. [Перевод] 44 CVE в uutils: что Rust ловит, а что нет на границе с системой

    В апреле 2026 года Canonical раскрыла 44 CVE в uutils . Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy , ни cargo audit не поймали ни одной. Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production ; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса. Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка.

    habr.com/ru/articles/1031420/

    #rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование

  13. [Перевод] 44 CVE в uutils: что Rust ловит, а что нет на границе с системой

    В апреле 2026 года Canonical раскрыла 44 CVE в uutils . Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy , ни cargo audit не поймали ни одной. Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production ; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса. Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка.

    habr.com/ru/articles/1031420/

    #rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование

  14. [Перевод] 44 CVE в uutils: что Rust ловит, а что нет на границе с системой

    В апреле 2026 года Canonical раскрыла 44 CVE в uutils . Это переписанная на Rust версия GNU coreutils, которая в Ubuntu идёт по умолчанию с 25.10. Раскрытие пришло из внешнего аудита, заказанного перед релизом 26.04 LTS. Большую часть уязвимостей нашли обычным ревью кода. Ни borrow checker, ни проверки clippy , ни cargo audit не поймали ни одной. Этот аудит, пожалуй, самый чёткий из существующих примеров того, что Rust ловит, а что нет. Самый внятный разбор списка сделал Маттиас Эндлер в посте «Bugs Rust Won’t Catch» от 29 апреля. Эндлер ведёт консалтинг corrode и подкаст Rust in Production ; недавно у него в гостях был Джон Сигер, вице-президент по инженерии в Canonical. Пост построен как разбор того самого раскрытия: 44 CVE распределены по восьми категориям; к большинству приложен git diff фикса. Ниже разберу каркас Эндлера и добавлю два аргумента сверху. Первый: один из мейнтейнеров GNU coreutils в HN-треде показал бенчмарк, на котором рекомендованный Эндлером фикс не выживает. Второй: структурный аргумент про то, что 40 лет наслоённых POSIX-шрамов делают с любой переписью, независимо от языка.

    habr.com/ru/articles/1031420/

    #rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование

  15. Как мы пихнули полноценный цифровой протокол в NTC-пин батареи — и почему это вообще работает

    Есть старая инженерная мудрость: Если у вас не хватает проводов — значит, вы недостаточно творчески подходите к вопросу. У нас была ровно такая ситуация. Работая на одном проекте системы «умного города» мы, уйдя в стандарт «одна плата с разными конфигами для всего» решили делать на ней свой BMS. Зачем да почему? Нужно было универсальное решение, которое должно работать и с литиевыми, и со свинцовыми батареями, и с ещё парой экзотических химий, встречающихся в природе примерно так же часто, как радужные единороги. Нужно было надёжно определять тип батареи, считывать её состояние, пригодность к использованию, дату производства и всё‑всё‑всё подобное, блокировать несовместимые варианты и вообще предотвращать самое главное — человеческую ошибку. Но как это часто бывает в компаниях где в R&D священный хаос — никто и не задумывался чтобы сесть и обсудить «А как мы вообще это делать будем». В производство ушла тысяча плат. В любой другой ситуации мы бы пошли по наименьшему пути сопротивления: i2c на коннекторе рядом и EEPROM на аккуме. Но не тут было.

    habr.com/ru/articles/969940/

    #электроника #diy #smart_city #обработка_сигналов #системное_программирование #lowpower #uart #adc #reverseengineering

  16. Когда на Rust уже всё переписали

    Мем про переписывание всего на Rust в итоге стал индустриальным стандартом. Безопасность памяти и строгий компилятор реально решают кучу проблем. Но на практике регулярно всплывают задачи, где архитектурные рамки Раста только мешают и заставляют бороться с языком. Писать системные сетевые сервисы на C в 2026ом году можно, но CVE на переполнение буфера вам выпишут быстрее, чем вы допишете свой Makefile. Как говорится: Rust не позволит вам выстрелить себе в ногу. Zig позволит с радостью, но перед этим попросит явно передать аллокатор. В двух последних проектах, в разработке которых я участвую, был выбран Zig. Я не буду продавать язык как идеальный (он объективно сырой), но ниже будет разбор реального опыта.

    habr.com/ru/articles/1022260/

    #zig #rust #c #системное_программирование #управление_памятью #аллокаторы #epoll #comptime #telegram #mtproto

  17. Flame: Системный язык программирования на C и LLVM с мета-исключениями и Memory Safety без Borrow Checker

    Пока индустрия движется в сторону усложнения компиляторов, я задался вопросом: можно ли создать инструмент, который дает безопасность Rust, гибкость C и при этом не весит сотни мегабайт? Так появился Flame — системный язык с компилятором в 226 КБ , который реализует управление памятью через статический анализ AST и предлагает альтернативный взгляд на обработку ошибок через патчинг дерева токенов.

    habr.com/ru/articles/1007758/

    #flame #c #c++ #c# #системное_программирование #компиляторы #компилятор #коддинг #llvm #llvm_ir

  18. Программный съем трафика на скорости 400G: сравнение методов обработки и неочевидные бутылочные горлышки

    Меня зовут Юрий Морозов, я главный архитектор компании «Гарда» . В этой статье я расскажу, как можно организовать обработку трафика на высоких скоростях. Актуальность этой задачи для современной сетевой безопасности напрямую связана с эволюцией технологий передачи и обработки данных: за последние годы скорости выросли на порядок, и вместе с ними резко изменились требования к производительности систем анализа и фильтрации трафика.

    habr.com/ru/companies/garda/ar

    #обработка_трафика #pf_ring #dpdk #AF_PACKET #высокоскоростная_обработка_трафика #программная_обработка_трафика #информационная_безопасность #сетевая_безопасность #системное_программирование

  19. [Перевод] Минимальный планировщик с eBPF, sched_ext и C

    Планировщик Linux долгое время оставался зоной, куда можно было заглянуть, но почти невозможно вмешаться без пересборки ядра. С появлением sched_ext эта граница сдвинулась: теперь логику планирования можно описывать кодом на C и загружать в ядро через eBPF. В статье разберём минимальный рабочий планировщик, посмотрим, как он взаимодействует с ядром, и обсудим, какие новые возможности это открывает для экспериментов и диагностики поведения системы под нагрузкой. Вникнуть в ядро

    habr.com/ru/companies/otus/art

    #eBPF #планировщик_задач #Linux_kernel #системное_программирование #планирование_процессов #ядро_Linux #низкоуровневое_программирование #C

  20. Тайны пингвина: как работают исключения и прерывания в Linux?

    Привет, хабр! Моя прошлая статья о работе памяти в Linux вам понравилась. Сегодня мы разберем работу исключений и прерываний. Что это, как они работают в ОС и Linux? Давайте разберемся вместе!

    habr.com/ru/companies/timeweb/

    #timeweb_статьи #linux #unix #операционные_системы #системное_программирование #низкоуровневое_программирование #прерывания #исключения #ядро_linux

  21. Использование open source в KasperskyOS

    Компоненты ПО с открытым исходным кодом сейчас встречаются почти в каждом приложении. Это повышает эффективность разработки, но привносит дополнительные риски, в первую очередь связанные с атаками на цепочку поставок. Создавая операционную систему KasperskyOS, мы в «Лаборатории Касперского» задумались: как сделать переиспользование недоверенного кода безопасным? Эта задача особенно актуальна, когда речь идет о системе, на базе которой строятся продукты для отраслей с повышенными требованиями к кибербезопасности. В этой статье мы расскажем, какие механизмы в KasperskyOS позволяют снизить риски, характерные для распространенных ОС. А также покажем на реальном примере, как системы на базе Linux и KasperskyOS по-разному справляются с киберугрозами.

    habr.com/ru/companies/kaspersk

    #иб #kasperskyos #операционные_системы #системное_программирование #драйверы #linux #микроядро #песочница #модель_угроз #атака_на_цепочку_поставок

  22. Почему Go-сервисы начинают тормозить без ошибок (и при чём тут goroutines). Часть 1

    Часто про Go говорят: «это язык, где конкурентность почти бесплатная» . И знаете что? Это правда. Почти. Но «почти» — это самое опасное во всей истории, так как либо ты управляешь системой, либо она управляет тобой руками runtime'а. В трёх статьях я разберу путь, через который проходит почти каждый Go-разработчик от наивного «я добавил go — получил параллельность», до взрослого «я проектирую concurrency-систему с понятными границами».

    habr.com/ru/articles/1028264/

    #изучение_языков #go #golang #goroutine #goroutines #программирование #производительность #мониторинг #системное_программирование #архитектура

  23. У Z-80 4-битная АЛУ. Вот как она работает

    Когда мы пишем код под микроконтроллер, за привычными инструкциями компилятора скрывается вполне конкретная логика – регистры, ALU, прерывания, шины и тайминги, которые живут по своим правилам. В статье разберём, как устроены базовые механизмы выполнения команд и что именно происходит на уровне микроархитектуры, когда «просто вызывается функция». Это попытка посмотреть на embedded-разработку через призму железа и понять, какие инженерные решения стоят за кажущейся простотой исходного кода. Разобрать архитектуру

    habr.com/ru/companies/otus/art

    #микроархитектура_процессора #ALU #арифметикологическое_устройство #регистры #embeddedразработка #системное_программирование #низкоуровневое_программирование

  24. [Перевод] REST умер? Почему Java-разработчики уходят в GraphQL

    Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #graphql #api #query #database #системное_программирование #backend

  25. Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе

    Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.

    habr.com/ru/articles/1019502/

    #C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility

  26. Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе

    Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.

    habr.com/ru/articles/1019502/

    #C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility

  27. Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе

    Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.

    habr.com/ru/articles/1019502/

    #C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility

  28. Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе

    Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.

    habr.com/ru/articles/1019502/

    #C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility

  29. Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI

    В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.

    habr.com/ru/articles/1002550/

    #сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы

  30. Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows

    После статьи о баге в CancelIoEx решил рассказать ещё об одном дефекте в системных компонентах Windows — на этот раз в IP Helper (часть Windows API, отвечающая за работу с сетевой статистикой и таблицами соединений). Этот API, среди прочего, даёт возможность сопоставлять перехваченные на уровне сети пакеты с локальными процессами. Казалось бы, проверенный механизм, который работает «под капотом» множества утилит и сетевых фильтров. Но в ходе тестирования WireSock Secure Connect в режиме split tunneling по процессам мы наткнулись на утечку, способную за считанные минуты выбить лимит хендлов в системе. Поводом для расследования стало сообщение в нашей группе поддержки WireSock в Telegram: один из пользователей заметил аномально быстрый рост числа открытых дескрипторов процессов. Проблема стабильно воспроизводилась под нагрузкой и исчезала, если использовать фильтрацию по IP-адресам. Это стало первой зацепкой, которая в итоге вывела нас на баг в реализации IP Helper. Отдельное спасибо пользователю @dno5iq , который обнаружил проблему, выполнил реверсинг GetOwnerModuleFromPidAndInfo и помог подтвердить наличие дефекта в её реализации.

    habr.com/ru/articles/935610/

    #windows_api #wiresock #vpn #winapi #reverse_engineering #системное_программирование #proxifyre #ip_helper #split_tunneling #handle_leak

  31. Список 10 лучших IDE и редакторов кода для веб‑разработчиков

    Веб-разработка — одна из самых динамично развивающихся областей IT. Чтобы работать эффективно и создавать качественный код, важно выбрать правильный инструмент. В данной статье мы рассмотрим 10 лучших IDE и редакторов кода, которые помогут веб-разработчикам ускорить процесс, улучшить качество проектов и сделать повседневную работу удобнее и приятнее. Если вам нравится IT-тематика и полезные советы, заглядывайте в мой Telegram-канал . Там я часто публикую свежие новости и разные полезности. А теперь давайте перейдём к сути статьи. Писать код можно даже в обычном текстовом редакторе — ничто не мешает создать простой сайт в «Блокноте» и сохранить его с расширением .html. Но для более удобной и быстрой работы рекомендуется использовать интегрированные среды разработки (IDE) или продвинутые редакторы.

    habr.com/ru/articles/964448/

    #ide #текстовый_редактор #системное_программирование #софт #редактор_кода #редактор #visual_studio #visual_studio_code #spyder #phpstorm

  32. Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI

    В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.

    habr.com/ru/articles/1002550/

    #сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы

  33. Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI

    В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.

    habr.com/ru/articles/1002550/

    #сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы

  34. Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI

    В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.

    habr.com/ru/articles/1002550/

    #сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы

  35. Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

    Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!

    habr.com/ru/companies/timeweb/

    #timeweb_статьи #bodyawm_ништячки #микроконтроллеры #микропроцессоры #esp32 #elf #binary #бинарные_файлы #exe #dll #so #executable #исполняемый_файл #программа #программы #загрузчик #линкер #linker #ld #gnu_ld #gcc #cc #xtensa #esp8266 #avr #atmega #attiny #pic #компоновщик #C #C++ #системное_программирование

  36. [Перевод] REST умер? Почему Java-разработчики уходят в GraphQL

    Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #graphql #api #query #database #системное_программирование #backend

  37. [Перевод] REST умер? Почему Java-разработчики уходят в GraphQL

    Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #graphql #api #query #database #системное_программирование #backend

  38. [Перевод] REST умер? Почему Java-разработчики уходят в GraphQL

    Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.

    habr.com/ru/companies/spring_a

    #java #kotlin #spring #graphql #api #query #database #системное_программирование #backend

  39. Когда на Rust уже всё переписали

    Мем про переписывание всего на Rust в итоге стал индустриальным стандартом. Безопасность памяти и строгий компилятор реально решают кучу проблем. Но на практике регулярно всплывают задачи, где архитектурные рамки Раста только мешают и заставляют бороться с языком. Писать системные сетевые сервисы на C в 2026ом году можно, но CVE на переполнение буфера вам выпишут быстрее, чем вы допишете свой Makefile. Как говорится: Rust не позволит вам выстрелить себе в ногу. Zig позволит с радостью, но перед этим попросит явно передать аллокатор. В двух последних проектах, в разработке которых я участвую, был выбран Zig. Я не буду продавать язык как идеальный (он объективно сырой), но ниже будет разбор реального опыта.

    habr.com/ru/articles/1022260/

    #zig #rust #c #системное_программирование #управление_памятью #аллокаторы #epoll #comptime #telegram #mtproto

  40. Когда на Rust уже всё переписали

    Мем про переписывание всего на Rust в итоге стал индустриальным стандартом. Безопасность памяти и строгий компилятор реально решают кучу проблем. Но на практике регулярно всплывают задачи, где архитектурные рамки Раста только мешают и заставляют бороться с языком. Писать системные сетевые сервисы на C в 2026ом году можно, но CVE на переполнение буфера вам выпишут быстрее, чем вы допишете свой Makefile. Как говорится: Rust не позволит вам выстрелить себе в ногу. Zig позволит с радостью, но перед этим попросит явно передать аллокатор. В двух последних проектах, в разработке которых я участвую, был выбран Zig. Я не буду продавать язык как идеальный (он объективно сырой), но ниже будет разбор реального опыта.

    habr.com/ru/articles/1022260/

    #zig #rust #c #системное_программирование #управление_памятью #аллокаторы #epoll #comptime #telegram #mtproto

  41. Опасность устарела: несколько важных нюансов в новых стандартах C++

    Undefined behavior (UB) — боль, знакомая каждому разработчику со стажем; эдакий «код Шредингера», когда не знаешь, правильно тот работает или нет. К счастью, стандарты языка С++20/23/26 привнесли относительно неопределенного поведения кое-что новое. И довольно важное, если вы — архитектор ПО, а «плюсы» — ключевой стек вашей компании (подробнее о том, как и почему мы в «Лаборатории Касперского» много используем С++, читайте здесь ). В этой статье я со своих позиций Senior Software Architect и Security Champion в микроядерной операционной системе KasperskyOS рассмотрю кейсы-ловушки, в которые можно попасть практически в любом из стандартов, и покажу, что меняется в С++20/23/26, — уменьшается ли количество кейсов с неопределенным поведением, и становится ли С++ безопаснее.

    habr.com/ru/companies/kaspersk

    #c++ #программирование #c #си++ #qt #c++20 #статический_анализ_кода #разработка #информационная_безопасность #кибербезопасность #безопасность #уязвимости #кибератаки #пентест #cybersecurity #си #stm32 #undefined_behavior #компиляторы #llvm #языки_программирования #компилятор #системное_программирование

  42. Где вырастают разработчики компиляторов, JVM и рантаймов: СПИСОК-2026

    Есть конференции, куда идут за нетворком. А есть такие, куда идут за средой, в которой вырастают сильные инженеры, исследователи и создатели сложных технологий. СПИСОК — именно такая конференция. С 27 по 30 апреля 2026 года на базе матмеха СПбГУ пройдет всероссийская научная конференция по проблемам информатики СПИСОК-2026 . В этом году конференция посвящена памяти Андрея Николаевича Терехова — доктора физико-математических наук, профессора, многолетнего руководителя кафедры системного программирования СПбГУ, человека, который во многом сформировал эту школу и заметно повлиял на развитие российской ИТ-среды. Свое участие в конференции уже подтвердили:

    habr.com/ru/companies/axiomjdk

    #jvm #виртуальная_машина #axiomjdk #java #runtime #ринц #публикация #системное_программирование #спбгу #компиляторы

  43. Рецензия на книгу “Rust. Профессиональное программирование”

    Книга « Rust. Профессиональное программирование » (Code Like a Pro in Rust, by Brenden Matthew) — авторское руководство по языку Rust, претендующее на то, чтобы быть пособием для разработчиков уровня джун и выше, стремящихся овладеть приемами, которые отличают уверенного разработчика от новичка.

    habr.com/ru/companies/ssp-soft

    #rust #системное_программирование #драйверы #серверная_разработка #embedded_software_development #backendразработка #backendпрограммирование

  44. Вот что я понял за 4 месяца написания ОС

    Споры о самом сложном проекте во всем IT будут продолжаться вечно. Некоторые будут говорить что тяжелее всего написать ОС, другие скажут игровой движок, может еще попасться драйвер. В этой статье я постараюсь подробно расписать свой опыт в написании ОС.

    habr.com/ru/articles/984514/

    #ос #низкоуровневое_программирование #системное_программирование #трудности #подводные_камни

  45. [Перевод] Rust 1.88.0: Цепочки let, naked-функции, булевы литералы в cfg и очистка кеша cargo

    Команда Rust рада сообщить о новой версии языка — 1.88.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если у вас есть предыдущая версия Rust, установленная через rustup , то для обновления до версии 1.88.0 вам достаточно выполнить команду: $ rustup update stable Если у вас ещё не установлен rustup , вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub. Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta ( rustup default beta ) или nightly ( rustup default nightly ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

    habr.com/ru/articles/922762/

    #clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод

  46. [Перевод] Rust 1.87.0: 10 лет Rust, анонимные каналы, безопасный вызов встроенных интринсиков

    Rust 1.87.0 и 10 лет Rust! Команда Rust празднует 10-летие Rust в Утрехте, Нидерланды, и рада сообщить о новой версии языка — 1.87.0! Сегодняшний день релиза выпал на 10-летний юбилей выхода Rust 1.0 ! Спасибо мириадам участников, кто работал или работает над Rust. Выпьем за ещё многие десятилетия впереди! 🎉 Как обычно, новая версия включает в себя все изменения, которые были внесены в бета-версию за последние шесть недель согласно последовательному и регулярному циклу выпуска. Мы следуем ему начиная с Rust 1.0. Если у вас есть предыдущая версия Rust, установленная через rustup , то для обновления до версии 1.87.0 вам достаточно выполнить команду:

    habr.com/ru/articles/910204/

    #clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод

  47. [Перевод] Rust 1.86.0: преобразование в родительский трейт, поддержка изменяемой индексации для HashMap и срезов

    Команда Rust рада сообщить о новой версии языка — 1.86.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если у вас есть предыдущая версия Rust, установленная через rustup , то для обновления до версии 1.86.0 вам достаточно выполнить команду: $ rustup update stable Если у вас ещё не установлен rustup , вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub. Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta ( rustup default beta ) или nightly ( rustup default nightly ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

    habr.com/ru/articles/898008/

    #clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод

  48. [Перевод] Rust 1.85.0 и Rust 2024

    Команда Rust рада сообщить о новой версии языка — 1.85.0, а также о стабилизации 2024-й редакции. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если у вас есть предыдущая версия Rust, установленная через rustup , то для обновления до версии 1.85.0 вам достаточно выполнить команду: $ rustup update stable Если у вас ещё не установлен rustup , вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub. Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta ( rustup default beta ) или nightly ( rustup default nightly ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

    habr.com/ru/articles/884770/

    #clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод

  49. [Перевод] Rust 1.84.0: MSRV при выборе зависимости, новый резолвер трейтов и API для отслеживания происхождения указателей

    Команда Rust рада сообщить о новой версии языка — 1.84.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если у вас есть предыдущая версия Rust, установленная через rustup , то для обновления до версии 1.84.0 вам достаточно выполнить команду: $ rustup update stable Если у вас ещё не установлен rustup , вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub. Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta ( rustup default beta ) или nightly ( rustup default nightly ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

    habr.com/ru/articles/872854/

    #clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод

  50. [Перевод] Rust 1.83.0: новые возможности констант

    Команда Rust рада сообщить о новой версии языка — 1.83.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если у вас есть предыдущая версия Rust, установленная через rustup , то для обновления до версии 1.83.0 вам достаточно выполнить команду: $ rustup update stable Если у вас ещё не установлен rustup , вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub. Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta ( rustup default beta ) или nightly ( rustup default nightly ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

    habr.com/ru/articles/862868/

    #clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод