Apple DOS

редактировать
Apple DOS
Apple DOS.png Компьютер Apple с запущенной программой Hello World
Разработчик Apple Computer
Написано на Сборке
Семейство ОСApple DOS
Рабочее состояниеСнято с производства
Исходная модельЗакрытый исходный код
Первоначальный выпуск1978; 42 года назад (1978)
Последний выпуск 3.3 / 1980; 40 лет назад (1980)
Ядро типМонолитное ядро ​​
Лицензия Лицензионное соглашение Apple Software

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 приходилось полагаться на аудиокассеты для хранения и поиска данных.

Содержание
  • 1 История версий
  • 2 Технические детали
    • 2.1 Загрузчик
    • 2.2 Поддержка Integer BASIC и Applesoft BASIC
  • 3 Отклонение
  • 4 Повышение производительности
  • 5 Выпуск исходного кода
  • 6 Ссылки
  • 7 Дополнительная литература
  • 8 Внешние ссылки
История версий

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

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

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. Новая прошивка включала функцию автозапуска, которая автоматически обнаруживала контроллер диска и загружалась с него при включении системы, за что получила название «Автозапуск ROM ». Затем в июле 1979 года была выпущена DOS 3.2.1 с некоторыми незначительными исправлениями ошибок.

Apple DOS 3.3 была выпущена в 1980 году. Она улучшает различные функции версии 3.2, а также позволяет значительно улучшить доступные дискета хранилище; более новые P5A / P6A PROM в контроллере диска обеспечивали чтение и запись данных с более высокой плотностью, поэтому вместо 13 секторов (3,25 KiB ) 16 секторов (4 KiB) данных может храниться на каждой дорожке диска, увеличивая емкость со 113,75 КБ до 140 КБ на каждую сторону диска, из которых 16 КБ используются служебными данными файловой системы и копией DOS на диске, отформатированном под DOS 3.3, оставив 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, если в компьютере есть языковая карта (RAM extension) или карта прошивки.

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

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

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

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

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

Загрузчик

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

  • Первоначально ПЗУ Apple II вообще не поддерживало загрузку с диска. При включении будет отображаться запрос системного монитора. И Monitor, и Integer BASIC имеют команды для перенаправления печати на драйвер принтера в назначенном слоте, поэтому обычный способ загрузки с диска заключался в том, чтобы дать компьютеру команду начать «печать» на интерфейсную карту диска, обычно устанавливаемую в слот 6., используя команду 6 Control-P (из монитора ML) или PR # 6 (из BASIC). Когда монитор или BASIC выдал следующий символ приглашения, компьютер вызвал подпрограммы ПЗУ на карте диска, чтобы «распечатать» ее, которая затем продолжила бы последовательность загрузки. (Можно было бы использовать перенаправление ввода к аналогичным концам.) В качестве альтернативы, с монитора ML пользователь мог ввести номер слота, набрав C600G для прямого вызова загрузочного кода контроллера.
  • Когда был представлен Apple II Plus, она включала возможность сканировать каждый слот расширения (работая по направлению вниз от слота 7 к слоту 1) в поисках загрузочного ПЗУ карты расширения и автоматически вызывать его.
  • Загрузочный код ПЗУ карты расширения пытается загрузиться с диска 1 из контроллер, перемещая рычаг чтения / записи на нулевую дорожку и пытаясь прочитать 256 байтов из нулевого сектора этой дорожки. (Если доступный для чтения диск отсутствует, привод вращается бесконечно, пока не будет предоставлен один диск и дверца привода не будет закрыта.)
  • Нулевой сектор содержит небольшую программу, которая инструктирует компьютер считывать секторы с 0 по 9 нулевой дорожки в память, используя часть загрузочного кода ПЗУ (при этом перечитывая сектор 0).
  • Программа в секторах 1–9 дорожки 0, включая полный код RWTS, затем переходит к загрузке дорожек 1 и 2, которые содержат остальную часть DOS. На системный мастер-диск также включен код для определения конфигурации ОЗУ компьютера и перемещения DOS как можно выше в системную память, до 48 КБ предела основной памяти Apple II ($ BFFF 16).
  • После загрузки DOS в памяти, он пытается загрузить и выполнить программу запуска, как указано в программном коде DOS. Обычно это программа на языке BASIC с именем HELLO (или какое-то другое имя), но DOS можно изменить для запуска других типов программ при запуске, таких как исполняемый двоичный файл. Появление правой скобки (] ) на экране указывает пользователю, что загружается программа запуска Applesoft BASIC, а символ «больше» (>) указывает, что загружается программа Integer BASIC. (Это запросы для соответствующих версий BASIC, которые инициализируются в этот момент.)
  • Затем запускается программа запуска.

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

Оригинальный Apple II включал BASIC i Интерпретатор в ПЗУ, первоначально известный как Apple BASIC, а затем как Integer BASIC. Переменные на этом языке могут обрабатывать только целые числа от −32 768 до +32 767 (16-битные двоичные значения); числа с плавающей запятой не поддерживаются. Apple поручила Microsoft разработать Applesoft BASIC, способный работать с числами с плавающей запятой. 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 требует расширения памяти «Language Card» для использования 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.

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

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

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

0 7 e 6 d 5 c 4 b 3 a 2 9 1 8 f

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

0 8 1 9 2 a 3 b 4 c 5 d 6 e 7 f

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

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

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

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

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

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

Ссылки
Дополнительная литература
  • Worth, Don; Лехнер, Питер (1981), Beneath Apple DOS, Quality Software, ISBN 0-912985-00-3
Внешние ссылки
Последняя правка сделана 2021-06-11 20:58:26
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте