Обновить
256K+

Linux *

Пишем под *nix

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

Клиент-серверный IPC на Python multiprocessing

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

Статья отражает личный опыт разработки CLI приложения для Linux.

В ней рассмотрен способ выполнения привилегированных системных вызовов процессом суперпользователя по запросам управляющей программы через строго описанный API.

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

Читать далее

Проект портирования Linux на Mac с M1 обзавёлся названием и сайтом

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


5 января 2021 года разработчик Гектор Мартин сообщил о том, что у краудфандингового проекта Linux для Maс на M1 появился свой сайт и название — Asahi Linux. Продолжается развиваться сообщество разработчиков проекта.
Читать дальше →

Интригующие возможности С++ 20 для разработчиков встраиваемых систем

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

Изображение: Michel Dreher | Dreamstime.com

Вильям Вонг в статье «C++20 Serves Up Intriguing Embedded Features» рассказывает о новых функциональных возможностях С++20, которые будут интересны разработчикам встраиваемых систем.

Читать перевод

WSN-LTE шлюз на CC1310 и WP8548. Часть 1

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

Приветствую, Habr! В данной статье рассмотрен процесс разработки Wireless Sensor Network (WSN) шлюза для передачи данных от беспроводных датчиков на сервер через мобильную связь. В качестве начинки будем использовать Sub-1GHz SoC CC1310 и программируемый модуль WP8548 от Sierra Wireless. AirPrime WP8548 - это промышленный модуль LGA-239. Его беспроводной модем обеспечивает передачу данных в сетях HSPA, WCDMA, EDGE и GPRS, а также прием GPS сигнала.

Читать далее

Карантин для динамической памяти ядра Linux

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

2020 год. Повсюду карантин. И эта статья тоже про карантин, но он другого рода.


Я расскажу об экспериментах с карантином для динамической памяти ядра Linux. Это механизм безопасности, противодействующий использованию памяти после освобождения (use-after-free или UAF) в ядре Linux. Я также подведу итоги обсуждения моей патч-серии в списке рассылки ядра (Linux Kernel Mailing List, LKML).


image

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

Безопасные города без зоопарка

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

Ковид и его последствия подкосили фундамент ценностной пирамиды людей. Он ударил по самому важному — безопасности. В 21 веке бояться «простуды» несолидно, но приходится. И приходится находить эффективные решения в непрогнозируемом пространстве. Многие ли ваши планы 2020 сбылись? А смог ли хоть один риск-менеджер предсказать всемирный карантин? Не смог, но современные знания и технологии минимизировали, на наш взгляд, последствия новой эпидемиологической реальности.
Читать дальше →

Linux портируют на Nintendo 64

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

Разработчик Лори Касанен опубликовал порт Linux для консоли Nintendo 64. Как говорит автор, проект ставит целью упростить портирование игр и софта.

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

Читать далее

Исполняемые PNG: запускаем изображения как программы

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

Это изображение и одновременно программа

Несколько недель назад я читал о PICO-8, выдуманной игровой консоли, обладающей большими ограничениями. Особо мой интерес привлёк новаторский способ распространения её игр — кодирование их изображение PNG. В него включается всё — код игры, ресурсы, вообще всё. Изображение может быть любым: скриншоты из игры, крутой арт или просто текст. Чтобы загрузить игру, нужно передать изображение на вход программы PICO-8, и можно начинать играть.

Это заставило меня задуматься: наверно, будет круто, если получится сделать то же самое с программами в Linux? Нет! Я понимаю, вы скажете, что это тупая идея, но я всё равно ею занялся, и ниже представлено описание одного из тупейших проектов, над которыми я работал в этом году.
Читать дальше →

Как готовить Cake, используя только Frosting

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

Итак, Cake. Многие слышали, многие хотели попробовать, но откладывали. Конечно, если ты все время работал на TeamCity или на Jenkins и продолжаешь, то зачем переизобретать то, что уже отлично работает? Люби свою жизнь и радуйся. Но вот, допустим, в твоей любимой жизни появился новый проект, новый дедлайн, минимум сторипойнтов до релиза, а опыта с новым сборщиком нет? Мне в этом случае и пригодился Cake.

