Цитата:
Сообщение от EfiR
если честно, задача слишком тяжела для одного двух человек. Ну если ничего не останавливает то набросай приблизительно архитектуру оси, точнее не набросай, а используй уже существующие решения только воплощать в своем коде.
Например
Архитектура системы
монолит
клиент сервер
уровневая
???
так как нужна многозадачность и переносимость прикладного уровня, уровневая модель отпадает. Клиент сервер самая ништяковая - надежность, масштабируемость бла бла, но сложна в реализации, поэтому тоже отпадает. Монолит - системные сервисы это часть ядра, думаю эта модель подойдет лучше всего.
Менеджер памяти
надо подробно изучать спецификацию, важные такие моменты, можно ли в этих камнях управлять проекцией физического ап на виртуальное, если да, то можно ли менять линейные адресные пространства, как это в х86. Хотя наверно нельзя и все прикладные проги крутятся в одном линейном пространстве адресов. Какая будет стратегия выделения памяти и т.д.
Планировщик
Какая будет выбрана стратегия планирования задач.
----
Будет ли код для работы с периферией выгружаться загружаться динамически а не находится в ядре, тогда нужно пхать его в отдельные модули, хотя это уже не монолит а гибрид получается.
Ну вообщем стадия проектирования куда более важна, чем набивание кода, я так думаю!
|
ну довайте думать
http://ru.wikipedia.org/wiki/%D0%AF%...B5%D0%BC%D1%8B - прочитав вот это я думаю что проще всего будет делать монолитное ядро, клиент - сервер, да, кошерно, но учитывая тот факт что я вообще дубовый в вопросах работы ОС ... пока отпадает
Цитата:
Хотя наверно нельзя и все прикладные проги крутятся в одном линейном пространстве адресов. Какая будет стратегия выделения памяти и т.д.
|
так и есть...
я вот думаю про динамическое выделение и распределение памяти
только в таком режиме надо будет постоянно следить на приложением
опять таки памяти немного и она ограниченна 56кб ...
но можно все лишнее выгружать, например в ту же внешнюю NAND память до востребования.
Цитата:
Будет ли код для работы с периферией выгружаться загружаться динамически а не находится в ядре, тогда нужно пхать его в отдельные модули, хотя это уже не монолит а гибрид получается.
|
думаю весь код будет сидеть в ядре...не windows мы пишем...
если железо поменяется просто перекомпилим