Пользователь под ником DocJade провел масштабный технический эксперимент, запустив симулятор строительства и управления Factorio с физических носителей устаревшего формата — 3.5-дюймовых дискет. Для реализации этой задачи потребовалось преодолеть ряд критических ограничений аппаратного обеспечения и программного обеспечения.
Технические сложности и аппаратная часть
Основной проблемой стал объем данных. Установленная версия Factorio занимает от 1 до 1.5 ГБ, в то время как емкость одной двухсторонней дискеты составляет около 1.44 МБ. Для хранения игры автору пришлось приобрести 1250 дискет (старые пробные версии AOL), что потребовало значительных финансовых затрат и ручного труда по очистке носителей.
Разработка файловой системы Fluster
Поскольку стандартные методы ОС не позволяют эффективно работать с таким количеством сменных носителей, DocJade разработал собственную файловую систему под названием Fluster, написанную на языке Rust. Основные характеристики системы:
- Структура: Каждый диск разделен на блоки по 512 байт (2880 блоков на диск).
- Масштабируемость: Система поддерживает до 65 000 дисков, что в теории позволяет хранить до 90 ГБ данных.
- Целостность: Последние четыре байта каждого блока отведены под контрольную сумму CRC для обнаружения повреждений данных.
- Адресация: Используются 16-битные указатели для отслеживания номеров дисков и блоков на них.
Процесс запуска и оптимизация
Первоначально проект разрабатывался под Windows, однако для реализации Fluster как FUSE-системы автор перешел на Linux (через Windows Subsystem for Linux). Одной из главных проблем стала необходимость физической смены дискет. Ранние тесты показывали, что запись 1000 файлов может потребовать до полумиллиона замен носителей.
После внедрения стратегий кэширования количество смен дисков при загрузке игры удалось сократить до 1500 операций. Тем не менее, процесс полной загрузки Factorio занял более одной недели непрерывной работы.
Результаты эксперимента
Несмотря на отсутствие поддержки заблокированных файлов, игра оказалась работоспособной. Автор смог запустить предварительно сохраненные игры и провести в Factorio около девяти часов. Итог эксперимента — полностью открытый исходный код файловой системы Fluster, который теперь доступен на GitHub.
Источник: оригинал на английском
Комментарии
Пока нет комментариев. Будьте первым!