rod mclaughlin

Why I hate Microsoft

Why I hate Micro$oft

Mon, January 22, 2007

This was originally written in 2000, then changed in 2001 and 2004. I could make further changes. For example, it predicts that all proprietary software is doomed, and open source software will replace it. Wrong! At the O'Reilly Open Source Conference, the most widely-used computer is Apple Macintosh. This is the most proprietary of solutions. The IBM PC is much more open, as it has numerous licensed manufacturers, whereas the Macintosh, and everything on it, only has one. And it's expensive. But it's expensive for a reason. It works. Software developers and graphic artists alike want Mac. I recently had four job interviews, and three of them allowed you to use a Mac for software development. Windows has meanwhile acquired more bugs and user interface issues, and the basic conclusion of this post remains.


It's not that they try to be a monopoly (their competitors are the same, except not very good at it).
It's not their attempt to undermine Java (they failed, but like all proprietary software, Java is in for trouble anyway).

It's not their promotion of technically inferior products over better ones.

It's not their calls for "freedom to innovate" despite the fact that they have never produced a single original idea.

It's their attitude.

Here's a very long example of Microsoft's contempt for the consumer.
I have a Compaq 486 - useless for the latest version of Windows, but a decent box if you put an operating system on it.

I bought a kickass new computer with an AMD K6 500 MHz processor, 256 Mb of memory and a 20Gb drive, divided into two bits, called "partitions". I've linked it to the 486 via a simple network.

It came pre-installed with Windows 98 on one partition, and nothing on the other. I don't like Windows 98 - it takes too long to boot up, and doesn't give me enough control over the machine. None of my old DOS utilities work on it. However, I do want Windows 95, just to run a Windows Music Teaching program which works with my Creative Blasterkey electronic keyboard. (Piano Discovery, by After I have learned basic keyboard skills, I can run the piano, and every other useful piece of hardware, from Linux. To achieve this, I needed to
a) install Windows 95 on the spare partition
b) install Piano Discovery in Windows 95
c) install Linux over the Windows 98 partition

I installed Windows 95 version OSR 2 on the spare partitition on the AMD machine. I then rebooted, and got this error:

Device IOS failed to initialize. Windows Protection Error. You must reboot your computer.
I didn't know it then, but I was going to become familiar with this message. Very familiar. I now know it off by heart. I can recite it in my sleep, and probably do.
For those who lack the patience to follow my cautionary tale all the way through, I will summarize the problem:
In order to run Windows 95 OSR 2 on an AMD K6, I need to run AMDK6UPD.EXE.
In order to run AMDK6UPD.EXE, I need to run Windows 95 OSR 2.
I expect you see the type of dilemma I have - it's known as a "Catch-22".

Partition the Lord with Prayer

First I rebooted with the Windows 95 floppy disk, ran fdisk, changed the active partition to the Windows 98 partition, rebooted again, connected to the Internet, ran Netscape 6, went to Google, and searched for
"Device IOS failed to initialize. Windows Protection Error".
This is what I found:

From Device IOS failed to initialize. Windows Protection Error. You must reboot your computer.

See this file on MS Support



This technical bulletin outlines an error message produced by Windows 95 after re-booting following installation of a program or making configuration changes.

The information is provided in the form of an MSDN (Microsoft Developer Network) technical article.

Err Msg.: "IOS Failed to Initialize" on Boot

Last reviewed: September 25, 1998 Article ID: Q157924

While initializing IOS: Windows protection error. You need to restart your computer.

After the error message is displayed, you may not be able to start Windows 95 normally. However, you should be able to start Windows 95 in Safe mode.

It may also be possible to start Windows 95 normally after using the following procedure: Boot Windows 95 in Safe mode or to a command prompt. Perform one of the following two steps:

Edit the Config.sys and Autoexec.bat files and disable any references to Smartdrv.exe and real mode disk drivers.

To disable a line, type "rem" (without quotation marks) at the beginning of the line.
Rename Smartdrv.exe to another name.
Restart your computer normally.

Knowledge Base Symantec

Error: "...Windows Protection Error..." in Windows 95
Situation: After you made configuration changes to your system, Windows 95 displays one of the following errors during system startup:
"While initializing device IOS: Windows protection error. You must restart your computer."
"While initializing IOS: Windows protection error. You need to restart your computer. "
"Windows protection error. You must restart your computer."

