Конфигурирование DOSEmu
Существует ряд конфигураций, используемых для выполнения DOSEmu в Linux. Перечислим их.
- Загрузка DOS с дискеты.
- Загрузка DOS с образа диска.
- Загрузка DOS из отдельного раздела.
Чтобы упростить задачу и пояснить работу программного обеспечения, в главе рассмотрена только загрузка DOS с образа диска. Более сложные конфигурации, включая загрузку с других носителей, хорошо описаны в документации, которая после установки DOSEmu находится в каталоге /usr/doc/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 | ||