Как стать автором
Обновить
13.59
Рейтинг

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

Пишем под *nix

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

Разработка игры на Unity с нуля до релиза

Git *Разработка игр *Unity *GitHub Разработка под Linux *
Tutorial

Приветствую, Хабр! 👋

«Разработка игры с нуля до релиза» - это серии статей, где я покажу, как создать свою игру с самого нуля до публикации в Google Play и Itch.io на GNU\Linux 🐧

Читать далее
Всего голосов 13: ↑10 и ↓3 +7
Просмотры 5.5K
Комментарии 8

Новости

Python3 — ImportError: No module named 'cv2'

Настройка Linux *Open source *Python *Разработка под Linux *
Tutorial

В заголовке известная ошибка python3.

Интерпретатор python2 импортирует opencv без ошибок при установке совместно с python3 в единой среде исполнения.

Краткая инструкция по локализации ошибки далее.

Читать далее
Всего голосов 26: ↑4 и ↓22 -18
Просмотры 3.3K
Комментарии 22

Кастомные Android-прошивки и всё, что с ними связано

Разработка под Android *Разработка под Linux *Гаджеты Смартфоны

Покупаешь новый смартфон и ходишь радостный пока опять новый кастом не накатил. Он и работает шустро, и игрушки идут лучше, уж побыстрее стока. Но тут прилетело OTA, ядро новое вышло, да и Magisk обновился уже — пора ставить апдейты и получать “бутлупы”. Да, от общего числа пользователей Android смартфонов доля тех, кто сидит на кастомах крайне мала. Однако, всё же людям приходят в голову странные мысли по типу: “А не прошить бы мне свой Xiaomi, что б летал как ракета”. По такому случаю статья, в которой рассказывается про кастомные Android прошивки от А до Я.

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Просмотры 8.6K
Комментарии 38

Как создать образ диска в Linux с несколькими разделами, не имея физического образца

Настройка Linux **nix *Разработка под Linux *
Из песочницы
Tutorial

Здравствуй дорогой читатель данного руководства. Меня зовут Андрей, и нет, я не алкоголик, а разработчик встраиваемых систем на базе Linux.

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

Для чего это нужно? Все процессорные платы, разрабатываемые нашим предприятием, обладают слотом для sdcard и установленной на плате mmc. Загрузка системы производится либо с sd, либо c mmc. sd-карта является, как правило, временным решением, подкупает простотой установки. А mmc является постоянным решением, куда устанавливается уже финальное программное обеспечение. Переключение между способами загрузки осуществляется перемычками (джамперами на плате).

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 6.1K
Комментарии 22

Tcl/tk: интегрированная среда разработки TKproE-2.30

Python *Графические оболочки *Разработка под MacOS *Машинное обучение *Разработка под Linux *
Прошло без малого пять лет как я впервые столкнулся с интегрированной средой разработки программ на tcl/tk TKproE-2.20. В апреле 2021 года вышла новая версия этого продукта — TKproE-2.30 и я полностью погрузился в её мир. Он меня заворожил. Название TKproE является аббревиатурой от TCL/TK Programming Environment. TKproE — это интегрированная среда разработки программ для языка сценариев TCL/TK. Сам TKproE полностью написан на языке TCL/TK. В преамбуле к TKproE подчёркнуто, что он поддерживает быструю разработку сложных графических пользовательских интерфейсов.

Что же принципиально нового появилось в новой версии по сравнению с версией 2.20 помимо нового логотипа?
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 2.3K
Комментарии 8

И еще немного про авто-тесты в QEMU

Настройка Linux *Open source *Разработка под Linux *
Tutorial

Привет, Хабр. Меня зовут Роман, я разработчик встраиваемых систем в Dannie и мы тут делаем умные камеры. По долгу службы, мне потребовалось завести эмуляцию прошивки для чипа из семейства MIPS. В рамках разработки проекта мы обозначили для себя задачу получения быстрой обратной связи при разработке ПО и прошивки. Для этого начали выстраивать CI/CD-цепочку с проверкой прошивки в эмуляторе. Одной из требуемых функций являлась возможность манипулировать окружением загрузчика (u-boot environment). В статье я расскажу что получилось и как из говна и палок завести авто-тесты прошивки в CI.

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

Telegram inlineKeyboard. Оценка качества обслуживания после звонка

