АЛЕКСАНДР ПОТЁМКИН
Mac OS X или То, что должен знать каждый
про Macintosh, Apple и операционные системы
Мое первое знакомство с Маком происходило заочно: по скриншотам, описаниям и восторженным крикам людей, которые хоть раз работали с ним. Вполне закономерным было желание познакомиться с этим компьютером, и чем быстрее, тем лучше.
Итак, желание осуществилось – нас «познакомили», вот тут все и началось...
Я расскажу историю развития компьютеров Apple (тем самым затронув создание первых персональных компьютеров) и самой фирмы Apple, а также расскажу про последнюю (на момент написания этих строк) версию операционной системы Mac OS X.
Появление первого персонального компьютера (небольшая историческая вводная)
Первым персональным компьютером (в том смысле, что его можно было «взять с собой») следует считать компьютеры Altair. Однако первые Altair сложно назвать полноценными «компьютерами» – раз; компьютерами, «пригодными» для обычного пользователя – два.
О полноценности: все, что из себя представляла эта техника, было обычной «коробкой» с большим количеством переключателей. Более того, собрать такую технику пользователю предлагалось самому, так что особенными пользовательскими качествами такая техника также не обладала.
Небольшое лирическое отступление о развитии компьютеров в 1970-х годах: основными пользователями были компьютерные профессионалы – хакеры. Их карьера в основном начиналась за большими компьютерами фирмы Dell либо IBM (последние популярностью не пользовались). Компьютерное время было весьма дорогим, а тяга к компьютерам – очень высока. Так стали появляться первые компьютеры, собранные «для себя».
Одним из таких компьютеров, пущенных в «промышленное» производство, были компьютеры Altair фирмы MITS. Сразу же после организации этой фирмы она была завалена заказами на год вперед. Люди платили деньги за возможность получить пакет с микросхемами и схемой сбора всех деталей в один блок.
Количество людей, желающих владеть таким «компьютером», неуклонно росло, что увеличивало общий уровень технического образования, а значит, и количество людей, приобщающихся к хакерству.
Такие «коробки» пользовались спросом, однако всегда есть люди, которые хотят сделать что-то свое, сделать лучше. Одним из таких людей был Стив Возняк. Он регулярно посещал собрания хакеров и в конечном итоге решил создать компьютер для собственного удовольствия.
Процессором компьютера стал чип 6502 от MOS Technology (основным критерием при выборе этого чипа была цена), микросхемы, способные работать с этим процессором, ему подарил Дэн Сокол на одном из собраний клуба.
Через некоторое время Возняк собрал свой компьютер так, что все уместилось на одну плату (что было достаточно красивым решением). Кроме того, ему пришлось написать свой Basic, так как единственной на тот момент версией была так называемая Tiny Basic, что совсем не подходило Возняку – ему нужна была полноценная версия. Без интерпретатора языка программирования компьютер не представлял бы из себя особенного интереса.
Друг Возняка Стив Джобс был вдохновлен этой платой и потому решил, что они просто обязаны выпускать свой компьютер так же, как это делали и другие фирмы.
Так было положено начало легендарному компьютеру Apple II, презентация работы которого никого не могла оставить равнодушным к такой технике.
Компания Apple Inc.
Джобсу удалось заполучить в команду менеджера по имени Майк Марккула, который раньше занимался организацией продаж и добился на этом поприще больших успехов. С тех пор как он уволился из Intel, Марккула занимался различными бизнес-проектами.
Джобс попросил его написать бизнес-план для Apple и Марккула включился в работу: с его помощью компании удалось привлечь капитал для инвестиций, переманить Майка Скотта – одного из менеджеров из Fairchild Semiconductor, которому был предложен пост президента фирмы. Кроме того, Марккула также расписывался на документах в качестве первого председателя совета директоров.
Следующим привлеченным в компанию человеком был Джон Скалли – президент отделения Pepsi-Cola, крупнейшего в составе PepsiCo.
У Скалли не было специального технического образования, однако он давно был поклонником передовых технологий и, кроме того, был очарован Джобсом.
Фраза Джобса, обращенная к Скалли: «У вас никогда не возникало желания изменить мир? Или вы намерены провести остаток жизни, продолжая торговать подслащенной водой?» положила начало весьма тесным отношениям между ними, которым в дальнейшем, увы, будет суждено распасться.
Джон Скалли становится президентом компании в апреле 1983 года.
К началу 1980 года годовой оборот фирмы превысил 10 миллионов долларов.
Первые проблемы
После Apple II у компании начались первые неприятности. 19 мая 1980 г. был презентован новый компьютер – Apple III. Технически эта машина была более совершенна, однако именно с нее и начинается череда неудач: после серии задержек продукт был выпущен на рынок в недоработанном виде, в результате чего так и не был «признан» пользователями. Одной из основных причин подобных проблем была следующая: это был первый компьютер, который собирался в условиях «фирмы» командой инженеров, которыми руководил Джобс.
В 1983 году выходит компьютер Lisa, использующий все преимущества графического интерфейса (разработанного в Xerox) и оснащенный 1 Мб оперативной памяти, Motorolla 68000 CPU (32 bit, 5 МГц), 2 приводами для дискет, жестким диском на 5 Мб.
Марккула отстранил Стива (Джобса, Возняк сам отошел от дел после серьезной авиакатастрофы в 1981 году) от работы над этим компьютером, в результате чего вся энергия Джобса была брошена на компьютер Macintosh.
Компьютеры Lisa станут популярными с выходом «Lisa 2» и значительным снижением цены ($3495 против $9995), однако после назначения на должность руководителя проектами Lisa и Macintosh Стив позаботится о закрытии первого проекта.
Джобс активно продвигал свое детище, в результате чего Macintosh стал гораздо более популярным, нежели Lisa. Тому способствовала и грамотная маркетинговая компания, и, что самое главное, сам неутомимый Джобс.
При разработке этого компьютера была сделана одна серьезная ошибка – по цене в более $2500 его нельзя было назвать дешевым компьютером, и в то же время его техническое оснащение (в частности, отсутствие жесткого диска, невозможность присоединения внешних устройств, наличие небольшого количества программ) не позволяло рассматривать этот компьютер как серьезную технику.
NeXT Inc.
«К 1985 году объемы продаж Apple достигли $2 млрд впервые за непродолжительную историю компании начали сокращаться, в то время как рыночная доля персональных компьютеров IBM и совместимых с ней моделей все увеличивалась. Apple попала в непростую ситуацию, требующую немедленного вмешательства старших.
…Apple было крайне необходимо сократить цикл разработки новых моделей, большую часть которого составляли задержки, вызванные неудержимым стремлением Джобса к совершенству. Кроме того, Джобс все чаще стал вмешиваться в деятельность других подразделений компании, уже не довольствуясь властью только над отделением компьютеров Macintosh. Менеджеры всех подразделений завалили Скалли жалобами, суть которых сводилась к одному: либо над Джобсом будет быстро установлен контроль, либо все судно пойдет ко дну.
…Наконец, после долгих и мучительных колебаний, Скалли принял решение лишить своего друга и учителя реального влияния над деятельностью компании, удалив его на символическую должность председателя совета директоров Apple. Столь принципиальное изменение баланса сил внутри компании требовало одобрения Майка Марккула и совета директоров Apple. Незадолго до начала заседания совета директоров 10 апреля 1985 года Скалли отозвал Джобса в сторону и рассказал ему о своих планах. Джобс отреагировал словно ребенок, которого отправляют в чужую семью на воспитание против его воли.
…Наконец, после бесконечного обсуждения, начавшегося ранним вечером и завершившегося почти сутки спустя, совет директоров Apple принял единогласное решение отправить Джобса в почетную отставку…» [1].
Итак, Стив Джобс «ушел». Впрочем, история его деятельности на этом не заканчивается – он основывает новую фирму, сыгравшую большую роль в развитии операционных систем, а впоследствии и самой компании Apple, так что вкратце о стремительном развитии компании NeXT.
Создание компании
Джобс с помощью семи сооснователей, покинувших Apple вместе с ним, в 1985 году создает компанию NeXT Inc. (позже преобразованную в NeXT Computer Inc.) с уставным фондом в 7 миллионов долларов.
Стив Джобс посещает большинство американских университетов в поисках интересных технологий, так, в Университете Карнеги Милона он знакомится с Avie Tevanian, работающим над ядром Mach.
12 октября 1988 Стив Джобс организовывает шоу в Сан-Франциско, демонстрирует все возможности новой элегантной машины NeXTcube (с магнитооптическим диском на 256 Мб, 68030 процессором, без жесткого диска и привода для дискет) и системы NeXTSTEP (версии 0.8).
18 сентября 1990 Стив Джобс устраивает новое шоу в Сан-Франциско для презентации новой машины и новой системы NeXTSTEP 2.0. Эта дата считается датой официального выхода компьютера NeXT.
Tim Berners-Lee, работающий в CERN, разрабатывает первый веб-клиент (браузер) для NeXTSTEP.
25 апреля 1991 Стив Джобс организовывает шоу в CNIT в Париже, приуроченное к официальному выходу компьютеров NeXT во Франции.
Были произведены многочисленные демонстрации машин NeXT и NeXTSTEP2. В частности, Джобс показал таблицы Lotus 1-2-3, работающие через эмулятор SoftPC, после чего, заметив, что можно сделать и лучше, продемонстрировал революционную программу для работы с таблицами – Improv. Также была продемонстрирована работа графической подсистемы.
Вышедшая 25 мая 1993 года на NeXTWORLD Expo, операционная система NeXTSTEP 3.1 была первой версией NeXTSTEP, работающей на машинах, отличных от NeXT, – на PC 486. Версия NeXTSTEP 3.1 для PC называлась NEXTSTEP 486.
23 ноября 1993 года Sunsoft объявляет о лицензировании части кода NeXTSTEP для будущего использования в операционной системе Solaris. NeXT, в свою очередь, анонсирует порт NeXTSTEP на компьютеры на платформе SUN – SPARC.
Сразу же после этого соглашения SUN инвестирует 10 миллионов долларов в NeXT.
В 1994 году NeXT публикует спецификации программного обеспечения, названные OpenStep, базирующиеся на системе NeXTSTEP 3.2. Инициатива получает поддержку в лице GNU – начато развитие GNUstep.
В апреле 1995 года NeXT выкупает все права на Object-C у Stepstone. В это же время выходит PDO (PDO – Portable Distributed Objects – система для распределенных вычислений) и NetInfo – программа, шедшая стандартно с NeXTSTEP.
В июне 1995 NeXT выпускает NeXTSTEP 3.3J и EOF 1.1J – японские версии программного обеспечения.
20 декабря 1996 года Apple выкупает NeXT за 400 миллионов долларов. Впрочем, некоторые утверждают обратное. Загадочная картина на официальном сайте предшествовала анонсу. В любом случае, это уже другая история, которая начинается 24 марта 2001 года с выходом Mac OS X.
Возвращение основателя
20 декабря 1996 года Стив Джобс возвращается в родную компанию, что последней идет только на пользу.
Стив продолжает политику оригинального дизайна корпуса машины (машины NeXT были «упакованы» в весьма стильный черный корпус) и доводит ее до логического завершения: с момента своего зарождения «Маки» по праву считались самыми простыми и понятными в использовании.
Политика Стива Джобса основывается на том, что компьютер не должен более восприниматься как нечто сложное, скорее, как еще одна часть интерьера, бытовой техники. Именно этим обуславливается исключительный дизайн корпусов последних компьютеров (самый яркий пример – iMac) от Apple, а также серия программ, начинающихся с буквы «i» (iTunes, iMovie, iDVD, iPhoto) – идеология простых программ. Apple видит компьютер как простое, но в то же время весьма мощное средство для выполнения любых задач любыми пользователями.
Macintosh: каков создатель, таков и компьютер...
Маки – творение фирмы Apple под четким руководством Стива Джобса – человека, благодаря бешеной энергии которого и была создана эта «яблочная фирма». Краткой характеристикой Джобса может служить такое описание: самоуверенный, немного эгоистичный и, несомненно, талантливый харизматичный лидер. Однако создателем первого Мака был друг Джобса – Стив Возняк, талантливый хакер (в изначальном значении этого слова) по натуре достаточно спокойный, оригинальный и веселый человек. Пожалуй, именно эти качества можно найти в Маках до сих пор. Каждая машина по-своему оригинальна, имеет свои достоинства и недостатки. Кроме того, основным преимуществом фирма Apple может считать по праву тот факт, что можно взять любого человека с улицы, посадить его за Макинтош и через 15-20 минут он уже сможет выполнять большинство необходимых функций. Однако это уже операционная система, а о ней разговор отдельный.
Операционные системы от Apple
Mac OS 9 (Classic)
На Маках от рождения могут «бегать» две операционные системы – Mac OS X и Mac OS 9 – это родное. Впрочем, последнее творение Apple упорно пытается вытеснить с рынка своей более новой системой («десяткой»).
Приживить на Мак можно любую систему, работающую на процессорах PowerPC, а это как минимум Linux, OpenBSD, NetBSD, QNX, однако в родной системе, по-моему, есть своя прелесть и менять ее особого смысла я не вижу.
Итак, в арсенале компании Apple существует две операционные системы: Mac OS 9 и Mac OS X. Первая из них сейчас именуется классикой, точнее, это более ранняя система, не использующая таких прелестей жизни, как защита памяти и вытесняющая многозадачность.
В одном из описаний этой системы я встретил хорошую аналогию: Mac OS 9 предполагает, что все программы дружески относятся друг к другу и к пользователю, и, кроме того, грамотно написаны. Если кто-то «заявляет», что ему и только ему нужны все ресурсы процессора, причем прямо здесь и сейчас, то система предоставит эти ресурсы. В свое время святой обязанностью программы является «отдать» все позаимствованное, как только это более не будет нужно, и не «лезть» не в свою область памяти. Такой подход может показаться кому-то странным, однако он работал более 10 лет, и до сих пор большинство «макузеров» (от англ. – macintosh user) не собираются покидать свою любимую систему, обосновывая свое решение просто и лаконично: «Нам и здесь неплохо». Впрочем, их можно понять: «девятка» очень простая и гибкая система в отличие от «десятки», в основе которой лежит UNIX. Этот факт мало кому нравится из всех ветеранов Мака, зато очень привлекает пользователей UNIX-систем...
Mac OS X
Итак, «десятка». Мое знакомство началось с Mac OS 9.2.2, и эта система своим устройством успела достаточно сильно меня расстроить, и, возможно, не писал бы я этих строк (с некоторым агитационным оттенком), если бы не попалось бы на мои глаза новое творение «яблочников» – Mac OS X (10.2, известная также как Jaguar). Тут уже есть о чем рассказать.
Устройство системы Mac OS X
«Десятка» – достаточно оригинальная система. Системную архитектуру у Mac OS X проще всего представить в виде многослойного пирога. На первом уровне находится микроядро Mach, над ним находится Darwin, далее Core Services, Application Services. Над ними еще два уровня: Carbon и Cocoa. На самом верху – собственно программы. Итак, рассмотрим каждый из этих подуровней отдельно.
Микроядро Mach
Микроядро отвечает за следующие задачи:
- управление виртуальной памятью (virtual memory);
- взаимодействие процессов (IPC);
- поддержка ввода/вывода (I/O) и прерываний;
- поддержка взаимодействия аппаратного и программного обеспечения;
- управление заданиями и потоками (Tasks & Threads).
Подобный подход предоставляет достаточно четкую, понятную и легко портируемую структуру операционной системы. Модульность системы реализуется через «клиент-серверную» модель – единственным процессом, работающим в защищенном режиме процессора, является микроядро – первоочередная задача заключается в том, чтобы переместить максимальное количество кода на пользовательский уровень. После загрузки микроядро предоставляет все необходимые сервисы для работы серверов, одним из которых является Darwin.
Darwin
Darwin – это то, что дополняет микроядро до полноценной системы. Возможно, наиболее понятным (хотя и несколько грубым) определением будет следующее: Mach – это ядро, системный уровень; Darwin – это оболочка для пользователя со всеми его приложениями.
Такая структура устройства системы пошла с 4.4BSD Lite – первой свободно-распространяемой в исходных кодах *nix-системой, очищенной от кода AT&T – первоначально, UNIX был детищем этой компании, и вышел из ее исследовательских лабораторий; вначале коммуникационный гигант смотрел на распространение этой системы сквозь пальцы, однако затем, как только была осознана возможная экономическая выгода, все, использующие код, написанный в AT&T, были вынуждены убрать его под угрозой судебного преследования.
Core Services, Application Services
На этом уровне расположены общие для всей системы компоненты, такие как Core Foundation, Carbon Core, Apple Events... (уровень Core Services) и Quartz, QuickDraw... (уровень Application Services). Рассказ о каждом из них выходит за рамки задачи общего рассмотрения системы, но общее у них одно – все они являются базой для всех приложений системы, да и для системы в частности.
Carbon, Cocoa
Это тоже весьма интересная технология, достойная особого внимания.
Mac OS X – это «следующий шаг» после Mac OS 9 (Classic), но в то же время это логическое продолжение развитие NeXT (и спецификаций OpenStep). Посему желательно, чтобы приложения каждой из вышеупомянутых систем могли быть портированы на новое творение «яблочной компании» без особых затруднений.
Выход был найден достаточно оригинальный – новая система поддерживает «классические» приложения через среду Carbon, а «новые» (на самом деле – Next-овские) через среду Cocoa. Для того чтобы приложение заработало в новой системе, для приложений NeXT достаточно просто произвести перекомпиляцию, в то время как приложения из классики будут требовать некоторых доработок.
По заявлениям Apple, «карбонизация» есть лишь временное решение – возможность быстрого портирования приложений на новую систему (в противном случае «десятка» бы просто лишилась бы своих основных приложений, начиная от графики и заканчивая MS Office).
«Карбонизированные» приложения не являются сколь либо ущербными – грамотно портированные приложения мало чем уступают своим новым собратьям (например, одно из основных приложений графического взаимодействия системы с пользователем – Finder – написано с использованием именно этой среды), однако же данная среда не поддерживает всех возможностей системы, предоставляемых в полном объеме через вызовы Cocoa.
Существует мнение, что Carbon останется в системе как стандарт на гораздо больший срок, чем это предполагает сама Apple – слишком велико количество «старых» приложений, и немногие фирмы решатся переписывать их с нуля с использованием новых возможностей, которые могут быть не всем нужны, тем более что в большинстве случаев это повлечет за собой огромные финансовые расходы.
Системная архитектура Mac OS X
Системная архитектура Mac OS X, впрочем, как и NextStep/OpenStep, основана на операционной системе UNIX.
Для лучшего понимания работы этой системы рассмотрим более подробно схему работы *nix-системы от загрузки до «приглашения к работе» (графического либо текстового).
Загрузка системы может быть разбита на 3 этапа.
Первый начинается сразу после того, как программное обеспечение, прошитое в компьютере (то, что называется BIOS на x86 платформе, Firmware на PowerPC и некоторых других) передает управление программе, записанной на винчестере (или CD/DVD-диске).
Здесь в дело вступает загрузчик. Его задача относительно проста – загрузить ядро в память и передать ему управление. Возможно, предварительно осведомившись у пользователя, не хочет ли он задать какие-либо дополнительные параметры для загрузки ядра, либо указать, что грузить необходимо другой образ.
Второй этап – загрузка ядра. Основной его задачей является определение доступного оборудования и его инициализация. В дальнейшем ядро будет ответственно за работу всех программ – вызовы напрямую к железу компьютера запрещены. Затем ядро запускает только один процесс – init.
Третий этап – работа процесса init (от англ. – «initialization») – заключается в последовательном исполнении команд, записанных в файлах конфигурации (директории /etc).
Первым делом обычно проверяется отсутствие ошибок на диске, затем устанавливаются переменные среды (такие как пути для поиска исполняемых программ, системная языковая кодировка, тип терминала и другие).
Потом запускаются системные «демоны» – программы, исполняющиеся на заднем плане (background) и ожидающие определенного события, например, веб-сервер ожидает поступления подключения на 80 порт, после чего обслуживает поступающие команды.
Напоследок для пользователя готовят терминал, и запускается программа «login», предлагающая ввести логин и пароль для начала работы.
Это был стандартный вариант запуска системы. Существуют и другие варианты: среди основных – так называемый single-mode и графический.
Первый используется для возращения системы к жизни, если что-то произошло. В таком случае доступ разрешен только локальный, при старте осуществляется минимальное количество действий (обычно это монтирование диска в режиме только для чтения, инициализация одного терминала).
Второй, графический, уже своего рода добавка: после основного запуска вместо или вместе с инициализацией текстового терминала также запускается «нечто графическое». В случае стандартной *nix-системы «нечто графическое» – это «X server», в случае Мака – «WindowServer». С этого момента большинство пользователей попадают в родную для них графическую среду.
Идеи, заложенные в Mac OS X
*nix-системы всегда отличались гибкостью, они создавались и разрабатывались как многозадачные, многопользовательские, сетевые ОС. Нормальным взаимодействием с компьютером во время создания этой системы считалась работа за текстовым терминалом, тем или иным образом соединенным с главным компьютером.
Чуть позже компьютеры начали персонализироваться, а количество пользователей увеличиваться. Причем далеко не всем нравился текстовый режим, впрочем, как и командная строка.
Через некоторое время и не без помощи фирмы Apple (а также компании Xerox) пользователи узнали, что интерфейс компьютера может быть еще и графическим, то вбивать команды хотелось все меньшему и меньшему количеству людей.
Спрос рождает предложение, и многие платформы и операционные системы стали добавлять возможность работы в графической среде, и *nix не остался в стороне – был реализован проект графического сервера, который запускается на одной машине (сервере), и обрабатывает подключения к нему на определенном порте (клиентов). Время шло, и компьютер стал все чаще использоваться одним человеком, и идея «раздачи» ресурсов для других машин становилась все менее актуальной, и сервер уже обрабатывал подключения с той же машины, на которой был запущен и сам.
Кроме того, архитектура работы с графикой была «многослойна». После запуска X server запускалось приложение, позволяющее пользователю взаимодействовать с компьютером – Window manager (оконный менеджер) в терминологии *nix. Оконный менеджер, в свою очередь, мог запускать дополнительные программы (например, приложения, отвечающие за рабочий стол, за панель снизу экрана и другие мелкие приложения, апплеты). Завершение работы оконного менеджера означает выход из X server.
Такая многослойность вполне в духе *nix-системы, где множество приложений хорошо выполняют свою работу, а их соединение позволяет получить один хороший результат. Однако обратной стороной подобной гибкости является значительная фрагментация системы (что, как показывает практика, может быть хорошо для системы в целом, но не для графического интерфейса), а также потеря производительности.
Именно эти факторы и мешают продвижению *nix-системы:
- отсутствие единой стандартной графической библиотеки для разработчиков (присутствующей в каждом дистрибутиве и не меняющейся от версии к версии);
- единого графического интерфейса (выбор – это хорошо, но наличие стандарта необходимо);
- его продуманности (сейчас зачастую интерфейсы либо копируют коммерческие реализации, такие как Microsoft, Apple, Motif, либо не очень ясны для обычных пользователей);
- грамотной реализации (качество кода, стабильность работы).
Apple решила выбрать в качестве своей базовой платформы *nix, расширить его под себя и переделать всю графическую систему. Так, одним из нововведений является формат сохранения данных конфигурации – теперь все настройки хранятся в файлах формата XML, более трудного для ручного редактирования, однако родного для «программного» хранения данных; кому приходилось редактировать файлы конфигурации после того, как по ним прошелся автоматический, дружественный к пользователю графический конфигуратор на *nix-платформе, поймет о чем я, для остальных поясню: в результате подобных конфигураций оказывается сбита вся логика построения файла, в ней нередко остается немало мусора, и далеко не все параметры могут быть выставлены корректно.
Кроме того, фирма не может терять наработки прошлых лет, в виде большого количества программного обеспечения, написанного для «классики» (Mac OS до 9 версии включительно) и чуть меньшего для NextStep/OpenStep.
Для этого в новой системе поддерживается два вида библиотек – Carbon и Cocoa. Первая из них – для совместимости с «классикой», вторая объявлена новой и приоритетной. Для того чтобы старое (для «классики» или удовлетворяющее спецификациями OPENSTEP) программное обеспечение заработало в новой системе, необходимо произвести перекомпиляцию с незначительными изменениями (либо и вовсе без них). Кроме того, в качестве еще одной рабочей среды объявлена среда Java – виртуальная машина на Mac OS X считается лучшей реализацией среди прочих, и достаточно тесно интегрирована с системой.
Не следует забывать и про слой BSD, и X server, который компания скоро уже должна выпустить в окончательной версии (на данный момент доступна только beta-версия). Также не была упомянута возможность запуска «классических» приложений, не портированных на новую систему. Так что получается, что сейчас, прямо «из коробки» система способна запускать приложения для «классики», приложения OPENSTEP, Java и огромное количество *nix-приложений (для чего создан отдельный проект переноса так называемых портов с FreeBSD на Darwin, позволяющих установить приложение двумя командами «cd» и «make install») как графических, так и работающих из командной строки.
Дополняя картину, нельзя не упомянуть продукт под названием Virtual PC – эмулятор x86 компьютера на Mac OS (последняя 6 версия эмулирует Pentium II MMX, тактовая частота зависит от мощности самого Мака).
Таким образом, компании удалось сохранить старых разработчиков, а также привлечь новых, среди которых и такие ценные «outsource-кадры», как *nix-хакеры и просто пользователи по всему миру, не требующие оплаты, однако же привносящие весьма ощутимый вклад в развитие системы.
Mac OS X в работе
Desktop
Что нужно от жизни обычному пользователю? Простота настройки, наличие офиса, приложений для работы в Интернете, работа с родным (в нашем случае – русским) языком.
Офисных пакета как минимум два: Microsoft Office (стабильно работающим не замечен) и Open Office. И тот и другой обеспечивают совместимость с документами, созданными на «обычных» компьютерах. Причем Office от Microsoft снабжен даже большим количеством «фич», чем его собрат для Windows.
Приложения для работы в Интернете
Здесь выбор весьма велик, а имена производителей достаточно известны, посему просто приведу название приложения и имя производителя:
Браузеры: Internet Explorer (Microsoft), Safari (Apple), Mozilla (Open Source), Opera (Opera Software) и многие другие.
ICQ: ICQ (ICQ Inc.), Fire.app (Open Source), Proteus.
E-mail: Outlook Express (Microsoft), Entourage (Microsoft), Mail (Apple).
Локализация
Системной кодировкой является Unicode, так что все грамотно написанные приложения не испытывают никаких затруднений при работе с любым языком (систему можно в любой момент заставить «говорить» как на китайском, так и на украинском; то же относится к любому приложению, если его разработчик озаботился многоязыковой поддержкой).
Кроме того, перекодировка текста предусмотрена на уровне системных вызовов.
Server
Требования системного администратора обычно несколько другие, а именно – не позволять пользователям делать того, что им не нужно, и иметь возможность настроить все необходимые параметры под конкретную задачу, а также поддержка системы up-to-date.
Системе известно такое понятие, как пользователь «root», здесь он также царь и бог и при желании может делать с системой все что угодно (особенно из командной строки).
Настройка системы здесь производится несколько проще, чем в обычном *nix – для этого существуют графические программы. Однако в отличие от обычного *nix, где все графическое обычно вызывает горестную ухмылку Unix-гуру, здесь все продумано.
Во-первых, Apple не зря начала создание своей Unix-системы, наслоив на классическую архитектуру свои настройки. До момента чтения и исполнения /etc/rc*-файлов здесь все идет как обычно, однако затем из этих же файлов происходит вызов скриптов от «яблочной компании». Т.е. фактически происходит так: грузится Mach, грузится init, который затем, как это и положено, отвечает за все процессы в системе, однако запускает большинство этих процессов SystemStarter, который читает и запускает другие файлы (из директории /System/Library/StartupItems). Так вот формат файлов конфигурации для всякого приложения в Mac OS X – это XML. Данный формат файлов чуть хуже читабелен для человека, зато легко читабелен для приложений, кроме того, запись конфигурации в итоге не генерирует «мусор», который обычно всегда можно найти в обычных файлах конфигурации.
Однако отсюда минус: то, что нельзя настроить графически, необходимо делать «руками». Нет, дело не в том, что это сложно сделать (командный интерпретатор tcsh и редактор vi никто не отменял), а в том, что все изменения, внесенные непредусмотренным системой образом, могут быть впоследствии переписаны обновлением системы.
Кроме того, брандмауэр (в серверной версии системы Mac OS X Server) в графической версии его настройки имеет два варианта работы с трафиком: allow/deny. И в том случае, если администратор решит настроить NAT (masquerading в терминах других систем), то правила брандмауэра (стандартного ipfw, кстати) придется прописывать напрямую в конфигурационных файлах, что требует достаточно плотного знакомства с устройством системы.
В общем, можно сказать, что сервер под управлением Mac OS X Server имеет смысл ставить туда, где необходима простота администрирования, возможно, в некоторых случаях в ущерб гибкости. С другими системами такой сервер будет жить очень даже недурно (с системой идет samba, nfs, ssh, ftpd и ранее упоминаемый apache), а его обновление производится не более чем 6 нажатиями мышки (и не вызывает таких печальных последствий, как автоматическое обновление на другой популярной платформе известного производителя ПО), и кроме того, наличие обновлений может проверяться каждый день/неделю/месяц, и пользователю будет предложено установить имеющиеся обновления.
Developer station
Разработчик – человек, которому нужно немного и от системного администратора, и от обычного пользователя, но в первую очередь необходима удобная система разработки (IDE), полная документация и, возможно, примеры реализации.
Документация достаточно полно описывает все принципы работы системы и снабжена примерами реализации приложения (и/или драйвера). Кроме того, не стоит забывать про открытый исходный код Darwin и другие наработоки Apple (более подробную информацию можно найти здесь: http://developer.apple.com/darwin/projects).
Не могу также пропустить и такое приложение, как Virtual PC, – приложение, позволяющее запускать любую x86 операционную систему и эмулирующее Pentium II MMX, S3 Trio 32/64 (4/8/12 Мб), Sound Blaster, Intel 21041 Based Ethernet Adapter и выделяющее то количество жесткого диска и оперативной памяти, которое будет ему указано. Данное приложение можно отнести и к категории для разработчиков (тестирование своей программы под различные системы), и к категории системщика (количество одновременно работающих систем ограничено только системными ресурсами «хоста») и просто для обычного пользователя – «окошки» в «окошке» позволяют работать с приложениями, которые еще не портированы на Мак, или даже играть в игры (правда, не очень ресурсоемкие).
При подготовке статьи были использованы материалы:
- Джим Карлтон. Apple. Взгляд изнутри: история интриг, ошибок и эгоизма. Издательство «ЛОРИ», 2001.
- Стивен Леви. Хакеры – герои компьютерной революции. (www.cooler.it/hackers)
- История развития NeXT. (http://www.levenez.com/NeXTSTEP).