DOS window in Linux Mint?
Is there any way to open an MS-DOS window in Linux Mint 19.1, that is similar to Windows? I know how to run terminal. I want to run a DOS window such that I can run a DOS based lisp application. Ideally, I want to have several DOS windows open at one time, and I want to be able to resize them as needed
What do you mean with «DOS window»? A terminal window? A DOS emulation? How do you open this window? What exactly does not work when you want to resize the window or how does it differ from what you expect?
I know how to run terminal. I want to run a DOS window such that I can run a DOS based lisp application. Ideally, I want to have several DOS windows open at one time, and I want to be able to resize them as needed.
Yes but the functionality is split: For the terminal emulator, you can choose one of the many. Then for the DOS interpreter there is wine, or dosbox, or … You can launch these from bash .
1 Answer 1
You should have a look at DOSBox
In DOSBox, I couldn’t resize the DOS window, and I apparently couldn’t open more than one DOS window at a time. In WINE, I never could get it to open a DOS window.
Try this link: computerhistory.org/atchm/microsoft-ms-dos-early-source-code look for download, compile it and run it in qemu 😉
You must log in to answer this question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group.
This site is not affiliated with Linus Torvalds or The Open Group in any way.
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Как запустить DOS программы в Linux
Есть шанс, что большинство из вас, читающих эти строки, начали своё «путешествие» в мир компьютеров через DOS. Хотя эта, уже давно устаревшая, операционная система теперь работает только в наших воспоминаниях, она всегда будет занимать особое место в наших сердцах. Тем не менее, кому-то захочется окунуться в ностальгические воспоминания или показать своим детям, на что было похоже прошлое, запустив некоторые приложения MS-DOS на вашем дистрибутиве Linux. Хорошие новости в том, что вы можете это сделать без особых усилий!
Для этой инструкции я буду использовать игру DOS, в которую я играл когда был маленьким ребёнком, она называется “UFO Enemy Unknown”. Это была первая в истории команды пошаговая стратегия, выпущенная Microprose чуть более чем 20 лет тому назад. Ремейк игры был реализован Firaxis в 2012, которые чётко выделили черты, так нравившиеся нам в оригинале.
Wine
Поскольку исполнимые файлы DOS — это .exe, само-собой приходит мысль, что мы сможем запустить их под Wine, но, к сожалению, у нас ничего не получится. Причина этому — “DOS memory range unavailability” — «Недоступность диапазона памяти DOS».
Это означает, что ядро Linux запрещает любым программам (включая Wine) выполнять 16-битные приложения и, таким образом, иметь доступ к 64k памяти ядра. Это функция безопасности и её нельзя изменить, поэтому начнём наши попытки с DOSBox.
DOSBox
Установите DOSBox из вашего Менеджера Приложений и затем откройте ваш менеджер файлов и убедитесь, что вы создали каталог с названием “dosprogs” в вашей домашней директории. Скопируйте файлы игры внутрь этого каталога, а затем откройте DOSBox, набрав в терминале “dosbox”. Теперь нам нужно смонтировать каталог “dosprogs” в dosbox. Чтобы это сделать, напечатайте
нажмите Enter в консоли DOSBox. Затем напечатайте
чтобы войти в новый смонтированный диск, как показано на следующем скриншоте.
Вы можете передвигаться по каталогам диска с использованием команды “cd”, совмещая её с “dir”, пока не достигнете исполнимых файлов игры. Например, напишите “cd GAME”, чтобы войти в каталог GAME, а затем напишите “dir” и нажмите Enter, чтобы увидеть что содержит каталог GAME. Если список слишком длинный для просмотра на экране, вы также можете попробовать использовать команду “dir /w/p”. В любом случае, исполнимым файлом является UFO.bat и я могу запустить игру напечатав имя файла (с расширением) и нажав Enter.
DOSemu
Другое приложение, которое позволяет вам запускать исполняемые файлы DOS под Linux, — это DOS Emulator (также доступный в Менеджере Приложений). В чём-то это программа проще, т. к. не нужно заботиться о монтировании разделов, можно набрать “D:” и войти в консольный интерфейс для доступа к вашей домашней директории. Оттуда вы можете передвигаться в каталог, содержащий исполняемые файлы DOS и запускать их таким же образом, как мы делали в DOSBox. Хотя DOSemu проще в использовании, она не всегда может работать безупречно, это я обнаружил по своим тестам. Вы всегда можете попробовать это и посмотреть, как идут дела.
FreeDOS
Ещё одна альтернатива, FreeDOS по-прежнему активно развивается и используется на очень старом железе или на встроенных системах. Также можно упомянуть DR-DOS.
Запуск DOS-приложения в Linux
Необходимость запуска DOS-приложений под Linux возникает нечасто, но случается. Вот как-то и со мной случилось, решил поделиться опытом, может, кому пригодится.
А нужно было запустить кем-то, когда-то написанное приложение для поликлиники, работающее на Foxpro под DOSом, в Linux, т.к. денег на покупку Windows лицензий не нашлось.
Исходные данные:
Suse Linux Enterprise Desktop 10.3 — рабочие станции.
Suse Linux Enterprise Server 10.3, на нем шара на Samba (я же до этого и расшаривал для работы с Windows рабочих станций, т.к. на лицензию для Win-сервака тоже денег не было), имя шары, как ни странно, — SHARE.
Происходило всё 2-3 года назад, поэтому версии SLED и SLES на момент установки были не такие уж и древние.
Т.к. сервер уже настроен, то все нижеописанные манипуляции производим на десктопе.
Ставим из репозитория, или отдельно скачиваем dosemu-xxx.rpm.
Ещё нам понадобятся кириллические шрифты (далее по тексту папка XFonts), не помню уже где я их взял, приложу в архиве к статье.
Создаём папку, куда смонтируем шару, прописываем монтирование в fstab и монтируем:
su mkdir /mnt/dos chmod 777 /mnt/dos echo "//192.168.0.130/SHARE /mnt/dos cifs iocharset=utf8,codepage=cp866,noperm,forcemand,direct,nounix,nolock,username=user,password=userpassword,rw 0 0" >> /etc/fstab mount /mnt/dos
небольшое пояснение: 192.168.0.130 — IP сервера, user и userpassword берём из пользователей на сервере, которым разрешён доступ к Samba-шаре.
cp -rf XFonts /usr/X11R6/lib/X11/fonts/
прописываем папку подобно остальным шрифтам в файле /etc/X11/xorg.conf, и добавляем их в систему командой:
В /etc/dosemu.conf добавляем или изменяем в соответствующих разделах следующие опции (у меня в итоге только эти опции и остались):
## Terminal related settings # Character set used externally to dosemu $_external_char_set = "utf8" #кодировка в Linux # Character set used by dos programs $_internal_char_set = "cp866" #кодировка в DOS ## Keyboard related settings $_layout = "ru" #задаём раскладку ## Printer and parallel port settings $_lpt1 = "lp -o media=a4 -o cpi=11" #подключаем принтер, в моём случае матричник на LPT порту #или #$_lpt1 = "iconv -f cp866 -t utf8 | lp -o media=a4 -o cpi=11 -d printername" ## Setting specific to the X Window System (xdosemu, dosemu -X) $_X_font = "vgacyr" #подключаем кириллические шрифты
В файл autoexec.bat, находящийся в папке /usr/share/dosemu/drive_z пишем следующее (. при копировании # и пояснения убрать. ):
@echo off rem autoexec.bat for DOSEMU + FreeDOS path z:\bin;z:\gnu;z:\dosemu;p:\ovl1;p:\ovl;p:\prv # ovl1;p:\ovl;p:\prv - папки запуска программы в DOS; set HELPPATH=z:\help set TEMP=c:\tmp blaster prompt $P$G unix -s DOSDRIVE_D if "%DOSDRIVE_D%" == "" goto nodrived lredir d: linux\fs%DOSDRIVE_D%:nodrived lredir p: linux\fs/mnt/dos # назначение соответствия папки Linux диску DOS unix -s DOSEMU_VERSION echo "Welcome to dosemu %DOSEMU_VERSION%!" unix -e xmode -fullscreen on # запуск Dosemu в полноэкранном режиме lin.bat # батник запуска программы в DOS
Для полной ясности вот содержание lin.bat (. при копировании # и пояснения убрать. ):
@ echo off p: # переходим на диск p: cd ovl1 # далее в рабочую папку p:\ovl1\reg01.fxp # запускаем программу (расширение .fxp у меня, у Вас скорее всего будет .exe, если не Foxpro) xmode -fullscreen off # после окончания работы программы выходим из полноэкранного режима exitemu # выходим из досэмулятора
Делаем первый запуск, командем:
получим фигвам, потому что нет файла lin.bat, исправляем созданием в домашней директории, в папке .dosemu/drive_c (папка создаётся при первом запуске эмулятора) этого файла с вышеприведённым содержанием.
Ещё раз запускаем dosemu и вуаля, наша досовская прога работает, показывает текст на русском языке и даже распечатывает под Linux.
Мои изыски относились к определённой программе, но, думаю, таким способом, с заменой путей и имён файлов, запустятся если не все, то многие приложения работающие под DOS.
P.S.
Если при запуске dosemu ловим:
>LOWRAM mmap: Недопустимый аргумент
То дописываем в /etc/sysctl.conf