XNU

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Ядро XNU
OS X Logo.png
Тип

Ядро ОС

Разработчик

NeXT, Apple

Операционная система

ОС Darwin, Apple iOS, Mac OS X, OS X

Лицензия

Apple Public Source License 2.0

Сайт

http://www.opensource.apple.com/source/xnu/

XNU (акроним англ. X is Not Unix[1]) — ядро компьютерных операционных систем, разрабатываемое компанией Apple и используемое в ОС семейства OS X. Исходные коды ядра были опубликованы под открытой лицензией (APSL 2.0) как часть ОС Darwin.

Изначально ядро разрабатывалось компанией NeXT для ОС NeXTSTEP. Архитектурно являлось гибридным ядром на базе микроядра Mach версии 2.5 (разработано в Carnegie Mellon University), компонентов от 4.3BSD[источник не указан 192 дня] и объектно-ориентированного интерфейса драйверов Driver Kit.

После приобретения NeXT компанией Apple, микроядро Mach было обновлено до версии 3.0, компоненты ядра BSD были обновлены с использованием наработок проекта FreeBSD, а Driver Kit был заменён на C++ API для драйверов под названием I/O Kit.

Архитектура ядра[править | править вики-текст]

Ядро XNU является современным гибридным ядром, сочетающем в себе преимущества как монолитных, так и микроядер, в частности, возможности по передаче сообщений микроядер для повышения модульности системы и защиты памяти разных модулей и высокую скорость монолитных ядер в некоторых критичных задачах.

В настоящее время XNU может работать на процессорах с архитектурой ARM,[2] x86, x86-64 и PowerPC. Поддерживаются как одноядерные так и SMP системы.

Mach[править | править вики-текст]

Основой ядра XNU является простое микроядро Mach, которое запускает монолитное ядро как отдельный процесс. За счет этого достигается некоторая гибкость (например, на одном экземпляре Mach можно запустить несколько экземпляров монолитного ядра), но также это связано с потерями производительности из-за большего количества переключений контекста (режим ядра/режим пользователя) и необходимости отображения или копирования содержимого сообщений между адресными пространствами микроядра и демонов. При разработке Mac OS X микроядро было дополнено некоторыми функциями ядра BSD.

Mach поддерживает и управляет потоками, процессами, вытесняющей многозадачностью, передачей сообщений (inter-process communication), защитой памяти, виртуальной памятью. Также ядро имеет поддержку мягкого real-time, отладки ядра, и консольного (текстового) ввода-вывода.

BSD[править | править вики-текст]

Основанная на BSD часть ядра реализует интерфейсы POSIX, системные вызовы BSD, модель процессов Unix на базе процессов Mach, основные политики безопасности, пользовательские и групповые идентификаторы, права доступа к файлам, сетевой стек, виртуальную файловую систему (включая уровень журналирования), несколько типов локальных файловых систем (HFS/HFS+), NFS-клиент и сервер, криптографические функции, UNIX System V IPC, подсистему Аудита, mandatory access control, и некоторые примитивы блокировок. Коды BSD, использующиеся в XNU частично унаследованы от ядра FreeBSD.

Примечания[править | править вики-текст]

  1. Porting UNIX/Linux Applications to Mac OS X: Glossary. Apple Computer (2005). Проверено 27 марта 2009. Архивировано из первоисточника 13 августа 2012. "The acronym stands for X is Not Unix"
  2. iPhone processor found: 620MHz ARM CPU (1 July 2007)

Ссылки[править | править вики-текст]