Can you describe what exactly were the problems?
As for myself I've had no issues with getting FreeDOS to run in VMWare player,
QEMU and VitualBox. I used the original FreeDOS 1.0 install and have manually
updated the kernel since then. As for VirtualBox specifically, it will run a
VMDK file so I use the same VMDK file that I have created for VMWare - no
problems. For daily use I use VMWare under Windows XP, under Linux I use QEMU
and sometimes use QEMU under Windows in special situations. I almost never use
VirtualBox but fired it up just now after your posting.
So is the problem simply eating up processor time?
FreeDOS from an OS point of view is actually pretty good - there is an option
in the kernel to HLT during waits for keyboard input (IDLEHALT=-1 in
FDCONFIG.SYS) which I have used and recommend.
But the real problem is the applications. For example FreeDOS EDIT.EXE is a
terrible offender. I modified it for my own use to throw in a few HLTs and now
it works great. People will talk about making applications "FDAPM aware" and
using the mutliplex interrupt - I personally don't do these things - I make
sure that the application in question is doing a HLT frequently. (For those
who think the computer will lock up the HLT directive halts the processor until
the next interrupt... not forever)
So you must customize every application the user will touch.
If you have the source code, this should be easy. .. look for processor loops
and put in some HLTs.
If you don't have the source code you are going to have to run thru a debugger
and find where the program is looping ... break the debugger when windows says
you're at 100% utilization, should be easy to figure out. Then you need to
patch the BIOS routine, DOS routine or do a binary patch to the application.
Basically we have no idea what kind of loop or polling your application might
do. There is no guarantee that
your app is calling the OS or BIOS on these loops so the operating system will
not be able to fix your problems.
Here's an example:
Original program:
while (hw_not_ready)
{
int hw_status = read_hw(); /* read_hw could be anything, like inportb() */
if (hw_status == GOOD) hw_not_ready=FALSE;
}
Better program for a VM:
while (hw_not_ready)
{
int hw_status=read_hw();
if (hw_status==GOOD) hw_not_ready=FALSE;
else delay_a_tick();
}
bios_clk_ptr = MK_FP(0,0x46c);
void delay_a_tick()
{
long ticks = *bios_clk_ptr;
while(*bios_clk_ptr == ticks)
_asm hlt;
}
-----Original Message-----
From: john s wolter <johnswol...@wolterworks.com>
To: freedos-user <freedos-user@lists.sourceforge.net>
Sent: Wed, Aug 15, 2012 5:47 pm
Subject: [Freedos-user] FreeDos in VirtualBox not a sure thing
I spent four days getting FreeDOS to work as a guest OS inside a VirtualBox
machine. The path to success was a rocky and time consuming trial and error
process. Once the particular console program was running it was not very fast.
The customer deemed it to be usable.
Later in the day the customer cancelled a small DOS software install in
preference to a larger native Windows 7 development. The customer had decided
to purchase an older computer to run the DOS application from hard disk. It
amounts to a lost increment of business for myself that is not significant.
This situation indicates to me that efficient execution of FreeDOS in Virtual
Machines must be made to be transparently easy. VMs are a way to make FreeDOS
available as 16-bit support withers away. The industry leader's 64-bit OS does
not support 16-bit DOS programs directly as in prior versions. Open source
software developers, unfairly, have more pressures on them to prove the
results.
I've seen the form discussions as do others about run-away keyboard polling and
other such issues. Solving these nagging issues may not look to be glamorous
but can swing perceptions of FreeDOS substantially. There are commercial
utilities claiming to control problems but I ask are there equivalent features
or settings within FreeDOS?
FreeDOS did not create these wild-hare programs but is being painted with their
behaviors. It is FreeDOS's burden in life:(i.
The tweaking of the FreeDOS VM with networking in VirtualBox...0
General>Basic: OS = Other, Version = DOS
System>Motherboard: 32 MB, Chipset PIIX3,
...Processor: Cap 87%
...Acceleration: uncheck Enable VT-x/AMD-V
Storage: IDE Controller, FreeDOS...vdi image
Network>Adapter 1: Enabled, Host-only Adapter, Name=VirtualBox Host-Only
Ethernet Adapter
USB: Enabled for 1.1, Addon Extensions not used
The virtual machine network adapter choice was the 'VirtualBox host-only
Ethernet adapter'. I used that to establish a CIFS/SMB LPT1: printer
redirection to the host's, Windows 7, USB attached HP C4400 printer. The
computer is an HP laptop with i5 CPU with 8 GB of RAMM.
If there is a list of well-known issues, I would like to see if an altered
configuration would help performance.
I have taken a few minutes to install DOSBox which seemed fairly snappy. I
have yet to try the customer's program. I'll be giving that a try.
Cheers
John S Wolter
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user