Мессенджеры *PHP **nix *Asterisk *Разработка под Linux *
Tutorial

Я занимаюсь разработкой АТС с открытым исходным кодом MikoPBX.

Недавно познакомился с проектом tg2sip. Шлюз позволяет подключить Telegram аккаунт к офисной АТС, принимать и совершать звонки.

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

При попытке реализовать функцию столкнулись со сложностями:

- Пользователь не может отправлять / пересылать клавиатуру другому пользователю

- Бот не может писать пользователю, если тот на него не подписан

Как же быть? Решение опишу под катом

Приступим...
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 1.2K
Комментарии 0

Кросс-компиляция NGINX (для случая GCC)

Open source *Nginx **nix *Разработка под Linux *

NGINX — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, изначально написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных сайтов.


Однако кросс-компиляция NGINX практически невозможна, поскольку разработанные Игорем Сысоевым скрипты конфигурирования исходного кода в большинстве случаев используют так называемую процедуру «Try Run».


Те кто знаком с утилитами Autoconf, Automake знают, что проверки необходимых параметров системы и кросс-компилятора осуществляются различными процедурами, которые, в свою очередь, могут применять попытки сборки исходного кода (Try compile), линковки объектных файлов (Try link) и, наконец, попытки запуска тестовых программ (Try Run).


Естественно, если речь идет о кросс-сборке, операции «Try Run» недопустимы, ведь мы не можем запустить программу, собранную под целевую архитектуру отличающуюся от архитектуры машины сборки на самой машине сборки.


В Autotools проблемы, связанные с невозможностью запуска целевых программ на сборочной машине в некоторых случаях решаютcя кешированием переменных, которые могу быть переопределены пользователем в файле --cache-file или заданы в командной строке вызова скрипта ./configure.


Скрипты Игоря Сысоева не предусматривают такого переопределения машинно-зависимых величин. Однако величин, которые необходимо задать во время конфигурирования исходных кодов NGINX достаточно много. К ним, в первую очередь, относятся размеры типов данных. Именно с них мы и начнем.


Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 2.5K
Комментарии 4

Ассeмблерные хаки из книги «xchg rax, rax»

Assembler *Разработка под Linux *
Из песочницы

Разбор фрагментов кода из загадочной книги, которая содержит только ассемблерный листинг и никаких комментариев. Часть 1

Читать далее
Всего голосов 97: ↑97 и ↓0 +97
Просмотры 18K
Комментарии 30

Представляем Windows Terminal Preview 1.13

Блог компании Microsoft Настройка Linux *Open source *Разработка под Linux *Разработка под Windows *

Добро пожаловать в первый релиз Windows Terminal 2022 года! Как всегда, вы можете установить Windows Terminal и Windows Terminal Preview из Магазина Microsoft или из репозитория GitHub. Ну а подробности о релизе под катом.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 6.4K
Комментарии 12

FastTrack: Управление вводом/выводом с учетом FG приложений для улучшения пользовательского опыта смартфонов Android

Системное программирование *Разработка под Android *Разработка под Linux *Аналитика мобильных приложений *Смартфоны

Я разобрала статью:

Hahn, S. S., Lee, S., Yee, I., Ryu, D., & Kim, J. (2018). FastTrack: Foreground App-Aware I/O Management for Improving User Experience of Android Smartphones. In 2018 Annual Technical Conference (USENIX 18) (pp. 15-28).

И хочу поделиться основными идеями по улучшению пользовательского опыта при взаимодействии со смартфонами Android.

Пользователям смартфонов важно, чтобы их устройства без задержек реагировали на действия пользователя. Инверсии приоритетов ввода-вывода в разделах кэша страниц (page cache) и хранилище (storage device) являются причинами увеличения времени отклика приложений переднего плана (FG, Foreground). Цель статьи - исследовать проблему инверсии приоритетов ввода-вывода на смартфонах Android, ее влияние на работу пользователя. Авторы статьи предлагают инструмент управления вводом-выводом FastTrack. Он вытесняет текущую фоновую активность на всех уровнях. 

По результатам тестирования инструмент ограничивает увеличение времени отклика на 27%, в дефолтной реализации Android еще на 2,319%. Когда шесть фоновых приложений (BG, Background) работают вместе, FastTrack может сократить время отклика приложения FG на 94% по сравнению с Android. Авторы изменили реализацию кэша страниц, планировщик ввода-вывода внутри хранилища. FastTrack улучшает взаимодействие пользователя со смартфонами, предотвращая инверсию приоритетов ввода-вывода.

