Структура файловой системы Mac OS X

05 сентября 2008 - 16:45

Mac OS X является многопользовательской системой. Это означает, что дос туп к ресурсам системы строго персонализирован. Для каждого пользовате ля системы создается учетная запись, в которой указывается его имя (полное и сокращенное) и личный пароль. Сокращенное имя также является регист рационным именем пользователя.

Каждый пользователь перед началом работы в системе Mac OS X должен пройти процедуру вхождения в систему (login), то есть указать свое имя (Name) и пароль (Password). Система сверяет введенные пользователем данные с данными учетной записи. Если они не совпадают, доступ к ресурсам системы будет закрыт.

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

Существует главный пользователь – администратор системы, который следит за поддержанием порядка. Только администратор системы и никто другой, имеет право создавать или удалять учетные записи пользователей. Администратор может накладывать те или иные ограничения на доступ к ресурсам системы, хотя идеология Mac OS X сводит к минимуму необходи­мость таких операций.

В многопользовательской системе доступ к различным ресурсам системы становится неоднородным. Часть ресурсов нужна большинству пользовате лей, например прикладные программы. Доступ к ним должен быть открыт для всех пользователей. Некоторые ресурсы являются критически важными для работы самой системы, поэтому желательно ограничить доступ к ним со стороны обычных пользователей. Помимо общих ресурсов, каждому поль зователю хотелось бы хранить и использовать некоторые ресурсы индиви дуально, чтобы другие пользователи не имели к ним доступа, например пер сональные сообщения электронной почты.

Поэтому Mac OS X заметно строже относится к расположению файлов в фай ловой системе. Практически каждый файл имеет свое заранее определенное ме сто. Для файлов различного типа и назначения определены различные стандарт ные места. Не рекомендуется сохранять файлы в произвольных местах и без не обходимости перемещать или переименовывать их. Изменение местоположе ния или переименование системных файлов может привести к полной или час тичной потере работоспособности системы. Алгоритм работы Finder’a также рассчитан на наличие определенного порядка в размещении информации.

Домены

Чтобы разделить «сферы полномочий» и навести во всем этом порядок, в Mac OS X введено понятие домена файловой системы, или просто домена.

Домен (domain) –это некоторая область файловой системы, имеющая четко выраженную, заранее определенную структуру, что облегчает поиск доменов и работу с ними. Домены различаются наполнением – конкретны ми файлами, хранящимися в определенных местах, и степенью доступности этих файлов. Всего имеется четыре домена: User, Local, Network, System.

User (пользователь).Домен пользователя, который в данный момент зарегистрировался в системе. Папка верхнего уровня этой структуры на­зывается домашней папкой пользователя. Домашняя папка пользователя может находиться как на загрузочном диске, так и на другом компьюте ре в сети. Пользователь сам решает, что и как хранить в своем домене.

Local (локальный).Домен программ, документов и других ресурсов, кото рые не являются критически важными для работы системы, но должны быть доступны всем пользователям данного компьютера. Администраторы систе мы могут добавлять, удалять или модифицировать элементы этого домена. Домен всегда располагается на загрузочном диске.

Network (сеть).Домен для программ, документов и других ресурсов, кото рые должны быть доступны всем пользователям локальной компьютерной сети. Обычно ресурсы этого домена помещаются на один из серверов сети и находятся в ведении администратора сети.

System (система).Домен системного программного обеспечения, устано вленного фирмой Apple. Всегда находится на загрузочном диске. Содержит программы, критически важные для работы всей системы. Пользователь не может добавлять, удалять или изменять содержимое этого домена. Только главный администратор – root имеет исключительные права на внесение изменений в содержимое домена System.

Следует помнить, что если Mac OS 9.x работала в многопользовательском режиме, то в папке Users автоматически создаются домашние папки для каждого за регистрированного в Mac OS 9-х пользователя.

Mac OS X очень строго относится к расположению файлов в файловой структуре

Папка Library – это наиболее характерная часть файловых доменов. В отличие от других папок Library присутствует во всех доменах. Как прави­ло, в ней содержатся дополнительные ресурсы, используемые программа ми, но не являющиеся для этих программ критически важными, например шрифты или цветовые профили устройств. Критически важные ресурсы программ должны находиться в самих программах.

