Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 Computer представила Apple II в апреле 1977 года, в новом компьютере не было дисковода или дисковой операционной системы (DOS). Хотя соучредитель Apple Стив Возняк разработал контроллер Disk II в конце того же года и считал, что он мог бы написать DOS, его соучредитель Стив Джобс решил передать эту задачу на аутсорсинг. Компания считается использованием Digital Research «s CP / M , но Возняк искал операционную систему , которая была проще в использовании. 10 апреля 1978 года Apple подписала контракт на 13 000 долларов с Shepardson Microsystems.написать 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. Новая прошивка включала функцию автозапуска, которая автоматически находила контроллер диска и загружалась с него при включении системы, за что получила название « ПЗУ автозапуска ». [ необходима ссылка ] В июле 1979 года была выпущена DOS 3.2.1 с некоторыми незначительными исправлениями ошибок. [5]

Apple DOS 3.3 была выпущена в 1980 году. Она улучшает различные функции версии 3.2, а также позволяет значительно увеличить доступное хранилище на гибких дисках ; более новый P5A / P6A ППЗУ в контроллере диска позволило чтение и запись данных на более высокой плотности, так что вместо 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 ) или карта прошивки.

Технические детали [ править ]

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

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

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

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

Таблица векторов вызовов в области $ 03D0–03FF 16 позволяет программам находить DOS везде, где она загружена в системную память. Например, если DOS, подключенная к BASIC CLI, перестает работать, ее можно повторно инициализировать, вызвав адрес $ 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. На системный мастер-диск также включен код для определения конфигурации RAM компьютера и перемещения DOS как можно выше в системную память, вплоть до 48 КБ основной памяти Apple II ($ BFFF 16 ).
  • Как только DOS загружается в память, он пытается загрузить и выполнить программу запуска, как указано в программном коде DOS. Обычно это программа на BASIC с именем HELLO (или какое-то другое имя), но DOS можно изменить для запуска других типов программ при запуске, например, исполняемого двоичного файла. Появление правой скобки ( ] ) на экране указывает пользователю, что загружается программа запуска Applesoft BASIC, а символ «больше» ( > ) указывает, что загружается программа Integer BASIC. (Это подсказки для соответствующих версий BASIC, которые инициализируются на данный момент.)
  • Затем запускается программа запуска.

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

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

Выпуск исходного кода [ править ]

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

Ссылки [ править ]

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

Дальнейшее чтение [ править ]

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

Внешние ссылки [ править ]

  • Отчет Пола Лотона о написании DOS 3.1
  • История Apple II: DOS
  • A2Central.com - новости и материалы для загрузки Apple II
  • Статья о DOS 3.1 на Everything2.com
  • Исходный код Apple II DOS версии 3.1 (1978 г., выпущен в 2013 г. с разрешения Apple Inc.)