Введение

Операционная система для компьютеров серии Apple II

ProDOS — название двух схожих операционных систем для персональных компьютеров серии Apple II. Оригинальная ProDOS, переименованная в ProDOS 8 в версии 1.2, является последней официальной операционной системой, совместимой со всеми 8-битными компьютерами серии Apple II, и распространялась с 1983 по 1993 год. Другая, ProDOS 16, была временным решением для 16-битного Apple II, которое было заменено GS/OS в течение двух лет. Apple позиционировала ProDOS как аббревиатуру от Professional Disk Operating System (Профессиональная дисковая операционная система), и она стала самой популярной операционной системой для компьютеров серии Apple II спустя 10 месяцев после выпуска в январе 1983 года.

Предыстория

ProDOS был выпущен для устранения недостатков более ранней операционной системы Apple (просто называемой DOS), которая начала устаревать. Apple DOS поддерживала только 5,25-дюймовые дискеты и требовала патчей для использования периферийных устройств, таких как жесткие диски и дисководы, отличные от Disk II, включая 3,5-дюймовые дисководы. ProDOS добавляет стандартный метод доступа к драйверам на основе ROM на платах расширения для дисковых устройств, расширяет максимальный размер тома с примерно 400 килобайт до 32 мегабайт, вводит поддержку иерархических подкаталогов (важная функция для организации дискового пространства жесткого диска) и поддерживает диски RAM на машинах с 128 КБ или более памяти. ProDOS решает проблемы с обработкой аппаратных прерываний и включает в себя четко определенный и документированный интерфейс программирования и расширения, которого всегда не хватало в Apple DOS. Хотя ProDOS также поддерживает часы реального времени (RTC), эта поддержка оставалась практически неиспользованной до выпуска Apple II, первой модели в линейке Apple II, оснащенной встроенными RTC. Однако для II Plus, IIe и IIc были доступны RTC сторонних производителей. В отличие от предыдущих версий Apple DOS, ProDOS своими корнями уходит в SOS – операционную систему для злополучного компьютера Apple III, выпущенного в 1980 году. Предварительная документация по ProDOS (включая ранние издания книги Beneath Apple ProDOS) содержала коды ошибок SOS, в частности, для сменных дисков, которые сам ProDOS не мог генерировать. Его формат диска и интерфейс программирования полностью отличаются от Apple DOS, и ProDOS не может читать или записывать диски DOS 3.3, кроме как с помощью утилиты преобразования; хотя низкоуровневый формат треков и секторов дисков DOS 3.3 сохранялся для 5,25-дюймовых дисков, организация файлов и каталогов на высоком уровне совершенно иная. Поэтому большинство программ на машинном коде, работающих под Apple DOS, не будут работать под ProDOS. Однако большинство программ на BASIC работают, хотя иногда требуют незначительных изменений. Программа стороннего разработчика DOS.MASTER позволяет пользователям создавать несколько виртуальных разделов DOS 3.3 на более крупном томе ProDOS. С выпуском ProDOS прекратилась поддержка Integer BASIC и оригинальной модели Apple II, которая давно была фактически заменена Applesoft BASIC и Apple II Plus. В то время как DOS 3.3 всегда загружала встроенную поддержку программирования на BASIC, в ProDOS эта задача возложена на отдельную системную программу, которую необходимо запустить для работы и написания программ на Applesoft BASIC. Сам BASIC продолжал встраиваться в Apple ROM; это лишь расширение интерпретатора команд, позволяющее программам на BASIC получать доступ к ProDOS с помощью того же текстового вывода "Control D", который использовался в DOS 3.3. Сама по себе требует примерно столько же памяти, сколько и вся DOS 3.3. Поскольку ядро ProDOS хранится в оперативной памяти "Языковой карты", объем доступной оперативной памяти для программистов на BASIC остается прежним как в ProDOS, так и в DOS 3.3. Несмотря на многочисленные преимущества ProDOS, многие пользователи и программисты некоторое время сопротивлялись ему из-за своих знаний и опыта работы с Apple DOS, а также из-за программного обеспечения и форматов данных, основанных на Apple DOS. Одной из причин было то, что ProDOS допускает только 15 символов в имени файла, в то время как Apple DOS – 30. Однако интегрированный программный пакет AppleWorks, выпущенный в 1984 году, стал веским аргументом в пользу перехода, и к концу 1985 года для старой операционной системы выпускалось мало новых программных продуктов. Apple II продолжали загружаться со старой DOS (даже Apple IIGS может загружать старые дискеты DOS), но по мере распространения 3,5-дюймовых дискет и жестких дисков большинство пользователей проводили большую часть времени в ProDOS. Apple IIe, также выпущенный в 1983 году, был первым компьютером Apple II с 64 КБ встроенной памяти. В течение некоторого времени Apple поставляла DOS 3.3 и ProDOS вместе с новыми компьютерами. Изначальный ProDOS был переименован в ProDOS 8, когда ProDOS 16 был выпущен для поддержки 16-битного компьютера Apple II, хотя ProDOS 16 (который был 8-битным в своей основе) вскоре был заменен GS/OS.

