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

Linux *

Пишем под *nix

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

Red Hat Flatpak, DevNation Day, шпаргалка по программированию на Cи и пять вебинаров на русском

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


Полезные ссылки на живые мероприятия, видео, митапы, техтолки и книги – ниже в нашем еженедельном посте.
Читать дальше: Red Hat Flatpak, DevNation Day, шпаргалка по программированию на Cи и ...

Тестируем плату для 4K Android ТВ-приставок на чипе Realtek RTD1395

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


Мы недавно получили посылку от партнеров в Тайване — компании Realtek. Внутри была плата Hercules OTT — 32-битная, с памятью на 2 Гб и предустановленной ОС Android 9. Посмотрим, что она умеет и как ее можно использовать для разработки новых ТВ-приставок.
Читать дальше →

Удаленная отладка Go-кода с VSCode без Remote Development

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

В какой-то момент начинает требоваться отладить программу, которую нельзя отладить на рабочем компьютере. В моем случае потребовалось отладить программу, общающуюся по D-Bus с iwd, демоном, заведующим соединениями по Wi-Fi, на ноутбуке.


В VSCode есть аддон Remote Development, специально предназначенный для подобных случаев. Меня он не устраивал по нескольким причинам:


  1. Автоматическое подписание коммитов GnuPG из VSCode не заработало.
  2. Не заработал SSH-агент (вероятно, из-за отключенного проброса агента).
  3. Не заработало, казалось бы, имеющееся в RD открытие локальной директории на удаленной машине (часть нужных файлов не была включена в версионный контроль, а ручным копированием по сети каждый раз заниматься не хотелось).

Я пишу на Go, так что хак, который я буду описывать, предназначен для отладчика Delve. Сам подход меняется мало вне зависимости от языка программирования; аналогичное можно сделать с используемым в VSCode для Python ptvsd и любым другим отладчиком, позволяющим удаленные соединения.


TL;DR поста
  1. Пишем скрипт, собирающий бинарник с поддержкой отладки, копирующий ее на целевую машину по SCP и запускающий Delve.
  2. Создаем в VSCode профиль отладки, аттачащийся к целевой машине.
  3. Создаем в VSCode таск, запускающий скрипт из п.1 и добавляем его в зависимости профиля отладки.
Читать дальше →

Вышел Linux 5.8 — один из величайших. Более подробный обзор

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

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

Современные приложения на OpenShift, часть 3: OpenShift как среда разработки и конвейеры OpenShift Pipelines

Время на прочтение12 мин
Количество просмотров6.8K
Привет всем в этом блоге! С вами третий пост из серии, в которой мы показываем, как развертывать современные веб-приложения на Red Hat OpenShift.



В двух предыдущих постах мы рассказали, как развертывать современные веб-приложения всего за несколько шагов и как использовать новый образ S2I вместе с готовым образом HTTP-сервера, например, NGINX с помощь связанных сборок chained builds для организации продакшн-развертывания.

Сегодня мы покажем, как запустить на платформе OpenShift сервер разработки для своего приложения и синхронизировать его с локальной файловой системой, а также поговорим о том, что такое OpenShift Pipelines и как можно применять в качестве альтернативы связанным сборкам.
Читать дальше: Современные приложения на OpenShift, часть 3: OpenShift как среда разработки...

Пишем автодополнение для ваших CLI проектов

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

Приветствие


Всем привет! Хочу поделиться своим опытом написания кроссплатформенного проекта на C++ для интеграции автодополнения в CLI приложения, усаживайтесь поудобнее.



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

Paragon открыла свой драйвер NTFS для Linux, предложив включить его в ядро

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


Компания Paragon Software опубликовала набор патчей с полноценной реализаций файловой системы NTFS, открыв код драйвера под лицензией GPL. Драйвер поддерживает работу как в режиме чтения, так и в режиме записи.

