macOS
macOS
★ macOS – проприетарная ОС, разработанная Apple Inc., предназначенная для компьютеров Macintosh (Mac). Она основана на Darwin, который, в свою очередь, является производным от Unix-подобной системы BSD и ядра XNU. Это полноценная система с мощными инструментами, которая сочетает удобство использования с высокой надёжностью и безопасностью.
Компоненты macOS
Основные компоненты macOS:
- Ядро (XNU) – управляет взаимодействием с оборудованием;
- UNIX Layer – слой BSD, реализующий стандарты POSIX;
- Cocoa / AppKit / SwiftUI – фреймворки для GUI-приложений;
- Finder – файловый менеджер и оболочка;
- Launchd / System Settings – запуск и управление службами;
- Файловая система APFS;
- Средства командной строки (bash, zsh, Terminal.app).
1. Ядро
★ Ядро macOS (XNU) – гибридное ядро, сочетающее элементы монолитного ядра и микроядра. Оно поддерживает программную защиту памяти (PAC), ASLR, SMEP и другие технологии безопасности и используется также в iOS, iPadOS, watchOS, tvOS – других устройствах Apple.
Компоненты XNU:
- Mach – микроядро, отвечает за управление памятью и IPC (межпроцессное взаимодействие);
- BSD Subsystem – реализация UNIX API, процессы, файловые системы, сетевые протоколы;
- I/O Kit – объектно-ориентированная библиотека для драйверов устройств (на C++).
2. Эксклюзивная архитектура
★ Эксклюзивность. macOS выпускается только для оборудования Apple. Каждый выпуск получает собственное имя и номер версии, к примеру, 14 Sonoma. Apple регулярно прекращает поддержку старых версий, поэтому пользователям важно обновляться. К сожалению, исходя из политики Apple, работа там ведётся для своей экосистемы, поэтому и разработка, тестирование производится на устройствах этой компании.
3. Среда и ПО
★ Среда и ключевое ПО, службы.
Графическая среда:
- Aqua UI – фирменный интерфейс macOS;
- Finder – главный файловый менеджер;
- Dock – панель запуска программ;
- Mission Control – управление окнами и рабочими столами.
Интеграция с Apple экосистемой:
- iCloud – синхронизация данных;
- AirDrop, Handoff, Universal Clipboard;
- Continouity Camera – использование iPhone как веб-камеры.
Ключевые приложения:
- Safari – браузер по умолчанию;
- Mail, Messages, Calendar;
- Photos, GarageBand, iWork Suite (Pages, Numbers, Keynote);
- Final Cut Pro, Logic Pro – профессиональные приложения.
Службы:
- launchd – система запуска и управления процессами (заменяет init и systemd);
- systemsettingsd – управление системными настройками.
4. Инструменты
★ Полезные инструменты macOS
Стандартные CLI-инструменты:
- Terminal.app – терминал macOS;
- top / htop (brew) - Мониторинг процессов;
- df / du - Информация о диске;
- ls / cp / mv / rm - Работа с файлами;
- grep / sed / awk - Обработка текста;
- curl / wget (brew) - Загрузка из интернета;
- ssh / scp / rsync - Удалённый доступ;
- networksetup / ifconfig - Сетевые настройки;
- pmset - Настройка энергопитания;
- osascript - Выполнение AppleScript скриптов.
Homebrew – пакетный менеджер.
5. Сеть
★ Работа с сетью в macOS выполняется через:
- System Preferences – Network – графический интерфейс;
- networksetup – CLI-инструмент;
- Wi-Fi Diagnostics (Option + клик по значку Wi-Fi) – углублённая диагностика.
Пример:
ifconfig # информация о сетевых интерфейсах
ipconfig getpacket en0 # получить DHCP-ответ
ping google.com # проверка соединения
traceroute google.com # маршрут до сервера
netstat -tuln # активные порты
dig example.com # DNS-запросы
arp -a # таблица ARP
Файловая система и структура каталогов macOS
Файловая система macOS основана на ядре Darwin, которое объединяет компоненты FreeBSD и Mach. В качестве основной файловой системы используется APFS (Apple File System), введённая в 2017 году для замены HFS+. Структура каталогов macOS частично соответствует стандарту POSIX и наследует традиции Unix, но содержит уникальные элементы, характерные только для экосистемы Apple.
В отличие от Windows, macOS использует единое корневое дерево с корнем /, как в Linux. Однако организация системных и пользовательских данных имеет свои особенности, обусловленные требованиями безопасности, песочницей приложений и интеграцией с облачными сервисами iCloud.
/ — корневой каталог
Корень файловой системы содержит все остальные каталоги. Даже если подключены внешние диски или сетевые тома, они монтируются внутрь этого дерева (обычно в /Volumes).
/System — защищённые системные компоненты
Начиная с macOS Catalina (10.15), раздел /System стал частью отдельного read-only тома под названием System Volume. Это сделано для повышения безопасности и целостности ОС. Каталог содержит:
/System/Library— системные фреймворки, расширения, шрифты, звуки;/System/Applications— предустановленные приложения Apple (в более новых версиях);/System/DriverKit— драйверы нового поколения (начиная с macOS 10.15).
Запись в этот каталог невозможна даже для пользователя root без отключения защиты System Integrity Protection (SIP).
/usr — пользовательские ресурсы и утилиты
Несмотря на название (Unix System Resources), каталог /usr в macOS содержит важнейшие системные компоненты:
/usr/bin— стандартные команды:ls,grep,python3,git;/usr/lib— системные библиотеки;/usr/sbin— административные утилиты:system_profiler,networksetup;/usr/local— место для программ, установленных пользователем (например, через Homebrew).
Каталог /usr также защищён SIP в современных версиях macOS.
/bin и /sbin — базовые исполняемые файлы
Эти каталоги содержат минимальный набор утилит, необходимых для загрузки и восстановления системы:
/bin:sh,cp,mv,rm,chmod;/sbin:mount,reboot,fsck.
На практике многие из этих файлов являются символическими ссылками на соответствующие утилиты в /usr/bin и /usr/sbin.
/etc — конфигурационные файлы
Хранит системные настройки:
/etc/hosts— локальное сопоставление имён и IP;/etc/passwd,/etc/group— информация о пользователях и группах (в основном для совместимости);/etc/sudoers— правила привилегий sudo.
В macOS значительная часть конфигураций управляется не через текстовые файлы, а через plist-файлы (Property List) и команду defaults.
/var — переменные данные
Содержит файлы, изменяющиеся во время работы системы:
/var/log— системные журналы:system.log,install.log;/var/run— PID-файлы и сокеты;/var/db— локальные базы данных, включаяdslocal(локальный каталог Open Directory).
/tmp — временные файлы
Используется для хранения временных данных. Содержимое очищается при перезагрузке. Также существует /private/tmp, на который /tmp часто ссылается через символическую ссылку.
/Applications — установленные приложения
Основной каталог для графических приложений. Каждое приложение в macOS представляет собой bundle — специальный каталог с расширением .app, содержащий исполняемый файл, ресурсы, библиотеки и метаданные. Пример:
/Applications/Safari.app/
├── Contents/
│ ├── MacOS/Safari
│ ├── Resources/
│ └── Info.plist
Пользователи могут устанавливать приложения сюда (требуются права администратора) или в свой локальный каталог ~/Applications.
/Library — общесистемные ресурсы
Хранит данные, общие для всех пользователей:
/Library/Application Support— данные программ;/Library/Preferences— глобальные настройки (plist-файлы);/Library/LaunchDaemons— системные фоновые службы;/Library/Fonts— шрифты, доступные всем пользователям.
/Users — домашние каталоги пользователей
Каждый пользователь имеет свой подкаталог вида /Users/username. Внутри него:
~/Desktop, ~/Documents, ~/Downloads
Стандартные папки для рабочего стола, документов и загрузок.
~/Library — пользовательские данные и настройки
Скрытый каталог (по умолчанию не отображается в Finder), содержащий:
~/Library/Application Support— данные приложений;~/Library/Preferences— пользовательские настройки (plist-файлы);~/Library/Caches— кэш;~/Library/Containers— изолированные среды для приложений из App Store (песочница).
Песочница ограничивает доступ приложений только к своим подкаталогам в Containers, что повышает безопасность.
~/Movies, ~/Music, ~/Pictures
Медиафайлы пользователя, интегрированные с приложениями Photos, Music и QuickTime.
/Volumes — точки монтирования
Все подключённые тома — внутренние диски, USB-накопители, сетевые шары — монтируются как подкаталоги в /Volumes. Например:
/Volumes/Macintosh HD— основной системный диск;/Volumes/MyUSB— флеш-накопитель.
/private — служебные каталоги
Содержит «реальные» реализации некоторых виртуальных путей:
/private/etc→/etc;/private/var→/var;/private/tmp→/tmp.
Это сделано для совместимости с Unix-стандартами.
/opt — дополнительное ПО
Используется некоторыми установщиками (например, MacPorts) для размещения стороннего программного обеспечения. Не используется по умолчанию.
/cores — дампы памяти
При аварийном завершении процесса macOS может создать файл дампа памяти (core dump) в этом каталоге. Обычно отключено по умолчанию.
Особенности macOS
Защита целостности системы (SIP)
System Integrity Protection блокирует модификацию ключевых системных каталогов (/System, /usr, /bin, /sbin и др.), даже для root. Это предотвращает внедрение вредоносного кода в ядро и системные службы.
Песочница приложений
Приложения из App Store работают в изолированной среде, имея доступ только к своим контейнерам в ~/Library/Containers и явно разрешённым ресурсам (через entitlements).
Property List (plist)
Вместо текстовых конфигурационных файлов macOS активно использует бинарные или XML-файлы .plist для хранения настроек. Они управляются через:
- Finder (показ информации);
- Терминал (
defaults read/write); - Xcode (редактор plist).
Интеграция с iCloud
Многие пользовательские каталоги (Desktop, Documents) могут быть синхронизированы с iCloud Drive. При этом локальные файлы могут находиться в состоянии «только в облаке» (Optimize Mac Storage), а физически загружаться по запросу.