LINUX.ORG.RU

PC-MOS/386

 , , ,


5

3

Привет! Это черновик заметки, которая должна была быть опубликована в моём блоге. Но так как блог сейчас сломан, я решил опубликовать её здесь. Кто-то недавно жаловался, что на ЛОРе недостаточно ХАБРа? Ну вот вам пост в стиле хабра. Поехали.

PC-MOS/386 — это многопользовательская и многозадачная операционная система, совместимая с MS-DOS 5. Разрабатывалась компанией The Software Link до 1987-го года.

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

В 2017-м году исходный код был перелицензирован под GPL3 и выложен на гитхаб. Кроме исходников, репозиторий содержит образы официальных установочных дисков и сканы оригинальной документации в PDF. Также там была исправлена проблема в обработке даты модификации файлов, которая не давала открыть файлы, созданные после 2012-09-01.

Так что теперь можно вполне законно и не нарушив ни одной EULA запустить эту самобытную ОС в виртуалке или даже на реальном железе.

Я немного погонял её в qemu, и пока вопросов у меня больше, чем ответов. Почитать официальный мануал (довольно длинный и в плохом качестве скана) пока времени не было, так всё методом тыка.

Многозадачность

Многозадачность реализована в виде отдельных контейнеров с приложениями. При запуске системы пользователь попадает в первый контейнер, в котором запущена оболочка COMMAND.COM. Далее командой ADDTASK можно добавить другие задачи, в которых по умолчанию также запускается оболочка COMMAND.COM. Для каждой задачи обязательно указывать количество памяти, которое будет выделено под задачу.

Командой SWITCH можно переключаться между задачами. В справке также были упомянуты хоткеи Alt + цифра для этой же цели, но у меня они не заработали.

Можно активировать TSR-программу MONITOR, после чего через Ctrl + Space можно вызывать интерактивное меню для переключения задач и создания новых.

Правда в каждой новой задаче эту команду нужно повторять заново, чтобы в этой задаче работал хоткей Ctrl + Space. Думаю, нужно команду MONITOR прописать в AUTOEXEC.BAT, чтобы она применялась автоматически.

Команды ОС

В этой ОС команды не отвечают на ключ /? и любые другие варианты справочных ключей, которые я пробовал. Вместо этого есть интерактивная справка по команде HELP. По виду и принципу работы напоминает справку из сред разработки QBasic и Turbo C. По команде HELP .КОМАНДА (с точкой перед командой) можно попасть сразу в нужный раздел справки. (А при чём тут точка, вы можете узнать, набрав HELP .DOT.)

Справочная информация довольно куцая, в основном перечисляет ключи команд. Например для команды ADDTASK не написано, что объем выделяемой памяти нужно вводить в килобайтах. Возможно, для пользователей системы тех лет это было очевидно, но всё же. Описания каких-то общих принципов, важных для понимания работы конкретно этого клона DOS, отсутствуют. Возможно, они есть в бумажном руководстве, которое я не читал.

В командной оболочке работают стрелки влево-вправо, Backspace и Delete. Клавишей Insert можно переключать режим ВСТАВКА/ЗАМЕНА, при этом меняется форма курсора. Режим ввода по умолчанию — ЗАМЕНА, что неудобно. Чтобы ВСТАВКА была по умолчанию, нужно в AUTOEXEC.BAT вписать команду INSERT.

Я также проверил все сочетания Ctrl + буква. Ожидаемо работают Ctrl + H как аналог Backspace и Ctrl + M как аналог Enter. Ctrl + C прерывает ввод текущей команды без выполнения. Остальные сочетания просто выводят на экран символы псевдографики.

Последовательное нажатие Esc + буква в командной оболочке выполняет ту же роль, что и Ctrl + буква, только еще и наводит беспорядок на экране при этом. Сочетания Alt + что угодно или Esc + что угодно, привычные миру Unix, тут , похоже, невозможны. (В других приложениях Esc работает как самостоятельный хоткей. Например в интерактивной справке закрывает текущий раздел справки.)

История команд доступна через стрелку вверх и вниз. Между сеансами история не сохраняется.

ED — простой редактор с двумя режимами: визуальным и командным. В визуальном режиме мало отличается от любого редактора любой ОС: стандартные клавиши навигации, режим вставки и замены, хоткеи на Ctrl + буква.

Переход в командный режим по Esc. Командный режим своей лаконичностью напомнил даже не редактор vi, а редактор в составе Basic из ZX Spectrum.

В справке отсутствует клавиша для перехода обратно из командного в визуальный. Разумное предположение, что это должна быть кнопка V — оправдалось. :)

