DOSEMU.BIN(1)

ИМЯ
dosemu.bin, dosdebug - запускает DOS и приложения DOS под Linux

СИНТАКСИС
dosemu.bin [ -ABCcdkVNXtsgKm234OU ] [ -h уровень ] [ -F файл ] [ --Fusers файл ] [ --Flibdir каталог ] [ --Fimagedir каталог ] [ -f файл ] [ -L dexe_файл ] [ -u переменная_настройки ] [ -D флаги ] [ -M объем ] [ -e объем ] [ -x объем ] [ -P файл ] [ -o файл ] [ 2> файл_отладки ] [ -I опции_настройки ] [ -U вх_канал[:вых_канал] ]

dosdebug

ОПИСАНИЕ
dosemu.bin является бинарным файлом, который запускается скриптом dosemu (1), активизирующим эмулятор DOS под Linux, также известный как DOSEMU.
Файл_отладки представляет собой опциональный файл, куда будет перенаправляться вся отладочная информация.

dosdebug используется для управления или отладки уже запущенного DOSEMU.

Хотя эта программа известна как эмулятор DOS, она в действительноти является виртуальной машиной для DOS, позволяющей оперировать DOS и программами, написанными для DOS, в окружении, подобном стандартному IBM PC/AT компьютеру или совместимому с процессором Intel 80x86 в реальном режиме. DOSEMU предоставляет эмуляцию таких сервисов как видео подсистемы, дисковой, клавиатурной, последовательного порта и подсистемы принтера, доступных через BIOS; памяти CMOS для настроечной информации; часов реального времени; работу с памятью через спецификации XMS 3.0, EMS 4.0 и DPMI 0.9.

Поскольку DOSEMU не является действительным эмулятором DOS, требуется копия FreeDos, которая сейчас преднастроена и включена как часть официального бинарного дистрибутива DOSEMU. В дополнение, любой доступный сейчас проприетарный DOS (такой как MS-DOS, PC-DOS, DR-DOS) может быть запущен, при настройке должным образом.

ТРЕБОВАНИЯ К ЯДРУ
На текущий момент времени, необходимо иметь Linux 2.0.28 или выше с вкомпилированной опцией SYSV IPC (System V InterProcess Communication facilities, смотрите ipc(2)). Опция SYSV IPC включается в окне настройки ядра Linux в процессе его компиляции.

ОПИЦИИ

-A  загрузка с дисковода A (не требует наличия реального дисковода, смотрите ниже)

-B  загрузка с дисковода B (не требует наличия реального дисковода, смотрите ниже)

-C  загрузка с жесткого диска C (не требует наличия реального жесткого диска и даже файловой системы msdos, смотрите ниже)

-c  использвать видео консоль напрямую (должно зыпускаться из консоли, требуется, чтобы dos был с флагом suid для пользователя root)

-d  отсоединиться от текущей виртуальной консоли или tty устройства и присоединиться к первой свободной виртуальной консоли

-V  использовать VGA спефицичную оптимизацию видео

-k  использовать прозрачную клавиатуру консоли (должно запускаться из консоли)

-F  Обработать предоставленный настроечный скрипт вместо встроенного файла global.conf (необходимо запустить DOSEMU от root с установленным флагом suid)

--Fusers
    Обойти файл dosemu.users и взять предоставленный файл вместо него (принимается только в случае, когда dosemu.bin не имеет флага suid-root).

--Flibdir
    Обойти каталог по умолчанию DOSEMU_LIB_DIR (как, возможно, определено в dosemu.users) и использовать предоставленный каталог вместо него (принимается только в случае, когда dosemu.bin не имеет флага suid-root).

--Fimagedir
    Обойти каталог по умолчанию для загрузочного и каталога образов диска (DOSEMU_HDIMAGE_DIR) и использовать предоставленный каталог вместо него (принимается только в случае, когда dosemu.bin не имеет флага suid-root).

-f  Разобрать предоставленный настроечный файл вместо .dosemurc

-u  установить пользовательскую переменную настройки. Префиксированная опция u_ применяется для недопущения конфликта имен. Эта переменная может быть проверена в файле dosemu.conf или global.conf при изготовлении некоторой специальной настройки.

-L  Загрузить и запустить файл DEXE (специальный преднастроенный загрузочный образ диска, содержащий только одно приложение DOS)

-I  Обработать строку, следующую за опцией. -I работает с таким же синтаксисом, как и global.conf или .dosemurc, например,

dos ... -I 'video { mda }'
    Эта опция полезна, если необходимо временно заменить предоставленный настроечный параметр. Также можно использовать общую настройку путем запуска скрипта как показано ниже

dos ... -I "`myconf.sh`"
    где myconf.sh является скриптом, выдающим настройку на стандартный вывод. Если имеется альтернативный файл настроек помимо .dosrc, то команда

