Диагностика виртуальной сети в Linux. BPFTrace и skbtrace в опенсорсе


Пишем под *nix


Получив свой экземпляр (заказал еще до того как вышел LicheeRV Dock), я конечно же полез за официальной инструкцией к производителю...
В принципе, я никогда не интересовался продуктами вроде Banana Pi или Orange Pi от Allwinner, взглянув на официальное чудо, я понял почему от этих продуктов все так воротят нос:
— Прошивки для не китайцев "заботливо" лежат на MEGA (хочешь качать - плати деньги...)
— Для прошивки карт используется "замечательный" инструмент под названием PhoenixCard (судя по китайским форумам он не слушается даже китайцев), который работает под Windows (что всегда хорошо!)
— Официальный "SDK" обернут вместе c rootfs и разбит на архивы общей суммой >10 Gb (да-да и лежит на MEGA - то есть все равно заплатишь)
— И изюминка - все образы в комплекте расчитаны на карты ёмкостью больше 16 Gib (у наших друзей написано 16 GB - card_needs_≥16GB.txt)
Квест про реверс (он в конечном счете не понадобился) и печальное ковыряние палкой данного продукта жизнедеятельности (то что я собрал с помощью SDK, так и не заработало...) мы опустим, так как, я наконец наткнулся на гайд для Sipeed Nezha от дяди Samuel'a Holland'a спасибо ему за это огромное...

В апреле 2021 года, параллельно с началом государственной программы предустановки российского ПО на умные устройства, МойОфис впервые выпустил бесплатные настольные редакторы документов для частных лиц. Тогда мы делали ставку только на программы для Windows и macOS, так как считали, что именно эти системы преобладают на домашних компьютерах. Но оказалось, значительная часть обычных пользователей нуждается и в версии для Linux. Весь прошлый год наша служба технической поддержки и другие коллеги получали множество просьб о выпуске такого решения.
Встречайте наш новый продукт — «МойОфис Стандартный. Домашняя версия», который подходит для различных операционных систем Linux и полностью совместим с российскими операционными системами Astra Linux и «Альт». Обзор его возможностей — под катом.

С изучением языков возникает проблема переключения раскладок клавиатуры. Когда два языка все просто, жамкаешь ALT+SHIFT (или что там у вас) и переключаешься на следующий язык. И ты всегда знаешь на какой именно язык переключился. Когда раскладок становится хотя бы 3 это уже вызывает проблемы. Потому что нажать ALT+SHIFT нужно один или несколько раз и непонятно сколько именно, не посмотрев в угол экрана.

/etc/services знают, что одни сетевые службы используют транспортный протокол TCP, другие же — UDP. Каждый из них имеет свою область применения. Если надёжность соединения имеет приоритет над скоростью передачи данных, то TCP предпочтительнее. Например, для SMTP, или IMAP больше подходит TCP. Обратное тоже верно там, где важна скорость передачи данных, а потеря дейтаграмм или их порядок не критичны — используют UDP. К их числу относятся SNMP, DNS, VoIP и другие службы.Многие ли из вас используют всевозможные вспомогательные shell-скрипты в своих проектах? Это также могут быть Python или Perl скрипты. Обычно такие скрипты используются на этапе сборки или для других задач автоматизации проекта.
Примерами таких задач могут служить:
Впрочем, часто для подобных целей используют системы сборки.
Make — пожалуй, наиболее известный из подобных инструментов.
Похожий функционал известен разработчикам nodejs и любим ими в виде скриптов в package.json (npm run-scripts). Ветераны Java вспомнят Ant.
Но nodejs/Ant требуют установки, make хоть и способен выполнять функции task runner довольно неудобен в этой роли, будучи на самом деле очень олдскульным build tool со многими вытекающими "особенностями".
А shell-скрипты требуют некоторой системы и неизбежной рутины в написании (обработка аргументов, help-сообщения и т.д.).
Хотя, например, Taskfile представляет прекрасный шаблон для подобных скриптов.
Так и родился makesure.

В моем конкретном случае все казалось нерадужно, я опускал руки, думал о неизбежности начать писать на Си, компилировать ядро, уходить в отшельники для отладки приложения и т.п. Нельзя сказать что результата в Bash не было, он просто не устраивал. Пока программированием по несколько строк, не отрываясь от повседневных задач сисадмина, код не "созрел" до удовлетворительного результата.


