Обновить
256K+

Linux *

Пишем под *nix

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

Модификация ядра Linux: добавляем новые системные вызовы

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

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

Canonical представила оболочку Ubuntu Frame для встроенных дисплеев

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

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

Читать далее

Принцип работы планировщика задач в Linux

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

Планирование – это процесс распределения ресурсов системы для выполнения задач. В статье мы рассмотрим его вариант, в котором ресурсом является одно или несколько ядер процессора, а задачи представлены потоками или процессами, которые нужно выполнить.
Читать дальше →

Сборка Linux и CPSS на отладке Marvell RD-AC3X-48G4X2XL-A с Ethernet-коммутатором Prestera DX

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

Мы подготовили статью-гайд для пошаговой сборки и запуска базовой прошивки с CPSS на отладочной плате Marvell RD-AC3X-48G4X2XL-A. Эта плата предназначена для проектирования и отладки управляемых коммутаторов до 48 портов. Чем она примечательна для инженера-разработчика? У нее на борту установлен коммутатор Marvell Prestera DX 98DX3257 с мощной СнК семейства Prestera. А Ethernet-коммутаторы Prestera DX позволяют реализовать 5G при самой низкой в отрасли мощности и занимаемой площади. 

А что касается CPSS, то это базовый программный уровень для железа Marvell Prestera или, другими словами, Core Prestera Software Suite. CPSS используется в проекте Open Compute Project как часть открытой операционной системы SONiC. Эта операционка расширяет функции центра обработки данных в сложных системах, например, в системах интеллектуального хранения данных и машинного обучения.

Читать далее

Разработка кроссплатформенного ядра геометрического моделирования

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

В августе мы, команда C3D Labs (АСКОН), впервые выпустили версию геометрического ядра C3D для отечественной операционной системы Astra Linux, пополнив список поддерживаемых дистрибутивов Линукс. На данный момент ядро геометрического моделирования C3D может быть использовано в разработке ПО на широком спектре операционных систем: кроме Windows — это MacOS, IOS, FreeBSD и несколько Linux-дистрибутивов. Также SDK ядра предоставляет большое разнообразие компиляторов: MSVC 2012 — 2019, GCC 4.8 — 7.2, Clang 6.0 — 10.0.

Так было не всегда. В 2012 году, когда ядро C3D выделилось из состава САПР КОМПАС-3D как отдельный продукт, оно работало только для нескольких версий компилятора MSVC и, разумеется, только под ОС Windows. Но ядро развивалось, со временем к нему стали предъявляться требования и пожелания, которые мы не могли игнорировать, если хотели иметь действительно лучший продукт в своем классе. Ниже рассказ о том, как мы портировали ядро на различные ОС и платформы.

Подробнее про разработку ядра

Архитектура приложения моего защищенного чата

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

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

Оба приложения написаны на C. Это мой любимый язык и на нем я бы хотел писать код, если смогу когда нибудь устроиться на работу программистом. Попользовавшись ubuntu я понял что старые версии софта, это не хорошо. Например у меня несколько источников звука и микрофонов. И в ubuntu при каждой новой загрузке нужно переключать источник от наушников в источник телевизор. Также и микрофон. Как я обрадовался, что в opensuse нет с этим проблемы и доступна библиотека gtk4, которую я так давно ждал. Я мог писать приложение в gnome builder, что я иногда делаю, но в gnome builder мне не удалось сделать так, чтобы заработала библиотека ffmpeg. И как обычно я пишу в vim.

Итак. Я уже привык к объектной философии gobject и чувствую себя кофмортно в разработке. В gtk4 много изменений произошло. Например я раньше в gtk3 в text_view в сигнале "draw" выполнял функцию gtk_widget_queue_resize ();. и так получалось что это подгоняло размер под нужный, перед рисованием текста, но в gtk4 нельзя подключиться к методу отрисовки. И тогда я решил сделать свой виджет. Но свой виджет не нужно делать прям с нуля. В документации ясно сказано, что gtk_drawing_area как раз предназначен для custom виджетом.

Вот список файлов, которые учавствуют в проекте gui secure chat.

Читать далее

Python GUI. Библиотека KivyMD. Шаблон MVC, parallax эффект и анимация контента слайдов

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