dos ... -I "`cat myother.conf`"
    его будет использовать. Однако заметьте, что необходимо взять в кавычки параметр за -I, потому что ожидается один аргумент.

-D  определяет какие отладочные сообщения позволить, а какие запретить

-h  вывести дамп настроек на стандартный поток ошибок и выйти (поздразумевается установка -D+c). Опция полезна для отладки файла настроек, необходимо использовать -O также для направления сообщений типа +c на стандартный поток ошибок. Возможны `уровни' 0, 1 или 2, которые управляют количеством выводимой отладочной информации обработчика настроек: без отладочной информации (0), отладка петли обработчика (1), отладка if_else_endif (2).

-H  определяет флаги, поддерживаемые dosdebug. В настоящий момент только `1' имеет смысл. С -H1 происходит принуждение dosemu к ожиданию, пока подсоединен dosdebug терминал. Отсюда, чтобы отладить DOS сессию с самого начала, необходимо вначале запустить dosemu с параметром -H1, а затем запустить dosdebug. DOSEMU будет затем заблокирован перед переходом в загруженный boot сектор в ожидании соединения dosdebug. Однажды присоединившись, программа находится в состоянии `остановлена' и можно установить точки останова или пройтись пошагово через загрузочный код.

-O  использовать стандартный поток ошибок для вывода отладочных сообщений

-o  использовать предоставленный файл для вывода отладочных сообщений в него

-M  установить базовую память в предоставленное значение объема в килобайтах

-m  разрешить внутреннюю поддержку мыши

-P  копировать отладочный вывод в предоставленный файл

-2,3,4
    выбрать 286, 386 или 486 процессор (Будьте осторожны! DOSEMU не является полностью 32-хбитным, так что при определении программой 386 или 486 процессора и использовании 32-хбитных регистров, возможно сбивание ее с толку из-за функций BIOS. Если предполагается, что такое случается, используйте -2 для принужденного перехода DOSEMU в режим 286.)

-U  определяет входной и выходной каналы для асинхронного управления DOSEMU из других процессов. Формат такой (без пробелов между словами):

вх_канал:вых_канал
    где `:вых_канал' может быть опущен. В последнем случае можно не ожидать обратной связи от DOSEMU. По соображениям безопастности DOSEMU не создает именованные каналы самому себе, так пользователь отвечает за установку корректных прав доступа на каналы. Заметьте, что при использовании этих опций, инородный процесс может контроллировать сессию DOSEMU (типа ввода с клавиатуры). Опция будет следоватьльно использована только внешними интерфейсами (типа kdos), которые вначале содадут соответствующие именованные каналы и затем запустят на исполнение DOSEMU. Специальные управляющяя команда ( ack on ) может быть использована, чтобы принудить DOSEMU возвратить признаки установки связи через `вых_канал' такой, чтобы внешний интерфейс знал когда управляющая команда началась или закончилась и была ли она успешна. Формат такого диалога признаков показан ниже

SYN: <имя_команды>

<различный вывод от команды>

