Обновить
256K+

Linux *

Пишем под *nix

416,99
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Формат публикации

Анатомия LV2-плагина

Время на прочтение11 мин
Охват и читатели3.7K

LV2 - это открытый стандарт для создания плагинов звуковых эффектов. Считается, что он предназначен прежде всего для ОС Linux, хотя не существует никаких ограничений, мешающих использовать его на других системах. До этого в линуксе уже существовало два подобных стандарта - LADSPA и DSSI. Первый из них предназначался в основном для обработки звуковых сигналов и практически не мог работать с MIDI-данными. Второй же наоборот, задумывался как стандарт для виртуальных синтезаторов.

Само название LV2 - это сокращение от LADSPA version 2, он является новой, улучшенной версией стандарта. В отличие от своих предшественников, он позволяет обрабатывать аудиоданные, midi-потоки, создавать любой пользовательский интерфейс и обмениваться любыми данными с приложением-хостом. Стандарт также поддерживает механизм расширений. Благодаря этому LV2 может предложить ряд дополнительных возможностей: набор «заводских» предустановок, сохранение состояния, логирование. В теории, пользователь может создавать свои собственные дополнения. Подробная документация с примерами располагается по адресу http://lv2plug.in

Читать далее

Свой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование

Время на прочтение6 мин
Охват и читатели86K


Представляю вам цикл статей по созданию собственного шлюза для отправки SMS-сообщений.
В первой части мы определим цели и некоторые аспекты использования своего шлюза, настроим программное обеспечение для отправки SMS с использованием USB-модемов, а также рассмотрим несколько интересных вариантов отправки
Читать дальше →

Можно ли быть немножко беременным, или Российское проклятье Open Source

Время на прочтение5 мин
Охват и читатели38K
Ровно два года назад, в апреле 2019 года, произошло знаменательное событие для всех сторонников свободного и открытого ПО, которые следят за Российскими новостями. АО «МЦСТ» "опубликовало" ОС Эльбрус для свободного скачивания. И несмотря на некоторые сложности в самом начале из-за возникшего ажиотажа, этот дистрибутив остается в свободном доступе по сей день и даже продолжает периодически обновляться.

На текущий момент доступны для скачивания версии «Эльбрус Линукс» 6.0.0 на базе ядра Linux 5.4 и версии 5.0-rc3 и 4.0.4 на базе ядра Linux 4.9.



Я специально написал слово «опубликован» в кавычках, т.к. на тот момент исходные тексты дистрибутива Эльбрус Линукс в свободном доступе отсутствовали. Два года назад в разговоре с CNews директор по маркетингу МЦСТ Константин Трушкин сообщил, что
… исходные коды на продукты компании пока недоступны ни для самостоятельного скачивания, ни по запросу, но в скором времени компания намерена их открыть.

Разные пакеты ПО выпускались МЦСТ под различными открытыми лицензиями, и под ними же будет происходить распространение исходных кодов.

Раскрывая исходные коды, компания преследует маркетинговые цели, связанные с продвижением продуктов МЦСТ, а также стремится расширить комьюнити разработчиков ПО под ОС «Эльбрус».
Так где можно получить исходники Эльбрус Линукс?

Есть ли жизнь после CentOS?

Время на прочтение12 мин
Охват и читатели99K

Под конец и без того нелегкого 2020 года Red Hat преподнесла всем поклонникам CentOS весьма неожиданный «подарок», объявив о радикальном сокращении EOL восьмой версии дистрибутива и последующем отказе от дальнейшего развития проекта. Пользователи операционной системы, на протяжении многих лет занимавшей третье место по популярности в мире, оказались на распутье. Что выбрать в такой ситуации? Стать «вечным бета-тестером», перейдя на CentOS Stream? Выделить бюджет на покупку лицензии Red Hat Enterprise Linux? Или быть может попробовать одно из конкурирующих решений?
Читать дальше →

Приёмы неблокирующего программирования: введение в compare-and-swap

Время на прочтение11 мин
Охват и читатели12K