Структура папки Library одинакова для всех доменов, однако не все эле менты этой папки являются строго обязательными.

Программы окружения Classic хранятся в папке Mac OS X. Эта папка не входит в доменную структуру, так как обслу живает только «классические» программы и не просматривается Mac OS X при поиске ресурсов.

Параметры объектов

Каждый объект файловой системы характеризуется целым радом парамет ров. Для просмотра и изменения этих параметров предусмотрена специаль ная программа – Inspector.

Inspector – это существенно расширенный аналог команды Finder’a Get Infoпредыдущих версий Mac OS. Информация, предоставляемая Inspector’oм, хорошо структурирована с помощью ниспадающих меню. Набор сведений, предоставляемых Inspector’oм, зависит от типа объекта. Основными типами объектов явля ются: том (volume), папка (folder), программа (application), документ (document), ссылка (alias).Некоторые параметры являются обязательны ми для объектов всех типов (например, имя объекта, его тип, размер и так далее), а некоторые присущи только объектам определенного типа.

Расширение имен файлов в Mac OS

«Классическая» Mac OS позволяет работать с документами, которые были созданы не только на Macintosh’ax, но и на PC, a Mac OS X также и с документами, соз данными под UNIX’ом. Такие файлы не имеют специальных внутренних ат рибутов, а тип файла определяется по так называемому расширению имени файла.

Расширение – это дополнительные символы, которые расположены в конце имени файла после специального разделителя – точки.

Поскольку имеется большое количество программ и, стало быть, большое количество расширений имен, Finder не всегда знает, какая программа нуж на для работы с документом.

Системная панель управления «классической» Mac OS – File Exchange ре шает эту проблему: для любого типа документа или для любого расширения имени файла можно указать программу, которой следует открывать доку менты данного типа.

Использование расширений имен файлов в качестве указателя типа фай ла имеет серьезный недостаток: если документ был переименован с измене нием расширения (пусть даже случайно), информация о его типе теряется. Иногда удается догадаться об исходном типе документа из контекста. Но в общем случае восстановить «истинную картину» бывает непросто.

Конечно, использование специальных внутренних атрибутов type и creator для описания типа файла и программы, его создавшей, идеологиче­ски более правильно и удобно. Но, к сожалению, такой подход, кроме фир­мы Apple, никем больше не поддерживаемся. Применение для этих целей расширений имен файлов – существенно более ущербное решение, но ши­роко распространенное.

Mac OS X с самого начала разрабатывалась как система, способная эффе ктивно работать в гетерогенной среде. Поэтому Finder Mac OS X был рассчитан на поддержку как внутренних атрибутов файлов HFS и HFS+, так и расширений имен в качестве описателей типа файлов. Фирма Apple настоя­тельно рекомендовала разработчикам программ использовать расширения как обязательную часть имен файлов. Большинство же пользователей Macintosh’eй без особого восторга воспринимало эту необходимость. Поэтому, начиная с версии Mac OS X 10.1, Apple решила пойти на компромисс – в структуру каждого файла был добавлен дополнительный бит, так называемый флаг скрытости расширения имени файла (File пате extension hidden flag). Если этот флаг установлен, то расширение имени файла отображаться не будет, и на оборот. Общий принцип, который был положен в алгоритм работы с этим флагом, кратко можно описать фразой: «Видишь то, что набрал» (Whatyou see is what you type), то есть имя файла, отображаемое Finder’oм, соответствует имени, заданному в диалоговом окне сохранения файла Save или непосредственно в Finder’e в момент создания файла: если пользователь задал имя с расширением – то он и будет видеть имя этого файла с расширением, если же имя было задано без расширения – то и в дальнейшем этот файл будет без расширения. При по лучении файла с другого компьютера по умолчанию флаг скрытости не ус танавливается, то есть Finder показывает его имя целиком как есть.

Если пользователь захочет изменить расширение файла – система обязательно предупредит о возможных последствиях такого изменения.

Поддержка прикладных программ

