Обновить
340.01

Linux *

Пишем под *nix

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

Работа с квалифицированными сертификатами в свете новой редакции Приказа №795 ФСБ РФ от 21.01.2021. Часть II

Время на прочтение5 мин
Количество просмотров5.2K
imageПосле опубликования статьи, посвящённой требованиям Приказа №795 ФСБ России в редакции от 29 января 2021 года, меня не покидало чувство её незавершённости. Это чувство было связано с тем, что в статье ни слова не было сказано про утилиту CAFL63, которая позволяет разворачивать удостоверяющие центры. И естественным является то, что её тоже необходимо привести в соответствие с новыми требованиями.
Читать дальше →

Настраиваем любой Linux под себя одной командой

Время на прочтение5 мин
Количество просмотров29K

Иногда приходится настраивать различные *unix системы: персональные компьютеры, VPS, Raspberry Pi и так далее. Но когда их становится много, настраивать их становится всё сложнее и сложнее. Поэтому хочется автоматизировать этот процесс. В данной статье я расскажу, как я решил подобную проблему, расскажу про некоторые существующие решения, а также покажу магию bash!

Читать далее

Настройка VSCode для программирования AVR в Linux

Время на прочтение9 мин
Количество просмотров13K

Всем, кто занимается электроникой, так или иначе знакомы контроллеры AVR. Начинающим они знакомы, по большей части, за счёт экосистемы Arduino. В данной статье я попытаюсь рассказать начинающим программистам, как можно в Linux просто настроить VSCode для работы с контроллерари AVR и получить удобную навигацию по коду, приятную подсветку синтаксиса и прочие рабости, которые даёт VSCode. Это даст желающим возможность перейти от экосистемы Arduino к прямой работе с процессорами.

Читать далее

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

Время на прочтение8 мин
Количество просмотров72K

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

Читать далее

IO_URING. Часть 1. Введение

Время на прочтение13 мин
Количество просмотров42K

Всем привет! Наверное, многие уже слышали о новом интерфейсе ядра Linux — io_uring. Это новый способ работы с асинхронным I/O (и не только) в Linux. Кстати, новый он не только из-за даты выхода в свет, но и в плане подходов, которые предлагает разработчику.

Заинтересовало? Более подробно разберемся под катом.

Читать далее

Использование git pw клиента для patchwork

Время на прочтение4 мин
Количество просмотров1.2K

При bleeding edge разработке или просто в рамках экспериментов, приходиться добавлять патчи прямиком из maillists.

Скачивать серию вручную и сохранять в mbox можно действительно озвереть, даже не смотря на то, что можно спокойно выделить патчи (например в mutt) по одному и сохранить всю пачку (ключевое слово здесь спокойно).

Тем у кого горит, предлагаю воспользоваться git-pw.

Читать далее

s/bash/zsh/g

Время на прочтение13 мин
Количество просмотров8.3K
Как думаете — сработает такая команда?

bash% echo $(( .1 + .2 ))
bash: .1 + .2 : syntax error: operand expected (error token is ".1 + .2 ")

Как видите, bash выполнять её не хочет, а вот в zsh она обрабатывается совершенно нормально:

zsh% echo $(( .1 + .2 ))
0.30000000000000004      # Ну, "работает" в той мере, в какой работает IEEE-754.

В bash просто нельзя выполнять вычисления с дробными числами, не прибегая при этом к bc, dc или к каким-нибудь хакам. В сравнении с возможностью просто воспользоваться конструкцией вида a + b всё это кажется некрасивым, медленным и сложным.


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

Пошаговый запуск программы в Linux x86, или как добраться до main()?

Время на прочтение18 мин
Количество просмотров25K


Статья предназначена для тех, кто хочет понять процесс загрузки программ в Linux. В частности, здесь пойдет речь о динамической загрузке файлов ELF x86. На основе изложенной информации вы сможете лучше понять, как устранять проблемы, возникающие в программе еще до запуска main.
Читать дальше →

Педальку в пол, или как ещё ускорить CPU-bound приложение?

Время на прочтение29 мин
Количество просмотров7K

Зачем я это читаю?


TL;DR:


  • Переложив секции кода и данных программы на большие страницы можно существенно ускорить приложение (у нас получилось до +10%) не трогая исходный код.
  • Можно быстро проверить ничего не перекомпилируя, детали здесь.
  • Финальное решение оперирует "классическими" большими страницами (не transparent huge pages), поэтому в какой-то степени его можно назвать дальнейшим развитием libhugetlbfs.
Читать дальше →

Активная конкуренция за RAM в Android

Время на прочтение4 мин
Количество просмотров7.3K

Разработав инструмент для визуализации RAM и zRAM в Android, я обнаружила, что в телефонах происходит активная конкуренция за ресурсы. И если процессу понадобятся ресурсы, которые уже заняты кем-то другим, он отберет их, что может привести к критическим ситуациям и конфликтам оборудования.

