Обновить
256K+

Linux *

Пишем под *nix

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

C и Python: мост между мирами

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

Вам интересно подключить всю мощь Python в свою программу на C? Отлично: в статье содержится минимальный крэш-курс по подключению интерпретатора Python, загрузке своего кода и взаимодействию с ним из программы на C.

Приготовления завершены

Приёмы неблокирующего программирования: атомарные операции и частичные барьеры памяти

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

В первой статье цикла мы познакомились с простыми неблокирующими алгоритмами, а также рассмотрели отношение “happens before”, позволяющее их формализовать. Следующим шагом мы рассмотрим понятие «гонки данных» (data race), а также примитивы, которые позволяют избежать гонок данных. После этого познакомимся с атомарными примитивами, барьерами памяти, а также их использованием в механизме “seqcount”.


С барьерами памяти некоторые разработчики ядра Linux уже давно знакомы. Первый документ, содержащий что-то похожее на спецификацию гарантий, предоставляемых ядром при одновременном доступе к памяти — он так и называется: memory-barriers.txt. В этом файле описывается целый зоопарк барьеров вместе с ожидаемым поведением многопоточного кода в ядре. Также там описывается понятие «парных барьеров» (barrier pairing), что похоже на пары release-acquire операций и тоже помогает упорядочивать работу потоков.


В этой статье мы не будем закапываться так же глубоко, как memory-barriers.txt. Вместо этого мы сравним барьеры с моделью acquire и release-операций и рассмотрим, как они упрощают (или, можно сказать, делают возможной) реализацию примитива “seqcount”. К сожалению, даже если ограничиться лишь наиболее популярными применениями барьеров — это слишком обширная тема, поэтому о полных барьерах памяти мы поговорим в следующий раз.

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

Разработчик 7-Zip выпустил официальный билд для Linux спустя 22 года после выхода Windows-версии

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

Архиватор 7-Zip отлично справляется со своей задачей — эффективно сжимать данные. Его можно назвать «швейцарским ножом» в мире архиваторов. Он поддерживает разные алгоритмы сжатия и большое количество форматов данных, таких как ZIP, gzip, tar и RAR. Отдельный плюс — в том, что архиватор свободный.

Первая версия 7-Zip увидела свет 18 июля 1999 года, за относительно короткое время архиватор смог стать очень популярным. Относительный недостаток 7-Zip — наличие лишь версии для Windows (официальный клиент). Но сейчас, спустя всего 22 года, появился и вариант для Linux, официальный билд от разработчиков.
Читать дальше →

Трепещущий Kivy. Обзор возможностей фреймворка Kivy и библиотеки KivyMD

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

Kivy и Flutter — два фреймворка с открытым исходным кодом для кроссплатформенной разработки.

Flutter:


  • создан компанией Google и выпущенный в 2017 году;

  • в качестве языка программирования использует Dart;

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

Kivy:


  • создан сообществом Kivy в 2010 году;

  • в качестве языка программирования использует Python и собственный декларативный язык для разметки UI элементов — KV Language;

  • не использует нативные компоненты, рисуя весь интерфейс с помощью OpenGL ES 2.0 и SDL2;

Недавно на просторах Ютуба наткнулся на видео демонстрацию Flutter приложения — Facebook Desktop Redesign built with Flutter Desktop. Отличное демонстрационное приложение в стиле material design! И поскольку я один из разработчиков библиотеки KivyMD (набор material компонентов для фреймворка Kivy) мне стало интересно, насколько просто будет сделать такой же красивый интерфейс. К счастью автор оставил ссылку на репозиторий проекта.

Шпаргалка по pip, 6 заблуждений насчет AIOps, бесплатный онлайн-курс, а еще про Windows-программы на Linux

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

Собрали много инсайтов, мероприятий, книжек и шпаргалок. Оставайтесь с нами – станьте частью DevNation!

Читать дальше: Шпаргалка по pip...

Введение в неблокирующие алгоритмы

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

Неблокирующие алгоритмы широко применяются в ядре Linux когда традиционные примитивы блокировки либо не могут быть использованы, либо недостаточно быстры. Эта тема многим интересна и время от времени всплывает на LWN. Из недавнего — вот эта июльская статья, которая собственно и сподвигла меня написать свою серию. Ещё чаще разговор заходит про механизм read-copy-update (RCU — руководство 2007 года всё ещё актуально), подсчёт ссылок, и способы сделать более понятные, высокоуровные API ко всему этому разнообразию. Ну а сейчас вас ждёт погружение в идеи, стоящие за неблокирующими алгоритмами, а также их использованием в ядре.


Знание низкоуровневой модели памяти в целом считается продвинутым уровнем понимания, которого страшатся даже опытные программисты-ядерщики. Словами нашего редактора (из его июльской статьи): «Понять модель памяти можно лишь правильно повёрнутым мозгом». Говорят, что моделью памяти Linux (и файлом memory-barriers.txt в частности) можно пугать детей. Порой для достижения эффекта достаточно всего лишь рявкнуть “acquire” или “release”.


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

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

Google вместе с Debian работают над улучшением проекта Bazel для ковидных исследований

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

Медицинские исследования COVID-19 продолжаются. Олек Войнар, разработчик операционной системы Debian на базе Linux, для помощи ученым в исследованиях упаковывал некоторые программы для более простой установки в Linux. Одним из таких пакетов была программа сборки Google Bazel. Узнав о работе Войнара, Google предложила ему свою помощь.

