Как стать автором
Обновить
113.11

Разработка под Linux *

Пишем под *nix

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

Время собирать Куб

Время на прочтение3 мин
Количество просмотров472

Декомпозиция сборки и тестирования в сложных многокомпонентных системах, таких как Kubernetes, является ключевым подходом для управления сложностью и обеспечения надежности. В этой показан универсальный паттерн, который заключается в разделении системы на независимые модули, каждый из которых собирается и тестируется автономно. Это позволяет упростить процессы CI/CD, минимизировать риски и ускорить разработку. Паттерн может включать использование микросервисной архитектуры, контейнеризации, модульных тестов и интеграционных тестов, а также инструментов оркестрации, таких как Helm для Kubernetes. Важно подчеркнуть, что такой подход обеспечивает масштабируемость и гибкость, что особенно важно в современных распределенных системах.

Читать далее

Новости

Брокер сообщений на Rust

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.3K

Всем привет.

Написал бессерверный брокер сообщений, кому интересно прошу под кат.

Читать далее

Программисты 21 века. Линус Торвальдс

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.2K


Линус Торвальдс — финн шведского происхождения, в детстве говорил по-шведски и ходил в шведскую школу. Родился 28 декабря 1969 года в семье журналистов и деда-математика.
Читать дальше →

Эффективное межпроцессное взаимодействие с использованием IPC и Shared Memory

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

В данной статье рассматривается использование механизма разделяемой памяти (shared memory) для эффективной передачи данных между независимыми процессами в рамках одной машины. Цель статьи — продемонстрировать не только базовые принципы работы с разделяемой памятью, но и показать, как размещать в ней высокоуровневые контейнеры, такие как хеш-таблицы (unordered_map), а также рассмотреть практический пример потоковой обработки данных при помощи кольцевого буфера.

Читать далее

Истории

YADRO x SpbLUG LINUX Kernel Meetup: шире память, точнее обновления, больше RISC-V

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.2K

Осенью мы в YADRO собрали митап про ядро Linux. Можно было бы придумать интересный каламбур, но вместо этого мы поблагодарим SpbLUG, питерское сообщество пользователей GNU/Linux, и расскажем, что было на митапе. На повестке дня — «точечные» обновления ядра Linux без перезагрузки, расширения RISC-V в Linux, а также создание собственного модуля Memory Extender. Далее в посте вы найдете записи и презентации докладов.

Читать далее

Что нового в IMSProg в 2025 году?

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.1K

В октябре 2024 года я описал историю создания программатора микросхем CH341a для Linux систем. Год назад я рассказал о дополнительных возможностях программы, появившихся позднее. Давайте посмотрим, что изменилось в программе за год.

Читать далее

Как мы прокачали архитектуру, чтобы упросить эксплуатацию продукта

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

Хабр, привет! С вами снова на связи команда ALD Pro, а за главного сегодня буду я, Илья, и мой коллега Михаил.

Сегодня мы поделимся с вами одним из примеров, который вошел в состав нашего LTS-релиза 2.4.0, — проанализируем подробно предпосылки создания этого решения и технические аспекты его реализации, обеспечивающие высокую производительность. Материал будет интересен не только системным администраторам, но и разработчикам распределенных систем.

Читать далее

Книга: «Linux для разработчиков»

Время на прочтение16 мин
Количество просмотров6.3K
Привет, Хаброжители!

Многие разработчики программного обеспечения недостаточно хорошо разбираются в системах семейства Unix, хотя они повсеместно встречаются в мире разработки. Некоторые программисты даже не подозревают, что в их должностные обязанности входит работа с Unix или подобными системами на своих компьютерах (macOS), в среде разработки (контейнеры Docker), в системах сборки и автоматизации (процессы непрерывной интеграции и GitHub), в среде развертывания (серверы и контейнеры Linux) и в других обстоятельствах.