Переход на новую операционную систему означает не только переход на новые принципы, структуру, организацию самой системы. Это еще и радикальные изменения в разработке и функционировании прикладных программ. С одной стороны – это новые возможности, которые несет в себе новая система, а с другой – ог ромное число уже работающих программ, написанных под предыдущие вер сии Mac OS. Две системы – старая и новая – это две среды обитания, два существенно разных мира. Поэтому в структуре Mac OS X предусмотрен специальный логический уровень – слой поддерж ки прикладных программ разного типа.

Mac OS X поддерживает работу трех типов прикладных программ и создает соответствующую «среду обитания», окружение для программ данного типа:

  • старых программ, написанных для Mac OS 8 и Mac OS 9. Соответству ющее окружение называется Classic
  • старых программ, но подправленных для работы в Mac OS X. Соответ ствующее окружение называется Carbon
  • программ, написанных специально для Mac OS X. Соответствующее окружение называется Cocoa

Можно сказать, что именно Cocoa превращает Mac OS X в опера­ционную систему будущего. Cocoa – это та самая среда разработки, которая, будучи еще библиотеками NeXT, славилась почти сверхъестественной способностью несколькими строками исходного кода ре шать задачи, зачастую требующие в других сре дах не меньшего числа страниц.

Выдающиеся способности библиотекам придает удивительный язык программирова ния, на котором они написаны – Objective-C. Есть еще Cocoa и Java. Написать что-то по добное на C++, может быть и возможно, но это заняло бы очень много времени и, скорее всего, никогда не было бы отлажено до ра бочего состояния. И здесь дело вовсе не в том, что Objective-C обладает явными преимуществами, а в том, что для C++ неестественны те конструкции и механизмы, на которых строится Cocoa.

Благодаря этим конструкциям и меха низмам, а также интеграции с редактором интерфейсов Interface Builder (IB) страте гия разработки программ с пользователь ским интерфейсом во многом отличается от общепринятой. В IB разработчик не только расставляет элементы интерфейса, но и ус танавливает связи между ними и другими частями программного проекта, часто без единой строки кода, написанной вручную.

В традиционных средах код, поддержива ющий интерфейс, усложняет модификацию программы. В Cocoa внесение существенных изменений в интерфейс во многих случаях не требует доработки исходного кода.

В Cocoa значительно реже прибегают к наследованию библиотечных классов: пове дение последних можно изменять в очень широких пределах другими штатными мето дами. С помощью категорий, одного из меха низмов Obj-C, любой класс, даже корневой, можно расширить. Школы бизнеса рекомен дуют делегирование – технологию, при ко торой должностное лицо передает часть пол номочий подчиненным. В Cocoa этот процесс доведен до совершенства. Многие классы библиотеки предоставляют делегатам набо ры методов, которые те могут переопреде лить. Делегатом может быть любой объект, реализующий хотя бы часть таких процедур. В нужные моменты объект библиотечного класса сначала пробует вызывать методы объекта-делегата, а если нужного метода нет или делегат не подключен, использует встро енный вариант. Делегатов можно подключать и отключать в любой момент выполнения программы. Некоторые библиотечные классы выставляют на откуп подчиненных сразу не сколько групп функций. Рекордсмен (Web-View из библиотеки WebKit) различает че тыре типа делегатов. Некоторые классы (NSTableView, NSOutlineView и ряд других) требуют для нормальной работы специаль ного делегата, в котором ряд методов обяза тельно должен быть определен.

Мощь Cocoa в чистом виде очевидна. Но истинная мощь этих библиотек еще со вре мен NeXT – в легкой доступности других технологий и библиотек, находящихся в си стеме. Во времена NeXT это были Display PostScript и BSD. В Mac OS X число стан дартных, обязательно присутствующих в каждом дистрибутиве системы, библиотек и подсистем больше на несколько поряд ков. Многообразие средств самовыраже ния просто огромно. Например, одно и то же действие над файлом можно выполнить и средствами BSD, и Carbon (библиотеки классической Mac OS, перера ботанные в библиотеки современной ОС), и Cocoa. Кроме того, такие же средства есть в Java и стандартных библиотеках различных языков. Такая же ситуация с большинством других аспектов компьютерной жизни.

