Skip to content
This repository has been archived by the owner on Apr 24, 2018. It is now read-only.

mirmik/GenOS-old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenOS

Operating System Generator, или GenOS, представляет набор C++ библиотек, предназначенных для нужд быстрого прототипирования, тестирования и отладки, удалённого управления и использования в домашней робототехнике.

GenOS представляет собой модульный конструктор, элементы которого предназначены для решения узких системных задач. Уделяется много внимания, с одной стороны, независимости отдельных модулей, а с другой удобству межмодульной комутации. Это позволяет использовать модули как отдельные вспомогательные элементы, так и в составе сложной системы.

Genos строится таким образом, чтобы сохранять работоспособность в условиях недостаточной инициализации рабочей среды, отсутствия драйверов работы с таймерами и системами ввода-вывода.

Genos использует динамически выделяемую память, но может и не делать этого. Genos написан на C++, что предполагает инициализацию глобальных конструкторов, но способен работать и в условиях, когда соответствующая инициализация не выполнена. Служба времени Genos опирается на аппаратные таймеры для диспетчеризации и контроля интервалов, но сохраняет работоспособность и без настройки оных.

Концепция GenOS позволяет пользователю, начав с низкоуровневой отладки железа, постепенно, но в то же время достаточно быстро, нарастить функционал програмного ядра с использованием модулей Genos как основного или же, как вспомогательного средства.

Модули GenOS способны к работе как на голом железе в составе управляющей ОС, так и качестве приложения любой другой операционной системы. Работая в качестве приложения, GenOS рассматривает API внешней системы как внешнюю среду, общеннее с которой может строится посредством драйверов. Возможность реализации GenOS в качестве приложения с одной стороны упрощает отладку GenOS ядра, а с другой позволяет использовать возможности родительской ОС по осуществлению комутации с другими GenOS сборками и управлению переферийными устройствами.<

Развитые средства символьного ввода-вывода (наследство от Arduino) позволяют осуществлять комутацию сборок Genos независимую от физической или програмной реализации исполняющих устройств, и средств передачи данных. Использование Genos сборок в качестве интерфейса удалённого доступа к Genos сборкам позволяет обойти проблемы, связанные с реализацией протоколов обмена клиент-сервер, так как, по сути, общение производится двумя экземплярами одного и того же модуля (при этом реализация сборок может существенно различаться.

Несмотря на наличие собственной системы ввода вывода, предоставляется возможность использования стандартных clib средств ввода-вывода, но упор делается на собственную реализацию, максимально использующую возможности C++.

Служба сборки GenOS строится из расчета того, чтобы не навязывать пользователю определёного формата построения проекта. Использования отдельного модуля возможно подключением пары строк к Makefile, а структура каталогов и намеренная инкапсуляция кода дают возможность копирования отдельных модулей в пользовательские проекты.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published