ACK: code=n
    где n равно 0 в случае успеха. Простой управляющий терминал, который служит как пример, замещается программой dosctrl. Она берет только два канала как аргументы и дает возможность затем вводить управляющие команды, из которых `help' наиболее важна ;-) Заметьте, dosctrl не запускает на выполнение DOSEMU, что необходимо сделать вручную.

ЖЕСТКИЕ ДИСКИ
DOSEMU поддерживает четыре метода замещения DOS с жесткими дисками:

1.  виртуальный файл диска, находящийся на файловой системе Linux, который эмулирует жесткий диск.

2.  непосредственный доступ к разделу DOS через прозрачное дисковое устройство (например, /dev/hda, /dev/hdb, /dev/sdX).

3.  непосредственный доступ к разделу DOS через доступ к единичному разделу (к примеру, /dev/hda1, /dev/hdb2, /dev/sdxx). Необходимо запустить программу mkpartition для разрешения DOSEMU доступа к разделу DOS с SPA (Single Partition Access).

4.  доступ к файловой системе Linux как к "сетевому" устройству, используя драйвер emufs.sys, поставляемый с DOSEMU как commands/emufs.sys.

Все это объясняется подробнее в QuickStart.

Настройка ресурсов жесткого диска DOSEMU выполняется путем редактирования файла dosemu.conf перед запуском DOSEMU. Смотрите также /usr/share/doc/dosemu-1.4.1_pre20130107-r5/README.txt.

ФЛОППИ ДИСКИ
DOSEMU поддерживает два метода замещения DOS с флоппи дисками:

1.  виртуальный файл диска, находящийся на файловой системе Linux, эмулирующий флоппи дисковод

2.  непосредственный доступ к физическому флоппи дисководу через прозрачное дисковое устройство (к примеру, /dev/fd0, /dev/fd1).

Все это также разъяснено более подробно в QuickStart.

Настройка ресурсов флоппи диска DOSEMU выполняется путем редактирования файла dosemu.conf перед запуском DOSEMU.

ВИДЕО
DOSEMU может запускаться на любом tty устройстве. Однако, увеличенная производительность и функциональность может быть получена с применением дополнительных особенностей консоли Linux. Так, для запускаемого в консоли DOSEMU желательно исследовать ключи -c, -k, и -V, разъясненные более подробно в QuickStart.Ю Также некоторая укороченная документация находится в файле dosemu.conf, который можно редактировать, если это необходимо.

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

КЛАВИАТУРА
Те, кто желает применять DOSEMU в консоли Linux, могут также воспользоваться прямым доступом к клавиатуре. Такой режим действия, выбранный ключом -k, предоставляет пользователю доступ ко всей клавиатуре прямо из-под DOS. Любые комбинации клавиш ALT, CTRL и SHIFT могут использоваться для генерации необычных кодов клавиш, ожидаемых многими программами.

ПЕЧАТЬ
Сервисы печати BIOS эмулирутся через стандартный I/O доступ к файлам UNIX через временные файлы, которые периодически опрашиваются LPR либо другим клиентом печати как указано в параметре $_printer в файле dosemu.conf.

ОТЛАДОЧНЫЕ СООБЩЕНИЯ
Отладочные сообщения могут контроллироваться как в командной строке, так и в настроечном файле. Просмотрите документацию, находящуюся внутри файла config.dist, включённого в подкаталог примеров DOSEMU, для информации об опциях отладки. В командной строке можно определить какие классы сообщений будут доступны dos. Синтаксис тут передаётся DOSEMU через опцию "-D FLAGS", где FLAGS представляет собой строку букв, которые определяют какие опции будут печатать на экран, а какие подавляться. DOSEMU разбирает эту строку справа налево.
   + включает следующие опции (начальное состояние)
   - выключает следующие опции
   a включает или выключает все опции в зависимости от флага
   0 выключает все опции
   1-9 устанавливает уровень отладки: чем выше, тем больше выводится
   # где # - это буква из списка верного класса,
       включает или выключает опцию в зависимости от состояния +/-. Классы Сообщений:
 d  диск    R  чтение с диска    W  запись на диск
 D  int 21h    C  компакт дисковод    v  видео
 X  поддержка X    k  клавиатура    i  порты I/O
 s  послед. порты    m  мышь    #  прерывания
 p  принтер    g  базовые    c  настройка
 w  предупреждения    h  оборудование    I  IPC
 E  EMS    x  XMS    M  DPMI
 n  сеть IPX    P  пакетный драйвер    S  ЗВУК
 r  PIC    T  трассировка IO    Z  PCI-BIOS
 A  драйвер ASPI    Q  mapping driver
Любые классы отладки, следующие после символа + до символа -, будут включены (неподавляющиеся). Любые, следующие после символа - до символа +, будут подавлены. Символ a действует подобно строке со всеми возможными классами отладки, так +a включит все отладочные сообщения и -a выключит все отладочные сообщения. Символы 0 и 1-9 также специального назначения: 0 выключает все отладочные сообщения, а 1-9 включает все отладочные сообщения, но также устанавливает и уровень отладки. Символ + приписывается в начало строки FLAGS. Некоторые классы, типа класса ошибок, не могут быть выключаны. В случае, если перенаправление на стандартный поток ошибок нежелательно, ближайший путь для достижения результата - перенаправить весь вывод в устройство /dev/null. Несколько примеров:
  "-D+a-v" или "-D1-v" : все сообщения кроме видео
  "-D+kd" : по умолчанию вместе с клавиатурой и диском
  "-D0+RW" : только чтение с диска и запись на диск Любая опциональная буква может располагаться в любом месте. Даже бессмысленные комбинации, типа -D01-a-1+0, будут разобраны без ошибки, так что будьте осторожны. Некоторые опции установлены по умолчанию, некоторые наоборот. Это предмет авторского каприза и возможны изменения между версиями. Можно обеспечить четкую установку конкретных опций, всегда явно определяя их.

СПЕЦИАЛЬНЫЕ КЛАВИШИ
В режиме работы с клавиатурой напрямую (смотрите опцию -k), DOSEMU возвращает известные последовательности клавиш как управляющие функции.

    ctrl-scrlock = показать 0x32 векторов прерываний
    alt-scrlock = показать регистры vm86
    rshift-scrlock = генерировать int8 (таймер)
    lshift-scrlock = генерировать int9 (клавиатура)
    ctrl-break = ctrl-break как под DOS.
    ctrl-alt-pgup = перегрузить DOS. Не доверяйте этому!
    ctrl-alt-pgdn = выйти из эмулятора

Используйте <LEFT CTRL>-<LEFT ALT>-<Функциональная клавиша>, чтобы переключиться на другую виртуальную консоль.

ПАМЯТЬ
Поддержка памяти XMS в DOSEMU соответствует расширенной спецификации памяти Lotus/Intel/Microsoft/AST версии 3.0. Реализованы все функции XMS кроме функции 0x12 (Перераспределить Верхний Блок Памяти).

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

DOSEMU также поддерживает EMS 4.0 и DPMI 0.9 (1.0 частично).

АВТОРЫ
DOSEMU (содержащий в себе файлы dosemu.bin и dosemu ) базируется на версии 0.4 оригинальной программы, написанной Matthias Lautner (текущий адрес которого на данный момент неизвестен).

Robert Sanders <gt8134b@prism.gatech.edu> поддерживал и расширял воплощение DOSEMU, с которым начало распространяться это man руководство. Втечение около 4-х лет James B. MacLean <macleajb@ednet.ns.ca> был неустанным лидером команды dosemu, реализация DPMI (которая позволила запускать Windows-3.1, dos4gw, djgpp и прочее) произошла втечение его 'правления' и перенесла проект ближе к состоянию Beta. Hans Lermen <lermen@fgan.de> работал над новой версией и выпустил первый релиз версии 1.0. Сейчас Bart Oldeman <bart@dosemu.org> является основным разработчиком этого прекрасного программного обеспечения. Перевод выполнен Andy Shevchenko <andy@smile.org.ua>.

ОШИБКИ
Их число довольно велико, лучше свести список до минимума.

Пожалуйста, отсылайте отчеты об ошибках автору. Также автору нравиться слышать о тех программах, которые работают. Присылайте только подробную заметку о том, какая программа (и какой версии) используется, что работает, а что нет и тому подобное.

ДОСТУПНОСТЬ
Большинство последних версий DOSEMU можно получить с сайта www.dosemu.org; скоростное зеркало расположено по адресу ibiblio.unc.edu:/pub/Linux/system/emulators/dosemu/. Если хотите получать частные версии для разработчиков, вступайте в команду разработчиков DOSEMU, всего лишь хорошие и подробные отладочные отчеты - всё, что необходимо!

ФАЙЛЫ
/usr/bin/dosemu.bin
    Исполняемый модуль
/usr/bin/dosemu
    Оберточный скрипт, рекомендуемый для запуска dosemu.bin, который не стоит запускать непосредственно.
/usr/bin/xdosemu
    То же самое, но служит для запуска DOS в X window.
$HOME/.dosemu
    Локальный каталог на каждого пользователя DOSEMU. Создание каталога происходит молча, если он отсутствует.
$HOME/.dosemu/tmp
    Создание всех временных файлов происходит здесь, /tmp больше не используется.
/var/run/dosemu.*
    или
$HOME/.dosemu/run
    Различные файлы, используемые DOSEMU, включая отладочные каналы.
$HOME/dosemu/freedos
    Загрузочный каталог, содержащий FreeDos.
dosemu.conf
    Основной настроечный файл для DOSEMU, включающийся в global.conf (global.conf включен в dosemu.bin по умолчанию).
dosemu.users
    или
/etc/dosemu/dosemu.users
    Для запускаемых бинарников с suid-root: определение прав доступа к DOSEMU на базисе каждого пользователя и установка некоторой необходимой конфигурации. Этот настроечный файл имеет только фиксированное расположение, DOSEMU вначале ищет dosemu.users и, если он не найден, обращается к /etc/dosemu/dosemu.users. Через ключевой параметр default_lib_dir= в файле dosemu.users системно расширяющий каталог DOSEMU_LIB_DIR может быть перемещен куда-нибудь. За более детальной информацией обращайтесь к /usr/share/doc/dosemu-1.4.1_pre20130107-r5/README.txt
/etc/dosemu/dos.ini
    Настроечный файл для IPX.
/usr/share/doc/dosemu-1.4.1_pre20130107-r5/DPR
    Команда разработчиков dosemu: кто и какую часть проекта DOSEMU ведет?
doc/DANG.txt
    Помощь для изучения кода DOSEMU.
/usr/share/doc/dosemu-1.4.1_pre20130107-r5/README.*
    Различная документация.
QuickStart
    Бытрая установка DOSEMU.
ChangeLog
    Изменения в DOSEMU с момента последнего релиза.
README.bindist
    Информация о том, как использовать готовый к работе пакет бинарников DOSEMU/FreeDos.
README.distributors
    Информация для дистрибьютеров Linux о том, как паковать сборку DOSEMU, для расширения возможностей системы.
Список рассылки MSDOS
    Для подробной информации пишите на адрес
linux-msdos@vger.kernel.org

СМОТРИ ТАКЖЕ
dosemu(1), mkfatimage16(1)