Mac OS X многообразна, но в ней нет ни одной значительной Cocoa-программы, в которой не применялся бы Carbon. Очень часто в приложениях Cocoa используют библиотеки и методики Unix-подобной операционной системы. Cocoa – наиболее естественный ключ ко всем богат­ствам Mac OS X.

Среда разработки и исполнения про грамм Cocoa – это лишь первая среди многих равных. На том же уровне располагаются Carbon (осовремененные библиотеки клас сической системы), Java SDK (в составе си стемы поставляется вся Java – Awt, Swing и т. п.), Classic (среда отработки программ для классической Mac OS) и BSD.

Всем этим средам разработки и исполне ния (кроме Classic и в некоторой степени BSD) открыты огромные возможности графических библиотек Cocoa – Quartz 2D, OpenGL и QuickTime. Последние скорее отно сятся к мультимедиа. Клиентская часть I/O Kit, Open Directory (Mac-реализация Active Directory, LDAPv2, LDAPv3 и не только – это межплатформенные технологии сетевого администрирования), мощная система обес печения безопасности данных и коммуни каций, векторные библиотеки и многое дру гое.

Mac OS X обеспечивает копирование и вставку почти всех типов данных между программами, работающими в различных окружениях.

Строго говоря, Mac OS X создает еще два типа окружений:

  • для работы с языком Java
  • для работы в командном режиме BSD

Работа в командном режиме BSD рассматривается фирмой Apple как до полнительное средство. Подразумевается, что такой режим может быть поле зен в редких случаях для опытных пользователей или администраторов при решении некоторых специфических задач. Более того, во время установки системы можно вообще отказаться от установки модулей работы в команд ном режиме BSD.

Что касается Java, то следует заметить, что системные средства для под держки Java-программ существовали и в более ранних версиях Mac OS, но в Mac OS X они наконец-то обрели должный статус. Учитывая критику за от ставание, неполное соответствие стандартам и недостаточную скорость ра боты, фирма Apple заметно скорректировала эту часть системы. Теперь она содержит весь необходимый и эффективный набор средств для работы Java-программ и Java-апплет.

Какие же наиболее серьезные изменения были внесены в реализацию под держки Java на Macintosh’ax?

Во-первых, существенно усилена общая интеграция с системой. В Mac OS X разработчики Java-программ имеют доступ практически ко всем Application Program Interfaces (API) среды Cocoa. Это озна чает, что теперь реально не существует разницы между программа ми, написанными на родном для Mac OS X языке Object-C, и про граммами, написанными на Java. Подтверждением этому служит тот факт, что многие программы, поставляемые в комплекте с Mac OS X, написаны на Java.

Это, в свою очередь, существенно расширяет круг потенциальных разработчиков про грамм для Mac OS X. Программисты, которые раньше создавали Java-программы для UNIX’a или PC, теперь могут найти применение своим знаниям и опыту на платформе Macintosh не только в качестве разра ботчиков специфических Java-программ или апплет, но и как авторы обычных программ для Macintosh’a.

В Mac OS X фирма Apple полностью реализовала спецификации стан дарта Java 2 на основе последней версии Java Development Kit (JDK), включая Java Virtual Machine (JVM). Таким образом, ликвидировано от­ставание реализации Java на Macintosh’ax от остального Java-сообще ства. Macintosh становится полноценной Java-платформой. Общие UNIX-корни Mac OS X и Sun Solaris позволяют надеяться на хорошую совместимость и переносимость Java-программ.

Рассмотрим чуть подробнее окружение Classic, потому что после перехо да на новую систему именно окружение Classic некоторое время будет яв ляться основной средой для практической работы, так как только в этой среде могут работать привычные «классические» программы.

По своей сути, Classic-окружение – это полностью развернутая версия Mac OS 9.xс некоторыми дополнениями для правильного взаимодействия с остальными частями Mac OS X. При первом обращении к окружению Classic, например при запуске «классической» программы, в среде Mac OS X, система, после по лучения согласия от пользователя, устанавливает в Mac OS 9.х необходимые дополнительные файлы. В дальнейшем, при попытке открыть документ, соз данный «классической» программой, или запустить саму «классическую» про грамму, Mac OS X будет запускать Mac OS 9.x, настроенную для работы в сре де Mac OS X.

