Как стать автором
Поиск
Написать публикацию
Обновить
362.46

Linux *

Пишем под *nix

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

Что не так с Enterprise Linux

Время на прочтение5 мин
Количество просмотров12K
Enterprise Linux работает примерно по такой модели:

Принимается решение сделать мгновенный снимок неких восходящих свободных проектов по состоянию на определённую версию (это касается, в том числе, ядра Linux) и заложить этот снапшот в качестве основы для новой целостной версии, дистрибутива Enterprise Linux. Коллекция программ останется замкнута на уровне этих конкретных версий на протяжении всей службы этого релиза Enterprise Linux – а этот срок часто составляет 10 лет или даже больше.

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

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

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров22K
image

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →

Замешиваем файлы в тэги. Часть 1

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.2K

Давным, давно ... искал средство организации видео-файлов.

Чтобы можно было каждой киношке назначить какие-то маркеры, тэги. Выбирать файлы по наличию тэгов. Или наоборот - по отсутствию тэгов. Например: детектив, фантастика, не-ужасы.

Чтобы всё работало в обычном проигрывателе: кликнул "Открыть файл..."; выбрал Детектив, Фантастика, не-Ужасы; получил список фильмов и выбрал нужный. Без специальных файловых менеджеров и браузеров.

И тогда такое средство мне не нашлось. А сейчас ... сейчас решил сделать его сам.

Что в результате получилось можно увидеть по ссылкам: демо-видео, код.

Часть 1: Описание задачи, Модуль ядра

Часть 2: Модуль ядра, Регистрация файловой системы

Часть 3: Inode, Lookup

Часть 4: Inode-операции: symlink, unlink

Как это делалось

Свободное ПО теснит проприетарное

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

Преимущества свободного ПО (СПО) — защищенность и безопасность ИТ-инфраструктуры, высокое качество программного кода, широкий выбор аппаратных платформ, возможность быстрой адаптации к текущим потребностям бизнеса, открытые форматы.

Переход на СПО — мировой тренд. За рубежом этот процесс идет не один год и приобретает массовый характер. По результатам опроса 70 тысяч разработчиков на Stack Overflow, в 2022 году Linux как основную ОС использовали порядка 40% специалистов. Для сравнения, в 2018 году эта цифра составляла чуть более 23%.

В числе известных свободных программ стоит назвать широко распространенный веб-сервер Apache, ОС GNU/Linux, офисный пакет LibreOffice.org, браузер Mozilla Firefox, операционную систему FreeBSD. На СПО работают Google и Yandex.

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

Безопасный переход на СПО

Иногда у заказчиков возникают опасения, что миграция на СПО будет долгой и сложной, поскольку у продукта нет единого хозяина, в его разработке принимают участие разные команды. Здесь важно отметить, что безопасный и беспроблемный переход на СПО возможен только при наличии вендора, отвечающего за совместимость и качественную работу разнообразных решений в составе единой системы. Пример такого вендора — компания «Базальт СПО», разработчик ОС семейства «Альт».

Читать далее

Дизайнер не нужен. Правила создания красивых UI

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров20K


Чем проще система — тем она эффективнее. Здесь не нужен художественный вкус или особая одарённость. Красота появляется сама собой, если система спроектирована без лишних деталей. Хороший пример таких интерфейсов дают рабочие инструменты. Молоток, ножовка, электропила. Всё это создано не для красоты, а чтобы идеально ложиться в руку и эффективно выполнять свою функцию. О красоте думают в последнюю очередь, но в итоге дизайн профессиональных инструментов зачастую вызывает искреннее восхищение. Ничего лишнего.

Такие же правила действуют в компьютерных интерфейсах. Чем проще — тем лучше. В этом смысле интересно посмотреть на новое поколение Linux-приложений в современном стиле с адаптацией под смартфоны (на КДПВ некоторые примеры), а также на свежие UI-фреймворки, которые продвигают современный стиль разработки.
Читать дальше →

Итак, вы установили fzf. Что дальше?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров24K

Разработчики ПО — если не единственные, то практически единственные, кому очень просто создавать инструменты для улучшения своей профессиональной работы; однако со временем это усложняет жизнь людям, постоянно переключающимся между разными инструментами и не вкладывающим время в глубокое изучение своего инструментария. Имея глубокое уважение к негласным знаниям людей лучше меня, я всё же считаю, что отличная эвристика 80/20 заключается в том, чтобы изучать старые добрые инструменты Unix cat, ls, cd, grep и cut. (а если вам повезло устроиться на должность настоящего современного сисадмина, то ещё и sed с awk.)

