Обновить
512K+

Linux *

Пишем под *nix

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

Bomb has been defused. Управление питанием батареи Mobian на OnePlus 6

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.7K

TL;DR: Я ранее установил Mobian (linux-дистрибутив, на основе Debian) на смартфон OnePlus 6. Теперь разбираюсь с потенциальным возгоранием батареи. Определил основной источник рисков. Решил защитить батарею от перезаряда, разряда и перегрева. Реализовал сервис для systemd, который реализует эту защиту на уровне управления драйвером зарядки устройства, на основе данных с батареи. Репозиторий.

Для начала представлюсь – я Деревянкин Павел, менеджер продукта электронных визиток MyQRcards, в прошлом мобильный разработчик в этом же продукте.

В комментариях к предыдущей статье, где я рассказывал, как устанавливал Mobian на OnePlus 6, чтобы сделать из него домашний сервер, возник вопрос о возможности взрыва батареи на устройстве.

Первая мысль, которая меня посетила, было отключить батарею вовсе, припаять диод и питаться только от внешнего источника питания. Но это убивает один из плюсов сервера на телефоне - по сути встроенного ИБП. Учитывая, что в телефон на Mobian вполне можно вставить SIM-карту и использовать интернет с неё, то можно построить довольно защищённую от перебоев систему, которая по стабильности уже начнёт спорить с гораздо более дорогими решениями. Поэтому всё же, я решил разобраться, что можно сделать, чтобы защитить аккумулятор.

UPD Ну и в итоге ещё пришлось залезть в код драйвера

Читать далее

Systemd timer: время выходить из пещеры

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

Я ощущаю себя пещерным человеком.

Мне уже много лет, и есть вещи, к которым я привык настолько, что воспринимаю их как константу. Они всегда на своих местах. Они всегда работают. Я никогда не задумываюсь, есть ли что-то еще — потому что зачем, если и так все хорошо?

Когда мне нужно запускать что-то регулярно, с заданной периодичностью — я использую cron. Я не знаю, сколько лет этой утилите. Мне кажется, она была всегда. Открыл crontab -e, написал расписание и забыл. А оно работает.

Но сегодня, решая очередную задачу с периодическим запуском, я с удивлением узнал, что альтернатива существует. Причем довольно давно.

Читать далее

Linux 7.0 и что изменилось в ядре после очередного цикла разработки

Время на прочтение5 мин
Охват и читатели15K

Разработка ядра Linux идет своим чередом. Каждые пару месяцев (иногда ждать приходится дольше) появляется свежая версия с исправлениями и новыми возможностями. На этот раз Линус Торвальдс представил релиз 7.0, который вобрал тысячи правок от сообщества. Изменения затронули самые разные части системы: от обработки ошибок в файловых системах до правил использования AI-ассистентов при подготовке патчей. Давайте разбираться.

Сначала — о привычных подробностях релиза. Линус Торвальдс объявил о выходе новой версии после стандартного двухмесячного цикла. В релиз вошло 15 624 исправления, подготовленных 2 477 разработчиками. Объем патча — 56 МБ, изменения коснулись 18 053 файлов. Для сравнения: в предыдущем выпуске патчей было чуть больше, но размер меньше.

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

ICMP-туннель на уровне ядра Linux: передаём TCP/UDP-трафик через эхо-запросы

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели12K

Недавно я наткнулся на статью о том, что в ICMP-пакеты можно вставлять произвольные данные. Сразу возникла мысль: а почему бы не попробовать загнать весь трафик через ICMP (да, о существовании ICMP-туннеля я тоже ничего не знал). Так появился проект — ICMP?туннель на уровне ядра, который:

Читать далее

Отказоустойчивый Anycast DNS с управлением через IaC

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.1K

DNS — неотъемлемая и очень важная часть инфраструктуры, о которой иногда забывают. Порой её воспринимают как нечто само собой разумеющееся, что просто всегда есть и работает. Вспоминают о ней обычно при странных багах, которые сложно диагностировать, или авариях, которые рушат всю инфраструктуру на часы.

Некоторое время назад я добрался до задачи рефакторинга DNS инфраструктуры — чтобы сделать её проще, удобнее и надежнее. В этой статье я хочу поделиться своим опытом и расскажу, как у нас получилось сделать внутренний распределенный DNS и управлять им как кодом.

Это всё DNS?

Linux против Windows: взгляд сквозь время или «16 лет спустя»

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели10K

Видеосюжет Linux против Windows на кале СТВ-1 вышел в далёком 2010 году и положил сайт этой телекомпании в связи с наплывом комментаторов, основная масса которых была, конечно же, с Хабра. В те далёкие времена мне лично довелось поучаствовать в глобальном переделе городской информационной среды и на своей шкуре почувствовать, что значит пробивать стены головой.

Прошло много времени и сообщество Хабра уже забыло эту душещипательную историю о том, как айтишник-одиночка пробил блокаду из чиновников различного уровня.

Я решил напомнить об этой истории сегодня.

Читать далее

Превращаем старую клавиатуру от ноутбука в полноценную USB-клавиатуру на RP2040 без QMK

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели19K

