Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ

Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ
Алан Кокс (Alan Cox), известный разработчик ядра Linux, удостоенный в 2003 году престижной премии Free Software Awards за вклад в разработку ядра, в свое время основавший компанию Etched Pixels Digital Design, занимающуюся выпуском моделей поездов, представил проект Fuzix по созданию новой Unix-подобной минималистичной операционной системы. Целевой аудиторией нового проекта являются разработчики, которые устали от обилия усложнений, неуклонного роста размеров и требований современного ПО, и с тоской вспоминают о старых былых временах, когда каждый по имени знал коллег по сообществу, вся работа могла уместиться на дискету и главным мотивом было получение удовольствия от создания чего-то нового.

Целью Fuzix OS является возрождение принципа «just for fun» и создание достаточно полной реализации System 5 Unix, потребляющей минимальный объём ресурсов. В текущем виде ядро новой ОС потребляет всего 40 Кб ОЗУ и поддерживает работу на процессорах на базе архитектуры Zilog Z80. Система может быть запущена на широком спектре систем, основанных на клонах и вариантах Z80, в том числе на платах с T80 FPGA. При этом система изначально рассчитана на обеспечение переносимости, например, в коде уже обеспечена базовая поддержка 8-разрядных процессоров Motorola 6809 и MOS 6502, что теоретически позволяет запустить ОС и для этих систем.

Порт для процессоров Intel 8086 пока отсутствует, но его создание является делом времени, так как основная проблема заключается в отсутствии пригодного к использованию открытого ANSI C компилятора для CPU 8086 (предприняты попытки задействовать pcc). Процессор Z80 выбран в качестве начальной основы из-за того, что несмотря на обилие для данного CPU различных операционных систем, среди них до сих пор отсутствует полноценно переносимая ОС, способная работать на других типах процессоров. Как и ядро Linux, код новой ОС распространяется под лицензией GPLv2.

Код Fuzix скомпонован из элементов, собранных из разных форков операционной системы UZI и объединённых в единую платформу, расширенную поддержкой Unix-технологий и POSIX. По сравнению с UZI добавлена расширенная поддержка мультипроцессности, появилась возможность использования раздела подкачки, переработан код управления памятью, расширен допустимый размер имён файлов, добавлена поддержка сигналов System 5, Posix termios, архитектура переработана для простого переноса на новые типы процессоров без создания отдельных форков, API расширен вызовами open с 3 аргументами, mkdir, rmdir, rename, chroot, fchdir, fchmod, fchown, fstat, fcntl, setpgrp, sighold and friends, waitpid, setpgrp, nice O_NDELAY, O_CLOEXEC, F_SETFL, F_DUPFD.

Из планов на будущее отмечается поддержка TCP/IP-стека, ptrace, core-дампов, ulimit, uptime, резервирования блоков на диске для пользователя root, вызовов select/poll(), /dev/tty, файловых систем размером более 32 Мб, нового планировщика задач, символических ссылок, загружаемых драйверов, оптимизации подсистемы работы с блочными устройствами, портирование эмулятора CP/M.