Как стать автором
Обновить
97.59

Разработка под Linux *

Пишем под *nix

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

«Проблема доверия в сети». Точка зрения

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 2.2K
Децентрализованные сети *Разработка мобильных приложений *Google API *Разработка под Linux *Социальные сети и сообщества
Из песочницы

...Привет, Хабр!

Проблема «доверия в сети» по общему мнению, является основным препятствием для возникновения децентрализованной экономики и виртуальных трастовых децентрализованных сообществ. Осмысление данной проблемы привело к следующим выводам и результатам, которыми я хотел бы поделиться с вами, уважаемые коллеги.

Читать далее
Всего голосов 7: ↑0 и ↓7 -7
Комментарии 14

Новости

Полезные команды GNU/Linux для разработчика. Часть 1

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 3.4K
Блог компании Maxilect Программирование *Разработка под Linux *Лайфхаки для гиков

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

Статья написана по мотивам ИТ-посиделки, где мы обменивались полезными лайфхаками. Все команды, которые успели обсудить, мы разделили на две части. В первой поговорим про запросы общей информации о пользователях и системе, работу с файлами, процессами и текстом. Во второй части - о bash и работе с сетью, в частности ssh.

Читать далее
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 6

Семафоры в Linux медленно сходят со сцены

Время на прочтение 6 мин
Количество просмотров 20K
Программирование *Системное программирование **nix *Разработка под Linux *
Перевод

С годами подходы к обработке конкурентности в ядре Linux сильно изменились. К 2023 году в арсенале разработчиков ядра появились, в частности, автозавершения, хорошо оптимизированные мьютексы, а также россыпь неблокирующих алгоритмов. Но были времена, когда управление конкурентностью сводилось к использованию обычных семафоров. Дискуссия о внесении небольшого изменения в API семафоров лишний раз свидетельствует, как сильно они изменились за долгую историю ядра.

Читать далее
Всего голосов 52: ↑51 и ↓1 +50
Комментарии 28

10 болей Windows-разработчика, портирующего на Linux

Время на прочтение 9 мин
Количество просмотров 4.9K
Блог компании Content AI Разработка под Linux *Разработка под Windows *
Мнение

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

Споры о том, под какой ОС проще кодить – бесконечны, примерно как дискуссии об Android vs iOS или PlayStation vs Xbox. Поэтому начинать мы ее не будем, хотя очень хочется.

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

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 15

Истории

И снова Linux: релиз ядра 6.3. Подробнее о возможностях и апдейтах в этой версии

Время на прочтение 5 мин
Количество просмотров 8.6K
Блог компании Selectel Open source **nix *Разработка под Linux *


Всего через два месяца после выхода предыдущего релиза Линус Торвальдс представил релиз Linux 6.3, о чем уже писали на Хабре. Над ним пришлось изрядно потрудиться: в новой версии 15637 исправлений от 2055 разработчиков. Размер патча составил 76 МБ, ну а изменения затронули 14296 файлов, добавлено 1023183 строк кода, удалено 883103 строк.

Что касается основных изменений, то главное — обновление ARM-платформ и драйверов графики, продолжение работы по интеграции Rust, поддержка создания HID-драйверов и многое другое. Подробности — под катом.
Читать дальше →
Всего голосов 55: ↑55 и ↓0 +55
Комментарии 18

Новое, старое, измененное: что появилось и что пропало в релизе Fedora Linux 38. Да-да, он уже вышел

Время на прочтение 4 мин
Количество просмотров 6.7K
Блог компании Selectel Разработка под Linux *Софт


Несколько дней назад вышел ожидаемый многими релиз Fedora Linux 38. Разработчики внесли множество изменений, среди которых — как добавление новых возможностей, так и удаление/замена устаревших. Уже можно загрузить Fedora Workstation, Fedora Server, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition и Live-сборки, чтобы оценить новшества самостоятельно. Ну а если на это времени пока нет — то подробности под катом.
Читать дальше →
Всего голосов 44: ↑44 и ↓0 +44
Комментарии 10

Генерируем X509 сертификат с OpenSSL C++

Уровень сложности Сложный
Время на прочтение 10 мин
Количество просмотров 2.7K
Open source *C++ **nix *Разработка под Linux *
Туториал

В данной статья я хочу рассказать, как работать с X509 сертификатом используя OpenSSL 3.0.0 в С++, начиная от генерации своего сертификата и заканчивая его валидацией.

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

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

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 26

