Архивы: по дате | по разделам | по авторам

Ищ i Mac

Архив
автор : Илья Щуров Voyager   20.03.2007

Рабочий день в "Компьютерре" - понятие очень условное. Зачастую можно выйти из редакции с чувством глубокого морального удовлетворения после трудного, но плодотворного рабочего дня - и встретить кого-нибудь из коллег, идущего навстречу с бодрым и отдохнувшим лицом, на котором явственно читается желание поработать.

Рабочий день в "Компьютерре" - понятие очень условное. Зачастую можно выйти из редакции с чувством глубокого морального удовлетворения после трудного, но плодотворного рабочего дня - и встретить кого-нибудь из коллег, идущего навстречу с бодрым и отдохнувшим лицом, на котором явственно читается желание поработать.

Встреча с прекрасным

Так что я никак не ожидал, что, появившись в редакции всего-навсего в половине седьмого (вечера, разумеется), останусь один на один с этим заморским чудом техники. Впрочем, может быть, оно и к лучшему.

Первый вопрос - а где же здесь, собственно, системный блок? - был решен довольно быстро. Вспомнив свой первый компьютер (незабвенный "Апогей БК 01"), представлявший собой большую красную клавиатуру, я за каких-нибудь пятнадцать минут догадался (на всякий случай заглянув под стол и посмотрев на потолок), что разработчики iMac’а вполне могли провернуть такую же штуку и здесь, уместив всю электронную начинку в широкий и не очень тонкий монитор (вероятно, года через три они запихнут ее в мышку).

Вдоволь налюбовавшись плавными линиями и молочно-белым пластиком корпуса, я перешел к следующей задаче: включению. Обойдя устройство по замкнутому контуру несколько раз, понажимав на все известные мне сочетания клавиш на клавиатуре, пощелкав единственной кнопкой мышки и покрутив ее маленький шарик (выполняющий функции "двухмерного колесика"), а также беззастенчиво ощупав монитор-системник со всех сторон, я уже был готов впасть в панику и сдаться на милость Гугла, введя в него вопрос "как включить iMac?". Наконец, озарение снизошло: в интуитивно понятном месте на задней стенке дисплея приютилась хорошо замаскированная кнопка, нажатие на которую оживило сей девайс. (Через несколько дней я узнал, что тайное знание о ее расположении было откуда-то получено Сергеем Леоновым, а затем распространялось по редакции как устное народное творчество - но до меня, увы, не дошло.)

В общем, знакомство с компьютером обещало быть интересным.

Вскрытие показало…

Детское желание узнать, "что у игрушки внутри", у меня носит довольно "мирный" характер - я давно перестал интересоваться "железной" составляющей техники, так что попадающим в мои руки устройствам не нужно бояться отвертки или паяльника (впрочем, iMac’у это не сильно помогло - сразу после меня им вплотную занялся Сергей Леонов). А вот заглянуть под "софтверный" капот всегда любопытно (да и риск обнаружить после сборки "лишние детали" меньше) - к тому же Mac OS X сама по себе довольно интересная система, и упустить шанс в ней покопаться - просто грех.

Пользователь, привыкший к интерфейсу операционок одной небольшой редмондской компании, а также похожим на них графическим средам в юниксах (в первую очередь Gnome и KDE), пересаживаясь за Мак, оказывается в непривычной среде. От него можно услышать вопросы типа "где ж здесь кнопка Пуск?" или "а куда делось главное меню программы?", нередко сопровождающиеся весьма выразительной лексикой. Мне кажется очевидным, что удобство того или иного интерфейса - это почти всегда вопрос привычек (и именно поэтому в области интерфейсов трудно экспериментировать - перемены мало кто любит, и можно распугать всех пользователей), так что ограничусь констатацией: визуальная среда Mac OS X довольно сильно отличается от всего, с чем мне приходилось сталкиваться. Впрочем, она значительно ближе к MS Windows, чем та среда, в которой я работаю каждый день.

Здесь потребуется некоторое лирическое отступление, имеющее характер пояснения и напоминания. Постоянные читатели наверняка знают, что я уже несколько лет "пишу и верстаю" в Linux. Однако это еще полбеды - беда же в том, что на моем рабочем столе нет не только меню "Пуск" или ему аналогичного, но и вообще никаких иконок и даже окон в привычном понимании; основным инструментом навигации по файловой системе является командная строка, а мышкой я пользуюсь, только когда работаю с изображениями. В общем, мои пристрастия очень далеки от современного интерфейсного мейнстрима - что редмондского, что яблочного.

Однако в данном случае это не слишком важно. По секрету скажу, что я не планировал менять свои привычки и адаптироваться к Mac OS X. Напротив, мною руководило желание переделать эту систему так, чтобы в ней можно было работать. И у меня были все основания считать, что это удастся. Потому что на самом деле разница между Mac OS X и Linux не так уж и велика.

