stringtranslate.com

Apple DOS

Apple DOS — это семейство дисковых операционных систем для микрокомпьютеров серии Apple II, выпускавшихся с конца 1978 по начало 1983 года. В 1983 году оно было заменено ProDOS. Apple DOS имеет три основных выпуска: DOS 3.1, DOS 3.2 и DOS 3.3; за каждым из этих трех выпусков следовал второй, незначительный выпуск с «исправлением ошибок», но только в случае Apple DOS 3.2 этот второстепенный выпуск получил собственный номер версии — Apple DOS 3.2.1. Самая известная и наиболее используемая версия — Apple DOS 3.3 выпусков 1980 и 1983 годов. До выпуска Apple DOS 3.1 пользователям Apple приходилось полагаться на аудиокассеты для хранения и извлечения данных.

История версий

Когда Apple Computer представила Apple II в апреле 1977 года, новый компьютер не имел ни жесткого диска, ни дисковой операционной системы (DOS). Хотя соучредитель Apple Стив Возняк в конце того же года разработал контроллер Disk II и считал, что мог бы написать DOS, его соучредитель Стив Джобс решил передать эту задачу на аутсорсинг. Компания рассматривала возможность использования CP/M от Digital Research , но Возняк искал более простую в использовании операционную систему. 10 апреля 1978 года Apple подписала с Shepardson Microsystems контракт на сумму 13 000 долларов на написание DOS и поставку ее в течение 35 дней. Apple предоставила подробные спецификации, а один из первых сотрудников Apple Рэнди Виггинтон тесно сотрудничал с Полом Лотоном из Shepardson, когда последний писал операционную систему с использованием перфокарт и мини-компьютера . [2]

Не существовало Apple DOS 1 или 2. Версии с 0.1 по 2.8 представляли собой последовательно пронумерованные версии во время разработки, которые с таким же успехом можно было бы называть сборками с 1 по 28. Apple DOS 3.0, переименованная версия версии 2.8, никогда не выпускалась публично из-за ошибок. . Apple не публиковала официальной документации до версии 3.2. [3] [4]

Apple DOS 3.1 была публично выпущена в июне 1978 года, чуть более чем через год после появления Apple II, став первой дисковой операционной системой для любого компьютера Apple. Позже вышла версия с исправлением ошибок, в которой проблема решалась с помощью MASTER CREATEутилиты, которая использовалась для создания главных (загрузочных) дисков Apple DOS: встроенная команда INITсоздавала диски, которые можно было загрузить только на машинах с как минимум таким же объемом памяти как той, которая их создала. MASTER CREATEвключает самоперемещающуюся версию DOS, которая загружается на Apple с любой конфигурацией памяти.

Apple DOS 3.2 была выпущена в 1979 году, чтобы отразить изменения в методах загрузки компьютера, которые были встроены в преемника Apple II, Apple II Plus. Новая прошивка включала функцию автозапуска, которая автоматически находила контроллер диска и загружалась с него при включении системы, за что получила название «Autostart ROM ». [ нужна цитация ] DOS 3.2.1 была выпущена в июле 1979 года с некоторыми незначительными исправлениями ошибок. [5]

Apple DOS 3.3 была выпущена в 1980 году. В ней улучшены различные функции [ какие? ] версии 3.2, позволяя при этом значительно увеличить объем доступной памяти на дискетах . Новые PROM P5A/P6A в контроллере диска обеспечивают чтение и запись данных с более высокой плотностью, поэтому на дорожке можно хранить 16 секторов (4 КиБ) вместо 13 секторов (3,25  КиБ ), увеличивая емкость со 113,75 КБ до 140. КБ на каждую сторону — 16 КБ из них используются для служебных данных файловой системы и копии DOS, оставляя 124 КБ для пользовательских программ и данных. Однако DOS 3.3 не имеет обратной совместимости ; он не может читать и записывать диски DOS 3.2. Чтобы решить эту проблему, Apple Computer выпустила «MUFFIN», утилиту для переноса файлов и программ Apple DOS 3.2 на диски версии 3.3. Apple никогда не предлагала утилиту для копирования в другом направлении. Чтобы перенести файлы Apple DOS 3.3 обратно на диски версии 3.2, кто-то написал утилиту «NIFFUM». Существуют также коммерческие утилиты (например, Copy II Plus), которые могут копировать файлы в любой формат (и, в конечном итоге, также в ProDOS ). В версии 3.3 также улучшена возможность переключения между Integer BASIC и Applesoft BASIC, если компьютер имеет языковую карту ( расширение ОЗУ ) или карту прошивки.

