Все потоки
Поиск
Написать публикацию
Обновить
238.43

Linux *

Пишем под *nix

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

Как работают snap, flatpak, appimage

Время на прочтение13 мин
Количество просмотров87K

Распространение приложений в линуксе - это боль. Причем в наше время цикл обновлений приложений все уменьшается и эта боль чувствуется все сильнее. В связи с этим появляются технологии вроде snap, flatpak, которые декларируют решение этих проблем. Некоторые дистрибутивы (я смотрю на тебя, Ubuntu) даже начинают довольно агрессивную политику по их внедрению. Однако, несмотря на то, что про сами эти технологии много говорят (и ещё больше жалуются), про то, как они работают написано довольно мало. Попробуем исправить это.

Disclaimer: в этой статье я не буду давать каких-то оценок, пытаться говорить что лучше. Только как это работает. Я предполагаю, что читатель знает что такое контейнеризация и как это примерно работает.

Читать далее

Борьба с фрагментацией памяти в ядре Linux

Время на прочтение12 мин
Количество просмотров14K

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

Как незаметно запускать виртуальный Linux на QEMU

Время на прочтение10 мин
Количество просмотров19K

О том, как замаскировать QEMU с Linux под приложение на Windows.

В некоторых задачах Linux просто необходим. И самым ярким тому примером на сегодня является наличие системы WSL. Однако не везде ею можно пользоваться. Некоторые предприятия принципиально застревают на Win7. И их можно понять. Эта система не столь требовательна к железу (особенно к видео-подсистеме), не ломится чуть-что в интернет, да и в Ultimate варианте вообще не требует подключения к глобальной сети.

В большей части случаев можно обойтись родными для системы средствами разработки и сторонними инструментами. Но представьте себе, что для работы Вашего комплекса нужно собрать вместе более десятка не маленьких opensource проектов с перекрёстными зависимостями. Причём часть из них написана под python (и тут никаких проблем нет - виртуальная среда и всё ок), а часть собирается в бинарные исполняшки, от которых зависят другие модули. И тут может быть как минимум три решения.

Читать далее

Миграция электронного документооборота Directum RX на Linux и PostgreSQL

Время на прочтение7 мин
Количество просмотров6.7K

Итак, произошло то, что произошло, сегодня невозможно сделать сет Directum RX на MS SQL. Microsoft перестал отгружать лицензии в России. Для многих это стало неожиданностью, а для нас — нет. Задолго до введения санкционных ограничений мы позаботились о переходе на PostgreSQL и Linux. Причины были банальны — хотелось сократить расходы на лицензии.

Также хотелось научиться переводить системы Directum на PostgreSQL, предполагая, что слонёнок будет востребован у наших заказчиков по той же финансовой причине. Для нас отказ от баз Microsoft был плановым. Кроме того, мы перевели инфраструктуры вместе с Directum на Linux. Сегодня оцениваем эту попытку “переехать” с сокращением затрат как отчасти удачную. 

Я, Виталий Волнянский, руководитель практики технологических решений (CTO), директор по продажам (VPS) ООО “ЕАЕ-Консалт”, под катом расскажу о том, как проходила миграция и с какими проблемами нам пришлось столкнуться.

Читать далее

Пасхалки в ПО

Время на прочтение3 мин
Количество просмотров6.6K

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

Читать далее

Rust и Linux

Время на прочтение8 мин
Количество просмотров26K

Во время прошлогодней Linux Plumbers Conference 2021 один из мейнтейнеров, Мигель Охеда, задался вопросом: нужен ли сообществу Rust в коде ядра Linux и что нужно для того, чтобы соответствующие патчи были приняты в древе проекта? Комментарии от разработчиков были в основном доброжелательными, но без фанатизма. Лидер проекта Линус Торвальдс сказал, что не против т․ н․ пилотной серии патчей на Rust, с оговоркой, что и остальные разработчики должны рассматривать их в качестве опытной партии.

Тут уместно вспомнить, что ядро Linux вероятно один из самых масштабных проектов с открытым исходным кодом и самый успешный, учитывая пройденный путь за более, чем 30 лет после опубликования версии ядра 0.01. Всё это время разработка велась и ведётся поныне на языке программирования C. Линус Торвальдс без ума от C и не раз высказывался в том духе, что от добра добра не ищут, и все остальные ЯП непригодны для разработки ядра.
Читать дальше →

Преимущества использования СЗИ в ОС Astra Linux Special Edition

Время на прочтение11 мин
Количество просмотров49K

Безопасность ОС Astra Linux Special Edition в первую очередь базируется на реализации в ней средств защиты информации (СЗИ) собственной разработки ГК «Астра», которые включаются в зависимости от выбранного режима работы: «Базовый» («Орел»), «Усиленный» («Воронеж») и «Максимальный» («Смоленск»). Пришло время рассказать об отличиях этих режимов, о возможностях СЗИ (мандатного контроля целостности, замкнутой программной среды и др.) противостоять типовым атакам на ОС семейства Linux, т. е. о том, почему их комплексное применение обеспечивает реальную защищенность от основных угроз безопасности информации.