Читать далее

Для загрузчика GRUB2 выпустили 117 патчей, чтобы устранить опасные уязвимости

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

В загрузчике ОС Linux GRUB закрыли сразу несколько уязвимостей высокого уровня опасности. Разработчикам потребовалось выпустить для этого 117 патчей.

Читать далее

Кунг-фу стиля Linux: разбираемся с последовательными портами

Время на прочтение8 мин
Охват и читатели38K
Раньше последовательные порты были буквально повсюду. И они, в каком-то смысле, никуда и не делись, так как многое, что подключается к компьютеру по USB, на самом деле, выглядит для системы как последовательный порт. Проблема тут заключается в том, что в наши дни всё в мире завязано на компьютерные сети. Конечно, можно купить терминальный сервер, который преобразует последовательный порт в интерфейс Ethernet. Но это совсем не интересно. Здесь я хочу рассказать о том, как пробрасывать последовательные порты по сети с использованием существующих Linux-инструментов. Решение это не идеальное, оно оказывается работоспособным далеко не всегда, но если оно работает, то работает оно хорошо.


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

Red Hat предложит бесплатные подписки на RHEL некоторым организациям открытого ПО

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

Red Hat предоставит Red Hat Enterprise Linux (RHEL) организациям с открытым исходным кодом на бесплатной основе «для любого использования в рамках их инфраструктуры». В частности, подписку можно будет использовать при работе с системами сборки и непрерывной интеграции, а также веб- и почтовыми серверами.

Читать далее

Запускаем DOOM на калькуляторе HP Prime G2

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

Установить DOOM на какое либо устройство, это как водрузить знамя победителя на павшей крепости. Мне задали вопрос “ну что, doom запустил?” не менее 35 раз, когда узнали что я вожусь с данным калькулятором. Решил не разочаровывать публику и добиться запуска DOOM. Попутно, это стало неплохим тестом работоспособности оборудования, а также выявления неприятных багов. В общем, поехали!

5 причин, по которым я люблю программировать в Linux

Время на прочтение6 мин
Охват и читатели74K
Linux — это отличная платформа для занятий программированием. На нашей стороне — логичность, высокая эффективность, лёгкость работы с исходным кодом.

В 2021 году Linux выглядит как никогда привлекательно. Я собираюсь написать материалы, в которых расскажу о 21 способе использования Linux. А в этой статье я хочу поговорить о том, почему так много программистов выбирают Linux.

Когда я начал пользоваться Linux, я работал в сфере кинопроизводства. Я выбрал Linux из-за того, что эта ОС замечательно поддерживала работу с мультимедийными данными. Мы выяснили, что обычные коммерческие приложения для редактирования видео не способны обрабатывать большинство тех записей, которые мы извлекали из практически любых устройств, оснащённых камерами. Тогда я не знал о том, что Linux имеет репутацию операционной системы, рассчитанной на серверы и на программистов. Чем больше задач я решал с помощью Linux, тем сильнее мне хотелось научиться управлять всеми свойствами этой ОС. В итоге я выяснил, что компьютер показывает всю свою мощь тогда, когда его пользователь способен «говорить» на его языке. Через несколько лет после перехода на Linux я уже писал скрипты для автоматического редактирования видео, для объединения аудиофайлов, для пакетного редактирования фотографий, и для решения любых задач, которые мне удавалось сформулировать, и для которых удавалось найти решение. Мне не потребовалось много времени на то, чтобы понять, почему программисты любят Linux. Но именно Linux научила меня любить программирование.



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

Google начала спонсировать двух разработчиков ядра Linux

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

Google начала выделять средства на поддержку двух штатных специалистов по сопровождению ядра Linux, Густаво Сильвы и Натана Ченселлора. Они работают над улучшением безопасности ядра.

Читать далее

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

Сила bash

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

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

Читать далее

Релиз дистрибутива Kali Linux 2021.1

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

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

Все оригинальные разработки распространяются под лицензией GPL, которые доступны через публичный Git-репозиторий.

Читать далее

Спецификация D-Bus. Часть 2, заключительная

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

Уважаемые хабравчане, предлагаю вашему вниманию перевод оставшихся глав спецификации D-Bus. Полный pdf-документ можно скачать по адресу.

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

Спасибо за внимание.

Читать далее

Как мы раскрыли 24-летний баг в ядре Linux

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

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

Поскольку на Raspberry Pi Pico не встанет Linux, умелец портировал на плату Fuzix

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


16 февраля 2021 года разработчик Дэвид Гивен представил порт ОС Fuzix для микроконтроллера Raspberry Pi Pico RP2040. Причем буквально за несколько дней перед этим он портировал Fuzix на микроконтроллер ESP8266 и записал об этом отдельное видео.
Читать дальше →

Бета версия OpenBSD поддерживает чип Apple M1

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


20 февраля 2021 года контрибьютер OpenBSD Марк Кеттенис сообщил, что версия OpenBSD 6.9-beta поддерживает чип Apple M1. В рассылке сообществу разработчиков он показал текстовую выгрузку процесса загрузки OpenBSD на Mac Mini с M1.
Читать дальше →

Путешествие в unmanaged code: туда и обратно

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

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

Читать далее