Книга «Linux для разработчиков» поможет вам вывести свои навыки на новый уровень. В ней вы найдете теорию, практические примеры и проекты, которые сделают вас более уверенным и эффективным разработчиком.
Читать дальше →

Путь пакета через ядро Linux

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

Аннотация - Сетевые стеки являются основой коммуникации и обмена информацией. В данной статье исследуется сетевой стек TCP/IPv4 и UDP/IPv4 в Linux, наиболее распространенной серверной ОС. Мы описываем трассировку наиболее важных сетевых функций ядра Linux 5.10.8. Хотя документация по сетевому коду Linux существует, она часто устарела или охватывает только отдельные аспекты, такие как уровень IP или TCP. Мы рассматриваем эту проблему комплексно, охватывая путь пакета на выходе и входе через сетевой стек Linux. Кроме того, мы освещаем тонкости реализации и показываем, как ядро Linux реализует сетевые протоколы. Наша статья может послужить основой для оптимизации производительности, анализа безопасности, наблюдения за сетью или отладки.

Читать далее

Ограничение доступа к метрикам Node Exporter по IP-адресам

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

В современных инфраструктурах информационной безопасности одной из ключевых задач является ограничение доступа к системным метрикам. По умолчанию Prometheus Node Exporter предоставляет метрики в открытом доступе, что может привести к утечке информации о состоянии системы или атаке на сервис мониторинга.

Для повышения безопасности необходимо реализовать возможность ограничения доступа к метрикам только для определённых IP-адресов, что позволит контролировать, какие клиенты могут запрашивать метрики.

В данной статье рассмотрим, как внести соответствующие изменения в код Node Exporter, а также процесс сборки обновленного пакета.

Изменение кода

Добавление нового флага командной строки

Для управления доступом по IP-адресам добавим новый аргумент --web.client-ip-only, который будет содержать список разрешённых IP-адресов, разделённых запятыми. Если параметр не указан, метрики будут доступны для всех.

В файле main.go регистрируем новый флаг:

поехали...

Время собирать ядро

Время на прочтение3 мин
Количество просмотров5.8K

Часто приходится разворачивать изолированные лабы для тестов и POC, поэтому я подготовил автоматизацию, которая позволяет это делать очень быстро – в большинстве случаев, быстрее секунды. В интернете много информации о Linux, поэтому не будем растекаться мыслью по древу, а лучше перейдем сразу к делу.

Читать далее

Кто сильнее: XDocument или XmlDocument, или как я приручал табличные редакторы

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

Привет! Я Кирилл Пронин, разработчик PIX RPA из PIX Robotics. В этой статье расскажу о том, как мы учили наш продукт работать с импортозамещенными табличными редакторами в Linux-подобных операционных системах, кто сильнее - XDocument или XmlDocument, и какие лайфхаки я унес с собой.

Читать далее

ROS2 — курс: Новый этап в образовательной робототехнике

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2.3K

🚀 ROS2 – Новый этап в образовательной робототехнике!

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

🔍 В статье расскажу, как родилась идея курса, какие проблемы он решает и как любой желающий может начать осваивать ROS2, даже без опыта работы с Linux.

Готовы изучать ROS2 и строить роботов? Для желающих 4-6 апреля пройдет хакатон!

Читать далее

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

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Использование команд Telnet в Linux/Unix

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.2K

Telnet (telecommunications network) — это сетевой протокол (работающий по TCP-соединению), предназначенный для ручного управления удаленными машинами с помощью команд консольного терминала.

С помощью Telnet команды вводятся на локальной машине, а выполняются на удаленной. То есть пользователь сперва вводит IP-адрес и порт (по умолчанию 23) удаленного сервера, после чего выполняет команды на нем.

Несмотря на то, что в наши дни чаще всего используется SSH, Telnet до сих пор остается популярным инструментом для управления удаленными хостами.

В этом руководстве будет рассмотрено базовое использование команд Telnet в операционных системах на базе Linux. Все показанные примеры запускались на облачном сервере Timeweb Cloud под управлением операционной системы Ubuntu 22.04.

