[Ham-Computers] RE: Flash drives, DOS, etc
Hsu, Aaron (NBC Universal)
aaron.hsu at nbcuni.com
Fri Oct 20 18:07:20 EDT 2006
I understand that there is confusion with regards to MS-DOS, DOS as shipped with Win9x, the "Command Prompt" in Win NT/2K/XP/Vista, and all of these as they apply to Virtual Machines. Let's tackle the DOS flavors first...
As we all know, the original IBM PC shipped with PC-DOS 1.0. It's generic brother was MS-DOS. The main difference is that PC-DOS was customized to work specifically with IBM hardware. When "clones" came out, a true test of compatibility was to see if PC-DOS would work on the system. It usually did except for BASIC and BASICA - these relied on the ROM BASIC that was part of a "true blue" IBM BIOS. Instead, MS-DOS shipped with GW-BASIC which didn't need to BIOS component. MS-DOS "grew" all the way to v6.22 and in that time, many enhancements were added. From this point forward, I'll treat MS-DOS and PC-DOS as just MS-DOS.
When Win95 came out, it appeared to boot straight to a GUI, but it really still had an underlying DOS component (boot to DOS, then load GUI). In fact, just like previous versions of MS-DOS, the boot process still loaded IO.SYS and COMMAND.COM, just like previous versions of MS-DOS. However, the MSDOS.SYS file was "re-tasked" to a plain text initialization file that held info on how Windows should boot. Also, just like previous versions of MS-DOS, HIMEM.SYS still needed to be loaded before Win95 could start. You may not have realized this, but Win9x loaded HIMEM.SYS even if you didn't specify it in CONFIG.SYS - it scanned CONFIG.SYS and loaded HIMEM.SYS if it wasn't specified in the file.
As for the DOS component of Win95, I believe it was called Windows 95 DOS version 4.00.950. The underlying functionality remained mostly the same as previous versions of MS-DOS. In fact, I don't remember ever running into problems trying to run a DOS app if I booted straight to a Windows 95 DOS prompt without loading the GUI. The main difference between Win95 and Win 3.1x was how Windows interacted with the PC. Win95 had much better "command" of the system and even though it still had an underlying DOS component, it handled just about all I/O operations rather than rely on DOS or the BIOS. It was more of a "symbiotic" relationship than what MS-DOS was with Windows 3.x.
Windows 95 OSR2 and Windows 98 (and Second Edition) enhanced on the underlying DOS component by adding support for FAT32. The GUI component was also updated to properly handle the new filesystem. However, everything else about the underlying DOS component was still there. Win98 still booted the same way as Win95 (Boot to DOS, then load GUI), but added the "extras" that 98 had over 95. You could still boot straight to a DOS Command Prompt without ever loading the GUI - sorry, don't remember the exact versions, but I think it was 4.1111.1111 and 4.2222.2222 for Win98 and Win98 Second Edition. This is basically where Microsoft's development of DOS ended. IBM released one last version of PC-DOS, version 7, but that was it. I believe you can still get PC-DOS 7.0 as a free download on IBM's website. I believe the current "open source" grand-child of MS-DOS is "FreeDOS".
With Windows NT based systems (NT, 2K, XP, and Vista), the OS no longer booted to an underlying DOS component. Instead, it booted straight to a GUI. In the GUI, there is a component called the "Command Prompt", but this is not the same as previous versions of MS-DOS. The "Command Prompt" in Windows NT based systems basically allows one to do command-line operations or run command "scripts". Command scripts are the same as the old MS-DOS "batch" files, but they have an extension of .CMD and include commands only available in NT-based systems. The primary difference between MS-DOS and the COMMAND PROMPT is the lack of many old DOS interrupt calls. This fundamental difference is why many MS-DOS programs don't work properly in a Command Prompt on a NT-based system. This is probably why it's called the "Command Prompt" rather than "MS-DOS Prompt" as in Win9x.
To summarize so far, MS-DOS and Windows 9x DOS are mostly the same with enhancements in the newer versions. The "Command Prompt" in NT/2K/XP/Vista is NOT the same as MS-DOS (unlike the "MS-DOS Prompt" in Win9x), so many programs written for MS-DOS will not work in a "Command Prompt". Onto Virtual Machines...
A Virtual Machine is an emulator that runs "on top" of another operating system (the "host). What it does is to emulate a real computer - hence the name a "Virtual Computer". As far as the Virtual Computer is concerned, it thinks it's a stand-alone computer in the world - it has no idea that it's existance is completly in software (aka "virtual"). In the case of Microsoft's Virtual PC, you install the Virtual PC software as an application in Windows (just like any other application). When you launch Virtual PC (VPC), it brings up the VPC session manager which has the virtual sessions that you've created. Each virtual session is an isolated, stand-alone "virtual" computer.
When you first create a Virtual Machine (VM) session, all Virtual PC is doing is creating the virtual hardware for you to install an Operating System. When you start the virtual session, it will "boot" as if it were a stand-alone computer - if you have a floppy disk in the disk drive, it will boot from the floppy disk. If the virtual hard drive has a boot sector and an operating system on it, it will boot from the virtual hard drive. Once it boots, it runs just as if you booted a real computer. The only difference is that the virtual machine is actually a program running on the "host". Remember, you're still in Windows an the virtual session is running as an app in Windows. But, in the virtual session itself, it's running whatever operating system you decided to install in that virtual session. If the virtual session is MS-DOS, then it's running whatever version of DOS is installed in that virtual session. If you have Windows XP in the virtual session, then it's running Windows XP. If your "host" OS is also running WinXP, then, technically, you have two completely seperate sessions of Windows XP running - the "host" OS and a WinXP virtual session.
Also, remember that you can still do whatever you want on the "host" while the virtual session is running. Since the virtual session is just an application like any other application, you can surf the net, check e-mail, write a letter, or whatever else you wish on the host along with the virtual session. Just like any other app, the virtual session is running in a "window" unless you make it "full-screen". Note: running at full-screen can get confusing as it looks just as if it were not a virtual session. I've been thrown for a loop a few times due to a full-screen virtual session.
So, to summarize the Virtual Machine, it's a stand-alone computer emulated totally with software. You can install any OS on the VM you wish up to the limits of the VM software (VMWare is better than Microsoft Virtual PC in this respect). The VM runs just as if it were a stand alone computer, so if you run two VM sessions on your "host" computer, then you technically have three computers running at the same time...the host and two virtual sessions.
Let me now point out that not everything that worked on "true" hardware will work in a VM session. VM sessions can not virtualize add-in cards. So if you were hoping to virtualize that RAID controller you have installed, it won't virtualize as a RAID controller in the VM session (in fact, you won't see it at all in the VM session). Sorry, you won't be able to virtualize the W9XT voice keyer in a VM session. However, you can map ports in the VM session to physical ports on the "host" PC, so you could map COM1 in the VM session to COM1 on the host (or COM2, COM3, etc). Same with parallel ports.
Just for reference, Virtual PC was originally developed on the Mac many years ago to bridge the gap in software availability on the Mac. So virtual sessions are not a "new" thing. In fact, mainframe computers have run in VM modes since the 70's. It's just that hardware has finally matured to the point that virtualization is now viable on the desktop. However, even now, VM's generally run only at 50% to 70% of the CPU speed due to the overhead of virtualization. I just installed Virtual PC on an old 600MHz Pentium-III system and the virtual session runs DOG slow. As mentioned before, you should have a FAST computer with lots of RAM (1GB or more) if you're serious about running a virtual session.
In the next year or so, you'll start hearing a lot more about virtualization as the hardware is now up to the task. In fact, virus writers are now looking at the hardware virtualization modes now available in the newest Intel processors (Intel Virtualization Technology, IVT). It allows virtualization at the hardware level, so the virus would load even before the OS does. And, as such, the OS would never be able to detect the virus as it's running in it's own virtual session that the virus created. There are many good things to come from hardware virtualization too - the same tactic can be used by anti-virus and anti-spyware vendors to launch prior to OS boot. And, with hardware virtualization, VM software can virtualize at the hardware level allowing you to truly have two completely different operating systems at the same time without any software emulation of the hardware - just press a key and you can flip seemlessly between Windows and Linux. And, since the virtualization is via hardware, it runs at almost full CPU speed.
Anyways, enough for now. I hope I've cleared up any mis-conceptions about how VM sessions work and how MS-DOS can run in Windows via a VM session - it's not the same as trying to launch MS-DOS directly in WinXP.
BTW, Duane, a bootable USB key with MS-DOS is the same as booting from a hard drive or floppy drive with DOS. You can access CD-ROM drives, printers, modems, etc. just as before. However, for CD-ROM drives, you do need to have a CD-ROM driver the MS-DOS CD-ROM Extensions (MSCDEX) installed in order to access the CD-ROM.
If anyone has any additional questions, please feel free to ask!
- Aaron Hsu, NN6O (ex-KD6DAE)
{nn6o}@arrl.net
{aaron.hsu}@nbcuni.com
No-QRO Int'l #1,000,006
. -..- - .-. .- ".... . .- ...- -.--"
-----Original Message-----
Sent: Thursday, October 19, 2006 7:04 PM
Subject: Re: [Ham-Computers] RE: Flash drives, DOS, etc
Aaron,
I was told by a very good computer tech that Windows DOS, as we are used to,
would not work on a XP machine due to the system changes after Win 98 SE.
The drivers were not supported and the hardware was not useable. That is,
no CD or other devices.
I have flash memory and the DOS etc. While it 'may' allow some DOS programs
to run, many will not because they can not use the CD, printer, modem etc.
So make it clear, please: What are the limitations using any kind of DOS in
any type of way on a XP machine?
Thank you.
----- Original Message -----
*** SNIP ***
More information about the Ham-Computers
mailing list