Hacker News Digest

Тег: #kernel

Постов: 8

Linux 7.3 improves performance when running out of vRAM (pixelcluster.dev) 🔥 Горячее 💬 Длинная дискуссия

Игра, превышающая доступный объём видеопамяти, не обречена на крах — главное ограничение — производительность, а не стабильность. При нехватке VRAM данные выгружаются в системную оперативку, а доступ к ней через PCIe‑4.0x16 (≈ 32 ГБ/с) ограничивает пропускную способность до ~1 ГБ за кадр, что делает невозможным удержание 30 fps, если требуется больше.

Ключевой нюанс — не все обращения одинаковы: небольшие буферы команд и часто используемые данные могут оставаться в CPU‑памяти без катастрофических потерь, особенно если они умеют кэшироваться. Поэтому оптимизация доступа и более тесное взаимодействие драйвера с приложением позволяют смягчить удар по FPS, делая «переполнение» VRAM менее болезненным.

by flaburgan • 18 августа 2026 г. в 07:51 • 441 points

ОригиналHN

#gpu#kernel#linux#memory#overcommit#pcie-4.0x16#performance#vram

Комментарии (197)

Обсуждение смещает фокус с производительности на стабильность при нехватке RAM/VRAM. Пользователи отмечают критические различия в работе драйверов NVIDIA и AMD под Wayland: старые NVIDIA (750 Ti) вызывают краши композиторов при исчерпании VRAM, тогда как AMD (RX 480) бесшовно выгружает в системную память. Проблемы с утечками и стабильностью под Wayland/Vulkan сохраняются и на новых NVIDIA (2080). Для предотвращения зависаний рекомендуют systemd-oomd или Magic SysRq 'f'. Спор о том, какая ОС лучше справляется с нехваткой памяти: @krisknez утверждает, что Windows не фризит, но @alightsoul и @qwertox опровергают — Windows также зависает при активном swap или ресурсоёмких браузерах (Chromium); @adrian_b считает, что отказ от swap в Linux решает проблему. Поведение macOS неоднозначно: @inventor7777 отмечает сохранение отзывчивости (Ctrl+C работает) на M4 Max даже с артефактами, @LoganDark — сильную деградацию и необходимость перезагрузки после загрузки LLM. Улучшения Linux 7.3 менее значимы для LLM inference, чем для игр — в играх паттерны использования VRAM менее предсказуемы и требуют сложного управления памятью. Рекомендация: выделять 32 ГБ swap на быстрых SSD для комфортной работы с ВМ и тяжёлыми процессами. В Ubuntu 24 OOM-killer по умолчанию часто убивает Firefox, даже если память потребляют другие процессы — вызывает раздражение.

GhostLock, a stack-UAF that has existed in all Linux distributions for 15 years (nebusec.ai) 🔥 Горячее

Уязвимость GhostLock (CVE‑2026‑43499) позволяет любому локальному пользователю без привилегий получить контроль над ядром Linux, который живёт в каждом из основных дистрибутивов более 15 лет. По данным исследователей, эксплуатация стабильна в 97 % случаев и уже привела к выплате $92 337 в рамках kernelCTF. Уязвимость появилась в версии 2.6.39 при упрощении PI‑алгоритма rtmutex и оставалась непатченной до версии 7.1; её активация требует лишь включения CONFIG_FUTEX_PI, без необходимости привилегий или специальных настроек. Через простую последовательность системных вызовов можно вытащить указатель на стек ядра, записать его в произвольный адрес и захватить таблицу функций, что в итоге даёт полное повышение прав и побег из контейнеров.

Техническая основа – ошибка в функции remove_waiter() в kernel/locking/rtmutex.c, где при ошибке прокси‑переадресации стека задачи очищается не тот указатель. Это приводит к использованию после освобождения (UAF) стека, который можно инициировать через системный вызов FUTEX_WAIT_REQUEUE_PI. В результате получаем dangling‑pointer к стеку, возможность записать произвольный адрес и перехватить управление, что в конечном итоге приводит к повышению до root. Эта уязвимость позволяет получить контроль над ядром без специальных прав, что делает её критически важной для всех дистрибутивов.

by ranger_danger • 08 июля 2026 г. в 16:53 • 339 points

ОригиналHN

#cve#exploit#futex#kernel#linux#linux-kernel#rtmutex#security#vulnerability

Комментарии (147)

  • Обсуждается уязвимость, позволяющая получить root через JavaScript в Firefox на Android, используя Chromium‑based браузер без JS.
  • Уязвимость связана с устаревшими функциями ядра (GhostLock) и может привести к привилегированному доступу к системным ресурсам.
  • Участники делятся мнениями о влиянии уязвимости на безопасность Android, необходимости обновлений и роли OpenBSD, SELinux и виртуализации.
  • Есть споры о том, насколько такие эксплойты делают инфосекурность менее надёжной и требуют ли новых подходов к защите.

The Linux Boot Process: From Power Button to Kernel (0xkato.xyz) 🔥 Горячее

Процесс загрузки Linux начинается с нажатия кнопки питания, после чего процессор переходит в реальный режим (real mode) и выполняет инструкцию по адресу сброса 0xFFFFFFF0. Это приводит к запуску микропрограммы на материнской плате (BIOS или UEFI), которая выполняет самотестирование (POST) и ищет загрузочное устройство. При обнаружении загрузочного сектора (маркеры 0x55 и 0xAA), BIOS копирует его в память по адресу 0x7C00, после чего управление передается загрузчику GRUB. GRUB считывает свою конфигурацию, загружает ядро Linux в память и передает управление программе настройки, которая создает предсказуемую рабочую среду: выравнивает сегментные регистры, создает стек, очищает область BSS и запрашивает информацию о доступной памяти у микропрограммы. В конце концов, вызывается первая функция C с именем main, что标志着 переход к следующей фазе загрузки.

by 0xkato • 25 октября 2025 г. в 23:04 • 420 points

ОригиналHN

#bios#grub#initrd#kernel#linux#systemd#uefi

Комментарии (82)

  • Обсуждение показало, что статья о процессе загрузки Linux охватывает только самые базовые концепции, что вызвало критику за упрощение и упущение важных деталей, таких как взаимодействие с UEFI, инициализация видео и роль загрузчика.
  • Участники подчеркнули, что статья не соответствует уровню подготовки аудитории Hacker News, и что она не раскрывает важные темы, такие как влияние UEFI на процесс загрузки.
  • Также было отмечено, что статья не затрагивает такие важные темы, как влияние UEFI на процесс загрузки и не упоминает о таких важных компонентах, как initrd и драйверы.
  • Некоторые комментаторы выразили сожаление по поводу того, что статья не затрагивает такие темы, как влияние systemd на процесс загрузки и не упоминает о таких важных компонентах, как initrd и драйверы.
  • Также было отмечено, что статья не упоминает о таких важных компонентах, как initrd и драйверы, и не раскрывает влияние systemd на процесс загрузки.

Upcoming Rust language features for kernel development (lwn.net) 🔥 Горячее 💬 Длинная дискуссия

Rust продолжает развиваться, и новые языковые функции, такие как проекции полей, инициализация на месте и произвольные типы self, становятся важными для разработки ядра Linux. Эти функции упрощают работу с указателями, позволяют избежать двойной инициализации и делают код более выразительным. Рядом с этими изменениями, Rust for Linux активно работает над стабилизацией существующих функций и разработкой новых, чтобы код ядра был не только безопасным, но и элегантным. Разработчики подчеркивают, что сообщество, включая участников Rust for Linux, играет ключевую роль в определении приоритетов разработки языка.

by pykello • 16 октября 2025 г. в 06:12 • 305 points

ОригиналHN

#c++#kernel#linux#rust

Комментарии (202)

  • Обсуждение охватывает вопросы от безопасного доступа к полям структур до сложных вопросов владения памятью в Rust, а также влияние этих обсуждений на разработку ядра Linux и взаимодействие с другими языками программирования.
  • Участники обсуждали, что сложность Rust может быть препятствием для новых разработчиков, но также отметили, что сложность C++ может быть еще более запутанной.
  • Обсуждались вопросы о том, как влияет на разработку ядра Linux внедрение Rust, и были высказаны мнения, что это может быть экспериментом, который следует проводить в другом месте.
  • Также обсуждались вопросы о том, какие функции Rust могут быть полезны для разработки ядра Linux и какие функции Rust могут быть полезны для разработки ядра Linux.
  • В конце обсуждение перешло к вопросу о том, какие функции Rust могут быть полезны для разработки ядра Linux и какие функции Rust могут быть полезны для разработки ядра Linux.

Using Claude Code to modernize a 25-year-old kernel driver (dmitrybrant.com) 🔥 Горячее 💬 Длинная дискуссия

  • Увлечение — восстановление данных с кассет QIC-80 90-х гг.
  • Драйвер ftape (Linux 2.4) последний раз собирался ~2000 г.; с тех пор приходится держать CentOS 3.5.
  • Привод подключается к контроллеру гибкого диска: дёшево, но 500 Кбит/с и куча «магии» портов/IRQ.
  • Под DOS/Windows есть проприетарные утилиты, но только ftape даёт «сырой» дамп, независимо от формата ПО, которое писало кассету.

Цель: переписать драйвер под современное ядро без боли.
Инструмент — Claude Code (Claude 3.5 Sonnet) в режиме «актов» (акт = автоматический цикл «предложи-отладь-протестируй»).

Ход работы

  1. Запустил claude в каталоге исходников ftape-4.04 (1999 г.).
  2. Первый акт: «сделай модуль для ядра 6.10». Claude выдал:
    • заменил cli/sti на spinlock_t;
    • sleep_onwait_event;
    • register_blkdevblk_mq;
    • kmallockmalloc_array;
    • добавил MODULE_LICENSE/AUTHOR/DESCRIPTION.
      Собралось с десятком предупреждений.
  3. Акт 2: «убери варнинги». Убрал устаревшие ioctl, обернул printk в pr_*, добавил fallthrough;.
  4. Акт 3: «проверь на x86_64». Исправил longint в структурах, выровнял u8/u16 через __packed.
  5. Акт 4: «протестируй на железе». Создал QEMU-образ с контроллером FDC, подключил образ кассеты.
    • первый insmod — kernel oops; Claude добавил BUG_ON(!request_region) и проверку IRQ.
    • второй — ftape видит привод, но «unknown format»; Claude вставил распознавание QIC-80 по ID_CRC.
    • третий — успешный дамп 120 Мб за 40 мин.
  6. Акт 5: «очисти и оформи». Удалил весь #ifdef LINUX_2_0, добавил README.md, Kconfig, Makefile для in-tree сборки.

Результат

  • 2 500 строк C → 1 100; 45 файлов → 12; минус 4 архаичных под-драйвера.
  • Собирается как out-of-tree (6.6–6.12) и как in-tree (патч 30 Кб).
  • Скорость 470 Кбит/с — предел FDC, но стабильно.
  • Поддержаны только QIC-80; QIC-40/3010/3020 выкинуты (никто не просил).

Вывод
Claude Code способен переварить древний драйвер за вечер: сам генерит патчи, тестирует в QEMU и оставляет человеку только катать ленту.

by dmitrybrant • 07 сентября 2025 г. в 23:53 • 832 points

ОригиналHN

#c#claudecode#device-drivers#hardware#kernel#linux#llm#qemu

