Apple DOS - Apple DOS

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

Apple DOS это семья дисковые операционные системы для Apple II серии из микрокомпьютеры с конца 1978 по начало 1983 года. Его заменили ProDOS в 1983 году. 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 представил Яблоко II в апреле 1977 года в новом компьютере не было дисковода или диск операционной системы (DOS). Хотя соучредитель Apple Стив Возняк разработал Диск II в конце того же года и считал, что мог бы написать DOS, его соучредитель Стив Джобс решил передать задачу на аутсорсинг. Компания рассматривала возможность использования Цифровые исследования с CP / M, но Возняк искал операционную систему, которая была бы проще в использовании. 10 апреля 1978 года Apple подписала контракт на 13000 долларов с Shepardson Microsystems написать DOS и доставить его в течение 35 дней. Apple предоставила подробные спецификации, и один из первых сотрудников Apple Рэнди Виггинтон работал в тесном сотрудничестве с Шепардсон Пол Лотон поскольку последний написал операционную систему с перфокарты и миникомпьютер.[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. Позднее был выпущен выпуск с исправлением ошибок, в котором проблема решалась с помощью МАСТЕР СОЗДАТЬ утилита, с помощью которой были созданы мастер-диски Apple DOS (загрузочные): Встроенный В ЭТОМ команда создавала диски, которые могли быть загружены только на машинах с тем же объемом памяти, что и тот, на котором они были созданы. МАСТЕР СОЗДАТЬ включает самоперемещающуюся версию DOS, которая загружается на Apple с любой конфигурацией памяти.

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

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

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

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

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

  • Я - Целое число BASIC программы (хранятся в компактном формате, а не в виде обычного текста)
  • А - Applesoft BASIC программы (также хранятся в запакованном, компактном формате)
  • B - Двоичные файлы, либо исполняемые программы на машинном языке, либо файлы данных
  • Т - ASCII текстовые файлы (или текстовые, распакованные командные файлы)

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

Таблица векторов вызовов в районе $ 03D0–03FF16 позволяет программам находить DOS, где бы он ни был загружен в системную память. Например, если DOS подключена к BASIC CLI перестает работать, его можно повторно инициализировать, позвонив по адресу $ 03D016 (97610) - отсюда и традиционная команда «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 ($ BFFF16).
  • Как только DOS загружается в память, он пытается загрузить и выполнить программу запуска, как указано в программном коде DOS. Обычно это программа на языке BASIC под названием ПРИВЕТ (или другое имя), но DOS можно изменить для запуска других типов программ при запуске, например исполняемого двоичного файла. Внешний вид правой скобки (]) на экране указывает пользователю, что загружается программа запуска Applesoft BASIC, а символ больше (>) указывает, что загружается программа Integer BASIC. (Это подсказки для соответствующих версий BASIC, которые инициализируются на данный момент.)
  • Затем запускается программа запуска.

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

Оригинальный Apple II включал интерпретатор BASIC в ПЗУ, первоначально известное как Apple BASIC а позже как Целое число 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 сосредоточила свои усилия на злосчастных Яблоко III компьютер и его SOS Операционная система. Еще две версии Apple DOS, обе по-прежнему называются DOS 3.3, но с некоторыми исправлениями ошибок и улучшенной поддержкой нового Apple IIe модели, были выпущены в начале и середине 1983 года.

Без сторонних исправлений Apple DOS может читать только гибкие диски, работающие в 5,25-дюймовом приводе Disk II, и не может получить доступ к любым другим носителям, таким как жесткие диски, виртуальные баран дисководы или 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 3.3 на большом томе ProDOS, что позволяет использовать множество программ DOS на гибких дисках с жестким диском.

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

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

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

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

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

Позже 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 было приказано читать или записывать секторы непосредственно в основную память или из нее, а не из дискового буфера всякий раз, когда должен был быть передан полный сектор. Ранний «патч» для обеспечения этой функции был опубликован в Звоните-A.P.P.L.E.. Типичным было увеличение скорости выполнения команды LOAD от трех до пяти раз.

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

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

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

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

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

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

  • Стоит, Дон; Лехнер, Питер (1981), Под Apple DOS, Качественное программное обеспечение, ISBN  0-912985-00-3

внешняя ссылка