Фонд STF (Sovereign Tech Fund) представил новые открытые проекты, которым решено предоставить финансирование. Организация учреждена в Германии для стимулирования развития открытой цифровой инфраструктуры и экосистем с открытым исходным кодом. Фонд создан на средства, предоставленные Министерством экономики и защиты климата Германии, и курируется Федеральным агентством прорывных инноваций SPRIND (Federal Agency for Breakthrough Innovation). Отмечается, что инвестирование в открытое ПО способствует развитию инноваций в Германии и Европе, а также повышает конкурентоспособность, продуктивность и возможность продвижения инноваций в малых и средних предприятиях.
Новость: https://www.opennet.ru/opennews/art.shtml?num=64105
#opensource
Новость: https://www.opennet.ru/opennews/art.shtml?num=64105
#opensource
🔥2❤1
Debian прекращает поддержку архитектур armel и mips64el
Разработчики проекта Debian объявили об удалении портов для архитектур mips64el и armel (ARM EABI) из репозиториев unstable и experimental. В следующей ветке Debian 14 данные архитектуры поддерживаться не будут. Из плат, в которых использовалась архитектура armel, отмечаются Raspberry Pi 1, Raspberry Pi Zero и Raspberry Pi Zero W.
Новость: https://www.opennet.ru/opennews/art.shtml?num=64182
#debian
Разработчики проекта Debian объявили об удалении портов для архитектур mips64el и armel (ARM EABI) из репозиториев unstable и experimental. В следующей ветке Debian 14 данные архитектуры поддерживаться не будут. Из плат, в которых использовалась архитектура armel, отмечаются Raspberry Pi 1, Raspberry Pi Zero и Raspberry Pi Zero W.
Новость: https://www.opennet.ru/opennews/art.shtml?num=64182
#debian
😢11😱5🔥2❤1
В Debian намерены добавить Rust в число обязательных зависимостей к APT
Джулиан Андрес Клоде (Julian Andres Klode), основной сопровождающий проект APT, объявил о решении добавить код на языке Rust в пакетный менеджер APT, а также включить в число обязательных зависимостей компилятор Rust, стандартную библиотеку Rust и PGP-инструментарий от проекта Sequoia, написанный на Rust. Изменения намерены реализовать не раньше мая 2026 года, чтобы дать разработчикам портов Debian полгода на реализацию корректной работы инструментария Rust или сворачивание порта.
Новость: https://www.opennet.ru/opennews/art.shtml?num=64164
#debian
Джулиан Андрес Клоде (Julian Andres Klode), основной сопровождающий проект APT, объявил о решении добавить код на языке Rust в пакетный менеджер APT, а также включить в число обязательных зависимостей компилятор Rust, стандартную библиотеку Rust и PGP-инструментарий от проекта Sequoia, написанный на Rust. Изменения намерены реализовать не раньше мая 2026 года, чтобы дать разработчикам портов Debian полгода на реализацию корректной работы инструментария Rust или сворачивание порта.
Новость: https://www.opennet.ru/opennews/art.shtml?num=64164
#debian
🥴22💊9😱5❤2🤣2👍1
GitHub опубликовал отчёт с анализом статистики за 2025 год. Основные тенденции.
Новость: https://www.opennet.ru/opennews/art.shtml?num=64135
#misc
Новость: https://www.opennet.ru/opennews/art.shtml?num=64135
#misc
🤷♂2🍌2
Опубликовано официальное десктоп-приложение Яндекс Музыка для Linux
Новость: https://www.opennet.ru/opennews/art.shtml?num=64126
#misc
Новость: https://www.opennet.ru/opennews/art.shtml?num=64126
#misc
❤🔥13🔥6🤣5👎2🌚2
Perl
Perl — это интерпретируемый, открытый язык общего назначения (двойная лицензия Artistic/GPL), известный мощной обработкой текста и регулярными выражениями. Портируемый, с огромным репозиторием модулей CPAN.
Где и для чего его используют:
- Администрирование и DevOps: скрипты для автоматизации, бэкапов, мониторинга, cron-задачи.
- Обработка логов и данных: парсинг, фильтрация, отчеты, ETL-пайплайны.
- Системные утилиты: множество исторических инструментов дистрибутивов написаны на Perl.
- Веб (исторически): CGI/старые веб-приложения, поддержка унаследованных систем.
- Наука/биоинформатика: быстрый прототипинг анализа данных.
- Работа с БД: через модуль DBI и драйверы.
Плюсы:
- Очень сильные регулярные выражения и "текстомолотилка".
- Богатая экосистема модулей (CPAN).
- Кроссплатформенность и зрелость.
Минусы/реалии:
- Код часто труднее читать и поддерживать.
- Сообщество и популярность ниже, чем у Python; реже выбирают для новых проектов.
Итог: Perl остаётся полезным в Linux для быстрой автоматизации и обработки текстов, особенно в существующей инфраструктуре, хотя для новых проектов чаще выбирают Python.
#misc
Perl — это интерпретируемый, открытый язык общего назначения (двойная лицензия Artistic/GPL), известный мощной обработкой текста и регулярными выражениями. Портируемый, с огромным репозиторием модулей CPAN.
Где и для чего его используют:
- Администрирование и DevOps: скрипты для автоматизации, бэкапов, мониторинга, cron-задачи.
- Обработка логов и данных: парсинг, фильтрация, отчеты, ETL-пайплайны.
- Системные утилиты: множество исторических инструментов дистрибутивов написаны на Perl.
- Веб (исторически): CGI/старые веб-приложения, поддержка унаследованных систем.
- Наука/биоинформатика: быстрый прототипинг анализа данных.
- Работа с БД: через модуль DBI и драйверы.
Плюсы:
- Очень сильные регулярные выражения и "текстомолотилка".
- Богатая экосистема модулей (CPAN).
- Кроссплатформенность и зрелость.
Минусы/реалии:
- Код часто труднее читать и поддерживать.
- Сообщество и популярность ниже, чем у Python; реже выбирают для новых проектов.
Итог: Perl остаётся полезным в Linux для быстрой автоматизации и обработки текстов, особенно в существующей инфраструктуре, хотя для новых проектов чаще выбирают Python.
#misc
👍14🤣3👎2🔥2🐳1
Ruby
Интерпретируемый, открытый язык с упором на простоту и удовольствие от кода. Имеет менеджеры версий (rbenv/rvm), пакетный менеджер RubyGems, интерактивную консоль IRB.
Где полезен:
- Веб-разработка: Ruby on Rails, Sinatra — быстрый старт, много готовых решений.
- DevOps/инфраструктура: Chef, Puppet, Vagrant, Homebrew (частично) — экосистема сильно связана с Ruby.
- Автоматизация и CLI: скрипты, парсинг, генераторы статических сайтов (Jekyll), утилиты.
- Тестирование: RSpec, Minitest — удобные фреймворки.
Плюсы:
- Очень читаемый, лаконичный синтаксис, мощная стандартная библиотека.
- Огромное число гемов (RubyGems), зрелый Rails-стек.
- Сильная метапрограммируемость.
Минусы/реалии:
- Производительность обычно ниже, чем у Go/Java.
- "Магия" Rails и метапрограммирование усложняют отладку в больших проектах.
- Требует управления версиями (rbenv/rvm) для избегания конфликтов.
Сложность:
- Входной порог низкий; писать просто.
- Глубокие Rails-проекты и метапрограммирование — средняя/выше средней сложность.
Итог: отличный выбор на Linux для веба (Rails), инструментов DevOps и быстрых CLI-скриптов; удобен и продуктивен, если не критична максимальная производительность.
#misc
Интерпретируемый, открытый язык с упором на простоту и удовольствие от кода. Имеет менеджеры версий (rbenv/rvm), пакетный менеджер RubyGems, интерактивную консоль IRB.
Где полезен:
- Веб-разработка: Ruby on Rails, Sinatra — быстрый старт, много готовых решений.
- DevOps/инфраструктура: Chef, Puppet, Vagrant, Homebrew (частично) — экосистема сильно связана с Ruby.
- Автоматизация и CLI: скрипты, парсинг, генераторы статических сайтов (Jekyll), утилиты.
- Тестирование: RSpec, Minitest — удобные фреймворки.
Плюсы:
- Очень читаемый, лаконичный синтаксис, мощная стандартная библиотека.
- Огромное число гемов (RubyGems), зрелый Rails-стек.
- Сильная метапрограммируемость.
Минусы/реалии:
- Производительность обычно ниже, чем у Go/Java.
- "Магия" Rails и метапрограммирование усложняют отладку в больших проектах.
- Требует управления версиями (rbenv/rvm) для избегания конфликтов.
Сложность:
- Входной порог низкий; писать просто.
- Глубокие Rails-проекты и метапрограммирование — средняя/выше средней сложность.
Итог: отличный выбор на Linux для веба (Rails), инструментов DevOps и быстрых CLI-скриптов; удобен и продуктивен, если не критична максимальная производительность.
#misc
❤19👎18🐳3🤣2
Fail2ban
Это маленькая утилита‑охранник, которая защищает сервер от перебора паролей и подозрительной активности. Она следит за логами (например, sshd) и, если видит слишком много неудачных попыток входа, временно блокирует IP через Firewall. Если у вас есть сервер, советую настроить эту утилиту, очень хорошо защищает от украинских скрипт-кидди (которые ничего не могут, кроме как позориться на весь мир), ну и в подобных случаях.
Зачем нужен для SSH:
- защищает от brute‑force
- снижает нагрузку от ботов
- не требует сложной настройки
- автоматически банит подозрительные IP
Установка:
Запуск и автозагрузка:
-> Базовая настройка
Не изменяй
Минимальная настройка для SSH в
bantime — на сколько секунд банить
maxretry — сколько попыток можно сделать
Применить настройки:
-> Проверки
Статус сервиса:
Статус конкретной тюрьмы (ssh):
Разбанить IP:
Где полезен кроме SSH:
- защита nginx
- защита nextcloud
- защита vsftpd и postfix
- фильтрация подозрительных паттернов в логах
#security #utils
Это маленькая утилита‑охранник, которая защищает сервер от перебора паролей и подозрительной активности. Она следит за логами (например, sshd) и, если видит слишком много неудачных попыток входа, временно блокирует IP через Firewall. Если у вас есть сервер, советую настроить эту утилиту, очень хорошо защищает от украинских скрипт-кидди (которые ничего не могут, кроме как позориться на весь мир), ну и в подобных случаях.
Зачем нужен для SSH:
- защищает от brute‑force
- снижает нагрузку от ботов
- не требует сложной настройки
- автоматически банит подозрительные IP
Установка:
$ apt-get install fail2ban
Запуск и автозагрузка:
$ systemctl enable fail2ban
$ systemctl start fail2ban
-> Базовая настройка
Не изменяй
/etc/fail2ban/jail.conf — создавай локальный файл:$ cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Минимальная настройка для SSH в
/etc/fail2ban/jail.local:[sshd]
enabled = true
filter = sshd
port = ssh
maxretry = 5
bantime = 600
logpath = /var/log/auth.log
bantime — на сколько секунд банить
maxretry — сколько попыток можно сделать
Применить настройки:
$ systemctl restart fail2ban
-> Проверки
Статус сервиса:
$ fail2ban-client status
Статус конкретной тюрьмы (ssh):
$ fail2ban-client status sshd
Разбанить IP:
$ fail2ban-client set sshd unbanip 1.2.3.4
Где полезен кроме SSH:
- защита nginx
- защита nextcloud
- защита vsftpd и postfix
- фильтрация подозрительных паттернов в логах
#security #utils
👍24❤13✍7🤨4👎2🥴1🐳1💊1
batcat
Это утилита для удобного просмотра файлов в терминале. Это расширенная версия команды cat:
- нумерация строк
- подсветка синтаксиса
- поддержка тем оформления
- просмотр с прокруткой (через less)
Обычно устанавливается как bat, но в Debian/Ubuntu называется batcat.
#utils
Это утилита для удобного просмотра файлов в терминале. Это расширенная версия команды cat:
- нумерация строк
- подсветка синтаксиса
- поддержка тем оформления
- просмотр с прокруткой (через less)
Обычно устанавливается как bat, но в Debian/Ubuntu называется batcat.
#utils
❤🔥8👍6✍4🤔2👎1🥴1💊1
Выполнение команд в SubShell
Команда выполняется в текущем Shell:
Команда выполняется во временном дочернем процессе — в SubShell:
SubShell — это отдельная копия Shell, которая запускается для команд в круглых скобках. После выполнения команд внутри ( ) Subshell завершается, и все изменения (переменные, текущий каталог и т.п.) не сохраняются в основном Shell.
Пример изоляции:
Subshell позволяет временно менять окружение, не затрагивая основной shell-сеанс.
#shell
Команда выполняется в текущем Shell:
$ ls
Команда выполняется во временном дочернем процессе — в SubShell:
$ (ls)
SubShell — это отдельная копия Shell, которая запускается для команд в круглых скобках. После выполнения команд внутри ( ) Subshell завершается, и все изменения (переменные, текущий каталог и т.п.) не сохраняются в основном Shell.
Пример изоляции:
$ cd /tmp
$ (cd /; ls)
$ pwd # по‑прежнему /tmp
Subshell позволяет временно менять окружение, не затрагивая основной shell-сеанс.
#shell
👍27❤2
Управление фоновыми задачами в Shell
Запускает команду в фоне:
Список процессов:
Список фоновых задач:
Только PID фоновых задач:
Отправить задачу в фон:
Вернуть задачу с номером 1 на передний план:
Продолжить выполнение в фоне:
#shell
Запускает команду в фоне:
$ xlogo &
Список процессов:
$ ps
Список фоновых задач:
$ jobs
Только PID фоновых задач:
$ jobs -p
Отправить задачу в фон:
Ctrl + Z # остановить задачу (перевести в состояние Stopped)
Вернуть задачу с номером 1 на передний план:
$ fg %1
Продолжить выполнение в фоне:
$ bg %1
#shell
👍17❤1
git-cherry-pick
Это команда, которая берет конкретный коммит из одной ветки и переносит его в текущую ветку, не сливая всю ветку целиком.
Для чего используется:
• Чтобы перенести один нужный коммит без merge всей ветки.
• Чтобы быстро забрать фикс или изменение из другой ветки.
• Чтобы исправить баги в релизной ветке, не таща лишнюю историю.
-> Как использовать
(перед этим нужно найти коммит, который нужно влить в ветку)
Переход в нужную ветку:
Применить нужный коммит по его хэшу:
Отправить результат в репозиторий:
Грубо говоря: cherry-pick — это "взять точечно один коммит и вставить его сюда".
#git
Это команда, которая берет конкретный коммит из одной ветки и переносит его в текущую ветку, не сливая всю ветку целиком.
Для чего используется:
• Чтобы перенести один нужный коммит без merge всей ветки.
• Чтобы быстро забрать фикс или изменение из другой ветки.
• Чтобы исправить баги в релизной ветке, не таща лишнюю историю.
-> Как использовать
(перед этим нужно найти коммит, который нужно влить в ветку)
Переход в нужную ветку:
$ git checkout <branch>
Применить нужный коммит по его хэшу:
$ git cherry-pick <hash>
Отправить результат в репозиторий:
$ git push
Грубо говоря: cherry-pick — это "взять точечно один коммит и вставить его сюда".
#git
👍8✍2🔥1
Система контроля версий
Система контроля версий (СКВ) - это система, регистрирующая изменения в одном или нескольких файлах для того чтобы была возможность вернуться к прежним версиям этих файлов. Под версионный контроль можно поместить файлы практически любого типа.
* Локальные системы контроля версий
* Централизованные системы контроля версий (CVS, SVN)
* Распределенные системы контроля версий (GIT)
Локальные системы контроля версий
Работают на одном компьютере и хранят историю изменений только локально. Примеры — простые инструменты, сохраняющие разницы файлов. Подход удобен для одиночной работы, но неудобен при командной разработке.
Централизованные системы контроля версий (CVS, SVN)
Централизованные системы контроля версий используют один главный сервер, на котором хранится весь репозиторий и вся история изменений, а разработчики получают только рабочие копии файлов и выполняют все операции — такие как коммиты, обновления или просмотр истории — через этот сервер. Такой подход упрощает администрирование и обеспечивает единое место управления проектом, но делает работу полностью зависимой от доступности сервера: без подключения разработчик не может ни сохранить свои изменения, ни получить новые.
Распределённые системы контроля версий (GIT)
Распределённые системы контроля версий дают каждому разработчику полный клон репозитория со всей историей, что позволяет выполнять коммиты, создавать ветки, экспериментировать и просматривать историю полностью локально, без доступа к сети. Обмен изменениями происходит только при необходимости, через push и pull, а отсутствие единого центра делает систему устойчивой: даже если удалённый сервер недоступен, работа продолжается, а множество локальных копий значительно упрощают параллельную и командную разработку.
#git #theory
Система контроля версий (СКВ) - это система, регистрирующая изменения в одном или нескольких файлах для того чтобы была возможность вернуться к прежним версиям этих файлов. Под версионный контроль можно поместить файлы практически любого типа.
* Локальные системы контроля версий
* Централизованные системы контроля версий (CVS, SVN)
* Распределенные системы контроля версий (GIT)
Локальные системы контроля версий
Работают на одном компьютере и хранят историю изменений только локально. Примеры — простые инструменты, сохраняющие разницы файлов. Подход удобен для одиночной работы, но неудобен при командной разработке.
Централизованные системы контроля версий (CVS, SVN)
Централизованные системы контроля версий используют один главный сервер, на котором хранится весь репозиторий и вся история изменений, а разработчики получают только рабочие копии файлов и выполняют все операции — такие как коммиты, обновления или просмотр истории — через этот сервер. Такой подход упрощает администрирование и обеспечивает единое место управления проектом, но делает работу полностью зависимой от доступности сервера: без подключения разработчик не может ни сохранить свои изменения, ни получить новые.
Распределённые системы контроля версий (GIT)
Распределённые системы контроля версий дают каждому разработчику полный клон репозитория со всей историей, что позволяет выполнять коммиты, создавать ветки, экспериментировать и просматривать историю полностью локально, без доступа к сети. Обмен изменениями происходит только при необходимости, через push и pull, а отсутствие единого центра делает систему устойчивой: даже если удалённый сервер недоступен, работа продолжается, а множество локальных копий значительно упрощают параллельную и командную разработку.
#git #theory
👍3🤣1
Отладка ядра
Отладка ядра Linux напрямую (например, через
Линус Торвальдс много раз подчёркивал: ядро — это не та система, которую нужно отлаживать классическим способом (breakpoint -> step -> step). Правильный подход — использовать трассировки и профилирование. То есть не "останавливать мир", а собирать информацию во время работы системы.
Итог: полноценная пошаговая отладка ядра на той же машине, где оно выполняется, невозможна и бессмысленна. Правильный путь — инструменты вроде
#kernel
Отладка ядра Linux напрямую (например, через
gdb и vmlinux) обычно малоэффективна. Даже если загрузить символьный файл, большинство переменных будет отображаться как optimized out. Это происходит потому, что ядро нельзя собрать с флагом -O0: без оптимизаций оно будет слишком медленным, нестабильным и во многих случаях просто не загрузится. Поэтому vmlinux полезен в основном для просмотра структуры данных и отдельных символов, но не для полноценной пошаговой отладки.Линус Торвальдс много раз подчёркивал: ядро — это не та система, которую нужно отлаживать классическим способом (breakpoint -> step -> step). Правильный подход — использовать трассировки и профилирование. То есть не "останавливать мир", а собирать информацию во время работы системы.
Итог: полноценная пошаговая отладка ядра на той же машине, где оно выполняется, невозможна и бессмысленна. Правильный путь — инструменты вроде
printk, ftrace, perf, bpftrace, kprobes, tracepoints. Они дают детальную картину происходящего без остановки системы.#kernel
👍10✍4👎3
Как модули попадают в ядро Linux
Когда ядро обнаруживает необходимость в тех или иных функциональных возможностях, ещё не загруженных в память, оно вызывает helper
Утилиты
У модулей есть alias. Например, модуль
Это значит, что
(Примечание:
Затем
Например, модуль
Затем
Для загрузки модулей, собранных вне дерева ядра, полезно иметь включённый CONFIG_MODVERSIONS=y
Он не обязателен для загрузки модулей в принципе, но позволяет обеспечивать совместимость символов между версиями ядра и модулей (versioned symbols), что уменьшает риск получить ошибку при
#kernel #utils
Когда ядро обнаруживает необходимость в тех или иных функциональных возможностях, ещё не загруженных в память, оно вызывает helper
kmod (через механизмы uevent/hotplug). Kmod в свою очередь запускает утилиту modprobe, а уже modprobe вызывает insmod. Посмотреть можно так:$ systemctl status kmod
Утилиты
modprobe, insmod, modinfo и другие - это просто ссылки на /bin/kmod, они ничем не отличаются как отдельные бинарники. Всем заправляет один kmod, можно вызвать /bin/kmod напрямую и он сам определит, какую "утилиту" вы имели в виду.kmod и modprobe запускаются ядром автоматически, когда требуется загрузка определённого модуля. modprobe принимает на вход имя модуля или его alias.У модулей есть alias. Например, модуль
qrtr в выводе lsmod имеет такое имя. Его alias можно посмотреть в /lib/modules/*/modules.alias. Например: net-pf-42 -> qrtrЭто значит, что
modprobe можно передавать один и тот же модуль:$ modinfo qrtr
$ modprobe net-pf-42
(Примечание:
modinfo ищет только по реальному имени файла модуля, alias понимает modprobe)Затем
modprobe просматривает /lib/modules/*/modules.dep. Этот файл описывает модули, которые требуют загрузки других модулей перед своей загрузкой - то есть зависимости. Файл создается командой:$ depmod -a
Например, модуль
qrtr-mhi.ko запрашивает загрузку qrtr.ko и mhi.ko:kernel/net/qrtr/qrtr-mhi.ko: kernel/net/qrtr/qrtr.ko kernel/drivers/bus/mhi/host/mhi.ko
Затем
modprobe вызывает insmod (указывая путь из /lib/modules/*/), который загружает сначала зависимые модули, затем нужный модуль.insmod довольно "глуп" в отношении нахождения модулей, поэтому принимает абсолютные пути и нужный порядок вручную:$ insmod /lib/modules/2.6.11/kernel/fs/fat/fat.ko
$ insmod /lib/modules/2.6.11/kernel/fs/msdos/msdos.ko
modprobe более "умный" - он ориентируется по modules.dep, поэтому достаточно передать имя:$ modprobe msdos
Для загрузки модулей, собранных вне дерева ядра, полезно иметь включённый CONFIG_MODVERSIONS=y
Он не обязателен для загрузки модулей в принципе, но позволяет обеспечивать совместимость символов между версиями ядра и модулей (versioned symbols), что уменьшает риск получить ошибку при
insmod.#kernel #utils
👍10
Процессы в ядре Linux
В ядре существует понятие "ядерных потоков" или "потоков ядра" (
Есть также процессы
Каждый
Но не каждый
#kernel
В ядре существует понятие "ядерных потоков" или "потоков ядра" (
kernel threads, kthreads) - это легковесные процессы, которые выполняются полностью в пространстве ядра и никогда не переходят в пространство пользователя. Они используются для различных фоновых задач: управление устройствами, обработка событий, обслуживание подсистем ядра и другие служебные функции. Большинство kthreads создаются при загрузке системы или динамически ядром по мере необходимости.Есть также процессы
kworker (kernel worker). Это универсальные фоновые рабочие потоки, обслуживающие работу подсистем workqueue. Они выполняют задачи, которые были отложены другими частями ядра: обработка таймеров, deferred work, обслуживание драйверов, ввод-вывод, управление памятью и многое другое. Kworker‑процессы автоматически создаются ядром, масштабируются по количеству CPU и не связаны с конкретным приложением - они обслуживают всю систему.kthread - это любой обычный поток ядра, созданный через kthread_create. Он выполняет свою собственную задачу, прописанную автором кода.kworker - это специальный тип kthread, который используется подсистемой workqueue. Эти потоки создаются и управляются автоматически ядром, а не вручную.Каждый
kworker - это kthread.Но не каждый
kthread - kworker.#kernel
👍15✍2❤1🤣1