Как стать автором
Поиск
Написать публикацию
Обновить
393.99

Linux *

Пишем под *nix

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

Немного об отладке. Часть 2

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

Приветствую еще раз.

Это 2 часть небольшой статьи об отладчиках. В прошлой мы разобрали базу: инструкции + системные вызовы, написали свой отладчик, препарировали gdb и смотрели на отладку в высокоуровневых ЯП со своим рантаймом.

В этой мы посмотрим на процесс отладки в IDE изнутри, а потом пойдем еще глубже...

Путешествие на остальные 20 минут

Немного об отладке. Часть 1

Уровень сложностиСредний
Время на прочтение127 мин
Количество просмотров7.8K

Приветствую.

Вы когда нибудь отлаживали программы? Не врите, что нет. Благодаря отладчикам наши программы работают корректно (или хотя бы близко к этому).

Но вот знаете ли вы как отладка устроена: точки останова, шаги, бэктрейс, чтение переменных?

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

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

Путешествие на 20 минут

Российское 3D-ядро не только захабрено, но и продолжает жить

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

В конец уходящего года принято строить планы на будущее и подводить итоги. Поэтому есть повод оглянуться на 10 лет назад. Да, немного дальше, чем принято. И вспомнить про "Российское 3D-ядро", которое было выпущено и активно обсуждалось на Хабре в далеком 2013 году.

Вопреки расхожему мнению в комментариях, ядро не осталось "теоретической" разработкой без реального применения.

Давайте посмотрим, как себя чувствует геометрическое ядро - RGK (Russian Geometric Kernel) сегодня на рубеже 2024 - 2025 годов.

Читать далее

«Open source в России» — интервью с Алексеем Смирновым, председателем совета директоров «Базальт СПО»

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.9K

На днях удалось пообщаться с Алексеем Владимировичем Смирновым, председателем совета директоров «Базальт СПО». Мы обсудили организационные компетенции, необходимые для распространения свободного программного обеспечения, роль государства в развитии данного направления и другие вопросы.

Читать далее

Автоматическая сборка snap пакетов в CI/CD

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров966

Автоматическая сборка snap-пакетов с помощью GitLab CI/CD и Docker

Статья посвящена автоматизации сборки snap-пакетов с использованием GitLab CI/CD и Docker. Рассматриваются шаги настройки пайплайнов для создания и публикации пакетов, а также примеры конфигурации файлов .gitlab-ci.yml и Dockerfile.

Читать далее

Linux: долгий путь к ленивому вытеснению

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

В настоящее время планировщик работы с ядрами ЦП, действующий в ядре Linux, предусматривает несколько режимов вытеснения. В этих режимах предлагается целый ряд компромиссов между временем отклика и пропускной способностью системы. Ещё в сентябре 2023 года развернулась дискуссия о работе планировщиков, в результате которой была выработана концепция «ленивого вытеснения». Данная концепция упрощает планирование задач в ядре, при этом улучшая результаты. Какое-то время эта работа протекала тихо, но затем ленивое вытеснение было заново реализовано Питером Зайлстрой в виде этой серии патчей. Притом, что сама концепция с виду работает хорошо, здесь ещё немало требуется доделывать.

Читать далее

Самые быстрые страусы: выбираем способ организовать обмен прерываниями между машинами QEMU c KVM и без

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров4.3K

QEMU позволяет эмулировать работу не только одной отдельной машины, но и связывать несколько независимых машин между собой. Для организации такой связи их обычно объединяют в одну сеть, например с использованием virio-net-pci. Но виртуальный ethernet — не единственный способ, связь может быть и более близкой и плотной: общая память и mailbox, линии gpio и даже NTB.

Быстрая работа связанных QEMU машин приятна при разработке/отладке и очень важна при массовом прогоне автотестов в CI: нужна как высокая пропускная способность, так и низкая задержка передачи сообщения. Для одной из задач с коллегами из отдела системного программирования YADRO я оптимизировал часть такой связки, а именно — обмен прерываниями. В статье расскажу о дизайне нескольких подходов организации IQI, разберу внутреннее устройство QEMU и поделюсь, как оправдались наши ожидания. 

Читать далее

Про systemd и автозапуск десктопных приложений

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

После переезда на openSUSE 15.5 я столкнулся с некой странностью. Автозапускаемые после старта приложения стали падать при попытке перезапуска.

Читать далее

Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: загружаем платформу и верифицируем проект

Уровень сложностиСложный
Время на прочтение26 мин
Количество просмотров3.3K