Читать далее

SMPP в Telegram (Viber)

Время на прочтение4 мин
Количество просмотров5.3K

Много лет не писал нечего кроме заметок для себя, но тут получилось интересное решение по поднятию своего SMPP сервера и пересылке сообщений в telegram и viber почти без программирования.

Читать далее

Linux и TinyСC в браузере

Время на прочтение17 мин
Количество просмотров8K

Несмотря на то, что Clang in Browser довольно впечатляет, большинство существующих браузерных компиляторов все же находятся в экспериментальной стадии. Я же в этом проекте вместо портирования компилятора в WASM собираюсь пойти своим излюбленным путем – задействовать виртуальные машины. Этот способ не такой уж быстрый, особенно ввиду использования мной JS-эмулятора ЦПУ, но при этом все же позволяет добиться отличной производительности с помощью шустрого компилятора вроде Tiny С Compiler и кастомизированного Linux.
Читать дальше →

Микросервисы и неизбежная боль?

Время на прочтение20 мин
Количество просмотров32K

Сегодня трудно себе представить более переоцененный подход к созданию архитектуры программных решений, чем микросервисы. В сети доступно огромное количество статей и видеолекций, в которых авторы рассказывают о том, что такое микросервисы и зачем они нужны. С чем, в общем, справляются довольно успешно, раскрывая их преимущества и недостатки. Так что эта статья рискует стать очередным пересказыванием очевидных вещей. Поэтому я сосредоточусь на том, чтобы сформулировать и донести до вас то, как я понимаю эту тему, основываясь на опыте тех проектов, в которых имел честь принимать участие. И том совокупном коллективном опыте, что медленно, но верно накапливается в IT индустрии.

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

Читать далее

STM32MP1 запуск Ubuntu 22.04

Время на прочтение40 мин
Количество просмотров17K

Привет, Хабр!

Совсем недавно, компания Canonical, выпустила Ubuntu 22.04, "потыкав" ее на виртуалке, решил накатить апдейт на рабочий ноут, пока накатывались обновления, перебирал девкиты в полке, нашел запыленную STM32MP157c-DK2 отладучную платку от старого проекта, ну и подумал - почему бы и не попробовать запустить 22-ю убунту на этом CPU.

В интернете полно статей как собрать Yocto или Buildroot под данный процессор, но ни одной как собрать свой собственный дистрибутив, по крайней мере, я не встречал.

Читать далее

Язык-головоломка Marthue

Время на прочтение8 мин
Количество просмотров2.3K

Предлагаю читателям Хабра "эзотерический" язык программирования, обобщающий нормальные алгоритмы Маркова (НАМ) и полусистемы Акселя Туэ (semi-Thue systems). В языке есть возможность интерактивного ввода и вывода, выбора поиска замены подстрок с начала, конца строки или случайным образом, условного рекурсивного вызова одного блока подстановок из другого, а также условного перехода между блоками. Это позволяет совмещать подстановку строк с элементами императивного и даже функционального программирования, а также исследовать недетерминированные алгоритмы.

Интерпретатор написан под Линуксом на языке Common Lisp, который я считаю одним из самых мощных и удобных, в том числе для экспериментальногого программирования. При желании большого труда не составит переписать его на любом популярном языке: например, сделать онлайновую версию в Javascript. Просто для запуска программ Лисп знать практически не нужно: достаточно инсталлировать любую версию Common Lisp и ввести нужный файл парой простых функций. Скачать репозиторий интерпретатора Marthue можно здесь.

Читать далее

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

Как работать с Makefile-проектами в среде CLion

Время на прочтение12 мин
Количество просмотров6.3K

За последние несколько лет мне пришлось столкнуться с множеством вопросов, которые были сформулированы примерно так: "мой проект не открывается в среде CLion". В свою очередь, это приводило к необходимости из раза в раз объяснять разным людям примерно одно и то же. Статья имеет целью сохранить тот опыт, который был накоплен в процессе анализа десятков разных проектов. Предполагается, что официальная документация вам уже известна и не вызывает вопросов.

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

OpenVPN. Инструкция по применению

Время на прочтение9 мин
Количество просмотров85K

Виртуальные частные сети (VPN) давно вошли в повседневную жизнь. Множество технологий и реализаций сервиса приватных сетей (как для частного применения, так и для использования внутри периметра организаций), обеспечивающих определённый уровень безопасности, доступны для использования широкому кругу ИТ-специалистов.