Your system has 32 MB of RAM or more, many device drivers loading into memory, and it does not have Internet Explorer 4.0 installed.

Solution: This is a known issue with the Windows 95 operating system and may happen after installing or uninstalling any product. Microsoft has fixed this problem in Windows 98.

One of the following solutions may resolve the problem until you are able to obtain a copy of Microsoft's repair file, IOSUPD.EXE.
Rename the SMARTDRV.EXE file in the C:\Windows folder.
Rename the AUTOEXEC.BAT and CONFIG.SYS files.

For more information, see Article No. Q157924 in the Microsoft Knowledge Base at:

Microsoft's IOSUPD.EXE file can be found on the Microsoft Web site and at a number of other locations. Since the installation instructions appear to assume that the system is successfully booted into Windows 95, you may need to reinstall Windows 95 before you are able to apply this fix. As with other hotfixes, it may not be advisable to apply the hotfix unless your system reports this error.

CAUTION: Run this file only on Windows 95 systems. The file can corrupt your installation of Windows 98.

This file can be found at the following locations:
This is a Microsoft ftp site for file downloads. Download the file IOSUPD.EXE. Running this file will extract the files IOSFIX.EXE and IOSFIX.TXT. Running IOSFIX.EXE will extract the files README.TXT and RMM2UPD.EXE.



In addition, the Windows 95/98 protected-mode IDE disk driver (Esdi_506.pdr) is used to provide 32-bit disk access when you use any of the first three methods listed above. When you use a real-mode driver to provide geometry translation, 32-bit disk access is provided by Esdi_506.pdr only if you use version 6.03 (or later) of OnTrack Disk Manager's XBIOS drivers. For information about or assistance with Disk Manager, please contact OnTrack Technical Support

This is from the horse's, um, mouth:

"This problem can occur if there is a hardware error while data is being read from the hard disk. When such an error occurs in Ultra DMA mode, the Windows device driver does not successfully recover from the error and retry the operation."

Well, why not?

Scroll down to the Service Packs section and then click the link to download the Windows 95 Update for AMD-K6-2/350.

This issue is resolved by the following updated files for Windows 95 OSR 2 and OSR 2.1:

Date Time Version Size File name
09/04/98 11:18am 4.00.1118 24,426 bytes Esdi_506.pdr
08/03/98 11:13am 4.00.1113 25,249 bytes Hsflop.pdr
09/04/98 11:12am 4.00.1112 23,158 bytes Scsiport.pdr
01/15/97 11:12am 4.00.1112 59,153 bytes Cdfs.vxd
01/15/97 11:12am 4.00.1112 18,809 bytes Disktsd.vxd
01/15/97 11:12am 4.00.1112 9,955 bytes Int13.vxd
09/04/98 11:13am 4.00.1113 68,962 bytes Ios.vxd
01/15/97 11:12am 4.00.1112 18,197 bytes Vfbackup.vxd
In addition, the following updated file is needed for OSR 2.1:

Date Time Version Size File name
12/04/98 12:13pm 4.00.1213 111,678 bytes Ntkern.vxd
This website is run by a geek who carefully documents numerous problems with Windows, and tries to provide solutions:

"Also note that although this update applies to both the original version of Windows 95 and to Windows 95 OSR2, one of the updated files it contains, VOLTRACK.VXD, is older (version number than the one (version number contained in OSR2. The update is smart enough to not install VOLTRACK.VXD in this case. So for those running the original version of Windows 95, remideup.exe will update ESDI_506.PDR and VOLTRACK.VXD, and for those running Windows 95 OSR2, remideup.exe will only update ESDI_506.PDR.

"Before the release of OSR2, there was yet another version of this update: ideupd.exe (UPD960514a). Even though this update has been made redundant by the latest remideup.exe, for some reason Microsoft has decided to include it on the OSR2.5 CD. This is even stranger considering the fact that the latest remideup.exe (UPD970521R1) is also included on the OSR2.5 CD.