Технические детали

Диски Apple DOS 3.1 используют 13 секторов данных на дорожку, каждый сектор имеет размер 256 байт. Он использует 35 дорожек на каждой стороне диска и может получить доступ только к одной стороне дискеты, если только пользователь не перевернул диск . Это дает пользователю общую емкость памяти 113,75 КБ на каждую сторону, из которых около 10 КБ используется для хранения самой DOS и каталога диска, оставляя около 100 КБ для пользовательских программ.

Первый уровень операционной системы называется RWTS, что означает «сектор дорожки чтения/записи». Этот уровень состоит из подпрограмм поиска дорожек, чтения и записи секторов, а также форматирования диска. На основе этого был создан API, называемый файловым менеджером, который реализует функции для открытия, закрытия, чтения, записи, удаления, блокировки (т. е. защиты от записи), разблокировки (т. е. разрешения записи) и переименования файлов, а также для проверки Структурная целостность файла. Существует также CATALOGфункция для вывода списка файлов на дискете и функция INIT, которая форматирует диск для использования с DOS, сохраняет копию DOS на первых трех дорожках и сохраняет программу запуска (обычно называемую HELLO), которая автоматически -запускается при загрузке с этого диска. Помимо API-интерфейса файлового менеджера реализованы основные процедуры DOS, которые подключаются к интерпретатору BASIC машины и перехватывают все дисковые команды. Он предоставляет BLOAD , BSAVE и BRUN для хранения, загрузки и запуска двоичных исполняемых файлов. LOAD, RUN, и SAVEпредусмотрены для программ BASIC, а EXECдля запуска текстовых пакетных файлов , состоящих из команд BASIC и DOS. Наконец, существуют четыре типа файлов, обозначаемые буквами в списке каталога:

Есть четыре дополнительных типа файлов; «R», «S» и дополнительные «A» и «B», ни один из которых не поддерживается полностью. DOS распознает эти типы только для списков каталогов, и прямых способов манипулирования этими типами файлов не существует. Тип «R» нашел применение для перемещаемых двоичных исполняемых файлов. Некоторые программы поддерживают тип «S» в качестве файлов данных.

Таблица векторов вызовов в районе $03D0–03FF 16 позволяет программам находить DOS везде, где она загружена в системную память. Например, если DOS, подключенная к BASIC CLI , перестает функционировать, ее можно повторно инициализировать, вызвав местоположение $03D0 16 (976 10 ) — отсюда и традиционная 3D0Gкоманда («3D0 go») для возврата в BASIC из системного монитора.

Загрузчик

Процесс загрузки Apple DOS включает в себя ряд очень маленьких программ, каждая из которых переносит процесс загрузки на несколько шагов вперед, прежде чем передать управление следующей программе в цепочке.

Поддержка Integer BASIC и Applesoft BASIC.

Оригинальный Apple II включал в ПЗУ интерпретатор BASIC, известный первоначально как Apple BASIC , а затем как Integer BASIC . Переменные в этом языке могут обрабатывать только целые числа в диапазоне от -32 768 до +32 767 ( 16-битные двоичные значения); Числа с плавающей запятой не поддерживаются. Apple поручила Microsoft разработать Applesoft BASIC , [6] способный обрабатывать числа с плавающей запятой. Applesoft BASIC не может запускать программы Integer BASIC, из-за чего некоторые пользователи отказываются переходить на него.

