#системное_программирование — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #системное_программирование, aggregated by home.social.
-
Vercel выкатил язык программирования для агентов. Я пытаюсь понять, нужен ли он мне
15 мая Vercel Labs релизнули Zero. Экспериментальный системный язык, который сами авторы называют "the programming language for agents". Версия 0.1.1, Apache 2.0, расширение .0 , бинарники меньше 10 килобайт, без LLVM. На GitHub лежит компилятор, стандартная библиотека и примеры — можно ставить и щупать прямо сейчас. Я прочитал доки, поставил себе, погонял пару примеров. Сижу с этой мыслью: серьёзно или очередной хайповый проект под волну агентного кодинга? Если коротко — наверное серьёзно, но мне сейчас не нужно. Тебе, скорее всего, тоже. Сейчас расскажу, что там и почему я так думаю.
https://habr.com/ru/articles/1036570/
#vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка
-
Vercel выкатил язык программирования для агентов. Я пытаюсь понять, нужен ли он мне
15 мая Vercel Labs релизнули Zero. Экспериментальный системный язык, который сами авторы называют "the programming language for agents". Версия 0.1.1, Apache 2.0, расширение .0 , бинарники меньше 10 килобайт, без LLVM. На GitHub лежит компилятор, стандартная библиотека и примеры — можно ставить и щупать прямо сейчас. Я прочитал доки, поставил себе, погонял пару примеров. Сижу с этой мыслью: серьёзно или очередной хайповый проект под волну агентного кодинга? Если коротко — наверное серьёзно, но мне сейчас не нужно. Тебе, скорее всего, тоже. Сейчас расскажу, что там и почему я так думаю.
https://habr.com/ru/articles/1036570/
#vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка
-
Vercel выкатил язык программирования для агентов. Я пытаюсь понять, нужен ли он мне
15 мая Vercel Labs релизнули Zero. Экспериментальный системный язык, который сами авторы называют "the programming language for agents". Версия 0.1.1, Apache 2.0, расширение .0 , бинарники меньше 10 килобайт, без LLVM. На GitHub лежит компилятор, стандартная библиотека и примеры — можно ставить и щупать прямо сейчас. Я прочитал доки, поставил себе, погонял пару примеров. Сижу с этой мыслью: серьёзно или очередной хайповый проект под волну агентного кодинга? Если коротко — наверное серьёзно, но мне сейчас не нужно. Тебе, скорее всего, тоже. Сейчас расскажу, что там и почему я так думаю.
https://habr.com/ru/articles/1036570/
#vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка
-
Vercel выкатил язык программирования для агентов. Я пытаюсь понять, нужен ли он мне
15 мая Vercel Labs релизнули Zero. Экспериментальный системный язык, который сами авторы называют "the programming language for agents". Версия 0.1.1, Apache 2.0, расширение .0 , бинарники меньше 10 килобайт, без LLVM. На GitHub лежит компилятор, стандартная библиотека и примеры — можно ставить и щупать прямо сейчас. Я прочитал доки, поставил себе, погонял пару примеров. Сижу с этой мыслью: серьёзно или очередной хайповый проект под волну агентного кодинга? Если коротко — наверное серьёзно, но мне сейчас не нужно. Тебе, скорее всего, тоже. Сейчас расскажу, что там и почему я так думаю.
https://habr.com/ru/articles/1036570/
#vercel_zero #языки_программирования #ai_агенты #агентный_кодинг #claude_code #cursor #системное_программирование #llm #компиляторы #разработка
-
Топ Open Source проектов СНГ: кто взлетел на сотни звёзд и как ваш проект может стать следующим
⭐️ Каждый месяц мы собираем топ open source проектов СНГ по приросту звёзд! Публикуем самые быстрорастущие проекты сообщества разбираем, почему они получают внимание, и делимся практическими советами, которые помогают авторам развивать свои проекты и привлекать контрибьюторов. Если вы тоже развиваете Open Source проект, возможно следующий топ будет уже с вашим репозиторием :)
https://habr.com/ru/articles/1034036/
#open_source #проекты #опенсорс #github #вебразработа #серверная_разработка #системное_программирование #python #djangomodernrest #гитхаб
-
Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием
Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.
https://habr.com/ru/articles/1033858/
#Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go
-
Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием
Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.
https://habr.com/ru/articles/1033858/
#Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go
-
Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием
Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.
https://habr.com/ru/articles/1033858/
#Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go
-
Как мы написали социальную сеть внутри Minecraft на 13 версиях — и почему это не было безумием
Небольшая команда сделала мод-социальную-сеть для Minecraft, который объединяет в общий граф друзей игроков на любых поддерживаемых версиях клиента — от 1.7.10 до 1.21.1. Поддерживаются три популярных загрузчика модов и любые клиенты Minecraft, как лицензионные, так и офлайн. Серверная часть, веб-админка, обвязка и документация — всё своё. Главное, что хотелось рассказать: дисциплина (не скорость) была решающим ресурсом, и категория продукта изменила правила игры настолько, что классическая формула «MVP на одной версии — потом расширяемся» оказалась контрпродуктивной.
https://habr.com/ru/articles/1033858/
#Моды #java #minecraft #minecraft_модификации #социальные_сети #программирование #системное_программирование #go
-
Опыт написания компилятора вручную: Часть 2
Компилятор и главный репозиторий: GitHub Здесь я напишу о своём личном проекте — компиляторе к C-подобному языку. Я не являюсь профессиональным разработчиком, изучал эту тему почти самостоятельно и не читал никакие книги по написанию компиляторов (но читал по операционным системам).
-
[Перевод] 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-шрамов делают с любой переписью, независимо от языка.
https://habr.com/ru/articles/1031420/
#rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование
-
[Перевод] 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-шрамов делают с любой переписью, независимо от языка.
https://habr.com/ru/articles/1031420/
#rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование
-
[Перевод] 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-шрамов делают с любой переписью, независимо от языка.
https://habr.com/ru/articles/1031420/
#rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование
-
[Перевод] 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-шрамов делают с любой переписью, независимо от языка.
https://habr.com/ru/articles/1031420/
#rust #cve #uutils #coreutils #canonical #ubuntu #toctou #безопасность #системное_программирование
-
Как мы пихнули полноценный цифровой протокол в NTC-пин батареи — и почему это вообще работает
Есть старая инженерная мудрость: Если у вас не хватает проводов — значит, вы недостаточно творчески подходите к вопросу. У нас была ровно такая ситуация. Работая на одном проекте системы «умного города» мы, уйдя в стандарт «одна плата с разными конфигами для всего» решили делать на ней свой BMS. Зачем да почему? Нужно было универсальное решение, которое должно работать и с литиевыми, и со свинцовыми батареями, и с ещё парой экзотических химий, встречающихся в природе примерно так же часто, как радужные единороги. Нужно было надёжно определять тип батареи, считывать её состояние, пригодность к использованию, дату производства и всё‑всё‑всё подобное, блокировать несовместимые варианты и вообще предотвращать самое главное — человеческую ошибку. Но как это часто бывает в компаниях где в R&D священный хаос — никто и не задумывался чтобы сесть и обсудить «А как мы вообще это делать будем». В производство ушла тысяча плат. В любой другой ситуации мы бы пошли по наименьшему пути сопротивления: i2c на коннекторе рядом и EEPROM на аккуме. Но не тут было.
https://habr.com/ru/articles/969940/
#электроника #diy #smart_city #обработка_сигналов #системное_программирование #lowpower #uart #adc #reverseengineering
-
Когда на Rust уже всё переписали
Мем про переписывание всего на Rust в итоге стал индустриальным стандартом. Безопасность памяти и строгий компилятор реально решают кучу проблем. Но на практике регулярно всплывают задачи, где архитектурные рамки Раста только мешают и заставляют бороться с языком. Писать системные сетевые сервисы на C в 2026ом году можно, но CVE на переполнение буфера вам выпишут быстрее, чем вы допишете свой Makefile. Как говорится: Rust не позволит вам выстрелить себе в ногу. Zig позволит с радостью, но перед этим попросит явно передать аллокатор. В двух последних проектах, в разработке которых я участвую, был выбран Zig. Я не буду продавать язык как идеальный (он объективно сырой), но ниже будет разбор реального опыта.
https://habr.com/ru/articles/1022260/
#zig #rust #c #системное_программирование #управление_памятью #аллокаторы #epoll #comptime #telegram #mtproto
-
Flame: Системный язык программирования на C и LLVM с мета-исключениями и Memory Safety без Borrow Checker
Пока индустрия движется в сторону усложнения компиляторов, я задался вопросом: можно ли создать инструмент, который дает безопасность Rust, гибкость C и при этом не весит сотни мегабайт? Так появился Flame — системный язык с компилятором в 226 КБ , который реализует управление памятью через статический анализ AST и предлагает альтернативный взгляд на обработку ошибок через патчинг дерева токенов.
https://habr.com/ru/articles/1007758/
#flame #c #c++ #c# #системное_программирование #компиляторы #компилятор #коддинг #llvm #llvm_ir
-
Программный съем трафика на скорости 400G: сравнение методов обработки и неочевидные бутылочные горлышки
Меня зовут Юрий Морозов, я главный архитектор компании «Гарда» . В этой статье я расскажу, как можно организовать обработку трафика на высоких скоростях. Актуальность этой задачи для современной сетевой безопасности напрямую связана с эволюцией технологий передачи и обработки данных: за последние годы скорости выросли на порядок, и вместе с ними резко изменились требования к производительности систем анализа и фильтрации трафика.
https://habr.com/ru/companies/garda/articles/985596/
#обработка_трафика #pf_ring #dpdk #AF_PACKET #высокоскоростная_обработка_трафика #программная_обработка_трафика #информационная_безопасность #сетевая_безопасность #системное_программирование
-
[Перевод] Минимальный планировщик с eBPF, sched_ext и C
Планировщик Linux долгое время оставался зоной, куда можно было заглянуть, но почти невозможно вмешаться без пересборки ядра. С появлением sched_ext эта граница сдвинулась: теперь логику планирования можно описывать кодом на C и загружать в ядро через eBPF. В статье разберём минимальный рабочий планировщик, посмотрим, как он взаимодействует с ядром, и обсудим, какие новые возможности это открывает для экспериментов и диагностики поведения системы под нагрузкой. Вникнуть в ядро
https://habr.com/ru/companies/otus/articles/980206/
#eBPF #планировщик_задач #Linux_kernel #системное_программирование #планирование_процессов #ядро_Linux #низкоуровневое_программирование #C
-
Тайны пингвина: как работают исключения и прерывания в Linux?
Привет, хабр! Моя прошлая статья о работе памяти в Linux вам понравилась. Сегодня мы разберем работу исключений и прерываний. Что это, как они работают в ОС и Linux? Давайте разберемся вместе!
https://habr.com/ru/companies/timeweb/articles/780082/
#timeweb_статьи #linux #unix #операционные_системы #системное_программирование #низкоуровневое_программирование #прерывания #исключения #ядро_linux
-
Использование open source в KasperskyOS
Компоненты ПО с открытым исходным кодом сейчас встречаются почти в каждом приложении. Это повышает эффективность разработки, но привносит дополнительные риски, в первую очередь связанные с атаками на цепочку поставок. Создавая операционную систему KasperskyOS, мы в «Лаборатории Касперского» задумались: как сделать переиспользование недоверенного кода безопасным? Эта задача особенно актуальна, когда речь идет о системе, на базе которой строятся продукты для отраслей с повышенными требованиями к кибербезопасности. В этой статье мы расскажем, какие механизмы в KasperskyOS позволяют снизить риски, характерные для распространенных ОС. А также покажем на реальном примере, как системы на базе Linux и KasperskyOS по-разному справляются с киберугрозами.
https://habr.com/ru/companies/kaspersky/articles/921684/
#иб #kasperskyos #операционные_системы #системное_программирование #драйверы #linux #микроядро #песочница #модель_угроз #атака_на_цепочку_поставок
-
Почему Go-сервисы начинают тормозить без ошибок (и при чём тут goroutines). Часть 1
Часто про Go говорят: «это язык, где конкурентность почти бесплатная» . И знаете что? Это правда. Почти. Но «почти» — это самое опасное во всей истории, так как либо ты управляешь системой, либо она управляет тобой руками runtime'а. В трёх статьях я разберу путь, через который проходит почти каждый Go-разработчик от наивного «я добавил go — получил параллельность», до взрослого «я проектирую concurrency-систему с понятными границами».
https://habr.com/ru/articles/1028264/
#изучение_языков #go #golang #goroutine #goroutines #программирование #производительность #мониторинг #системное_программирование #архитектура
-
У Z-80 4-битная АЛУ. Вот как она работает
Когда мы пишем код под микроконтроллер, за привычными инструкциями компилятора скрывается вполне конкретная логика – регистры, ALU, прерывания, шины и тайминги, которые живут по своим правилам. В статье разберём, как устроены базовые механизмы выполнения команд и что именно происходит на уровне микроархитектуры, когда «просто вызывается функция». Это попытка посмотреть на embedded-разработку через призму железа и понять, какие инженерные решения стоят за кажущейся простотой исходного кода. Разобрать архитектуру
https://habr.com/ru/companies/otus/articles/995876/
#микроархитектура_процессора #ALU #арифметикологическое_устройство #регистры #embeddedразработка #системное_программирование #низкоуровневое_программирование
-
[Перевод] REST умер? Почему Java-разработчики уходят в GraphQL
Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.
https://habr.com/ru/companies/spring_aio/articles/1026130/
#java #kotlin #spring #graphql #api #query #database #системное_программирование #backend
-
Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе
Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.
https://habr.com/ru/articles/1019502/
#C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility
-
Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе
Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.
https://habr.com/ru/articles/1019502/
#C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility
-
Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе
Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.
https://habr.com/ru/articles/1019502/
#C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility
-
Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе
Привет, Хабр! Меня зовут Aloncie. Пока в моем окружении часто спорят о том, какой язык программирования учить первым, я решил не выбирать легких путей и закопаться в «кишки» системного программирования. Мой проект Rwal — это CLI-утилита (с перспективой перехода на GUI) для управления обоями, которая должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows. В этой статье я подробно разберу архитектуру проекта, работу с D-Bus, интеграцию со стандартами C++20 и то, как я организовал сборку.
https://habr.com/ru/articles/1019502/
#C++20 #Rwal #CMake #системное_программирование #архитектура_ПО #Qt #utility
-
Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI
В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.
https://habr.com/ru/articles/1002550/
#сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы
-
Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows
После статьи о баге в CancelIoEx решил рассказать ещё об одном дефекте в системных компонентах Windows — на этот раз в IP Helper (часть Windows API, отвечающая за работу с сетевой статистикой и таблицами соединений). Этот API, среди прочего, даёт возможность сопоставлять перехваченные на уровне сети пакеты с локальными процессами. Казалось бы, проверенный механизм, который работает «под капотом» множества утилит и сетевых фильтров. Но в ходе тестирования WireSock Secure Connect в режиме split tunneling по процессам мы наткнулись на утечку, способную за считанные минуты выбить лимит хендлов в системе. Поводом для расследования стало сообщение в нашей группе поддержки WireSock в Telegram: один из пользователей заметил аномально быстрый рост числа открытых дескрипторов процессов. Проблема стабильно воспроизводилась под нагрузкой и исчезала, если использовать фильтрацию по IP-адресам. Это стало первой зацепкой, которая в итоге вывела нас на баг в реализации IP Helper. Отдельное спасибо пользователю @dno5iq , который обнаружил проблему, выполнил реверсинг GetOwnerModuleFromPidAndInfo и помог подтвердить наличие дефекта в её реализации.
https://habr.com/ru/articles/935610/
#windows_api #wiresock #vpn #winapi #reverse_engineering #системное_программирование #proxifyre #ip_helper #split_tunneling #handle_leak
-
Список 10 лучших IDE и редакторов кода для веб‑разработчиков
Веб-разработка — одна из самых динамично развивающихся областей IT. Чтобы работать эффективно и создавать качественный код, важно выбрать правильный инструмент. В данной статье мы рассмотрим 10 лучших IDE и редакторов кода, которые помогут веб-разработчикам ускорить процесс, улучшить качество проектов и сделать повседневную работу удобнее и приятнее. Если вам нравится IT-тематика и полезные советы, заглядывайте в мой Telegram-канал . Там я часто публикую свежие новости и разные полезности. А теперь давайте перейдём к сути статьи. Писать код можно даже в обычном текстовом редакторе — ничто не мешает создать простой сайт в «Блокноте» и сохранить его с расширением .html. Но для более удобной и быстрой работы рекомендуется использовать интегрированные среды разработки (IDE) или продвинутые редакторы.
https://habr.com/ru/articles/964448/
#ide #текстовый_редактор #системное_программирование #софт #редактор_кода #редактор #visual_studio #visual_studio_code #spyder #phpstorm
-
Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI
В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.
https://habr.com/ru/articles/1002550/
#сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы
-
Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI
В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.
https://habr.com/ru/articles/1002550/
#сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы
-
Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI
В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.
https://habr.com/ru/articles/1002550/
#сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы
-
Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?
Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
https://habr.com/ru/companies/timeweb/articles/784408/
#timeweb_статьи #bodyawm_ништячки #микроконтроллеры #микропроцессоры #esp32 #elf #binary #бинарные_файлы #exe #dll #so #executable #исполняемый_файл #программа #программы #загрузчик #линкер #linker #ld #gnu_ld #gcc #cc #xtensa #esp8266 #avr #atmega #attiny #pic #компоновщик #C #C++ #системное_программирование
-
[Перевод] REST умер? Почему Java-разработчики уходят в GraphQL
Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.
https://habr.com/ru/companies/spring_aio/articles/1026130/
#java #kotlin #spring #graphql #api #query #database #системное_программирование #backend
-
[Перевод] REST умер? Почему Java-разработчики уходят в GraphQL
Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.
https://habr.com/ru/companies/spring_aio/articles/1026130/
#java #kotlin #spring #graphql #api #query #database #системное_программирование #backend
-
[Перевод] REST умер? Почему Java-разработчики уходят в GraphQL
Один экран в приложении, а на бэкенде несколько REST-вызовов , куча эндпоинтов и ответы, где 90% полей не используются. Теряем в скорости, усложняется фронтенд и приходится версионировать контракт, когда меняется формат данных. GraphQL предлагает другой подход : один API-эндпоинт и запрос, в котором клиент сам указывает, какие поля ему нужны. Это снижает overfetching , уменьшает количество сетевых затрат и упрощает договоренности между фронтом и бэком за счет схемы как явного контракта и живой документации. В новом переводе от команды Spring АйО разберем, где GraphQL реально помогает : как уйти от разрастания эндпоинтов, как держать контракт синхронизированным и что делать с типичными проблемами производительности и наблюдаемости, когда данные собираются из разных источников.
https://habr.com/ru/companies/spring_aio/articles/1026130/
#java #kotlin #spring #graphql #api #query #database #системное_программирование #backend
-
Когда на Rust уже всё переписали
Мем про переписывание всего на Rust в итоге стал индустриальным стандартом. Безопасность памяти и строгий компилятор реально решают кучу проблем. Но на практике регулярно всплывают задачи, где архитектурные рамки Раста только мешают и заставляют бороться с языком. Писать системные сетевые сервисы на C в 2026ом году можно, но CVE на переполнение буфера вам выпишут быстрее, чем вы допишете свой Makefile. Как говорится: Rust не позволит вам выстрелить себе в ногу. Zig позволит с радостью, но перед этим попросит явно передать аллокатор. В двух последних проектах, в разработке которых я участвую, был выбран Zig. Я не буду продавать язык как идеальный (он объективно сырой), но ниже будет разбор реального опыта.
https://habr.com/ru/articles/1022260/
#zig #rust #c #системное_программирование #управление_памятью #аллокаторы #epoll #comptime #telegram #mtproto
-
Когда на Rust уже всё переписали
Мем про переписывание всего на Rust в итоге стал индустриальным стандартом. Безопасность памяти и строгий компилятор реально решают кучу проблем. Но на практике регулярно всплывают задачи, где архитектурные рамки Раста только мешают и заставляют бороться с языком. Писать системные сетевые сервисы на C в 2026ом году можно, но CVE на переполнение буфера вам выпишут быстрее, чем вы допишете свой Makefile. Как говорится: Rust не позволит вам выстрелить себе в ногу. Zig позволит с радостью, но перед этим попросит явно передать аллокатор. В двух последних проектах, в разработке которых я участвую, был выбран Zig. Я не буду продавать язык как идеальный (он объективно сырой), но ниже будет разбор реального опыта.
https://habr.com/ru/articles/1022260/
#zig #rust #c #системное_программирование #управление_памятью #аллокаторы #epoll #comptime #telegram #mtproto
-
Опасность устарела: несколько важных нюансов в новых стандартах C++
Undefined behavior (UB) — боль, знакомая каждому разработчику со стажем; эдакий «код Шредингера», когда не знаешь, правильно тот работает или нет. К счастью, стандарты языка С++20/23/26 привнесли относительно неопределенного поведения кое-что новое. И довольно важное, если вы — архитектор ПО, а «плюсы» — ключевой стек вашей компании (подробнее о том, как и почему мы в «Лаборатории Касперского» много используем С++, читайте здесь ). В этой статье я со своих позиций Senior Software Architect и Security Champion в микроядерной операционной системе KasperskyOS рассмотрю кейсы-ловушки, в которые можно попасть практически в любом из стандартов, и покажу, что меняется в С++20/23/26, — уменьшается ли количество кейсов с неопределенным поведением, и становится ли С++ безопаснее.
https://habr.com/ru/companies/kaspersky/articles/822373/
#c++ #программирование #c #си++ #qt #c++20 #статический_анализ_кода #разработка #информационная_безопасность #кибербезопасность #безопасность #уязвимости #кибератаки #пентест #cybersecurity #си #stm32 #undefined_behavior #компиляторы #llvm #языки_программирования #компилятор #системное_программирование
-
Где вырастают разработчики компиляторов, JVM и рантаймов: СПИСОК-2026
Есть конференции, куда идут за нетворком. А есть такие, куда идут за средой, в которой вырастают сильные инженеры, исследователи и создатели сложных технологий. СПИСОК — именно такая конференция. С 27 по 30 апреля 2026 года на базе матмеха СПбГУ пройдет всероссийская научная конференция по проблемам информатики СПИСОК-2026 . В этом году конференция посвящена памяти Андрея Николаевича Терехова — доктора физико-математических наук, профессора, многолетнего руководителя кафедры системного программирования СПбГУ, человека, который во многом сформировал эту школу и заметно повлиял на развитие российской ИТ-среды. Свое участие в конференции уже подтвердили:
https://habr.com/ru/companies/axiomjdk/articles/1019438/
#jvm #виртуальная_машина #axiomjdk #java #runtime #ринц #публикация #системное_программирование #спбгу #компиляторы
-
Рецензия на книгу “Rust. Профессиональное программирование”
Книга « Rust. Профессиональное программирование » (Code Like a Pro in Rust, by Brenden Matthew) — авторское руководство по языку Rust, претендующее на то, чтобы быть пособием для разработчиков уровня джун и выше, стремящихся овладеть приемами, которые отличают уверенного разработчика от новичка.
https://habr.com/ru/companies/ssp-soft/articles/906808/
#rust #системное_программирование #драйверы #серверная_разработка #embedded_software_development #backendразработка #backendпрограммирование
-
Вот что я понял за 4 месяца написания ОС
Споры о самом сложном проекте во всем IT будут продолжаться вечно. Некоторые будут говорить что тяжелее всего написать ОС, другие скажут игровой движок, может еще попасться драйвер. В этой статье я постараюсь подробно расписать свой опыт в написании ОС.
https://habr.com/ru/articles/984514/
#ос #низкоуровневое_программирование #системное_программирование #трудности #подводные_камни
-
[Перевод] 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 ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
https://habr.com/ru/articles/922762/
#clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод
-
[Перевод] 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 вам достаточно выполнить команду:
https://habr.com/ru/articles/910204/
#clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод
-
[Перевод] 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 ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
https://habr.com/ru/articles/898008/
#clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод
-
[Перевод] 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 ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
https://habr.com/ru/articles/884770/
#clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод
-
[Перевод] 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 ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
https://habr.com/ru/articles/872854/
#clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод
-
[Перевод] 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 ). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
https://habr.com/ru/articles/862868/
#clippy #cargo #rustc #rustdoc #rustfmt #rustfix #release #stable #языки_программирования #стабильная_версия #выпуск_версий #системное_программирование #новости_технологий #перевод