Blueprint: удобный инструмент для создания UI на Gtk4

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.7K
Программирование *Разработка под Linux *

Разметку для Gtk-приложений можно создавать несколькими способами. Это можно сделать при помощи средств самого языка программирования, на котором пишется программа. Или же применить визуальный конструктор, типа Cambalache, который, в свою очередь, создаст специальный ui-файл в формате XML.

Blueprint — это язык разметки, а также компилятор, специально созданный для приложений написанных на Gtk4.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Язык программирования Vala и где он используется. Создаем простое приложение для прослушивания радио

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 2.4K
Блог компании FirstVDS Программирование *Разработка под Linux *

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

В этом посте я хотел бы привести примеры из собственного опыта создания программ на языке программирования Vala.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 8

Дорожная карта навыков разработчика на C++

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 29K
Блог компании «Лаборатория Касперского» C++ *Разработка под MacOS *Разработка под Linux *Карьера в IT-индустрии Разработка под Windows *
Роадмэп
Спецпроект

Джеймс Гослинг как-то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость. 

В этом посте мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в С++-разработке.

Отправляемся
Всего голосов 46: ↑38 и ↓8 +30
Комментарии 95

Mediastreamer2. Применение Lua-машины в фильтрах

Время на прочтение 13 мин
Количество просмотров 567
Программирование *C *Lua *Разработка под Linux *
Туториал

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

Код программ данной главы можно скачать с Github по ссылке:

https://github.com/chetverovod/Mediastreamer2_LuaFilter

Приступим к практической реализации. Для этого можно вспомнить как создается новый фильтр, см. главу 4. В этой схеме источником звукового сигнала может быть либо сигнал с линейного входа звуковой платы (sound_card_read) либо генератор DTMFсигнала (dtmf_generator). Далее данные попадают на вход разрабатываемого Luaфильтра (lua_filter), который осуществляет их преобразование в соответствии с загруженным в него скриптом. Затем данные поступают на разветвитель (Tee), который из входного потока образует две копии, которые выдает на два выхода. Один из этих потоков поступает на регистратор (recorder) и на звуковую карту для воспроизведения (sound_card_write). Регистратор (*recorder*), он сохраняет их на диск в формате raw (wavфайл без заголовка). Таким образом мы сможем прослушать и записать результат работы Lua-фильтра.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 2

Как ChatGPT помогла мне исправить баг в far2l, turbo и wxWidgets

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 7.7K
C++ *Разработка под Linux *Искусственный интеллект
Кейс

Работая над проектом far2l (порта Far Manager) для Linux, я наткнулся на один очень красивый баг, который в итоге удалось починить только с помощью нейросети ChatGPT. Причём баг оказался не столько в самом far2l, сколько в проекте кроссплатформенной UI библиотеки wxWidgets. Бесплатная версия ChatGPT (3.5) с задачей справиться не смогла, а вот платная (4) таки справилась. Сегодня поделюсь с вами рассказом о том, как это было.

Читать далее
Всего голосов 58: ↑55 и ↓3 +52
Комментарии 69

C++, ping и traceroute

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 6.4K
C++ *Разработка под Linux *
Из песочницы

Изучая сетевое программирование и имея в портфолио несколько проектиков на C++, связанных с сетевым программированием, я решил написать что-нубудь, что будет иметь реальное практическое применение.

Первое, что мне пришло в голову - утилита ping.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 8

Руководство по Кросс-Платформенному Системному Программированию для UNIX и Windows: Уровень 1

Время на прочтение 68 мин
Количество просмотров 5.1K
Программирование *Системное программирование *Разработка под Linux *Разработка под Windows *
Туториал

С помощью этого учебного материала мы научимся писать кросс-платформенный код на Си, используя системные функции популярных ОС (Windows, Linux/Android, macOS и FreeBSD): управление файлами и файловый I/O, консольный I/O, пайпы (неименованные), запуск новых процессов. Мы напишем свои небольшие вспомогательные функции поверх низкоуровневого системного АПИ (API), для того чтобы наш основной код, используя эти функции, мог работать на любой ОС без изменений. Этот учебный материал — начального уровня. Я делю сложные вещи на части, чтобы примеры кода здесь не были слишком заумными для тех, кто только что начал программировать на Си. Мы обсудим различия между системными АПИ и разберёмся, как создать кросс-платформенный программный интерфейс, который скрывает все эти различия от пользователя этого интерфейса.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 27

Когда один TCP-порт может быть поделён