"Note 49 -- Last modified on 22-Dec-1998
amdk6upd.exe (UPD980911N1) is meant for OSR2 and higher only; it should not be applied to earlier versions of Windows 95. It fixes problems on computers that have an AMD K6-2 processor running at 350 MHz or higher. Although the name of this update seems to imply that it is meant for systems that have an AMD K6 processor, it also installs fine on other systems, and for a while now (and without any problems), I have been using a non-AMD Windows 95 system on which this update has been installed. And since this update contains several newer versions of files that come with other updates (for instance, flopupd2.exe and remideup.exe), and since according to Microsoft's own Knowledge Base article Q161020, most updates are incremental (i.e. newer versions fix not only some new problem, but also everything fixed by older versions), I do not see any reason why this update should only be installed on AMD K6 systems. Finally, even Microsoft and AMD do not explicitly state that this update should not be applied to non-AMD-K6 systems."

(Copyright © 1997-2000 Ben Jos Walbeehm.)

What a careful explanation! Why is such a competent systems guy wasting time with Microsoft?

A Cautionary Tale

I will give my story, in as much detail as Ben Jos Walbeehm, but with a different aim. My aim is to persuade you not to use Microsoft operating systems.
If you really must use one, send me a stamped envelope and I'll send you one of mine. I've plenty:
A Windows 95 version A floppy disk, created during the install of Windows 95 on my 486, with some additional utilities, eg. FDISK and FORMAT.
A Windows 95 "upgrade" CD, version A (1995, original version).
A Windows 95 version B CD, 1997 (I think this is OSR 2).
A Windows 98 CD.
A Windows 98 floppy.
Windows 98 installed on my AMD.
Windows 95 version A installed on my 486.

Made sure that my Windows 95 floppy disk contains ATAPI_CD.SYS. This is needed to access CD-ROM.

A:\>format /s d:
Label: SPARE, Size 9773.8Mb.
Reboot with Windows 95 floppy and Windows 95 CD.
FDISK - set active partition 2:

partition 1 Non-Dos 9790
partition 2 EXT DOS 9774
Reboot with Windows 95 floppy and Windows 95 CD.
FDISK - add a partition, show information:

1 Non-Dos 9790 50%
C: 2 A PRI DOS 2047 10%
3 XT DOS 9774 50%
What a bizarre and arbitrary mixture of different types of information! There's Partitions, Primary DOS, Extended DOS, Non DOS (which means FAT32, the Windows 98 partition). Sometimes, FDISK knows which disk drive (eg. C:) goes with which partition, but not always. There's active ("A") and inactive, then percentage. Percentage of what? The numbers above add up to 110%.

Remove floppy. Reboot to Windows 98. Oops - forgot to change my active partition.

Reboot with Windows 95 floppy.
FDISK - set active partition 1:

Remove floppy. Reboot - takes about six minutes for Windows 98 to boot up. Look at Disks in Windows Explorer.

C: normal Windows 98 drive (not the same C: as above)
E: not accessible ("a device attached is not functioning")
F: W95 (The Windows 95 CD)
G: C on ROD (This is the C: drive of the 486, which somehow inherited my name, viewed through the network.

Normally, "C on ROD" is also known as F:, but now because "SPARE" has occupied D:, subsequent drives are bumped one letter).

Reboot with Windows 98 floppy. C: is Windows 98, D: is SPARE, E: is not accessible, F: is the CD, G: is C on ROD.
A:\>format E:
"E: is not accessible (a device attached is not functioning)",
Reboot with Windows 95 floppy.
FDISK: make partition 2 active
Tried using a floppy disk I created from a Caldera Linux CD, which contains "Partition Magic", which you might hope would sort out this message, and produce its messages in some meaningful subset of English.
It fails - no fault of Caldera's. Windows 98 starts.

Reboot with Windows 95 floppy.
FDISK: make partition 3 active - the 9774 EXT DOS partition.
D: is now the CD, C: is "invalid media type", E: is "invalid drive specification".

A:\> format /s c:
"Insufficient memory"

Reboot with Windows 98 floppy.
C: is Windows 98, D: is SPARE...
A:\> fdisk
Do not enable "large drive support"

E: 1 PRI DOS 2047
C: 2 PRI DOS 9790 FAT32
3 A EXT DOS 9774
Reboot with Windows 95 floppy.
A:\> format /s c:
WARNING: yes, continue...
Formatting 2047.3 MB...
D: setup (CD)... no... changed my mind... exit