Однако существуют инструменты, выгода от использования которых настолько мгновенна и ценность от применения настолько уникальна, что эвристика 80/20 полностью к ним неприменима. Один из них — это fzf. И меня очень печалит то, что многие скачивают его, запускают в командной строке «как есть», а потом просто мотают головой и произносят: «Я не понимаю».

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

Как делается OpenSource: личный опыт

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров39K

Я - автор двух пакетов, входящих более-менее во все дистрибутивы Linux: sane-airscan и ipp-usb.

Кроме того, sane-airscan входит во все основные дистрибутивы BSD (FreeBSD, NetBSD и OpenBSD) и в ChromeOS. ipp-usb в ChromeOS не взяли потому, что он написан на Go, а у них там очень жестко с размером исполняемых файлов, вместо этого они написали свое на Rust, но предпочли бы взять моё изделие, если бы могли. Совсем недавно появился порт ipp-usb на FreeBSD, вероятно, другие BSD тоже скоро подтянутся.

Вместе эти два пакета образуют стек "бездрайверного" сканирования документов для Linux и *BSD, а в перспективе нескольких лет, когда старые сканеры, наконец, вымрут, вероятно других драйверов и не останется.

Кроме того, ipp-usb делает возможным "бездрайверную" печать на USB-устройствах.

Здесь я хочу рассказать, каково оно, быть автором популярных OpenSource пакетов. Хоть эта работа и не принесла мне особых денег (на что я, впрочем, особо и не рассчитывал), она принесла мне бесценный опыт.

В целом, я полагаю, продвижение OpenSource пакетов структурно близко к продвижению на рынок программных продуктов. Занимаясь этой деятельностью, очень хорошо начинаешь понимать разницу между (1) написать программу, которая работает для меня (2) написать программу, которую можно назвать продуктом (3) вывести продукт на рынок.

Первое занимает гораздо меньше времени, чем второе. Второе - гораздо меньше времени, чем третье.

Читать далее

Прошло полгода и даже больше: релиз Linux Mint 21.2 Victoria. Возможности и характеристики дистрибутива

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

В декабре прошлого года вышел Linux Mint 21.1 “Vera” Cinnamon Edition. Сейчас, несколько месяцев спустя, появился и Linux Mint 21.2. Он продолжает «традицию» ветки, которая основана на пакетной базе Ubuntu 22.04 LTS. Сейчас уже доступны сборки на базе MATE 1.26, Cinnamon 5.8 и Xfce 4.18. Еще один положительный момент в том, что Linux Mint 21 будут поддерживать вплоть до 2027 года, это «долгоиграющий» релиз. Ну а подробности о новинке — под катом.
Читать дальше →

Изучаем Kirigami от KDE: примеры разработки приложений

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

Для создания пользовательского интерфейса приложений придумано множество инструментов. Фреймворк Kirigami – как раз один из таких. Хотя он не отличается какой-то особой оригинальностью, Kirigami призван сделать создание приложений более простым и быстрым. С помощью этого инструмента можно создавать адаптивные и кроссплатформенные программы.

Читать далее

Микросервисы Rust в серверном WebAssembly

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров6.1K
image

Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Читать дальше →

Как выбрать российскую операционную систему?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров18K

По состоянию на июнь 2023 года в Единый реестр российского программного обеспечения включена 31 операционная система (ОС) общего назначения!

Как выбрать санкционно независимую защищенную российскую ОС?

Проблематика

Практически все, кто использует иностранное программное обеспечение, столкнулись с проблемами. Среди основных — трудности с обновлением, отказ зарубежных фирм обслуживать используемое ПО, блокировка некоторых функций, утечка данных с зарубежных облачных хранилищ.

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

В корпоративных программах импортозамещения рекомендуется использовать только операционные системы, включенные в Единый реестр российского ПО. Для госсектора обязательные требования закреплены в Постановлении Правительства Российской Федерации № 1236 от 16 ноября 2015 «Об установлении запрета на допуск программного обеспечения, происходящего из иностранных государств, для целей осуществления закупок для обеспечения государственных и муниципальных нужд».

Построение ИТ-инфраструктуры предприятий КИИ с госучастием и бизнеса регулирует Указ Президента Российской Федерации №166 от 30 марта 2022 г. «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации». Он предписывает согласовывать закупки иностранного ПО по 223-ФЗ для использования на значимых объектах КИИ, а также вводит полный запрет на использование таких продуктов с 2025 года.

