Vibe Code Warning – A personal casestudy 🔥 Горячее 💬 Длинная дискуссия
В предоставленном тексте отсутствует основное содержимое репозитория GitHub "jackdoe/pico2-swd-riscv", представлено только навигационное меню сайта. Судя по названию проекта, вероятно, это реализация интерфейса отладки SWD (Serial Wire Debug) для платформы на базе RISC-V, возможно, связанная с Raspberry Pi Pico 2. Однако без доступа к файлам проекта, README или описанию невозможно дать точное резюме.
Для создания качественного пересказа необходима информация о содержимом репозитория: описание проекта, схемы, исходный код, документация или обсуждения. Пожалуйста, предоставьте основное содержимое страницы проекта, и я подготовлю точное и ёмкое резюме в соответствии с вашими требованиями.
Комментарии (231)
- Разработчики признают, что LLM-генерированный код лишает их ощущения «собственного» кода и ментальной модели, но считают это неизбежной ценой прогресса.
- Сообщество HN в очередной раз поднимает тему «вайб-кодинга» как симптома упадка ремесла и утраты смысла.
- В то же время, авторы поста отмечают, что даже при полном отказе от написания кода в пользу LLM, остаётся необходимость владеть базовыми навыками для верификации и рефакторинга.
- Обсуждение выходит за рамки самого феномена: участники затрагивают вопросы авторского права, лицензий и ответственности за сгенерированный код, а также то, как далеко может зайти эта тенденция.
Ironclad – formally verified, real-time capable, Unix-like OS kernel 🔥 Горячее
Ironclad — это формально верифицируемый, реального времени, UNIX-подобный ядро операционной системы общего назначения и встраиваемых систем, написанное на SPARK и Ada. Проект полностью свободный и распространяется под лицензией GPLv3. Ключевые особенности включают POSIX-совместимый интерфейс, одновременное вытесняющее многозадачность, обязательный контроль доступа (MAC) и поддержку жёсткого реального времени.
Главное преимущество Ironclad — формальная верификация с помощью SPARK для критических компонентов, таких как криптография и MAC. Система полностью портативна и зависит только от GNU toolchain, что упрощает кросс-компиляцию. Проект поддерживает дистрибутивы для всех доступных архитектур, наиболее заметный из которых — Gloire. Ironclad всегда будет бесплатным для использования, изучения и модификации, а финансируется за счёт пожертвований и грантов от NLnet и Европейской комиссии.
Комментарии (107)
- Участники сомневаются в степени формальной верификации Ironclad, сравнивая его с более строгими аналогами вроде seL4 и Tock, и указывают на отсутствие доказательства ключевых свойств ядра.
- Проект написан на SPARK и Ada, поддерживает x86_64 и RISC-V, но не ARM64; его лицензия включает бесплатную версию с возможностью коммерческого использования.
- Основные альтернативы: seL4 (быстрый и строго верифицируемый), Genode (POSIX-совместимый слой), Asterinas и Redox (Linux-совместимые ядра), а также ReactOS и SerenityOS.
- Критика включает медленную производительность по сравнению с seL4, отсутствие capability-based безопасности и потенциальные проблемы на уровне прошивки.
- Уточнено, что формальная верификация — это не тестирование, а математическое доказательство соответствия спецификации, а "бесплатность" ПО может относиться только к лицензии.
Easy RISC-V 🔥 Горячее
—
Комментарии (69)
- Обсуждение охватывает отзывы о взаимодействии с интерактивным руководством, его охват и влияние на обучение RISC-V, а также сравнение с другими архитектурами и эмуляторами.
- Участники обсуждают, что интерактивный формат делает архитектуру более доступной, но упрекают в отсутствии визуального компонента, подобного тому, что есть в Easy6502.
- Обсуждается влияние книги Паттерсона и Хеннесси на развитие RISC-V и сравнение с MIPS и другими архитектурами.
- Участники делятся личным опытом обучения на R
Writing a RISC-V Emulator in Rust
Создание эмулятора RISC-V на Rust — это активно развивающийся проект, позволяющий собрать 64-битный эмулятор с нуля. После завершения курса вы сможете запускать в нем xv6 — простую Unix-подобную операционную систему. Проект охватывает основы компьютерной архитектуры: ISA, привилегированный режим, исключения, прерывания, периферийные устройства и системы виртуальной памяти. Исходный код доступен на GitHub в репозитории d0iasm/rvemu-for-book.
Проект разделен на два основных раздела: в первом рассматриваются аппаратные компоненты, необходимые для работы xv6, включая процессор с двумя инструкциями, память, системную шину, регистры управления и состояния, а также контроллеры прерываний и UART. Второй раздел посвящен наборам инструкций, начиная с базового RV64I Integer и включая расширения "M" для умножения и деления, и "A" для атомарных операций.
Комментарии (39)
- Доступны только первые три главы из десяти.
- Рекомендация использовать ассемблер для реализации.
- Наличие rv64-интерпретатора на x86_64 ассемблере.
Making a micro Linux distro (2023)
В статье рассматривается создание микро-Linux дистрибутива с нуля, включая сборку ядра Linux и разработку ПО для упаковки. Пример реализован для архитектуры RISC-V (QEMU riscv64 virt), но подход применим и к x86. Автор предупреждает, что это упрощенное представление Linux-дистрибутива, предназначенное для начинающих, и некоторые детали могут быть неточны на 0.1%.
Ядро операционной системы выполняет несколько ключевых функций: обеспечивает одновременное выполнение программ даже на одноядерных устройствах, абстрагирует низкоуровневые операции с оборудованием, предоставляя разработчикам простые высокоуровневые интерфейсы. Вместо того чтобы знать физические адреса устройств, приложения просто сообщают ядру о своих потребностях (например, "вывести сообщение на стандартный вывод"). Также ядро предоставляет файловые системы как интерфейсы для взаимодействия с данными, которые могут храниться не только на дисках, и создает программную модель, позволяющую приложениям работать независимо, не зная друг о друге.
Комментарии (28)
- Обсуждение вращается вокруг создания минимальной Linux-системы: от идеи до практических нюансов (UEFI, cloud-init, PXE, initramfs, cpio, u-root, kexec, Gentoo vs LFS vs Buildroot).
- Участники делятся опытом, что «маленькая» сборка может быть полезна как для обучения, так и для практического применения (например, как образ для облачных инстансов).
- Обсуждаются различные инструменты и подходы: от полностью статически слинкованных бинарников до полноценных дистрибутивов, а также варианты с использованием u-root, kexec, initramfs, cpio, PXE и т.д.
- Участники также обсуждают, что такие мини-дистрибутивы могут быть полезны для обучения, отладки и даже как основа для специализированных образов (например, для RPi или как образ для облачных провайдеров).
Compare Single Board Computers
sbc.compare — это платформа для сравнения одноплатных компьютеров (SBC), помогающая выбрать оптимальную платформу для проекта. Сайт предлагает обширные бенчмарки, технические характеристики и данные реальной производительности для сотен альтернатив, включая Raspberry Pi, Orange Pi и Radxa. Пользователи могут искать платы по архитектуре (ARM, x86, RISC-V), количеству ядер, объёму ОЗУ и цене, а также сравнивать до трёх устройств одновременно. На сайте представлены популярные сравнения, такие как Raspberry Pi 5 против Pi 4 или Orange Pi 5B.
Платформа особенно полезна для принятия решений об обновлении оборудования — например, при выборе между сохранением Raspberry Pi 4 или переходом на более новую модель. Интерфейс интуитивно понятен: поиск нужных плат, добавление их в список сравнения и детальный анализ различий в производительности. Ресурс охватывает как широко известные модели, так и менее популярные альтернативы, предоставляя пользователям полную картину доступных на рынке решений.
Комментарии (75)
- Пользователи обсуждают, что для встраиваемых проектов важнее всего поддержка периферии и ПО, а не «сырой» производительности, и отмечают, что у большинства SBC его нет.
- Создатель сайта отвечает, что в базе уже есть фильтры по Wi-Fi, Ethernet, PoE и прочим интерфейсам, но пока не хватает данных; обещает, что как только они появятся, появится и поиск по ним.
- Участники обсуждают, что Raspberry Pi и прочие SBC не подходят для промышленного применения из-за отсутствия гарантий и долгосрочной поддержки.
- Создатель сайта отвечает, что вендоры вроде Radxa и Libre Computer предлагают альтернативы, и что у них есть модули вычислений и стандартые 40-pin GPIO.
- Пользователи жалуются на отсутствие в списке таких девайсов как Orange Pi 5 и что не все модели отображаются корректно.
- Создатель сайта отвечает, что он не может найти Orange Pi 5 и что он не может добавить новые платы, пока не будет у него полные спецификации.
How to create an OS from scratch
Этот репозиторий содержит пошаговое руководство по созданию операционной системы с нуля на языке C и ассемблере. Он охватывает основы загрузки, управления памятью, прерываний и файловых систем, предлагая практический опыт низкоуровневого программирования.
Проект структурирован как серия уроков, каждый из которых добавляет новую функциональность, начиная с простого загрузчика и заканчивая многозадачностью. Это отличный ресурс для понимания внутреннего устройства ОС и работы с аппаратным обеспечением напрямую.
Комментарии (69)
- Создание ОС с нуля на базе устаревшего BIOS и x86 рассматривается как учебный, но непрактичный путь, погружающий в исторические детали архитектуры вместо современных концепций.
- Многие проекты ОС остаются незавершенными из-за сложности поддержки железа и драйверов, что является рутинной и нетривиальной задачей.
- В качестве более актуальных альтернатив предлагаются подходы с использованием микрокернелов, современных архитектур (RISC-V, ARM) или существующих педагогических ОС (xv6).
- Рекомендуется начинать с изучения авторитетных источников (например, wiki.osdev.org) и современных туториалов, избегая устаревших материалов с пробелами и ошибками.
- Разработка ОС углубляет понимание распределенных систем, планирования и кэширования, что полезно для инженеров, даже если они не планируют писать ядро.
Tactility: An ESP32 OS
Тактильность — это не просто физическое ощущение, а сложный феномен, влияющий на восприятие, эмоции и взаимодействие с миром. Она играет ключевую роль в пользовательском опыте: от сенсорных экранов до дизайна продуктов, где текстура и вес создают ощущение качества. Исследования показывают, что тактильные сигналы могут усиливать доверие и запоминаемость, например, в розничной торговле или цифровых интерфейсах.
Виртуальная реальность и хаптические технологии активно развиваются, имитируя прикосновения для более immersive-опыта. Интересно, что тактильная обратная свядь иногда перевешивает визуальную — люди чаще доверяют тому, что могут «пощупать». Это подчёркивает её фундаментальное значение в эпоху доминирования цифровых взаимодействий.
Комментарии (54)
- Обсуждение возможностей и ограничений ESP32-устройств, включая поддержку загружаемых нативных приложений (ELF apps) в проекте Tactility.
- Рассмотрение альтернативных языков и сред для ESP32, таких как Toit, Nim, BASIC (Picomite) и Java, а также поддержка RISC-V архитектуры.
- Исследование практических применений: от IoT до портативных менеджеров паролей, клиентов для мессенджеров (IRC) и устройств с сотовой связью.
- Критика и скептицизм относительно ограниченных ресурсов ESP32 (памяти) для выполнения сложных задач, таких как динамическая линковка.
- Сравнение Tactility с другими проектами (Flipper, Zephyr) и обсуждение его статуса как операционной системы.
Show HN: I wrote an OS in 1000 lines of Zig
Разработчик создал операционную систему всего в 1000 строк кода на языке Zig. Проект демонстрирует минималистичный подход к построению ОС, включая базовые функции: управление процессами, памятью и простой интерфейс. Zig выбран за его безопасность, производительность и низкоуровневые возможности.
Такой лаконичный код позволяет легко изучать и модифицировать систему, что полезно для образовательных целей. Проект подчёркивает, что сложные системы можно создавать без избыточного кода, используя современные языки программирования.
Комментарии (20)
- Создание минималистичной ОС на Zig в рамках 1000 строк кода с базовыми функциями: загрузка, управление памятью, планирование задач и вывод текста.
- Критика и вопросы по реализации: отсутствие консольного вывода, несоответствие README, проблемы сборки на разных платформах.
- Обсуждение технических деталей: формат выходных файлов, поддержка архитектур (RISC-V, ARM), использование библиотек.
- Рекомендации по улучшению: исправить .gitignore, уточнить версии компилятора, дополнить документацию.
- Ссылки на аналогичные проекты и запрос на более глубокий анализ целей проекта и опыта использования Zig.
Orange Pi RV2 $40 RISC-V SBC: Friendly Gateway to IoT and AI Projects
Orange Pi RV2: доступный RISC-V компьютер для IoT и AI проектов
Orange Pi RV2 — это бюджетный одноплатный компьютер (SBC) с 8-ядерным RISC-V процессором, предназначенный для разработчиков, энтузиастов и профессионалов. Стоимостью от $40, он предлагает энергоэффективность, слоты NVMe, GPIO-интерфейс и поддержку AI-задач.
Хотя плата отлично подходит для IoT и автоматизации, она не заменяет настольный ПК из-за ограниченной поддержки ПО. Orange Pi RV2 сочетает доступность и инновации, открывая возможности для экспериментов в области RISC-V.
Комментарии (82)
- Ubuntu для RISC-V процессоров без поддержки RVA23 застряла на версии 24.04 без дальнейших обновлений, официального образа Debian также нет.
- Программная поддержка и документация на оборудование, особенно от Orange Pi, критикуются за недостаточность и неудовлетворительное качество.
- Производительность RISC-V SBC, включая Orange Pi RV2, оценивается как низкая по сравнению с аналогичными по цене ARM-платами, такими как Raspberry Pi.
- Основными покупателями одноплатных компьютеров (SBC) считаются энтузиасты и разработчики, работающие с RISC-V, а также рынки Китая и Тайваня.
- Многие SBC, включая RISC-V и ARM, имеют распаянную память, что ограничивает возможности апгрейда; редкие модели с слотами встречаются среди x86-решений.
- Потенциал платформы RISC-V видится в её открытости и отсутствии привязки к вендору, несмотря на текущие проблемы с производительностью и поддержкой.
- Платы часто используются для нишевых задач, прототипирования и в качестве домашних серверов, где не требуется высокая производительность или актуальное ПО.
Writing an operating system kernel from scratch 🔥 Горячее
- Ядро ОС написано на Zig для RISC-V, одноядерное, с вытесняющей многозадачностью и системными вызовами.
- Unikernel: приложения линкуются с ядром в один бинарник.
- OpenSBI обслуживает M-режим; ядро работает в S-режиме, потоки — в U.
- Потоки статические, бесконечные функции; переключение по таймеру каждые 2 мс.
- Контекст сохраняется на стеке прерываний; ядро и пользователь разделены.
- GitHub: popovicu/zig-time-sharing-kernel
Комментарии (64)
- Участники делятся опытом создания минимальных ОС на RISC-V и Zig: кто-то перевёл «ОС в 1000 строк» на Zig, кто-то пишет с нуля.
- Все сходятся: RISC-V проще x86, нет легаси-багажа, документация и эмуляторы доступны.
- Железо не обязательно: достаточно QEMU; если нужна «реалка» — Milk-V Duo S за $10 или Pico 2.
- Миникernel — хороший способ выучить архитектуру и Forth; «не изобретай крипту для продакшена» не отменяет экспериментов.
- В споре о «кто важнее» вспомнили: Линус начинал как хобби, а Столлман уже с 1984 года готовил инфраструктуру GNU.
Writing an operating system kernel from scratch – RISC-V/OpenSBI/Zig
Разработка ядра операционной системы с нуля
Недавно я реализовал минимальное ядро ОС с разделением времени для RISC-V. В этой статье расскажу о деталях работы прототипа. Материал предназначен для всех, кто интересуется низкоуровневым ПО, драйверами, системными вызовами, и особенно полезен студентам, изучающим системное ПО и архитектуру компьютеров.
Это переработанная версия учебного проекта по операционным системам, но с фокусом на современные инструменты и архитектуру RISC-V. RISC-V — перспективная технология, которая проще для понимания по сравнению с другими архитектурами, оставаясь популярным выбором для новых систем.
Вместо традиционного C я использовал Zig, что упрощает воспроизведение эксперимента благодаря простой настройке и отсутствию необходимости установки дополнительных инструментов для кросс-компиляции под RISC-V.
Репозиторий и рекомендации
Исходный код доступен на GitHub. Перед изучением рекомендуется ознакомиться с основами программирования на RISC-V без ОС, процессом загрузки через SBI и обработкой прерываний.
Архитектура
Мы разрабатываем унике́рнел (unikernel), где приложение и ядро объединены в один исполняемый файл. Это исключает необходимость отдельной загрузки пользовательского кода во время выполнения.
В основе стека лежит слой SBI (OpenSBI), который управляет выводом на консоль и таймером. RISC-V использует уровни привилегий: M-режим (машинный), S-режим (супервизора) и U-режим (пользовательский). Наше ядро работает в S-режиме.
Цели ядра
- Статическое определение потоков (без динамического создания).
- Потоки выполняются в пользовательском режиме и могут делать системные вызовы к ядру.
- Время распределяется между потоками с помощью таймера, который прерывает выполнение каждые несколько миллисекунд.
- Разработка ведётся для одноядерной системы.
Виртуализация и потоки
Перед реализацией важно понять, что такое поток. В среде с разделением времени потоки позволяют эффективно использовать ресурсы системы.
Комментарии (3)
- Автор переписал классическое упражнение по созданию минимального ядра ОС с разделением времени для управления пользовательскими потоками.
- Целью был эксперимент на специфической платформе RISC-V в сочетании с OpenSBI.
- Для реализации был использован язык программирования Zig вместо традиционного C.
- Автор отмечает, что подход можно легко повторить на C или Rust.
- Участник обсуждения предположил, что эта тема уже публиковалась неделей ранее.
- Другой участник уточнил, что оригинальный пост был два дня назад на Hacker News.
- Было отмечено, что текущий пост, хотя и от первоначального автора, изначально не получил отклика и был повторно запущен через «пул второго шанса» с измененными временными метками.
SkiftOS: A hobby OS built from scratch using C/C++ for ARM, x86, and RISC-V 🔥 Горячее
skiftOS
Включите JavaScript для работы приложения.
Комментарии (88)
- За 6 лет автор SkiftOS написал микроядро, загрузчик, графическую оболочку, UI-фреймворк и даже движок браузера.
- Код на современном C++ (модули, async, co_await) и выглядит очень чисто; вдохновение Rust заметно.
- Система CPU-рендеринг, GPU — в планах; сеть пока только HTTP, без HTTPS.
- Безопасность: приложения не видят всю память и железо, драйверы в userspace, доступ по capability.
- Собрать можно под Linux/macOS (
./skift.sh run --release <app>), но полный билд сейчас сломан. - Автор признаёт: почти не было личной жизни, помощь была лишь с движком браузера.
Hypervisor in 1k Lines
Гипервизор за 1000 строк
Практическое руководство по созданию минимального RISC-V гипервизора, способного загружать Linux. Продолжение книги «ОС за 1000 строк», но теперь на Rust и с нуля (type-1, bare-metal). Используем только важное: сторонние крейты экономят код.
Репозиторий: github.com/nuta/hypervisor-in-1000-lines
Лицензии: текст — CC BY 4.0, код — MIT.
Содержание:
0. Введение
- Старт
- Загрузка
- Hello World
- Менеджер памяти
- Режим гостя
- Страницы гостя
- Привет из гостя
- Сборка ядра Linux
- Запуск Linux
- SBI
- MMIO
- Прерывания
- Заключение
Комментарии (12)
- Демо-гипервизор на 1000 строк — интересная техническая игрушка, но без паравиртуальных драйверов и прочей инфраструктуры непригоден для реального использования.
- Чтобы запустить RISC-V гипервизор на x86, нужен QEMU, потому что это эмуляция другой архитектуры.
- Желающим увидеть «тот же объём, но на C» скидывают 500-строчный SimpleVisor и репозиторий kvmsample.
- В дискуссию вмешалась философия: «OS» можно уложить и в 5 строк EFI-кода, если не требовать от неё ничего, кроме «Hello, world».
AMD claims Arm ISA doesn't offer efficiency advantage over x86 💬 Длинная дискуссия
- AMD на IFA-2025: «x86 уже не менее экономичен, чем Arm»
- Компания уверена, что ноутбуки на Ryzen и Core живут столько же, сколько Arm-решения, при этом сохраняют совместимость с огромной экосистемой x86
- AMD считает, что энергоэффективность определяется не архитектурой, а всей платформой: ядро, GPU, память, ПО
- Проект K12 на Arm был закрыт: выгоды от перехода на другой ISA оказались несоразмерны потерям совместимости
Комментарии (366)
- Эксперты сходятся: ISA (x86, ARM, RISC-V) почти не влияет на энергоэффективность; решают микроархитектура, техпроцесс, uncore, PMIC и ОС.
- Apple M — лидер не из-за ARM, а благодаря интеграции памяти, тонкому управлению питанием и приоритету эффективности.
- Современные x86 (Lunar Lake, Strix Halo) подтянулись по idle, но при нагрузке всё ещё уступают M4 в производительности/Вт.
- ARM-системы всё ещё страдают от хаоса загрузки (no UEFI, vendor-kernel), тогда как x86/PC стандартизированы с BIOS/UEFI.
- Для мелких ядер (MCU) простой ISA важен; для высокопроизводительных ядер декодер «съедает» <1 % площади и энергии.
- Всё сводится к реализации: тот же GCC на x86 генерирует RISC-подобные инструкции, а различия даёт предсказатель, кэши, техпроцесс.
The future of 32-bit support in the kernel 💬 Длинная дискуссия
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.
Комментарии (256)
- Участники обеспокоены удалением поддержки nommu/32-бит: это уменьшает свободу, лишает возможности запускать Linux на старом или простом железе и делает ядро похожим на «дорожную карту» Apple/Windows.
- Некоторые предлагают форк «Linux Legacy» или переход на NetBSD/OpenBSD, которые по-прежнему поддерживают старые архитектуры.
- Для встраиваемых устройств без MMU считают более подходящими Zephyr, NuttX или Contiki, а не полноценный Linux.
- Поддержка big-endian почти мертва, но сохранится, пока IBM вкладывается в s390x.
- Старые ядра и LTS-дистрибутивы ещё десятилетие обеспечат безопасность и работу выброшенного железа.
How is Ultrassembler so fast?
Ultrassembler — библиотека RISC-V-ассемблера, встроенная в проект Chata.
В отличие от as и llvm-mc, она вызывается прямо из C++, без system() и временных файлов, что критично для встроенных систем.
Скорость
Тест на 16 тыс. инструкций:
- Ultrassembler ≈ 10× быстрее
as, 20× быстрееllvm-mc. - 1 RISC-V инструкция ≈ 1000 x86-инструкций (у конкурентов 10–20 тыс.).
Код на чистом C++; можно добавить ассемблерные вставки.
Ключевые оптимизации
Исключения
GCC-реализация «zero-overhead»: штрафа нет, пока исключений нет.
Ошибки встречаются редко и видны человеку, поэтому даже 1 с на обработку незаметна.
std::expected дал −10 %, так как нормальный путь стал дороже.
Быстрые структуры
2000+ RISC-V-инструкций требуют мгновенного поиска.
Вместо std::unordered_map используется perfect-hash таблица от gperf, генерирующая O(1) без коллизий.
Размер таблицы компактен, кэш-эффективен.
Парсинг
- Регистры идентифицируются по первым 2–3 символам через
switch. - Нет
std::string, толькоstd::string_viewи статические буферы. - Лексемы разбираются за один проход без регулярных выражений.
Кодогенерация
- Шаблоны на этапе компиляции формируют битовые маски инструкций.
- Варианты одной инструкции разворачиваются в
constexpr-таблицы, что убирает ветвления в рантайме.
Память
- Все выделения через стековые
std::array/std::string_view. - Нет
new/malloc, следовательно, нет аллокационных штрафов и кэш-промахов.
Платформенные трюки
[[likely]]/[[unlikely]]для подсказок ветвления.__builtin_expectтам, где компилятор не догадывается.- LTO + PGO дают ещё 5–7 %.
Итог
Ultrassembler показывает, что «низкоуровневый» C++ без искусственных ограничений может обгонять даже оптимизированные GNU-утилиты.
Комментарии (34)
- В обсуждении разобрали миф о «системном вызове при каждом росте контейнера» — реальные аллокаторы переиспользуют память и делают syscall лишь при нехватке.
- Участники напомнили, что исключения в C++ не «zero-overhead»; есть компромисс между временем и памятью, и g++ выбирает экономию места.
- Автор статьи подтвердил: пробовал хеширование, но дерево разбора оказалось быстрее; flex/bison тут не при чём, скорее gperf.
- Некоторые посоветовали LLVM C++ API, memory-mapped I/O и std::pmr для ускорения и упрощения кода.
- Большинство сходится: современные ассемблеры и так быстрые, задача скорее академическая, но как «посмотреть, насколько можно ускорить» — интересна.
Condor's Cuzco RISC-V Core at Hot Chips 2025
- Condor Computing, дочка Andes Technology, показала на Hot Chips 2025 ядро Cuzco — высокопроизводительное 8-ширинное RISC-V с 256-записным ROB, 2–2,5 ГГц на TSMC 5 нм и 10-цикл. штрафом за промах предсказания.
- Ядро конкурирует с SiFive P870 и Veyron V1, превосходя уже реализованные C910 и P550.
- Особенность: «временное» статическое планирование в backend для экономии энергии без изменений ISA и без требований к компилятору.
- Cuzco модульное: строится из «execution slices», конфигурируются L2 TLB, шины, L2/L3, размеры внутренних структур. До 8 ядер в кластере, связь через CHI; можно масштабировать множеством кластеров.
- Frontend: TAGE-SC-L для условных переходов, BTB 16 К-entry, RAS 64-entry, μop-кэш 3 K-entry/96 KB, 32 B/цикл выдача.
- Fetch/decode: 32-байт/цикл, 4×simple + 1×complex декодер, поддержка RVC, μop fusion.
- Rename/dispatch: 8 μop/цикл, 256 phys-регистров int/fp, 96-entry scheduler, 32-entry store queue.
- ALU: 4 int + 2 branch + 2 fp/simd + 2 load + 1 store, 2-cycle FMA, 256-бит SIMD, crypto-расширения.
- L1: 64 KB I + 64 KB D, 4-cycle load-to-use; L2 512 KB–2 MB; L3 2–8 MB.
- Потоковая модель: 1 thread/core, но можно SMT в будущем.
- Потребление: ~0,5 Вт/ГГц (Typical), 2,5 мм² на 5 нм без L2/L3.
Комментарии (45)
- Новое ядро Andes (Condor) делает ставку на энергоэффективность: жертвует 5–7 % «сырой» производительности ради десятков процентов экономии энергии.
- Вместо классического Tomasulo в бэкэнде статическое расписание формируется во фронтенде; при промахе L1 результаты помечаются как «ядовитые» и переигрываются, заполняя пустые слоты конвейера.
- Критики сомневаются в эффективности без аппаратного учёта зависимостей по памяти и переменной латентности операций; автор отвечает, что всё покрывается предикцией + replay.
- Появление битовых инструкций RVA23 признано полезным и для HPC-кода, и для встраиваемых задач.
- Сообщество радуется, что RISC-V добрался до высокопроизводительных реализаций, несмотря на патентные барьеры доминирующих игроков.
Writing a Hypervisor in 1k Lines
Я написал учебник по созданию гипервизора с нуля за 1 000 строк кода: 1000hv.seiya.me. Это тип-1 гипервизор для 64-битного RISC-V с расширением H в QEMU. Подойдёт тем, кто уже прошёл OS in 1 000 Lines.
Код на стабильном Rust — без nightly. Сообщество Rust наконец-то добавило всё необходимое, включая inline-assembly.
Идея книги: гипервизор — это «обработчик событий»:
const vcpu = new VirtualCPU(memory);
while (true) {
try { vcpu.resume(); }
catch (e) { handle(e); } // MMIO, прерывания…
}
Он запускает гостевую ОС, перехватывает выходы из VM и возвращается. Это позволяет строить не только классические ОС, но и безопасные среды вроде gVisor или Hyperlight.
Книга уже доступна онлайн. Приятного кодинга!
Комментарии (9)
- RISC-V можно полностью виртуализировать методом «ловушка-и-эмуляция» без аппаратного расширения, но обход таблиц страниц будет медленным.
- @drob518 уточнил: обход таблиц страниц выполняется программно, а не аппаратно.
- @nerpderp82 спросил, можно ли использовать RVV для обхода таблиц страниц.
- @anchovy_ попросил литературу по гипервизорам; @dmitrygr дал ссылки на академическую теорию и практику VMware.
- @TZubiri посоветовал учиться по документации производителей и исходному коду, а не по университетским книгам.
QEMU 10.1.0
- Удалено: устаревшие устройства
sgaиxenfv; опция-no-user-config. - Новые пометки:
-machine dump-guest-core=on,query-cpus-fast,query-cpu-definitions– deprecated.
Архитектуры
- 68k: поддержка
q800иmacos9. - ARM: новые SoC
imx8mn,stm32h735,xlnx-zynqmp-ep108; машиныmps3-an547,raspi5; эмуляция FEAT_SVE2, FEAT_MTE2, FEAT_LSE2. - RISC-V: добавлены
zacas,sstc,svadu,smstateen; машиныspike-1.11,microchip-polarfire. - x86: AMD SEV-SNP, Intel AMX, AVX-VNNI; KVM-TCG совместимость.
Устройства
- ACPI: поддержка SRAT для NVDIMM.
- Audio: Intel HDA теперь 24-бит.
- Block: virtio-blk/SCSI –
discard=unmap,write-zeroes=unmap. - Graphics: virtio-gpu – 3D, virglrenderer 1.0.
- NVMe: CMB, PMR, ZNS.
- PCIe: SR-IOV, ARI, ATS, PASID.
- USB: xHCI – USB 3.2 SuperSpeed+.
Прочее
- Multi-process:
x-vhost-user-fsиvhost-user-vsockтеперь в отдельном процессе. - Сеть:
vhost-vdpa– offloading checksum/TCP.
Комментарии (38)
- QEMU восхищает пользователей: «просто работает», хорошо интегрируется и кажется «магией».
- Его применяют для dev-окружений, запуска ПО на других ОС, разработки новых ОС, а также в облаках.
- KVM ускоряет QEMU, предоставляя аппаратную виртуализацию через page-tables и trap-механизмы.
- Появилась экспериментальная сборка в WASM, что открывает онлайн-песочницы для разных архитектур.
- Поддерживается запуск Android-VM (Cuttlefish, официальный Android-emulator на базе QEMU).
- Утилиты вроде QuickEMU и UTM упрощают запуск ВМ, а пожертвования идут через Software Freedom Conservancy.
Show HN: I integrated my from-scratch TCP/IP stack into the xv6-riscv OS
xv6-riscv-net
Форк MIT xv6 для RISC-V с добавлением стека TCP/IP.
Поддерживаются драйвер RTL8139, DHCP, DNS, ping, telnet-сервер, HTTP-клиент.
Сборка и запуск
make qemu
Внутри QEMU:
$ dhcp
$ ping 8.8.8.8
$ telnetd &
$ http google.com
Сетевые утилиты
dhcp– получить адресping– проверка связиtelnetd– сервер на порту 23http– простой HTTP-клиент
Код
kernel/net*– стек TCP/IPkernel/rtl8139.c– драйвер сетевой картыuser/{dhcp.c,ping.c,telnetd.c,http.c}– сетевые утилиты
Комментарии (5)
- @Tony_Delco и @dancek восхищаются сложностью и качеством реализации TCP/IP-стека для xv6 с virtio-net и сокетами, подчеркивая, что это «золото» для любителей low-level.
- @AbbeFaria сообщает, что проходит лабораторные xv6 и сейчас занят mmap и fork.
- @lesser-shadow интересуется, используются ли RISC-V-расширения и возможностью запуска на bare metal.
- Все участники благодарят автора за открытость и делятся вдохновением.
The MiniPC Revolution 💬 Длинная дискуссия
Почему я перешёл на MiniPC
Пару лет экспериментов убедили: это моё будущее.
Плюсы
-
Цена и заменяемость
Заводская сборка и масштаб снижают цену. Поломки редки: нет вентиляторов, низкая температура, медленный износ. -
Компактность
Прячется за ТВ, помещается на ладонь, легко переносится. -
Энергоэффективность
20–50 Вт под нагрузкой, 6–12 Вт в idle. Для 24/7-сервисов выгодно и экологично. ARM/RISC-V обещают ещё меньше энергии. -
Специализация
Один тип MiniPC не универсален, но набор из разных закрывает все задачи:- обычные — офис/браузер;
- 4–6 LAN-портов — роутер, фаервол, VPN;
- 4–6 M.2 — компактный NAS (до 20 ТБ);
- мощный — хост контейнеров и «облако»;
- Mac mini — macOS без отказа от Linux.
-
Простота сборки
«Монолит» из одного большого ПК требует редкой материнки, кучи PCI-устройств, корпуса с отсеками, сложной логистики и возвратов. Несколько MiniPC решают то же быстрее и дешевле.
Комментарии (177)
- Участники активно обсуждают, как Mini-PC стали «новыми домашними серверами»: дешёвые, экономные (6–50 Вт), легко кластеруются под Proxmox/K8s и заменяют дорогое «энтерпрайз» железо.
- Популярны бывшие корпоративные NUC/HP/Lenovo и китайские 5560U/16 ГБ за $200–300; их ставят за TV, в туалет, за лазер, за StepMania — «дешевле, чем облако».
- Главные боли: шум (особенно в «геймерских» версиях), неремонтопригодность (паяная RAM/CPU, кастомные кулеры), высокий процент брака дешёвых китайцев и отсутствие апгрейдов.
- Мечтают о «тихом Mac-mini-размере» с RTX 4060/780M для игр, но физика (300 Вт TDP) и цена (~$2000) пока не позволяют; вариант — ПК в соседней комнате + длинный кабель/KVM.
- Valve, по мнению многих, была права с идеей Steam Machine, но рано и промахнулась в Linux-играх; новая попытка в 3–5 лет, возможно, совместит Proton, Mini-PC и приставочную форму.
Show HN: Bolt – A super-fast, statically-typed scripting language written in C
bolt — компактный встраиваемый язык на C:
- высокая скорость, реал-тайм, статическая типизация
- целевые задачи: скрипты в играх, IoT, системы с ограниченными ресурсами
Основное
- репозиторий:
Beariish/bolt - лицензия: MIT
- компилятор ~150 КБ, зависимости отсутствуют
Возможности
- синтаксис C-подобный, сборка мусора без пауз
- FFI к C «из коробки»
- компиляция AOT/JIT, кроссплатформенность (x86, ARM, RISC-V)
Быстрый старт
git clone https://github.com/Beariish/bolt
cd bolt && make
./bolt examples/hello.bt
import std.io;
fn main() {
io.println("Привет, bolt!");
}
Комментарии (82)
- Пользователи одобрили идею быстрого статически типизированного скрипт-языка для встраивания, но сразу спутали «embedded» с «embedded-systems» и отметили отсутствие поддержки ARM/32-бит и отказ от целочисленных типов.
- Критика синтаксиса
import a, b from module: неудобен для автокомплита и повышает риск конфликтов имён; автор готов добавить псевдонимы. - Сомнения в заявленной скорости: несколько человек привели замеры, где Bolt проигрывает LuaJIT и даже обычной Lua 5.4.
- Подняты вопросы о полноте типовой системы (генерики, полиморфизм), отладке, LSP, сборке мусора и долгосрочной поддержке.
- Плюсы: понятный C/Python-подобный синтаксис, удобный Result-тип, потенциальная замена Lua в играх и редакторах.
RISC-V single-board computer for less than 40 euros
-
Pine64 Star64 — плата на RISC-V за €39,99
- 4-ядерный JH7110 (1,5 ГГц), 2 ГБ LPDDR4, Wi-Fi 5/BT 5.2, HDMI 4K, PCIe, GPIO 40-pin.
- Поддерживает Linux (Ubuntu, Fedora) и RTOS (Zephyr).
- Питание через USB-C 5 В/3 А; корпус и eMMC опционально.
-
Доступность
- Продажи стартуют 12 августа в магазине Pine64 и у партнёров.
Комментарии (80)
- VisionFive 2 Lite — дешёвая RISC-V плата, но JH7110 не соответствует RVA23, что может вызвать проблемы с Ubuntu.
- Производительность ближе к Pi 4 при CLI-задачах, но без SIMD; для GUI и современных ПО памяти может не хватить.
- Поддержка Linux/Fedora/Debian хорошая, но многое из «обычного» ПО не тестируется на riscv64.
- Нет полноценного PCIe-слота и открытого GPU-драйвера; нужна M.2-SSD и максимум ОЗУ.
- Питание можно через PoE-сплиттер, встроенной flash нет, что полезно для офлайн-криптографии.
- Cookie-баннер статьи вызвал бурю негодования: отсутствует кнопка «отклонить всё», приходится пользоваться блокировщиками или зеркалами.