A пример сеанса 86-DOS (смоделированный). | |
Разработчик | Seattle Computer Products / Тим Патерсон |
---|---|
Написано на | 8086 языке ассемблера |
семейство ОС | DOS |
Рабочее состояние | Историческое, неподдерживаемое |
Первоначальный выпуск | 1980; 40 лет назад (1980 г.) |
Последний выпуск | 86-DOS 1.10 / июль 1981 г.; 39 лет назад (1981-07) |
Репозиторий | https://github.com/syeedameen/86-DOS |
Маркетинговая цель | Микрокомпьютеры на базе S-100 с процессором 8086 |
Доступно на | английском языке |
Диспетчер пакетов | Н / Д |
Платформы | x86 |
Ядро тип | Монолитное ядро |
Пользовательский интерфейс по умолчанию | Интерфейс командной строки (COMMAND.COM ) |
Лицензия | Собственная |
86-DOS - это прекращенная операционная система, разработанная и продаваемая Seattle Computer Products (SCP) за свой компьютерный комплект на базе Intel 8086. Первоначально известный как QDOS (Быстрая и грязная операционная система ), название было изменено на 86-DOS после того, как SCP начала лицензировать операционную систему в 1980 году.
86-DOS имело структуру команд и интерфейс прикладного программирования, имитирующие интерфейс Digital Research. Операционная система CP / M, которая упростила перенос программ из последнего. Система была лицензирована, а затем куплена Microsoft и далее развивался как MS-DOS и PC DOS.
86-DOS была создана из-за того, что продажи Seattle Computer Products 8086 компьютерного комплекта, продемонстрированного в июне 1979 года и отгруженного в ноябре, падали из-за отсутствия операционной системы. Единственное программное обеспечение, которое SCP могла продавать вместе с платой, было Standalone Disk BASIC-86 Microsoft, которое Microsoft разработала на прототипе оборудования SCP. SCP хотела предложить 8086-версию CP / M, о которой Digital Research первоначально объявила в ноябре 1979 года, но она была отложена, и дата ее выпуска была неопределенной. Это был не первый случай, когда Digital Research отставала от разработок оборудования; двумя годами ранее адаптировать CP / M к новым форматам гибких дисков и жестких дисков было медленным. В апреле 1980 года SCP поручил 24-летнему Тиму Патерсону разработать замену CP / M-86.
. Используя руководство по CP / M-80 в качестве справочного материала, Патерсон смоделировал 86-DOS после его архитектура и интерфейсы, но адаптированные к требованиям 16-разрядного процессора Intel 8086 для легкой (и частично автоматизированной) переводимости на уровне исходного кода многих существующих 8-разрядных CP / М программы; перенос их либо на DOS, либо на CP / M-86 был примерно одинаково трудным и облегчался тем фактом, что Intel уже опубликовала метод, который можно использовать для автоматического перевода программного обеспечения с процессора Intel 8080, для которого CP / M был разработан для нового набора команд 8086. В то же время он внес ряд изменений и усовершенствований, направленных на устранение недостатков CP / M. CP / M кэширует информацию о файловой системе в памяти для скорости, но это потребовало от пользователя принудительного обновления диска перед его удалением; если пользователь забыл, диск будет поврежден. Патерсон выбрал более безопасный, но более медленный подход, обновляя диск при каждой операции. Команда CP / M PIP, которая копирует файлы, поддерживает несколько специальных имен файлов, которые относятся к аппаратным устройствам, таким как принтеры и порты связи. Патерсон встроил эти имена в операционную систему как файлы устройств, чтобы их могла использовать любая программа. Он дал своей программе копирования более интуитивное название COPY. Вместо реализации файловой системы CP / M, он использовал файловую систему таблицы размещения файлов (FAT) Microsoft Standalone Disk BASIC-86.
К середине 1980 г. SCP рекламировал 86-DOS по цене 95 долларов США для владельцев своей платы 8086 стоимостью 1290 долларов США и 195 долларов США для других. Он рекламировал способность программного обеспечения читать исходный код Zilog Z80 с диска CP / M и переводить его в исходный код 8086, и обещал, что для создания двоичных файлов 8086 потребуется лишь «незначительная ручная коррекция и оптимизация».
В октябре 1980 года IBM разрабатывала то, что впоследствии стало оригинальным персональным компьютером IBM. CP / M была самой популярной операционной системой в то время, и IBM чувствовала, что ей нужен CP / M, чтобы конкурировать. Представители IBM посетили Digital Research и обсудили лицензирование с представителем по лицензированию Digital Research, Дороти Килдалл (урожденная Макьюэн), которая не решалась подписать соглашение IBM о неразглашении. Хотя позже NDA было принято, Digital Research не приняла предложение IBM о 250 000 долларов США в обмен на столько копий, сколько IBM могла продать, настаивая на обычном плане , основанном на роялти. В более поздних обсуждениях между IBM и Биллом Гейтсом Гейтс упомянул о существовании 86-DOS, и представитель IBM Джек Сэмс сказал ему получить для этого лицензию.
Microsoft приобрела неисключительную лицензию на 86-DOS у Seattle Computer Products в декабре 1980 г. за 25 000 долларов США. В мае 1981 года она наняла Тима Патерсона для переноса системы на IBM PC, который использовал более медленный и менее дорогой процессор Intel 8088 и имел свое собственное семейство периферийных устройств. IBM ежедневно следила за развитием событий, отправляя более 300 запросов на изменение, прежде чем принять продукт и написать для него руководство пользователя.
В июле 1981 года, за месяц до выпуска ПК, Microsoft приобрела все права на 86-DOS у SCP за 50 000 долларов США. Он отвечал основным критериям IBM: он выглядел как CP / M, и было легко адаптировать существующие 8-битные программы CP / M для работы под ним, в частности, благодаря команде TRANS, которая переводила исходные файлы из Машинные инструкции с 8080 по 8086. Microsoft передала IBM лицензию на 86-DOS, и она стала PC DOS 1.0. Эта лицензия также позволяла Microsoft продавать DOS другим компаниям, что она и сделала. Сделка была впечатляюще успешной, и SCP позже заявила в суде, что Microsoft скрывала свои отношения с IBM, чтобы купить операционную систему по дешевке. В конечном итоге SCP получила расчетный платеж в размере 1 миллиона долларов США.
Когда основатель Digital Research Гэри Килдал изучил PC DOS и обнаружил, что она дублирует программный интерфейс CP / M, он хотел подать в суд на IBM, которая в Time утверждал, что DOS для ПК была его собственным продуктом. Однако адвокат Digital Research не считал, что соответствующий закон достаточно ясен, чтобы возбуждать иск. Тем не менее Килдалл столкнулся с IBM и убедил их предложить CP / M-86 с ПК в обмен на освобождение от ответственности.
Споры продолжаются вокруг сходства между двумя системами. Возможно, наиболее сенсационное заявление было высказано Джерри Пурнель, который сказал, что Килдалл лично продемонстрировал ему, что DOS содержит код CP / M, введя команду в DOS, которая отображала имя Килдалла, но Пурнель никогда не раскрывала команду, и никто выступил вперед, чтобы подтвердить свою историю. В книге о Килдалле 2004 года говорится, что он использовал такое зашифрованное сообщение, чтобы продемонстрировать, что другие производители скопировали CP / M, но не говорит, что он нашел сообщение в DOS; вместо этого мемуары Килдалла (источник книги) указали на хорошо известное сходство интерфейсов. Патерсон настаивает на том, что программа 86-DOS была его оригинальной работой, и отрицает упоминание или иное использование кода CP / M при его написании. После появления книги 2004 года он подал в суд на авторов и издателей за клевету. В упрощенном решении суд постановил, что клеветы не было, поскольку утверждения книги были мнениями, основанными на исследованиях, или не были доказуемо ложными.
QDOS 0.10 | 1980-07 | Примерно наполовину завершенная версия ОС. Он реализовал исходную форму производной Патерсона файловой системы Microsoft FAT. В отличие от более ранней 8-битной файловой системы FAT, найденной в Standalone Disk BASIC-86, этот вариант уже поддерживал 12-битные элементы таблицы, уменьшая количество FAT с 3 до 2, переопределил семантику некоторых зарезервированных значений кластера и изменил структуру диска, так что теперь корневой каталог располагался между FAT и областью данных. Патерсон также увеличил предыдущий предел длины в 9 символов до 11 символов, чтобы поддерживать CP / M стиль 8.3, имена файлов и Блоки управления файлами. Однако в этом варианте по-прежнему использовались 16-байтовые записи каталога, и поэтому он несовместим с тем, что позже стало известно как FAT12 в MS-DOS / PC DOS. Возможно, уже отправлено. |
---|---|---|
QDOS 0.11 | 1980-08 | Доставка исправления ошибок. |
QDOS / 86-DOS 0.2 | 1980-08 | EDLIN добавлен. К августу 1980 г. переименован в 86-DOS. |
86-DOS 0.3 | 15 ноября 1980 г. | Первая версия лицензирована SCP для Microsoft. |
86-DOS 0.33 | 1980-12 | Первая версия, распространенная SCP среди OEM-производителей и Microsoft как 86-DOS. |
86-DOS 0.34 | 29 декабря 1980 г. | Исправленный выпуск для OEM-производителей SCP, включая Microsoft. |
86-DOS 0.42 | 25 февраля 1981 г. | По косвенному запросу IBM (через Microsoft) размер записей каталога изменен с 16 до 32 байтов (аналогично MDOS / MIDAS ), чтобы добавить поддержку метки даты последнего изменения (2 байта) и теоретических размеров файлов более 16 МБ (4 байта), тем самым реализуя самую раннюю форму 12-битной FAT файловая система, логически полностью совместимая с тем, что позже стало известно как FAT12 в MS-DOS / PC DOS. 86-DOS сохранила возможность чтения томов, написанных в более старых версиях 86-DOS, по крайней мере, до MS-DOS 1.14, тогда как общий MS-DOS 1.20 / ПК DOS 1.1 и выше его больше не поддерживает. |
86-DOS 0,56 | 23 марта 1981 г. | Поддержка блокировки / снятия блокировки диска в соответствии с запросом с 15 января 1981 г. |
86-DOS 0,60 | 27 марта 1981 г. | В файле DOSIO.ASM , найденном в 86-DOS 1.00, упоминается, что это «Система ввода-вывода для 86-DOS версии 0.60 и более поздних». |
86 -DOS 0,74 | 15 апреля 1981 г. | Добавлены файлы устройств. |
86-DOS 0,75 | 17 апреля 1981 г. | Исправлена ошибка. |
86-DOS 0.76 | 23 апреля 1981 г. | Исправление ошибки. |
86-DOS 0.80 | 27 апреля 1981 г. | Добавлены системные вызовы. |
86-DOS 1.00 | 28 апреля 1981 г. | Измененные системные вызовы. |
86-DOS 1.01 | 12 мая 1981 г. | Исправление ошибки. |
86-DOS 1.10 | 21 июля 1981 г. | Приобретено Microsoft и переименовано в MS-DOS 27 июля 1981 г., следовательно, последняя версия с подлинно совпадающими 86-DOS и MS -Номера версий DOS. Первая известная версия, в которой реализован атрибут «скрытый». |
86-DOS 1.14 | 1981-10 / 11 | Согласно Тиму Патерсону PC DOS 1.0 в основном отражает 86-DOS 1.14, другие источники находят совпадение Скорее всего, PC DOS 1.0 с MS-DOS / 86-DOS 1.10 по состоянию на 21.07.1981. |
Следующий список команд поддерживается 86-DOS.
К 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-разрядная версия).
86-DOS Seattle Computer Products поддерживает файловую систему FAT12 на 8-дюймовых и 5,25-дюймовых гибких дисках на S-100 оборудование контроллера гибких дисков производства Cromemco, Tarbell Electronics и North Star Computers. Платы Cromemco и Tarbell на основе Western Digital FD1771 поддерживают односторонние диски с мягким сектором одинарной плотности. Поддерживалась также плата двойной плотности Tarbell, использующая FD1791. Позже SCP предложила усовершенствованные контроллеры гибких дисков, такие как серия Disk Master.
86-DOS не использовала преимущества байта FAT ID или блока параметров BIOS (BPB), как это делают более поздние версии DOS, чтобы различать различные форматы носителей. ; вместо этого во время компиляции были жестко запрограммированы разные буквы дисков, чтобы они были связаны с разными физическими дисководами гибких дисков, сторонами и плотностью. Это означало, что, в зависимости от его типа, для правильного распознавания диск должен был быть адресован под определенной буквой. Позже эта концепция была эмулирована с большей гибкостью в DOS 3.x и более поздних версиях.
Существовали два варианта логического формата 12-битного формата FAT для 86-DOS: исходный формат с 16-байтовыми записями каталога и более поздний формат (начиная с 86-DOS 0.42 ) с 32 -байтные записи каталога. Только второй логически совместим с форматом FAT12, известным с момента выпуска MS-DOS и PC DOS. MS-DOS по-прежнему не может смонтировать такие тома, поскольку при отсутствии BPB она возвращается к получению FAT ID в записи FAT для кластера 0, чтобы выбрать один из жестко заданных профилей геометрии диска. Во всех форматах тома, отформатированных под MS-DOS, которые в противном случае поддерживались бы обеими системами, а обычно также во всех других форматах, этот идентификатор находится в первом байте логического сектора 1, то есть во втором секторе тома с физическим сектор головки блока цилиндров (CHS) адрес 0/0/2 или адрес логического блока (LBA) адрес 1 - поскольку MS-DOS предполагает один зарезервированный сектор, загрузочный сектор. В 86-DOS область зарезервированных секторов значительно больше (целые дорожки), и поэтому прототип FAT ID 0xFE
(и 0xFF
) находится где-то в другом месте на диск, что делает невозможным его извлечение для MS-DOS, и даже если бы это было, жестко запрограммированный профиль диска, связанный с ним, не будет учитывать эту большую область зарезервированных секторов в 86-DOS.
CP / M 2 дискеты были доступны для чтения через RDCPM.
86-DOS не предлагала какой-либо конкретной поддержки фиксированных дисков, но сторонние решения в виде контроллеров жестких дисков и соответствующего ввода-вывода Системные расширения для 86-DOS были доступны от таких компаний, как Tallgrass Technologies, что делало жесткие диски доступными аналогично суперфлоппи в пределах размера файловой системы FAT12.
Размер | 8 дюймов | 8 дюймов | 8 дюймов | 5,25 дюйма | 5,25 дюйма |
---|---|---|---|---|---|
Плотность | SD | DD | DD | SD | SD |
Модуляция | FM | MFM | MFM | FM | FM |
Отформатированная емкость (КБ) | 250,25 | 616 | 1232 | 90 | 87,5 |
Цилиндры (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 | Н / A |
Всего логических секторов | 2002 | 616 | 1232 | 720 | 350 |
Логические секторы / FAT | 6? | ? | ? | ? | ? |
Скрытые секторы | 0 | 0 | 0 | 0 | 0 |
Порядок логических секторов | ? | ? | ? | ? | ? |
Отображение секторов | сектор + / дорожка + | сектор + / дорожка + | сектор + / голова + / дорожка + | сектор + / дорожка + | сектор + / дорожка + |
Первый физический сектор | 1 | 1 | 1 | 1 | 0 |
Индекс сектора | Мягкая | Мягкая | Мягкая | Мягкий | Жесткий (10 + 1) |
Тип контроллера | Cromemco / Tarbell FD1771 | Tarbell FD1791 | Tarbell FD1791 | Cromemco FD1771 | NorthStar |
FAT ID | Нет (FEh) | Нет (FEh) | Нет (FEh) | Нет (FEh) | Нет (FEh) |
BPB наличие | No | No | No | No | Нет |
Различные OEM-версии MS-DOS 1.2x и 2.x поддерживали ряд похожих версий 8.0 в FAT12 форматы гибких дисков тоже, хотя и не идентичны поддерживаемым 86-DOS.
Дисковые форматы, поддерживаемые одной из последних версий, разработанных Тимом Патерсоном в Microsoft, MS-DOS 1.25 ( Март 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 дюйма |
---|---|---|---|---|---|---|---|---|
Плотность | SD | SD | DD | DD | DD | SD | DD | DD |
Модуляция | FM | FM | MFM | MFM | MFM | FM | MFM | MFM |
Форматированная емкость (КБ) | 250,25 (SCP) | 250,25 (MS) | 616 | 1232 (SCP) | 1232 (MS) | 90 | 160 | 320 |
Цилиндры (CHS) | 77 | 77 | 77 | 77 | 77 | 40 | 40 | 40 |
Физические секторы / дорожка | 26 | 26 | 8 | 8 | 8 | 18 | 8 | 8 |
Количество головок | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 2 |
Байт полезная нагрузка / физический сектор | 128 | 128 | 1024 | 1024 | 1024 | 128 | 512 | 512 |
Байт / логический сектор | 128 | 128 | 1024 | 1024 | 1024 | 128 | 512 | 512 |
Логические секторы / кластер | 4 | 4 | 1 | 1 | 1 | 2 | 1 | 2 |
Зарезервированные логические сектора | 52 (2 дорожки) | 1 | 1 | 1 | 1 | 54 (3 дорожки) | 1 | 1 |
Количество файлов FAT | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
записей корневого каталога. (á 32 байтов) | 64 (16 секторов) | 68 (17 секторов) | 96 (3 сектора) | 128 (4 сектора) | 192 (6 секторов) | 64 (16 секторов) | 64 (4 сектора) | 112 (7 секторов) |
Всего логических секторов | 2002 | 2002 | 616 | 1232 | 1232 | 720 | 320 | 640 |
Логические сектора / FAT | 6? | 6 | 1 | ? | 2 | 4 | 1 | 1 |
Скрытые секторы | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Общее количество кластеров | ? | 497 | ? | ? | 1227 | ? | 313 | 315 |
Порядок логических секторов | ? | ? | ? | ? | ? | ? | ? | ? |
Сектор отображение | сектор + / дорожка + | сектор + / дорожка + | сектор + / дорожка + | сектор + / голова + / дорожка + | сектор + / голова + / дорожка + | сектор + / дорожка + | сектор + / дорожка + | сектор + / голова + / дорожка + |
Первый физический сектор | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Индекс сектора | Мягкий | Мягкий | Мягкий | Мягкий | Мягкий | Мягкий | Soft | Soft |
Тип контроллера | Cromemco / Tarbell FD1771 | Cromemco / Tarbell FD1771 | Tarbell FD1791 / FD1793 | Тарбелл FD1791 / FD1793 | Тарбелл FD1791 / FD1793 | Cromemco 4FDC FD1771 | SCP / Cromemco 16FDC | SCP / Cromemco 16FDC |
FAT ID | FEh | FEh | FEh | FEh | FEh | FEh | FEh | FFh |
BPB Presence | No | No | No | No | No | No | No | Нет |
В 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.