Фивикс
Fiwix — это ядро операционной системы, написанное с нуля на основе архитектуры UNIX и полностью ориентированное на совместимость с POSIX. Она спроектирована и разработана в основном как ОС для хобби, а поскольку она служит также и для образовательных целей, код ядра остается максимально простым для удобства студентов и энтузиастов ОС. Он имеет небольшой размер (менее 50 тысяч строк кода), работает на аппаратной платформе i386 и совместим с хорошей базой существующих приложений GNU.
Функции
- Написан на языке ANSI C (сборка используется только в необходимых частях).
- Совместимость со спецификацией мультизагрузки GRUB v1.
- Полное 32-битное ядро с невытесняющим режимом в защищенном режиме.
- Для процессоров i386 и выше.
- Вытесняющая многозадачность.
- Совместимость с POSIX (в основном).
- Группы процессов, сеансы и контроль заданий.
- Межпроцессное взаимодействие с помощью каналов, сигналов и UNIX-сокетов.
- UNIX System V IPC (семафоры, очереди сообщений и общая память).
- Механизм блокировки файлов BSD (POSIX ограничен только файлами и рекомендациями).
- Разделение виртуальной памяти (пользователь/ядро): 3 ГБ/1 ГБ и 2 ГБ/2 ГБ.
- Пейджинг по требованию с функцией копирования при записи.
- Система Linux 2.0 ABI вызывает совместимость (в основном).
- Поддержка формата исполняемых файлов ELF-i386 (статически и динамически скомпонованного).
- Алгоритм планировщика на основе Round Robin (пока без приоритетов).
- Уровень абстракции VFS.
- Поддержка Kexec со спецификацией мультизагрузки v1 и протоколами загрузки Linux.
- Поддержка файловой системы EXT2 с размерами блоков 1 КБ, 2 КБ и 4 КБ.
- Поддержка файловых систем Minix v1 и v2.
- Поддержка Linux-подобной файловой системы PROC (только чтение).
- Поддержка псевдофайловой системы PIPE.
- Поддержка файловой системы ISO9660 с расширениями Rock Ridge.
- Поддержка устройств RAMdisk.
- Поддержка первоначального образа RAMdisk (initrd).
- Поддержка приложений на основе SVGAlib.
- Поддержка локальной шины PCI.
- Поддержка последовательных устройств QEMU PCI.
- Поддержка графического адаптера QEMU/Bochs.
- Контроллер Intel PIIX3 PCI ISA IDE.
- Драйвер клавиатуры с поддержкой раскладки клавиатуры Linux.
- Поддержка мыши PS/2.
- Поддержка устройств фреймбуфера для графических карт, совместимых с VESA VBE 2.0+.
- Поддержка консоли фреймбуфера (fbcon).
- Поддержка драйвера последовательного порта (RS-232).
- Поддержка удаленной последовательной консоли.
- Поддержка консоли отладки в стиле QEMU Bochs.
- Поддержка драйвера принтера с параллельным портом.
- Базовая реализация генератора псевдослучайных чисел.
- Драйвер устройства гибких дисков и управление DMA.
- Драйвер устройства IDE/ATA ATAPI CD-ROM.
- Драйвер устройства жесткого диска IDE/ATA.
Компиляция
Команда, необходимая для сборки ядра Fiwix, — make clean ; make
. Это создаст файлы fiwix (само ядро) и System.map.gz (таблица символов) в корневом каталоге дерева исходного кода.
Перед компиляцией вы можете настроить конфигурацию ядра, изменив значения по умолчанию в include/fiwix/config.h
и include/fiwix/limits.h
.
Имейте в виду, что ядро ничего не делает само по себе, вам необходимо создать среду пользовательского пространства, чтобы использовать его. После загрузки ядро монтирует корневую файловую систему и пытается запустить на ней /sbin/init
, поэтому вам придется предоставить эту программу самостоятельно. К счастью, FiwixOS предоставляет полную UNIX-подобную среду пользовательского пространства для тестирования ядра Fiwix.
Установка
Вы можете приступить к установке FiwixOS на жесткий диск, загрузившись с компакт-диска или с дискеты. Если вы выбрали последнее, вам также понадобится вставленный установочный компакт-диск для установки пакетов, составляющих всю системную среду.
Дайте системе загрузиться, и когда вы будете готовы, просто введите install.sh
.
Минимальные требования к оборудованию следующие:
- Стандартная архитектура IBM PC-AT.
- Процессор i386 (с процессором с плавающей запятой).
- 4 МБ оперативной памяти (рекомендуется 128 МБ).
- Компакт-диск IDE/ATAPI или дискета (3,5 дюйма, 1,44 МБ).
- Жесткий диск ATA емкостью 1 ГБ.
Имейте в виду, что это ядро находится на очень ранней стадии разработки и вполне может содержать серьезные ошибки и неработающие функции, которые еще не выявлены и не устранены.
Позвольте мне повторить это.
Имейте в виду, что это ядро находится на очень ранней стадии разработки и вполне может содержать серьезные ошибки и неработающие функции, которые еще не выявлены и не устранены.
*****************************
*** USE AT YOUR OWN RISK! ***
*****************************
Ссылки
- Веб-сайт
- IRC
- Список рассылки
Лицензия
Fiwix — это бесплатное программное обеспечение, лицензируемое в соответствии с условиями лицензии MIT; более подробную информацию см. в файле ЛИЦЕНЗИИ.
Copyright (C) 2018-2024, Жорди Санфелиу.
Кредиты
Fiwix был создан Хорди Санфелиу.
Вы можете связаться со мной по адресу [email protected]. См. также файл CREDITS.