Я сразу оговорюсь, что эта статья не подтолкнет сразу на использование Cake, как меня, и многих моих коллег не подтолкнули статьи, которые выходили ранее. По большей части потому что на него нет смысла переходить в проекте, который не приносит боль и который работает стабильно. Собираете в своем любимом Jenkins и все идет нормально. Но пусть после этой статьи в голове отложится, что Cake существует. Он в очередной раз никуда не делся, он умеет уже многое и работать с ним все проще. Гораздо проще, чем было раньше.

На что похож Cake? Наверное, любой разработчик, не погрязший в мире .Net, найдет свою аналогию: gradle, gulp, golang make. Make-системы не откровение в 2020 году. Это всегда было удобно, а значит — нужно и правильно. Мир .Net долгое время был обделен такими средствами. Фактически был и есть до сих пор MSBuild, но у него есть очень-очень много недостатков. Основной - кто вообще умеет им пользоваться из рядовых разработчиков? И какова целесообразность его освоения? Какие-то базовые и нужные всем вещи явно проще делать на билд-сервере. Наверное, кому-то он и удобен, но я уверен, что значимая часть коммьюнити предпочтет MSBuild'у освоить новый билд-сервер. Один раз написать конфиг и забыть как страшный сон.

А что если бы существовала make-система с DSL на C#, автокомплитом и прочими фишками типизированного языка? Да, я про Cake. В частности сейчас пойдет разговор про библиотеку Cake.Frosting, являющуюся одним из раннеров make-системы.

Подробней про доступные раннеры можно прочитать тут: Cake Runners

С Frosting все привычно — самодокументирующийся Api с которым почти сразу находишь общий язык. Методы расширения, загружаемые из Nuget — на любой случай жизни, структура проекта, похожая на смесь тестов или бенчмарков и хоста Asp. Все решения угадываются сразу, все как дома.

Читать далее

Sony представила Linux-драйвер для DualSense

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

Sony выпустила драйвер hid-playstation, который позволяет использовать новый контроллер DualSense на Linux-системах. Пока в нем доступны только некоторые возможности.
Читать дальше →

Особенности портирования сложного модульного ПО написанного на Delphi под ОС Linux

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

Данное повествование не предназначено для разработчиков, которые не знают что такое Delphi и не умеют на нём программировать. Просьба людей, не имеющих дела с данными средствами разработки, не комментировать статью и не травмировать и без того расшатанные нервы дедушек, упорно продолжающих поддерживать многолетние разработки, написанные с применением данных средств разработки. Предложения переписать всё с нуля на что-то более модное не приветствуются.

Меня зовут Тимофеев Константин, мне 40 лет и я являюсь ведущим программистом компании 3В Сервис в подразделении, занимающемся системами автоматизации динамических расчётов (САДР).

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

Читать далее

Начало работы с Windows Terminal

Время на прочтение5 мин
Охват и читатели47K
Привет, Хабр! Сегодня делимся гайдом по началу работы с Windows Terminal. Да, поскольку он о начале работы с инструментом, в основном в материале описываются какие-то базовые моменты. Но я думаю, что и профессионалы смогут подчерпнуть для себя что-то полезное, как минимум из списка полезных ссылок в конце статьи. Заглядывайте под кат!

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

Отладка Makefile /часть 2/

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

Методы отладки


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

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

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

Сборка и установка Linux пакетов в российских сертифицированных ОС

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

Введение


Ранее в статье мы описали сборку расширений для LibreOffice. Теперь мы расскажем, как наработки были перенесены на платформу Linux, а также как решались вопросы с подготовкой пакетов для российских сертифицированных операционных систем, таких как AstraLinux, ALTLinux и RedOS.

image

Постановка задачи и первичная реализация


После успешной реализации нашего продукта DSS для платформы Windows потребовалось перенести наработки (в том числе и расширение для LibreOffice на C++, о сборке и установке sdk которого было рассказано ранее) на платформы семейства Linux.

Состав пакета


