Зарегистрирован Monday 25.04.2005 22:11
Сообщений - 1
|
Доброго времени суток.
Почитав споры в форуме и документацию системы, решил кое на что обратить внимание разработчиков, может пригодится.
1) Операционная система - это систематизированная совокупность программ призванная контролировать и управлять оборудованием и программами.
2) Предоставлять некое стандартизированое API программам.
3) Предоставлять управление человеку(пользовательский интерфейс).
Итак А
А1)постарайтесь определится с каким оборудованием вы намерены работать.
А2)Выработать единый принцип взаимодействия ядра и устройств(для возможности написать драйвер).
А3)какой тип устройств у вас будет загрузочным.
Б Ядро.
Ядро отвечает за контроль исполнения программ, как прикладных так и системных.
Б1) Менеджер мамяти(но же распологает в памяти программы)
Б2) распределение времени между процессами.
Б3) рампеделение прерываний между драйверами, каналов ПДП.
Б4) формат драйверов и прикладных программ.
Б5) конфигурирование(что за чем грузить, кому м когда передовать управление).
В Загрузчик
Загрузчик - это мини-ядро которое должно подготовить память для загрузки основного ядра, загрузить драйвер устройства с которого будет грузится система, загрузить драйвер файловой системы (или другого представления данных главное обеспечиль доступ к загружаемому коду).
После загрузить ядро и передать ему управление для дальнейшей загрузки.
Это конечно очень неполный список минимума чего стоит сделать.
Теперь по некоторым вопросам затронутых на форуме.
Как ни крути а компилятор свой писать придется(проверено опытным путем).
Для написания загрузчика, ядра - нравится не нравится, а придется пользоватся assembler-ом (я в свое время пользовался tasm с моделью tiny). Потому как любой компилятор более высокого уровня пользуется какойто картой память, а загрузчик и ядро именно и создают эти карты. Могут возразить, что можно создать LDA модуль но тогда распределение памяти диктует компилятор который создавал модуль.
И последнее. Представление API прикладным программам может быть каким угодно, в том числе и объектным, но исполняются программы процессором, а он не объектный.
По этому рекомендую загрузчик, ядро и драйвера писать традиционно - легче будет.
Не забывайте, что объектное программирование - это воображаемые программистом взаимоотношения между кодом и данными. Процессор всеравно программу будет выполнять линейно(соответственно выполняя условные и без условные переходы, подпрограммы).
PS: Не обижайтесь, это не поучение как жить. Просто авторы 3OS сильно увлеклись объектным программированием, забыв зачем вообще нужны операционные системы. И постарайтесь для начала определится с оборудованием (допустим Pentium, 440HX, S3 Trio 64, SB Yamaha) , главное чтобы на выбранное оборудование у вас была исчерпывающая документация. Это позволит вам создать работающий костяк системы, а далше по мере освоения нового оборудования можно просто дописывать драйвера и вставлять в работающую систему.
С уважением Валерий.
|