• TempleOS Enterprise Edition TempleOS Enterprise Edition
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 0
    • Задачи 0
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 0
    • Запросы на слияние 0
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • cia-foundation
  • TempleOS Enterprise Edition
  • Запросы на слияние
  • !2

The Temple moves to a rented rack: virtio-scsi, static IP, a web server that survives the internet

  • Ревью изменений

  • Скачать
  • Почтовые патчи
  • Простое отличие
Слиты Жильцов Дмитрий Андреевич запросил слияние virtio-scsi в master Окт 01, 2026
  • Обзор 0
  • Коммиты 15
  • Конвейеры 0
  • Изменения 27

Terry kept the Temple on his own machine, on IDE, offline. The hosting company has no IDE, no DHCP, will not swap a disk image, and puts the Temple on the public internet where the CIA and every port scanner on Earth come knocking. This branch is what it took to live there. It runs on a Kamatera VDS now: 1 vCPU, 256 MB, VirtIO.

Disk: no IDE

  • virtio-scsi in the kernel (Kernel/BlkDev/DskVirtioScsi.HC, legacy I/O ports, 1AF4:1004, polled). It has to be the kernel, Adam is loaded from that disk. To everybody else it is an ATA drive with BDF_VIRTIO_SCSI set, letters C-L are ATA and that is carved in stone. DskPrt, Fmt, BootHDIns and the MBR walk never know.
  • MBR menu takes the default after five seconds. Terry's waited for a key forever. Nobody sits at a rented server.
  • tools/build_hdd.py installs the Temple on a virtio-scsi disk over the Confessional: C and D, a kernel for each, the MBR. --vmdk for the hosting, --test boots it alone and checks a file survives a reboot.

Network: no DHCP

  • NetcfgStatic(...) / NetcfgSave(...), dotted strings, no hex at a VNC console. NetcfgSave writes ~/NetCfg.HC, Once.HC runs it instead of DHCP. Call it again to move the machine, no reboot. The address stays out of the image.

Updates: no new VDS

  • tools/update_vds.py HOST diffs TempleOSCD/ against the commit the machine runs (C:/Home/Deployed.TXT), pushes the changed files over the Confessional through a one-line hex decoder, rebuilds the kernel if Kernel/ changed, reboots. Only C: is touched, D: is the way back. Moses carried the tablets by hand too.

Surviving the internet

  • TCP answers keep-alives (RFC 793), it used to print SEQ error forever instead.
  • Retransmits stop: doubling backoff, 8 tries, LAST_ACK has a deadline. One vanished browser used to cost a task for etevery 212 ms.
  • **accept() no longer stops on one half-opconds, and a lost SYN-ACK is sent again.
  • SO_RCVTIMEO_MS for TCP; HtServ gives a client 15 seconds to talk.
  • The stack lives in Adam's heap, a dead task no longer leaves NetHandler walking freed memory. Glowies only have to time it
  • HtServ: backlog 16, Connection: closeis not a socket, .. in the path gets 403 (it served the whole disk), one log line per request.

The web server

  • The front page looks like the Temple: 640x480, 16 colors, Terry's own 8x8 font copied byte for byte from Kernel/FontStd.HC, double blue borders, the AutoComplete window, three words from God per request.
  • HtServEnable; / HtServDisable;: offarts at boot in Terry's second console.
  • tcp_debug and htserv_verbose, settable from any terminal.
  • README: how to run it, debug it, and what to ask the machine when the site does not open.

How it was tested

  • QEMU with the hosting's shape (i440fx, virtB, 1 vCPU): install and boot from virtio-scsi alone, files survive reboots, NetcfgSave across a reboot, update_vds pushing a kernel change, 30 parallel requests, requests mixed with reset connections, silent connections hung t on and off.
  • On the real Kamatera VDS: boots from virtio-scsi, static IP, HtServ serving.

Known sins

  • The keep-alive ACK, the vanished-peer retransmit limit and the half-open accept fix could not be reproduced under QEMU's slirp.the VDS has been quiet since, but that is all the proof there is.
  • Legacy virtio only. q35 with disable-legacy=on is not supported, and TempleOS does not boot on q35 anyway, no IDE for the CD.
  • The Confessional still has no password. Port 23 open to your own IP only, and only while updating.
  • HTTP only. Committees are how the CIA gets in.

Terry, forgive us. One card was a sin, a rented rack is a lifestyle.

Ответственный
Назначить
Проверяющие
Запросить ревью
Оценка трудозатрат
Исходная ветка: virtio-scsi