Все потоки
Поиск
Написать публикацию
Обновить
253.06

Linux *

Пишем под *nix

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

Создание своего терминала на C++ и Qt: Часть 1

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

Привет, хабр! Сегодня мы создадим свой собственный терминал на языке программирования C++. Я являюсь фанатом Linux, и пользуюсь минималистичными терминальными программами - от Vim как IDE до чатов. Есть множество терминалов, у каждого из них есть плюсы и минусы. Наш терминал не будет претендовать на место серьезного проекта, но если вы хотите улучшить код, который мы сегодня напишем - то вы молодцы, можете без проблем развить наш терминал.

Это будет небольшой, минималистичный терминал для Linux. Он будет на основе фреймворка Qt 5 и библиотеки qtermwidget5.

И эта будет не одна статья, а целая серия статей!

Вперед!

Измерение скорости чтения-записи носителей с помощью утилиты dd

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров24K
Недавно, я вновь побывал в роли технического эксперта, когда занимался переводом книги «Understanding Software Dynamics» от Richard L. Sites. В ходе работы над главой — про скорость работы с жёстким диском, мне поступил вопрос от коллеги: каким образом можно просто и быстро измерить скорость чтения и записи твердотельных носителей информации, в разрабатываемых в компании устройствах? При этом стояла задача реализовать всё это наиболее простыми способами, чтобы они были переносимы между совершенно разными платформами и архитектурами. Носители же информации могут быть любыми: USB Flash, eMMC, SD, NAND и прочее, прочее. Единственное, что их объединяет — это Linux.

Задача захватила меня с головой…
Читать дальше →

Детектирование атак на контейнеры с помощью eBPF

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

Привет, Хабр!

Меня зовут Илья Зимин, я аналитик-исследователь угроз в компании R-Vision. Сегодня в статье я расскажу о возможностях обнаружения атак на контейнеризированные приложения с помощью такого инструмента, как eBPF, на примере приемов, связанных с побегом из Docker-контейнеров на Linux-системах.

eBPF (extended Berkeley Packet Filter) — это технология, которая предоставляет программный интерфейс в ядре Linux для обработки его событий в режиме реального времени. Он позволяет загружать и выполнять пользовательские программы в ядре без необходимости модификации самого ядра. Программы выполняются в виртуальной машине, что не позволяет ошибке в пользовательской программе повлиять на всю систему.

Используя возможности eBPF, мы можем отслеживать любое (или почти любое) взаимодействие в системе на уровне ядра, "присоединяясь" к вызовам системных функций, и получать информацию о них: контекст, аргументы, выходные значения и другие. Также на уровне пользователя можно добавить дополнительную логику для обработки этих данных.

Читать далее

Настройка распределённого выполнения параллельных программ в кластере

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

В предыдущей публикации Фортран: пишем параллельные программы для суперкомпьютера мы рассмотрели общий подход к программированию в массивно-паралллельной архитектуре (MPP) с использованием языка Фортран-2018 и дали пример запуска массивно-параллельной программы на одной машине с многоядерным процессором. В настоящей статье мы рассмотрим запуск массивно-параллельных программ на кластере высокой производительности (HPC) или кластере высокой готовности (HA). Код в данной статье пишется на языке Фортран-2018 с использованием комассивов (coarrays) и преобразуется компилятором Фортрана в вызовы фреймворка MPI.

Читать далее

Решаем задачу асинхронного ввода-вывода с библиотекой Asio

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

Привет, Хабр! Меня зовут Илья Казаков, я C++ разработчик в команде систем хранения данных  компании YADRO, одна из моих задач — реализация эффективных IO-bound программ под Linux. 

На одном из проектов мы с командой использовали Asio — библиотеку C++ для сетевого и низкоуровневого программирования ввода-вывода. Она предлагает свою асинхронную модель. Технология отлично справилась с нашей задачей, и я хочу поделиться с вами опытом ее использования. Под катом расскажу, какие решения я рассматривал для асинхронного ввода-вывода и почему остановился на Asio.

Узнать больше →

(Ex)Cobalt апгрейднула инструментарий: как группа атаковала российские компании в 2023 году

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

Последние несколько лет специалисты нашего экспертного центра безопасности (PT Expert Security Center, PT ESC) регулярно фиксируют фишинговые рассылки вредоносных файлов, вложенных в архив, — их запуск приводит к загрузке модуля CobInt. Это ВПО — один из основных инструментов киберпреступной группы Cobalt. Ранее не фиксировалось использование этого модуля другими группировками. Вредоносные файлы применялись в атаках на российские компании из сфер энергетики, образования и телекоммуникаций — мы обнаружили это в ходе реагирования на инциденты ИБ в 2023 году. Предполагаем, что на территории России не менее 10 потенциальных жертв.

