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

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

Пишем под *nix

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


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

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

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

Совсем недавно, 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.

Компания 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:

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

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


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


Получив свой экземпляр (заказал еще до того как вышел 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 и «Альт». Обзор его возможностей — под катом.

Я планировал выпускать заметки с новостями про far2l — Linux/Mac/BSD-порт (автор считает, что, скорее, «форк») Far Manager. Однако вчера произошло значимое событие, требующее лаконичного, но всё же поста — проект перешёл из стадии «alpha», длившейся долгих 5 лет, в стадию beta!
Так что сегодня подведу некоторый итог 5 лет разработки, а также расскажу про новую интересную фичу, которую добавили в far2l совсем недавно — уже после последнего моего обзорного поста.

МойОфис, российская компания-разработчик офисного программного обеспечения для совместной работы с документами и коммуникаций, объявляет о выпуске нового релиза «МойОфис Стандартный. Домашняя версия» 2022.01. Теперь настольные редакторы документов для частных пользователей стали доступны в операционных системах на базе ядра Linux и получили новую функциональность.