Приветствую вас, дорогие любители и знатоки Python! Прошло пол года с момента моей последней публикации на Хабре. Был погружен в пучину обстоятельств и сторонние проекты. Начиная с сегодняшней, статьи будут выходить с периодичностью раз в месяц. В этой статье мы рассмотрим как создать и анимировать контент для слайдов а также сделать parallax эффект для фонового изображения с помощью фреймворка Kivy и библиотеки KivyMD.

Читать далее

В Linux Foundation отмечают острый спрос компаний на профессиональных опенсорс-разработчиков

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

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

Дебажим U-boot на реальном железе

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

Продолжение предыдущей статьи, в которой мы ускорили разработку под embedded linux. Рабочая станция + sftp сервер + nfs сервер ускорили на порядок (10х) доставку изменений кода на целевое железо. Теперь не нужно часами компилировать код. В этой статье продолжаем очеловечивать разработку. На этот раз прикручиваем полноценную графическую IDE и пошаговую отладку кода на целевом железе с помощью программатора J-Link. Но пока только загрузчика U-boot. И автоматизируем развертывание рабочей среды разработчика с помощью Docker.

Читать далее

Компиляция без предупреждений — что случилось в Linux-сообществе

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

Пару недель назад Линус Торвальдс активировал флаг -Werror для всех сборок ядра. Мнения сообщества касательно этого решения разделились. Против даже высказался разработчик фронтенда Clang и фреймворка LLVM. Обсуждаем ситуацию.

Читать далее

Кросс компиляция пакета для роутера на примере Qbittorrent

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

Добрый день друзья. Как-то мне захотелось установить Qbittorrent на мой роутер который оснащен OpenWRT. Конечно создатели OpenWRT уже предусмотрели возможность сборки кастомных покетов об этом можно почитать вот тут: https://habr.com/ru/company/ruvds/blog/530984/ . Но данный способ очень долгий, приходится скачивать исходники OpenWRT, компилировать тулчайн и прочее. И я подумал а почему-бы просто не скачать тулчайн и собрать проек обычным образом под катом мой опыт.

Читать далее

Работа с СОМ-портом на Си в linux

Время на прочтение18 мин
Охват и читатели115K
Телетайп, на который БЭВМ могли выводить и получать данные. Фото взято здесь.

Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Недаром, моя статья "UART и с чем его едят" спустя 11 лет после выпуска набирает просмотры и комментарии.

Для разработчиков чаще всего появляется задача сопрячь какой-то датчик, либо удалённое устройство с одноплатником. Да что греха таить, сейчас в 2021 году UART, наверное, самый распространённый интерфейс для обмена данными, несмотря на всю его архаичность. Далеко за примером ходить не надо, внутри смартфона, лежащего у вас в кармане, будет с десяток UART интерфейсов, самый известный из которых — это подключение SIM-карты.

Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.

В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А непонимание того, что там происходит и приводит к различным трудноуловимым багам.
Читать дальше →

Распознаем речь в Авроре

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

Аврора, созданная во многом с прицелом на корпоративное использование, часто используется в не совсем привычных для нормального человека условиях. Когда мобильное устройство — корпоративное, а передаваемая информация имеет не только ту ценность, которую охраняет закон о персональных данных №152-ФЗ, но и коммерческую составляющую, — на передний план выходит конфиденциальность и возможность обрабатывать данные, не отходя от кассы.

Пример, о котором мы говорим сегодня, — распознавание речи — сам по себе имеет несколько приложений. Их можно условно разделить на две группы: где важна только суть, а сам текст не столь важен (например, команды для переключения режимов работы устройства), и где важен именно текст как таковой (транскрибирование аудио).

Читать далее

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

Копируем файлы пачками в AWS S3

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

В одном из проектов встала следующая задача: пользователь загружает пачку файлов через клиента (CloudBerry Explorer, к примеру) в S3 бакет, мы копируем эти файлы в архив и шлем SNS уведомление о том, что все сделано. Перекладывать файлы в архив нужно начинать только тогда, когда пользователь загрузит все, что хотел. Пользователей мало и загружают батчи они довольно редко. Но файлов может быть много.

Чтобы понять, что пора начинать архивацию, зададим определенную структуру каталогов и будем просить пользователя загружать триггер-файлы с расширением .trigger когда он закончит. Этакая эмуляция кнопки Done. Структура каталогов будет такой:

