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

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

Пишем под *nix

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

Библиотека Granite от elementary OS

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

На данный момент существует множество различных операционных систем на базе ядра Linux. Буквально на любой вкус. Некоторые операционные системы пользуются уже готовыми графическими оболочками, а другие создают свои. 

В дистрибутиве elementary OS применяется свое окружение рабочего стола под названием Pantheon. Имеется небольшой набор своих приложений. Есть файловый менеджер, текстовый редактор, почтовый клиент, эмулятор терминала и прочее.

Также для elementary OS была создана своя библиотека виджетов под названием Granite. Она как раз и применяется при создании приложений для этого дистрибутива. Данная библиотека похожа на Libadwaita от проекта GNOME. Эта библиотека так же, как и Libadwaita, предоставляет некоторое количество компонентов для конструирования пользовательского интерфейса.

В этой статье я хочу рассмотреть некоторые компоненты из библиотеки Granite. Приложения для elementary OS пишутся преимущественно на языке программирования Vala. Далее примеры кода будут приводиться именно на этом языке. Репозиторий библиотеки можно найти здесь.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Новости

Padding Oracle Attack на Wallet.dat расшифровка пароля для популярного кошелька Bitcoin Core

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

В этой статье мы воспользуемся классификацией распространенных шаблонов атак из ресурса кибербезопасности [CAPEC™]. В первые об “Padding Oracle Attack” на Wallet.dat заговорили в далеком 2012 году (на платформе по управления уязвимостями и анализа угроз “VulDB”). Проблема самого популярного кошелька Bitcoin Core влияет на работу AES Encryption Padding в файле Wallet.dat

Технические подробности данной атаки известны:

Злоумышленник может эффективно расшифровывать данные, не зная ключа расшифровки, если целевая система сливает данные о том, произошла ли ошибка заполнения при расшифровке зашифрованного текста. Целевая система, которая передает информацию такого типа, становится заполняющим оракулом, и злоумышленник может использовать этот оракул для эффективной расшифровки данных, не зная ключа дешифрования, выдавая в среднем 128*b вызовов заполняющему оракулу (где b — это количество байт в блоке зашифрованного текста). Помимо выполнения расшифровки, злоумышленник также может создавать действительные зашифрованные тексты (т. е. выполнять шифрование) с помощью оракула заполнения, и все это без знания ключа шифрования.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 1

Новые проклятия: руководство по ncurses

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

HTOP, midnight commander... Как же они построили довольно красивый и удобный псевдографический интерфейс?

Все благодаря библиотеке для C/С++ под названием new curses ("новым проклятиям" дословно) или же NCURSES.

Но как ее установить и работать с ней?

Вперёд!
Всего голосов 21: ↑16 и ↓5 +11
Комментарии 8

Разработка с помощью Yocto

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

Привет Хабр! Недавно принял участие в достаточно интересном воркшопе и хотел бы поделиться приобретенными навыками.

Микроконтроллерами я занимаюсь как хобби, так что основы и даже чуть больше понимаю, да я и сам своего рода Embedded Developer.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 16

Истории

Пишем свой текстовый редактор на C: часть 1

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Build Your Own Text Editor" автора Джереми Рутена.


Свой текстовый редактор!


Привет! Это вольный перевод о том, как написать свой никому не нужный текстовый редактор на C.


Читать дальше →
Всего голосов 35: ↑7 и ↓28 -21
Комментарии 11

Пишем файловую систему для работы с изображениями на TypeScript

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

В этой статье мы займемся созданием файловой системы на NodeJS + TypeScript в пользовательском пространстве, которая будет управлять изображениями пользователей. Она будет преобразовывать их в различные форматы, изменяя размеры и предоставляя уникальные бинарные данные изображения при каждом чтении — ведя себя при этом как стандартная файловая система.

Если вам интересна данная тема, добро пожаловать под кат.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 1

Виртуальная камера для WebRTC

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

Технология работы персонифицированной виртуальной вебкамеры для WebRTC: анимирование 3D модели пользователя в браузере для создания видеотрека, заменяющего камеру пользователя и синхронного с аудио от микрофона.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 15

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

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

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

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

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

Вперед!
Всего голосов 12: ↑9 и ↓3 +6
Комментарии 22

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

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

Задача захватила меня с головой…
Читать дальше →
Всего голосов 58: ↑56 и ↓2 +54
Комментарии 45

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

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

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

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

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

VisionFive2 (ядро Linux)

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

В предыдущей статье мы рассмотрели процесс сборки загрузчика. Теперь мы рассмотрим ядро Linux, исходные коды которого поддерживает компания StarFive в репозитории https://github.com/starfive-tech/linux. Кроме того, мы рассмотрим создание скриптов загрузки ядра (boot.scr) для U-Boot.

Компания StarFive одновременно ведет две версии ядра: 5.15.x и 6.1.x. Нас интересует стабильная ветка 6.1.x, поэтому мы возьмем snapshoot тега VF2_6.1_v3.8.2:

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 2

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

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

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

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

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

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

Узнать больше →
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 22

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

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

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

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

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

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

Подробнее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 3

VisionFive2 (начало работы)

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

Не так давно, а именно в феврале 2023 года, в продажу поступили платы VisionFive2 , имеющие на борту 8GB LPDDR4 памяти, от компании StarFive. По сути VisionFive2 - это первый в мире высокопроизводительный RISC-V одноплатный компьютер (SBC) со встроенным графическим процессором (GPU). И естественно, мы не могли не заинтересоваться этим устройством, которое имеет весьма впечатляющие характеристики.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 8

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

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

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

Читать далее
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 5

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

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

На днях вышел ожидаемый многими релиз дистрибутива 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). Это если коротко. Ну а подробности — под катом.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 11

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

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

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

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

Читать далее
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 7

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

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

В этой статье мы заострим внимание на приложение для смартфонов 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. Благодаря автономным нодам вы имеете полный контроль над своим средством и вам необходимо самостоятельно управлять своими платежными средствами (в отличие от других мобильных приложении с криптовалютными кошельками).

Читать далее
Всего голосов 8: ↑1 и ↓7 -6
Комментарии 2

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

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 11

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