Porting DOS Applications to Unix?
jgbustos asks: "I'm the manager of a small software development company. For the last five years we've been managing a communications network consisting of several thousand PC terminals which connects to an NT server over the phone lines. The terminals run a console application on a light DOS. Everything is fine so far. So what's the problem, then? We have a hard time finding parts to maintain the network. Our client says that he's willing to invest in hardware upgrades, but we should move to a Windows-like environment, however he doesn't want to pay for more than 4000 Windows licenses. What's the best alternative for porting our app to Linux/? Please bear in mind that the terminals are small PC's having 16MB RAM, less than 2GB HD, less than i586 CPU, and a 33k modem. Thanks in advance"
What do you mean - they just want a GUI?
In any case, I bet you could find a linux or BSD distro that runs small and runs a windowserver. Though you might just want to try and find a dedicated browser and go for a web solution. If the client can just dial up and PPP to you and fire up a browser, you don't even have to worry about distributing updates to your software - just updating the server.
Really, more info about the problem domain would help...
There are couple of tools for Linux that will run MS-DOS executables. One that comes to mind is dosexec. Although I've never had the need/desire to run MS-DOS programs under Linux so I can't tell you how well any of them work.
I remember a program called DOSEMU for System V UNIXware. It worked well enough for me to run most DOS programs on my 386 running UNIXware. I would test the emulation layer first, and then look at making a custom linux image for the PC's. Something like Systemimager should work nicely for distributing the install.
So, do you want to port the app to a command-line form running on Linux on the current hardware? (0.02USD: ncurses, slackware) Or do you want to port the app to a GUI form running on Linux on newer hardware? (0.02USD: any number of toolkits, any number of distributions) Obviously as the second route is the greatest change, the variables are more numerous giving you a much wider of range of options to look at. I'm guessing your current programmers are C or Pascal folks? You might consider using GTK+ (GUI Lib written in C, also has bindings for FreePascal). As far as a linux distro for the more open-ended situation goes, I'd have to say debian. The install can be a bit of a pain for the uninitiated, but it more than pays back that annoyance after install becuase with the very intelligent package management system you can do stuff like point the terminals at a central server to pull updates from (e.g. roll your app in to a .deb, have terms auto-update once a week using a cron job, makes deploying patches and security updates easy as pie). Debian will also work in fairly constrained hardware environments like slackware, but it tends to be a beefier install usually.
News for Geeks in Austin, TX
I assume by that you mean DOS disks/licenses? DOS runs just fine on modern hardware.
Anyway, there are alternatives to porting, such as using an emulator. DOSemu, DOSexec are names I've heard, or Wine would probably work too (but be a bit bulky). Or you could try FreeDOS, although modem drivers might be an issue.
If you're hell-bent on porting, though, there are a lot of variables involved that you haven't supplied us with. What language is the app written in, for example? Was it written with portability in mind, or is it dependent on proprietary libraries? What does it do, and are any OSS projects that do the same thing? Without that information, no one is going to be able to give you a real answer. Maybe it will work with just a recompile (have you tried that yet?), or maybe it will be easier to start over from scratch. No one can tell without info!
Why have there been so many "I want to port arbitrary software to Linux" questions with no accompanying details lately? How the hell is anybody supposed to answer these?
Under capitalism man exploits man. Under communism it's the other way around.
Try dosemu or wine and see if they run under one of them. It may be possible to switch to Linux first then port the apps to Linux. Also you could try using QT or Java, then you would not have to worry about 4000 windows.
Only 'flamers' flame!
We are porting specialists. We move anything to anything.
www.sector7.com
If tits were wings it'd be flying around.
Try FreeDOS (www.freedos.org) or DR-DOS (www.drdos.net). They are drop-in (more or less) replacements for MS-DOS.
Doesn't sound like it would be too hard to port.
Upgrades for what? Tell me again what your problem is, and why exactly you need to invest in new hardware and/or new software?
OK, this sounds like the same clueless assholes whole replaced the $250 dumb terminals at the local library with $1250 Windows PCs. (The PCs perform the exact same function as the dumb terminals: card catalog lookups. Pentium CPU, 32 meg RAM, Win95 -- and the only app they run is a terminal program to connect with the mainframe in the back room.)
Do you know about FreeDOS?
Do you know about Turbo Vision? It makes nifty DOS or Linux apps that look and act like Windows but run in text mode.
freedos is free. it's about 3mb, with all the options installed, and runs on current hardware, and supports neat things like USB and (i think TCP/IP). then you don't need to port anything, and it runs on current hardware (or, at least my 5 year old amd k6-2 300, so probably anything that supports x86)
if all you're doing is running a console app in dos, and your infrastructure is built around this, it seems far simpler to just go the way of freedos
moox. for a new generation.