По созданию клавиатур на Хабре написано много статей, но, как правило, они подразумевают кастомизацию прошивки QMK или использование уже готовой.

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

Для обучения и понимания работы клавиатуры, периферийных устройств и протоколов взаимодействия лучше изобрести свой велосипед. Так я и поступил.

Читать далее

Как наказать цифрового воробья или как я проходил таск PigeonsRevenge от платформы ACLabs.pro

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

Данный таск был частью 5 сезона CTF, который проходил на площадке ACLabs. Машина необычная с увлекательным сюжетом и интересными уязвимостями.

Условие задачи:

Борис — старый почтовый голубь. Катя, его голубка, улетела к наглому Воробью. Три дня Борис пил дешёвое пойло и строчил план мести. Теперь этот план у тебя. Помоги Борису пробраться в цифровое гнездо Воробья, украсть его аккаунт и стать рутом. Следуй за пьяными записками — там всё сказано и даже больше. Внимание, стенд будет полностью готов только по истечении обратного времени отсчета, даже если адрес появился раньше!

Цепочка атаки

Атакующая цепочка «PigeonsRevenge» комбинирует одну реальную критическую CVE (Webmin 1.910 — CVE-2019-15107, 9.8 CRITICAL) с набором классических техник ATT&CK: активная разведка → port knocking → эксплуатация публичного приложения → Metasploit reverse-shell → туннелирование Ligolo-ng → инъекция через переменную окружения в кастомный бинарник → обход фильтра табуляцией → закрепление с root-привилегиями.

Читать далее

SCO против IBM: как судебный иск на $5 млрд едва не уничтожил Linux

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели8.4K

В марте 2003 года небольшая компания SCO Group подала иск против IBM на $1 млрд, утверждая, что в ядре Linux находится украденный код операционной системы Unix. Дело быстро превратилось в один из самых громких технологических судебных процессов в истории. Сумма иска выросла до $5 млрд, к разбирательствам присоединились Red Hat, Novell, DaimlerChrysler и AutoZone. Исход дела стал поворотным моментом в истории открытого программного обеспечения.

Читать далее

Неочевидные нюансы миграции с Docker на Podman

Время на прочтение7 мин
Охват и читатели17K

Миграция на Podman — вопрос достаточно интересный. И ответ на него достаточно простой — берете и мигрируете, там делов-то!

Но на самом деле это только верхушка айcберга. Сначала кажется, что все просто. А потом оказывается, что нужно решить много спорных моментов и учесть кучу мелочей. Сегодня я расскажу, на что стоит обратить внимание и стоит ли игра свеч. Поехали, порассуждаем про миграцию из Docker в Podman.

Читать далее

S3 и зачем вообще городить ещё один клиент…

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.8K

Вы нормально знаете Ceph, пулы, RGW, где смотреть логи и почему внезапно полезли 403. Вопрос в другом: вокруг кластера живут люди, которым нужен не Ceph, а S3 как диск в облаке. Им нужно залить билд, вытащить дамп, перекинуть префикс между стендами, выдать временную ссылку, проверить, что объект реально лежит и какой у него размер. Без чтения ceph -w s3cmd rados etc, без объяснений про placement groups и без вашего участия в каждой мелочи.

CLI и скрипты вы держите для себя и для пайплайнов.

Консоль облака у вас может быть про другой контур. А типичный пользователь упирается в простую вещь: хочу окно с таблицей, перетаскиванием и понятной ошибкой, а не пятнадцать шагов «спроси админа».

Отсюда и смысл отдельного десктопного клиента под S3 API: не заменить вам эксплуатацию, а снять с вас поток однотипных ручных запросов и дать людям самообслуживание в рамках выданных ключей и политик.

Читать далее

Потоковая обработка данных на С

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.3K

Привет, Хабр!

Кратко о том что такое потоковая обработка данных и в чем её отличие от пакетной.

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

Читать далее

От iptables к nftables: O(n) против O(1) на практике

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели12K

Если администрировать Linux-сервера достаточно долго, рано или поздно сталкиваешься с сетевой фильтрацией. Где-то нужно закрыть лишние порты, где-то ограничить доступ между сегментами сети, а где-то настроить NAT.

На практике это почти всегда приводит к iptables: таблицы, цепочки, правила — и со временем конфигурация начинает напоминать археологический слой. Правила копируются, дополняются, теряют актуальность, и через пару лет уже сложно понять, почему конкретное правило вообще существует.

В этой статье разберёмся, как появился nftables, чем он отличается от привычного iptables, как устроена его архитектура и как на практике использовать его для настройки firewall на Linux-сервере.

Читать далее

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

Ставим Claude Code на Windows как профессионалы

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

У нас в команде AWS 9 человек — решения в AWS, 150+ аккаунтов в AWS Organizations. Один из нас работает на macOS, шестеро на Linux, двое на Windows (включая меня).

За год работы с Claude Code выработались правила: как поставить и что настроить. Правила менялись по мере выхода новых версий — появлялись новые возможности, отваливались старые костыли. Этот документ отражает актуальное состояние на апрель 2026.

