Review your favorite Linux distribution.
Go Back > Forums > Linux Forums > Linux - Server
User Name
Linux - Server This forum is for the discussion of Linux Software used in a server related context.


  Search this Thread
Old 03-31-2011, 05:27 AM   #1
LQ Newbie
Registered: Aug 2009
Posts: 13

Rep: Reputation: 0
Citrix replacement: using dosemu to run DOS/4G app and SSH/telnet to serve to users

Hi, I have an old console-mode DOS 4G DPMI application (32-bit with shim for 16-bit DOS) that is served using Terminal Server and Citrix to users across a private WAN. I would like to replace the server with a Linux box. CPU use is critical for this, the existing server is CPU constrained. There are about 30 users.

I'm thinking of using DOSEmu (I think that DOSEmu virtualises and DOSBox emulates x86?) to get the app to run in Linux, and then set up a SSH server with a custom login script to run the application. Clients are running windows, and can use something like PuTTY to access the application. So far as the users are concerned, the app looks a little different, but works the same way, and runs much faster.

Is DOSEmu the right choice for this? Is it reliable enough for this task? Uptime is king!

I've been trying to use DOSEmu on a fresh Debian Squeeze install, and I get this error:

ERROR: term support not compiled in or not found:
ERROR: /usr/local/lib/dosemu/ cannot open shared object file: No such file or directory
ERROR: Terminal (S-Lang library) support not compiled in.
Install slang-devel and recompile, use xdosemu or console dosemu (needs root) instead.

I'm running as root, either on the console or on SSH, can't get slang-devel or libplugin_term, so does anyone know what is causing this, or how to get DOSEmu onto a fresh copy of Debian and make it work?
Old 03-31-2011, 11:54 PM   #2
LQ Guru
Registered: Mar 2004
Distribution: SusE 8.2
Posts: 5,863
Blog Entries: 1

Rep: Reputation: Disabled
You've got lots and lots of options.

Furthermore, there's a lot you didn't really tell us:
a) What does this program do?

b) What resources does it require?
Just a keyboard, a DOS monitor, and ++1MB RAM?
Does it use a printer? Communicate over the network? What kind of network: LanMan? Novell? LanTastic?

c) How do users interact with it?
Do they run it locally (on their own "DOS PC")? Does it provide some network service?

Anyway, DOSEMu and DOSBox are both good candidates (although clearly you seem to have issues with DosEMu on your particular distro). Other alternatives you might want to consider are:

* DOS VM under Xen Server

* DOS VM under VMWare

* Virtual Box VM


* MS Virtual PC

* Etc.

'Hope that helps

You might want to try some equivalent of these commands to resolve the DOSEmu runtime errors:
apt-get install xorg-dev
apt-get install libslang2-dev
<= Use "apt-cache search" to find the exact package

Last edited by paulsm4; 03-31-2011 at 11:59 PM.
Old 04-01-2011, 05:52 AM   #3
LQ Newbie
Registered: Aug 2009
Posts: 13

Original Poster
Rep: Reputation: 0
Got it working (sort of), but painfully slow

Hi, thanks for the reply!

a) The program is an old ERP system. Very old.
b) Keyboard, mouse would be nice but is not necessary, beep would be nice but is not necessary, charmode display, more than 1MB RAM (this is 32bit code with a shim to talk to 16bit DOS), printer port redirected to a JetDirect printer (we currently use NET USE to map to a print share which forwards to the printer).
c) The users interact with the program running on the server -- the ERP system tries to do database synchronisation using file subrange locks (!) (and corrupts when it fails to lock properly) -- keeping it running on the one computer (or VM) reduces the incidence of corruption.

So I had another look at DOSEmu and noticed that the latest package is an RPM, so I installed CentOS into an ESXi VM and installed the RPM into it and it worked first try. I served it using SSH to a PuTTY client, and it worked except that there seems to be a charset issue (ASCII lines/boxes are rendered as accented characters).

Solved -- except that it is WAY too slow, even for one user. I noticed that when I entered DOSEmu that running DIR caused output that was less than instant (to compare, Linux LS is instant). The application runs OK (haven't tried printing), until the user attempts to run a report and then it is glacially slow. The server has maxed its CPU but HDD activity is nowhere near max.

I was hoping that DOSEmu would run DOS in an V86 VM (I'm assuming that Windows still uses V86 mode to do this for DPMI applications) so there would be minimal performance impact.

Maybe DOSBox would have better performance? Alternatively, serve from Windows over Telnet or SSH? Or even some kind of multiprocessing FreeDOS (if reliable enough)? If that isn't too far out of scope.
Old 04-02-2011, 06:17 PM   #4
Registered: Apr 2005
Location: NYC
Distribution: Debian, RHEL
Posts: 268

Rep: Reputation: 42
Since this is a native Windows (DOS) application I would imagine that your Citrix setup should really give you the best performance. What is the problem with performance now on Citrix? Or are you just looking for a way to save on licensing, etc.?

If the application is setup such that everyone connecting is limited to share a single CPU and amount of memory, and you are getting those maxed out I doubt there is much you can do short of upgrading the application. Keep in mind that any emulation will add overhead due to the emulation layers, and will still be constrained to the same amount of CPU/Memory as the original application running in native mode.
Old 04-03-2011, 06:18 AM   #5
LQ Newbie
Registered: Aug 2009
Posts: 13

Original Poster
Rep: Reputation: 0

The server has a number of CPUs, and while any given instance of the application is limited to a single CPU, the instances are spread out reasonably well (except when one user runs a report, ...).

The main reason for this is that I'm looking to save on bandwidth by delivering the application across a more suitable protocol than ICA but the licensing savings and control on Linux are appealing.

It's a pity about the overhead of the emulation layers considering that all the application is likely to be doing is calling INT21 and writing to display memory.


citrix, debian, dos, dosbox, terminal

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
DOS graphical application is not running on DOSEMU chanduy Linux - Software 1 07-09-2009 02:26 AM
Panel Replacement App dosnlinux Linux - Software 2 02-04-2007 04:42 PM
How to log command output from telnet session even after logout from the remote serve UltraSoul Solaris / OpenSolaris 2 10-15-2006 08:20 PM
Any Open-Source Citrix-like server programs? (Need to serve Windows applications) lefty.crupps Linux - Software 4 11-10-2005 11:58 PM
ssh win2k -> linux & run a gtk app albean Linux - Newbie 4 12-08-2004 11:16 AM > Forums > Linux Forums > Linux - Server

All times are GMT -5. The time now is 11:08 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration