Hacker News Digest

Тег: #arm64

Постов: 11

Defeating KASLR by doing nothing at all (googleprojectzero.blogspot.com)

Исследователи Project Zero обнаружили уязвимость в защите KASLR на устройствах Android с процессорами arm64. Оказалось, что из-за поддержки горячего подключения памяти (memory hotplug) линейное отображение ядра больше не рандомизируется, а PHYS_OFFSET всегда имеет фиксированное значение 0x80000000. На Pixel-телефонах загрузчик дополнительно распаковывает ядро по одному и тому же физическому адресу (0x80010000) при каждой загрузке, что делает возможным статическое вычисление виртуальных адресов для любых данных ядра.

Эта уязвимость позволяет злоумышленникам с примитивом для произвольной записи обходить KASLR без сложных техник утечки адресов. Исследователь Seth Jenkins продемонстрировал, как с помощью формулы phys_tovirt(x) = ((x) - 0x80000000) | 0xffffff8000000000 можно точно вычислять виртуальные адреса для ядерных структур, таких как modprobe_path. Команда разработала инструмент bpf_arb_read для чтения экспортируемых переменных ядра, что упрощает эксплуатацию этой уязвимости.

by aa_is_op • 04 ноября 2025 г. в 10:52 • 81 points

ОригиналHN

#kaslr#android#arm64#memory-hotplug#google-pixel#bpf-arb-read#kvm#project-zero

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

  • Hendrikto сообщил о двух проблемах: отсутствии рандомизации линейного отображения и статичном физическом адресе загрузки ядра в Pixel, но обе считаются ожидаемым поведением.
  • Google Pixel может добавить рандомизацию физических адресов ядра позже, но конкретных планов по устранению проблем нет.
  • i-con указывает на параллель с уязвимостью в KVM (проект Rain) и сомневается в необходимости постоянного отображения всей физической памяти.

Encoding x86 Instructions (www-user.tu-chemnitz.de)

x86 инструкции действительно заслуживают название Complex Instruction Set Computer (CISC) из-за своей чрезвычайно сложной структуры. Инструкции могут достигать 15 байт в длину, включая префиксные байты, которые изменяют поведение существующих команд, а не расширяют opcode. Процессор поддерживает два основных типа opcode: стандартный 1-байтовый и расширенный 2-байтовый с префиксом 0Fh, что теоретически позволяет до 512 различных классов инструкций. Бит направления (d) в opcode определяет направление передачи данных, а бит размера (s) указывает на 8-битные (s=0) или 16/32-битные (s=1) операнды.

Ключевым элементом является MOD-REG-R/M байт, который определяет операнды и режимы адресации. Поле MOD указывает на режим адресации (00-11), REG определяет регистр (от AL до EDI в зависимости от размера данных), а R/M совместно с MOD указывает второй операнд или единственный операнд для команд вроде NOT. Общие регистры (EAX, EBX, ECX и др.) обеспечивают быстрый доступ к данным, так как процессор работает с ними значительно быстрее, чем с памятью. 32-битные регистры содержат в себе свои 16-битные и 8-битные аналоги, что позволяет гибко работать с данными разных размеров.

by st_goliath • 29 октября 2025 г. в 17:50 • 79 points

ОригиналHN

#x86#cisc#assembly#opcode#registers#addressing-modes#8086#arm64

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

  • Обсуждение началось с размышлений о сложности кодирования инструкций в x86 и ARM64, где последний оказался значительно проще в этом плане.
  • Участники обменялись ссылками и инструментами, включая вики-страницу "x86 is an octal machine" и репозиторий Paul Hsieh's.
  • Была затронута тема эволюции процессора: сравнение 8086 и современных чипов, а также затрагивающая влияние на эффективность кода.
  • Обсуждались трудности с кодированием инструкций в x86, включая непредсказуемость длины кода и сложность дешифрации.
  • В итоге, участники сошлись на том, что эволюция процессора и архитектуры влияет на эффективность кода, и что важно адаптироваться к изменениям.

Zed is now available on Windows (zed.dev) 🔥 Горячее 💬 Длинная дискуссия

Разработчики Zed анонсировали полноценную версию редактора кода для Windows. Теперь он доступен как в стабильной, так и в тестовой версии, причём последняя обновляется еженедельно. Zed на Windows использует DirectX 11 для рендеринга и DirectWrite для рендеринга текста, что обеспечивает нативное соответствие платформе.

Ключевая особенность — глубокая интеграция с WSL и SSH: пользователи могут открывать папки из WSL прямо в Zed, а все операции I/O происходят через удалённое соединение. Это распространяется на все функции, включая работу с Git, терминалами и отладчиками.

Расширения Zed, основанные на WebAssembly, работают на Windows без дополнительных настроек. Они изолированы через WASI, что обеспечивает безопасность и прозрачность работы с файлами.

Команда призывает пользователей тестировать Zed на Windows, особенно в контексте WSL, различных мониторов и сложных конфигураций клавиатур. Отзывы помогут ускорить фиксацию багов и улучшение платформы.

by meetpateltech • 15 октября 2025 г. в 16:24 • 502 points

ОригиналHN

#zed#windows#wsl#ssh#webassembly#wasi#git#directx#directwrite#arm64

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

  • Основные проблемы: отсутствие DevContainer, медленный LSP-ответ, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нт поддержки ARM64, нет поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки WSL, нет поддержки ARM64, нт поддержки DevContainer, нет поддержки WSL, нет поддержки ARM64, нет поддержки DevContainer, нт поддержки

Nvidia DGX Spark: great hardware, early days for the ecosystem (simonwillison.net)

NVIDIA представила DGX Spark - настольный "суперкомпьютер" для ИИ размером с Mac mini, стоимостью около $4,000. Внутри скрывается ARM64-система с 20-ядерным процессором, 128 ГБ ОЗУ и 3.7 ТБ SSD, а также мощный GPU NVIDIA GB10 на архитектуре Blackwell с 119.68 ГБ памяти. Устройство нацелено на исследователей ИИ, предназначено как для обучения, так и для запуска моделей.

Основная проблема - совместимость CUDA с ARM64. Большинство библиотек и туториалов предполагают x86-архитектуру, что создает множество сложностей при настройке. Автору удалось найти PyTorch 2.7 для CUDA на ARM, но не для версии 2.8. NVIDIA пытается упростить задачу через официальные Docker-контейнеры, а за последний недобю опубликовала обширную документацию, которой не хватало изначально.

by GavinAnderegg • 15 октября 2025 г. в 00:49 • 146 points

ОригиналHN

#nvidia#dgx-spark#cuda#arm64#pytorch#docker#gpu#llm#machine-learning#blackwell

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

  • Обсуждение в основном вращается вокруг сравнения DGX Spark с другими решениями: пользователи отмечают, что при цене в $70 000 он уступает RTX 5090 в производительности и даже RTX 4090, а единственное преимущество — 128 ГБ видеопамяти — ограничено пропускной способностью, что делает его неэффективным для инференса больших моделей.
  • Участники также поднимают вопросы о цене, отсутствии DisplayPort и возможности подключения к обычному монитору, а также о том, что DGX Spark не может использоваться для обучения из-за ограниченной памяти и отсутствия NVLink.
  • Некоторые комментаторы сравнивают его с MacBook Pro на Apple Silicon, отмечая, что ноутбук дешевле и при этом предлагающий 128 ГБ единой памяти может быть более практичен для инференса.
  • Также обсуждается, что NVIDIA в целом не предоставляет нужного ПО для ARM64, что делает его менее привлекательным, и что в целом экосистема CUDA вокруг ARM64 остается сырой.

We found a bug in Go's ARM64 compiler (blog.cloudflare.com) 🔥 Горячее

Cloudflare столкнулся с редким, но критичным багом в компиляторе Go для ARM64: при раскрутке стека может возникнуть race condition, что приводит к фатальному панику. Подробный разбор показал, что проблема в том, что компилятор неправильно генерирует барьер-инструкции, необходимые для безопасной работы с памятью. Это подтверждено исследованием исходников Go и ARM-мануалов. В итоге Cloudflare не только предоставила подробный отчет и тест-кейс в апстрим, но и предложила временное решение, которое уже встроено в их инфраструктуру и позволяет избежать проблемы до официального патча.

by jgrahamc • 08 октября 2025 г. в 13:33 • 799 points

ОригиналHN

#go#arm64#cloudflare#compiler#memory-management

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

  • Компилятор Go имел баг, из-за которого при определённом сочетании инструкций в ARM64-версии Go могла прерваться сборка мусора, что приводило к нестабильности. Исправление уже в коммите f7cc1e5 и войдёт в Go 1.20.
  • Обсуждение подняло вопрос о том, насколько редки такие баги компиляторов в наши дни и какие факторы этому способствуют.
  • Некоторые комментаторы поделились историями о том, как в прошлом им приходилось сталкиваться с багами компиляторами даже в таких "безопасных" языках как Go.
  • Обсуждение также затронуло вопрос о том, насколько критично было быстрое обновление, и было отмечено, что Cloudflare уже использует ARM-серверы в продакшене.

Edge264 – Minimalist, high-performance software decoder for H.264/AVC video (github.com)

Проект edge264 представляет собой простой декодер H.264, написанный на C. Он предназначен для образовательных целей и демонстрации базовых принципов работы с видеокодеком, избегая сложностей промышленных реализаций. Код легко читается и модифицируется, что делает его полезным для изучения алгоритмов сжатия видео.

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

by andsoitis • 01 октября 2025 г. в 21:00 • 144 points

ОригиналHN

#h.264#c#video-decoding#codec#arm64#macos#github

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

  • Отмечена сложность и значительный объем работы по созданию видеокодека, автору высказаны похвалы.
  • Обсуждены технические детали реализации: доступ к макроблокам, использование переменной окружения VARIANTS для оптимизации под разные процессоры.
  • Высказано сомнение в целесообразности поддержки Apple Silicon из-за наличия аппаратных декодеров и альтернатив в виде libavcodec.
  • Поднят вопрос об архитектуре проекта: использование нескольких исполняемых файлов вместо multiversioning функций.
  • Упомянута возможность сборки и работы кодеков на ARM64 Mac OS X, несмотря на заявленное отсутствие поддержки.

Pop OS 24.04 LTS Beta (system76.com) 🔥 Горячее 💬 Длинная дискуссия

System76 выпустила бета-версию Pop!_OS 24.04 LTS с новой средой рабочего стола COSMIC, полностью разработанной внутри компании. Ключевые изменения включают замену стандартных GNOME-приложений на COSMIC-аналоги: Files, Terminal, Text Editor и Media Player, а также обновлённый магазин приложений COSMIC Store. Для установки требуется отключить Secure Boot в BIOS, рекомендуется минимум 4 ГБ ОЗУ и 16 ГБ места.

Известные проблемы беты: несохранение избранных приложений из предыдущей версии, временное отключение PPA при обновлении, ограниченная поддержка перетаскивания файлов между Wayland и X11-приложениями. Также ожидаются баги в играх и отсутствие экранной подсказки для переключения дисплеев. Выпуск финальной версии намечен после исправления ошибок.

by agluszak • 26 сентября 2025 г. в 09:20 • 352 points

ОригиналHN

#pop-os#cosmic#gnome#wayland#x11#nvidia#secure-boot#arm64

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

  • Пользователи положительно оценивают новый рабочий стол Cosmic DE за его функциональность, включая панель на всех экранах и улучшенное управление окнами, по сравнению с GNOME.
  • Некоторые пользователи выражают скептицизм относительно готовности Cosmic DE к релизу, отмечая проблемы с драйверами Nvidia, отсутствие поддержки Secure Boot и ARM64, а также сыроватый интерфейс.
  • Многие пользователи успешно используют Pop!_OS на старом оборудовании (например, MacBook Pro 2014 года), хотя иногда требуется ручная настройка Wi-Fi и других компонентов.
  • Обсуждаются преимущества Pop!_OS, такие как предустановленные драйверы Nvidia в Live ISO и режим тайлинга, а также сравнивается Cosmic с другими средами, такими как Hyprland и Sway.
  • Высказываются опасения, что небольшой команде System76 может не хватить ресурсов для долгосрочной поддержки собственной среды рабочего стола, и отмечается медленный темп разработки.

CompileBench: Can AI Compile 22-year-old Code? (quesma.com)

Современные ИИ-модели демонстрируют впечатляющие способности в генерации кода, но сталкиваются с серьёзными трудностями при работе с реальными задачами компиляции — устаревшими инструментами, зависимостями и кроссплатформенной сборкой. CompileBench протестировал 19 моделей на 15 практических заданиях, включая сборку проектов вроде curl и jq, компиляцию под Windows/ARM64 и даже оживление 22-летнего кода 2003 года. Некоторые агенты выполняли до 135 команд за 15 минут для получения рабочего бинарного файла.

Anthropic модели Claude Sonnet и Opus заняли лидирующие позиции по успешности сборки, подтверждая свою репутацию среди разработчиков. OpenAI модели, особенно GPT-5-mini, показали лучшую ценовую эффективность, балансируя между скоростью и качеством. Gemini от Google неожиданно провалился: модели часто игнорировали спецификации задач, например, создавали динамические вместо статических сборок, несмотря на чёткие требования.

by jakozaur • 22 сентября 2025 г. в 12:59 • 126 points

ОригиналHN

#llm#compilation#benchmarking#legacy-code#cross-compilation#arm64#claud#gpt-5#gemini

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

  • Сложность сборки и кросс-компиляции legacy-проектов (Chocolate Doom, curl) на современных системах, включая ARM64.
  • Способность ИИ (особенно Claude Opus) автоматически исправлять ошибки сборки, хотя процесс может занимать много времени и команд.
  • Предложения расширить бенчмарки более сложными проектами (FFmpeg, Chromium, Qt) и проверкой корректности через тесты и санитайзеры.
  • Скептицизм относительно способности ИИ гарантировать корректность итогового бинарного кода после автоматических правок.
  • Практическая ценность автоматизации рутинных задач по настройке toolchain и портированию старого кода.

DXGI debugging: Microsoft put me on a list (slugcat.systems) 🔥 Горячее

Разработчик пытался запустить игру Space Station 14 на ARM64 под Windows, но клиент крашился без логов. С помощью WinDbg выяснилось, что падение происходит в USER32!GetDC из-за недопустимой инструкции. Проблема усугублялась путаницей в архитектурах: WinDbg запускал x64-отладчик для x64-лаунчера, хотя целевые процессы были ARM64-нативными. После прямого запуска ARM64-исполняемого файла отладка заработала корректно, включая стектрейсы C#. Оказалось, что WinDbg автоматически переключает режим отладки в зависимости от архитектуры запускаемого процесса, что сбивало с толку при анализе дочерних процессов.

by todsacerdoti • 21 сентября 2025 г. в 14:45 • 270 points

ОригиналHN

#windows#dxgi#windbg#arm64#debugging#directx#compatibility#api#microsoft

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

  • Microsoft и другие компании используют списки совместимости, основанные на имени исполняемого файла, для применения оптимизаций или исправлений, что может вызывать непредсказуемые проблемы.
  • Данная практика широко распространена не только в Windows (DirectX, драйверы GPU), но и на других платформах (Linux, Proton) для обеспечения обратной совместимости.
  • Подход Microsoft к реализации функций через перехват API-вызовов (Detours) без использования централизованной системы совместимости (AppCompat) критикуется как ненадежный.
  • Обнаружение причины проблемы (совпадение имени файла с списком) потребовало от разработчика значительных усилий и глубоких знаний системного уровня.
  • Многие комментаторы выражают удивление и недовольство подобными непрозрачными механизмами, влияющими на поведение программ без ведома разработчиков.