Не ходите, дети…

Если я скажу, что освоил незнакомую Unix-систему за пару дней, мне вряд ли кто поверит: это просто невозможно. Недостаток знаний, совмещенный с желанием "покрутить здесь" и "подергать за эту штуку", обычно приводит к забавным последствиям. Вот и я, попытавшись отмонтировать вставленный в привод DVD-диск, оказался в довольно комичной ситуации. Команда umount [Отмонтирование примерно эквивалентно операции "Безопасного отключения" USB-устройств в Windows - после нее система уже не видит носитель, даже если он находится в приводе] сработала как положено, после чего иконка диска исчезла с рабочего стола и… я понял, что вытащить диск из привода уже не смогу: кнопки "Eject" на устройстве нет, а операционка не знает, что диск находится в приводе. Попытка подмонтировать его назад не увенчалась успехом - мне почему-то резко стало недоставать прав, несмотря на команду sudo. Свежеустановленная программа eject, призванная решить эту проблему без обращения к графическому интерфейсу, почему-то безуспешно пыталась "выплюнуть" винчестер, а когда я в явном виде попросил вернуть мне DVD по-хорошему, только развела руками.

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

 

Unix inside

Если хорошо приглядеться, то юниксовые корни системы можно заметить, даже не залезая в ее внутренности, - на них намекает, например, кириллическая раскладка клавиатуры, в которой запятая находится на кнопке "6", а не на "/", как к этому привыкли в Windows. Впрочем, то, что Mac OS X является тем самым "юниксом с человеческим лицом", становится совсем уж очевидным, когда в списке служебных программ натыкаешься на "Терминал". Рука непроизвольно тянется к клавиатуре, чтобы набрать несколько милых сердцу любого юниксоида слов (например, whoami [запрос имени текущего пользователя] или ps ax [список запущенных процессов]) - и, получив на них ожидаемую реакцию, почувствовать себя в родной стихии.

Система, лежащая в основе Mac OS X, называется Darwin. Она работает на ядре XNU ("XNU’s Not Unix"), которое включает в себя код легендарного микроядра Mach 3 со множеством дополнений из FreeBSD и других BSD-систем. Поверх него работают привычные утилиты и демоны, многие из которых тоже заимствованы из мира BSD, а также собственные разработки Apple. Вся система выпущена на условиях свободной лицензии APSL 2.0. Впрочем, большинство компонентов, отвечающих за видимые "невооруженным глазом" привлекательные возможности Mac OS X, находятся за пределами Darwin и являются проприетарными.

Наличие распространенной юниксовой операционки не могло пройти незамеченным мимо разработчиков open source. Когда под рукой тысячи программ с открытыми исходниками и миллионы их пользователей, вероятность того, что кому-то захочется портировать любимую софтину под новую платформу, довольно велика. К тому же для большого количества программ, написанных под Linux и другие юниксы, портирование под Mac OS X не должно вызывать существенных трудностей и зачастую требует только установки необходимых библиотек и перекомпилирования. Были даже попытки создания полностью свободной полнофункциональной операционки на базе Darwin в рамках проекта OpenDarwin, но летом прошлого года он приказал долго жить из-за недостатка интереса в сообществе и других проблем. Однако это не остановило ни портирование отдельных приложений, ни создание репозитариев пакетов, аналогичных репозитариям Linux-дистрибутивов: наиболее развиты здесь Fink и MacPorts, до закрытия OpenDarwin известный как DarwinPorts.

На свободе

Вид сверху

По всей видимости, идеология Mac мне не слишком близка, но некоторые вещи действительно успели понравиться даже за время того небольшого тест-драйва, что удалось провести. К ним относится, в частности, Expose: по нажатии F9 система позволяет взглянуть на рабочий стол "с высоты птичьего полета", располагая на нем все открытые окна в уменьшенном виде (при этом они не "замораживаются", а продолжают работать).

В первую очередь я по привычке установил Mozilla Firefox, Adium (свободный IM-клиент, основанный на библиотеке libgaim) и NeoOffice (адаптированный порт OpenOffice.org) - софтверный минимум, необходимый для работы. Эти программы устанавливались привычным для Windows-пользователя способом - скачал дистрибутив, распаковал (точнее, подмонтировал образ диска, но для пользователя эти действия мало чем отличаются), при необходимости запустил Setup, нажал несколько раз "Next" и "Agree" - ура, все работает.

