XNU

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Ядро XNU
Скриншот программы Ядро XNU
Тип Ядро ОС
Разработчики NeXT,Apple
Написана на C++иСи
Операционные системы ОСDarwin,macOS,iOS
Последняя версия
Репозиторий github.com/apple-oss-dis…
Лицензия Apple Public Source License2.0
Сайт opensource.apple.com/sou…

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

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

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

Архитектура ядра

[править|править код]

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

В настоящее время XNU может работать на процессорах с архитектуройARM,[4]x86,x86-64.ПоддержкаPowerPCзакончилась начиная с версии 10 (т.е.Mac OS X 10.6). Поддерживаются как одноядерные, так иSMP-системы.

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

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

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

  1. Release 1228— 2007.
  2. xnu-8796.101.5— 2023.
  3. Porting UNIX/Linux Applications to Mac OS X: Glossary.Apple Computer (2005). Дата обращения: 27 марта 2009.Архивировано13 августа 2012 года."The acronym stands for X is Not Unix"
  4. iPhone processor found: 620MHz ARM CPUАрхивная копияот 7 октября 2018 наWayback Machine(1 July 2007)