Архитектура \ Общая идея |
Ядро оперирует с т.н. обьектами. Каждый
обьект содержит некоторое количество стандартных методов, и потдерживает
некоторое количество стандартных интерфейсов. Обьекты организованы
в некоторую древовидную структуру, корнем которой является ядро. В этой
структуре есть обьекты- контейнеры (или просто контейнеры).
Контейнер должен потдерживать соответствующий интерфейс. Он также владеет
обьектами, которые расположены ниже по дереву и несёт ответственность
за их корректное создание и удаление. Это позволяет написать сверхкомпактное
микроядро, переложив всю специфическую работу на дочерние обьекты. Кроме
интерфейса контейнера обьект может иметь ещё два: последовательный
и блочный, которые используются в том случае если нужно получить
доступ (последовательно, либо некоторыми блоками) к содержимому обьекта.
В качестве обьектов может выступать что угодно, например: блок памяти,
файл на диске, файловая система этого же диска, процесс, выполняющийся
в данный момент и т.д. Ко всему вышеперечисленному применяются одинаковые
подходы при программировании. Каждый обьект имеет связанные с ним некоторые
флаги системы защиты (права на чтение, запись и т.п.). Для разных обьектов
они могут иметь несколько разное назначение, учитывающее специфику обьекта.
Пример- файл на диске и блок памяти.
|