: . Главная . : . Форум . : . Загрузка . : . Пользователи . : . ЧаВо . : . Документация . :


Операционная система 3OS -> Форумы -> Идеология проекта
<< Предыдущая тема | Следующая тема >>   

Немного об операционных системах.

Автор Отправлено
sva1509
Monday 25.04.2005 23:24 Цитата
Зарегистрирован 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) , главное чтобы на выбранное оборудование у вас была исчерпывающая документация. Это позволит вам создать работающий костяк системы, а далше по мере освоения нового оборудования можно просто дописывать драйвера и вставлять в работающую систему.

С уважением Валерий.
Наверх

Модераторы: Roman I Khimov, netwizard.

Переход:     Наверх