По словам разработчиков, эта реализация поддерживает все возможности версии NTFS 3.1.Сейчас в драйвере используется урезанная реализация журнала NTFS. Но в будущем Paragon Software добавит поддержку полного журналирования поверх уже встроенного в ядро универсального блочного устройства JBD, на базе которого организовано журналирование в ext3, ext4, OCFS2.
Читать дальше →

BPF для самых маленьких, часть первая: extended BPF

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

В начале была технология и называлась она BPF. Мы посмотрели на нее в предыдущей, ветхозаветной, статье этого цикла. В 2013 году усилиями Алексея Старовойтова (Alexei Starovoitov) и Даниэля Боркмана (Daniel Borkman) была разработана и включена в ядро Linux ее усовершенствованная версия, оптимизированная под современные 64-битные машины. Эта новая технология недолгое время носила название Internal BPF, затем была переименована в Extended BPF, а теперь, по прошествии нескольких лет, все ее называют просто BPF.


Грубо говоря, BPF позволяет запускать произвольный код, предоставляемый пользователем, в пространстве ядра Linux и новая архитектура оказалась настолько удачной, что нам потребуется еще с десяток статей, чтобы описать все ее применения. (Единственное с чем не справились разработчики, как вы можете видеть на кпдв ниже, это с созданием приличного логотипа.)


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

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

Для Linux появился новый векторный редактор для создания макетов интерфейсов

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

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

Авторы Akira заявили, что их цель — создание инструмента для профессионалов, при помощи которого можно готовить качественные макеты интерфейсов. Наверное, редактор можно назвать конкурентом Sketch, Figma, Inkscape и Adobe XD, но заточен он исключительно под Linux. От Inkscape он также отличается тем, что не ориентирован на печатный дизайн.
Читать дальше →

Быстрее, выше, сильнее: Clear Linux — самый быстрый дистрибутив для x86-64?

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

На днях ресурс Phoronix опубликовал результаты тестов скорости работы разных дистрибутивов Linux на системе с Core i9 10980XE.

Тестирование проводилось со сборками Clear Linux 33540 (самая новая на момент теста), Clear Linux 31480 (конец 2019 года), Endeavour OS Rolling, openSUSE Tumbleweed 20200727, Debian Buster Testing, Ubuntu 20.04 LTS и тестовая сборка Ubuntu 20.10.

Подробности тестирования — под катом.
Читать дальше →

Сэмулируй сборку приложения ARM на x86 процессоре на примере Qt

Время на прочтение14 мин
Количество просмотров21K
Мощность современных процессоров растёт, как в стационарных компьютерах, так и в различных embedded устройствах, на борту которых процессоры на базе ARM с операционной системой linux. Сегодня в рамках данной статьи мы запустим эмулятор процессора ARM на x86 компьютере и в нём попробуем собрать Qt из исходников и тестовое приложение, т.е. так сказать сиэмулируем сборку ARM приложения.

В первой части статьи будем использовать эмулятор QEMU для aarch64, во второй части запустим эмулятор Raspberry и проверим работоспособность приложения в нём.

От себя хочу отметить, это все делается не быстро, и если Вы попробуете все это выполнить, то полный цикл займет у вас несколько дней!)


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

Современные приложения на OpenShift, часть 2: связанные сборки chained builds

Время на прочтение8 мин
Количество просмотров2.4K
Всем привет! С вами второй пост из нашей серии, в которой мы показываем, как развертывать на Red Hat OpenShift современные веб-приложения.



В предыдущем посте мы слегка затронули возможности нового builder-образа S2I (source-to-image), который предназначен для сборки и развертывания современных веб-приложений на платформе OpenShift. Тогда нас интересовала тема быстрого развертывание приложения, а сегодня мы рассмотрим, как использовать S2I-образ в качестве «чистого» builder-образа и совмещать его со связанными сборками OpenShift.
Читать дальше: Современные приложения на OpenShift, часть 2: связанные сборки chained builds

Свободная веб-энциклопедия для любых IT-проектов на собственном движке

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