Читать далее

Как с помощью Rust FFI превратить ori-файл в jpeg-панораму

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2K

Всем привет, на днях возникла необходимость использования камеры Xphase без официального приложения, и я столкнулся с тем, что в интернете особо-то этим никто не занимался. О том, что делать с файлами типа ori и о FFI на Rust читайте под катом.

Читать далее

Дальняя радиосвязь с LoRa на одноплатных микрокомпьютерах Repka Pi

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

Если вы занимаетесь сбором данных на обширной территории, да еще не охваченной интернетом, возникает задача передачи данных на расстояния, исчисляемые километрами без использования WiFi и сети Ethernet.

В решении этой задачи вам помогут радиомодули, передающие данные с использованием технологии связи на большие расстояния (Long Range, LoRa). Эта технология запатентована компанией Semtech и реализована в микросхемах приемо‑передатчиков (трансиверов), таких как SX1268, SX1276, SX1278.

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

К сожалению, скорость передачи данных LoRa невелика, порядка 2400–19 200 бит/c. Однако этого достаточно, например, для систем телеметрии и удаленного контроля, систем умного дома или других подобных систем.

Читать далее

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

Почему linux должен быть единственной системой в образовательном процессе

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров31K

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

Читать далее

Как Linux-умельцы превращают ROG Ally и другие портативные консоли в клоны Steam Deck

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

Недавно, 13 июня, стартовали продажи новой консоли Asus ROG Ally. По характеристикам она намного сильнее продуктов от Steam и Nintendo. Базовая версия имеет 4-нм игровой процессор AMD Ryzen Z1, 16 Гб оперативной и 256 Гб постоянной памяти (у Nintendo — 4 и 32 Гб, у Steam Deck — 16 и 64 Гб). Гаджет справляется с играми уровня Cyberpunk даже в 4K (хотя разрешение экрана тут 720p).

В общем, девайс выглядит очень круто. И даже качество сборки, судя по отзывам, является более качественным, чем у Steam Deck. Правда, есть одна проблема: пользовательский интерфейс. Windows 11 просто не предназначена для игровых консолей, тем более портативных. Нет даже функции паузы, ожидания и возобновления игры в любой момент — которая присутствует и у Steam Deck, и у Switch, и у PS4. Вот если бы можно было получить характеристики ROG Ally, но интерфейс удобного Steam OS…

Читать далее

Как сделать Telegram-бота для проверки аптайма своего сервиса на Python (ч.2 алертинг)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.8K

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

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

Читать далее

Altera Quartus Prime и ModelSim под Linux. Вводное руководство

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров11K
В очередной раз, начав изучать что-то новое для себя, я столкнулся с типичной для меня проблемой: нет нигде быстро гуглящегося how-to и step-by-step руководства по быстрому созданию какой-либо простой конструкции на Verilog и описания способа эту конструкцию быстро симулировать без необходимости запуска кода в железе для проверки конечного результата. Я надеялся очень быстро найти готовый материал о том, как под Altera Quartus 20.1 и ModelSim 2020.1 под Linux всё по-быстрому сделать и идти дальше. В итоге не найдя ничего системно и последовательно описанного в одном месте я традиционно разобрался самостоятельно и решил это исправить своей очередной статьей на Хабре. 

Возможно, этот материал поможет таким же как я новичкам на самом старте и позволит не растерять энтузиазм во время танцев по граблям. Всем, кто заинтересовался — добро пожаловать под кат. 

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

Автоматический обход блокировок

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров56K

Описание работы программы для автоматического обхода блокировок в интернете, код программы лежит на репозитории antiblock.

Читать далее

Linux 6.4: новые возможности ядра — что изменилось в релизе

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

Новая версия ядра Linux 6.4 появилась спустя всего два месяца после Linux 6.3. Несмотря на относительно небольшой временной интервал, изменений достаточно много. Всего принято 16012 исправлений от 2080 разработчиков, причем изменения затронули 14220 файлов, добавлено 1006924 строк кода, удалено 597615 строк. Размер патча составил 81 МБ.

Больше всего изменений, которые связаны с драйверами устройств. Это около 43% от общего объема. Еще около 14% изменений относятся к обновлению кода, актуального для аппаратных архитектур, 10% — сетевой стек, всего 4% — файловые системы и еще 3% — внутренние подсистемы ядра. Подробности под катом!
Читать дальше →

Заметка к примеру «procfs3.c» 7 главы книги «The Linux Kernel Module Programming Guide»

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.7K

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

Что там?

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