В настройках системы можно указать, чтобы окружение Classic загружа лось автоматически при каждом старте системы. В этом случае при запуске «классической» программы или открытии документа, созданного «классиче ской» программой, не будет появляться никакого специального сообщения, а будет просто открываться соответствующая программа, как это происхо дит в Mac OS 9.x.

В этом режиме вам доступны практически все средства Mac OS 9.x – под ключение к компьютерной сети, печать, работа со съемными носителями и так далее. Однако надо помнить, что при этом пользователь не получает никаких пре имуществ, заложенных в Mac OS никакой серьезной защиты памяти задач, никакой полноценной многопроцессорности. Окружение Classic рассмат ривается фирмой Apple как переходная фаза, пока большинство фирм-раз работчиков прикладных программ не перепишут свои программы для но вой операционной системы.

Многие компоненты Mac OS X тщательно отлажены и облагорожены. Некоторые из них обновлены, устремлены в будущее и быстро достигают совершенства. Еще никогда все это многообразие не встреча лось под одной оболочкой, тем более в масштабах пользовательского интерфей са. Во многом это все еще потенциал, большей части которого только предстоит дойти до разработчиков.

Шрифты, используемые в Mac OS X

В работе со шрифтами Mac OS X использует механизм, который получил название Apple Type Solution (ATS). Он позволяет работать с такими форматами шрифтов как Open Type, Type 1, TrueType и bitmap. Также ATS обеспечивает централизованное управление шрифтами для всех пользователей сис темы.

Для того, чтобы управлять шрифта ми в системе предусмотрена работа специального модуля. Этот модуль появляется в меню Format прикладных программкак команда Font. Он одновременно является рабочим инструментом для выбо ра конкретного шрифта, его размера и начертания. Также этот модуль используется как средство уп равления шрифтами.

Список Collection используется для переключения между различными на борами (коллекциями) шрифтов, которые можно создавать самостоятельно.

Фирма Apple в Mac OS X упростила набор системных шрифтов. Набор шрифтов сводится к единственной гарнитуре Lucida Grande, которая имеет не сколько различных начертаний. Но это вовсе не означает, что Mac OS X поставляется и работает только с этим шрифтом – Mac OS X снабжен довольно неплохим набором шрифтов, разно образных по своему стилю и назначению.

В коллекцию Classic (классические) входят такие шрифты, как Big Caslon, Didot, Baskerville, Copperplate.

Фирма Apple этой коллекцией отдает своеобразную дань уважения тем людям, которые внесли свой вклад в формирование такой отрасли, как шрифты.

Шрифт Big Caslon обязан своим появлением Уильяму Каслону (William Caslon). Этим шрифтом была отпечатана пер вая редакция Декларации независимости США.

Шрифты семейства Didot, основаные на пойнте – 1/72 дюйма до сегодняшних дней существует и действует в системе типографских размеров.

В честь Джона Баскервиля (John Baskerville) названа гарнитура Baskerville. На написание книги о всех тонкостях типографского производства он потратил семь лет своей жизни.

Коллекция Fun (декоративные, необычные) включает в себя шрифты: American Typewrite, Herculanum, Marker Felt, Papyrus, Zapfino.

В коллекцию Modern (современные) входитне очень большой, но достаточно разнообразный по сти лю набор шрифтов, созданный современными мастерами: Futura, Gill Sam, Helvetica Neue, Optima.

Коллекция шрифтов PDF больше всего подходит для создания документов в формате PDF. В нее входят такие шрифты как Courier, Helvetica, Symbol, Times, Zapf Dingbats.

Для создания Web-страниц используется коллекция Web. Наиболее подходящие шрифты: Andale Mono, Arial, Arial Black, Brush Script MT, Comic Sans MS, Georgia, Impact, Times New Roman, Trebuchet MS, Verdana, Webdings.

Источние: Themacspin.com