Требования

Все версии ProDOS требуют компьютер Apple II или совместимый с ним. ProDOS 8 требует 64 КБ памяти для работы. Оригинальная ProDOS (8) версии 1.0 – 1.0.2 требует всего 48 КБ для ядра, однако почти все программы, включая необходимые для использования Applesoft BASIC, требуют 64 КБ, что делает 48 КБ систему практически непригодной для использования с ProDOS, и поддержка 48 КБ машин была исключена в версии 1.1. ProDOS 8 версии 2.x требует процессор 65C02 или более новый (65802, 65816). ProDOS 8 2.x работает в 64 КБ, но для утилит на системном диске требуется 128 КБ. Системы с процессором 6502 вместо 65C02 должны использовать версии ProDOS 8 до 2.0. ProDOS 16 требует Apple IIGS.

Нелицензированные клоны Apple II

С выпуском ProDOS версии 1.01 и выше была добавлена проверка на запуск на официально произведенном компьютере Apple. Если в прошивке ROM компьютера обнаружено слово "Apple", ProDOS загружается нормально. Если обнаружено что-либо другое (например, "Golden", "Franklin", "Elite"), ProDOS отказывается запускаться и зависает на экране загрузки. Эта мера была предпринята компанией Apple Computer для предотвращения использования нелицензионных клонов Apple II. Тем не менее, запустить более новые версии ProDOS на клонах все еще возможно, однако пользователям необходимо применять небольшую байтовую заплату к каждой последующей версии ProDOS. Некоторые пользователи идут еще дальше и заменяют свой физический чип ROM на нелегальную копию ROM от Apple; или, в противном случае, на кастомный пропатченный ROM с добавленным словом "Apple" в его названии.

Поддержка диска

ProDOS 8 изначально поддерживает дисководы, совместимые с Disk II, дисковод оперативной памяти объемом около 59 КБ на компьютерах с 128 КБ или более оперативной памяти, а также блочные устройства, контроллеры которых поддерживают протокол прошивки Pascal – стандартизированный метод приема и обработки блочных операций чтения и записи, впервые разработанный для использования с системой UCSD p. К этой последней категории относятся дискеты 3,5" и жесткие диски. В операционную систему также можно подключать собственные драйверы блочных устройств.

Файловая система