Мы следим за Cobalt с 2016 года. Ранее группа атаковала кредитно-финансовые организации с целью кражи денежных средств, а в последние несколько лет она сместила акцент на кибершпионаж. С 2020 года Cobalt не была замечена в громких кампаниях, но обнаруженные нами факты подтверждают, что группа или некоторые из ее участников до сих пор активны, только используют они новые инструменты.

В статье мы кратко рассмотрим две цепочки атак, а также расскажем про руткит Facefish, используемый для компрометации узлов под управлением ОС Linux

Подробнее

Разговор с одним из основателей «Базальт СПО» Алексеем Смирновым о свободном ПО и взаимодействии в комьюнити

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

В конце сентября и начале октября 2023 года информационная служба Хабра посетила 19 конференцию разработчиков свободного ПО. Это профессиональная конференция для разработчиков, где они обмениваются мнениями. Иногда там возникают споры или оживлённые дискуссии. Обзор мероприятия будет позже, а пока — вот интервью с одним из организаторов этой конференции, председателем совета директоров «Базальт СПО», членом правления «Руссофта» и АРПП «Софт» Алексеем Смирновым.

Читать далее

Встречаем Fedora Linux 39: что появилось в новом релизе? Разбираем по пунктам

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

На днях вышел ожидаемый многими релиз дистрибутива Fedora Linux 39. В нём достаточно много изменений, так что о них стоит поговорить подробно. Если есть желание опробовать новинку, то уже подготовлены продукты Fedora Workstation, Fedora Server, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition- и Live-сборки.

Они поставляются в форме спинок с KDE Plasma 5, Xfce, MATE, Cinnamon, LXDE, Phosh, LXQt, Budgie и Sway. Сборки сформированы для архитектур x86_64, Power64 и ARM64 (AArch64). Это если коротко. Ну а подробности — под катом.

Читать далее

Развертывание программного комплекса на Asp.net на российских ОС

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

В России все больше пользователей и организаций используют российские Linux системы. Но при подготовке пакетов для комплексных решений на этих системах могут возникнуть сложности, связанные с несовместимостью ПО, необходимостью настройки пакетов и т.д. В этой статье рассмотрю основные проблемы, с которыми наша команда столкнулась при развертывании проектного решения на российских Linux системах: Astra Linux, Alt Linux, Red OS. Этот опыт будет полезен для команд разработки, которые переходят на Linux и ранее не работали с ними.

Цель этой статьи не заключается в том, чтобы создать универсальную пошаговую инструкцию (поскольку она будет различаться в зависимости от конкретного случая), но помочь понять, с какими трудностями можно столкнуться при работе с системами, которые требуют доставки приложения через пакеты. Также расскажу, насколько трудоемким может быть проект, который включает развертывание на российских ОС.

Читать далее

Как найти приватный ключ в бинарном коде от Bitcoin Lightning Wallet уязвимость в Quasar Framework

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

В этой статье мы заострим внимание на приложение для смартфонов iOS и Android популярный Биткоин Кошелек с поддержкой быстрых платежей через (Lightning network) BLW: Bitcoin Lightning Wallet. К большому сожалению многие автономные ноды мобильных приложении с открытым исходным кодом от LNbits Node Manager и Core Lightning подвергает ВЫСОКЕМУ РИСКУ потери всех денежных средств в различных криптовалютных монетах.

Разработчик David Shares из японской компании Bitcoin Portal опубликовал множество документов.

Разберем теоретическую основу: LNbits – это бесплатная система учетных записей для многих мобильных приложений, которые работают с различными криптовалютными кошельками. Изначально широкую популярность LNbits Node Manager получила с развитием Bitcoin Lightning Wallet (BLW) т.к. развитие некастодиальных и автономных нодов для Bitcoin SPV, предназначенный для Android и iPhone с функциональностью Node.js. Благодаря автономным нодам вы имеете полный контроль над своим средством и вам необходимо самостоятельно управлять своими платежными средствами (в отличие от других мобильных приложении с криптовалютными кошельками).

Читать далее

Простая установка ROS2 на Ubuntu 22.04: Руководство для начинающих

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

Статья подробно описывает процесс установки ROS2 версии Humble на операционной системе Ubuntu 22.04 и последующую настройку нод ROS2 для получения изображений, их передачи через топики, а также получение и примеры обработки в других нодах.

Читать далее

Новый релиз Ubuntu Touch: Linux-смартфоны везде и всюду. Что обновилось в OTA-3?

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

Как мы уже писали, сейчас Ubuntu Touch продолжает развиваться. Этим занимается команда Ubports. Сейчас представлена прошивка OTA-3 Focal (over-the-air). Она представляет собой третий выпуск Ubuntu Touch, который базируется на пакетной базе Ubuntu 20.04.

