Разработчик | Seattle Computer Products / Тим Патерсон |
---|---|
Написано в | 8086 язык ассемблера |
Семейство ОС | ДОС |
Рабочее состояние | Исторический, неподдерживаемый |
Первоначальный выпуск | 1980 ( 1980 ) |
Последний релиз | 86-DOS 1.10 / Июль 1981 ( 1981-07 ) |
Маркетинговая цель | Микрокомпьютеры на базе S-100 с процессором 8086 |
Доступно в | Английский |
Менеджер пакетов | Н/Д |
Платформы | x86 |
Тип ядра | Монолитное ядро |
Под влиянием | КП/М |
Пользовательский интерфейс по умолчанию | Интерфейс командной строки ( COMMAND.COM ) |
Лицензия | Запатентованный |
Преемник | MS-DOS , IBM PC DOS |
86-DOS (известная внутри компании как QDOS , [1] от Quick and Dirty Operating System ) — это устаревшая операционная система , разработанная и продаваемая компанией Seattle Computer Products (SCP) для своего компьютерного комплекта на базе Intel 8086 .
86-DOS разделяла некоторые из своих команд с другими операционными системами, такими как OS/8 и CP/M , что позволяло легко переносить программы из последней. Ее интерфейс прикладного программирования был очень похож на интерфейс CP/M. Система была лицензирована, а затем куплена Microsoft и далее развивалась как MS-DOS и PC DOS . [2]
86-DOS была создана, потому что продажи компьютерного комплекта Seattle Computer Products 8086 , продемонстрированного в июне 1979 года и отправленного в ноябре, [3] падали из-за отсутствия операционной системы. Единственным программным обеспечением, которое SCP могла продать вместе с платой, был Standalone Disk BASIC-86 от Microsoft , разработанный Microsoft на прототипе оборудования SCP. [3] SCP хотела предложить версию CP/M для 8086 , которую Digital Research изначально анонсировала на ноябрь 1979 года, но она была отложена, и дата ее выпуска была неопределенной. [4] Это был не первый раз, когда Digital Research отставала от развития оборудования; двумя годами ранее она медленно адаптировала CP/M для новых форматов гибких дисков и жестких дисков . В апреле 1980 года SCP поручила 24-летнему Тиму Патерсону разработать замену CP/M-86 . [3]
Используя руководство CP/M-80 в качестве справочного материала, [5] Патерсон смоделировал 86-DOS по его архитектуре и интерфейсам, но адаптировал его для соответствия требованиям 16-разрядного процессора Intel 8086, для легкой (и частично автоматизированной) трансляции на уровне исходного кода многих существующих 8-разрядных программ CP/M; [4] перенос их как на DOS, так и на CP/M-86 был примерно одинаково труден [6] и облегчался тем фактом, что Intel уже опубликовала метод, который можно было использовать для автоматической трансляции программного обеспечения с процессора Intel 8080 , для которого был разработан CP/M, на новый набор инструкций 8086. [4] В то же время он внес ряд изменений и улучшений, чтобы устранить то, что он считал недостатками CP/M. CP/M кэшировал информацию о файловой системе в памяти для скорости, но это требовало от пользователя принудительного обновления на диске перед его извлечением; если пользователь забывал это сделать, диск становился поврежденным. Патерсон выбрал более безопасный, но и более медленный подход обновления диска при каждой операции. Команда PIP CP/M , которая копировала файлы, поддерживала несколько специальных имен файлов, которые ссылались на аппаратные устройства, такие как принтеры и порты связи . Патерсон встроил эти имена в операционную систему как файлы устройств , чтобы любая программа могла их использовать. Он дал своей программе копирования более интуитивное имя COPY . Вместо того, чтобы внедрять файловую систему CP/M , он использовал файловую систему Microsoft Standalone Disk BASIC-86 File Allocation Table (FAT). [2]
К середине 1980 года SCP рекламировала 86-DOS по цене 95 долларов США для владельцев платы 8086 за 1290 долларов США и 195 долларов США для остальных. Она расхваливала способность программного обеспечения читать исходный код Zilog Z80 с диска CP/M и переводить его в исходный код 8086, и обещала, что для создания двоичных файлов 8086 потребуется только «незначительная ручная коррекция и оптимизация». [7]
В октябре 1980 года IBM разрабатывала то, что впоследствии стало первым персональным компьютером IBM . CP/M была самой популярной операционной системой, использовавшейся в то время, и IBM чувствовала, что ей нужна CP/M, чтобы конкурировать. Представители IBM посетили Digital Research и обсудили лицензирование с представителем по лицензированию Digital Research Дороти Килдалл (урожденной Макьюэн), которая колебалась, подписывать ли соглашение IBM о неразглашении . Хотя NDA было позже принято, Digital Research не приняла предложение IBM в размере 250 000 долларов США в обмен на столько копий, сколько IBM сможет продать, настаивая на обычном плане на основе роялти . [8] В более поздних обсуждениях между IBM и Биллом Гейтсом Гейтс упомянул о существовании 86-DOS, и представитель IBM Джек Сэмс сказал ему получить лицензию на нее. [ необходима цитата ]
Microsoft приобрела неисключительную лицензию на 86-DOS у Seattle Computer Products [9] в декабре 1980 года за 25 000 долларов США. [ необходима цитата ] В мае 1981 года она наняла Тима Патерсона для переноса системы на IBM PC, [3] который использовал более медленный и менее дорогой процессор Intel 8088 и имел собственное семейство периферийных устройств. IBM ежедневно следила за развитием событий, [3] отправив более 300 запросов на изменение, прежде чем приняла продукт и написала для него руководство пользователя.
В июле 1981 года, за месяц до выпуска ПК, Microsoft приобрела все права на 86-DOS у SCP за 50 000 долларов США. [3] [10] [11] Она соответствовала основным критериям IBM: выглядела как CP/M, [2] и было легко адаптировать существующие 8-битные программы CP/M для работы под ней, в частности, благодаря команде TRANS , которая переводила исходные файлы из 8080 в 8086 машинных инструкций. Microsoft лицензировала 86-DOS для IBM, и она стала PC DOS 1.0. Эта лицензия также позволяла Microsoft продавать DOS другим компаниям, что она и сделала. Сделка была невероятно успешной, и SCP позже заявила в суде, что Microsoft скрыла свои отношения с IBM, чтобы купить операционную систему дешево. В конечном итоге SCP получила компенсацию в размере 1 миллиона долларов США.
Когда основатель Digital Research Гэри Килдалл изучил PC DOS и обнаружил, что она дублирует программный интерфейс CP/M, он хотел подать в суд на IBM, которая в то время утверждала, что PC DOS является ее собственным продуктом. Однако адвокат Digital Research не считал, что соответствующий закон достаточно ясен для подачи иска. Тем не менее, Килдалл столкнулся с IBM и убедил их предложить CP/M-86 вместе с ПК в обмен на освобождение от ответственности.
Споры продолжаются вокруг сходства между двумя системами. Возможно, самое сенсационное заявление поступило от Джерри Пурнелла , который сказал, что Килдалл лично продемонстрировал ему, что DOS содержит код CP/M, введя команду в DOS, которая отображала имя Килдалла, [12] [nb 1] но Пурнелл никогда не раскрывал команду, и никто не выступил, чтобы подтвердить его историю. Книга о Килдалле 2004 года гласит, что он использовал такое зашифрованное сообщение, чтобы продемонстрировать, что другие производители скопировали CP/M, но не говорит, что он нашел сообщение в DOS; [13] вместо этого мемуары Килдалла (источник для книги) указали на хорошо известное сходство интерфейсов. Патерсон настаивает, что программное обеспечение 86-DOS было его оригинальной работой, и отрицает, что ссылался на или иным образом использовал код CP/M при его написании. [14] [15] После выхода книги 2004 года он подал в суд на авторов и издателей за клевету . [16] Суд постановил в порядке упрощенного судопроизводства , что клевета не имела места, поскольку утверждения книги были мнениями, основанными на исследованиях, и не были доказуемо ложными. [17]
КБДОС 0.10 | 1980-07 [3] | Примерно наполовину завершенная версия ОС. [3] Она реализовала оригинальную форму вывода Патерсона файловой системы FAT от Microsoft . В отличие от более ранней 8-битной файловой системы FAT, найденной в Standalone Disk BASIC-86 , этот вариант уже поддерживал 12-битные элементы таблицы, [18] уменьшил количество FAT с 3 [19] до 2, переопределил семантику некоторых зарезервированных значений кластера и изменил структуру диска, так что корневой каталог теперь находился между FAT и областью данных. Патерсон также увеличил предыдущий предел длины в 9 символов до 11 символов, чтобы поддерживать имена файлов 8.3 в стиле CP/M и блоки управления файлами . Однако этот вариант по-прежнему использовал 16-байтовые записи каталогов и, следовательно, несовместим с тем, что позже стало известно как FAT12 в MS-DOS/PC DOS. Возможно, уже поставляется. [20] |
---|---|---|
QDOS/86-DOS 0.11 | 1980-08 | Исправление ошибки [3] отправка. [3] |
QDOS/86-DOS 0.2 | 1980-08 | Добавлен EDLIN . Переименован в 86-DOS в августе 1980 года. [7] |
86-ДОС 0.3 | 15 ноября 1980 г. | Первая версия, лицензированная SCP для Microsoft. [9] |
86-ДОС 0.33 | 1980-12 | Первая версия, распространенная SCP среди OEM-производителей и Microsoft как 86-DOS. [3] [9] |
86-ДОС 0,34 [21] | 29 декабря 1980 г. [21] | Очищенный релиз для OEM-производителей SCP, включая Microsoft. |
86-ДОС 0,42 [21] | 25 февраля 1981 г. [21] | По косвенному запросу IBM (через Microsoft [10] ) размер записей каталога был изменён с 16 до 32 байт (аналогично MDOS/MIDAS ) для добавления поддержки отметки даты последнего изменения (2 байта) и теоретических размеров файлов более 16 МБ (4 байта), [22] тем самым реализовав самую раннюю форму 12-битной файловой системы FAT, логически полностью совместимую с тем, что позже стало известно как FAT12 в MS-DOS/PC DOS. 86-DOS сохранила возможность читать тома, записанные в более старых версиях 86-DOS , по крайней мере до MS-DOS 1.14 , тогда как универсальные MS-DOS 1.20 / PC DOS 1.1 и выше больше не поддерживали её. |
86-ДОС 0,56 [21] | 23 марта 1981 г. [21] | Поддержка блокировки/разблокировки диска, как и запрашивалось с 15 января 1981 г. [10] |
86-ДОС 0,60 [21] | 27 марта 1981 г. [21] | В файле, DOSIO.ASM найденном в 86-DOS 1.00, упоминается, что это «система ввода-вывода для 86-DOS версии 0.60 и более поздних версий». [23] |
86-ДОС 0,74 [21] | 15 апреля 1981 г. [21] | Добавлены файлы устройств . |
86-ДОС 0,75 [21] | 17 апреля 1981 г. [21] | Исправление ошибки. |
86-ДОС 0,76 [21] | 23 апреля 1981 г. [21] | Исправление ошибки. |
86-ДОС 0,80 [21] | 27 апреля 1981 г. [21] | Добавлены системные вызовы. |
86-ДОС 1.00 [20] [21] | 28 апреля 1981 г. [21] | Измененные системные вызовы. [3] [20] [23] [24] |
86-ДОС 1.01 [21] | 12 мая 1981 г. [21] | Исправление ошибки. |
86-ДОС 1.10 [21] | 21 июля 1981 г. [21] | Куплена Microsoft и переименована в MS-DOS 27 июля 1981 г. [10] [20] следовательно, последняя версия с действительно совпадающими номерами версий 86-DOS и MS-DOS. Первая известная версия, реализующая атрибут «скрытый». |
86-ДОС 1.14 [20] | 1981-10/11 | По словам Тима Патерсона, PC DOS 1.0 в основном отражает 86-DOS 1.14, [20] другие источники считают более вероятным совпадение PC DOS 1.0 с MS-DOS/86-DOS 1.10 по состоянию на 21 июля 1981 года. |
Следующий список команд поддерживается 86-DOS. [25]
К 1982 году, когда IBM попросила Microsoft выпустить версию DOS, совместимую с жестким диском , PC DOS 2.0 была почти полностью переписанной версией DOS, поэтому к марту 1983 года от 86-DOS осталось очень мало. Самым выносливым элементом 86-DOS был его примитивный строчный редактор EDLIN , который оставался единственным редактором, поставляемым с версиями DOS от Microsoft до выпуска в июне 1991 года MS-DOS 5.0 , который включал текстовый редактор пользовательского интерфейса под названием MS-DOS Editor , основанный на QBasic . EDLIN все еще можно использовать на современных машинах, поскольку существует эмулируемая среда DOS вплоть до Windows 10 (32 бит).
Seattle Computer Products 86-DOS поддерживала файловую систему FAT12 на ряде 8-дюймовых и 5,25-дюймовых дисководов на оборудовании контроллера дисководов S-100 , производимом Cromemco , Tarbell Electronics и North Star Computers . Платы Western Digital FD1771 на базе Cromemco и Tarbell поддерживали односторонние, одноплотные мягкосекторные дисководы. Также поддерживалась плата Tarbell с двойной плотностью, использующая FD1791 . Позже SCP предложила усовершенствованные контроллеры дисководов, такие как серия Disk Master.
86-DOS не использовала байт FAT ID [nb 2] или блок параметров BIOS (BPB), как это делают более поздние версии DOS, для различения различных форматов носителей; вместо этого различные буквы дисков были жестко запрограммированы во время компиляции для связи с различными физическими дисководами, сторонами и плотностью. Это означало, что в зависимости от его типа диск должен был быть адресован под определенной буквой диска для правильного распознавания. Эта концепция была позже эмулирована с большей гибкостью DRIVER.SYS в DOS 3.x и более поздних версиях.
Существовало два варианта логического формата 12-битного формата FAT 86-DOS — исходный формат с 16-байтовыми записями каталога и более поздний формат (начиная с 86-DOS 0.42) с 32-байтовыми записями каталога. Только второй формат логически совместим с форматом FAT12, известным с момента выпуска MS-DOS и PC DOS. MS-DOS по-прежнему не может монтировать такие тома, так как при отсутствии BPB он возвращается к извлечению идентификатора FAT в записи FAT для кластера 0, чтобы выбрать среди жестко закодированных профилей геометрии диска. Во всех форматах тома, отформатированного под MS-DOS, которые в противном случае поддерживались бы обеими системами, а также, как правило, во всех других форматах, этот идентификатор расположен в первом байте логического сектора 1, то есть во втором секторе тома с физическим адресом сектора головки цилиндра (CHS) 0/0/2 или адресом логической адресации блока (LBA) 1, поскольку MS-DOS предполагает наличие одного зарезервированного сектора, загрузочного сектора. В 86-DOS область зарезервированных секторов значительно больше (целые дорожки), и поэтому прототипический идентификатор FAT 0xFE
(и 0xFF
) расположен в другом месте на диске, что делает невозможным для MS-DOS извлечь его, и даже если бы это было возможно, жестко закодированный профиль диска, связанный с ним, не принял бы во внимание эту большую область зарезервированных секторов в 86-DOS. [примечание 2]
Дискеты CP/M 2 можно было читать через RDCPM.
86-DOS не предлагала какой-либо специальной поддержки для фиксированных дисков , но сторонние решения в виде контроллеров жестких дисков и соответствующих расширений системы ввода-вывода для 86-DOS были доступны от таких компаний, как Tallgrass Technologies , что делало жесткие диски доступными аналогично супердискетам в пределах ограничений по размеру файловой системы FAT12.
Размер | 8 дюймов | 8 дюймов | 8 дюймов | 5,25 дюйма | 5,25 дюйма |
---|---|---|---|---|---|
Плотность | СД | ДД | ДД | СД | СД |
Модуляция | ФМ | МФМ | МФМ | ФМ | ФМ |
Форматированная емкость (КБ) | 250,25 [23] | 616 [23] | 1232 [23] | 90 [23] | 87,5 [23] |
Цилиндры (CHS) | 77 | 77 | 77 | 40 | 35 |
Физические сектора/дорожки | 26 | 8 | 8 | 18 | 10 |
Количество голов | 1 | 1 | 2 | 1 | 1 |
Полезная нагрузка байта/физический сектор | 128 | 1024 | 1024 | 128 | 256 |
Байты/логический сектор | 128 | 1024 | 1024 | 128 | 256 |
Логические сектора/кластер | 4 | 1 | 1 | 2 | 1 |
Зарезервированные логические сектора | 52 (2 дорожки) | 1 | 1 | 54 (3 трека) | 30 (3 дорожки) |
Количество FAT | 2 | 2 | 2 | 2 | 2 |
Записи корневого каталога (á 32 байта, только 86-DOS 0.42 и выше) | 64 (16 секторов) | 96 (3 сектора) | 128 (4 сектора) | 64 (16 секторов) | 64 (8 секторов) |
Записи корневого каталога (á 16 байт) | 64 | ? | ? | 64 | — |
Всего логических секторов | 2002 | 616 | 1232 | 720 | 350 |
Логические сектора / FAT | 6? | ? | ? | ? | ? |
Скрытые сектора | 0 | 0 | 0 | 0 | 0 |
Логический порядок секторов | ? | ? | ? | ? | ? |
Картографирование секторов | сектор+/дорожка+ | сектор+/дорожка+ | сектор+/головка+/дорожка+ | сектор+/дорожка+ | сектор+/дорожка+ |
Первый физический сектор | 1 | 1 | 1 | 1 | 0 |
Индекс сектора | Мягкий | Мягкий | Мягкий | Мягкий | Сложный (10+1) |
Тип контроллера | Cromemco/Tarbell FD1771 | Тарбелл FD1791 | Тарбелл FD1791 | Cromemco FD1771 | Северная Звезда |
FAT-идентификатор | Нет (FEh) [nb 2] | Нет (FEh) [nb 3] | Нет (FEh) [nb 3] | Нет (FEh) [nb 3] | Нет (FEh) [nb 3] |
Присутствие БПБ | Нет | Нет | Нет | Нет | Нет |
Различные OEM-версии MS-DOS 1.2x и 2.x также поддерживали ряд похожих форматов 8-дюймовых дискет FAT12, хотя и не идентичных тем, которые поддерживались 86-DOS. [примечание 2]
Форматы дисков, поддерживаемые одной из последних версий, разработанных Тимом Патерсоном в Microsoft, MS-DOS 1.25 [21] [26] [27] [28] (март 1982 г.) для компьютера SCP Gazelle с контроллером SCP или контроллером Cromemco 16FDC (по умолчанию эта версия поддерживала только совместимые с MS-DOS варианты 8.0 в форматах с одним зарезервированным сектором, но ее можно было собрать так, чтобы она предоставляла две дополнительные буквы дисков для чтения и записи дискет в предыдущей SCP 86-DOS 8.0 в форматах дисков, начиная с версии 0.42):
Размер | 8 дюймов | 8 дюймов | 8 дюймов | 8 дюймов | 8 дюймов | 5,25 дюйма | 5,25 дюйма | 5,25 дюйма |
---|---|---|---|---|---|---|---|---|
Плотность | СД | СД | ДД | ДД | ДД | СД | ДД | ДД |
Модуляция | ФМ | ФМ | МФМ | МФМ | МФМ | ФМ | МФМ | МФМ |
Форматированная емкость (КБ) | 250,25 (УПП) | 250,25 (МС) | 616 | 1232 (СКП) | 1232 (МС) | 90 | 160 | 320 |
Цилиндры (CHS) | 77 | 77 | 77 | 77 | 77 | 40 | 40 | 40 |
Физические сектора/дорожки [nb 4] | 26 | 26 | 8 | 8 | 8 | 18 | 8 | 8 |
Количество голов [шт. 5] | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 2 |
Полезная нагрузка байта/физический сектор | 128 | 128 | 1024 | 1024 | 1024 | 128 | 512 | 512 |
Байты / логический сектор [nb 6] | 128 | 128 | 1024 | 1024 | 1024 | 128 | 512 | 512 |
Логические секторы/кластер [nb 7] | 4 | 4 | 1 | 1 | 1 | 2 | 1 | 2 |
Зарезервированные логические сектора [nb 8] | 52 (2 дорожки) | 1 | 1 | 1 | 1 | 54 (3 трека) | 1 | 1 |
Количество FAT [nb 9] | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
Записи корневого каталога (á 32 байта) [nb 10] | 64 (16 секторов) | 68 (17 секторов) | 96 (3 сектора) | 128 (4 сектора) | 192 (6 секторов) | 64 (16 секторов) | 64 (4 сектора) | 112 (7 секторов) |
Всего логических секторов [nb 11] | 2002 | 2002 | 616 | 1232 | 1232 | 720 | 320 | 640 |
Логические сектора / FAT [nb 12] | 6? | 6 | 1 | ? | 2 | 4 | 1 | 1 |
Скрытые сектора [nb 13] | 0 | 0 [число 14] | 0 | 0 | 0 | 0 | 0 | 0 |
Общее количество кластеров | ? | 497 | ? | ? | 1227 | ? | 313 | 315 |
Логический порядок секторов | ? | ? | ? | ? | ? | ? | ? | ? |
Картографирование секторов | сектор+/дорожка+ | сектор+/дорожка+ | сектор+/дорожка+ | сектор+/головка+/дорожка+ | сектор+/головка+/дорожка+ | сектор+/дорожка+ | сектор+/дорожка+ | сектор+/головка+/дорожка+ |
Первый физический сектор | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Индекс сектора | Мягкий | Мягкий | Мягкий | Мягкий | Мягкий | Мягкий | Мягкий | Мягкий |
Тип контроллера | Cromemco / Tarbell FD1771 | Cromemco / Tarbell FD1771 | Тарбелл FD1791 / FD1793 | Тарбелл FD1791 / FD1793 | Тарбелл FD1791 / FD1793 | Cromemco 4FDC FD1771 | SCP / Cromemco 16FDC | SCP / Cromemco 16FDC |
FAT ID [кол-во 2] [кол-во 15] | ФЭ | ФЭ | ФЭ | ФЭ | ФЭ | ФЭ | ФЭ | ФФх |
Присутствие БПБ | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
В 1984 году Seattle Computer Products выпустила OEM-версию MS-DOS 2.0 для компьютера SCP S-100 с контроллером SCP-500 Disk Master Floppy. Она добавила поддержку 5.25 в форматах DD/1S (180 КБ) и DD/2S (360 КБ) FAT12, а также поддерживала старые форматы, хотя, возможно, с некоторыми измененными параметрами по сравнению с MS-DOS 1.25 . [29]
CLEAR
команды в 86-DOS 1.00 COMMAND.COM, по-видимому, инициализирует байт FAT ID тома значением FEh независимо от используемого дисковода и формата.0x0D
в DOS 3.0 и выше.0x0F
в DOS 3.0 и выше.0x00
в DOS 2.0 и выше.0x02
в DOS 2.0 и выше.0x03
в DOS 2.0 и выше.0x05
в DOS 2.0 и выше.0x06
в DOS 2.0 и выше.0x08
в DOS 2.0 и выше.0x0B
в DOS 2.0 и выше.0x11
в DOS 3.0 и выше.0x0A
в DOS 2.0 и выше.