Разработчик под ником madprops предложил способ для быстрого поиска команд в терминале
«Я очень часто обращаюсь к истории действий в shell, чтобы снова и снова запускать одни и те же команды. Пока нет эффективного способа сделать это. Я думаю, что это проблема, которую нужно решать с помощью специализированного инструмента. Я могу попробовать сделать инъекцию оболочки с помощью rofi позже. Но сейчас я придумал трюк, который помогает в работе. Добавьте значки к командам, чтобы вы могли мгновенно распознавать их по стрелкам вверх:
: ✅;./utils/check.sh
: ⚡;./scripts/tag.py
: 📚;./scripts/makedocs.sh
Обратите внимание на двоеточия и точки с запятой. Значки не являются частью команды, они ничего не делают. Но теперь ваше зрение очень быстро распознает нужный элемент. Вместо иконок можно использовать текст, который можно легко отфильтровать позже», — пояснил madprops.
Учимся в сетевые интерфейсы на Linux: руководство по netlink
В интернете я нашел всего одну статью, где описывали мониторинг сетевых портов. Это был хороший старт, но для решения моей задачи информации оказалось недостаточно. Уже во время написания этой статьи я нашел еще пару материалов, которые, как я рассчитываю, хорошо дополнят мой. Помимо статей, нашел несколько man-страниц, в которых описаны пакеты, параметры, структуры и даже есть примеры кода. Оттуда я взял готовый код, способный получать информацию о появлении нового интерфейса и добавлении его в vlan. Но задача требовала отслеживать намного больше параметров системы.
Следующая остановка — пакет iproute2. Iproute распространяется под GNU GPL 2, так что я скачал исходники, собрал их и начал разбираться в коде на C. Чтобы проще понимать логику, я удалял некоторые участки кода, в которые при вызове моей функции программа не входила. Затем пересобирал программу и продолжал изучение и трассировку. Так я понял общий принцип обработки пакетов и сделал обработку пары дополнительных параметров. Но оставалось еще много других условий.
В какой-то момент я вспомнил про утилиту strace: с ней стало проще изучать код и ориентироваться в нем. Strace позволяла увидеть финальный этап работы функции и все ее параметры. Решая свои задачи, я копировал и адаптировал код из iproute. Я не особо вникал во внутреннее устройство протокола, но с каждым этапом разработки это становилось все сложнее и сложнее.
Наконец, я сделал обработку всех параметров кроме одного. В функции его обработки в iproute вызывалась обработка какого-то системного файла, и это было очень странно, так как я видел этот параметр в сообщении netlink через strace. Я зашел в тупик. Код выглядел очень страшно и совсем не нравился мне. Покопавшись в этом еще один день, я понял, что так продолжаться не может. Я решил переписать все заново без использования кода из iproute. Хотел сделать код красивым и максимально понятным для тех, кто будет читать его после меня.
О том, как с помощью netlink узнать, что именно делает система при настройке сетевых интерфейсов и как обрабатывать ее команды, читайте в статье Тимура Аммаева.
Системным программистам в YADRO нужно было «обмануть» драйвер в Linux: он не должен «знать», что работает в эмуляции.
Для этого ведущий инженер Никита приступил к созданию виртуального двойника Intel NTB Gen3 в QEMU, документации к которому в открытом доступе нет. Реализованная модель позволяет производить разработку и тестирование протоколов более высокого уровня, а также выполнять их качественное сравнение.
PCIe NTB не позволяет увидеть адресное пространство, которое принадлежит к подключенному по NTB соседнему устройству. Вкратце он работает так:
перенаправляет трафик PCIe между шинами как мост,
CPU рассматривает мост как конечное устройство,
CPU не «видит» все устройства на «другой» стороне, как правило, другая сторона — это другой компьютер.
Упрощенное представление PCIe NTB
С точки зрения эмуляции, нужно уделить особое внимание регистрам, прерываниям и моделированию поведения устройств.
В работе с PCI BAR необходимо обеспечить прозрачное использование Linux-драйвера Intel NTB для оптимального взаимодействия с оборудованием, которое мы эмулируем. Еще одна задача — разработать новые транспорты, которые работают поверх эмуляции: RPMSG, Virtio/Vhost, NTRDMA и другие. Также одна модель помогла найти ошибки в инициализации драйвера.
Никита подробно описывает тернистый путь создания виртуального двойника Intel NTB Gen3 в статье →
В разработке на python, особенно в DS/ML проектах, мы все сталкиваемся со сложной схемой зависимостей на специфичной аппаратной платформе. Зачастую, вести разработку удобно в том окружении, в котором в последствии запускается приложение.
Если вы вдруг vim user, то можно просто доставить редактор в контейнер с окружением и разрабатывать прямо там. Такая схема достаточно лекговесна, позволяет относительно просто держать актуальными завистимости при разработке, переиспользовать существующие сборочные конвейеры с небольшим наборов слоёв для самого редактора. Так же это может быть удобно, если вам нужно работать где то на удалённом кластере по ssh.
У меня был некоторый шаблон Dockerfile с добавкой vim с плагинами который кочует из проекта в проект и я решил поделиться с вами этой наработкой.
Неоднократно приходилось переходить с Linux на самой машине к той же версии и на той же машине, но развернутой в виртуалке в Windows. И часто замечал, что Linux в Hyper-V работает более “отзывчиво” по части GUI (vscode, chrome, firefox и т.п.). Но это были именно субъективные ощущения, особо не заострял на этом внимание предполагая, что улучшения происходят из-за каких-либо аппаратных интерфейсов, для которых Hyper-V предоставляет стандартные реализации.
Недавно решил обновить рабочий компьютер, и перед тем как выбрать какая ОСь будет основной, провел небольшой тест на сколько “тормозней” Linux в Hyperv-V.
make menuconfig #выбираем Target System (Qualcomm Atheros IPQ807x)
make -j8 download #download отдельной командой, чтобы не зависеть от сети при тесте.
time make -j8
Linux в Hyper-V:
Устанавливаем Windows 10 LTSC на ноут.
Включаем поддержку Hyper-V.
Устанавливаем Linux под Hyper-V.
В настройках виртуалки, установить кол-во CPU равным 8, выделить RAM 8-18 GB.
Далее выполняем те же действия, что и в пп. 1.2.
Вывод time после сборки OpenWrt:
Linux на ноутбуке:
попытка №1
real 30m37,765s
попытка №2
real 29m18,569s
Linux в Hyper-V:
попытка №1
real 27m12,136s
попытка №2
real 27m36,395s
Получается, что Linux в Hyper-V работает немного быстрей? Странно это, и по хорошему нужно проверять еще. Но на данном этапе меня устраивает, что могу две ОСи одновременно использовать и есть уверенность что нет дополнительных проседаний в производительности.
Так же попробовал в виртуалке установить Ubuntu 24.04 и Linux Mint 22 Cinnamon, их время было такое,real 30m59,630s и 30m37,765s соответственно.
Три проверенных метода организовать обмен прерываниями между машинами QEMU c KVM и без
Эмулятор QEMU помогает решать ряд задач, в том числе разработку и отладку любого уровня коммуникаций. Вы можете эмулировать работу не только отдельной машины, но и связывать несколько независимых машин между собой.
Быстрая работа такой связки приятна при разработке/отладке и очень важна при массовом прогоне автотестов в CI. Как оптимизировать обмен прерываниями и какой подход к организации IQI вам подойдет — узнаете из статьи. А еще разберемся c:
устройством QEMU под капотом,
реализацией модели и драйвера,
добавлением прерываний MSI-X,
результатами замеров.
На бонус: десяток полезных материалов для изучения.
Я просто оставлю это здесь, может, кому-нибудь пригодится.
Из-за того, что в последних версиях шестая плазма более-менее готова к использованию, я нашёл время стряхнуть пыль со старой темы, которую использовал когда-то для пятёрки.
Под "готова" я имею в виду, что система справляется со своими задачами в довольно жёстких условиях: на моём безвентиляторном мини-ПК с HiDPI дисплеем крутится Андроид Студия, эмуляторы различных устройств и операционных систем и прочие инструменты разработчика. Согласитесь, что это показатель.
Внешний вид темы по умолчанию (Бриз) меня в целом устраивает, а вот нижняя ("южная") панель не нравится. Поэтому тема делает две вещи:
Устанавливает тёмный (в моём случае прозрачный) фон всей панели и границу сверху.
Производители SoC, как правило, предоставляют окружение для разработки и документацию с примерами реализации универсальных решений. Но много важных деталей упускается или скрывается от пользователя. В итоге нетривиальная модификация системы требует долгих исследований и экспериментов.
Изучили все нюансы на практике за вас, реализовав проект запуска Embedded Linux на Hard- и Soft-процессорах Xilinx Zynq. Пойдем по этапам:
Подтверждена совместимость BPM-системы «Первая Форма» с «РЕД ОС»
ВРМ‑система «Первая Форма» стабильно работает на российской операционной системе РЕД ОС 8, а также на мобильной платформе РЕД ОС М. Совместимость продуктов позволяет автоматизировать бизнес‑процессы организаций, обеспечивая их выполнение на отечественной ИТ‑инфраструктуре. Чтобы повысить уровень защиты данных, поддерживается двухфакторная аутентификация и интеграция со смарт‑картами.
РЕД ОС — операционная система семейства Linux, предназначенная для серверов и рабочих станций. Она обладает сертификацией ФСТЭК России, что делает её подходящей для задач с повышенными требованиями к безопасности.
«Первая Форма» — набор инструментов для автоматизации документооборота, управления проектами, CRM, В2В2С‑решений и корпоративных коммуникаций, занимает лидирующую позицию среди российских low‑code решений для управления бизнесом.
Оба решения входят в реестр отечественного ПО Минцифры.
Подтверждена совместимость BPM-системы «Первая Форма» с «РЕД ОС»
Теперь LanguageSwitcher можно скачать в виде .exe файла и запустить его без лишней мороки (для тех кто переживает, что ваши данные под угрозой всё еще есть скрипт в исходном виде).
Также теперь Language Switcher можно установить и на Linux в виде скрипта
Инженер Intel Linux Колин Ян Кинг обнаружил, что если выровнять параметр slab в коде ACPI с помощью флага «SLAB_HWCACHE_ALIGN», то можно будет добиться заметного улучшения производительности памяти и сократить время загрузки ядра Linux ещё примерно на 0,035 секунды.
Колин объяснил это с помощью однострочного патча ядра:
«Включение SLAB_HWCACHE_ALIGN для кэшей объектов ACPI повышает скорость загрузки в ядре ACPICA для выделения и освобождения объектов, особенно на этапах анализа и выполнения AML при загрузке. Тестирование со 100 загрузками показывает среднюю экономию загрузки в acpi_init в размере ~0,035 с по сравнению с невыровненной версией. Большинство выделяемых и освобождаемых объектов ACPI имеют очень короткое время жизни в критических путях для анализа и выполнения, поэтому дополнительная память, используемая для выравнивания, не слишком обременительна».
Linux проделал большую работу по оптимизации времени загрузки ядра, начиная с дней помешательства на нетбуках и в последующие годы для лучшей оптимизации серверов. Экономия загрузки около 0,035 секунд едва ли будет заметна для конечных пользователей, но каждая мелочь имеет значение, особенно в случае гипермасштабаторов и других факторов, в которых необходимо минимизировать время простоя в центре обработки данных, будь то серверы bare metal или виртуальные машины. А то, что это всего лишь однострочный патч, делает его еще более легкой и приятной победой.
Представлен выпуск Aura 4.0.0. Это проект пакетного менеджера для дистрибутива Arch Linux, расширяющий возможности штатного пакетного менеджера Pacman.
Проект создан в 2012 году и изначально был нацелен на предоставление средств для сборки пакетов для репозитория AUR (Arch User Repository), применяемого для распространения сторонними разработчиками своих пакетов, не входящих в основные репозитории дистрибутива Arch Linux.
Кроме специфичных для AUR функций в Aura также предоставляются и другие возможности, расширяющие функциональность Pacman (в настоящее время только 1/3 расширенных возможностей Aura связаны с AUR). Например, доступны средства для наглядного анализа зависимостей, работы со снапшотами наборов пакетов (для сохранения и восстановления состояния), управления остаточными зависимостями и отката отдельных пакетов или всей системы на прошлые версии.
Aura полностью обратно совместим с Pacman и поддерживает все его команды и опции. Связанные с AUR дополнительные возможности вызываются через указание опции командной строки «‑A», а средства работы со снапшотами и версиями через опции «‑B» и «‑С», не пересекающиеся с опциями Pacman.
В Aura 4.0.0 переведена вся кодовая база с Haskell на язык Rust. Смена языка позволила значительно повысить производительность, упростить установку, задействовать готовые Rust-биндинги к libalpm, сделать проект более привлекательным для новых разработчиков.
Проект Redox OS, представляющий собой операционную систему с открытым исходным кодом, написанную с нуля на языке программирования Rust, теперь имеет работающий веб-сервер, среди прочих улучшений, добавленных в код проекта в течение июля.
Среди заметных новых программных работ в Redox OS — запуск Simple HTTP Server в качестве первого веб-сервера (HTTP) для платформы. Сам Simple HTTP Server также написан на Rust. Также ведутся постоянные усилия по переносу Apache HTTP-сервера в Redox OS.
Ещё одним важным достижением приложения является программа wget, которая теперь работает в Redox OS. Также была проделана большая работа по запуску настольных приложений COSMIC в Redox OS, внесены улучшения в системы сборки, продолжалась работа по созданию более сложных программ в Rust, улучшение ядра ARM64, улучшения UEFI и различные исправления драйверов.
Разработчики Manjaro Linux на базе Arch Linux объявили о начале тестирования экспериментальной сборки Manjaro Immutable, которая примечательна поставкой базовой системы в форме единого монолитного образа, монтируемого в режиме только для чтения и обновляемого целиком в атомарном режиме. Размер загрузочного образа 1,7 ГБ. Поддерживается только загрузка в режиме UEFI как на оборудовании x86_64, так и в системах виртуализации и эмуляции, таких как VirtualBox и QEMU. После завершения тестирования сборке планируют придать статус официального варианта Manjaro.
Для формирования монолитных системных образов на основе пакетной базы Arch Linux, а также для их установки, сопровождения и организации отката на прошлое состояния задействован инструментарий arkdep, развиваемый проектом Arkane Linux.
Microsoft опубликовала первое стабильное обновление новой ветки дистрибутива Azure Linux 3.0, который ранее распространялся под именем CBL-Mariner.
Проект развивается в качестве универсальной базовой платформы для Linux-окружений, используемых в облачной инфраструктуре, edge-системах и различных сервисах Microsoft. Решение нацелено на унификацию применяемых в Microsoft Linux-решений и упрощение поддержания Linux-систем различного назначения в актуальном состоянии.
Базовая платформа включает только самые необходимые компоненты и оптимизирована для минимального потребления памяти и дискового пространства, а также для высокой скорости загрузки. В проекте применяется подход «максимальная безопасность по умолчанию», подразумевающий включение различных дополнительных механизмов для повышения защиты.
добавлена поддержка GPU Nvidia A100 и H100, а также предоставлен Nvidia GPU Operator для автоматизации управления драйверами Nvidia на узлах с Azure Linux;
добавлены инструменты для замены других дистрибутивов (OSsku In‑Place Migration) на узлах в облаке Microsoft Azure, например, можно заменить установленный Ubuntu на Azure Linux;
система принудительного контроля доступа SELinux переведена по умолчанию в режим enforcing.
Компания ООО «РусБИТех‑Астра» представила дистрибутив специального назначения Astra Linux Special Edition 1.8, который может применяться для защиты конфиденциальной информации и государственной тайны до уровня «особой важности».
Дистрибутив Astra Linux 1.8 основан на пакетной базе Debian GNU/Linux и содержит дополнительные механизмы обеспечения безопасности, такие как собственная система мандатного управления доступом, аудита, контроля целостности и подлинности файлов (PARSEC), гарантированное удаление файлов, сборка ядра с патчами для повышения безопасности. Пользовательское окружение построено на основе проприетарной среды рабочего стола Fly с компонентами, использующими библиотеку Qt.
Дистрибутив Astra Linux 1.8 распространяется в рамкахлицензионного соглашения, которое накладывает ряд ограничений на пользователей, в частности, запрещены коммерческое использование без заключения лицензионного договора, декомпиляция и дизассемблирование продукта.
В ОС Astra Linux версии 1.8 представлен новый визуальный стиль. Оригинальные, реализованные специально для Astra Linux, алгоритмы работы и исходные коды отнесены к категории коммерческой тайны. Пользователю предоставляется возможность воспроизведения только одного экземпляра продукта на одном компьютере или виртуальной машине, а также даётся право на изготовление только одной резервной копии носителя с продуктом. Готовые установочные сборки пока публично не предоcтавляются, но доступныобразы контейнеров и виртуальных машин.
Приём работ на Open Source Education Cup 2024 продолжается. Это мероприятие является первым из ряда инициатив, запланированных для сотрудников системы образования на 2024-2025 годы.
Принять участие могут представители образовательных учреждений, исследователи, инженеры и контрибьюторы. Задача — разработать концепции образовательного курса длительностью более 72 академических часов, а также сопутствующих учебно-методических материалов. Курс должен быть направлен на изучение основных принципов работы и инструментов создания Open Source проектов, с акцентом на разработку операционных систем с открытым исходным кодом.
Технологическими партнёрами являются СберТех и платформа GitVerse.
Опубликован релиз свободного гипервизора Xen 4.19. В разработке проекта приняли участие Amazon, Arm, EPAM Systems и AMD. Формирование обновлений для ветки Xen 4.19 продлится до февраля 2026 года, а публикация исправлений уязвимостей до августа 2027 года.
для систем на базе архитектуры ARM добавлена поддержка механизма асинхронного обмена данными «FF‑A Notifications», описанного в спецификации FF‑A (Firmware Framework for Arm A‑profile). Реализована возможность динамического добавления и удаления узлов в Xen device tree при помощи файлов.dtbo;
для систем на базе архитектуры x86 добавлен новый драйвер контроллера прерываний x2APIC, использующий режим логической адресации (Cluster Logical) для внутренних прерываний (IPI, inter‑processor interrupt) и режим физической адресации для внешних прерываний;
объявлена устаревшей и будет прекращена в следующем выпуске поддержка процессоров Intel XeonPhi;
максимальное число CPU, используемых в Xen, увеличено с 4095 до 16383;
при сборке с systemd (./configure --enable-systemd) из сборочных зависимостей исключена библиотека libsystemd (поддержка systemd-notify реализована через собственную урезанную библиотеку);
для анализа трассировок для CPU AMD в xenalyze больше не нужно использовать опцию "--svm-mode";
продолжена реализация требований к разработке безопасных и надёжных программ на языке Си, сформулированных в спецификациях MISRA-C для критически важных систем.
Разработчики проекта UBports, который взял в свои руки создание мобильной платформы Ubuntu Touch, после того как от неё отстранилась компания Canonical, представили прошивку OTA-5 Focal (over‑the‑air). Это четвёртый выпуск Ubuntu Touch, основанный на пакетной базе Ubuntu 20.04. Проектом также развивается экспериментальный порт рабочего стола Unity 8, который переименован в Lomiri.
Обновление Ubuntu Touch OTA-5 Focal в ближайшие дни будет сформировано для устройств Asus Zenfone Max Pro M1, F(x)tec Pro1 X, Fairphone 3/3+/4, Google Pixel 3a/3a XL, JingPad A1, Oneplus 5/5T/6/6T, Sony Xperia X, Vollaphone X/22/X23 и Xiaomi Poco X3 NFC / X3. По сравнению с прошлой версией не будут формироваться сборки для устройств OnePlus One, Samsung Galaxy S7, Xiaomi Redmi Note 9/9 Pro/9 Pro Max/9S и Xiaomi Poco M2 Pro.
Отмечается, что выпуск в основном сосредоточен на исправлении ошибок. Среди заметных изменений:
в систему профилей энергопотребления добавлена возможность раздельной обработки режима постоянного потребления и интерактивного режима на устройствах с их поддержкой.
устранена проблема с переносом настроек при миграции с Ubuntu Touch на базе Ubuntu 16.04 на Ubuntu Touch OTA-5 Focal на базе Ubuntu 20.04.
обеспечен вывод уведомления при сбое синхронизации календаря‑планировщика из‑за проблем с аутентификацией, позволяющего пользователю ввести новый пароль.