Всем привет! Продолжаем разбираться с io_uring. Сегодня попробуем использовать io_uring для решения прикладных задач. А именно напишем полноценный TCP сервер. Для этого мигрируем наши приложения с C на GO. Не буду писать длинные вступления, вперед экспериментировать!

Работа с файлами формата ELF -- популярная тема на Хабре. ("Введение в ELF-файлы в Linux: понимание и анализ", "Минимизация файла ELF – попробуем в 2021?" и т. д.)
Существуют библиотеки для Хаскела для работы с этими файлами: elf
(Hackage) и data-elf (Hackage). Эти библиотеки работают только с заголовками и элементами таблиц и не дают возможности сгенерировать объектный файл.
Библиотека melf (GitHub, Hackage) даёт возможность полностью разобрать файл ELF и сгенерировать такой файл по несложной структуре данных. Ниже даются примеры её использования.

Всем привет, я — Дмитрий Пестеха, ведущий разработчик С++ команды POS-систем в «Магните». В этой статье я расскажу, как мы пилили монолитное приложение Касса на модули и отлаживали их взаимодействие на RPC-JSON. Спойлер: в процессе появился новый самописный язык интерфейсов - IDL.

Все кто хоть раз касался разработки I/O интенсивных приложений, наверное, задумывался о повышении их производительности. Особенно когда у проекта много внешних хранилищ и они находятся по всему миру. Давайте разберем какие есть инструменты с их плюсами и минусами и как их лучше использовать на примере конкретного проекта, в котором принимал участие Дмитрий Бундин, старший Big Data-разработчик в Grid Dynamics.

Всем привет! Я бы сказал что эта статья cookbok по которому можно создать простое и эффективное решение для создания бэкапов базы данных.
Казалось бы довольно очевидная задача но тем не менее когда я хотел её решить столкнулся с множеством проблем. Готовые бесплатные решения в большинстве своем направленны на управления кластерами или не поддерживаются на ARM-машинах.
В ходе исследования был собран следующий рецепт с помощью которого можно делать бэкапы и получать уведомления по почте, вам даже не понадобиться свой smtp достаточно gmail-аккаунта.

Программные роботы (RPA) с каждым годом всё больше проникают в IT-инфраструктуру компаний, а доля роботизированных процессов в бизнесе постоянно растет. Чтобы поддерживать увеличивающееся количество автоматизированных процессов организациям необходимы дополнительные вычислительные ресурсы, а значит и дополнительные расходы на инфраструктуру и лицензии ПО.
Многие профессиональные RPA-разработчики уже давно мечтают о том, чтобы роботов можно было запускать не только под управлением платной требовательной к ресурсам Windows, но и под бесплатной нетребовательной Linux. В этой статье знакомим читателей с возможностью разработки кроссплатформенных процессов с использованием UiPath и подробно разбираем преимущества от использования Linux-роботов.
Статья написана при поддержке технического эксперта UiPath: Валентина Драздова.

Иногда полезно получить визуальную обратную связь от скрипта. Хотя настольные приложения могут делать это с помощью всплывающих уведомлений, это также можно сделать из скрипта! Посмотрим как.


"Генерация случайных чисел слишком важна, чтобы оставлять ее на волю случая" - Роберт Р. Кавью
Как-то поздним летним вечером мне пришлось разобраться, как устроены генераторы случайных чисел в Windows и Linux. Собственно, в этой статье я попробую привести саккумулированную информацию, и преподнести её максимально простыми словами, без необходимости лезть в исходники, туториалы и статьи.


Предыдущий пост про порт Far Manager под Linux, far2l, оказался невероятно популярным, так что я подумал, что неплохо бы раз в год писать что-то вроде дайджеста самых интересных новостей разработки. Начнём.
Буфер обмена в консольной версии
Теперь far2l, как и mc, умеет использовать буфер обмена X11 даже в консольной версии (в графической умел с самого начала). Для этого собирается отдельный модуль взаимодействия с X, который загружается, только если в системе установлена библиотека libx11. Можно даже ходить на удаленные сервера через ssh -X, буфер обмена будет работать и там (опять же, если libx11 на сервере установлена).
И ещё о консольном режиме. Не забываем про параметр командной строки --ee, позволяющий избавиться от необходимости нажимать ESC дважды.
Кстати, о клавиатуре в консоли. Горячие клавиши в сторонних терминалах поддерживаются практически все — по крайней мере, я знаю только про проблемы с комбинациями Ctrl+цифра, над ними идёт работа.