Обновление формируется для относительно большого количества моделей, включая Asus Zenfone Max Pro M1, Fairphone 3/3+ и 4, F(x)tec Pro1 X, Google Pixel 3a/3a XL, Vollaphone 22, Vollaphone X23, Vollaphone X, Vollaphone, JingPad A1, Sony Xperia X, Xiaomi Poco X3 NFC/X3, Xiaomi Redmi Note 9, 9 Pro, 9 Pro Max и 9S, Xiaomi Poco M2 Pro. Готовы и бета-версии для таких устройств, как Pine64 PinePhone, PinePhone Pro, PineTab и PineTab2. Подробности — под катом.

Читать далее

Из жизни свободного ПО в России: обзор XIX Конференции разработчиков свободных программ

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

В Переславле-Залесском прошла XIX Конференция разработчиков свободных программ. Организатор — компания «Базальт СПО» — традиционно собрала аудиторию профессионалов, непосредственно связанных с разработкой ПО. Поэтому доклады — исключительно о «профессиональной кухне», без маркетинговой обвязки.

Перечислим некоторые из заинтересовавших нас докладов в коротком обзоре, а полную информацию можно посмотреть на сайте конференции и видеоканале.

Читать далее

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

Митап по С++ в Москве и онлайн: боли нового стандарта, висячие ссылки и дискуссия о собеседованиях

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

Привет, Хабр! 21 ноября собираемся на митапе по C++. Обсудим новый стандарт С++ 23 с точки зрения практикующего программиста, узнаем, как избежать dangling reference, и подискутируем, как собеседовать комфортно для всех.

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

Изучить программу →

Автосборка Fsbl, U-Boot, linux kernel и установка debian для arm64 для Zynq Ultrascale zcu106

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

В данной статье описывается способ создания минималистичного образа sd карты c debian arm64 на примере отладочной платы с zynq ultrascale zcu106. Данный способ можно использовать для создания загрузочных образов других устройств с соответствующими изменениями. Битстрим, ядро Linux и dts для удобства разработки размещаются отдельными файлами.

Также описан способ загрузки по сети ядра Linux, dts и корневой файловой системы debian, который позволит сократить время разработки и ресурс карты памяти.

Читать далее

Опыт создания UI библиотеки на C++

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

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

Наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...

На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.

В течении шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.

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

В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да...

wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulcan на современных машинах.

В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost. 

Читать далее

far2l в Ubuntu 23.10

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

Ура! В новой версии Ubuntu, наконец-то, можно установить Far Manager (far2l) самым обычным sudo apt install far2l — прямо из коробки, без всяких ppa и кастомных сборок! Под катом — немного подробностей, а также обычный дайджест новостей проекта за прошедшее время.

Читать далее

Установка OC Linux на плату Kintex 7 (KC705) от Xilinx с софт-процессором MicroBlaze часть 1

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

Данная серия статей является туториалом по установке линукса на плату KC705 с софт-процессорным ядром Микроблэйз.

В первой части я описываю процесс создания схемы платформы, на которую мы поставим систему, с описанием некоторых нюансов.

Во второй части я опишу процесс сборки образа линукса и тестирование его работоспособности на отладочной плате путём прошивания через usb.

В третей — расскажу о том, как прошить SPI флэшку на плате, чтобы система стартовала сразу при включении платы.

Буду рад любым советам, замечаниям и фидбэку в комментариях. Статью считаю полезной, т.к. в процессе столкнулся с достаточно большим количеством неочевидных вещей, настроек и решений, информацию о которых в интернете нашёл с трудом. Да и вообще, актуальных туториалов и статей, конкретно по этой отладочной плате в интернете ничтожно мало. Поехали!

Читать далее

Прошло полгода и мы дождались: релиз OpenBSD 7.4. Важные обновления, улучшения и изменения

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

Спустя полгода после выхода OpenBSD 7.3 представлен следующий выпуск OpenBSD, теперь с версией 7.4. Размер дистрибутива, установочного ISO-образа базовой системы OpenBSD 7.4 составляет всего 630 МБ. Давайте посмотрим, что изменилось, добавлено или было удалено. Все подробности — под катом.
Читать дальше →

Ещё немного Ubuntu: вышел дистрибутив Ubuntu 23.10 с GNOME 45

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

Привет, Хабр! Многие пользователи Ubuntu, да и других дистрибутивов Linux продолжительное время ожидали выхода нового релиза  23.10. И вот, его уже можно загрузить. Установочные образы Ubuntu 23.10 "Mantic Minotaur" созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon. Под катом поговорим о нововведениях и изменениях дистрибутива.

Читать далее

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