Комментарии (275)

  • Claude Code и другие LLM-инструменты превращаются в «силовой множитель» для разработчиков: ускоряют работу в знакомых фреймворках и позволяют быстро осваивать новые.
  • Главное — самому понимать, что делаешь: чёткие промты, ключевые слова предметной области и умение сверять результат критически снижают количество багов.
  • Примеры успеха: порт драйвера ftape с Linux 2.4 на 6.8, апгрейд Pydantic V1→V2, inline-ASM под Apple, модернизация 15-летнего PHP-кода — всё за часы вместо недель.
  • Самые ценные фичи: долгие процессы в терминале, автоматическая проверка своего кода, быстрое написание тестов и бенчмарков «на заказ».
  • Безопасность: при работе с sudo-операциями или ядром итерации лучше вести вручную, чтобы LLM не сломала систему.

The future of 32-bit support in the kernel (lwn.net) 💬 Длинная дискуссия

32-битные системы устарели, но ядро всё ещё их поддерживает из-за старого «железа» и ПО.
Arnd Bergmann: новые продукты уже 20 лет выходят на 64-битных платформах; встраиваемые устройства постепенно переходят с armv7 (32-бит) на armv8 (64-бит).

  • Arm: 90 % встраиваемых систем; лишь три старые архитектуры до-armv7 ещё можно купить, но ядро держит десяток выведенных из производства. Поддержку можно выбрасывать «по половинам», когда исчезнут пользователи.
  • Другие 32-битные архитектуры (arc, microblaze, nios2, openrisc, rv32, sparc/leon, xtensa) вытесняются RISC-V.
  • nommu (armv7-m, m68k, superh, xtensa) никто не выпускает, их держат лишь ради существующих систем.

Для несовместимых 32-битных приложений — запуск 32-битного userspace на 64-битном ядре: экономит память, не требует 32-битного ядра.

Боль разработчиков:

  • Высокая память (highmem) усложняет mm-подсистему; нужна, когда физической памяти > ~800 МБ.
  • Ядро пока держит 32-битные машины до 16 ГБ, но таких почти нет; 4 ГБ встречаются (Chromebook), 2 ГБ — чаще, но «глупо»: память дороже CPU.

by binarycrusader • 01 сентября 2025 г. в 18:48 • 246 points

ОригиналHN

#32-bit#64-bit#arm#embedded-systems#highmem#kernel#linux#mmu#risc-v

Комментарии (256)

  • Участники обеспокоены удалением поддержки nommu/32-бит: это уменьшает свободу, лишает возможности запускать Linux на старом или простом железе и делает ядро похожим на «дорожную карту» Apple/Windows.
  • Некоторые предлагают форк «Linux Legacy» или переход на NetBSD/OpenBSD, которые по-прежнему поддерживают старые архитектуры.
  • Для встраиваемых устройств без MMU считают более подходящими Zephyr, NuttX или Contiki, а не полноценный Linux.
  • Поддержка big-endian почти мертва, но сохранится, пока IBM вкладывается в s390x.
  • Старые ядра и LTS-дистрибутивы ещё десятилетие обеспечат безопасность и работу выброшенного железа.

The issue of anti-cheat on Linux (2024) (tulach.cc) 💬 Длинная дискуссия

Почему античиты не работают в Linux

Доля геймеров на Linux растёт благодаря Steam Deck и надоедливым «фичам» Windows. Однако почти все сетевые хиты с античитом не запускаются или не подключаются к серверам: PUBG, Call of Duty, Rust, R6 Siege, EA FC 24, Destiny 2, Valorant, League of Legends и даже FACEIT/ESEA для CS2.

Как работают читы и античиты

Чит либо внешний процесс, читающий/писующий память игры, либо внедрённая DLL. ОС не даёт процессам трогать чужую память благодаря виртуальному адресному пространству: каждая программа «думает», что владеет всей ОЗУ, а процессор и ядро переводят виртуальные адреса в реальные.