Команда ACU открывает интерактивное меню с настройками системы и встроенной справкой по каждому пункту через F1. Справка пытается быть информативной, но без мануала я всё равно не разобрался во всех настройках полностью. Выбранные настройки записываются в CONFIG.SYS.

Команды MOS и MOSADM позволяют просматривать и изменять различные параметры системы. Синтаксис команд использует подкоманды аналогично как в современных программах git, docker и т.п. Помню, что MS использовала такой же подход уже в NT-based системах для команд настройки сети, а вот были ли подобные команды с подкомандами в MS-DOS, не припомню.

Проблемы

Почему-то не работают стрелки на основном блоке клавиатуры. Стрелки на блоке NumLock работают, но пользоваться ими неудобно, так как в свою очередь на этом блоке не работает Enter. Возможно, это какая-то проблема совместимости с QEMU. Нужно будет попробовать в другой виртуалке.

Позже заметил, что кроме стрелок, такая же проблема с клавишами Insert и Delete. Они работают с Num-блока и неработают с основной части клавиатуры.

При переключении между задачами содержимое экрана не восстанавливается, остаётся от старой задачи. Может быть нужно что-то где-то довключить в настройках, я пока не разобрался.

Упомянутые ALT + цифра для переключения между задачами не работают. Или я делаю что-то не так, или опять проблема с обработкой ввода, и система не распознаёт ALT.

Впрочем, все перечисленные проблемы и сложности могут быть связаны с тем, что я использовал версию, скачанную с какого-то сайта с коллекцией старых программ, а не чистую установку из официального образа.

Еще одна проблема — не столько даже проблема системы, сколько особенность эпохи. Ни одно из приложений системы не уводит процессор в сон между прерываниями даже когда ничего делать не нужно. (Уж хотя бы COMMAND.COM мог бы это делать по умолчанию.) Из-за этого одно ядро постоянно нагружено на 100%, и мой ноутбук показывает температуру 82 градуса. И поэтому все эксперименты с PC-MOS сопровождаются отчётливым звуком П-Ш-Ш-Ш-Ш из вентиляционной решетки.

Что дальше

Было бы интересно поэкспериментировать с этой системой, разобраться в документации и в её устройстве и, возможно, найти все куски тулчейна для сборки и покопаться в исходниках.

Учитывая, что GEM 3.13 теперь тоже опенсорсный, можно попробовать запустить на ней GUI.

Где-то мне попадалась подборка утилит наподобие grep для MS-DOS, которую было бы неплохо добавить.

Еще один интересный вопрос — установка на один раздел с FreeDOS в разные каталоги с возможностью выбора операционной системы при старте. (FreeDOS с большим уровнем совместимости с софтом или PS-MOS с меньшим уровнем совместимости, зато многозадачная.)

>>> Просмотр (724x453, 15 Kb)



Проверено: hobbit ()

Ответ на: комментарий от Bass

Спасибо за ссылку.

Хм, похоже, что не эта. Они только процентов на 50 перекрываются по изложенным фактам. Там было подробно про различные утилиты CP/M - автор хорошо разбирался в этой ОС.

Интересно. Значит из TOPS всё это пошло. И даже расширения файлов…

У меня была такая версия, что корни надо искать в TOPS, но так далеко в прошлое операционных систем я не закапывался.

wandrien ()
Последнее исправление: wandrien (всего исправлений: 1)

Кто-то недавно жаловался

Я!

что на ЛОРе недостаточно ХАБРа?

Ну вот не надо приплетать! На ЛОРЕ мало авторских разворотов. Хабр тут никакинм боком.

Ну вот вам пост в стиле хабра.

Нету у хабра стиля никакого! Ты пишешь тут в своём стиле. Вот блин! Придётся теперь ещё везде жужжать всем на ужи про сравнения итьььяяяухъъъъ =)

Поехали.

Не зря, нэ зря йа бубнилку включаю. Спасибо, интересно ::)

LINUX-ORG-RU ★★ ()

Кто-то недавно жаловался, что на ЛОРе недостаточно ХАБРа?

да нет, мы всегда говорили, что хабр - это зло, а я даже в dns его закрыл.

Ну вот вам пост в стиле хабра

...

crypt ★★★★★ ()
Ответ на: комментарий от crypt

Не знаю, что там у вас зло, наверное я просто не в курсе, так как не пишу комменты, не читаю комменты, не читаю маркетинговый буллшит в популярных хабах. Читаю только несколько человек, которые разбираются в вещах, которые мне интересны.

wandrien ()
Ответ на: комментарий от crypt

да нет, мы всегда говорили, что хабр - это зло,

Сейчас весь интернет - зло. Задача найти в этой помойке действительно стоящую информацию, а не читать проплаченные рекламные статьи.