Читать далее
Рейтинг 0
Просмотры 322
Комментарии 1

Указания по проектированию D-Bus API

Системное программирование *Разработка под Linux *
Перевод
Tutorial

Продолжаем тему D-Bus на Хабре. D-Bus — система межпроцессного взаимодействия (IPC), которая позволяет приложениям в операционной системе сообщаться друг с другом. При этом приложения могут находиться на разных компьютерах.

Данная публикация является логическим продолжением переводов вводной статьи и cпецификации D-Bus. Она имеет уже практическую направленность, поскольку в ней рассказывается о том, как грамотно проектировать D-Bus интерфейсы. Будет показано как избежать промахов, которые обычно происходят, когда вы создаете свой первый, второй, третий D-Bus интерфейс.

Читать далее
Рейтинг 0
Просмотры 977
Комментарии 0

Флаг EPOLLEXCLUSIVE и проблема неравномерного распределения соединений в Nginx на Linux

Системное программирование *Nginx *Серверное администрирование *C *Разработка под Linux *

Совсем недавно, 25 января 2022 года вышел новый релиз Nginx - 1.21.6, в котором исправлена проблема неравномерного распределения входящих соединений между несколькими worker процессами в дефолтной конфигурации на Linux системах. Если конкретнее - use epoll, accept_mutex off, reuseport выключен.

В данной конфигурации при определенном характере нагрузки большинство входящих в Nginx соединений обрабатывается лишь одним worker процессом. 

Насколько я понимаю, эта проблема существует уже более пяти лет и берет начало в версии 1.11.3 (Jul 2016), когда в Nginx по умолчанию отключили accept_mutex, а вместо него стали полагаться на флаг EPOLLEXCLUSIVE, появившийся в ядре Linux 4.5.

Стоит заметить, что проблема балансировки входящих соединений при использовании механизма epoll и флага EPOLLEXCLUSIVE более глобальна и касается не только Nginx, а любых сетевых приложений, работающих по аналогичной схеме.

В этой статье мы посмотрим на историю и причины появления данной проблемы, а также рассмотрим код ее решения в новом релизе Nginx.

Читать далее
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 3.8K
Комментарии 24

Компания SUSE открыла код NeuVector

Информационная безопасность *Open source *GitHub Разработка под Linux *Kubernetes *
Из песочницы

Компания SUSE объявила о выпуске NeuVector - платформы, обеспечивающей комплексную безопасность контейнеров. Это решение предназначено для выполнения   контейнеризированных приложений в среде нулевого доверия (zero trust). База кода NeuVector уже доступна сообществу на GitHub.

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

Образы контейнеров NeuVector стали открытым ПО и могут быть развернуты на любом кластере Kubernetes. Пользователи SUSE Rancher могут установить их из каталога приложений. В следующих версиях интеграция этих двух продуктов станет еще более плотной. Разработчики NeuVector придерживаются той же стратегии, что и SUSE, и предлагают решение для всех популярных решений для управления контейнерами – SUSE Rancher, Red Hat OpenShift, VMware Tanzu, Google GKE, Amazon EKS, Microsoft Azure AKS и других.

Проект NeuVector позволяет пользователям SUSE Rancher обеспечить требуемый уровень безопасности на протяжении всего жизненного цикла приложения и решать все необходимые для этого задачи: сегментирование сети, мониторинг и анализ трафика, сканирование уязвимостей в контейнерах, управление их конфигурацией и проверка на соответствие требованиям регуляторов, профилирование рисков, обнаружение угроз и реагирование на инциденты ИБ.

Исходный код предварительного релиза SUSE NeuVector опубликован на GitHub:

Для Controller, Enforcer и Scanner

Для Manager

Документация для всех компонентов

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.1K
Комментарии 0

IO_URING. Часть 3

Блог компании ITSOFT Высокая производительность *Go *Разработка под Linux *

Всем привет! Симулятор написания echo-server'ов на связи. Сегодня завершающая часть из цикла посвященного io_uring. В этом материале мы поговорим о настройке io_uring, режимах работы и перформансе. Полученные знания используем чтобы улучшить конкурента netpoller'у из предыдущей статьи. 