Время на прочтение 19 мин
Количество просмотров 11K
Программирование *Сетевые технологии *C *Параллельное программирование *Разработка под Linux *
Перевод

Вы замечали, как простые вопросы иногда приводят к сложным вопросам? Сегодня мы попытаемся подступиться к одному из таких вопросов. Категория — наша любимая: сетевые аспекты Linux.

Читать далее
Всего голосов 25: ↑21 и ↓4 +17
Комментарии 6

Компактный make для STM32 с USB

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 5.3K
C *Разработка под Linux *Программирование микроконтроллеров *
Из песочницы

Дата появления микроконтроллеров STM32, судя по datasheet, 2007 год, и с тех пор они признаны очень успешным и популярным чипом. Поэтому для них уже написано множество готовых примеров с поддержкой почти всех технологий как самим вендором так и комьюнити. Это и всевозможные USB устройства включая флешку и звуковую карту, и целочисленные варианты кодеков (WMA, Speex), и даже готовые сборки под ethernet с lwip стеком так же в наличии. В то время комьюнити пытается догнать вендора и написало библиотеку libopencm3, уже в отличии от оригинала, основанную на make, а не привязанную к среде. И в ней есть так же примеры с USB. И вот, на фоне всего этого я представил что STM32 ничем не сложнее меги, вооружившись таблицей разметки памяти с адресами регистров начинаю писать еще один вариант стандартной библиотеки для STM32. Гораздо более наивный, но зато компактный. Смыл был однозначно, я вообще считаю что если не понравился любой стандартный продукт, то это повод переписать его полностью, хотя вы можете со мной не согласиться.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 12

Король умер. Да здравствует Nxs-backup v3.0

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 2.7K
Блог компании Nixys Системное администрирование *Резервное копирование *Разработка под Linux *DevOps *
Обзор

4 года назад наша команда Nixys рассказывала, почему мы решили сделать собственный инструмент для резервного копирования и почему другие инструменты нам не подошли. Сегодня хочу рассказать, какие проблемы и недостатки в старой версии нам мешали, почему мы решили всё переписать и что у нас в итоге получилось. Добро пожаловать под кат.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 4

Как разработать драйвер Linux с нуля

Уровень сложности Сложный
Время на прочтение 11 мин
Количество просмотров 9.2K
Блог компании Timeweb Cloud Настройка Linux *Программирование *Разработка под Linux *
Туториал
Перевод
image

Недавно я занимался изучением IoT и, так как мне не хватало устройств, при попытках симулировать работу прошивки я часто сталкивался с неимением нужного /dev/xxx. Так что я стал задумываться, а могу ли написать драйвер самостоятельно, чтобы заставить прошивку работать. Независимо от того, насколько сложно это будет, и удастся ли воплотить такое намерение, в любом случае вы не пожалеете, если научитесь разрабатывать драйвер Linux с нуля.
Читать дальше →
Всего голосов 47: ↑41 и ↓6 +35
Комментарии 7

Linux-порт Far Manager: новости весны 2023

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 14K
C++ *Разработка под Linux *
Дайджест

Обычно я пишу статьи об развитии проекта far2l — порта знаменитого Far Manager под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу несколько важных событий, поэтому дожидаться конца года не буду, а опубликую самое интересное сразу.

Нас взяли в Debian!

Это, пожалуй, главная новость. К сожалению, в Bookworm мы попасть не успели, так что ждите нас в следующем выпуске, или в Ubuntu 23.10. Да, можно будет делать sudo apt install far2l, без всяких сложностей с ppa или самостоятельной сборкой!

Читать далее
Всего голосов 141: ↑141 и ↓0 +141
Комментарии 86

Удивительное рядом. Как устроен буфер обмена в Windows и Linux

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 18K
Блог компании RUVDS.com Системное программирование *Разработка под Linux *Разработка под Windows *Софт
Опенсорсная утилита CopyQ показывает содержимое буфера обмена на всех ОС и сохраняет историю

Буфер обмена — один из основных элементов GUI, но он сложен в реализации. Подводных камней настолько много, что вы больше никогда не сможете произнести слово «копипаст» с презрительным выражением. Есть тысячи приложений и форматов данных. Невозможно обеспечить полную конвертацию всего во всё.

В некоторых случаях данные вообще нигде не сохраняются по нажатию Ctrl+C. И по нажатию Ctrl+V будет возвращён NULL. Shit happens, как говорится…
Читать дальше →
Всего голосов 71: ↑70 и ↓1 +69
Комментарии 19

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