В первой части этого цикла статей мы рассмотрели теорию, стоящую за одновременным доступом в моделях памяти, а также применение этой теории к простым чтениям и записям в память. Правда, этих примитивов оказывается недостаточны для построения высокоуровневых механизмов синхронизации вроде спинлоков, мьютексов и условных переменных. Хоть и полные барьеры памяти позволяют синхронизировать потоки с помощью приёмов, рассмотренных в предыдущей части (алгоритм Деккера), современные процессоры позволяют получить нужный эффект проще, быстрее и гибче — да, всё сразу! — с помощью операций compare-and-swap.


Для программистов ядра Linux операция обмена compare-and-swap выглядит так:


    T cmpxchg(T *ptr, T old, T new);

где T может быть либо числовым типом не больше указателя, либо указателем на что-нибудь. Так как в C нет обобщённых функций, то подобный полиморфизм реализуется макросами. cmpxchg() — это очень аккуратно реализованный макрос, который ведёт себя как функция (например, вычисляет аргументы только один раз). В Linux также есть макрос cmpxchg64(), который работает с 64-битными целыми числами и недоступен на 32-битных платформах.


cmpxchg() читает значение по указателю *ptr и, если оно равно old, то заменяет его на new. Иначе же после чтения ничего не происходит. Считанное значение возвращается как результат операции, независимо от того, произошла ли запись. И всё это выполняется атомарно: если другой поток одновременно с cmpxchg() записывает что-то по адресу *ptr, то cmpxchg() ничего не меняет. Либо old становится new, либо текущее значение остаётся нетронутым. Поэтому cmpxchg() называют атомарной операцией read-modify-write.

Читать дальше →

Релиз ядра Linux 5.12

Время на прочтение3 мин
Охват и читатели5.5K


Вчера, 25 апреля 2021 года, после двух месяцев разработки, Линус Торвальдс представил ядро Linux 5.12. Как пишет сам Торвальдс, эта версия — спокойная и без каких-то глобальных изменений. Более радикальный патч ожидается в версии 5.13, в которой разработчики будут «наверстывать упущенное». Само обновление вышло с недельной задержкой от графика.

Размер патча ядра — 38 Мб, а основные изменения в кодовой базе коснулись драйверов — на них приходится более 40% (43%) внесенных правок и обновлений. Примерно 17% изменений относятся к обновлению кода аппаратных архитектур, 12% — сетевой стек, 5% — файловые системы и 4% — внутренние подсистемы ядра.
Читать дальше →

Кроа-Хартман отверг извинения Миннесотского университета

Время на прочтение1 мин
Охват и читатели9.1K


Сопровождающий разработчик стабильной ветки ядра Linux Грег Кроа-Хартман (Greg Kroah-Hartman) отверг извинения исследователей Миннесотского университета.
Читать дальше →