Соответственно, необходимо определить, что мы переносим:

  • служба для связи с сервером;
  • драйвер для перехвата и обработки обращений к файлам;
  • служба для общения и обработки информации от драйвера;
  • диалоговое приложение;
  • служба шифрования;
  • расширение для LO.

Последний пункт легче всего интегрировать, так как сборка под Linux для него описана в нашей статье .
Что касается служб для связи сервером и для обработки обращений к файловой системе, то они написаны на .net core, а данный фреймворк с версии 3.0 также легко переносим на Linux.
Windows драйвер мы заменили на Linux Kernel Module (LKM), подробности по его созданию будут описаны в одной из дальнейших статей.
Читать дальше →

Опубликован релиз Sequoia 1.0, реализации OpenPGP на языке Rust

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

Спустя три года после начала разработки опубликован релиз Sequoia 1.0. Это реализация OpenPGP на языке Rust, содержащая обширную библиотеку функций и инструментарий командной строки. Релиз опубликован после того, как разработчики закончили работу над низкоуровневым API — в нем как раз и реализован в полной мере стандарт OpenPGP.

Написано все это на Rust, а распространяется пакет под лицензией GPLv2+. Есть версии для всех основных платформ — Linux, FreeBSD, Windows, macOS, Android и iOS. Команда разработчиков небольшая, ее основа — три участника разработки GnuPG из компании g10code. Эта же команда создала и сервис ключей Hagrid, который применяется в сервисе keys.openpgp.org. О том, что представляет из себя пакет — под катом.
Читать дальше →

GTK 4.0 вышёл в релиз

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


GNOME Project выпустила четвёртую версию кроссплатформенной библиотеки элементов интерфейсов GTK. В библиотеку добавили метод раскладки элементов на основе ограничений, модуль отрисовки с API Vulkan, интегрировали GSK и удалили часть API.
Читать дальше →

Эволюция системы обновления Android

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

В этой статье мы рассмотрим все возможные варианты обновления прошивки на устройствах под управлением Fuchsia Android. Особое внимание уделим самому популярному способу — обновлению по воздуху или OTA (over-the-air) — и расскажем об этапах его развития.

Итак, как можно обновить Android на мобильных устройствах? Занимаясь разработкой ТВ-приставок под управлением этой ОС, мы определили для себя 4 способа, отбросив совсем уж экзотические варианты...

Читать далее

Заменяем события C# на Reactive Extensions с помощью кодогенерации

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

Недавно прошла приуроченная к выходу .NET 5 конференция .NETConf 2020. На которой один из докладчиков рассказывал про C# Source Generators. Поискав на youtube нашел еще неплохое видео по этой теме. Советую их посмотреть. В них показывается как во время написания кода разработчиком, генерируется код, а InteliSense тут же подхватывает сгенерированный код, предлагает сгенерированные методы и свойства, а компилятор не ругается на их отсутствие. На мой взгляд, это хорошая возможность для расширения возможностей языка и я попробую это продемонстрировать.

Читать далее

Состоялся релиз ядра Linux 5.10

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


13 декабря 2020 года Линус Торвальдс представил первый стабильный релиз ядра Linux 5.10. Выпуск новой версии ядра Linux вышел в соответствии с графиком, спустя два месяца после выхода предыдущей стабильной версии. Исходный код ядра Linux 5.10 уже доступен для загрузки на портале kernel.org.

Новое ядро Linux 5.10 получило долгосрочную поддержку (LTS, long-term support). Разработчики будут не менее двух лет (вероятно, что это будет делаться даже до 6 лет) выпускать обновления для ядра Linux 5.10. Предыдущая версия ядра Linux с LTS — 5.4, которая будет поддерживаться до декабря 2025 года.
Читать дальше →

Оптимизация размера Go-бинарника

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

image Если вы когда-нибудь писали на Go, то размер получающихся бинарников не мог пройти мимо вашего внимания. Конечно, в век гигабитных линков и терабайтных дисков это не должно быть большой проблемой. Но все-таки встречаются ситуации, когда хочется, чтобы размер бинарника был как можно меньше, и при этом вы не хотите расставаться с Go. О вариантах, как сделать так, чтобы Go-бинарник “похудел”, пойдет речь ниже.

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