Здравствуй, Хабр! На связи вновь Павел Панкратов — ведущий инженер-программист дивизиона искусственного интеллекта YADRO. Мы добрались до финала моего повествования о параллельном запуске двух операционных систем на FPGA с процессорной подсистемой.

В этой статье мы запустим подготовленный проект и верифицируем его. А в качестве бонуса посмотрим на один из способов разработки ПО под Soft-CPU, минуя IDE Vitis. Плюс загрузим ОС Soft-CPU с помощью QEMU.

Читать далее

Как awk заменяет 10 команд Bash

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

Привет, Хабр! Когда я только начинал работать с Linux, каждую задачу обрабатывал через кучку пайпов. Потом мой коллега сказал мне: "Завязывай с этим, попробуй awk". Ну, я попробовал. И это действительно удобно. Сегодня я расскажу, как awk может заменить несколько привычных команд bash.

Читать далее

Введение в сборку RPM-пакетов в ОС «Альт» Linux: основы и первый пример

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

Сборка пакетов под различные дистрибутивы имеет свои особенности. Речь не только про отличия типов пакетов, но и про детали сборки в родственных по формату пакетов дистрибутивах. В этом материале изложен опыт сборки простого rpm-пакета в системе ALT Linux. Материал может быть удобен как справочная страница при изучении темы сборки rpm-пакета инструментом rpmbuild в ОС «Альт».

Читать далее

Будущее КОМПАС API на Linux

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.9K

Продолжаем рассказывать, как идет портирование КОМПАС-3D на Linux (начало здесь). Сегодня речь про API и с вами Владимир Кузнецов, инженер‑программист по прикладным интерфейсам КОМПАС-3D.

До начала разработки нативной Linux‑версии КОМПАС-3D у нас был API экспортных функций, API5 и API7 под Windows. Когда возникла необходимость поддерживать КОМПАС на нескольких операционных системах, было принято решение создать кроссплатформенный API, который бы работал как на Windows, так и в ОС Linux. Рабочее название такого API — KsAPI.

Читать далее

Обнаружение «шумных соседей» с помощью eBPF

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

Команды подразделения Netflix Compute and Performance Engineering регулярно анализируют происшествия, связанные с падением производительности программ, работающих в нашей многоарендной среде. Первый шаг такого анализа заключается определении того, что является источником проблемы: приложение или инфраструктура. Надо отметить, что подобные изыскания часто усложняет одна неприятность, известная как проблема «шумного соседа» («noisy neighbor»). На нашей многоарендной вычислительной платформе Titus «шумный сосед» представляет собой контейнер или системный сервис, который интенсивно использует серверные ресурсы, что приводит к падению производительности близких к нему контейнеров. Обычно мы уделяем особое внимание использованию CPU, так как именно за этот ресурс чаще всего борются наши рабочие нагрузки и их «шумные соседи».

Читать далее

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

Библиотека EremexControls.NET для Avalonia UI — Большое обновление (v 1.1 EAP)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.2K

Библиотека Контролов EMX Controls для Avalonia UI позволяет вам создавать многофункциональные графические интерфейсы для Windows, Linux, macOS и WebAssembly. Почти полгода назад вышла первая версия контролов. С тех пор библиотека развивалась и расширялась – появились новые компоненты и новые функции. А сегодня у нас большая новость - мы выпускаем EAP (early-access preview) для версии 1.1.

Читать далее

Ричард Столлман, автор GCC и Emacs

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


Сложно найти человека, про которого ходит больше легенд, чем Ричард Столлман (RMS). Наверное, по количеству невероятных историй и анекдотов с ним может сравниться только Джефф Дин.

Причём многие невероятные истории о Столлмане — правда. Например, что он запрашивал веб-страницы wget-демоном по почте (для безопасности) и отказался от использования мобильных телефонов, которые называет портативными устройствами слежения. На своём переделанном ноутбуке Thinkpad x200 он в основном работает в консоли и старается не подключаться к веб-сайтам с собственной машины.

В 71 год Столлман борется с раком (успешно) и пострадал от травли за свои спорные высказывания и действия. Но его достижений хватит на десятки или сотни великих жизней. Он является автором компилятора GCC и текстового редактора Emacs, а также основателем проекта GNU, дополнением к которому стало ядро Linux, в результате чего появилась полноценная ОС.

Гений Столлмана опередил время. Только в 21 веке — с ползучим наступлением цифрового тоталитаризма, всеобщей слежки в духе «1984» и алгоритмизацией всех аспектов жизни — люди постепенно начинают понимать, что Ричард Столлман был прав.
Читать дальше →