ProDOS использует ту же файловую систему, что и более ранняя Apple SOS для Apple III. Файловая система SOS/ProDOS является нативной для Apple SOS, ProDOS 8, ProDOS 16 и GS/OS. Некоторые классические версии Mac OS также поставляются с транслятором файловой системы для работы с этой файловой системой. Том выделяется в 512-байтовых блоках. (5.25" дискеты по-прежнему форматируются с использованием 256-байтовых секторов, поскольку это формат, требуемый контроллером ROM для загрузки диска. ProDOS просто рассматривает пары 256-байтовых секторов как единый блок на таких накопителях.) Том может иметь емкость до 32 мегабайт, а каждый файл может быть до 16 мегабайт. Каждый том (дискета или раздел жесткого диска) имеет "имя тома" – имя файла, используемое в качестве имени корневого каталога; наличие двух томов с одинаковым именем тома может привести к конфликтам. При необходимости ProDOS осуществляет поиск по всем доступным накопителям для поиска тома с указанным именем. Поддиректории поддерживаются, а для упрощения работы с поддиректориями предусмотрена концепция "префикса" (рабочего каталога или текущего пути). Имена файлов, каталогов и томов могут содержать от 1 до 15 символов, начинающихся с буквы, за которой следуют буквы, цифры или точки. Каждая запись файла также содержит 16-битный (2-байтовый) указатель на блок, содержащий начало файла (или его индекс блока); 16-битный счетчик блоков; 24-битный (3-байтовый) размер файла; 8-битный (1-байтовый) тип файла; 16-битный дополнительный тип (значение которого зависит от типа файла); метки времени создания и изменения; и данные, связанные с тем, как файл хранится на томе. Поддерживаются разреженные файлы, но файлы никогда не "уплотняются" путем удаления заполненных нулями блоков. Заголовок тома содержит аналогичную информацию, относящуюся к томам. Каталоги (включая корневой каталог) индексируются последовательно, при этом каждый блок начинается с адреса предыдущего блока (или нуля, если его нет) и последующего блока (или нуля, если его нет). Корневой каталог на большинстве дисков инициализируется до 4 блоков, что позволяет разместить 51 запись (за исключением заголовка тома). Его размер никогда не меняется, за исключением ручного вмешательства с помощью специальных инструментов. Подкаталоги начинаются с одного блока и автоматически увеличиваются по мере необходимости. Обычные файлы индексируются последовательно. Файлы, состоящие из одного блока (менее 513 байт), не имеют индексного блока; запись в каталоге указывает непосредственно на блок данных файла. Файлы, содержащие от 2 до 256 блоков (от 513 байт до 128 КБ) данных, имеют один индексный блок, на который указывают записи каталога, который содержит список до 256 адресов блоков данных. Более крупные файлы имеют главный индексный блок, содержащий список до 256 адресов индексных блоков. С появлением Apple IIGS был введен новый формат хранения для файлов с двумя вилками, что было типично для системных и программных файлов IIGS; запись в каталоге указывает на информационный блок, который сообщает компьютеру формат хранения двух вилок. Эти файлы не могут быть прочитаны или записаны непосредственно ProDOS 8, хотя сам том остается совместимым. Том имеет битовую карту занятых блоков. Помимо этого, центральной таблицы распределения файлов нет. Том ProDOS 8, отформатированный инструментами Apple, имеет загрузочный сектор, который поддерживает загрузку как ProDOS, так и SOS в зависимости от компьютера, на котором он загружается. Блок 0 – загрузочный блок Apple II, а блок 1 загружает SOS. Это позволяет использовать диск для загрузки компьютеров Apple II или Apple III, поместив оба ядра операционной системы в корневой каталог: загрузочный сектор Apple II ищет файл , а загрузочный сектор Apple III ищет файл . Утилиты форматирования сторонних разработчиков часто не предоставляли загрузочный блок SOS, а некоторые даже отмечали блок 1 как доступный для пользовательских данных. ProDOS не поддерживает другие файловые системы. При необходимости для передачи файлов между ProDOS и более старыми дисками Apple DOS 3.3 используется утилита преобразования на основном системном диске. Поскольку они используют другой формат диска низкого уровня, чем DOS 3.3 и ProDOS, передача данных с дисков DOS 3.2 на ProDOS является двухэтапным процессом с использованием диска DOS 3.3 в качестве посредника (с использованием утилиты DOS 3.3 MUFFIN или аналогичной).