Интерфейс пользователя
Основные концепции интерфейса Mac OS:
метафоры, главной из которых является метафора рабочего стола и интегрированные с ней метафоры документов и папок;
прямое манипулирование объектами;
прямое целеуказание (принцип see-and-point - увидеть и указать);
согласованность интерфейса - одинаковое образное представление и одинаковое поведение интерфейсных элементов в разных приложениях и системных операциях;
доступность всех объектов и функций для пользователя;
информированность пользователя о происходящих в системе процессах и о результатах его воздействий;
и т.д.
|
Микроядро Darwin
Mac OS X строится на базе микроядра, которое называется Darwin. Внутри же Darwin находится "ядро в ядре" - микроядро Mach.
Mac OS X строится на версии микроядра Mach 3 и, по-видимому, является единственной не-Unix системой, использующей ядро Mach.
Mach поддерживает основные низкоуровневые функции управления ресурсами, такие как:
управление единицами выполнения (нитями);
назначение ресурсов для процессов (в терминологии Mach - задач, task);
поддержку адресных пространств для задач;
обмен сообщениями между задачами;
управление реальными ресурсами (процессорами, памятью, вводом-выводом).
Управление памятью в Mach, как и в большинстве современных Unix-систем, обеспечивает для каждой задачи виртуальное адресное пространство размером 4 Гбайт, в принципе, изолированное от адресных пространств других задач. Области и объекты памяти могут совместно использоваться несколькими задачами.
Mach обеспечивает вытесняющую многозадачность и многопоточность (API нитей в Mach соответствует спецификациям POSIX). Как и во всех BSD-системах, нить обладает достаточно полным набором ресурсов для выполнения, таким образом, в Mach нет необходимости вводить легковесные процессы, как, например, в Open Unix. Все нити одной задачи разделяют адресное пространство задачи и некоторые ресурсы задачи. Каждая нить имеет собственный вектор состояния, стек, параметры планирования и коммуникационные порты. Диспетчеризация нитей ведется по приоритетному принципу, приоритеты назначаются и изменяются вне микроядра. Нить может быть сделана "закрепленной" (wired). Такая нить является привилегированной: она получает управление сразу же при достижении состояния готовности и ей выделяется память даже при нехватке реальной памяти. Это позволяет Mach обеспечивать процессы реального времени.
Задачи в Mach взаимодействуют через посылку сообщений и прием ответов. Сообщения передаются через коммуникационные порты, которые представляют собой почтовые ящики или очереди сообщений.
Микроядро Darwin является расширением Mach. Кроме Mach, Darwin содержит следующие основные компоненты:
Инструменты ввода-вывода - объектно-ориентированный каркас для разработки драйверов устройств, создания драйверов и обеспечения требуемой для драйверов инфраструктуры.
Файловая система - основывается на виртуальной файловой системе VFS и обеспечивает возможность добавлять новые файловые системы. В настоящее время поддерживаются HFS, HFS Plus, ufs и ISSO 9660 - файловая система для CD.
Расширенные сетевые средства Network Kernel Extensions (NKE), позволяющие разработчикам как добавлять поддержку новых протоколов, так и расширять функциональность уже поддерживаемых.