Введение


Когда я пытался продвигать свой последний проект (веб-чат), я столкнулся с тем, что о нем фактически негде написать. Ситуация касается не только wiki-проектов, а вообще всего рунета. Крупные сайты ведут такую политику, что Вы не можете написать о своем проекте — Вы должны либо купить рекламу, либо о Вас должен написать кто-то еще. Если рассматривать конкретно wiki-сайты, то даже на Лурк или Викиреальность попасть проблематично, не говоря уже о таком гиганте как Википедия. Хотя потом я нашел пару небольших wiki-порталов без цензуры, для которых написал два уникальных обзора на свой чат. Они меня и вдохновили на создание свободного wiki-ресурса для IT-разработок.

Зачем писать свой wiki-движок когда есть готовые?


Ну во-первых мне это было интересно. Создать готовый сайт по шаблону в несколько кликов — скучно и не заслуживает внимания аудитории. А новая разработка со своим интерфейсом вероятно активнее будет привлекать интерес. К тому же мне кажется проще написать код под определенные задачи с нуля, взяв за основу какой-либо фреймворк для упрощения разработки, чем переделывать нагромождения чужого кода под себя.

image

Подробнее о wikiclick.ru

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

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

«Проприетарному — нет»: драйверы-прослойки для доступа к GPL-вызовам ядра Linux предложили блокировать

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

Проприетарные разработки глубоко проникли в код многих приложений и сервисов. В сложных системах избавиться от них очень непросто. Зачастую для этого используются обходные пути, которые скорее являются «костылями». В ядре Linux для работы с проприетарными драйверами используются драйверы-прослойки, которые предназначены практически исключительно для трансляции обращений драйвера к ядру. У прослойки код открытый, так что проблемы с GPL-лицензией нет, формальности соблюдены.

Но у такого подхода немало противников. Один из них — Кристоф Хелвиг (Christoph Hellwig), разработчик ядра Linux. Ранее он был членом управляющего технического комитета организации Linux Foundation. Также он выступал истцом в судебном процессе с VMware. Хелвиг предложил значительно ужесточить защиту от связывания проприетарных драйверов с компонентами ядра Linux.
Читать дальше →

Linux Kernel 5.8: что нового в ядре с самым большим количеством изменений за всю историю

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


Линус Торвальдс наконец-то представил релиз ядра Linux 5.8. О планируемых новшествах мы писали задолго до этого события, но теперь планы стали реальностью, так что изменения можно обсудить. Размер патча составил 65 МБ, затронуто 16180 файлов, плюс добавлено 1043240 строк кода.

Наиболее заметными и ожидаемыми нововведениями стали:

  • детектор состояний гонки KCSAN;
  • универсальный механизм доставки уведомлений в пространство пользователя;
  • поддержка оборудования inline-шифрования;
  • расширенные механизмы защиты для ARM64;
  • возможность раздельного монтирования экземпляров procfs;
  • реализация для ARM64 механизмов защиты Shadow Call Stack и BTI.

Еще ядро поддерживает российский процессор Baikal-T1.

Теперь подробнее об изменениях.
Читать дальше →

Встраиваемый компьютер AntexGate + 3G-модем. Полезные настройки для более стабильного интернет-соединения

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

В сфере промышленной автоматизации существует негласная парадигма, в которой многие производители промышленного оборудования делают контроллеры отдельно, а модемы отдельно. Как правило, каждое устройство помещается в свой корпус, имеет своё питание, большие габариты и высокую стоимость. Такой вариант разделения функционала имеет свои преимущества и недостатки, но, по нашему мнению, он ведет, скорее, к бóльшей коммерциализации, чем обусловлен какими-то объективными причинами. Поэтому мы решили пойти немного по другому пути и сделали универсальное устройство, которое представляет из себя свободно программируемый контроллер на базе Linux с модемом в едином корпусе. Это нам позволило в своих проектах практически совсем отказаться от привычных всем щитов автоматизации и прийти к более мобильным решениям.

