Конфигурирование
DOSEmu
Существует ряд конфигураций,
используемых для выполнения DOSEmu в Linux. Перечислим их.
Чтобы упростить задачу
и пояснить работу программного обеспечения, в главе рассмотрена только загрузка
DOS с образа диска. Более сложные конфигурации, включая загрузку с других носителей,
хорошо описаны в документации, которая после установки DOSEmu находится в каталоге
/usr/doc/dosemu/.
Примечание
Подробная информация и документация для DOSEmu находится в http: / /www. dosemu. org. Полезные сведения включены в файлы HOWTO на сайте http://www.dosemu.org/docs/ HOWTO/. С этого сайта можно загрузить последнюю версию DOSEmu с полными инструкциями по инсталляции!
Чтобы запустить DOS, необходимо
иметь файл конфигурации /etc/dosemu.conf. Это очень сложный файл, который имеет
обширную документацию.
Пакет DOSEmu облегчает
эту задачу, поскольку имеется предварительно сконфигурированный файл образа
диска и файл dosemu. conf для загрузки с образа диска. Сам образ диска находится
в /var/lib/dosemu/hdimage. Он содержит бесплатный вариант DOS freeDOS и множество
полезных команд и утилит, среди которых fdisk, format, unix2dos и iredir (утилита
переадресации каталогов Linux в символы дисков DOS).
Чтобы пояснить, что понимается-
под конфигурированием среды DOSEmu, приведем содержимое включенного по умолчанию
в Red Hat Linux 7.1 файла dosemu. conf:
#############################
# Это файл /etc/dosemu.conf,
содержащийся в /var/lib/dosemu/global.conf #
# Конфигурация
Linux DOSEmU для версий >= 3 (dosemu-0.97.1) #
# ./doc/READmE.txt
(раздел 2.) содержит описание синтаксиса и
# использования
dosemu.conf. #
#
# Права доступа
определены в #
# /etc/dosemu.
users
|
||
#
|
||
######################################
|
||
# Примечания
для редактирования этого раздела :
#- .
|
||
# В $
ххх = (n) n - это числовая или двоичная величина
|
||
# =
|
||
# В $
zzz = "s" s - это строка
|
||
#
|
||
# Пожалуйста,
редактируйте только между скобками и кавычками,
|
||
# остальное
сохраняйте нетронутым.
|
||
|
|
||
$_debug
= "-а" # тот же формат, что в опциях команды -D
|
||
# (но
без -D впереди)
|
||
$_features=
" # список временных установок, смотрите примечания
|
||
# в файле
ChangeLog. Например", "0:1 2:0",
|
||
# который
означает:
|
||
# установить
feature 0 в 1 и feature 2 в 0.
|
||
$_timint
= (on) # эмуляция типа прерывания таймера iNT08
|
||
$_matheo
= (on) # или отключение
|
||
$ сри
= (80386) # эмулятора CPU, допустимые значения: 80 [345] 86
|
||
$ rdtsc
= (off) # если возможно использовать в Pentium
|
||
# счетчик
цикла
|
||
$_cpuspeed
= (0) # 0 = калиброванный dosemu, иначе указать
|
||
# (например,
166.666)
|
||
$_pci
= (off)
|
||
$_xms
= (1024) # Кбайт
|
||
$_ems
= (1024) # Кбайт
|
||
$_ems_frame
= (0xe000)
|
||
$_dpmi
= (off) # Кбайт
|
||
$_dosmem
= (640) # Кбайт, < 640
|
||
$_hardware_ram
= " # список значений сегмента /диапазонов, как
|
||
# "0xc8000
диапазон 0xcc000.0xcffff"
|
||
$_securc
="hgd" # безопасность для: п (обычные пользователи) ,
|
||
# g (гости)
, d (dexe)
|
||
# пустая
строка: зависит от 'restricted'
|
||
# "0":
всегда опасный (не рекомендуется)
|
||
$_odd_hosts
= " # черный 'список, как "lucifer.hell.com billy, the. cat"
|
||
$_diskless_hosts="
' # черный список, как "hackerl newbee gatewayl"
|
||
$_emusys
= " # пустой или 3 симв., config.sys -> config.XXX
|
||
$_emubat
= " # пустой или 3 симв., autoexec.bat -> autoexec. XXX
|
||
$_emuini
= " # пустой или 3 симв., system.ini -> system. XXX
|
||
$_hogthreshold
= (1) # 0 — вся мощность CPU для DOSEmU
|
||
$_irqpassing
= " # список номеров iRQ (2-15) , переданных DOS,
|
||
# например
"3 8 10"
|
||
$_speaker
= " # или "native", или "emulated"
|
||
$_term_char_set
= " # Глобальная кодовая страница и выбор
|
||
# набора
символов.
|
||
# ""
— автоматическая, или: ibm, latin,
|
||
# latinl,
iatin2
|
||
t *
|
||
$_term_color
= (on) # терминал с поддержкой цвета
|
||
$_term_updfreq
= (4) # время между обновлениями
|
||
# (единицы:
20 == 1 секунда)
|
||
$_escchar
= (30) # 30 == Ctrl-", приставка спец. последовательности
|
||
$_rawkeyboard
= (0) # обход нормального ввода с клавиатуры -
|
||
'# возможна
опасность
|
||
$_layout
= "auto" t одно из: f innish (-latinl) , de(-iatinl) , be',
it, us
|
||
# uk,
dk(-latinl) ,. keyb-no, no-latinl, dvorak, po
|
||
# sg (-latinl),
fr (-latinl) , sf (-latinl) , es( -latinl)
|
||
Я # sw,
hu(-latin2), hu-cwi, keyb-user
|
||
tt hr-cp852,
hr-latin2
|
||
# или
'auto' (для генерации таблицы из текущих
|
||
# параметров
консоли Linux)
|
||
$_keybint
= (on) # эмуляция прерывания клавиатуры ПК
|
||
$_X_updfreq
- (5) # Время между обновлениями (единицы: 20 =»= 1 секунда)
|
||
$_X_title
= "DOS in а ЮХ" # Надпись в строке заголовка окна
|
||
$_X_icon_name
= "xdos" # Текст для значка, когда минимизировано
|
||
$_X_keycode
= (auto) # on == перевод клавиатуры через таблицу
|
||
# символов
dosemu
|
||
$_X_blinlcrate
= (9) # скорость мерцания курсора
|
||
$_X_font
= "" # basename из /usr/XHRG/lib/X11/fonts/misc/*
|
||
# (без
расширения) например, "vga"
|
||
$_X_mitsbm
= (on) # Использовать разделяемые расширения памяти
|
||
$_X_sharecmap
= (off) # Разделять карту цветов с другими приложениями
|
||
$_X_fixed_aspect
= (on) # Установить фиксированный размер для
|
||
# графического
окна
|
||
$_X_aspect_43
= (on) # Всегда использовать отношение 4:3 для графики
|
||
$_X_lin_filt
= (off) # Использовать линейный фильтр для интерполяции >15 Ьрр
|
||
$_X_bilin_filt°
= (off) # Использовать билинейный фильтр для
|
||
# интерполяции
>15 Ьрр-
|
||
$_X_model3fact
= (2) # Фактор начального размера для видеорежима 0x13
|
||
# (320x200)
|
||
$_X_winsize
= " # "х,у" начального размера окна
|
||
# (по
умолчанию с плавающей точкой)
|
||
$_X_gamma
= (1.0) # гамма-коррекция
|
||
$_X_vgaemu_memsize
= (1024) # размер (в Кбайтах) буфера фреймов
|
||
# для
эмуляции vga
|
||
$_X_lfb
= (on) # использовать линейный буфер фрэймов в режиме VESA
|
||
$_X_pm_interface
= (on) # использовать защищенный режим интерфейса
|
||
# для
режима VESA
|
||
$_X_mgrab_key
= " # имя KeySym для активации захвата мыши,
|
||
# пусто
== off
|
||
$_X_vesamode
= " # "xres , yres ' . . . xres , yres"
|
||
# список
vesamodes для добавления. Список содержит
|
||
# пары,
разделяемые пробелами: "xres, yres"
|
||
$_video
= "vga"
|
# одно
из: plainvga, vga, ega, mda'," mga, cga
|
||
$_console
= (0)
|
# использовать
видео 'console'
|
||
$_graphics
= (0)
|
# использовать
biOS карты для установки графики
|
||
$_videoportaccess
= (1)
|
# позволить
доступ к видеопорту,
|
||
|
# когда
доступно 'graphics'
|
||
$_vbios_seg
= '(0xc000)
|
# установка
адреса VbiOS (например, ОхеООО)
|
||
$_vbios_size
= (0x10000)
|
# установка
размера biOS (например, 0x8000)
|
||
$_vmemsize
= (1024)
|
# размер
буфера регенерации
|
||
$_chipset
=
|
# одно
из: plainvga, trident, et4000, diamond, avance
|
||
|
# cirrus,
matrox, wdvga, paradise, ati, s3, sis
|
||
$_dualmon
= (0)
|
# если
имеется один vga. и один hgc (2 монитора)
|
||
$_vbootf
loppy = ""
|
# если
необходимо загружаться с виртуального дисковода:
|
||
|
# имя
"файла образа диска под /var/lib/dosemu
|
||
|
# например,
"f loppyimage" отключает $ hdimage
|
||
|
# "floppyimage
+hd" не отключает $ hdimage
|
||
$_floppy_a
="threeinch"
|
# или
"fiveinch", или "atapi", или пусто,
|
||
|
# если
не существует.
|
||
|
# Устройство
может быть добавлено как
|
||
|
# J'threeinch:/dev/fd0"
|
||
$_floppy_b
= ""
|
# dito
для В:
|
||
$_hdimage
= "hdimage . first'
|
# список
hdimages под /var/lib/dosemu
|
||
|
# назначенный
в порядке, подобном
|
||
|
# "hdiraage_c
hdimage_d hdimage_e"
|
||
|
# Если
имя начинается с Vdev/', то используется
|
||
|
# раздел
доступа вместо виртуального hdimage.
|
||
|
# например,
"/dev/hdal" или "/dev/hdal:ro"
|
||
|
# только
для чтения.
|
||
|
# Текущие
монтированные устройства и swap
|
||
|
# отменяются.
|
||
|
# Hdimages
и устройства могут быть смешаны,
|
||
|
# например,
"hdimage_c /dev/hdal /dev/hda3 :ro"
|
||
|
# Заметим,
wholedisk' не поддерживается.
|
||
$_hdimage_r
= $_hdimage
|
# hdimages
для ограниченного доступа (если иначе)
|
||
$_aspi
= ""
|
# список
общих устройств SCSi доступных для
|
||
|
# встроенного
драйвера aspl
|
||
|
# (формат
записи 'устройство: тип: цель', например,
|
||
|
# "sg2:WORm
sg3 : Sequential-Access: 6 sg4: CD-ROm" или
|
||
|
# "sg2:4
sg3:l:6 sg4:5" (что одинаково))
|
||
$_coml
= "
|
# например,
"/dev/mouse" или "/dev/cuaO"
|
||
$_com2
= " "
|
# например,
"/dev/modem" или "/dev/cual"
|
||
$_com3
= "
|
# dito
"/dev/cua2"
|
||
$_com4
= ""
|
# dito
"/dev/cua3"
|
||
$_ttylocks
= "
|
# Каталог
Lock (например "/var/lock")
|
||
|
# по умолчанию
("") /usr/spool/uucp
|
||
$_mouse
= "
|
# одно
из: microsoft, mousesystems, logitech,
|
||
|
* mmseries
|
||
|
# mbuseman,
hitachi, busmouse, ps2
|
||
$_mouse_dev
=
|
# одно
из: com1, com2, com3, com4 или /dev /mouse
|
||
$_mouse_flags
= "
|
# список
пустой или один или более:
|
||
|
# "emulateSbuttons
cleardtr"
|
||
$_mouse_baud
= (0)
|
# скорость
в бодах, 0 == не установлено
|
||
$_pr inter
= "ip"
|
# список
(/etc/printcap) имен принтеров, в виде
|
||
|
# LPT1,
LPT2, LPT3 (не все необходим, пусто - если нет)
|
||
$_printer_timeout
= (20)
|
# время
задержки в секундах перед спуллингом
|
||
$_ports
= ""
|
# список
номеров портов, например, "Oxlce 0xlcf 0x238"
|
||
|
# или
"0xlce диапазон 0x280, Ox29f 310"
|
||
|
# или
"диапазон 0xla0, (OxlaO+15)"
|
||
$_ipxsupport
= (off)
|
# или
on
|
||
$_novell_hack
= (off)
|
|
||
$_vnet
= (off)
|
# 'on'
для многопакетного (используется для dosnet)
|
||
$_sound
= (off)
|
# звуковая
поддержка on/off
|
||
$_sb_base
= (0x220)
|
|
||
$_sb_irq
= (5)
|
|
||
$_sb_dma
= (1)
|
|
||
$_sb_dsp
= "/dev/dsp"
|
|
||
$_sb_jnixer
= "/dev/mixer"
|
|
||
$_ropu_base
= "0x330"
|
|
||
К счастью, в глубоком реконфигурировании
нет необходимости. Работая с текущей версией DOSEmu (i.O.i), вы должны будете
установить образ диска и загрузочный каталог и затем скопировать ряд стандартных
загрузочных mS-DOS файлов в этот каталог.
Для установки образа диска
(hdimage. first) и загрузочного каталога (/var/ lib/dosemu/ bootdir. first)
можно воспользоваться следующими командами, расположенными в каталоге
/var/lib/dosemu/:
$ /var/lib/dosemu/setup-hdimage
$ /var/lib/dosemu/setup-bootdir
К сожалению, freeDOS не
поддерживает управление Linux-файлами и каталогами из эмулятора DOS. Для реализации
такого управления вам потребуются три базовых файла конфигурации DOS. Например,
если вы располагаете любым загрузочным диском mS-DOS или PC-DOS, скопируйте
файлы COmmAND.COm, iO.SYS и mSDOS.SYS в созданный каталог /var/lib/dosemu /bootdir.first.
Допустим, что эти файлы
расположены на несмонтированном гибком диске, который находится в накопителе
/dev/ f d0 (аналог DOS-устройства А:). Поскольку Linux учитывает регистр, необходимо
использовать следующие команды, чтобы заменить freeDOS-версии этих файлов:
$
mcopy a:io.sys /var/lib/dosemu/bootdir.first/io.sys
$ mcopy a:command.com
/var/lib/doseim/bootdir.first/cofflmand.com
Примечание
Упомянутые системные файлы можно скопировать с любой системной дискеты mS-DOS версии 4.0.1 или более свежей. Этот метод применим даже для некоторых других версий DOS, равно как и для загрузочных дисков Windows 95/98.
В завершение создайте или
отредактируйте конфигурационный файл . dosemurc в своем каталоге. В этом файле
должна быть одна строка, указывающая системе Linux расположение соответствующих
конфигурационных файлов DOS:
$_hdiraage = "bootdir.first"
Запуск
DOS
Простейший способ запуска
DOSEmu состоит в использовании команды dos в консоли или окне xterm. По команде
$
dos
загружается и запускается
DOSEmu с устройства начальной загрузки, определенного в /etc/dpsemu. conf. По
умолчанию в Red Hat Linux 7.1 это означает загрузку с указанного файла образа
диска.
Вопреки выданному сообщению, запущен эмулятор версии 1.0.1. После запуска DOS можно использовать стандартные команды и синтаксис DOS для запуска программ с дискет или запуска приложений, находящихся в переадресованных каталогах.
Загрузка
DOS в отдельном окне X
DOS можно запускать как
в текущем окне, так и в своем собственном окне при выполнении X Windows. Для
запуска DOS в собственном окне X Windows используется команда
$
xdos
Фактически, эта команда
является ссылкой на основной двоичный файл dos. Выполнение программы через ссылку
xdos имеет тот же эффект, что и команда
$
dos -X
Выполнение DOS в ее собственном
Х-окне
Полезные
команды DOSEmu
Образ диска, распространяемый
с DOSEmu, содержит несколько полезных команд и утилит (некоторые из них приведены
в табл. 30.1). Эти и многие другие команды находятся в каталогах с: \bin и с:
\dosemu. Для этого запустите DOSEmu, используя образ диска, заданный по умолчанию.
Табл.
30.1.
Некоторые команды DOSEmu
Команда
|
Описание
|
||
eject . com emumouse . com exitemu . com lredir.com
unix . com
|
Выдвигает дисковод CD-ROm Настраивает драйвер мыши DOSEmu Выход из DOSEmu Переадресует каталог Unix в символ диска DOS
Выполняет команду
Linux из DOSEmu
|
||