совместимости.
Кроме того, файловые системы могут действовать и как клиенты для сетевых протоколов, обеспечивая доступ к файлам, хранящимся на сервере (например, это справедливо для NTFS). Наконец, существуют так называемые «виртуальные» файловые системы, предоставляющие метод доступа к данным файловых устройств. В качестве примера такой системы в мире UNIX можно назвать procfs — в UNIX эта система предоставляет информацию о процессах в виде структуры каталогов.
MacFUSE позволяет реализовать полнофункциональную файловую систему в пользовательском пространстве Mac OS X. Это означает, что реализованный код файловой системы может создаваться и запускаться непривилегированными пользователями без необходимости переписывания кода ядра. Модуль файловой системы в пользовательском пространстве (FUSE) предоставляет «мост» к фактическому коду ядра. MacFUSE делает попытку обеспечения совместимости с исходным механизмом FUSE, который впервые появился в Linux. Это позволяет пользователям компилировать и использовать множество популярных файловых систем FUSE, разработанных на других платформах, в дополнение к новым, разработанным специально для Mac OS X. Это дает возможность разработчикам строить определения файловых систем, которые будут работать на любой платформе, при условии поддержки спецификаций FUSE.
Filesystem in Userspace (FUSE) — файловая система в пользовательском пространстве. Это модуль для ядер UNIX-подобных ОС, с открытым исходным кодом и относящийся к свободному программному обеспечению. Он позволяет пользователям без привилегий создавать их собственные файловые системы без необходимости переписывать код ядра. Соответственно, MacFUSE — это разновидность файловой системы FUSE (File System in User Space) для платформы Mac. Технология MacFUSE была разработана Амитом Сингхом (Amit Singh), руководителем направления свободного ПО для Macintosh в компании Google. Домашняя страница проекта MacFUSE — http://code.google.com/p/macfuse/.
MacFUSE требует Mac OS 10.4 Tiger или более новой. Чтобы установить MacFUSE, загрузите и установите основной пакет MacFUSE, доступный на сайте проекта. Как только установка завершится, ваш компьютер будет готов к использованию некоторых файловых систем FUSE. Чтобы установить некоторые из них, вам может понадобиться добавить такие свободные пакеты, как pkg-config, gettext и, в особенности, glib. Установить эти пакеты можно с помощью Fink, MacPorts или вручную, следуя инструкциям, приведенным в разделе HOWTO на сайте MacFUSE (http://code.google.com/p/macfuse/wiki/HoWTo).
FTPFS (FTP File System) и SSHFS (SSH File System) — это файловые системы FUSE, позволяющие монтировать удаленные системы с использованием протоколов FTP и SSH. Удаленные системы при этом будут выглядеть как примонтированные диски, с которыми можно будет производить обмен файлами методом перетаскивания. FTP (File Transfer Protocol) — это широко распространенный сетевой протокол, используемый для передачи файлов, а SSH (Secure SHell) — это протокол, обеспечивающий шифрование при коммуникациях с удаленными системами. SSHFS позволит вам примонтировать удаленную файловую систему (например, файл-сервер в офисе, учебном заведении или на сервере, предоставляющем вам хостинг для вашего Web-сайта) при обеспечении безопасных коммуникаций с использованием протокола SSH. SSHFS можно скачать с сайта MacFUSE. Этот компонент снабжен базовым графическим интерфейсом и очень прост в использовании.
Как правило, под управлением Mac OS X, диски, отформатированные с использованием NTFS, доступны только на чтение. NTFS — это предпочтительная файловая система, используемая всеми современными системами Windows (включая и компьютеры Mac, использующие Boot Camp). Если вы так или иначе должны взаимодействовать с компьютерами, работающими под управлением Windows, вы, скорее всего, часто сталкиваетесь и с NTFS. Файловая система ntfs-3g FUSE позволяет обеспечить для дисков NTFS возможности как чтения, так и записи.
Использование Gmail для файлового хранилища
Кроме того, существуют некоторые очень интересные виртуальные файловые системы, например, WikipediaFS и GmailFS. WikipediaFS позволяет монтировать на ваш компьютер сайт Wikipedia таким образом, чтобы получить возможность просмотра и редактирования различных статей в точно таком же режиме, как если бы они представляли собой файлы на вашем локальном компьютере. Например, вместо перехода браузером по адресу http://en.wikipedia.org/wiki/Apple и перехода на вкладку Edit (Править), вы можете просто открыть файл /Volumes/WikipediaFS/Apple любым текстовым редактором и редактировать эту статью как текстовый файл. GmailFS позволяет вам хранить файлы в виде почты в Gmail. Аналогичным образом, существуют и виртуальные системы для других сервисов Web, например, таких, как PicasaWeb (http://picasaweb.google.com), Flickr (http://www.flickr.com/), каналы RSS и Google Docs (http://docs.google.com).
GmailFS — это виртуальная файловая система, разработанная Ричардом Джонсом (Richard Jones). Она использует учетную запись Gmail для хранения файлов. GmailFS не следует путать с GoogleFS — распределенной файловой системой, созданной Google для внутренних целей.
Чтобы подготовить вашу систему к установке GmailFS (а также для использования других популярных файловых систем FUSE), вам потребуется установить следующие модули, в дополнение к MacFUSE:
- Python 2.4 или более новой версии — этот пакет можно установить как с помощью MacPorts, так и с помощью Fink.
- Python-FUSE bindings — этот пакет также доступен и в MacPorts (установите пакет fuse-bindings-python), и в Fink (установите пакет fuse-py24 or fuse-py25).
- Libgmail — этот пакет доступен через MacPorts (установите пакет py-libgmail) и через Fink (установите пакеты libgmail-py24 или libgmail-py25).
- GmailFS — этот пакет можно получить через Fink или скачать непосредственно с сайте разработчика (http://richard.jones.name/google-hacks/gmailfilesystem/gmail-filesystem.html).
Если вы — активный пользователь, имеющий большое количество файлов для передачи, не стоит использовать Gmail в качестве хранилища файлов. Хранение файлов на Google — это один из видов активности, за который вашу учетную запись могут взять на заметку, в результате чего вы можете лишиться доступа на срок до 24 часов.
Поскольку все эти компоненты доступны через Fink, то использование Fink будет простейшим вариантом установить GmailFS. Если вы уже пользуетесь MacPorts и вполне довольны этой системой, вы можете установить через MacPorts все компоненты, кроме libgmail. После этого можно скачать последнюю версию GmailFS с Web-сайте разработчика.
Если вы установили GmailFS через Fink, то последующие инструкции можно пропустить. После того как вы загрузите GmailFS с Web-сайта разработчика, вам потребуется открыть архив с исходным кодом, дав из командной строки Terminal следующие команды.
123// Открытие архива с исходным кодом GmailFS$ tar –zxvf gmailfs-0.8.0.tar.gz$ cd gmailfs-0.8.0/
Комбинация 0.8.0 представляет собой номер версии GmailFS, который в будущем может измениться. Последующие несколько команды могут запросить у вас пароль к Mac OS X.
123// Перемещение файлов GmailFS в инсталляционный каталог$ sudo mv gmailfs.py /usr/local/bin/gmailfs.py$ sudo mv mount.gmailfs /sbin/mount_gmail
После этого для получения полностью работающей инсталляции GmailFS вам останется произвести лишь одну заключительную конфигурационную операцию. В каталоге GailFS-0.8.0 имеется файл с именем gmailfs.conf. Отредактируйте этой файл любым текстовым редактором, изменив в нем следующие строки.
1234// Строки из файла gmailfs.conf, подлежащие редактированию[account]username = gmailusernamepassword = gmailpassword
Здесь строку gmailusername следует заменить на имя вашей учетной записи Gmail, а gmailpassword — на ваш пароль Gmail. Затем вам следует сохранить этот файл в каталоге /private/etc на вашем компьютере (для этого вам потребуется воспользоваться командой sudo). Теперь можно приступать к перемещению файлов в хранилище, образованное на базе вашей учетной записи Gmail. Для этого запустите программу Terminal и дайте следующие команды.
12345// Перемещение файлов в хранилище, // организованное на базе учетной записи Gmail$ mkdir ~/gmailfs$ mount -ovolname=bla -o username=gmailuser -o password=gmailpass -o fsname=zOlRRa -t gmailfs /usr/local/bin/gmailfs.py ~/gmailfs
Команды, приведенные в листинге выше, приводят к тому, что ваша учетная запись Gmail будет примонтирована к папке /Users/yourosxusername/gmailfs в вашем домашнем каталоге. При работе через командную строку домашний каталог обозначается символом ~, и, соответственно, путь к папке, к которой будет примонтировано ваше новое хранилище, будет выглядеть так: ~/gmailfs/. После успешного исполнения команд из листинга выше, все файлы, которые вы поместите в каталог ~/gmailfs/, будут сохранены в виде почты в вашем почтовом ящике Gmail. Вы сможете получать к ним доступ как через Finder, где ваше хранилище Gmail также будет отображаться в виде примонтированного диска, так и через командную строку.
Файлы, которые вы будете сохранять на своем диске Gmail, будут выглядеть как несколько необычные почтовые сообщения, поступившие в ваш почтовый ящик в папку входящей почты. Это нормально, но возможно, что это не то, чего вы хотели добиться. Если вы не хотите, чтобы в вашей папке входящей почты появлялись такие сообщения, вы можете создать фильтр Gmail, в соответствии с которым все почтовые сообщения, содержащие строку zOlRRa, сразу же отправлялись в папку с вашим почтовым архивом. Строка zOlRRa используется командой mount в качестве имени вашей файловой системы, и, естественно, вы при желании можете заменить ее любой другой строкой по вашему вкусу.
Чтобы установить WikipediaFS, вам потребуются пакеты Python 2.4 или более новой версии, а также привязки Python-FUSE. Как уже говорилось ранее, эти пакеты можно установить с помощью Fink, MacPorts или непосредственно из исходных кодов. WikipediaFS на текущий момент недоступна через Fink или MacPorts, поэтому устанавливать пакет вам нужно будет вручную. Сам пакет и инструкции по установке доступны для свободного скачивания на сайте разработчика: http://wikipediafs.sourceforge. net/.
Расширяем возможности Spotlight
SpotlightFS — это одна из наиболее интересных файловых систем FUSE. Она разработана специально для Mac OS X. Кроме того, она и появилась одной из первых. SpotlightFS создает интеллектуальные папки (smart folders) на базе Spotlight, содержимое которых генерируется динамически и практически мгновенно. Эти интеллектуальные папки обладают более широкими возможностями, нежели интеллектуальные папки, встроенные в Mac OS X, поскольку, в отличие от них, это не виртуальные, а настоящие папки. В Mac OS X встроенные виртуальные папки в действительности представляют собой не папки, а файлы формата XML, при открытии генерирующие запросы Spotlight. Преимущество настоящих папок перед виртуальными заключается в том, что их можно использовать из любого приложения, а также из командной строки. SpotlightFS можно скачать из раздела Downloads Web-сайта MacFUSE15. После установки вы немедленно сможете воспользоваться SpotlightFS, запустив приложение SpotlightFS.app.
Существуют два различных метода использования SpotlightFS. Простейший из них заключается в применении функции SmarterFolders, которая, как логично предположить на основании ее названия, представляет еще более интеллектуальные возможности, нежели встроенные интеллектуальные папки Mac OS X. Это папки, которые не нужно создавать. Для просмотра их содержимого их достаточно просто открывать. Чтобы начать пользоваться SpotlightFS, запустите приложение SpotlightFS.app, а затем в окне Finder выберите опции Go→Open Folder. Теперь попробуйте ввести следующий путь: /Volumes/SpotlightFS/SmarterFolder/apple. В
ы откроете виртуальную папку, в которой будут содержаться все файлы, возвращенные в ответ на запрос Spotlight по ключевому слову apple. Таким образом вы будете использовать интеллектуальные папки без необходимости создавать их заранее и сможете получать к ним доступ из множества различных приложений. Чтобы получить доступ к интеллектуальной папке из командной строки, дайте следующую команду:
1$ ls -lrt /Volumes/SpotlightFS/SmarterFolder/apple
В результате выполнения этой команды будет выведен список всех файлов, возвращенных по запросу Spotlight по ключевому слову apple. Если вы свободно обращаетесь с командной строкой, то SpotlightFS поможет вам в выполнении пакетных операций над множеством файлов.
Второй метод использования SpotlightFS заключается в фактическом создании каталога, вложенного в /Volumes/SpotlightFS. Этому вложенному каталогу следует присвоить имя искомой строки, например, Apple Hacks. После этого вложенный каталог, названный по имени искомой строки, будет вести себя точно так же, как интеллектуальные папки в Mac OS X, оставаясь при этом реальной папкой. Чтобы создать такой каталог из командной строки и начать им пользоваться, вы можете ввести следующие команды.
1234// Создание и использование интеллектуальной// папки SpotlightFS$ mkdir /Volumes/SpotlightFS/Apple Hacks/$ ls -lrt /Volumes/SpotlightFS/Apple Hacks/
FUSE предоставляет множество возможностей упрощения доступа к данным. В дополнение к этим возможностям, FUSE предоставляет возможности реализации доступа к файловым системам, которые исторически не поддерживаются под Mac OS X. Правда, если экспериментирование с виртуальными файловыми системами является относительно безопасным, о реализации NTFS с помощью FUSE этого сказать нельзя. Поэтому прежде чем вы установите и начнете использовать полнофункциональную файловую систему, например, ntfs-3g, настоятельно рекомендуется выполнить полное резервное копирование всех ваших данных и, разумеется, внимательно прочесть инструкции.