Обновить
256K+

Linux *

Пишем под *nix

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

Опыт создания UI библиотеки на C++

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели20K

Началось все почти два года назад в декабре, практически перед новым годом.

Наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...

На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.

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

Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...

В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да...

wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulcan на современных машинах.

В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost. 

Читать далее

far2l в Ubuntu 23.10

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели33K

Ура! В новой версии Ubuntu, наконец-то, можно установить Far Manager (far2l) самым обычным sudo apt install far2l — прямо из коробки, без всяких ppa и кастомных сборок! Под катом — немного подробностей, а также обычный дайджест новостей проекта за прошедшее время.

Читать далее

Установка OC Linux на плату Kintex 7 (KC705) от Xilinx с софт-процессором MicroBlaze часть 1

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

Данная серия статей является туториалом по установке линукса на плату KC705 с софт-процессорным ядром Микроблэйз.

В первой части я описываю процесс создания схемы платформы, на которую мы поставим систему, с описанием некоторых нюансов.

Во второй части я опишу процесс сборки образа линукса и тестирование его работоспособности на отладочной плате путём прошивания через usb.

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

Буду рад любым советам, замечаниям и фидбэку в комментариях. Статью считаю полезной, т.к. в процессе столкнулся с достаточно большим количеством неочевидных вещей, настроек и решений, информацию о которых в интернете нашёл с трудом. Да и вообще, актуальных туториалов и статей, конкретно по этой отладочной плате в интернете ничтожно мало. Поехали!

Читать далее

Прошло полгода и мы дождались: релиз OpenBSD 7.4. Важные обновления, улучшения и изменения

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

Спустя полгода после выхода OpenBSD 7.3 представлен следующий выпуск OpenBSD, теперь с версией 7.4. Размер дистрибутива, установочного ISO-образа базовой системы OpenBSD 7.4 составляет всего 630 МБ. Давайте посмотрим, что изменилось, добавлено или было удалено. Все подробности — под катом.
Читать дальше →

Ещё немного Ubuntu: вышел дистрибутив Ubuntu 23.10 с GNOME 45

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

Привет, Хабр! Многие пользователи Ubuntu, да и других дистрибутивов Linux продолжительное время ожидали выхода нового релиза  23.10. И вот, его уже можно загрузить. Установочные образы Ubuntu 23.10 "Mantic Minotaur" созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon. Под катом поговорим о нововведениях и изменениях дистрибутива.

Читать далее

Отправка и обработка HTTP запросов в PostgreSQL

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели33K

Эта статья о том как отправлять и обрабатывать HTTP-запросы непосредственно из/в PostgreSQL. Автор расскажет о том, что такое асинхронное уведомление в PostgreSQL, и наглядно продемонстрирует, как с его помощью можно взаимодействовать с внешними системами из самой СУБД.

Читать далее

Замешиваем файлы в тэги. Часть 3

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели4.5K

Продолжаем создавать модуль ядра в Линукс на примере виртуальной файловой системы.

Часть 1: Описание задачи, Модуль ядра

Часть 2: Модуль ядра, Регистрация файловой системы

Часть 3: Inode, Lookup

Часть 4: Inode-операции: symlink, unlink

Что в результате получилось можно увидеть по ссылкам: демо-видео, код.

Продолжаем разбираться

Elementary OS 7.1 уже вышел: изменения, добавления и перспективы дистрибутива

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

Привет, Хабр! Хорошие новости: на днях появился новый выпуск Elementary OS 7.1. Разработчики ОС позиционируют её как альтернативу для пользователей Windows и Mac OS, утверждая, что интерфейс системы простой и понятный, а функции и возможности обширны. Чтобы убедиться в этом, уже можно загрузить iso-образы, всё готово к использованию. Под катом — всё самое интересное.

Читать далее

IMSProg — программатор для CH341a в Linux

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели32K

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

Читать далее

Книги по Linux для начинающих и профессионалов: выбираем лучшее

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

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

Читать далее

10 лет Docker: от революционной идеи до современной практики

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

Привет, Хабр! На момент написания статьи, я занимаюсь надежностью (SRE) в компании Workday, еще помогаю студентам в Практикуме осваивать курс по DevOps-практикам.

В этой статье я поделюсь кратким обзором истории Docker, его ключевыми концепциями и мисконцепциями. Надеюсь, это будет полезно для новичков и студентов, изучающих DevOps-практики и виртуализацию.

Читать далее

