Разработка любительской операционной системы является одним из наиболее сложных и технических вариантов для компьютерного любителя. Определение любительской операционной системы иногда может быть расплывчатым. Это может быть с точки зрения разработчика, когда разработчики делают это просто для развлечения или обучения; это также может быть рассмотрено с точки зрения пользователя, когда пользователи используют ее только как игрушку; или это может быть определено как операционная система, которая не имеет очень большой пользовательской базы. [1] [2]
Разработка может начинаться с существующих ресурсов, таких как ядро , операционная система или загрузчик , или же она может быть сделана полностью с нуля. Платформа разработки может быть голой аппаратной машиной , что является природой операционной системы, но она также может быть разработана и протестирована на виртуальной машине. Поскольку любитель должен претендовать на большую собственность для адаптации сложной системы к постоянно меняющимся потребностям технической среды, большой энтузиазм распространен среди различных групп, привлеченных к разработке операционных систем.
Элементы разработки операционной системы включают в себя:
Язык программирования C часто используется для любительского программирования операционных систем, как и язык ассемблера , хотя могут использоваться и другие языки.
Использование языка ассемблера распространено в небольших системах, особенно тех, которые основаны на восьмибитных микропроцессорах, таких как семейство MOS Technology 6502 или Zilog Z80 , или в системах с недостатком доступных ресурсов из-за его малого выходного размера и низкой эффективности. [3]
Большинство любительских операционных систем используют интерфейс командной строки или простой текстовый пользовательский интерфейс из-за простоты разработки. Более продвинутые любительские операционные системы могут иметь графический пользовательский интерфейс . Например, AtheOS была любительской операционной системой с графическим интерфейсом, полностью написанной одним программистом.
Этот раздел преимущественно ориентирован на x86 .
Термин BIOS (базовая система ввода-вывода) относится к прошивке , которая инициализирует компьютерное оборудование и имеет возможности для загрузки операционной системы . [4] BIOS также устанавливает стандартный интерфейс для нескольких низкоуровневых драйверов устройств во время загрузки. Ресурсы BIOS часто используются любительскими операционными системами, особенно теми, которые написаны на 16-разрядных машинах x86, поскольку многим разработчикам любительских операционных систем не хватает времени на написание сложных низкоуровневых драйверов самостоятельно или они просто хотят как можно скорее приступить к написанию программного обеспечения для системы.
Наиболее часто используемые функции BIOS — это VideoBIOS и Disk services . Они используются, поскольку видеокарты и дисковые приводы значительно различаются на разных машинах, а специализированные драйверы часто сложно написать.
Использование BIOS нечасто встречается в операционных системах, работающих в защищенном режиме или в режиме Long , поскольку система должна переключиться обратно в реальный режим , в котором работают драйверы BIOS. [5]