Читать далее

Многопоточное программирование на C

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

Привет хабр! Новичок в написании статей, но никогда не поздно начать. Объемный гайд по функциям pthreads для людей знающих базы C/C++.

Читать далее

Сливаем отчетность американской Cyber League с помощью базовых утилит Linux

Время на прочтение11 мин
Количество просмотров4.8K

В этой статье я расскажу, как создать хакерское приложение, используя встроенный язык программирования Linux, и собрать базу данных участников западной «Национальной Киберлиги». Можно сказать, хакнем хакеров! ;)

Начнем со ссылки на отчет о соревнованиях Western National Cyber League, а закончим полноценным инструментом автоматизации. По пути рассмотрим основы работы с сURL, научимся обходить базовые ограничения веб-приложений и поработаем с PDF-документами из командной строки. 

Статья будет полезна специалистам по информационной безопасности и всем, кто интересуется автоматизацией процессов в Linux.

Читать далее

Время собирать пакеты

Время на прочтение9 мин
Количество просмотров3K

Настраивал кластер Kubernetes с балансировщиком и и вдруг пришла в голову мысль, что сейчас не многие знают как собирать пакеты для Linux: rpm и deb. В каком-то смысле это «утерянное искусство». Искусство потому-что сборка линуксовых пакетов с использованием make, configure, Autoconf, m4 и rpmbuild больше похожа на алхимию или черную магию, чем на инженерию.

В этой статье рассмотрим пример того, как можно облегчить работу rpm и deb.

Читать далее

Rust в ядре Linux: лекарство или яд? Споры о будущем

Время на прочтение4 мин
Количество просмотров12K


В мире разработки программного обеспечения, особенно в области системного программирования, языки C и Rust занимают особое место. C, как проверенный временем язык, десятилетиями служил основой для создания операционных систем, включая Linux. Однако с появлением Rust, который позиционируется как более безопасный и современный ЯП, начались жаркие споры о том, стоит ли переписывать части ядра Linux на Rust или оставить всё как есть. Дискуссия вышла на новый уровень, когда разработчики Linux начали активно сопротивляться внедрению Rust. Кристоф Хеллвиг даже сравнил нововведение с «раковой опухолью». Что стоит за этим противостоянием, и почему Rust вызывает такие полярные мнения?
Читать дальше →

Coherent OS: забытый клон Unix v7

Время на прочтение7 мин
Количество просмотров4.6K

Начало 80-х. AT&T, в чьей Bell Labs был разработан Unix, внезапно осознала очевидный факт: их программный продукт популярен, но при этом не приносит никакого дохода. Руководство решает начать продажу коммерческих лицензий.

Если верить журналу Byte за октябрь 1983 года, лицензию Unix для частной компании можно было купить за умопомрачительные 20 000 долларов. Лишь немногие могли себе позволить такие траты (справедливости ради, для учебных заведений ценник был гораздо ниже — всего 200 долларов США). В это непростое время появился проект, который поставил своей целью конкурировать с оригинальным Unix. Сегодня расскажу, что из этого вышло.

Читать далее

Как стать властелином отладчика: помогут ELF, DWARF и много магии

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

Привет, Хабр! Меня зовут Константин, я работаю в команде файлового доступа в YADRO. Помимо основной работы, я пишу в open source, работаю над несколькими проектами — в том числе над дебаггером BugStalker (BS) на Rust. 

В этой статье речь пойдет о разработке дебаггеров. Расскажу, какие технологии лежат в основе любого популярного отладчика и как с их помощью реализуются точки останова или функции step. Особое внимание уделим нюансам отладки Rust-кода и поддержке Rust в дебаггерах.

Если уже решили писать свой отладчик, дочитайте до конца — там будет аналитика, которая поможет не наступить на Rust-грабли.

Читать далее
1
23 ...

Вклад авторов