Zeal 8-bit OS — это операционная система, полностью написанная на ассемблере Z80, разработанная для компьютеров на базе этого легендарного процессора.
Она сочетает в себе идеи современной модульности с реалиями 8-битного железа, предлагая альтернативу как классическим (вроде CP/M), так и более сложным современным ОС (таким как Fuzix).
Проект родился как часть более масштабной инициативы — Zeal 8-bit Computer
. Разрабатывая софт для нового "железа", автор столкнулся с проблемой: код был тесно связан с конкретной реализацией аппаратуры, что делало его непереносимым на другие Z80-машины, даже при использовании базовых функций (например, только UART).
Хотя для Z80 уже существуют отличные системы (SymbOS, Fuzix, CP/M), целью было создать что-то менее сложное: без многопоточности, способное работать из ПЗУ (ROM-able), модульное и настраиваемое. Ключевая идея — предоставить простую и четкую ABI (бинарный интерфейс приложений), которая позволит легко писать софт, взаимодействующий с оборудованием, с минимальным количеством "зашитого" в код поведения.
Вдохновением послужили интерфейсы Linux, поэтому если вы знакомы с системным программированием под Linux, многие концепции покажутся знакомыми, хоть и реализованными в рамках 8-битной экосистемы.
Конфигурация (интерактивное меню
):
Для разработки пользовательских приложений доступны:
Полностью поддерживаемой и эталонной платформой является Zeal 8-bit Computer. Для нее реализован широкий спектр драйверов:
Zeal 8-bit OS — это амбициозный и технически интересный проект, который оживляет архитектуру Z80, предлагая ей современный, но аутентичный программный стек. Он отлично подходит для:
Ссылки на проект: Репозиторий Zeal 8-bit OS на GitHub
Краткий итог: Zeal 8-bit OS — это компактная, модульная и вдохновленная Linux операционная система, написанная на ассемблере для процессора Z80. Она идеально подходит для современных самодельных компьютеров на этой архитектуре, предлагая структурированную среду для разработки и запуска программ.
О проекте
Проект родился как часть более масштабной инициативы — Zeal 8-bit Computer
Зачем еще одна ОС для 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)
Bash:
sudo apt update
sudo apt install git python3 python3-pip
pip3 install --ignore-installed --user kconfiglib
Шаги по сборке
- Клонирование и настройка:
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
- В результате в папке 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 (экспериментально)

Заключение и перспективы
Zeal 8-bit OS — это амбициозный и технически интересный проект, который оживляет архитектуру Z80, предлагая ей современный, но аутентичный программный стек. Он отлично подходит для:- Энтузиастов ретро-компьютеров
, желающих экспериментировать с новым ПО для старого "железа". - Создателей самодельных (homebrew) компьютеров на базе Z80, ищущих готовую, переносимую ОС.
- Программистов низкого уровня
, интересующихся устройством операционных систем.