Предисловие И так. Что такое ядро?
Ядро управляет операционной системой и следовательно от ядра напрямую зависит качество операционки. На нем держится буквально все. В частности, ядро выполняет роль интерфейса для комп. оборудования: оно общается с внешними устройствами и управляет встроенными компанентами (оперативная память, процессор, жесткий диск). Чтобы обеспечить безопасность системы, ядро следит за всеми текущими процессами, определяя, какие программы и как долго могут пользоваться аппаратными ресурсами. Стабильность достигается за счет структуирования ресурсов. За этим стоят функции, к которым мы обращаемся каждый день - например, отображение файловых систем на жестком диске. Высокая производительность важна при возникновении конфликтов доступа - например, когда 2 программы пытаются записать данные на жесткий диск одновременно. В этом случае ядро расставляет приоритеты и предоставляет доступ одной из них, в то время как другой приходится ждать.
Типы ядер Монолитное Одно большое ядро для всех задач - в этом заключается идея монолита. При этом оно отвечает за управление памятью и за управление памятью и процессами, коммуникацию между процессами, а так же предлагает функции для поддержки драйверов и оборудования. Это Windows, Linux, MAC OS X
Микро Ошибка в ядре может вывести из строя всю опрерационку. Поэтому микроядро отличается предельно малыми размерами - чтобы свести ошибки и сбои к минимуму. Но поскольку ядро должно поддерживать широкий набор функций, оно подразделяется на несколько модулей, из которых работает только один в режиме ядра. Классическим примером является
MACH - компонент MAC OS X Гибрид Такое ядро представляет собой нечто среднее между монолитным и микроядром. Оно делается облегченным, а для дополнительных задач предусмотрены динамические модули. В какой то степени можно сюда отнести Linux и MAC OS X т.к. тоже можно подгружать части ядра, но не в таких количествах, чтобы их назвать гибридными.
И так в итоге получается что ядро MAC OS X взяло лучшее от всех 3 типов ядер. На вскидку можно сказать что ядро MAC состоит:
50% - монолит / 25% - микро / 25% - гибрид MAC OS X: это сила 2 ядер - Ядро MAC OS X сокращенно обозначается как XNU - X is Not Unix . Ядро скомбинированно из 2-ух источников, и лишь часть его имеет отношение к Unix. Остальное Apple взяла из проекта Mach - классического примера микроядра. При этом Mach используется только для передачи сообщений (message passing), то есть эффективной коммуникации между отдельными частями ядра. Помимо Mach, XNU содержит код проекта FreeBSD который основан на Unix. Эта часть отвечает за взаимодействие с пользователем, обработку сигналов и совместимость со стандартами POSIX. Последнее гарантирует, что большинство программ для Unix будут функционировать и в MAC OS X.
- Важным компонентом Mach является система ввода-вывода (I/O Kit).Именно в ней состоит существенное отличие от Windows и Linux: I/O Kit представлет собой дополнительный слой абстракций между оборудованием и системой. Здесь находятся стандартные модели драйверов, на основе которых разработчики пишут их специализированные версии. Это способствует стабильности и повышет вычислительную мощь системы.
- Помимо служб ядра, MAC OS X позволяет так же расширения ядра. Система загружет их динамически по мере необходимости. Часто в таком случае говорят о гибридном строении ядра, однако эксперы относят ядро MAC OS X скорее к монолитному типу из-за особенностей строения ядра.
- Процессы в MAC OS X работает таким образом - Процессы ("родители") контролируют порожденные ими процессы ("детки"). При наличии администраторских (root) прав можно делать все, даже анализировать процессы и манипулировать ими
- Планировщик - он "руководит" несколькими процессами, открытыми одновеременно. Каждое приложение на определенное время получает доступ к вычислительным мощностям центрального процессора, затем уступает другим и снова ждет свой очереди. В MAC OS X планировщик является одним из компонентов Mach. Шкала приоритетности составляет от 0 до 127.В MAC OS X мультимедийное приложение может присвоить фиксированную долю вычислительного времени. При достаточной мощности это исключает риск образования узких мест. К примеру шкала приоритетности в Linux составляет от 0 до 99, а в Windows от 0 до 31.. Делайте выводы господа 8)
- Приоритетность ввода-вывода. Это когда процессы передового плана всегда пользуются преимуществом, чем фоновые. В MAC OS X такой прием использутся давно, он заложен глубоко в архитектуре, т.к. для передачи сообщений используется Mach.