<batch_name>/done.trigger
<batch_name>/files/<file_key_1>
<batch_name>/files/<file_key_2>
...
<batch_name>/files/<file_key_n>

Как видим, для каждой пачки создается свой каталог <batch_name> с подкаталогом files, в который и заливаются уже пользовательские файлы с каталогами и именами, которые он хочет. Триггер-файл загружается в <batch_name> и по ключу этого  файла можно понять какие конкретно файлы нужно отправить в архив. Но здесь есть один нюанс, мы хотим при копировании в архив вырезать каталог files. Т.е. файл <batch_name>/files/<file_key_1> скопировать в <batch_name>/<file_key_1>.

К счастью, S3 позволяет отслеживать загрузку файлов с определенным суффиксом и отправлять уведомления при наструплении этого события. В качестве получаетеля этих уведомлений можно указать аж 3 сервиса: SNS, SQS и Lambda-функцию. Но тут не без нюансов. Так, первые 2 типа поддерживают только стандартные очереди и SNS, а FIFO не поддерживают, увы.

Читать далее

Книга «Библия Linux. 10-е издание»

Время на прочтение11 мин
Охват и читатели29K
image Привет, Хаброжители! Полностью обновленное 10-е издание «Библии Linux» поможет как начинающим, так и опытным пользователям приобрести знания и навыки, которые выведут на новый уровень владения Linux. Известный эксперт и автор бестселлеров Кристофер Негус делает акцент на инструментах командной строки и новейших версиях Red Hat Enterprise Linux, Fedora и Ubuntu. Шаг за шагом на подробных примерах и упражнениях вы досконально поймете операционную систему Linux и пустите знания в дело. Кроме того, в 10-м издании содержатся материалы для подготовки к экзаменам на различные сертификаты по Linux.

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

Опыт работы со смартфоном PinePhone: модульный телефон без сервисов Google

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

Прошлым летом, во время распространения коронавируса по городам и весям, я почти все время сидел дома. У меня появилось много свободного времени, так что, наконец, получилось заняться давно запланированным обзором PinePhone. Напомню, что это смартфон с ОС Linux, а не Android.

Он интересен не только операционной системой, но и отсутствием сервисов Google. Я видел предупреждения о том, что телефон все еще может считаться тестовым девайсом, но решил, что смогу преодолеть все препятствия. Спустя год мне действительно удалось это сделать — сейчас это устройство, которое вполне можно использовать в качестве альтернативы телефонам на Android. Конфиденциальность данных для меня в приоритете, несмотря на то, что взамен пришлось пожертвовать некоторыми функциональными возможностями.
Читать дальше →

Торвальдс критикует мерджи GitHub: они объединяют «бесполезный мусор»

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

Линус Торвальдс добавит драйвер NTFS от Paragon Software в исходный код ядра Linux 5.15. Однако создатель ядра пожаловался на использование мерджей GitHub, заявив, что «создаются абсолютно бесполезные слияния мусора».

Читать далее

Простейшее решение «проблемы промежуточных устройств»: организация работы SCTP поверх UDP в ядре Linux

Время на прочтение4 мин
Охват и читатели7K
Возможность организации работы SCTP поверх UDP (известная ещё как инкапсуляция SCTP-пакетов в UDP-пакеты) определена в RFC 6951 и реализована в пространстве ядра Linux начиная с версии ядра 5.11.0. Поддержку этой возможности планируется включить в Red Hat Enterprise Linux (RHEL) 8.5.0 и 9.0.



В этом материале даётся краткий обзор организации работы SCTP поверх UDP в ядре Linux.
Читать дальше →

Файловый сервер SMB3 появится в Linux 5.15

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

В версии ядра Linux 5.15 внедрят KSMBD, новую реализацию ​​файлового сервера на протоколе SMB3. Он разработан сотрудниками Samsung и LG и ориентирован на более высокую производительность и новые функции. 

Читать далее

30 лет ядру Linux: поздравление от PVS-Studio

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

25 августа 2021 года ядру Linux исполняется 30 лет. За это время ядро пережило множество изменений, так же, как и мы. Сегодня это огромный проект, работающий на миллионах различных устройств. Предыдущую проверку мы делали 5 лет назад, поэтому не можем пропустить такое событие и не заглянуть в код этого эпического проекта.

Читать далее