Interested Article - XNU

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

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

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

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

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

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

Mach

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

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

FreeBSD

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

Примечания

  1. — 2023.
  2. . Apple Computer (2005). Дата обращения: 27 марта 2009. 13 августа 2012 года. "The acronym stands for X is Not Unix"
  3. от 7 октября 2018 на Wayback Machine (1 July 2007)

Ссылки

  • — обзор компонентов XNU // kernelthread.com
Источник —

Same as XNU