Почему /usr/bin/test на 4Кб меньше, чем /usr/bin/[?

Время на прочтение3 мин
Охват и читатели18K


Пользователь с Reddit под ником mathisweirdaf поделился интересными наблюдениями:

 $ ls -lh /usr/bin/{test,[}
-rwxr-xr-x 1 root root 59K  Sep  5  2019 '/usr/bin/['
-rwxr-xr-x 1 root root 55K  Sep  5  2019  /usr/bin/test

[ и test должны быть псевдонимами друг друга, и все же между исполняющими их файлами из GNU coreutils наблюдается разница в 4Кб. Почему?
Читать дальше →

Разработчики Миннесотского университета опубликовали открытое письмо с извинениями сообществу Linux

Время на прочтение2 мин
Охват и читатели15K


24 апреля 2021 года группа исследователей-разработчиков из Миннесотского университета в составе Канцзе Лу (Kangjie Lu), Цюши У (Qiushi Wu) и Адитья Пакки (Aditya Pakki) опубликовала открытое письмо с извинениями в адрес сообщества Linux по поводу своей некорректной научной деятельности, приведшей к блокировке коммитов от вуза. Ученые сожалеют, что действовали скрытно, без разрешения и информирования сообщества.
Читать дальше →

Генерация изображений с помощью echo/printf в 5 строчках кода без библиотек и заголовков

Время на прочтение2 мин
Охват и читатели9.8K
tl;dr: форматы файлов Netpbm позволяют легко выводить пиксели, используя только текстовый ввод-вывод.



Вот весь генерирующий это изображение скрипт bash без зависимостей:

#!/bin/bash
exec > my_image.ppm    # Все инструкции echo будут писать в этот файл
echo "P3 250 250 255"  # формат, ширина, высота, максимальное значение цвета
for ((y=0; y<250; y++)) {
  for ((x=0; x<250; x++)) {
    echo "$((x^y)) $((x^y)) $((x|y))" # r, g, b
  }
}
Читать дальше →

Заметки о Unix: небольшая странность семейства вызовов exec*()

Время на прочтение2 мин
Охват и читатели6.1K
Я недавно писал об опции -exec команды find и ненароком упомянул о «семействе системных вызовов exec()». Это — странное выражение, обычно о Unix-вызовах так не говорят, так как они, как правило, не объединяются в некие «семейства». Но в данном случае речь идёт о целом наборе схожих механизмов. Перечислим их:

execv() execve() execvp() execvpe()
execl() execlp() execle()

(Этот список выглядит именно так в Linux и в OpenBSD; подобный список, составленный для FreeBSD, включал бы в себя execvP(), а не execvpe(). В POSIX-версии подобного списка нет вызова execvpe(), но есть вызов fexecve(), который я не вполне готов включить в семейство вызовов exec().)


Читать дальше →

Линус Торвальдс прокомментировал бан Миннесотского университета сообществом разработчиков Linux

Время на прочтение1 мин
Охват и читатели21K


23 апреля 2021 года Линус Торвальдс прокомментировал блокировку коммитов Миннесотского университета сообществом разработчиков ядра Linux. Cоздатель Linux пояснил, что действия исследователей Миннесотского университета привели к нарушению доверия, а их блокировка оправданна.
Читать дальше →

Опенсорс прилетел на Марс

Время на прочтение2 мин
Охват и читатели3.3K

Бэдж Mars 2020 Helicopter Mission на GitHub

На этой неделе весь мир следил, как первый марсианский вертолёт Ingenuity впервые взлетел в разреженной марсианской атмосфере (плотность 1% от земной). Это невероятное достижение НАСА и Лаборатории реактивного движения (JPL). Но не стоит забывать, что это также достижение и невидимой команды примерно 12 000 разработчиков со всего мира, которые контрибутили код на GitHub для программного обеспечения Ingenuity.

GitHub принял решение наградить всех этих контрибуторов специальными ачивками Mars 2020 Helicopter Mission с изображением вертолёта.
Читать дальше →

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

Microsoft добавила поддержку приложений Linux с GUI в Windows 10 для разработчиков

Время на прочтение2 мин
Охват и читатели7.7K

Тестировщики, работающие с ОС Windows, теперь смогут опробовать инструменты и приложения Linux


Компания Microsoft начинает открывать доступ к приложениям Linux с графическим пользовательским интерфейсом для тестировщиков, работающих в ОС Windows 10. Первыми возможность ознакомиться с поддержкой приложений с GUI получили участники программы Windows Insider: теперь разработчики смогут запускать редакторы, инструменты и приложения GUI для сборки и тестирования приложений Linux. Это существенное расширение подсистемы Windows Subsystem for Linux (WSL), с тех пор как компания в прошлом году добавила в ОС Windows 10 полное ядро Linux.
Читать дальше →

Linux забанил коммиты Миннесотского университета за эксперименты с намеренными некачественными патчами

Время на прочтение2 мин
Охват и читатели21K


21 апреля 2021 года сопровождающий разработчик стабильной ветки ядра Linux Грег Кроа-Хартман (Greg Kroah-Hartman) объявил о введении глобальной блокировки на все коммиты от Миннесотского университета. Это было сделано из-за неэтичных экспериментов вуза с попытками намеренного введения в ядро Linux некачественных патчей — в них были ошибки и даже скрытые уязвимости. Часть патчей ранее даже попали в стабильные ветки Linux. Сейчас все коммиты от Миннесотского университета отозваны и перепроверяются мейнтейнерами проекта.
Читать дальше →

Контрибьютора в ядро Linux обязали использовать рабочую почту: он «100 % времени работник IBM»

Время на прочтение1 мин
Охват и читатели27K


Разработчик драйвера виртуальной сетевой подсистемы ядра Linux рассказал, что ему запретили использовать для работы с VNIC свою учетную запись на Gmail, так как он «100 % времени является работником IBM» и ему не разрешается использовать личную учетную запись электронной почты в качестве «хобби».
Читать дальше →

Разбираемся с развёртыванием CodeReady Containers на Linux

Время на прочтение13 мин
Охват и читатели5.8K
Подумываете ли вы о том, чтобы использовать Red Hat CodeReady Containers (CRC) для решения задач локальной OpenShift-разработки? Собираетесь ли устанавливать CRC на Linux? В этом материале я хочу рассказать именно об этом. Мы обсудим некоторые особенности работы CRC и поговорим о настройке контейнеров.



Тут используется система CRC версии 1.21.0, в основе которой лежит OpenShift Container Platform (OCP) версии 4.6.9. Я устанавливаю CRC на Debian 10 GNU/Linux, но нам подойдёт любой современный дистрибутив Linux — вроде Fedora или Ubuntu. CRC 1.21.0 можно установить на Linux-хосте, который удовлетворяет следующим требованиям:

  • На нём установлены KVM и libvirt.
  • Его сетевые настройки выполняются с использованием NetworkManager.
  • Пользователь, устанавливающий CRC, имеет sudo-доступ к этому хосту.

Перед установкой CRC нужно будет загрузить tarball-дистрибутив CRC и так называемый «pull secret». «Pull secret» — это JSON-файл, который содержит аутентификационную информацию, необходимую для доступа к защищённым реестрам образов, поддерживаемым Red Hat. Если вы не являетесь клиентом Red Hat — вы можете присоединиться к Red Hat Developer Program, к программе Red Hat для разработчиков, и бесплатно загрузить этот файл. Участие в этой программе позволяет, кроме того, загрузить tarball-дистрибутив CRC. А отсюда дистрибутив можно скачать без лишних формальностей.

CRC отличается замечательной документацией, которая дополняется по мере выхода новых релизов системы.
Читать дальше →

Разработчик натренировал модели OpenAI на интерпретацию человеческого языка в команды терминала

Время на прочтение1 мин
Охват и читатели2.7K

Разработчик представил базовую оболочку на Python, которая позволяет языковой модели OpenAI интерпретировать команды оболочки Linux bash и запускать задачи. Однако проверять запуск команд перед запуском нужно вручную.

Читать далее

В ядро Linux добавили начальную поддержку процессоров Apple M1

Время на прочтение4 мин
Охват и читатели10K


В ветку for-next (для 5.13) включили патч arm/apple-m1 (79 коммитов), в котором реализована начальная поддержка ARM-процессоров Apple M1.

Мобильные процессоры M1 настолько превосходят конкурентов по производительности и энергоэффективности, что представляются лучшим вариантом для разработчика. В ноябре 2020 года Линус Торвальдс сказал: «Я бы очень хотел такой компьютер. Я уже давно жду ARM-ноутбук, который может работать под управлением Linux. Новый Air почти идеален, за исключением операционной системы. И у меня нет ни времени возиться с этим, ни желания бороться с компаниями, которые не хотят помогать». Даже с ограничением на количество оперативной памяти 16 ГБ он готов мириться, но только не с проприетарной системой. Поэтому нужна нативная поддержка Linux.

Как портировать SDK Flutter на ТВ-приставку для разработки и запуска приложений Android TV

Время на прочтение8 мин
Охват и читатели8K

Недавно мы успешно портировали фреймворк Flutter на ТВ-приставку c открытой программной платформой RDK. В этой статье расскажем о трудностях, с которыми пришлось столкнуться, и предложим решения для успешного запуска и повышения производительности. 

Учитывая, что программный стек RDK или Reference Design Kit сейчас активно используется для разработки OTT-приложений, голосового управления и других продвинутых функций для «видео по запросу» (VoD), мы хотели разобраться, сможет ли Flutter работать на ТВ-приставке. Оказалось, что да, но, как это обычно бывает, есть нюансы.

Далее мы по шагам распишем процесс портирования и запуска Flutter на встраиваемых Linux-платформах и разберемся, как этот SDK с открытым исходным кодом от Google чувствует себя на «железе» с ограниченными ресурсами и ARM-процессорами.

Читать далее