Под катом этой статьи мы поделимся с Вами тонкостями настройки модема и несколькими полезными скриптами для более стабильного 3G-соединения.
Читать дальше →

IBM открыла инструмент полностью гомоморфного шифрования для Linux

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

Компания IBM опубликовала на GitHub исходный код набора инструментов FHE для Linux. Утилиты работают на платформах IBM Z и x86, поддерживаются Ubuntu, Fedora и CentOS.

Полностью гомоморфное шифрование (FHE) долгое время считалось чем-то вроде чаши святого Грааля в криптографии. Задача действительно казалась нереальной. Тип шифрования FHE предполагает манипуляции зашифрованными данными третьей стороной без возможности расшифровки самих данных или результата манипуляций.

Как такое возможно?

Как можно и как нельзя использовать нулевой указатель в С++

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


Некоторым этот банальный вопрос уже набил оскомину, но мы взяли 7 примеров и попытались объяснить их поведение при помощи стандарта:


struct A {
    int data_mem;
    void non_static_mem_fn() {}
    static void static_mem_fn() {}
};

void foo(int) {}

A* p{nullptr};

/*1*/ *p;
/*2*/ foo((*p, 5));                     
/*3*/ A a{*p};
/*4*/ p->data_mem;
/*5*/ int b{p->data_mem};
/*6*/ p->non_static_mem_fn();
/*7*/ p->static_mem_fn();

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

Побег из привилегированных Docker-контейнеров

Время на прочтение4 мин
Количество просмотров16K
Перевод статьи подготовлен в преддверии старта курса «Пентест. Практика тестирования на проникновение».




Привилегированные контейнеры Docker – это такие контейнеры, которые запускаются с флагом --privileged. В отличие от обычных контейнеров, эти контейнеры имеют root-доступ к машине-хосту.

Привилегированные контейнеры часто используются, когда для выполнения задач нужен прямой доступ к аппаратной составляющей. Однако привилегированные Docker-контейнеры могут позволить злоумышленникам захватить хост-систему. Сегодня мы посмотрим, как можно выйти из привилегированного контейнера.
Читать дальше →

Альфа-версия Flutter для Linux и разработка настольных приложений

Время на прочтение10 мин
Количество просмотров14K
Материал, перевод которого мы публикуем сегодня, подготовили Крис Селлз из Google и представитель компании Canonical Кен ВанДин.

Компания Google, в том, что касается Flutter, всегда стремилась к тому, чтобы сделать этот фреймворк универсальным инструментом, позволяющим создавать привлекательные интерфейсы, работающие на любых платформах так же быстро, как интерфейсы «родных» приложений этих платформ. Чтобы убедиться в том, что это возможно, мы начали с того, что сосредоточили усилия на мобильных платформах — Android и iOS. В результате в Google Play оказалось опубликовано более 80000 быстрых и красивых Flutter-приложений.



Мы, опираясь на достигнутые успехи, вот уже более года заняты расширением возможностей Flutter на настольные платформы — на macOS, Windows и Linux. Это касается и веб-приложений, и традиционных настольных проектов. В частности, мы заняты серьёзным рефакторингом движка. Рефакторинг направлен на поддержку работы с мышью и клавиатурой в том стиле, в котором это принято в настольных системах, а так же на поддержку окон, размер которых можно менять. Сюда входят и новые возможности пользовательских интерфейсов, которые хорошо подходят для настольных платформ. Это, например, поддержка Material Density и NavigationRail. Сюда же относятся и эксперименты по глубокой интеграции с настольными операционными системами благодаря Dart:FFI, и работа с системными меню и со стандартными диалоговыми окнами. Всё это делалось для того чтобы убедиться в том, что Flutter подходит не только для создания мобильных проектов, но и готов к тому, чтобы на его основе можно было бы разрабатывать настоящие настольные приложения.
Читать дальше →

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