|
Часть 1 "Mac OS X"
Операционная система Apple Computer, Inc Ядром Mac OS X
является Darwin (предшественницей которой является NeXTStep и
OpenStep компании Стива Джобса - NeXT ) В свою очередь
Darwin основан на технологиях Mach, BSD, I/O Kit. Разберем
по отдельности:
Mach (Читается как МАК) - это микро ядро, предшественницей
которого является система RID (Которая была написана для 16
битного мини компьютера компании DataGeneral под названием
Elipce в 1975 году) университет Карнеги-Мелона основной
разработчик Mach - Авадис Теванян (Avadis Tevanian) бывший (к
сожалению ушел недавно) руководитель программного направления
Apple и основной идеолог Mac OS X. Не буду описывать методику
обмена сообщений, планирования, C-нитей и тп техническую
шелуху, просто сведу основные задачи этой технологии. Mach
является основой всего ядра Darwin, потому что выполняет
критически важные функции операционной системы. Оно управляет
загрузкой процессора, создает расписания и отслеживает их
выполнение, распределяет память и обеспечивает ее защиту,
формирует централизованную инфраструктуру системных сообщений
для других уровней операционной системы. Сводные задачи:
Защита памяти. Mach заботится о том, чтобы
никакая программа не смогла записать какие-либо данные в
адресное пространство другой программы или системы. Поэтому
сбои и нарушения в работе прикладной программы не приводят к
краху всей системы: достаточно отключить программу, вызвавшую
сбой, и продолжить работу.
Вытесняющая многозадачность. В современных
системах множество задач разделяют ресурсы процессора. Mach
контролирует загрузку процессора, составляет расписания,
устанавливает приоритеты задач, чтобы обеспечить максимальную
эффективность работы процессора и предоставить всем задачам
необходимое процессорное время.
Многопроцессорные системы. Возможность Mach
известная как "многопоточность" когда потоки, порождаемые
одним процессом, способны выполняться на различных процессорах
системы, дает возможность использовать два процессора в
практически любом приложении.
Виртуальная память. Каждой задаче в Mac OS
X выделяется свое виртуальное адресное пространство объемом до
4 Гбайт. Однако реальное выполнение любой задачи возможно
только в истинной физической памяти — оперативной памяти
компьютера. Mach осуществляет выделение задачам пространства
физической памяти и преобразование виртуальных адресов в
адреса физической памяти. Обычно только один фрагмент
программы или данных, находящихся в виртуальном адресном
пространстве задачи, загружен в физическую память. Если
требуется другой фрагмент, он загружается в память с носителя
данных, обычно с магнитного диска, вытесняя предыдущий
фрагмент. Mach контролирует загрузку и освобождение памяти,
обеспечивая эффективную работу многих задач одновременно.
RTOS - RealTime OS Режим реального времени.
Для процессов, требующих быстрой реакции, Mach обеспечивает
доступ к ресурсам процессора за минимальное время.
---
BSD - Berkeley Software Distribution разработка
Университета Беркли Калифорния. Именно благодаря этому "слою"
Darwin относится к UNIX системам. Версия BSD ядра Darwin
отвечает в Mac OS X:
за систему безопасности, идентификацию и
права пользователей.
преобразование вызовов из уровня программ
на уровень системы.
BSD-модель процессов.
реализацию механизма BSD sockets.
реализацию так называемых нитей процессов
(POSIX threads).
Application Program Interface (API)
ядра. --- I/O Kit Система ввода-вывода Система
ввода-вывода (I/O Kit) построена на объектно-ориентированной
модели и соответствующих библиотеках. Она поддерживает
множество устройств различного типа, облегчает написание
драйверов, является модульной и расширяемой системой.
Важнейшие ее черты:
истинный режим plug-and-play.
динамическое управление устройствами
(горячее подключение).
система ввода-вывода.
plug-and-play.
горячее подключение устройств.
динамическая загрузка драйверов.
управление энергопотреблением.
многопроцессорная обработка данных
. --- Файловая система компьютеров Apple HFS — Mac OS
Standartd (Использовалась вплоть до Mac OS 8.1) kHFSSigWord =
0x4244 HFS+ — Mac OS Extended (Используется начиная с Mac
OS 8 и выше) kHFSPlusSigWord = 0x482B Особенности :
"Много форковая" структура хранения (Ветвь
ресурсов и ветвь данных)
Использование символа : (двоеточие) в
качестве разделителя
Поддержка даты создания
Поддержка zero-filling
Поддержка Алиасов (Aliases)
Коды типа и создателя (type &
creator)
Мета данные файлов
Традиционная файловая система маков - HFS+ (Hierarchical
File System) Иерархическая файловая система, не похожа на
другие файловые системы, в ней файл представляет из себя две
ветви - ветвь ресурсов (resource fork) и ветвь данных (data
fork). Ветвь ресурсов как можно догадаться, используется для
хранения ресурсов — окон, меню, иконок, шрифтов, звуков,
всевозможных таблиц и тп. Ветвь данных хранит тоже самое что и
другие файловые системы - данные. Именно по этой причине при
передача файла с HFS+ на другую фс, создается дополнительный
файл ._имя файла - этот файл будет содержать ветвь ресурсов,
метаданные и тп. Именно по этой причине нельзя установить
Photoshop, Office 2004 и другие программы не относящиеся к
поколению Cocoa на диск отличный от HFS+. Традиционно на
маке вплоть до Mac OS X для определения типа файла и с помощью
чего его надо открыть используются коды типа и создателя, это
4 буквенный код - тип файла (JPEG, PNGf, XLS8 и тп) и код его
создателя (для Excel это XCEL для Word это MSWD для Photoshop
это 8BIM и тд - данные коды не видны, их можно просмотреть с
помощью утилиты GetFileInfo входящей пакет Xcode. Поскольку
данная система обозначений используется только на компьютерах
Mac возникали проблемы (в класических системах Mac OS 9 и
ниже), в Windows и других системах использовались расширения
имен известные всем как файл.jpg и тд, поэтому начиная с Mac
OS X используется и тот и другой метод, сначала Finder
проверяет код типа и создателя, если их нет то используется
расширение файла. Выше сказанное можно проверить - создайте
файл в Photoshop или любой другой Carbon-программе, сохраните
его в формате к примеру JPG, у вас наверняка установлено что
по умолчанию файлы в формате jpg открывались в Preview, но
замете что файл который вы создали в Photoshop открывается с
помощью Photoshop - это прямое действие кодов типа и
создателя, вы так же можете проверить это удалив расширение в
имени файла - если у него есть код типа и создателя то это
ничего не изменит - файл по прежнему будет открываться в
нужной программе. В файловой системе HFS+ истинный путь к
файлы выглядит следующим образом (Название раздела)Macintosh
HD:Users:Dmitry:Documents:text.doc, он так и выглядел в эпоху
до Mac OS X, в Mac OS X же в большинстве случаев используется
стандартное UNIX обозначения пути
/Users/Dmitry/Documents/text.doc, хотя некоторые программы
(iTunes, Office, StuffIt, Photoshop и тд) все еще используют
первый тип представления пути.
Продолжение следует...
Автор: AppleDS
Источник: Apple
Life
Обсудить
на форуме |