Zeal 8-bit OS — это операционная система, полностью написанная на ассемблере Z80, разработанная для компьютеров на базе этого легендарного процессора. 🎯 Она сочетает в себе идеи современной модульности с реалиями 8-битного железа, предлагая альтернативу как классическим (вроде CP/M), так и более сложным современным ОС (таким как Fuzix).

📖 О проекте​

Проект родился как часть более масштабной инициативы — Zeal 8-bit Computer 🖥️. Разрабатывая софт для нового "железа", автор столкнулся с проблемой: код был тесно связан с конкретной реализацией аппаратуры, что делало его непереносимым на другие Z80-машины, даже при использовании базовых функций (например, только UART).

❓ Зачем еще одна ОС для Z80?​

Хотя для Z80 уже существуют отличные системы (SymbOS, Fuzix, CP/M), целью было создать что-то менее сложное: без многопоточности, способное работать из ПЗУ (ROM-able), модульное и настраиваемое. Ключевая идея — предоставить простую и четкую ABI (бинарный интерфейс приложений), которая позволит легко писать софт, взаимодействующий с оборудованием, с минимальным количеством "зашитого" в код поведения.

Вдохновением послужили интерфейсы Linux, поэтому если вы знакомы с системным программированием под Linux, многие концепции покажутся знакомыми, хоть и реализованными в рамках 8-битной экосистемы.

🏗️ Архитектура и ключевые особенности​

  • Язык и размер: 💾 Написана на Z80 Assembler. Текущее ядро занимает менее 8 КБ ПЗУ (код) и менее 1 КБ ОЗУ (данные). Размер зависит от конфигурации (например, максимального количества открытых файлов).
  • Память: 🧠 ОС спроектирована для работы с MMU (блоком управления памятью), разделяя пространство на 4 виртуальные страницы по 16 КБ. Также поддерживается режим без MMU (no-MMU) для более простых систем.
  • Модель выполнения: 📟 Однопоточная (Mono-threaded). Весь CPU посвящен выполнению одной пользовательской программы.
  • Подсистемы:
    • Драйверы: 🔧 Модульная система драйверов для абстрагирования доступа к "железу".
    • Виртуальная файловая система (VFS): 📂 Единый интерфейс для работы с файлами и каталогами.
    • Диспетчер дисков: 💿 Поддержка до 26 дисков (A: до Z:).
    • Файловые системы: ✅ Нативно поддерживаются "rawtable" и собственная ZealFS.
  • Системные вызовы (Syscalls): 📞 Механизм взаимодействия пользовательских программ с ядром (открытие, чтение/запись файлов, работа с директориями и драйверами).

🚀 Быстрый старт: Сборка и запуск​

Требования (для сборки на Linux/Ubuntu)​

Для сборки вам понадобятся:

  • bash, git, cmake (рекомендуется) или make
  • python3 с pip3 (для утилиты конфигурации menuconfig)
  • z88dk v2.2+ (требуется ассемблер z80asm)
Установка зависимостей (Ubuntu):
Bash:
sudo apt update
sudo apt install git python3 python3-pip
pip3 install --ignore-installed --user kconfiglib

🛠️ Шаги по сборке​

  1. Клонирование и настройка:
Bash:
git clone https://github.com/Zeal8bit/Zeal-8-bit-OS.git
cd Zeal-8-bit-OS
mkdir build && cd build
cmake ..

Конфигурация (интерактивное меню 🔧):

Bash:
make menuconfig

  • Здесь можно выбрать целевую платформу, настроить параметры памяти, драйверы и т.д. Для начала можно использовать конфигурацию по умолчанию (make alldefconfig).
  • Сборка:
Bash:
make

  1. В результате в папке build/ появятся ключевые файлы:
    • os.bin — "чистое" ядро с драйверами.
    • os_with_romdisk.img — ядро со встроенным romdisk (образ диска в ПЗУ), содержащим начальную программу (init.bin).

💾 Прошивка​

  • Для Zeal 8-bit Computer: прошивается файл os_with_romdisk.img через загрузчик или программатор (например, TL866 с утилитой minipro).
  • Для других целей: бинарный образ можно записать в ПЗУ/EEPROM или загрузить в эмулятор соответствующей машины.

📁 Написание программ под Zeal 8-bit OS​

Для разработки пользовательских приложений доступны:

  • Публичное API: Набор системных вызовов для работы с файлами, драйверами, вводом-выводом.
  • Языки: В первую очередь, ассемблер Z80. Через z88dk возможна поддержка языка C.
  • Система сборки: В комплекте с ОС есть примеры программ и инструменты для их компиляции и упаковки.

🎯 Поддерживаемые платформы​

Полностью поддерживаемой и эталонной платформой является Zeal 8-bit Computer. Для нее реализован широкий спектр драйверов:

  • Видео (текстовый режим 640x480) 📺
  • UART (последовательный порт)
  • PS/2 и параллельная клавиатура ⌨️
  • I2C, EEPROM, часы реального времени (RTC) ⏰
  • CompactFlash и microSD (экспериментально) 💾
Также ведутся работы по портированию на другие классические системы, такие как TRS-80 Model I и Agon Light. Документация содержит руководство по портированию на новое "железо".

🔮 Заключение и перспективы​

Zeal 8-bit OS — это амбициозный и технически интересный проект, который оживляет архитектуру Z80, предлагая ей современный, но аутентичный программный стек. Он отлично подходит для:

  • Энтузиастов ретро-компьютеров 🕹️, желающих экспериментировать с новым ПО для старого "железа".
  • Создателей самодельных (homebrew) компьютеров на базе Z80, ищущих готовую, переносимую ОС.
  • Программистов низкого уровня 💻, интересующихся устройством операционных систем.
Проект активно развивается, и его открытый исходный код приветствует вклад сообщества через пул-реквесты и обсуждения идей.

🔗 Ссылки на проект: Репозиторий Zeal 8-bit OS на GitHub


💡 Краткий итог: Zeal 8-bit OS — это компактная, модульная и вдохновленная Linux операционная система, написанная на ассемблере для процессора Z80. Она идеально подходит для современных самодельных компьютеров на этой архитектуре, предлагая структурированную среду для разработки и запуска программ.