DOS 3.3 была выпущена, когда Applesoft BASIC был стандартным в ПЗУ Apple II Plus, поэтому Apple разработала ее для поддержки переключения между двумя интерпретаторами BASIC. Целочисленный BASIC загружается в ОЗУ на языковой карте Apple II (если имеется), и, набрав FPили INTиз BASIC, пользователь может переключаться между любой версией.

Отклонить

После 1980 года Apple DOS вошла в состояние стагнации, поскольку Apple сосредоточила свои усилия на злополучном компьютере Apple III и его операционной системе SOS . Еще две версии Apple DOS, обе по-прежнему назывались DOS 3.3, но с некоторыми исправлениями ошибок и лучшей поддержкой новой модели Apple IIe , были выпущены в начале и середине 1983 года.

Без сторонних исправлений Apple DOS может читать только дискеты, работающие в 5,25-дюймовом дисководе Disk II, и не может получить доступ к другим носителям, таким как жесткие диски, виртуальные RAM -диски или 3,5-дюймовые дисководы. Структура дисков Apple DOS (особенно карта свободных секторов, которая была ограничена частью одного сектора) такова, что невозможно иметь одновременно более 400 КБ доступных на диске без серьезной перезаписи почти всех разделов. кода; это основная причина, по которой Apple отказалась от этой версии DOS в 1983 году, когда Apple DOS была полностью заменена ProDOS .

ProDOS сохраняет 16-секторный низкоуровневый формат DOS 3.3 для 5,25-дюймовых дисков, но представляет новый формат высокого уровня, который подходит для устройств объемом до 32  МБ ; это делает его подходящим для жестких дисков той эпохи и 3,5-дюймовых дискет. Все компьютеры Apple, начиная с II Plus, могут работать под управлением как DOS 3.3, так и ProDOS, причем Plus требует расширения памяти «Языковой карты» для использования ProDOS; Модели e и более поздние имеют встроенную языковую карту и поэтому могут напрямую работать с ProDOS. ProDOS включает программное обеспечение для копирования файлов с дисков Apple DOS. Однако многие люди, которым не нужны были улучшения ProDOS (и которым не нравился гораздо больший объем памяти ), продолжали использовать Apple DOS или один из ее клонов еще долго после 1983 года. Соглашение Apple о хранении загрузочной ОС на каждой дискете диск означает, что коммерческое программное обеспечение можно использовать независимо от того, какая ОС у пользователя. Программа под названием DOS.MASTER позволяет пользователям иметь несколько виртуальных разделов DOS 3.3 на большем томе ProDOS, что позволяет использовать многие программы DOS на дискетах с жестким диском.

Вскоре после выхода ProDOS Apple отозвала у третьих сторон разрешение на распространение DOS 3.3, но предоставила одной компании Syndicomm эксклюзивную лицензию на перепродажу DOS 3.3. [7]

Коммерческие игры обычно не использовали Apple DOS, вместо этого имели свои собственные дисковые процедуры для защиты от копирования, а также для повышения производительности.

Улучшения производительности

Процедура RWTS в DOS может читать или записывать дорожку за два оборота с правильным чередованием. Сектор вращающегося диска проходит под головкой чтения/записи, пока процедура RWTS декодирует только что прочитанный сектор (или кодирует следующий для записи), и если этот пропущенный сектор является следующим необходимым, DOS нужно подождать почти целый оборот диска, чтобы сектор снова пришел в себя. Это называется «сброс оборотов» и является хорошо понятным узким местом производительности дисковых систем. Чтобы избежать этого, сектора на диске DOS располагаются в чередующемся порядке: [8]

0 7 е 6 г 5 в 4 б 3 а 2 9 1 8 е

Позже ProDOS расположил сектора в следующем порядке: [8]

0 8 1 9 2 а 3 б 4 в 5 г 6 е 7 е