На Linux не пересаживаюсь намеренно. Мои Windows-компетенции в команде востребованы: я единственный, кто имеет солидный опыт с Microsoft, кто отладит Lambda-парсер для обработки Windows Events, кто напишет и будет поддерживать большой PowerShell скрипт или SSM-документ с ним.

Claude Code у меня под Windows должен работать без ошибок и с максимально возможной производительностью, несмотря на то, что большую часть времени я работаю на linux-специфичное окружение.

Читать далее

Я сделал свободный и бесплатный Naive-iOS/macOS клиент

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Naïve-клиент для iOS и macOS и сервер, устанавливающийся одной командой

Объясняю как я к этому пришел и делюсь, возможно, легчайшим способом обеспечить себя и семью доступом к требуемым ресурсам

Читать далее

Linux отказывается от процессоров Intel 486 спустя почти 40 лет. Почему?

Время на прочтение5 мин
Охват и читатели18K

Все так и есть. Разработчики ядра Linux прекращают поддержку устаревших процессоров уровня Intel 486 — архитектуры, на которой держались домашние ПК начала 90-х. Линус Торвальдс начинал разработку Linux в 1991 году на процессоре Intel 386, а потом ОС широко распространилась на более массовых тогда машинах с 486 чипами. Сегодня от этой совместимости отказываются: она усложняет код ядра и мешает внедрять современные оптимизации и механизмы безопасности.

Старые компьютеры продолжат работать, катастрофы нет. Но вот новые версии Linux на них уже не запустятся. i486 давно не соответствует требованиям актуального ПО, а реальных пользователей таких систем почти не осталось. Проект окончательно смещает фокус на современные многоядерные процессоры, а 486-й уходит в историю как одна из ключевых платформ ранней эпохи Linux. Давайте разбираться, что здесь и как. 

Читать далее

На один плюс больше. Сервер Mobian на OnePlus 6. Оказалось слишком просто

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

TL;DR: Расскажу про свой опыт перепрошивки телефона и превращения его в маленький домашний сервер. Спойлер: оказалось гораздо проще, чем я сам ожидал.

Для начала представлюсь – я Деревянкин Павел, менеджер продукта электронных визиток MyQRcards, в прошлом мобильный разработчик в этом же продукте.

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

Можно было для этой цели взять какой-нибудь из старых ноутбуков, что пылятся у меня за спиной, или купить Raspberry Pi, но я решил, что это будет слишком скучно, потому что, честно говоря, затеял всё это для развлечения, а не для гонки за реальным результатом, этого мне и на работе хватает. Я было полез на всем известный сайт в поисках б/у дешёвого Mac на M1 или чём повкуснее. Искал как сами miniPC, так и ноутбуки со сломанными дисплеями. Но, покопавшись в объявлениях с полчаса, понял, что это не такое дешёвое удовольствие, как хотелось бы. Да и что там будет веселее, кроме повышенной мощности?

И вот в этот момент я подумал: ну я же вырос из мобильной разработки, а M1 – это сильно ушедший вперёд мобильный процессор (не бейте ногами, я сильно упрощаю, да).

Почему бы не поискать возможность накатить сервак на телефон?

Читать далее

Podman Compose: как устроен, что умеет, чем отличается от Docker Compose

Время на прочтение5 мин
Охват и читатели14K

Если у вас есть конфигурационный файл docker‑compose.yml, то в большинстве случаев его можно запустить через Podman без переписывания. Так вы, с одной стороны, сохраните привычный воркфлоу, а с другой — получите преимущества rootless‑контейнеров. В Docker же для запуска compose-файлов раньше использовалась внешняя утилита Docker Compose, но спустя время Docker внедрил возможность запускать такие файлы нативно через Docker Compose plugin.

Да, старый способ запуска все еще актуален. Его можно встретить на легаси-проектах, но лучше все-таки использовать современные методы и не тащить за собой старье.

В Podman аналогично есть Podman Compose — подкоманда, которая запускает внешний провайдер. В качестве такого провайдера может выступать Docker Compose / docker‑compose. Вот во всем этом сегодня и разберемся.

Читать далее

У меня нет звука, но я должен слышать: история одной регрессии ядра

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

Что делать, если после очередного обновления Linux на старом ноутбуке намертво отвалился звук, а в логах висит зловещее CORB reset timeout и 0xFFFF? Переустановка аудио-серверов не поможет, параметры загрузчика GRUB система упорно игнорирует, а LTS-ядро больше не гарантирует стабильности. В этой статье разбираем, как спуститься в логи dmesg, понять, почему устройство «задыхается» на шине PCI, и заставить ядро заново проинициализировать аудиокарту «на горячую» с помощью sysfs и systemd.

Найти звук

AGC или как перестать подстраивать громкость вручную

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

Многие наверняка сталкивались с проблемой: смотришь по ТВ спокойный фильм, который прерывается резкой и громкой рекламой; или, например, при общении по ВКС всех собеседников слышно нормально, но у кого-нибудь одного микрофон будет шуметь так, будто он в данный момент находится рядом с двигателем самолета, готовящегося взлетать. Конечно, всегда можно подрегулировать громкость динамиков, но всегда ли это удобно и возможно?

Читать далее