1 Non-Dos 9790
C: 2 PRI DOS 2047 FAT16
3 A EXT DOS 9774
Set Partition 1 active (FDISK... 2... 1... ESC... ESC... CTRL-ALT-DEL... I'm getting pretty good with FDISK. Must put it on my resume).
1 A Non-Dos 9790
2 EXT DOS 9774
Delete Partition 2.
"Cannot delete extended DOS partition while logical drives exist"
... but it can't find any logical drives in the extended DOS partition for me to delete! (That's because it's FAT32, and I'm using a FAT16 O/S {Windows 95 floppy} which can't recognize it). Set active partition to 2. Reboot with Windows 95 floppy.
Now, there's no FAT16 partition, only the CD-ROM and C:
Reset active partition to 1 and reboot with Windows 95 floppy. I was getting a bit tired by this time, so I made a mistake with FDISK. Nearly deleted the Windows 98 partition (partition 1) by mistake, but luckily, it wouldn't let me.

Reboot with Windows 98 floppy - 2 partitions, Non-Dos is active.
FDISK - no to large disk support.

Deleted logical partition in EXT DOS. Reboot with Windows 95 floppy. FDISK - delete extended DOS partition. Created primary DOS partition using maximum space and made it active. Now:

1 Non-Dos 9790
C: 2 A PRI DOS 2047 Unknown
Now A: is the floppy (or B: - you can choose!), D: is the CD, C: is invalid media.
FDISK, make partition 1 Active,
A:\> format /s c:... "Formatting 2,047.3 Mb"
D:\> setup... Windows 95 Setup...
"Error SU-0013. Setup could not create files on your startup drive, and cannot setup Windows... if you have HPFS, you must create an MSDOS boot partition, see SETUP.TXT."

Oh... this means I should have set partition 2 active. Did so.
Reboot with Windows 95 floppy... D:\> setup...
License agreement... create startup floppy disk... Check on "Network card" option... "Copying startup files.. Getting ready to restart your computer..." Oh boy!
Then... hardware issue... restart.. Safe mode
"While initializing device IOS: Windows protection error. You must restart your computer."
Tried five times. Same error.

Reboot with new Windows 95 floppy disk... now it can't find the CD-ROM! So reboot with the old Windows 95 floppy disk... now D: is the CD, Setup again, overwrite everything ... Don't check "Network card" option... "Smoother multitasking lets you do many things at once". Wow. "Sign up with the Microsoft Network today and get connected"... restart... same error.
Safe mode (option 3)
Step-by-step confirmation... yes, yes... Load the Windows GUI... no....
C:\> WIN
Same error.

Reboot using Windows 95 floppy, FDISK, set partition to Windows 98, reboot, wait five or six minutes... Had a look through Bootlog.prv, ios.vxd, setuplog.txt, iosclass.dll... On to the web... It's a problem Windows 95 has with the AMD K6 above 350 MHz. Microsoft generously concedes that it's not a hardware issue. They don't go as far as to admit it's a bug in their software. The issue is fixed in Windows 98 - by removing the feature that causes the crash, which is some clever processor-timing dependent kluj. It's not an Intel-Micro$oft conspiracy either - the problem also occurs in some Pentium chips.

Recall that I have a full install CD for Windows 95 OSR 2 (or Windows 95 B - it doesn't say this on the CD - you have to figure it out from file dates - May 1 1997). I also have an "upgrade" for Windows 95 original version, file dates July 11 1995. (It means upgrade from Windows 3).

You can't use the OSR 2 disk to upgrade from the original Windows 95. To cut a long story short, I ended up with the following situation:

If I install OSR 2, under no circumstances can I run it as a GUI. I can't run it in safe mode, though I can run it in DOS mode. But the various update executables I downloaded from the web (AMDK6UPD.EXE, RMIUPD.EXE etc.) will only run in Windows 95 graphical mode. You can restart Windows 95 OSR 2, hit F8, and choose various things. None of them worked, including all possible combinations of Option 5... run in DOS mode... then (as suggested by Microsoft)
C:\> WIN /d:m
nor any of the other six possible flags after /d:, nor even a combination of m and v (/d:vm). Under no circumstances can you get Windows 95 OSR 2 to run on my AMD K6 machine.

In order to upgrade it so you can run it, you need to run AMDK6UPD.EXE. But this will not run under any Windows 95 version A, and will damage Windows 98. In order to run AMDK6UPD.EXE, you need to be able to run Windows 95 OSR 2. It's a Catch-22.

You can, however, run Windows 95 version A. This also causes the IOS error. BUT, by copying the files RMM.PDR, SCSIPORT.PDR and ESDI_506.PDR from Windows 98 dated April 23 1999, into the 'c:\windows\system\iosubsys' directory of Windows 95 VERSION A, NOT OSR 2, while in Windows 98 (there I go again!), and rebooting, it just about starts.

But this is prone to frequent errors - blue screens containing the message "Invalid VXD call from ESDI-506.PDR. Continue?"... if you answer Y, it usually continues into Windows 95. But you cannot run any of the update programs which I downloaded from the web under Windows 98, because it's version is A, not OSR 2. The update programs say "Wrong Windows Version" and exit.

Furthermore, the Windows 95 file system disintegrates, even if you are looking at it from the File Manager in Windows 98. This is really strange, because nothing is running from that drive. It's not the active partition.

Folders change their names to things like "{_|]_|_p__ö[{". You can't open them and see their contents, because they are illegal folder names.

I carefully tried most of the things suggested on both the Microsoft and their poor hackers' websites, but there is a limit.

This is a very shortened version of the real story, which must have taken at least 24 hours of my valuable time.

The one thing I haven't tried is this:
Backup whole of 486 into subdirectory of Windows 98 machine, using network.
Reformat 486 drive.
Install Windows 95 OSR 2 on this drive (remember, you can't upgrade Windows 95 version A using an OSR 2 full install disk - you need an OSR 2 UPDGRADE disk).
Restart 486.
Cross fingers.
Run AMDK6UPD.EXE on 486.
Copy entire file system (at least, those files which Windows allows you to copy) to Windows 95 drive on the AMD using Windows 98 on AMD.
Reboot AMD with the Windows 95 floppy, FDISK, change partition to Windows 95, reboot, and hope that these files constitute a valid Windows 95 OSR 2 with the AMD K6 bug fixed.

The reason I haven't done this is because I noticed that, if you copy the whole file system of the 486 into a folder on the Windows 98 machine, whether you use the File Manager or XCOPY /v /y /s /c *.*, you tend to lose files and get a file system which corrupts over time.

Red Hat Linux isn't perfect either. I find that the installation of Red Hat Linux usually fails if there is any trace of a Windows partition on the disk, with the "Disk Druid" stuck in a state where it can neither go back nor forward, forcing you to hard-reboot by hitting the power button, which causes Linux to exit with a "Kernel Panic" as soon as it restarts. However, it is at least possible to run Linux on my computer. I eventually installed it over the whole drive, and abandoned Microsoft Windows forever.

This was originally written in 2000 and 2001. Now it's 2004 and I'm still having to use Windows for work. I'm no longer dealing with Windows 98 not working on a K6, but Windows XP not being able to upgrade to "Windows Server 2003 .NET", necessitating a five-hour reinstall of Windows, Office, Visual Studio, the .NET Framework, and all the rest. I'm writing a course on using V$.NET to create platform-independent Web Services - but in order to deliver the course, it is necessary to create a "virtual hard drive" - a copy of the entire PC you use to write the course, and deliver it using Virtual PC - and 1Gb of memory, 12Gb of disk space, a fast network... they say that Intel giveth, and Micro$hit taketh away. I could do the course using Perl and text files, and deliver it on a floppy disk.

Here is an example of some of the stuff I have to deal with:
If Visual Studio .NET cannot find the web service, it may be necessary to enter the full path to the web service files in the dialog box: C:\...X. If Visual Studio .NET does not give you the opportunity to do this, the following steps must be taken:
Exit Visual Studio .NET. Do not save any files if it asks. Navigate to Start | Control Panel | Administrative Tools | Internet Information Services (IIS) Manager. Open the IIS folder structure. Under Default Web Site, you may see a reference to the service you are trying to use. If so, right-click on it and select Delete. When the IIS Manager dialog box asks you if you want to delete it, click on Yes of course I %@$*! do. Right-click on Default Web Site and select New | Virtual Directory. In the Virtual Directory Creation Wizard, click Next. In the Alias field on the next screen, enter the name of your web service (e.g. X) and click Next. In the next screen, in the Path field, enter the full path to the service (e.g. C:\...X). Click Next and Finish.

My preference is to use Mac OS/X for email, word processing and so on, and Linux for software development. I still regard M$ as completely parasitical, of no practical value, and heading towards Enron-land.
Portland London