При чтении и декодировании сектора 0 сектор 8 проходит мимо, так что сектор 1, следующий, вероятно, понадобится, будет доступен без ожидания. При чтении сектора 7 два ненужных сектора, f и 0, пройдут раньше, чем станет доступен сектор 8, а при чтении сектора 15 приводу всегда придется ждать дополнительного оборота для сектора 0 на той же дорожке. Однако фактически необходимый сектор 0 в большинстве случаев будет находиться на следующей по старшинству дорожке, и эту дорожку можно расположить относительно последней, чтобы дать необходимое время для декодирования только что прочитанного сектора и перемещения головки до того, как появится сектор 0. вокруг. В среднем полный трек можно прочитать за два оборота диска.

Ранний файловый менеджер DOS сводил на нет эту эффективность, копируя байты, прочитанные из файла или записанные в него, по одному между дисковым буфером и основной памятью, что требовало больше времени и приводило к тому, что DOS постоянно терял обороты при чтении или записи файлов. [9] Уже на раннем этапе стали доступны программы для форматирования дисков с измененным чередованием секторов; эти диски дают DOS больше времени между секторами для копирования данных, что решает проблему.

Позже программисты за пределами Apple переписали процедуры Файлового менеджера, чтобы избежать создания дополнительных копий для большинства секторов файла; RWTS было дано указание читать или записывать сектора непосредственно в основную память или из нее, а не из дискового буфера всякий раз, когда необходимо было передать полный сектор. Ранний «патч» для обеспечения этой функциональности был опубликован в Call-APPLE . Типичными были ускорения в LOADкоманде в три-пять раз.

Эта функциональность вскоре появилась в коммерческих продуктах, таких как Pronto-DOS, Diversi-DOS, Hyper-DOS и David-DOS, вместе с дополнительными функциями, но никогда не использовалась в официальной версии Apple DOS. Однако аналогичная функциональность использовалась в операционной системе-преемнице Apple, ProDOS. Операционная система GS/OS , специфичная для Apple IIGS, в конечном итоге будет использовать еще более эффективную технику «разбросанного чтения», которая будет читать любой сектор, который проходит под головкой чтения, если это необходимо для считываемого файла.

Выпуск исходного кода

В 2013 году, более чем через 35 лет после дебюта Apple II , оригинальный исходный код Apple DOS был опубликован Музеем истории компьютеров на своем веб-сайте. [10] Оно было подарено первоначальным автором Полом Лотоном. [11]

Смотрите также

Рекомендации

  1. ^ Apple II DOS — Исходный код
  2. ^ Тердиман, Дэниел (3 апреля 2013 г.). «Нерассказанная история операционной системы Apple стоимостью 13 000 долларов». CNET . Проверено 4 апреля 2013 г.
  3. ^ «Компьютер Apple». Лотон.com . Проверено 14 июня 2013 г.
  4. ^ «История Apple II »14-DOS» . Apple2History.org . Архивировано из оригинала 10 июля 2010 г. Проверено 14 июня 2013 г.
  5. ^ «История Apple II »14-DOS» . Apple2History.org . Архивировано из оригинала 10 июля 2010 г. Проверено 14 июня 2013 г.
  6. ^ Стивен Вейрих. «История Apple II, глава 16». Архивировано из оригинала 29 января 2009 года . Проверено 26 января 2009 г.
  7. Дин Эсмей (18 ноября 2010 г.). «Даже Apple использовала пиратские инструменты». Архивировано из оригинала 25 июля 2011 года . Проверено 11 августа 2011 г.
  8. ^ ab «О форматах архивов» . Проверено 26 апреля 2012 г.
  9. ^ DOS 3.3, ProDOS и Beyond v1.3, пункт 7 июля 2001 г.
  10. ^ Шустек, Лен (12 ноября 2013 г.). «Исходный код Apple II DOS». ComputerHistory.org . Проверено 30 ноября 2013 г.
  11. ^ «35-летняя операционная система Apple II теперь открыта для публики» . 13 ноября 2013 г.

дальнейшее чтение

Внешние ссылки