Hacker News Digest

Тег: #x64

Постов: 2

A Fast 64-Bit Date Algorithm (30–40% faster by counting dates backwards) (benjoffe.com) 🔥 Горячее

Новый алгоритм преобразования дней с эпохи 1970-01-01 в дату (год, месяц, день) для 64-бит UNIX-времени работает на 30–40% быстрее предыдущего лидера (Neri-Schneider 2021) и в 2.4 раза быстрее Boost (2012). Он охватывает ±1.89 трлн лет, использует всего 4 умножения (вместо 7+), и оптимизирован для x64/ARM. Бенчмарки на Intel x64 и Apple M4 Pro: ~27 циклов (4M + 15B) против 40 и 51 у предшественников.

Ключевые идеи: подсчёт лет назад (rev = D_SHIFT - days) убирает промежуточные шаги; пропуск day-of-year с year-modulus-bitshift (yrs % 4 * 512 + shift - ypt) вместо деления; Julian Map (cen = (rev * C1) >> 64; jul = rev + cen - cen/4) ускоряет правила високосных 100/400 лет, экономя 2 умножения. Псевдокод: корректировка эпохи, 4 красных умножения (C1/C2/C3/782432), зелёные "бесплатные" на x64 (shift/LEA), выход day/month/year с bump для янв/фев. Код на C++ — open source (BSL-1.0).

by benjoffe • 23 ноября 2025 г. в 02:27 • 367 points

ОригиналHN

#c++#boost#clickhouse#x64#arm#unix#gregorian

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

  • Новый алгоритм конвертации дат в григорианский календарь даёт 30–40% прирост скорости за счёт обратного подсчёта лет и снижения умножений (4 вместо 7+).
  • Сравнения с ClickHouse (таблицы поиска), Windows-эпохой (1601) и Unix-временем (без учёта високосных секунд); упоминания исторических календарей с 1 марта как началом года.
  • Обсуждение оптимизаций (128-битные числа, constexpr, asm), долгосрочной точности (±1,89 трлн лет) и влияния приливного трения на будущие расчёты.
  • Похвалы за подробный write-up, literate programming и open-source C++ код; предложения для наносекунд и микроконтроллеров.

Hypervisor 101 in Rust (tandasat.github.io)

Введение в гипервизоры на Rust

1. Введение

  • Предварительные требования
  • Цели курса
  • Мотивация
  • Как достигаются цели
  • Что вы изучите
  • Дизайн фаззера
  • Дизайн гипервизора
  • Что этот курс НЕ охватывает
  • Демо: фаззер на основе гипервизора
  • Зачем использовать гипервизор для фаззинга
  • Приложения UEFI
  • Язык Rust
  • Классификация гипервизоров
  • Гипервизор vs хост, ВМ vs гость
  • Типы гипервизоров

2. Настройка и цикл работы гипервизора

  • Включение: активация аппаратной виртуализации
  • Настройка: создание структуры контекста гостя
  • Переключение: запуск в гостевом режиме
  • Возврат: переход обратно в режим хоста
  • Обработка: эмуляция событий
  • Цели и упражнения главы
  • Тестирование с Bochs
  • Подготовка к упражнениям
  • E#1: Включение VMX/SVM
  • E#2: Настройка VMCS/VMCB
  • E#3: Конфигурация гостевого состояния
  • Причины VM-выходов
  • Альтернативный дизайн гипервизора

3. Виртуализация памяти

  • Терминология
  • Традиционная страничная организация x64
  • Вложенная страничная организация
  • Связь с гипервизором
  • Ошибки страниц во вложенной организации
  • Структурные элементы вложенной организации
  • Сравнение традиционного и вложенного подходов
  • Цели и упражнения главы
  • E#4: Включение вложенной организации
  • E#5: Построение структур и трансляция адресов
  • E#6: Реализация copy-on-write и быстрого восстановления памяти
  • Продвинутые темы

4. Интроспекция ВМ для фаззинга

  • Проблема 1: Ненужное выполнение кода

by pykello • 18 сентября 2025 г. в 01:18 • 144 points

ОригиналHN

#rust#hypervisor#virtualization#x64#memory-virtualization#fuzzing#uefi

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

  • Пользователи высоко оценивают качество и полезность материалов по созданию гипервизора и операционной системы, связывая их с предыдущей работой автора.
  • Высказывается критика в адрес формата материалов (Markdown/HTML) и пожелание иметь возможность скачивания в PDF для архивации.
  • Отмечается, что материал представляет собой конспект/слайды курса и может быть сложен для понимания без предварительных знаний или посещения занятий.
  • Возникает дискуссия о практической ценности таких материалов для самообразования без наличия глубоких базовых знаний.
  • Упоминается растущий интерес к теме создания гипервизоров, о чём свидетельствует частое появление подобных руководств.
  • Предлагаются технические решения для создания PDF-версии (например, печать в PDF через браузер).
  • В комментариях присутствует лёгкое обсуждение терминологии (значение слова "hypervisor") и личный опыт работы в данной области.