И да, на хабре очень велик шанс найти стоящее, а не рекламный буллшит

drfaust ★★★★★ ()
Ответ на: комментарий от wandrien

Хотел поинтересоваться - в каком режиме в PC-MOS запскаются сессии программ. в Virtual86 или же действительно к-то шедулер работает?

drfaust ★★★★★ ()
Ответ на: комментарий от wandrien

Ща, попробую накатить в qemu и глянуть что по чём...

drfaust ★★★★★ ()
Ответ на: комментарий от wandrien

К стати, а как накатывал в виртуалку - чёт образа не найду, а самому с гита собибирать в падлу...

drfaust ★★★★★ ()
Ответ на: комментарий от wandrien

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

crypt ★★★★★ ()

Есть API для создания новых задач самими программами? Как управляется память и процессорное время между задачами?

X512 ★★ ()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от drfaust

году в 2014 был вопрос найти людей для прохождения сертификации у нас в городе. мол, если людей мало, то ее не проводят. это некоммерческие цели, но хабр забрил пост, т.к. «неуплочено». ну их в *опу, этих коммерсантов.

crypt ★★★★★ ()
Ответ на: комментарий от crypt

Да пофиг.

Недавно отвечал на «интеловские» по поводу 12го поколения. Мол, господа-товарищи - мать, оперативку для тестов на интеле вижу, а где мать-оперативка для рязаней, с которыми вы сравниваете - ответа нет, только -1(что странно - только один автор проплаченной статьи и минуснул?) в «карму».

Я не заморачиваюсь по этому поводу - мне интересна полезная инфа - и её на хабре хватает. Пример уже привёл. Или скажешь это КПСС проплатил описание ГИП-10000?

drfaust ★★★★★ ()
Ответ на: комментарий от crypt

Какие к чёрту высокие материи? Что ты тут приплетаешь?

Я как потребляю полезную инфу из интернета, так и генерю её. В частности на профильных форумах. Помогаю людям. Для этого интернет и создан - для обмена полезной инфой, опытом.

К примеру в этой ветке узнал о существовании интересной ОС, уровня MS-DOS, ковыряю её. Если увижу что-то полезное - отпишусь.

А вот ты что делаешь в этой ветке?

drfaust ★★★★★ ()
Ответ на: комментарий от another

1. Открыли древнюю платную ОСь (принцип «information wants to be free»)

2. Например, мне по прежнему не хватает dosbox и emudos для адекватной работы BC 3.11. Виртуалки так же лажают что ms-dos, что free-dos. Во всех случаях в Борландовской IDE практически нереально работать. Более-менее терпимый вариант ms-dos под virtualbox, но там так же проблемы с мышой и комбоклавишами - одно неосторожное движение = перезапуск машины.

З.Ы. может в этом случае bc заработает, но учитывая замечания ТС - это вряд ли...

drfaust ★★★★★ ()
Ответ на: комментарий от drfaust

адекватной работы BC 3.11

Это именно работа с оплатой труда или по фану копаешься в старом коде? Просто интересно.

another ★★★★★ ()
Последнее исправление: another (всего исправлений: 1)

Я тут на фоне погружения в мир DOS полез покопаться в своих архивах, а архивы куда-то делись. С удивлением обнаружил, что за время многих миграций с винта на винт куда-то пропали:

  • Подборка книг по программированию, накачанная когда-то из DC++. Не то что она нужна, но было бы любопытно посмотреть, что там есть, а то я даже 1/3 не прочитал когда-то.
  • Бэкап закладок браузера со времён WinME, в котором было много сайтов на narod.ru и прочих таких хостингах. Тоже сейчас было бы интересно полистать. По памяти я вспомнил штук десять только.
  • Коллекция старого софта для Win9x.
  • Классная реализация тетриса на QBasic. Вот это потеря так потеря! Тетрис был действительно сделан неплохо.
wandrien ()
Ответ на: комментарий от wandrien

В TOPS-20 человечный разделитель уровней каталога:

                            COMMAND DESCRIPTION
                                  (BUILD)

                                --------------
                                |   <CHEM>   |
                                |            |                    
                                --------------
                                       |
                        -------------------------------
                       /            /     \            \
                      /            /       \            \
                     /            /         \            \
                    /            /           \            \
                   /            /             \            \
                  /            /               \            \
   ---------------- ---------------- -------------------- ----------------
   | <CHEM.ALLEN> | | <CHEM.BLAKE> | | <CHEM.LAB-NOTES> | | <CHEM.TESTS> |
   |              | |              | | (files-only)     | | (files-only) |
   ---------------- ---------------- -------------------- ----------------
         |                   |
         V                   V
   -------------------- --------------------
   | <CHEM.ALLEN.LAB> | | <CHEM.BLAKE.LAB> |
   | (files-only)     | | (files-only)     |
   -------------------- --------------------

        The examples show how a user with a directory named <CHEM> builds
        subdirectories in the pattern shown in Figure 1.

        1.  Build directories for two  of  your  students  or  employees,
            assigning disk space and passwords and placing them in one of
            your directory groups; check their parameters.

            @BUILD <CHEM.ALLEN>