Сказки дiда Панаса. Сказ о том, как злыдни дверь заднюю в ядра пингвинячьи прорубали

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров3.1K

Давно это было, сы́нки: в те времена, когда все знали, кто нужду свою справить в сеть всемирную, ынторнетом кличущуюся, вышел, по звукам характерным; Дональд Трамп ещё не в кабинете овальном сиживал, а роли второго плана в комедиях играл; а пынгвин юный, Линуксом кличущийся, от горшка был всего-то 2.4 ver-шка.


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

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

Сложности с отображением иконок рабочего стола

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.9K

Последние три недели я работал над рефакторингом и исправлением легаси-кода (самые старые части которого были написаны в 2013 году), отвечающего за позиционирование иконок в KDE Plasma, а также сохранение и загрузку этих данных.

Вот мой запрос на внесение изменений: plasma-desktop: Refactor icon positioner saving and loading.

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

И я никого в этом не виню. Код по своей природе склонен с течением времени искажаться, особенно в опенсорсных проектах, где его может изменять множество разных людей.

Бывало у вас такое, что провода наушников спутываются, когда вы убираете их в шкаф или кладёте ненадолго в карман? И с базами кода происходит нечто похожее, когда множество людей записывают в них изменения, исправляя баги друг друга. Каждый мыслит по-своему, поэтому вполне естественно, что всё со временем запутывается.

В итоге периодически кому-то нужно разгребать такую запутанную базу кода и подчищать её.
Читать дальше →

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 2

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.8K

Прошло уже достаточно времени с публикации моей предыдущей статьи. За это время я значительно улучшил приложение. Миграция проекта с WPF на Avalonia UI, появление версий для Windows и Linux, обновленный дизайн, работа с числами типа float, а также другие возможности появились в новой версии моего Modbus терминала.

Обо всем об этом, а также небольшие заметки о разработке читайте в продолжении статьи.

Читать далее

Проверяем фактор автобуса для опенсорсных проектов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

Из Википедии: фактор автобуса (англ. bus factor, либо truck factor) проекта — это мера сосредоточения информации среди отдельных членов проекта; фактор показывает количество участников проекта, после потери которых (в оригинале — «попадания» которых под автобус или грузовик, варианты: увольнения, заболевания, рождения у них ребёнка, наступления несчастного случая и других форс-мажорных обстоятельств) проект не сможет быть завершён оставшимися участниками.

Мотивация

Во всех компаниях, где я работал (в строительстве и разработке ПО), в тот или иной момент времени возникал вопрос «фактора автобуса» в управлении разработкой проектов.

Инженеру-строителю вычислить его было крайне сложно, потому что наша отчётная документация была сильно распределена между сотрудниками и существовал дефицит документации. Единственный раз, когда это стало очевидно, случился после увольнения одного из сотрудников — спустя полгода возник срочный запрос RFI (запрос информации) по чьему-то пакету расчётов (хотя официальный пакет должен быть подписан инженером-проектировщиком, а не инженером, непосредственно отвечающим за расчёты). После таких инцидентов нам обещали улучшить документацию, но это неизбежно отходило на второй план, когда все участники группы переходили на новые проекты даже без итогового совещания. Я был свидетелем того, как в долговременных проектах инженерный состав менялся на 100%, поэтому это ужасный антипаттерн.

В разработке ПО можно провести множество параллелей, но по природе нашей работы поставка выпущенного кода — это единственный способ измерения фактора автобуса. По крайней мере, именно её изучали многие исследователи, в том числе и в научной статье, имеющей большое количество цитирований (156, согласно Google Scholar!) с момента её публикации в 2016 году (препринт выпустили в 2015 году). Ша отправил мне статью, а после того, как мы обнаружили её исходные данные и исходный код, это стало идеальным проектом на выходные, который бы позволил, как минимум, получить представление об интересных метриках open source.

Читать далее

Добавление пользовательских иконок для типов MIME в Linux

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.3K

Привет! Меня зовут Станислав Ермохин, я руководитель группы методического обеспечения в команде КОМПАС-3D. По ходу подготовки версии КОМПАС-3D для Linux мы встречаемся с «очевидными и невероятными» ситуациями. Решением одной из них решили поделиться. Тем более, что в Рунете не удалось найти достаточно полного описания, как назначать пользовательские иконки для файлов. Вся информация разрозненная, отрывочная или устаревшая. 

Читать далее

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