В предыдущей статье был описан процесс настройки IDE Eclipse для кросс-платформенной отладки загрузчика U-boot. В данной статье описывается устранение последних ограничений, препятствовавших полноценной его отладки. После чего, получив возможность полноценной отладки кода, пройдемся по всей процедуре инициализации загрузчика от первой инструкции и до конца в режиме отладки.
Разработка под Linux *
Пишем под *nix
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Новости
Создаем начальную миграцию с alembic для существующей базы
Создание начальной миграции для существующей базы с alembic
PINE64: не PinePro единым. Что еще может предложить разработчик «свободного» Linux-телефона
Компания PINE64 известна, в первую очередь, своими телефонами. До недавнего времени нужно было бы писать «телефон», но на днях в дополнение к первой модели, PinePhone, вышла вторая — PinePro.
Оба устройства весьма популярны среди гиков, но у компании есть и другие девайсы, которые также представляют интерес для многих из нас. Вот о них сегодня и поговорим, а один гаджет даже покажем более подробно, поскольку мы его недавно купили.
Минимизация файла ELF – попробуем в 2021?
Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Когда конкуренты точнее, быстрее и с наименьшими затратами удовлетворяют запросы клиентов и держат их в пределах своей экосистемы, быстрый запуск новых удобных финансовых сервисов и их масштабируемость — это вопрос выживания.
Неистовые потуги или как поиграть на midi-клавиатуре в стиле linux-way
Относительно короткая история о том как я хотел поиграть на midi-клавиатуре, но не совладал с аудиоподсистемами линуха...
Распознание длинных аудио сервисом Yandex SpeechKit из командной строки bash/shell через API
Довольно давно Яндекс предоставляет платные сервисы по синтезу и распознанию речи. К сожалению, интерфейса для регулярного использования сервисов нет, поэтому на досуге написал скрипт, который позволяет через консоль отправлять запросы и получать результаты.
О чем нельзя забывать при работе с POSIX-сигналами
Как и любой другой инструмент, POSIX-сигналы имеют свои правила, как их использовать грамотно, надежно и безопасно. Они испокон веков описаны в самом стандарте POSIX, в стандартах языков программирования, в manpages, однако и по сей день я нередко встречаю связанные с этим грубые ошибки даже в коде опытных разработчиков, что в коммерческих проектах, что в открытых. Поэтому давайте поговорим о важном еще раз.
Старый фотик + bash = таймлапс
Думаю у многих из нас, в шкафу пылился старый зеркальный фотоаппарат, типа Canon EOS 400D. Он как чемодан без ручки: выбросить жалко, продать смысла нет, и использовать вряд ли будешь. Достал его так одним вечером, и подумал: вещь хорошая и вполне годная для всяких опытов. И сразу загорелся применить его во всяких своих самоделках. А что, весьма хорошо фотографирует из коробки, достаточно широкий спектр всяких регулировок, осталось только научиться с ним работать. Всего-то подружить его с компьютером, да Linux, и дело в шляпе! В результате у нас получается просто непаханое поле для фотографических экспериментов и применения в своих придумках. Давайте же поглядим, как это можно сделать и что получилось из таких экспериментов.
OTA обновление устройств с Linux
OTA A/B обновление образа rootfs для IoT устройств с Linux при помощи проекта Mender. Как обновить образ системы на множестве удалённых устройств. Демонстрация на примере Raspberry Pi.
Модификация ядра Linux: добавляем новые системные вызовы
В этой статье мы научимся изменять ядро Linux, добавим собственные уникальные системные вызовы и в завершении соберем ядро с новой функциональностью.
Принцип работы планировщика задач в Linux
Планирование – это процесс распределения ресурсов системы для выполнения задач. В статье мы рассмотрим его вариант, в котором ресурсом является одно или несколько ядер процессора, а задачи представлены потоками или процессами, которые нужно выполнить.
Сборка Linux и CPSS на отладке Marvell RD-AC3X-48G4X2XL-A с Ethernet-коммутатором Prestera DX
Мы подготовили статью-гайд для пошаговой сборки и запуска базовой прошивки с 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. Эта операционка расширяет функции центра обработки данных в сложных системах, например, в системах интеллектуального хранения данных и машинного обучения.
Разработка кроссплатформенного ядра геометрического моделирования
В августе мы, команда 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. Но ядро развивалось, со временем к нему стали предъявляться требования и пожелания, которые мы не могли игнорировать, если хотели иметь действительно лучший продукт в своем классе. Ниже рассказ о том, как мы портировали ядро на различные ОС и платформы.
Архитектура приложения моего защищенного чата
В этой статье я хочу описать архитектуру своего приложения. Здесь будут представлен как графический клиент, так и сервер.
Оба приложения написаны на 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 эффект и анимация контента слайдов
Приветствую вас, дорогие любители и знатоки Python! Прошло пол года с момента моей последней публикации на Хабре. Был погружен в пучину обстоятельств и сторонние проекты. Начиная с сегодняшней, статьи будут выходить с периодичностью раз в месяц. В этой статье мы рассмотрим как создать и анимировать контент для слайдов а также сделать parallax эффект для фонового изображения с помощью фреймворка Kivy и библиотеки KivyMD.
Linux Page Cache для SRE: основные файловые операции и syscall'ы (часть 1)
В этой серии постов я хотел бы поговорить о Linux Page Cache. Я считаю, что данные знания теори и инструментов жизненно необходимы и важны для каждого SRE. Общее понимание как работает Page Cache помогает и в рутинных повседневных задачах, и в экстренной отладке на продакшене. При этом Page Cache часто оставляют без внимания, а ведь его лучшее понимание. как правило, приводит к:
- более точному планированию емкости системы и лимитов сервисов и контейнеров;
- улучшенным навыкам отладки приложений, интенсивно использующих память и диски (СУБД и храанилища данных);
- созданию безопасных и предсказуемых сред выполнения специальных задач, связанных с памятью и/или вводом-выводом (например: сценарии резервного копирования и восстановления, rsync
однострочники и т.д.).
Я покажу, какие утилиты вы можете использовать, когда имеете дело с задачами и проблемами, связанными с Page Cache, как правильно к ним подходить, и как понять реальное использование памяти.
Дебажим U-boot на реальном железе
Продолжение предыдущей статьи, в которой мы ускорили разработку под embedded linux. Рабочая станция + sftp сервер + nfs сервер ускорили на порядок (10х) доставку изменений кода на целевое железо. Теперь не нужно часами компилировать код. В этой статье продолжаем очеловечивать разработку. На этот раз прикручиваем полноценную графическую IDE и пошаговую отладку кода на целевом железе с помощью программатора J-Link. Но пока только загрузчика U-boot. И автоматизируем развертывание рабочей среды разработчика с помощью Docker.
Компиляция без предупреждений — что случилось в Linux-сообществе
Пару недель назад Линус Торвальдс активировал флаг -Werror для всех сборок ядра. Мнения сообщества касательно этого решения разделились. Против даже высказался разработчик фронтенда Clang и фреймворка LLVM. Обсуждаем ситуацию.
Кросс компиляция пакета для роутера на примере Qbittorrent
Добрый день друзья. Как-то мне захотелось установить Qbittorrent на мой роутер который оснащен OpenWRT. Конечно создатели OpenWRT уже предусмотрели возможность сборки кастомных покетов об этом можно почитать вот тут: https://habr.com/ru/company/ruvds/blog/530984/ . Но данный способ очень долгий, приходится скачивать исходники OpenWRT, компилировать тулчайн и прочее. И я подумал а почему-бы просто не скачать тулчайн и собрать проек обычным образом под катом мой опыт.
Вклад авторов
-
dlinyj 971.6 -
Seleditor 640.0 -
Andrey2008 636.2 -
m1rko 537.2 -
maisvendoo 425.0 -
olegator99 335.0 -
redhatrussia 309.0 -
saipr 263.0 -
it_man 256.0 -
temujin 251.0