Preparing Your Software for Windows XP


In preparation for upgrading to or installing Windows XP fresh, you need to consider software compatibility issues. Chapter 1, "Introducing Windows XP Professional," described how Windows XP is largely backward-compatible with DOS, Windows 3.x, Windows 9x, and Windows 2000 applications. Windows 2000's support for older programs, was, well, not so great. In fact, during the development of Windows 2000, application compatibility (especially for consumer end-users) was almost an afterthought. The focus for Windows 2000 was the corporate user. As a result, numerous consumer-oriented applications, such as games, failed to run on Windows 2000, leaving many power users and home consumers in the lurch.

Windows XP Professional is designed to work with both corporate users and home users' applications. To ensure expanded software compatibility, Microsoft set up an Application Compatibility Experience group shortly after the XP project began in December 1999. This group consisted of more than 200 testers, developers, and program managers who tested applications in a variety of scenarios (clean installs, migrations, upgrades) using various hardware configurations.

The result is that your existing software, whether Windows 98, Windows NT, Windows 2000, or even DOS and Windows 3.x, will likely run under XP. Even some older DOS games will run (though it's a little hit and miss). As an example, SoundBlaster-compatible sound works in DOS boxes under Windows XP. This means you can spend your lunch hour playing games like DOOM and Castle Wolfenstein in Windows XPin a window or in full screen mode.

TIP

Heavy gamers report that games that pre-date dedicated sound cards tend to work better than those that don't. More "modern" DOS games that utilize audio cards like the SoundBlaster often choke hard. However, there are utilities such as DOS Box that can mitigate these problems (http://dosbox.sourceforge.net/).

Although discussed more in Chapter 3, it is worth mentioning that XP Home Edition will support upgrades from Windows 98, 98 SE, and Millennium Edition (Me), but not from Windows 95, NT 4.0 Workstation, or Windows 2000 Professional. Users of Windows XP Professional can also upgrade from Windows 95, NT 4.0 Workstation, and Windows 2000 Professional. The moral is that if you want to upgrade rather than to dual-boot, and you're running Windows 95, NT 4.0 Workstation, or Windows 2000 Professional, you'll need to purchase Windows XP Professional.


The good news is that Windows XP (both Home and Professional) will be highly compatible with many DOS and Windows 3.x applications, and with virtually all 32-bit programs that were designed for Windows 9x, Me, NT, and 2000. In addition, all your software (especially 3.x software) will benefit from having a face-liftnicer borders, more options in the dialog boxes, smoother functioning, an increased capability to work with larger files, and so forth.

For programs that are quirky, you may have to resort to the new Windows XP compatibility modes. Windows XP's programmers have supposedly pinpointed more than 150 areas where apps from earlier versions of Windows might fail. They've created fixes for these problems and supplied XP with "compatibility modes" that let you fake out the offending application, running it in such a way that it believes it's running under Windows 95, Windows 98, Me, NT 4, or 2000. The fixes can be applied to an application shortcut so that it always works properly when executed. This was mentioned in Chapter 1. For some apps, you may be alerted that there's a downloadable patch for the application (this may happen also when installing Windows XP, as described in Chapter 3).

While Windows XP is designed to run most older applications and games, this backward compatibility doesn't apply to utility programs which must work at a very deep level with the operating system and hardware. Programs such as older versions of disk-repair utilities such as Norton Utilities; anti-virus programs such as Norton Antivirus and McAfee Virus Scan; and system-management utilities such as Norton System Works, Ontrack System Suite, and others might not be compatible with Windows XP, because of differences in how Windows XP handles internal programs, memory, and drives compared to earlier Windows versions. If you're wondering if a particular disk, anti-virus, or system utility works with Windows XP, contact the vendor before you run the program.

NOTE

Note that post Service Pack 2, XP will seek out installed Anti-Virus software on your computer to incorporate into the Control Panel's Security Center applet.


To avoid problems that can be caused by running programs that are not designed with Windows XP in mind (and can't be tamed by the compatibility options built in to Windows XP), Windows XP will block programs from running if they won't work. Windows XP also features a new technology called AppsHelp which is triggered when problematic programs try to run. Thus, Windows XP is designed to achieve the twin goals of making your older software work while protecting your system from any problems that some older programs can cause.

In general, if you have your arsenal of programs chugging away under Windows 9x, Me, NT, or 2000 successfully, your applications will upgrade to Windows XP with only minor incident. Setup's compatibility testing program will alert you about any needs or incompatibilities. If you want to better understand the vagaries and nuances of Windows XP's application restrictions, read on.

Classes of Programs

You are probably aware of a distinction to be made between types of programs. Most programs folks use on a daily basis are called productivity applications or simply applications. They include programs such as Microsoft Word, Microsoft Access, Adobe Photoshop, Dreamweaver, and other Web page editors, CAD-CAM programs, video and sound editing programsjust to name a few of the thousands that are available. Typically, such programs help you produce documents in a certain line of work. These applications run at the highest level of the computer system, well on top of the operating system, and don't get down into the nitty-gritty of it.

By contrast, utilities are programs that try to get down deeper into the operating system and are used to manage the computer. Programs such as virus eradicators, hard disk partitioning and image backup tools, hard disk organizers, user interface tweakers, and power management tools fall into this class of programs. Norton System Works, Ontrack Partition Magic, and McAfee Anti-virus are examples.

Even though most people don't typically distinguish between utilities and applications and simply use the word application (or just program) to refer to any program, technically, they are different. As you'll see, it's very likely that your existing applications are going to work under Windows XP Professional. However, it's far less likely that the system or disk utilities you want to bring over from less-empowered iterations of Windows will work without being updated.

TIP

If you have a program that uses 16-bit drivers, you need to get 32-bit drivers from the software vendor to ensure that the program functions properly after the upgrade to Windows XP.


Legit APIs Versus Hardware Twiddling

As you might recall from Chapter 1's brief discussion of the XP architecture, when applications need help from the operating system to, say, print or write a file to disk or accept keyboard input, the environment subsystem passes the request to the Executive. The NT Executive runs in protected mode so that applications (or utilities) can't threaten the stability of the system. The requests that applications make are known as API calls. (API stands for application programming interface.) APIs are built into each environment subsystem and make up a set of tricks or canned functions the programmer can call upon.

The NT Executive, kernel, and hardware abstraction layer (HAL) take care of the rest of the work after the request is made. Recall also that the non-Win32 environment subsystems turn their calls over to the Win32 subsystem, which then routes them to the Executive. Thus, the environment subsystems have to translate native Windows 3.x, OS/2, and DOS calls into Win32 calls, which are then passed to the Executive using API calls the Executive understands. A lot of interpreting goes on, and lots of middle management.

For general applications, all this is just peachy because most applications just want traditional access to hardware: keyboard input, screen output, printing, and reading and writing data files on disk. APIs are a great help here, as is the Executive, because applications programmers don't have to handle the drudgery of system housekeeping on their own. The existence of an API makes writing Windows programs much easier.

As you might have suspected, any program or utility that wants to work directly with hardware, or makes calls that would otherwise be trapped because they don't exist in the Windows XP environment subsystems, will fail or will likely be crippled in some way. Typically, Windows XP shuts them down after generating an error message of some sort, possibly asking if you want to try a solution on the Windows Update Web site. Exceptions are legitimate calls to COM and LPT (serial and parallel) ports made by DOS programs in the course of traditional procedures such as dialing a modem or printing a document. Many DOS communications programs expect to access the serial port UART (the chip that runs the serial port) directly, for example. NT "virtualizes" the PC serial and parallel ports in the 16-bit subsystem, intercepting the request and sending it through the Executive as legitimate. The port is emulated in software, basically, and the DOS program is none the wiser. DOS programs that try anything more sophisticated, such as writing to the hard disk tracks or doing fancy stuff with the ports, screen, or keyboard, will be trapped.

In Windows 3.x, API end runs often were neither perceived nor prevented, resulting in system breaches and crashes. This was particularly a problem with DOS programs because they assumed they had control of the entire computer (DOS isn't a multitasking operating system). Windows 3.x allowed this use, so games and utilities programmers took advantage of this "feature" to write some pretty audacious programs. DOS-based viruses are a good case in point. Viruses make a hobby of fiddling with the innards of your operating system (typically by altering data on the hard disk), with insidious effects. Windows 3.x couldn't prevent such security breaches because it had no way of knowing they were occurring. Windows XP (and 2000) are much better at preventing them. The BIOSs of modern PCs can also detect attempts to futz with the boot tracks of the hard disk, too, though the feature can be defeated through disabling the antivirus or write-protect boot sector setting in the BIOS Setup utility.

Windows 9x and Windows Me were somewhat better at protection than 3.x, though not by a great margin. Portions of the kernel were protected, and if a program acted improperly, you stood a better chance of being able to kill it without bringing down the whole operating system. The designers of Windows 9x and Me achieved a higher degree of hardware isolation by virtualizing all the hardware, the same approach used in NT, 2000, and XP. Every physical piece of hardware in the computer is accessed only by virtual device drivers (called VxDs in Windows lingo). When an application wants to use device, it asks the operating system for it via the API call. Then the operating system validates the request and passes it along to the device driver, which in turn handles the actual communication with the device.

As with previous Windows versions, Windows XP allows the user to define certain characteristics for running DOS programs, through PIFs (Program Information Files). PIFs allow you to set default properties for MS-DOS programs, such as font size, screen colors, and memory allocation.

Hardware-Based Device-Protection Capabilities

Intel and compatible CPUs have capabilities that come to the rescue, to some degree, in helping prevent hardware access breaches, yet still handle the request. The CPU works in concert with the operating system to achieve the desired result. When a DOS program running in Windows tries to access hardware, Windows maps the DOS API call to the Win32 API. This procedure is fine until a direct call to hardware is attempted. An intelligent feature built in to Intel 386 and subsequent chips (up to and including the Pentium 4 as well as compatible processors such as the AMD K6 family, Athlon and Duron), called the I/O permission bitmap, comes to the rescue by noticing this request and putting up a red flag.

When an application is run, Windows XP detects what type of program it iswhether DOS, Windows 3.x, 32-bit Windows, or OS/2. When the VDM (virtual DOS machine) for a DOS program is set up, it provides all the basic services of a PC, and it also creates an I/O permission bitmap for the application. The bitmap is essentially a table with entries for each of the computer's internal ports (there are many, used for different things, such as the system clock, network boards, and so on), and it shows which, if any, of the ports allow direct access. If the DOS program tries to access hardware outside this accepted list of virtualized hardware, the red flag goes up, Windows XP notices it, and the program is terminated, typically accompanied by an entry in the system error logs.

Why Should You Care?

Enough theory. What does this mean to you and to your application choices? Most of your older software will probably run fine after the upgrade. But if you're upgrading from Windows 3.x or 9x and you've been running older 16-bit programs, especially hard disk utilities, you might have some trouble.

CAUTION

Even though you might be able to run some of your older programs such as disk utilities that interact directly with your computer's hard disk by forcing the issue with the XP compatibility modes, it doesn't mean that it's advisable. Windows 3.x programs, for example, don't know about long filenames and can truncate long filenames or at least not display them or accept them in dialog boxes, which can be annoying. Running such programs is not recommended, and I suggest you put them in cryogenic suspension. With XP, the upgrade might be significantly easier than Windows 2000 was (or might have been), but that doesn't mean you should necessarily be cheap and not upgrade to the XP versions of your favorite apps when you get the chance.


As mentioned, Setup examines the applications you have installed and attempts to warn you of incompatibilities. In some cases, you'll just be told to bag the program. In other cases, you'll be prompted to contact the maker for updates, called upgrade packs, or to insert the disks with upgrade packs on them at the appropriate time.

Windows XP-Approved Applications

So, which programs are really ready for Windows XP? The logo requirements for "Windows XP-Ready Software" are similar to those discussed previously for hardware. Just check the product's packaging or the Web page description of the product you're thinking of purchasing. If it's Windows 2000-compatible, chances are good that it will run under Windows XP, but that's not guaranteed. I suggest you contact the maker or check a few sites on the Web first.



Special Edition Using Microsoft Windows XP Professional
Special Edition Using Microsoft Windows XP Professional (3rd Edition)
ISBN: 0789732807
EAN: 2147483647
Year: 2003
Pages: 450

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net