Большинство оконных приложений — это недоработанные real-time приложения

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели10K

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

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

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

Новое, старое, измененное: что появилось и что пропало в бета-версии релиза Fedora Linux 39

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

Спустя примерно полгода после выхода дистрибутива Fedora Linux 38 появился бета-выпуск следующей, 39 версии. На данном этапе допускается только исправление критических ошибок. Финальный же релиз появится через пару недель — 17 октября.

Заявляется, что это выпуск охватывает Fedora Workstation, Fedora Server, Fedora Silverblue, Fedora IoT, Fedora CoreOS, Fedora Cloud Base, Fedora Onyx и Live-сборки. Речь идет о сборках, которые поставляются в форме спинов с KDE Plasma 5, Xfce, MATE, Cinnamon, LXDE, Phosh, LXQt, Budgie и Sway. Среди поддерживаемых архитектур — x86_64, Power64 и ARM64 (AArch64). Ну а главные подробности — под катом.
Читать дальше →

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

Что надо знать КИИ об инфраструктуре разработки операционной системы?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели3K

Не все российские операционные системы (ОС) одинаково российские. Ряд ОС, которые позиционируются как отечественные, на самом деле являются клонами зарубежных. Переход на такие программные продукты не дает возможности организации или предприятию обеспечить технологический суверенитет ИТ-инфраструктуры и выполнить требования Указа Президента Российской Федерации от 30.03.2022 № 166 «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации».

Санкционная устойчивость, производительность, и защищенность операционной системы (ОС) напрямую зависит от того, насколько инфраструктура ее разработки способна поддерживать полный жизненный цикл программного продукта.

Читать далее

Как у меня украли авторство патча

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели27K

Примерно полтора года назад я попросил у своей бывшей компании разрешения поработать над проблемой, влиявшей на возможности отладки нашего проекта: gdbserver не мог отлаживать многопоточные приложения, работающие на архитектуре PowerPC32. Подключение к gdbserver было поломано, и он больше не мог контролировать сессию отладки. Разные люди исследовали эту проблему до меня, и у меня уже был неплохой фундамент, но мы всё равно не знали точно, в каком конкретно программном компоненте таится проблема: это мог быть тулчейн, gdbserver, ядро Linux или собственные патчи, которые мы устанавливали поверх дерева ядра. От нахождения первопричины мы находились довольно далеко.

Читать далее

Как мы анализируем потребление памяти нативными приложениями (C++, Windows, Linux)

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

Технологическая платформа 1С:Предприятие – это большой программный продукт (только на С++ - более 10 миллионов строк кода, а есть ещё Java и JavaScript). Подробнее про устройство платформы можно прочитать тут.

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

О том, какие инструменты мы пробовали использовать, почему они нам не подошли и как мы в итоге решили задачу анализа использования памяти – под катом.

Читать далее

Ubuntu 23.10: что нового в бета-выпуске дистрибутива. Возможности и изменения

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

Буквально несколько дней назад разработчики представили бета-выпуск дистрибутива Ubuntu 23.10 Mantic Minotaur. Далее последуют финальное тестирование, поиск и исправление ошибок, если они, конечно, есть. Образы текущей версии готовы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, Ubuntu Kylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon.

Читать далее

Устраняем ошибки, связанные с SIGSEGV: ошибка сегментирования в контейнерах Linux (код возврата 139)

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели36K
image

Сигнал SIGSEGV, применяемый в Linux, означает нарушение сегментирования в рамках работающего процесса. Ошибки сегментирования возникают из-за того, что программа пытается обратиться к участку памяти, который пока не выделен. Это может произойти из-за бага, случайно вкравшегося в код, либо из-за того, что внутри системы происходит некая вредоносная активность.

Сигналы SIGSEGV возникают на уровне операционной системы, но столкнуться с ними также вполне можно и в контексте контейнерных технологий, например, Docker и Kubernetes. Когда контейнер завершает работу, выдав код возврата 139, дело именно в том, что он получил сигнал SIGSEGV. Операционная система завершает процесс контейнера, чтобы предохраниться от нарушения целостности памяти.

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

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

Популярные инструменты в kali linux

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели38K

Привет! Меня зовут Павел. Сегодня я расскажу про популярные инструменты в kali linux. Основывал статистику на своем опыте и на пределы популярности. Если не согласны, то делитель своими мнениями.

Читать далее

Промышленные контроллеры, Linux и только C++. Часть 1

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели17K

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

Читать далее