Античиты борются с этим двумя путями:

  1. Пользовательский режим – сканируют память, читают файлы, ловят подозрительные потоки. Легко обойти, если у чита есть root-доступ.
  2. Ядро (kernel) – драйвер внутри ядра Windows имеет полный доступ к железу и памяти, может скрывать свои структуры и блокировать вмешательство. Vanguard, EAC, BattlEye и пр. работают именно так.

Почему это невозможно в Linux

  • Linux — открытая система. Любой может собрать своё ядро, поставить патч, изменить ABI.
  • Античиту нужен стабильный, неизменяемый и закрытый интерфейс ядра. В Linux этого нет: модуль, собранный под 6.9, не загрузится под 6.10, а пользователь может вообще отключить модульные загрузки.
  • Даже если разработчик выпустит проприетарный модуль, сообщество его не примет: безопасность, GPL-лицензия, репутационные риски.
  • Попытки «запечатать» Linux (secure boot + immutable образ) противоречат свободе системы и всё равно не гарантируют, что пользователь не пересоберёт ядро без проверок.

Что можно сделать

  1. Играть в поддерживаемые игры: Apex, Fortnite, CS2, Elden Ring и др. уже работают через Proton.
  2. Двойная загрузка или VFIO-виртуалка – запуск Windows в виртуальной машине с проброской GPU (сложно, но работает).
  3. Облачный гейминг – GeForce NOW, Xbox Cloud и т.д.
  4. Ждать – пока разработчики не придумают античит, который не требует закрытого ядра (маловероятно).

Вывод: пока Linux остаётся открытой системой, современные kernel-level античиты там жить не смогут.

by todsacerdoti • 22 августа 2025 г. в 01:09 • 129 points

ОригиналHN

#anti-cheat#cloud-gaming#gaming#gpu#kernel#linux#proton#secure-boot#virtualization

Комментарии (226)

  • Критики считают, что анти-чит на уровне ядра — это по сути rootkit, который подрывает безопасность и конфиденциальность.
  • Многие предлагают альтернативы: доверительные сообщества, выделенные игровые машины, серверные проверки или облачные платформы.
  • Подчеркивается, что Linux по дизайну даёт пользователю полный контроль, что делает невозможным эффективный, но инвазивный анти-чит.
  • Некоторые игроки готовы пожертвовать безопасностью ради «честной» игры, но большинство участников обсуждения считают такой обмен неприемлемым.

AnduinOS (anduinos.com) 💬 Длинная дискуссия

AnduinOS — лёгкий, приватный, бесплатный дистрибутив на базе Ubuntu.
ISO 2 ГБ, GNOME-оболочка, Flatpak-приложения, никакого слежения.
Совместим с пакетами Ubuntu, подходит для работы, игр, сервера и обучения.

Версии

  • LTS 1.1 (Noble Numbat) — до апреля 2029, GNOME 46, ядро 6.11, стабильность.
  • Standard 1.3 (Plucky Puffin) — до января 2026, GNOME 48, ядро 6.14, новейшие функции.

Ссылки

«Переход с Windows прошёл безболезненно, система лёгкая и красивая» — пользователи.

by TheFreim • 19 августа 2025 г. в 18:42 • 134 points

ОригиналHN

#flatpak#gnome#kernel#linux#lts#os#ubuntu#windows

Комментарии (179)

  • Многие спутали название «AnduinOS» с «ArduinoOS».
  • Это одиночный проект китайского инженера Microsoft: ремикс Ubuntu с GNOME, стилизованным под Windows 11.
  • Критика: «distro-дистро-дистро» не заслуживает звания OS, не ясен уникальный посыл по сравнению с Mint/Ubuntu.
  • Плюсы: простая установка Flatpak, может помочь консервативным пользователям перейти с Windows.
  • Минусы: нет ARM-сборки, в скриншотах замечен сомнительный WPS Office, отсутствует описание отличий от Ubuntu.