Свалился на меня «последний из 32-битных могикан», но машинка прямо финал возможностей архитектуры — насколько я понял, видит спокойно 8 гигов рамы (PAE во все поля?), слотов не пожалели, в общем, в такое чудо бы камень хотя бы на 2 ядра, но, увы…
Я его практически не смотрел ещё и ХЗ когда посмотрю (вроде не совсем мёртвая), но превентивно задам вопрос. Допустим, поставил я туда 32-битный BunsenLabs. Допустим, я хочу запустить какое-нибудь 64-битное приложение, которое в 32 битах давно уже не обновляется. Допустим, мне пофиг, что там в плане скорости (очень важное допущение, потому что оно как бы понятно, что там будет).
Насколько это реально — настроить для него резервативию… презервацию… короче, специально обученный загон с софтовой эмуляцией 64 бит? Существуют ли решения? Чтобы их установить и отконфигурировать, обязательно пройти все круги ада, как в той статье?
Практического смысла это по понятной причине не несёт — просто пятничное.
Почему я снова вернулся на Debian после Ubuntu 24.04 и Fedora 42
Недавно я купил новый ноутбук и решил использовать это как повод попробовать что-то свежее, кроме привычной Ubuntu.
Сначала я поставил Ubuntu 22.04, но быстро понял, что хочу поэкспериментировать и посмотреть, как себя чувствуют другие дистрибутивы на новом железе.
Я решил обновиться с Ubuntu 22.04 до 24.04 - казалось бы, логичный шаг: свежий LTS, новые пакеты, улучшения в GNOME. Но спустя пару недель я понял, что дистрибутив нужно менять. Расскажу, почему.
Медленная работа с большим количеством файлов
Главная причина — баг, который проявлялся в файловом менеджере. Когда в каталоге было много файлов, его открытие могло занимать слишком много времени, иногда десятки секунд.
Если регулярно работаешь с проектами, папками картинок или архивами — это превращается в настоящий тормоз.
Да, баг могут исправить, но в тот момент он мешал работать каждый день.
Fedora: понравилась, но не подошла под задачи
Первым я решил попробовать Fedora 42. Впечатления были отличные:
система работает быстро,
GNOME выглядит аккуратнее без патчей Canonical,
Wayland ощущается максимально плавным,
окружение ощущается «современным из коробки».
Но очень быстро я столкнулся с проблемой: часть нужных мне пакетов просто отсутствовала в репозиториях.
Да, что-то можно было поставить, но не все инструменты, которыми я пользуюсь в работе, нашлись. Также наблюдалась проблема обновления некоторых пакетов из России. Получается замкнутый круг.
В итоге я пытался найти нужные программы, но либо я их не там искал, либо их не было, либо которые я нашел не заработали.
Почему я выбрал Debian 13
В этом году как раз вышел Debian 13 с GNOME 48, я решил попробовать его.
И для себя получил:
стабильность, к которой привык,
современный GNOME без патчей,
огромный набор пакетов в репозиториях,
отсутствие лишних предустановленных компонентов,
а главное — всё, что мне нужно, установилось без танцев.
В итоге Debian остаётся для меня тем самым балансом:
Итог
Ubuntu 24.04 — неплохой релиз, но сейчас он не подходит под мои задачи.
Fedora оставила отличные впечатления — она бы идеально подошла мне «для души». Но для работы мне нужна система, где всё устанавливается из репозиториев, ничего не ломается после обновлений и не приходится искать обходные решения.
Так я и остановился на Debian 13 с GNOME 48 — и пока это лучший вариант для моего сценария.
Однажды я решил попробовать Arch Linux — в качестве эксперимента, чтобы понять, подходит ли он мне как основная система. Спойлер: нет. Хотя я понимаю, почему Arch нравится многим, лично мне он не зашёл. Расскажу коротко — без холивара, просто субъективный опыт.
1. Слишком много ручной настройки
Да, это философия Arch — «собери систему под себя». Но когда даже базовые вещи требуют:
поиска пакета вручную,
чтения вики,
настройки конфигов,
в какой-то момент это начинает отвлекать от работы.
Мне хотелось просто пользоваться системой, а не постоянно её собирать.
2. Установка превращается в квест
Я понимаю, что сейчас есть Archinstall, но это всё равно:
больше шагов,
больше точек, где можно ошибиться,
больше нюансов, которые надо держать в голове.
Для сравнения: Ubuntu/Debian/Fedora ставятся буквально за 10–15 минут без сюрпризов. Arch — это отдельный процесс, который каждый раз занимает время, силы и концентрацию.
3. Постоянные обновления и риск поломок
Rolling release — это круто, но это также:
риск, что обновление завтра что-то сломает,
необходимость держать в голове зависимости,
желание обновляться реже, но при этом понимание, что массово обновлять ещё опаснее.
Мне нужен более предсказуемый рабочий инструмент, а не адреналиновый аттракцион.
4. Много времени уходит на поиск информации
Arch Wiki — одна из лучших в мире, но:
почти каждое действие требует чтения документации,
часто нужно искать решения на форумах,
иногда конфликты пакетов решаются вручную.
Да, можно привыкнуть, но мне не хотелось превращать рабочий компьютер в постоянную учебную площадку.
5. Минимализм оказался минусом
Arch устанавливается «голым». Ты ставишь:
окружение,
драйверы,
кодеки,
шрифты,
инструменты,
конфигурируешь систему практически с нуля.
Кому-то это даёт свободу. Мне — лишние часы, которые можно было потратить на реальную работу.
Итог
Я понимаю, за что любят Arch — скорость, свежие пакеты, гибкость. Но для моего сценария использования он требует слишком много времени и внимания. В итоге я вернулся к Debian/Ubuntu: они просто работают, а я могу заниматься задачами, а не конфигами.
Привет, Хабр! Наступила очередная пятница, поэтому я несу полезные материалы на выходные для тех, кто хочет получше освоить Ubuntu. Информация по ссылкам довольно базовая, для начинающих. Все бесплатно, без регистрации и смс. Поехали!
Установка и настройка FTP-сервера на Ubuntu — разбираемся с установкой, настройкой, созданием пользователей, настройкой SSL/TLS и проверками подключений. Все разбираем на примере VSFTPD (Very Secure FTP Daemon).
Установка и настройка Jitsi Meet на Ubuntu 22.04 — рассмотрим настройку публичного сервера видеоконференций Jitsi Meet, доступного из интернета, с выпуском TLS-сертификата и обязательной авторизацией.
Привет, Хабр! Новая пятница — новые знания для начинающий специалистов! Сегодня у нас небольшая подборка инструкций по работе с командами в Linux. Пригодится будущим и начинающим системным администраторам. Как всегда, все материалы доступны бесплатно и без регистрации. Поехали!
Команда grep в Linux — снова изучаем синтаксис, знакомимся с регулярными выражениями, смотрим на примеры использования команды.
Команды kill и killall в Linux — подробная инструкция по принудительному завершению и настройке процессов, а также управлению их приоритетами.
И просто напоминание, что в Академии Selectel есть курс по системному администрированию с нуля. Он тоже бесплатный, но там все же придется зарегистрироваться, так что на ваше усмотрение.
Юрьев день для ИТ-бюджета: скидка 40% на ОС «МСВСфера», «Инферит ИТМен» и FinOps-платформу «Клаудмастер»
«Инферит» дарит ИТ-сообществу настоящий «Юрьев день» — ограниченную по времени акцию со скидкой 40% на ключевые продукты своего программного портфеля. С 26 ноября по 30 декабря 2025 года новые клиенты могут не только приобрести лицензии со значительной выгодой, но и зафиксировать цену на них.
В акции участвуют следующие направления «Инферит»:
ОС «МСВСфера»: Российская операционная система на основе RHEL для серверов и рабочих мест. Включена в реестр ПО, имеет сертификат ФСТЭК России и подходит для госсектора и бизнеса.
«Инферит ИТМен»: Система инвентаризации и контроля ИТ-инфраструктуры. Автоматизирует учет оборудования и ПО, помогает контролировать лицензионную чистоту.
«Клаудмастер»: FinOps-платформа для управления и оптимизации облачных расходов. Доступна в формате SaaS и On-premise.
Как принять участие?
Чтобы получить скидку и зафиксировать цену, необходимо до 30 декабря 2025 года оставить заявку на сайтах продуктов:
Важный нюанс: Моментом фиксации цены считается получение заявки вендором. Оплата может производиться позже, по согласованию с менеджером, но цена для клиента уже будет закреплена.
Несколько "каверзных", вопросов для собеседования по Linuх, "подсказанных" практикой
Всем привет!
Наверное, мало кто любит проходить, или проводить собеседования, особенно второе, но, если приходится это делать, хочется что бы вопросы на нем были более “жизненными”, нежели “назовите все ключи команды ls” (сам использую 2-3, “в стрессе” вспомню еще 5-7) и, менее теоретическими, нежели “какими ключом шифруем а каким подписываем сообщение” (обычно эти операции скрыты за интерфейсом и сделать ошибку трудно)
Потому, хочу поделиться подходящими задачками, из своей практики:
Вопрос 1. Объясните вывод на экране, что будет, если повторить команду в третий раз, как избежать такого поведения?
Вопрос 3. Объясните, почему повторный запуск команды приводит к сообщению Permission denied?
debian# tcpdump -niany -w file.dmp not port 22
...
4 packets received by filter
0 packets dropped by kernel
debian# tcpdump -niany -w file.dmp not port 22
...
tcpdump: file.dmp: Permission denied
student@server:~$ su
Password:
server:/home/student# shutdown
bash: shutdown: command not found
Несколько раз встречал такую ошибку на занятиях , что позволяло еще раз рассказать про переменные окружения, команду “su -” и, что лучше вместо нее использовать sudo
Наверное, достаточно задачек из моего субъективного опыта, буду рад, интересным примерам из Вашего, в комментариях, Спасибо!
topalias - утилита для генерации коротких алиасов по истории bash/zsh
На GitHub опубликована открытая утилита для генерации коротких алиасов на основании истории работы в bash или zsh. Утилита анализирует файлы ~/.bash_aliases, ~/.bash_history и ~/.zsh_history с историей выполнения команд в терминале Linux, после чего предлагает короткие аббревиатуры (акронимы) для длинных, долго набираемых и сложно запоминаемых, но часто используемых команд. Также поддерживается вывод статистики по истории работы в командной строке.
Если вы работаете в терминале десятки раз в день, алиасы — это мощный инструмент повышения эффективности. Но с ростом количества проектов и конфигураций .bashrc/.zshrc алиасов становится много: часть дублируется, часть устарела, некоторые перекрывают системные команды. topalias решает три задачи:
дать метрику использования алиасов (какие используются чаще всего);
упростить создание/удаление/пакетное управление алиасами;
находить конфликтные или опасные алиасы и предлагать безопасные альтернативы.
В статье — обзор возможностей, примеры использования, внутренняя архитектура и практические рекомендации для интеграции с bash/zsh/fish.
Ключевые возможности
Сбор статистики использования алиасов на основе shell-history.
Команда top — список наиболее часто используемых алиасов.
Интерактивный режим (TUI) для обзора, включения/выключения и редактирования.
Поддержка bash, zsh и fish.
Экспорт/импорт в виде конфигурационных файлов и git-репозиториев.
Поиск конфликтов (алиас затеняет системную команду) и предупреждения.
Генератор «умных» алиасов: на основе частых цепочек команд предлагает сокращения.
Пакетная миграция между машинами (pack/unpack).
Небольшой daemon/cron для частого обновления статистики (опционально).
Самый простой способ сообщить об успешном подключении по SSH
Всем привет! Вообще-то, обычно решают обратную задачу - сообщить о неудачных попытках подключения по SSH, а еще лучше - сразу заблокировать. С этим прекрасно справляет, например, Fail2ban, но, рассказ не о нем. Может оказаться полезно получать уведомления именно об успешных подключениях, особенно, в тот момент, когда сам НЕ подключаешься. Так же, хочется сделать это с наименьшими усилиями, без написания скриптов, без установки специфического ПО, что бы было легко "скопипастить" решение на множество систем. Так же, хочется знать не тoлько о подключениях, получивших shell, но и о удаленном выполнении команд, или копировании файлов по протоколу SSH.
Все есть в этом решении:
$ sudo apt install curl
$ sudo nano /etc/pam.d/sshd
оставьте, все, что было в этом файле и добавьте в конец:
Как оказалось, curl умеет отправлять почту, в сообщении будут присутствовать все подробности, кто, когда, откуда подключился, и, даже, когда отключился. Правда, в этом решении требуется корпоративный почтовый сервер (mailhub.yourcorp.ru в нашем "однострочнике"), готовый принять письмо без аутентификации. Это допустимо, если он же является конечным сервером с ящиком пользователя, или, есть разрешение пересылки писем из корпоративной сети (в этом случае можно использовать любой другой почтовый адрес, вместо yourlogin@yourcorp.ru). Однако, такой сервер не всегда имеется, и решение не годится для персонального использования.
В этом случае, предлагаю Вам вебинар , демонстрирующий решение той же задачи, с отправкой сообщений в Telegram
На этом все, спасибо, буду рад ответить на вопросы!
14 октября мы собрались в уютном Failover Bar (г. Санкт-Петербург) 🏠, чтобы по-настоящему прокачать свои навыки в DevOps и кибербезопасности 🚀
Огромное спасибо всем участникам нашего интенсива "Ansible Security CTF – Защищай и Атакуй!" – вы сделали этот вечер незабываемым! 🙏
Что мы делали: 🛡 Писали Ansible playbooks, чтобы мгновенно закрывать уязвимости 🔎 Активно сканировали, подбирали пароли, искали флаги с помощью nmap, hydra и curl 💬 Общались, обменивались опытом и заводили новые знакомства!
🎉 Поздравляем победителей и напоминаем, что еще месяц в Failover Bar можно потренироваться на кейсах из интенсива! 💡В этом вам поможет бот 🤖 для CTF - https://t.me/DebugProCTF_bot
📆 Не хотите пропустить следующие мероприятия? Подписывайтесь на бота 🤖 DebugSkills - https://t.me/DebugProBot
Использую для разных надобностей перешитые TV-боксы, потому что удобные маленькие одноплатники в аккуратных корпусах - а "сделать корпус для своего устройства" - отдельная головная боль, которую в данном случае можно просто избежать.
В частности, неплохая штука - X88-mini, 64-битный 4-ядерный процессор с 4 гигабайтами ОЗУ, для некоторых применений вполне годно. Чтобы не колдовать каждый раз с подбором образа ОС, и методами его помещения туда - слепил что-то вроде дистрибутива.
В основе - Debian bookworm, в минимальной конфигурации, дополнительно установлены только Midnight и Vim. Загрузочный образ - примерно 1.5 гигабайта, можно записать на любую подходящую SD-карту, воткнуть в слот и загрузиться.
Работает только по сети, по ssh, терминал подключать не нужно, да и не заработает. IP получит по DHCP, останется залогиниться и можно настраивать почти под что угодно. Графический интерфейс тоже можно запустить, в отличии от текстовой консоли - но GPU там так себе, это больше для серверных задач подходит: веб, бекенд, автоматика.
И еще одно ограничение - не удалось подобрать нормально работающее ядро, кроме "родного", это ограничивает использование софта, требующего модулей ядра. Если кто подскажет хороший вариант - будет неплохо.
🎯 Что будет: ⚔️ Практический мастер‑класс по автоматизации безопасности 🐳 Развертываем уязвимую инфраструктуру в Docker 🛡 Пишем Ansible playbook для защиты 🏆 CTF‑соревнование — ищем флаги и закрываем уязвимости!
⏰ Формат: 2 часа интенсивной практики
💻 Что взять с собой: ноутбук и желание ломать/защищать системы
🚀 Программа: ✅ 5 реальных сервисов с уязвимостями ✅ Практика с nmap, hydra, curl ✅ Написание продвинутых Ansible playbooks ✅ Система очков и подсказок ✅ Живое общение и нетворкинг
👨💻 Ведущий я: Андрей Чуян DevOps-инженер, автор канала «IT‑волна»
РОСА Хром для интерактивных панелей: отечественная ОС для классов и переговорных
НТЦ ИТ РОСА представила редакцию операционной системыРОСА Хром, адаптированную для интерактивных панелей и сенсорных киосков. Цель — дать образовательным учреждениям и корпоративным командам стабильную, удобную и полностью российскую платформу для совместной работы на большом экране.
ОС уверенно работает на массовых платформах Intel/AMD и на отечественных Байкал-М. Вариант для Байкал-М поддерживает внешние видеокарты, HDMI и аналоговый звук; система корректно запускается на платах российских производителей.
Мы переработали взаимодействие с интерфейсом под большой экран и управление пальцами:
увеличенные элементы (кнопки, заголовки, меню) для точных касаний;
Файловая система Btrfs с подтомами root и home позволяет делать моментальные снимки перед обновлениями и откатываться без потери данных и переустановки (через графическую утилиту).
Работа в графической среде X11 — это гарантирует корректное поведение экранной клавиатуры и сенсора; весь необходимый функционал стабильно доступен уже сейчас.
Кому пригодится
школам и вузам — для занятий, лабораторных и совместной работы;
госучреждениям — для совещаний, обучения и стендов самообслуживания;
компаниям — для переговорных, демонстраций, интерактивных киосков.
Linux Mint 22 - KiCad-5 с GUI и графическим ускорением на карте AMD в Docker-контейтере.
При перезде с Минт-20 на Минт-22 мне захотелось сохранить возможность полноценной работы с проектами выполнеными в KiCad-5, без конвертации их в формат KiCad-9 на который я плавно мигрирую при перезде на Минт-22. Специфика в том, что KiCad-5, в том числе в виде AppImage на Минт-22 запускаться категорически не хочет.
Из возможных вариантов выбрал для себя запуск KiCad-5 в Docker-контейтере, с пробросом графики через X11. За основу взял эту реализацию. Добавил к ней проброс графического ускорения(без него GUI будет подтормаживать) своей карты AMD, русификацию, и Firefox, для плагина InteractiveHtmlBom. В итоге получился вот такой dockerfile:
FROM linuxmintd/mint20-amd64
ENV LANG=ru_RU.UTF-8
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y nano sudo keyboard-configuration software-properties-common x11-apps xdg-utils \
locales language-pack-ru-base language-pack-ru xed xed-dbg firefox firefox-locale-ru && \
update-locale LANG=ru_RU.UTF-8
RUN add-apt-repository --yes ppa:kicad/kicad-5.1-releases && \
apt-get update && \
apt-get install --no-install-recommends -y kicad kicad-locale-ru kicad-doc-ru
# Укажите здесь используемые на вашем хост-компьютере
# имя пользователя, идентификатор пользователя и идентификатор группы.
ENV USER_NAME=vasily
ENV UID=1000
ENV GID=1000
ENV HOME=/home/${USER_NAME}
ENV XDG_RUNTIME_DIR=/tmp/runtime-${UID}
RUN mkdir -p ${HOME} && \
echo "${USER_NAME}:x:${UID}:${GID}:USER_NAME,,,:${HOME}:/bin/bash" >> /etc/passwd && \
echo "${USER_NAME}:x:${UID}:" >> /etc/group && \
echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USER_NAME} && \
chmod 0440 /etc/sudoers.d/${USER_NAME} && \
chown ${UID}:${GID} -R ${HOME}
USER ${USER_NAME}
# Раскомментируйте программу, которую вы хотите запустить в контейнере.
#ENTRYPOINT ["eeschema"]
ENTRYPOINT ["kicad"]
Обратите внимание, что значения USER_NAME, UID, GID, в строках 17, 18, 19 в dockerfile берутся из вашего аккаунта на хост-машине.
Образ создается как обычно выполненой в открытом в одной директории с dockerfile терминале командой(не забываем пробел и точку в конце команды):
docker build -t kicad5 .
Размер образа получаеться около 800 Мбайт.
Скрипт для старта контейнера на машине с графической картой AMD:
1). Создаете в Минт-22 директорию /usr/share/kicad5 и копируете туда содержимое /usr/share/kicad из Минт-20 с установленным kicad5
2). Копируете содержимое $HOME/.kicad_plugins из Минт-20 с установленным kicad5 в $HOME/.kicad_plugins в Минт-22
3). Копируете содержимое $HOME/.config/kicad/ из Минт-20 с установленным kicad5 в $HOME/.config/kicad в Минт-22
Теперь можете запускать KiCad-5 с GUI и графическим ускорением на карте AMD в Минт-22 и паралельно установить в Минт-22 KiCad-9.
Чтобы заархивировать созданный образ выполняем в терминале:
docker save -o ./my_bac_kicad5_image.tar kicad5
Чтобы развернуть заархивированый образ на другом машине выполняем в терминале, открытом в одной директории с файлом my_bac_kicad5_image.tar, на нее скопированном:
GPT-5 Pro думала 69 минут, чтобы просто ответить «Нет». Пользователь спросил у ИИ, сможет ли он установить CUDA на Linux Ubuntu. Нейронка задумалась на час с лишним, чтобы ответить: «Нет, не сможешь». Самое печальное — ответ оказался неправильный.
В прошлой статье мы пришли к выводу, что QMP — это лучше, чем ничего. Но хочется большего — библиотеку или программу (желательно, уже готовую), которая умеет читать/писать и узнавать об изменении состояния через poll() / pselect() / select() / epoll() / read().
В таком случае для каждой модели GPIO нужен «клей», похожий на тот, что используется с chardev — мы включаем его прямо в модифицированный QEMU. Очевидное название такого «клея» — gpiodev. Вот его основные функции, которые сейчас почти полностью соответствуют GPIO UAPI в Linux:
сообщать количество линий, конфигурацию, название и потребителя каждой линии,
читать и задавать состояние линии,
отслеживать изменения состояния и конфигурации линии (вход/выход, запрос/освобождение).
«Клей» состоит из двух групп, первая — это индивидуальные для каждого модуля GPIO функции, которые gpiodev использует, чтобы запросить специфическую информацию:
LineInfoHandler() — информация о линии: имя, флаги и потребитель,
LineGetValueHandler() — состояние линии: условный 0 или 1,
LineSetValueHandler() — задать состояние линии: 0 или 1.
По аналогии с GPIO UAPI напрашиваются также функции LineGetMultiValueHandler() и LineSetMultiValueHandler() для запроса и выставления линий, но я решил ограничиться минимальным набором.
Можно ли организовать прозрачное взаимодействие с устройствами внутри QEMU — использовать те же библиотеки и инструменты, как и для реальных устройств? Читайте во второй части трилогии о долгом пути до GPIO в QEMU.
Linux 6.16 принесет более быстрые файловые системы, улучшенную поддержку памяти и больше Rust
Linux продолжает развиваться, становясь больше и лучше. Вот что нового и примечательного в релизе 6.16, а также что нужно знать о 6.17. Изменения в последнем ядре Linux, версии 6.16, могут быть небольшими, но среди них есть весьма значимые. Сам Линус Торвальдс охарактеризовал этот релиз как "выглядит хорошо, небольшой и спокойный", но "не слишком интересный (в лучшем смысле этого слова!)".
Появились биндинги Rust к ядру для инфраструктуры драйверов и подсистемы PCI-устройств. Это упростит добавление новых драйверов оборудования, написанных на Rust. Интегрированы новые абстракции Rust в подсистему Direct Rendering Manager (DRM).
Файловые системы
XFS: Теперь поддерживает большие атомарные записи. Это означает, что операции записи, охватывающие несколько блоков, выполняются "атомарно" – либо обновляются все блоки, либо ни один. Усиливает целостность данных и предотвращает ошибки записи. Важно для компаний, использующих XFS в базах данных и системах хранения масштаба предприятия.
Самая популярная файловая система Linux, Ext4, также получает множество улучшений. Эти усовершенствования включают ускоренные пути фиксации (commit paths), поддержку больших фолио (large folio) и атомарные записи, охватывающие несколько блоков файловой системы (fsblocks) для файловых систем с bigalloc.
Прочее
Если вы через ноутбук на Linux проигрываете музыку, еще одна приятная новая функция — теперь вы можете транслировать аудио по USB, даже когда остальная часть системы находится в спящем режиме. Эта возможность была доступна в Android какое-то время, но теперь она стала частью основного (mainline) Linux.
Если безопасность является для вас приоритетом, ядро 6.16 теперь поддерживает Intel Trusted Execution Technology (TXT) и Intel Trusted Domain Extensions (TDX). Это дополнение, наряду с улучшенной поддержкой AMD Secure Encrypted Virtualization и Secure Memory Encryption (SEV-SNP) в Linux, позволяет шифровать память вашего программного обеспечения в рамках так называемых конфиденциальных вычислений (confidential computing). Эта функция повышает безопасность облаков, шифруя память виртуальной машины пользователя, что означает, что злоумышленник, взломавший облако, не сможет получить доступ к вашим данным.
В этом релизе есть и другие улучшения поддержки чипов в Linux. Для начала, Linux теперь поддерживает Intel Advanced Performance Extensions (APX). С APX Linux теперь может использовать 32 общецелевых регистра x86. Это вдвое больше, чем 16 регистров у старых чипов. Это улучшение означает, что вы увидите повышенную производительность от процессоров Intel следующего поколения, таких как Lunar Lake и серверные Granite Rapids Xeon.
Linux 6.16 приносит улучшенную поддержку GPU Nvidia Blackwell. Чипы Blackwell, используемые в основном для ИИ, уже развертываются в высокопроизводительных Linux-рабочих станциях.
На сетевом фронте изменения в работе TCP/IP с DMABUF позволят устройствам, включая GPU и ИИ-ускорители, ускорять свои сетевые операции, не нагружая при этом CPU. Хотя обычный пользователь может не заметить это изменение, пользователи высокопроизводительных сетей увидят ускорение.
И есть шанс, что обычные пользователи увидят преимущества, если они используют OpenVPN. Собственный сетевой протокол OpenVPN по-прежнему не будет работать так же быстро, как WireGuard, но, по крайней мере, даст ему больше шансов в гонке.
С точки зрения пользователя (в данном случае человека, отвечающего за обновления данной Linux-системы) лайвпатч — это просто модуль ядра Linux, в котором содержится как минимум следующее:
исправленный код одной или более функций из vmlinux и/или из модулей ядра,
метаданные, указывающие, как применить эти исправления к соответствующим компонентам ядра Linux.
Чтобы применить лайвпатч-обновление, нужно загрузить этот модуль ядра, например, с помощью insmod или modprobe, а затем активировать его, как правило, через sysfs.
При этом старый код ядра Linux (тот, который хотим обновить) и новый (тот, что в лайвпатч-модуле) сосуществуют в памяти системы. Это дает возможность при необходимости отменить лайвпатч-обновление в runtime: деактивировать его через sysfs, а затем выгрузить лайвпатч-модуль.
Важный момент: если используются средства для работы с лайвпатчами из mainline-ядра, то при активации и деактивации лайвпатч-обновлений работающие процессы не нужно завершать или даже останавливать на сколько-нибудь существенное время.
Примечания:
У TuxCare / KernelCare лайвпатчи поставляются в другом, проприетарном, формате, но мы его рассматривать не будем.
Для некоторых архитектур, например RISC-V, при активации и деактивации патча вызывается stop_machine(), то есть работающие процессы при этом все-таки останавливаются на некоторое время. Начиная с версии 6.16 ядра Linux, для RISC-V stop_machine() уже, вероятно, не будет использоваться в таких ситуациях.
Все, что нужно знать о лайвпатингче для ядра Linux, вы найдете в цикле статей: от подготовки лайвпатча до работы на x86, ARM и RISC-V.
Предлагаю два варианта, которые я условно решил назвать MMIO и PCI. Последний — тоже MMIO, но в QEMU они добавляются разными путями. Начнем с сердца любой MMIO-модели — апертуры.
Апертура и адресное пространство
Как я упоминал в одной из своих статей, любое MMIO-устройство — это MemoryRegion с заданными шириной доступа и размером. Для того, чтобы он был виден CPU или другому устройству, такому как DMA, его нужно разместить в соответствующем адресном пространстве — например, пространстве, назначенном для cpu0:
Фактически это означает, что все семейство инструкций Load/Store будет вызывать mmio_gpio_register_read_memory()/mmio_gpio_register_write_memory() при совпадении адреса чтения/записи с адресом региона в адресном пространстве.
Передаваемые аргументы и возвращаемое значения интуитивно понятны. Отмечу, что hwaddr addr — это адрес относительно начала нашего региона, а не абсолютный адрес.
Нам остается лишь создать устройство и добавить его регион в файле машины:
Почти десять лет назад Никита Шубин, ведущий инженер по разработке СнК в YADRO, сделал возможность чтения и записи GPIO для QEMU. Читайте первую часть трилогии о долгом пути до GPIO в QEMU.
«Поделитесь своим игровым состоянием с друзьями, просто отправив им число! Если переменная $STATE env не установлена, она генерирует новое случайное начальное число. В противном случае состояние доски и все будущие созданные ячейки будут детерминированными»,‑ пояснил автор проекта.