Читать далее
Всего голосов 16: ↑14 и ↓2 +12
Просмотры 1.8K
Комментарии 2

Sysbox: Изолированный container runtime. Краткий обзор и настройка

Блог компании OTUS Разработка под Linux *DevOps *

О Sysbox в 3-х предложениях:

- Sysbox - это "VM-like" контейнеры с возможностью запускать внутри системный софт: Docker, Kubernetes, Systemd, вложенные контейнеры и т.д. 
- Любой софт, работающий на виртуальной машине, должен также работать в контейнере без проблем и с надежной изоляцией.
- Никаких сложных настроек, все настраивается за несколько шагов.

Если тема заинтересовала, то в статье проведем краткий обзор и даже запустим изолированный контейнер на локальной машине.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 2.1K
Комментарии 0

Как скрестить Коня и Трепетную лань

Блог компании Sportmaster Lab Программирование *Оболочки *Разработка под Linux *Разработка под Windows *

«Бить (Bash) или не бить», - спрашивал один датский принц. Вот и у меня возник аналогичный вопрос, когда у нас в компании появился сервер сборки Bamboo. Как можно в задании Bamboo, выполняющем скрипт Bash или Cmd, написать команды, одновременно понятные интерпретатору командной строки Windows и оболочки Linux?

У нас в компании в качестве скриптового языка планов Bamboo используется кроссплатформенный язык Python. Но для запуска скриптов в Windows и Linux используется разный код.

Команды, понятные Linux, будут обработаны с ошибкой в Windows и наоборот. Что делать в этой ситуации?

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 2.5K
Комментарии 16

Минималистичный универсальный Linux-ПК со странным названием minimum viable computer: что он умеет

Блог компании Selectel Разработка под Linux *Производство и разработка электроники *Гаджеты DIY или Сделай сам

На днях разработчик по имени Брайан Бенчофф (Brian Benchoff) анонсировал начало работы над проектом, который получил название minimum viable computer или MVC. Это миниатюрный ПК на базе Linux с базовыми возможностями, которые, впрочем, можно использовать для самых разных целей.

В частности, компьютер может использоваться для тестирования систем безопасности, работы в дата-центре, для создания софта. Также он может работать как аппаратный криптокошелек или в качестве ПК для ретро-геймеров, поскольку способен запускать Doom. Проект необычный, но в целом, вполне реализуемый. Под катом — подробности проекта.
Читать дальше →
Всего голосов 51: ↑50 и ↓1 +49
Просмотры 14K
Комментарии 49

Разработка графических приложений в WSL2

Блог компании Специальный Технологический Центр Разработка под Linux *Разработка под Windows *
Tutorial

Данная статья будет неким дополнением опубликованной ранее (не мной) статьи. Чтобы не повторять написанное, по ссылке выше есть информация о требованиях к работе wsl2 на windows 10, как его включить, настроить, обновить и запустить графическую среду. В текущей статье я расскажу о том, как вести разработку графических приложений в wsl используя не только visual studio code со спец. плагином, а любую среду разработки.

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

Keylime — ключ от облака

Блог компании Timeweb Cloud Информационная безопасность *Разработка под Linux *Читальный зал Облачные сервисы

Если ваша организация управляет сотнями или тысячами (а может сотнями тысяч) серверов, как убедиться, что они не взломаны? Вы можете использовать традиционную программную систему обнаружения вторжений (Intrusion Detection System, IDS), но она по-прежнему уязвима для сложных программных атак. Что вам действительно нужно, так это создать аппаратный корень доверия, который можно использовать для проверки самых первых шагов процесса загрузки и распространения этого доверия вверх на каждый уровень вашей системы. Аппаратный модуль Trusted Platform Module (TPM) обеспечивает такую ​​опору для настоящего решения удаленной аттестации.

Keylime, проект песочницы Cloud Native Computing Foundation, предоставляет масштабируемое решение для аттестации измеряемой загрузки, используя TPM и Linux архитектуру измерения целостности (Integrity Measurement Architecture, IMA), чтобы предоставить платформу удаленной аттестации, безопасную доставку полезной нагрузки и структуру отзыва, и дать вам полный контроль над политикой аттестации и устранением атак.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.3K
Комментарии 0

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