Иллюстрированный самоучитель по Linux Red Hat 7.1

       

Конфигурирование DOSEmu


Существует ряд конфигураций, используемых для выполнения DOSEmu в Linux. Перечислим их.

Загрузка DOS с дискеты.

Загрузка DOS с образа диска.

Загрузка DOS из отдельного раздела.

Чтобы упростить задачу и пояснить работу программного обеспечения, в главе рассмотрена только загрузка 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












Содержание раздела