Система первого Mac’а: Finder и файловая система

В возникновении мифа о примитивности и никчемности Mac’ а виноваты его создатели. Они слишком хорошо сделали свою работу. Система Mac’а была сложней и интереснее всех популярных систем того времени, внутри. Внешне все было очень просто, и просто работало. А зачем пользователю знание подробностей анатомии и физиологии его персонального помощника? Самая худшая разновидность “экспертов” – нахватавшиеся верхушек дилетанты. Те, кто и в самом деле владел темой, Mac оценили по достоинству. Их не обманула скупая простота интерфейса, они нашли его очень продуманным, логичным и удобным. “Сегодня я увидел, какими будут компьютеры лет через пять”, – говорили они. А вот “эксперты” пришли в недоумение: кому нужен этот пластиковый “говорящий” ящик, если в нем совершенно невозможно разобраться? Нет ни командной строки, ни текстовых файлов со скриптами или с настройками конфигурации. Ничего нет, вообще! Ну никак не заглянуть ему “в душу”! Вскрыть корпус? На нем табличка: “Не вскрывать, внутри нет ничего интересного”. Кто-то все-таки вскрыл и, действительно, ничего интересного не нашел. Платы, микросхемы… Интересно, что они надеялись там увидеть? Крошечного инопланетянина, прикованного к микроскопическому пульту управления, с миской сушеных инопланетных червяков? Finder и файловая система Оболочка операционной системы Mac’ов с её первого дня и до сих пор называется Finder. “Тот, кто что-то находит”. На границе 80-х и 90-х, когда объёмы дисковых хранилищ стали большими, возник анекдот: Finder that finds nothing (Finder, который ничего не находит), но в 1984 году, на дискете ёмкостью в 400 K спрятать что-то было нелегко. Это классическое Mac’овское приложение, написанное Брюсом Хорном и Стивом Капсом. Брюс – гений и перфекционист, “псих-одиночка”. Работать с ним над одной задачей не мог никто и никогда. Но осенью 1983-го, когда до последнего и окончательного срока завершения проекта оставалось всего ничего, Finder “застрял”. Стив Капс смог найти общий язык с Брюсом. Проблемы были абсолютно объективные, но вдвоем они справились. В декабре 1983 года Finder был готов к выходу в свет. В тот день разработчики Mac’а устроили “день Стива Капса” – все пришли одетыми, как одевался он. По мнению журналистов, главной функцией Finder было управление файловой системой Mac’а. Добавим в это определение только одно слово: “Главной видимой функцией…”. Это реализация метафоры “рабочего стола”, с документами и инструментами для работы с ними. Файловая система первого Mac’a называлась MFS (Macintosh File System). В ней не было иерархии директорий, она была “плоской”, как плохая шутка, но для дискеты ёмкостью в 400 килобайт, значительную часть которой съедала система, это было необходимо. Директории (по Mac’овски – папки) в MFS на самом деле были иллюзией. Их было видно только в Finder. Ссылки на все объекты файловой системы хранились в одном невидимом файле небольшого размера. Иерархическая файловая система (HFS) была написана намного раньше, но на время её убрали в архив. Вплоть до System 3.0 на Mac’ах использовалась только MFS. На системной дискете изначально было две папки – System Folder и Empty Folder. В Empty Folder пользователь мог “убрать” свои документы и программы, как в ящик письменного стола. Взяв нужный файл и перетащив его в открытую или закрытую папку. Empty Folder можно было переименовать. И в момент завершения переименования случалось чудо: на рабочем столе немедленно появлялась новая пустая папка с названием Empty Folder. Файловая система самого первого Mac’а называлась MFS (Macintosh File System), она была предназначена и оптимизирована под односторонние 3,5-дюймовые дискеты с ёмкостью в 400 килобайт, и над ней смеялись. Она была “плоская”. В ней были только “диск” (та самая дискета) и файлы. Иерархии директорий (папок, если по Mac’овски) не было. При удалении Empty Folder (для этого её надо было перетащить в “урну” (Trash) и выбрать в меню Special команду “Empty Trash”. При опустошении урны уничтожалось всё, что было в ней, – пользователей приучали к мысли, что это невосстановимо. На самом деле, если с момента уничтожения этих файлов не создавалось новых, все еще можно было поправить, с помощью специального инструмента – правда, появился он, как мне кажется, в 1985-м. Теоретически восстановить файл можно было с помощью 16-ричного редактора, вручную изменив содержимое невидимого списка файлов и папок, но это было за пределами добра и зла: требовалось найти потерянный файл, правильно привести его положение на диске в обозначение, понятное “невидимому файлу”, исправить информацию самого “невидимого файла” и нигде не ошибиться – иначе системная дискета переставала загружать систему. Отправленный в урну по ошибке (или ради эксперимента) файл можно было вернуть на место с помощью команды Put Back в меню File. Если “мусор еще не выносили”. Имена файлов предназначались для пользователей, файловая система использовала для их идентификации уникальные идентификаторы файлов (числа). В именах файлов и папок можно было использовать абсолютно любые символы, кроме двоеточия. MFS мог работать с именами файлов длиной до 255 символов, но Finder ограничивал полет фантазии пользователя жалкими 63. В одной из версий (в 3.0, кажется) длину имени файла еще раз ограничили, на этот раз 31 символом. Это ограничение дожило до 1998 года. То есть, если “системный шрифт для вывода имен файлов в Finder” знал кириллицу, папка могла бы называться “Я. Избранное. За 1984..1987 годы”. А документы в ней, например, “Сказка про беглого бычка”. Содержимое активного (выбранного) окна при желании можно было распечатать, один в один. Если был принтер. Или отправить по факсу – если был модем и программа отправки факсов. MFS могла работать с дисковым пространством до 20 Мегабайт, или с 1400 файлами, во времена, когда единственным доступным хранилищем информации были односторонние дискеты ёмкостью в 400 К, эти ограничения были теоретическими. Объекты файловой системы Я в предыдущем разделе называл видимые пользователем объекты файловой системы словом “файл”. Это, с точки зрения дизайнеров (в хорошем смысле этого слова) Mac’а, грех. В системе Mac’а файлов не было, были только приложения, документы приложений и документы системы. Метафора рабочего стола – это такая ролевая игра. Центральным элементом этой игры были “документы”, двойным кликом по их иконке они открывались, и, если работающее с ними приложение еще не было запущено, открывали и его. (Вроде бы теперь положено “клик” называть “щелчком”, но мне этот термин не очень нравится). Работу с приложением можно было начать двойным кликом по его иконке – если на диске не было документов нужного типа или если так было удобнее. Или если у приложения не было никаких документов в принципе (игра, 16-ричный редактор диска и тому подобное). В ролевой игре не участвовали только системные документы, за небольшим исключением двойной клик по их иконкам не приводил ни к каким действиям. Их не стали прятать, и это хорошо. Вам приходилось устанавливать драйвер, например, принтера, в PC DOS? А вот на Mac’е весь процесс состоял в перетаскивании документа системы, например “Image Writer LQ”, в системную папку. Убрать принтер из числа работающих, не удаляя его ценный системный документ (драйвер), можно было, убрав его иконку из System Folder. Откуда документы и приложения знали, какими иконками изображаться их на экране и как кого открывать? Ведь никаких расширений файлов в MFS не было. Если вы не знали о том, как это делается, но сами задались этим вопросом, я вами горжусь. Именно этот поиск имели в виду авторы названия Finder. Текст хранится в компьютерах в виде последовательности чисел. В эпоху классических ОС каждый символ обозначался байтом, числом длиной в 8 бит. Заглавные и строчные буквы, знаки препинания, цифра, пробел и т. п. А еще – “непечатные” символы вроде “возврата строки”, “звукового сигнала”, “перехода на следующую строку” и им подобные. В наши дни используются значительно более разорительные кодировки, но я вам про них не расскажу. Инженеры команды Macintosh придумали тип данных, OSType, значение которого было числом, но на экране отображалось как последовательность из 4 букв. OSType применялся в Mac’овской системе для мнемонического обозначения самых разных сущностей. Тип файла отображался двумя атрибутами типа OSType, первый из которых обозначал его формат (Type Code), а второй (Creator Code), в случае, если файл – приложение, хранил мнемонику APPL, если документ – тип создавшего этот документ приложения. Это не все возможные варианты “создателя”, остальные (системные документы, драйверы и т. п.) нас не интересуют. Каким бы образом видимый пользователю файл ни оказывался в хранилище MFS или HFS, система тут же заносила сведения о его атрибутах и иконке в специальный файл, не видимый пользователями. Двойной клик по документу включал алгоритм поиска создателя этого документа – приложение с типом файла, равным создателю файла. Если в пределах диска такого не было, искалось приложение, умеющее работать с этим типом документов. Конфликты? Случались. Но гораздо реже, чем в PC DOS. На Mac’е тип файла обозначался восемью символами вместо трех в PC DOS. Заглавные и строчные буквы в Mac’овском обозначении типов файлов различались, и никто не запрещал использовать в качестве уникальных значений любые символы. Многозадачность Система первых Mac’ов не поддерживала многозадачность. В любой момент на компьютере работала одна программа, или прикладная, или системная – то есть Finder. Между тем, в процессе разработки Mac’а быстро обнаружилась потребность в утилитах, которые всегда под рукой. Калькулятор, будильник, карта текущей раскладки клавиатуры и много чего еще. Решение было найдено. Назвали его Desktop Accessories, или DA’s. Аксессуары рабочего стола. По своей природе это были драйверы специального типа. Жили они в оперативной памяти, выделенной работающему приложению. Можно было запустить любое их число, но при этом запросто можно было нанести ущерб приютившему их приложению. Доступ к DA’s осуществлялся из меню “Яблоко”, содержание которого не зависело от запущенного приложения. DA писали не только в Apple, но и сторонние разработчики. Продолжение следует.

Система первого Mac’а: Finder и файловая система
© Apple Insider