Не смотря на обилие технологий, предлагаю остановиться на старом добром OpenVPN (в связке с EASY-RSA). Решение от Джеймса Йонана отличается гибкостью, функциональностью, надёжностью и непрерывностью разработки на протяжении приличного временного периода. Так сказать, мастодонт от мира VPN-решений.

Спойлер — ссылка на довольно функциональное решение (ничего особенного, чистый бэкэнд), написанное на bash некоторое время назад, ждёт вас в конце публикации (в виде github-репозитория под именем «openvpn_helper»), а здесь же уделю внимание общей структуре и некоторым аспектам использования набора скриптов и OpenVPN.

***

Список необходимых компонентов (используемая ОС — AlmaLinux 8):

1) OpenVPN 2.4.12;
2) EASY-RSA 3.0.8.

Читать далее

Мгновенные снепшоты postgres на tablespace и btrfs

Время на прочтение4 мин
Количество просмотров8.5K

Для работы бывает полезно иметь несколько копий одной реальной базы для экспериментов, фикстур или просто тестовых приложений. База растет и время копирования через разворачивание дампа или с помощью шаблона также возрастает до утомительных величин. Для решения этого кейса уже описаны варианты использования файловой системы с поддержкой CoW - Btrfs. В интернете находил  такие инструкции, они сводятся к тому, что делается снепшот всего сервера. И для работы второго "скопированного" нужно перегенерировать pid и сменить порт для предотвращения конфликтов. Этот способ довольно универсальный относительно конфигурации баз на сервере, но кажется имеет ограничение для неопределенного кол-ва параллельных снепшотов серверов.

В этой статье предлагаю свой вариант реализации снепшотов на одном экземпляре сервера postgres и одной базы, на произвольное кол-во копий.

Инструкция linux only, про поддержку CoW файловых систем на Windows не в курсе.

Читать далее

Как Linux заменит Windows в РФ

Время на прочтение5 мин
Количество просмотров78K

Нынешние реалии

С введением санкций возникли серьёзные трудности в развитии промышленности страны. Трудности возникшие в IT затрагивают самый широкий спектр технологий. Возьмём, казалось бы, самую простую сферу деятельности, ввод и обработку данных. В каждой больнице, в регистратуре, стоит ПК на котором запущена программа для первичного учёта пациентов. Операционист вводит необходимую информацию и даёт талон для посещения врача. На этом компьютере установлена ОС семейства Windows которую сейчас мы не можем сейчас купить. Другой случай. Программируемый логический контроллер который управляет, к примеру, котельной и запрограммированный в среде CodeSys работающей тоже под Windows. И таких примеров очень много.

Читать далее

Звук в DIY проектах

Время на прочтение4 мин
Количество просмотров4.9K

Если ваше хобби/DIY, как и моё, связано с компьютером, то на каком то этапе вам захочется использовать звук. Предлагаю поговорить о звуке и обменяться опытом. Конкретно говорить будем, про запись и воспроизведение звука на компьютере. Возьмем компьютер под управлением Linux, но и под Windows должно работать. Язык для программирования предпочитаю Python.

Читать далее если интересно

Пишем аудио-разведчик своими руками

Время на прочтение12 мин
Количество просмотров9.4K

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

Что мы в итоге хотим получить и какой алгоритм работы реализовать:

1. Сервер, который запускается на той машине, пространство вокруг которой мы хотим прослушивать. Он тихо ждёт, пока к нему не подключится клиент. Затем он открывает устройство записи звука, настроенное по умолчанию в системе, и начинает передавать аудио поток на машину клиента. При отключении клиента от сервера, звуковое устройство закрывается, чтобы не тратить ресурсы зря.

2. Клиент, который подключается к серверу и начинает принимать аудио поток и воспроизводить его в режиме реального времени. Для того, чтобы клиент мог правильно (в нужном формате) открыть устройство воспроизведения звука, он получает нужную мета информацию от сервера в Hello сообщении.

Читать далее

Алиасы в bash для быстрого набора команд Git

Время на прочтение6 мин
Количество просмотров23K

Командный интерпретатор bash позволяет задавать произвольные алиасы для разных команд и выражений. Алиасы не являются командами сами по себе, но им, как и командам, можно передавать аргументы. Алиасы позволяют сделать вызов громоздких команд очень простым, с легко запоминающимися названиями.

Использовать Git я привык исключительно из консоли, но на ввод длинных команд с разными аргументами тратится значительное количество времени. Поэтому я ввёл практику использования алиасов. Для безопасных команд я использовал короткие алиасы, которые по сути стали горячими клавишами, а для функциональных — простые короткие слова из состава команд Git. Если команда опасная, то можно сделать её в два слова, написанных через дефис, для исключения случайного ввода. На самом деле, использование алиасов для работы с Git широко практикуется, я решил лишь преподнести отдельный вариант подборки алиасов, которые для меня оказались очень удобными.

Читать далее

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