Однако в мои задачи входила установка гораздо менее распространенных в мире Mac OS X программ, большую часть из которых нужно было собирать аж из исходников. Для этого пришлось скачать с сайта Apple почти гигабайтный архив со средствами разработки (предварительно прикинувшись крутым программером и зарегистрировшись на Apple Developer Connection) и поставить систему управления пакетами. В первую очередь я искал способ установить оконный менеджер Ion, без которого уже не представляю свою компьютерную жизнь (подробнее про Ion см. статью "Безоконный менеджер" в "КТ" #604), в планах также были Gimp, Inkscape, Gaim и даже Apache с MySQL. Готовый пакет (хотя и с не очень свежей версией) нашелся в системе MacPorts, и именно ее я установил в первую очередь.

После нескольких вспомогательных заклинаний в командной строке я набрал заветное port install ion3. Неторопливо поскрипывая двумя ядрами своего процессора, iMac прикинул, сколько всего потребуется скачать и скомпилировать, ужаснулся, затянул покрепче ремень - и приступил к делу: необходимые пакеты (а их было немало) автоматически забирались из Сети, распаковывались, компилировались и прописывались в системе без моего вмешательства. Не могу сказать, чтобы установка прошла без сучка без задоринки, однако я и не рассчитывал на быстрое достижение своих целей - они не совсем обычны, а Ion в конечном счете все-таки собрался.

Надо заметить, что Mac OS X использует две параллельные графические подсистемы - собственную проприетарную Aqua и стандартные для мира юникс X’ы (точнее, XFree86). Последние, впрочем, требуется отдельно установить с прилагаемого DVD-диска, но делается это совсем просто. После чего в Mac OS начинают работать программы, даже не адаптированные под Aqua, причем внешний вид их окон почти не отличается от оригинальных - системы работают параллельно и друг другу практически не мешают. По крайней мере, если не менять встроенный оконный менеджер quartz-wm на что-то другое. Но именно это мне и хотелось сделать.

Боюсь, что, взглянув на скриншот слева, поклонники маковского дизайна захотят стереть меня в порошок: да, я действительно заменил красивые и стильные окошки в стиле Aqua на унылые и аскетичные, но весьма функциональные и удобные фреймы Ion’а. И это было только начало.

Они повсюду

Просматривая списки пакетов в MacPorts и Fink, поневоле задумываешься о проникающих способностях свободного софта: здесь есть почти все программы, к которым я привык под Linux. Желающие могут даже установить KDE или Gnome поверх Mac OS X - мне лично очень хотелось посмотреть на то, как будет выглядеть замечательный планетарий KStars, но увы: сборка всех необходимых для этого пакетов несколько противоречила графику использования iMac’а.

Вероятно, повозившись еще немного, я мог бы привести Mac OS X в состояние, в котором ее вообще никто не отличил бы от Linux или FreeBSD. Правда, осмысленность этого подхода остается под вопросом - в конце концов, никто не мешает поставить Linux, зачем мучить и так неплохую ОС? Если бы мне действительно пришлось работать на iMac’е, вероятнее всего я бы попытался использовать часть встроенных возможностей системы вместе с привычным набором софта. А возможно, даже "распробовал" бы какие-то специфические эппловские решения.

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

Тотальная автоматизация

В Mac OS с незапамятных времен присутствует система, которая тоже должна была бы мне очень понравиться - если бы я успел с ней разобраться. Речь идет об AppleScript - средстве автоматизации различных процессов, чем-то напоминающем столь милые сердцу любого юниксоида shell-скрипты, но предназначенном для работы с любыми приложениями. Однако философия здесь достаточно далека от классического unix way.

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

AppleScript устроен несколько иначе. Продолжая аналогию, можно сравнить его с языком, который понятен более сложным и более универсальным роботам ("большим" приложениям типа Adobe Photoshop), с помощью которого можно автоматизировать их работу и наладить между ними взаимодействие. При этом его грамматика очень похожа на грамматику естественного английского (и некоторых других языков), а написанные на нем скрипты напоминают кулинарные рецепты: "положить в кастрюлю три яйца из холодильника на кухне" не сильно отличается от "tell application "Downloader" to download "computerra.ru" to file “test.html”". (Насколько такой синтаксис удобен для разработки реальных программ - вопрос спорный, но после вычурных конструкций большинства языков программирования выглядит, несомненно, впечатляюще.) В версии Mac OS X 10.4 Tiger появилось средство для упрощения разработки скриптов под названием Automator, позволяющее создавать "потоки обработки" (workflow) буквально мышкой, вообще без написания кода, - впрочем, к подобным "прослойкам" я отношусь скептически.

И снова надо заметить, что в Windows присутствует близкая технология Windows Scripting Shell. Однако в глаза она не бросается и популярностью у простых юзеров не пользуется.

 

Ссылки

[1] macosxhints.com - краткие "советы дня" о том, как использовать Mac OS X на 100%.
[2] www.finkproject.org  и darwinports.com (медленно, но верно переезжающий на macports.org) - основные репозитарии свободного софта под Mac OS X.
[3] xvsxp.com - сравнительный анализ Mac OS X и Windows XP.
[4] www.macscripter.net  - все о скриптах AppleScript.
 

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.