Пользовались ли вы когда-нибудь такими утилитами как htop, top, vmstat? Если у вас вообще установлен Linux, то скорее всего да. И они действительно хорошо показывают статистику использования ресурсов в ОС. Я исследовала операционные системы, и мне не хватало понимания того, как реально выглядит физическое адресное пространство: какие конкретно адреса заняты, какие свободны, что происходит, если процессы запрашивают одни и те же адреса, как часто это происходит.

Была гипотеза, что в Android (и в Linux), возникает активная конкуренция за ресурсы. Спойлер из названия статьи: она подтвердилась.

Читать далее

Oracle Call Interface: как написать клиентское приложение на Си

Время на прочтение8 мин
Количество просмотров5.7K

В этой статье я расскажу, как написать клиентское приложение для БД Oracle, используя библиотеку OCI и язык Си.

Читать далее

Возвращаем к жизни калькулятор HP Prime G2

Время на прочтение10 мин
Количество просмотров15K

Калькулятор с восстановленной прошивкой.

В предыдущих сериях:


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

В результате, когда в очередной раз наткнулся в шкафу на лоток с этим барахлом, принял волевое решение вернуть его к жизни, в качестве калькулятора, каким он и был в девичестве.
Как обычно, путь был тернист, даже был сформирован мердж реквест автору перепрошивки линукса, но обо всём по порядку.
Читать дальше →

Python GUI. Библиотека KivyMD. Использование Blur эффекта

Время на прочтение8 мин
Количество просмотров15K

Приветствую вас, дорогие любители и знатоки Python! Сегодня как всегда будем делать обзор фреймворка для кроссплатформенной разработки Kivy и библиотеки виджетов в стиле Google Material Design для фреймворка Kivy - KivyMD. В этой статье мы рассмотрим как сделать blur эффект отдельных компонентов интерфейса пользователя. Я уже делал похожий обзор в статье Материальный Python. Кастомные карточки с OpenGL-эффектами, но нижеследующий материал несколько сложнее и в прямом смысле динамичнее. Что ж, начнем...

Читать далее

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

Написание скриптов для tmux

Время на прочтение3 мин
Количество просмотров13K
Мне, когда я пользуюсь tmux, часто надо открывать похожие рабочие пространства. Например, мне всегда нужно выводить последние строки пары файлов журналов в панели, или мне нужно открывать и vim, и mysql. Бывает, что мне нужно и что-то другое.



Если вы попробуете найти сведения об открытии рабочих пространств tmux, то почти гарантированно обнаружите советы по использованию программы-обёртки вроде tmuxinator, tmux-resurrect или tmux-continuum. Эти программы, возможно, хороши, но я предпочитаю что-нибудь попроще.
Читать дальше →

Сортировка файлов в командной оболочке Linux

Время на прочтение5 мин
Количество просмотров58K
Ищете новый способ организации своих файлов и выполнения над ними каких-либо операций? Тем, кто работает с компьютерами, часто надо что-то отсортировать. Например, список файлов. Сортировка файлов с помощью Bash-команд sort и ls поможет вам навести порядок в своих материалах. Здесь мы поговорим об основах сортировки файлов и их содержимого в Linux.


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

Сравнение RPA от UiPath и ROBIN 2.0 как способ полюбить российское ПО

Время на прочтение5 мин
Количество просмотров7.3K
Принято считать, что российское ПО традиционно уступает западным программам. Для многих это если не аксиома, то достаточно давно доказанная теорема. В особенности, когда речь идёт о корпоративных продуктах. Я был также уверен в этом и считал, что в большинстве случаев российские продукты корпоративного уровня делают для госсектора. Т.е. для того, чтобы выполнить требования по импортозамещению. Так было до недавнего времени, когда в моей компании не понадобилось автоматизировать рутинные процессы и я не озадачился выбором RPA.

Под катом хочу поделиться результатами анализа, который мы провели с коллегами. Статья не претендует на детальный сравнительный обзор, скорее кейс по выбору RPA под конкретные требования, который познакомит с некоторыми востребованными сегодня функциями таких платформ.
Читать дальше →

U-boot. Процедура инициализации по шагам

Время на прочтение6 мин
Количество просмотров35K

В предыдущей статье был описан процесс настройки IDE Eclipse для кросс-платформенной отладки загрузчика U-boot. В данной статье описывается устранение последних ограничений, препятствовавших полноценной его отладки. После чего, получив возможность полноценной отладки кода, пройдемся по всей процедуре инициализации загрузчика от первой инструкции и до конца в режиме отладки.

Читать далее

Создаем начальную миграцию с alembic для существующей базы

Время на прочтение4 мин
Количество просмотров84K

Создание начальной миграции для существующей базы с alembic

Читать далее

PINE64: не PinePro единым. Что еще может предложить разработчик «свободного» Linux-телефона

Время на прочтение4 мин
Количество просмотров23K

Компания PINE64 известна, в первую очередь, своими телефонами. До недавнего времени нужно было бы писать «телефон», но на днях в дополнение к первой модели, PinePhone, вышла вторая — PinePro.

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

Минимизация файла ELF – попробуем в 2021?

Время на прочтение18 мин
Количество просмотров11K

Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Читать дальше →

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