В 1975, когда Micro-Soft начала свой главный продукт, TOPS-20 ещё не было. А на момент продажи PC-DOS Microsoft была уже в unic$овом бизнесе.

Нотация /N в командной строке утилит DEC, как сокращение (N), появилась достаточно рано.

SPECIAL OPERATORS ARE LETTERS ENCLOSED IN PARENTHESIS().
IF ONLY ONE SPECIAL OPERATOR IS TYPED PRECEEDING SLASH CHARACTER MAY REPLACE BOTH PARENTHESES.
LPT:/N←DTA1:BIGFIL

TO COPY BINARY DATA:
---------------------------------
DTA:1PIP2,REL/B←PTR:

http://bitsavers.org/pdf/dec/pdp6/DEC-6-0-EX-SYS-UM-IP-PRE00_Multiprogramming_System_Manual_1965.pdf#page=63

Но разработчики микрокомпьютеров в 1970-х, конечно, мечтали не о PDP-10, а о PDP-8. Для которой тоже в конце концов доделали стандартный Command decoder http://bitsavers.org/pdf/dec/pdp8/os8/OS8_Handbook_Apr1974.pdf#page=87

vM ()
Ответ на: комментарий от wandrien

что удивило, поразило операций с битами у Z80 море, был z80 перешёл на 86 море памяти, а в ассемблере нет такого разнообразия, поставить, убрать бит, понятно битавая маска and поможет, но всё равно, я пришибленый искал знакомые операторы.

s-warus ()
Ответ на: комментарий от s-warus

Тоже такое было. Я 8086 после Z80 изучал, сильно удивлялся.

wandrien ()
Ответ на: комментарий от t184256

30 лет как мертвой ОС — на каком-нибудь r/retrocomputing и т.п. А тут пусть интересуются русскоязычной информацией о Linux/Unix.

А UNIX – не ретро с полувековыми культурными отложениями Полвека читаем TFM ?

vM ()

Разрабатывалась компанией The Software Link до 1987-го года.

Почему «ДО»? Откуда MS-DOS 5 в 87 году? Если верить вики, то они её представили в конце 86 года, начали продовать 1987. Потом добавили «/386» в название и мучали до 1992.

mky ★★★★★ ()
Ответ на: комментарий от t184256

Первый пункт действующих правил Оффтопик-лист (изменён 16.07.2021) можно понимать так, что даже темы о Windows фирмы Microsoft не являютя оффтопик автоматиски, если они имеют отношение к FOSS. Только на усмотрение администрации и модераторов, или если не соответствуют тематике раздела.

vM ()
Ответ на: комментарий от drfaust

И да, на хабре очень велик шанс найти стоящее, а не рекламный буллшит

Нэт, просто тебе нравится хабровский рекламный буллщит. Вот и усё. :D :D :D Там уже оч. давно нет стоящего.

vtVitus ★★★★★ ()
Ответ на: комментарий от another

Приходится старьё подковыривать, когда на объектах что-либо меняется - пока не перепишем с нуля (а с нуля - это не быстро)...

Где-то на ЛОРе я уже писал, что у нас в работе до сих пор ПЛК на Zilog z180 - спецом для его компиллера держим вынь-7 32бита 😃

drfaust ★★★★★ ()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от vtVitus

Нэт, просто тебе нравится хабровский рекламный буллщит.

«Рекламный буллщит» тупо пролистывается - его я определяю по заголовкам.

drfaust ★★★★★ ()
Ответ на: комментарий от vM

Все, что не о Линукс, является оффтопиком автоматически. Отсутствие чего-то в списке особо табуированного не делает его онтопиком. Досятина в псевдографике несоответствует тематике галереи в частности и сайта в целом. Следующий сеанс капитанства платный, по соточке со шланга.

t184256 ★★★★★ ()

подозреваю что в приколах с клавишами замешана раскладка клавиатуры PC-XT.

liss21 ★★★ ()
Ответ на: комментарий от w1nner

Наверно только в музее, современные эмбедед системы, потребляют меньше памяти, имеют больше возможностей, чем msdos. Не требуют х86 процессоров

s-warus ()
Последнее исправление: s-warus (всего исправлений: 1)

Ну чё, как оно ?

NORTON COMMANDER и DE.EXE работают?

pacify ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)