Raspberry Pi 5 support (OpenBSD) (marc.info)

  • Модуль: src

  • Изменил: mglocker@cvs.openbsd.org, 01.09.2025

  • Файлы:
    distrib/arm64/iso/Makefile
    distrib/arm64/ramdisk/Makefile install.md list

  • Суть: добавлена поддержка Raspberry Pi 5 Model B в RAMDISK.

  • Проблемы:

    • Не грузится с PCIe-накопителей (нет U-Boot).
    • Wi-Fi на платах «d0» не работает.
    • Кулер не крутится — отсутствуют драйверы PWM/clock.

Утверждено: kettenis@, deraadt@

by brynet • 01 сентября 2025 г. в 21:03 • 214 points

ОригиналHN

#raspberry-pi#openbsd#arm64#pwm#uefi#wireguard#httpd#spamd#pci

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

  • На Raspberry Pi 5 и CM5 в OpenBSD пока не работает Wi-Fi (на «d0»-ревизии плат) и не крутится активный кулер — не хватает драйверов PWM/clock.
  • Поддержка всё ещё неполная: аппаратный старт происходит через GPU, документации мало, поэтому U-Boot и драйверы догоняют медленно.
  • На Pi 4 OpenBSD уже запускается стабильно, но нужны свежие прошивка и UEFI, а также сторонний firmware для использования >3 ГБ ОЗУ.
  • Плюсы OpenBSD на ARM: чистая и последовательная система, «всё в базе» (httpd, spamd, WireGuard через ifconfig), можно носить «сервер в кармане».
  • Минусы: нет power-saving на ARM64, после неожиданного отключения могут поломаться системные файлы, а список поддерживаемого «железа» ограничен.

Booting 5000 Erlangs on Ampere One 192-core (underjord.io)

Ampere One 192-ядерный сервер, 1 ТБ ОЗУ, цель — запустить максимум виртуальных IoT-устройств на Nerves.

Прошлый раз добрались до 500 экземпляров; теперь с KVM и новым загрузчиком little_loader от Frank Hunleth удалось 5000 одновременных виртуальных ARM64-машин.
little_loader — минимальный ARM64-бутлоадер, читающий переменные u-boot, загружающий ядро Linux и сохраняющий механизмы A/B-обновлений Nerves.

Что изменилось

  • KVM/HVF ускоряет старт до 1-2 с и экономит ≈ 500 МБ ОЗУ на гость.
  • EL1 вместо EL2: EL2 нужен для вложенной виртуализации, нам не требуется.
  • Баг компиляции: release-сборка зависает, debug-версия работает (GCC 15, вероятно, чинит).

Команда запуска (упрощённый пример):

qemu-system-aarch64 \
  -machine virt,accel=kvm \
  -cpu host -smp 1 -m 150M \
  -kernel little_loader.elf \
  -netdev user,id=eth0 \
  -device virtio-net-device,netdev=eth0 \
  -drive if=none,file=disk.img,format=raw,id=vdisk \
  -device virtio-blk-device,drive=vdisk \
  -nographic

Итог: 5000 «эрлангов» на 192 ядрах, 1 ТБ ОЗУ, стартуют за секунды, потребляют по 150 МБ RAM.

by ingve • 10 августа 2025 г. в 11:41 • 207 points

ОригиналHN

#erlang#arm64#kvm#qemu#nerves#iot#cloud#gcc

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

  • Речь идёт о запуске 5000 узлов BEAM (Erlang-машин), а не процессов — каждая BEAM может держать миллионы лёгких процессов.
  • Сервер с 192 Ampere-ядрами позиционируется как «облачный» или «edge» для телекомов; Hetzner предлагает 80-ядерный Ampere за ~200 $/мес.
  • Пользователи сомневаются в полезности без тестов под нагрузкой и обсуждают, как масштабировать память и шину при таком числе ядер.
  • Всплыли исторические примеры (Azul для Java) и шутки про «ручное ткачество» Erlang-потоков и «фермерский» байт-код.