After Hours optimize

10 things to try when applications won't work with Windows 8

If you have problems getting an app to run on Windows 8, all's not lost. One of these strategies or workarounds may get the application running.

Windows 8 is more forgiving with regard to application compatibility than some of the previous versions of Windows were, but some applications just will not work with it. Thankfully, you don't always have to accept defeat. Although there is no silver bullet that guarantees application compatibility, you can use a number of tricks to improve your odds of getting a stubborn application to run in Windows 8.

1: Create a virtual machine

I will go ahead and get the last resort step out of the way up front. Windows 8 includes its own copy of Hyper-V. If you can't get an application to function in Windows 8, you can enable Hyper-V and create a virtual machine running a legacy version of Windows as a way of running the application.

2: Turn off User Account Control

I haven't experienced any User Account Control (UAC)-related compatibility problems in Windows 8 yet, but I have run into problems in Windows 7. When I first adopted Windows 7, there was a particular dictation application that would not work until I disabled UAC. I have read posts on the Internet from people who have had similar experiences in Windows 8, where disabling UAC resolved a compatibility issue.

3: Install .NET Framework 3.5

When you install Windows 8, version 4.5 of the .NET Framework is installed by default. However, older apps often require an earlier version of the .NET Framework. If you receive a .NET Framework-related error, you can go into the Control Panel, click on Programs, and choose the option to turn a Windows feature on or off. Windows will display a list of the various components you can enable or disable. One of the items on the list is .NET Framework 3.5, which also includes .NET 3.0 and 2.0. Installing this component will likely correct the issue that you are experiencing.

4: Check for application patches

One of the first things you should do upon discovering an application compatibility problem is contact the application vendor and find out if it has a Windows 8 patch available. Sometimes, a patch is all you need.

5: Upgrade to the next version

When I made the switch to Windows 8, I discovered that a video-editing application I use on a regular basis would not work with Windows 8. Although I might have been able to resolve the problem using less drastic measures, I ultimately decided to simply upgrade to the newest version of the application. Not only was the latest version certified to work with Windows 8, but it also had some other new features I wanted to try out.

6: Upgrade your hardware drivers

One of the biggest problems I had when I upgraded to Windows 8 was that a program I use every day wouldn't run. The error message I received indicated that Windows 8 did not support OpenGL. However, OpenGL support is provided by the video driver, not by the operating system. It turned out that my problem was caused by an outdated version of AMD Catalyst. When I upgraded to the latest version, the problem went away and I was able to run the application.

7: Let Windows troubleshoot the problem

Windows 8 includes a utility called the Program Compatibility Troubleshooter that can sometimes automatically resolve compatibility problems. You can run the Program Compatibility Troubleshooter by right-clicking on the problematic application and choosing the Troubleshoot Compatibility command from the shortcut menu.

8: Trick the application into thinking it is running on an earlier version of Windows

Some applications are hard-coded to look for a specific version of Windows. In these types of situations, you can configure Windows 8 to lie to the application about what version of Windows you're running. Start by running the Program Compatibility Troubleshooter (as described above). When you get to the What Problems Do You Notice screen, choose the option for programs that worked in an earlier version of Windows. After clicking Next, you will have the option of telling the utility which version of Windows the application worked in.

9: Provide the application with extra permissions

Some legacy applications (especially those written for Windows XP) fail to run due to inadequate permissions. Once again, the Program Compatibility Troubleshooter can help. When you get to the What Problems Do You Notice screen, choose the option related to the program requiring additional permissions. As an alternative, you could try right-clicking on the application and choosing the Run As Administrator option (assuming that you have administrative permissions).

10: Check the Compatibility Center

One last thing you can do is check the Compatibility Center for information about the application. The Compatibility Center is a Web site Microsoft uses to provide application compatibility information for Windows 7 and 8. In some instances, it provides a link to detailed instructions on what you must do to make an otherwise-incompatible application work with Windows 8.

About

Brien Posey is a seven-time Microsoft MVP. He has written thousands of articles and written or contributed to dozens of books on a variety of IT subjects.

110 comments
mrkevn
mrkevn

Hi mate, i´ll give u an old issue I simply cannot find how to fix (maybe nor Microsoft indeed). Some websites cannot load images using Windows 8, and no matter if I deactivate windows defender, antivirus, firewall.. The problem is the same in all browsers, all updated ones (chrome, firefox, iexplorer,opera). My machine is a samsung ultrabook with i7 processor. 
After losing a lot of time researching , i concluded that the problem is within windows 8 and I´m almost losing a day to format my computer and install windows 7 on it.

Do you have any suggestion or a way to fix this bug?


kind regards


Mark

Snak
Snak

Format it and install an operating system.

elmarioc
elmarioc

Why do users have to go through so many girations to make an OS that cost them a pretty penny (thousands of those!) work?? I would think that Micro$oft, in its infinite gritty wisdom, leave many features off a new OS, in "preparation" for their next OS. One of your writers said some years ago, before SP3 for WIN XP came out, that Vista was nothing more than the equivalent of SP3 for Windows XP. I downloaded WIN 8 Upgrade, which cost me $39.95 + tax, and still 'sits' on a DVD, never to be used --my loss.. I will stay with WIN 7 for many years to come (I still have one PC working with XP Pro).

guitarmanvt
guitarmanvt

Mint and Ubuntu are serious contender these days. If you're not married to Microsoft, you may find it to breathe new life into your older machines. If most of your work is online or with e-mail, this may be the ticket.

mikifinaz1
mikifinaz1

The GUI sucks Most of the software we have all come to learn and love doesn't work on 8 Many of the common tasks have been hidden and are hard to find and use All the Web bloatware gets in the way It runs like a snail unless you gut it and if you are going to gut it, getting a fresh copy of Windows 7 installed is easier, it runs better, it is easier to customize... Do I have to go on?

alfred
alfred

I will have to use the first cure for incompatibility - hyper-v. Two of the programs I use in Win XP have been upgraded for Win 7/8 but I find the upgrades vastly inferior to the XP versions. One has dropped a most useful feature in the old version in favour of the fashion of the month. The other has not been developed for Win 7/8 and the replacements by other suppliers do not have all the features I want.

ITOdeed
ITOdeed

It sure seems that in some ways, Win8 is a step backwards for the sake of change. It desperately needs a Win7 interface so that businesses won't waste so much time learning the nonsensical changes.

AllRaj
AllRaj

I experienced a problem with our main admin application which could not find drives not located locally. Once I disabled UAC I was able to navigate to any drive in our network and everything works fine, except for the fact that disabling UAC means no Metro apps work anymore including the store. Truth is I don't spend any time in Start Screen anyway.

Slayer_
Slayer_

I have had menu issues fixed simply by editing folder permissions. Giving one applications folder "Everyone" access is much less insecure then turning off UAC.

jos
jos

I had to disable UAC, run both the install program (and another that was spawned by it) and the program itself in admin mode and in XP compatibility mode and now even that runs like a charm Hitting breakpoints was the part that did not work. (Yes I know, as an uunhelpful MS engineer pointed out, the program has been out of date for a long time now). But still, it was a (personal) challenge to get it to work.

Slayer_
Slayer_

On all my windows 8 tests so far. mscomctl.ocx and mscomct2.ocx are missing. Killing old vb programs. Copying them from an XP or win7 machine and registering them seems to fix the problem.

Brentabrown
Brentabrown

I'm used to using a 2 screen system, with Big (or Bigger) screens. I like to put three windows up on one (email, chat and usually a remote desktop view) and then cycle between 5 or so on the other, usually with 2-3 showing at a time. This makes it easier to view multiple references when I'm coding, or multiple sources when I'm running data integrity checks or doing ETL work. Am I missing an easy fix here? I can't get more than one 'metro' app on a screen at a time except for that ridiculous side view, and I can't seem to get two 'desktop' views at the same time on two screens ... I feel like the OS is taking control of my screen real estate, and I thought that kind of thinking went away about the same time the Y2K panic did.

LinuxRocks
LinuxRocks

Install Linux (Insert fav distro here) and move on with life!

JCitizen
JCitizen

before #2 myself. I don't like limiting the UAC; it has saved my bacon too many times! Great article though! Thanks Brian!

mikifinaz1
mikifinaz1

1. Back step to Win 7 or dig out an old copy of XP and junk windows 8 2. Get a new Mac with the BSD underpinnings and run boot camp etc. 3. Install Linux with the Wine application to run Win X apps.

chip_long
chip_long

We had a problem installing the *.msi file (Microsoft Installer) for one of our applications. We kept hitting a UAC issue that said we didn't have the proper permissions. However instead of allowing us to log in as an administrator like it has in previous versions, it just killed it. There was no way to install it as an administrator either (right click and 'run as administrator'). Our work around came up to run the command prompt as an administrator (type 'cmd' in the search and use ctrl-shift-enter to run as administrator). By navigating to the files location and running it from the command line worked great!

Gisabun
Gisabun

I'm sure a few of my comments below are repeated but here goes: 1: Create a virtual machine: Yup and pay for the licensing cost for the old version of Windows [reminder that an OEM license stays with the computer it was bought with - can't go in a VM]. Don't forget maintenance [i.e. AV, security updates]. 2: Turn off User Account Control: I think I read someone that turning off UAC also disables something in IE [not critical if not using] but also reduces security in general. Fine for a techie but not a typical user. 3: Install .NET Framework 3.5: A proper installer would check if it's installed. 8: Trick the application....: Or right click on the application, go to Properties and then Compatability tab. Choose the OS it works fine with. In some cases, you may get the UAC window when opening. In some cases, the video resolution or bit level may have to be dropped. Obviously some options are useful in a mass deployment. Then try the Microsoft Application Compatability Tool Kit. You can also try application virtualization from Microsoft, VMware or others. I used Adobe's PageMaker up until last year in Windows 7 64-bit. this was an applications last updated in 2001 - before Windows XP came out and yet it worked fine in every OS that I used it in [except one minor glitch] and obviously not a 64-bit app.

GuyHarel
GuyHarel

Following a crash I had to buy a new Windows 8 computer. So far all the soflware I had where successfully installed: Bitdefender, Ultra-Edit 16, Office 2010, Visual Studio 2010. The OS and the new 64 bit computer are so fast I just cant beleive it. The more I work with Win 8 the more I like it. It really does a great job as far I my developper's needs are concerned. I really like it. By the way, thanks for the virtual machine option.

wdewey@cityofsalem.net
wdewey@cityofsalem.net

I often hear people suggest disabling UAC as a solution to problems and I cringe. UAC is one of the the most significant security feature that MS has ever introduced. This is the only feature that helps reduce the impact of zero day vulnerabilities in browsers that can cause the machine to become a zombie. I understand that people want there applications to work, but they also need to understand what exactly they are doing when they disable security features to get something to work. In my personal opinion this should be the last step after all other options have been exhausted. Bill

Muhammad Mahdi
Muhammad Mahdi

Go back to Win 7 which gives the user much better control

rustgeun
rustgeun

Seems to me that #10 should be the #1 item on the list. If they already have information at Microsoft about known issues or compatibility problems, then more than likely they will have information how to fix it.

attila2
attila2

or get another operating system Mac Linux Android

m@rcel
m@rcel

I use it at home now and accept for the updates which aren't working that great I didn't encounter any problems which I couldn't handle myself. It seems to be faster than win7, programs run smoother. Glad I went for the offer to upgrade.

rick
rick

I love Microsoft and all things redmond, and so I gave Win8 about a month. I loved the cool new features, and yes, even the Metro interface. What I couldn't do is put up with program after program refusing to work, and the final nail in the coffin for me was that I could not run Virtual PC, even though it worked great with my processor on Win 7. Sorry Microsoft, it's just not ready yet - so I formatted my PC and went back to Win 7. - Maybe next year.

tony
tony

it can only be installed if the processor supports SLAT (called EPT by Intel and NPT by AMD) - you can use CoreInfo from sysinternals to determine if a processor supports these. As best I can tell, all i7 processors support this, only one or two i5s do and the Xeons do. AMD have a list of what does and doesn't support it, but I have one that is listed and it must be an old stepping as in practice it did not support it. So unless I have missed something along the way, Hyper-V on Windows 8 isn't a cert and depends on whether your processor has the right hardware features. Based on my limited digging around, most laptops probably won't support it. If anyone knows otherwise, please post and correct me, as I would like to be wrong so that I can run Windows 8 with Hyper-V on a couple of older machines for testing.

Krotow
Krotow

Avoid W8 at all. Use Linux or Mac. It's simple.

Daddy Tadpole
Daddy Tadpole

A lot of software cost us a lot of money. Even if updates are available, they are also very expensive and after a few years you have to buy a fresh new licence. Why should the supplier of the operating system be allowed decide how long software should remain functional? Publishers of books aren't allowed to collude with printers to have a timed self-destruct mechanism built-in, so you have to buy a new copy every few years.

HAL 9000
HAL 9000

The Hardware has that New Beaut [b]UEFI[/b] option. Attempting to change the OS could brick the system. Col

Slayer_
Slayer_

You can set these drives through login scripts or manually by opening an elevated dos prompt and using the net use command.

Slayer_
Slayer_

It installed normally with UAC on and without compatibility mode. Only issue I have is some projects insist on running as admin so it can register DLL's. But even VS2010 does that.

tony
tony

Apart from the user interface (get classic shell from Sourceforge - this makes it look like Windows 7) and things like Hyper-V, it really isn't that much different from Windows 7. Any incopmatibility problems (unless you are running Windows RT which is completely different) are most likely to be down to an old program doing something insecurely. Unfortunately, that is the price of progress - at times developers have to draw a line and say that doing things in the same way hampers progress too much.

Deadly Ernest
Deadly Ernest

the majority of the compatibility issues arise from Microsoft management's deliberate decision to cause incompatibilities to sell more software and gear.

Gisabun
Gisabun

Andoid isn't a desktop/laptop OS. Shows howe much you know.

Gerbilferrit
Gerbilferrit

i know mileage varies but everything i ever had on my windows 7 PC works fine on windows 8!

JCitizen
JCitizen

I was purchasing a system that supported virtual environments. You post is totally valid!

HAL 9000
HAL 9000

The Home Premium and lower than Professional do not support Hyper V or Vitalization. Col

Gisabun
Gisabun

We'll avoid your useless comments as well.

Gisabun
Gisabun

"Why should the supplier of the operating system...." Because they don't want to support it for 25 years and no one will buy future versions. Apple supports their OS for a grand total of 4 years [and not the greatest support]. Linux supports for maybe 2 years unless you have a TLS version. Microsoft's policy has been for over a decade of 5 years full support and 5 years extended support [with XP extended support an exception at 9 years]. You don't have to buy a new copy every few years. I know people still using XP for 10+ years.

thekman58
thekman58

Windows XP came out in 2001 and will be supported until 2014. Where are you getting this couple of years?

HAL 9000
HAL 9000

That is exactly what a lot of people rightly or wrongly are saying about 8 as well. It's more like Droid than Windows. ;) Col

HAL 9000
HAL 9000

It's like how many years after DOS Died? But today Microsoft tried to sell a DOS License for the same cost as Vista Professional when the day previously they where selling the same license for $60.00. So for the license that you buy you get No Support, No Possible help at all and you are still expected to pay but now instead of a [b]Token Payment[/b] which is what they charged when DOS was new they want you to pay the same as a Windows Professional License. DOS Sales didn't stop but they certainly dropped a lot till M$ came back to selling them for what they are worth instead of trying to charge what they though they could get away with. After all in any Computer Aided Manufacturing Equipment a Upgrade is Upgrading the actual machine not the computer controlling it as honestly that computer is really cheap compared to the 80K + bit of hardware that it's driving. I can fit a new M'Board, with CPU and RAM for a few hundred $ and adding $60.00 for a MS DOS License just isn't an issue but adding another $190.00 is a different story which the clients are simply not going to pay and they can quite rightly claim that I'm not upgrading their bit of Hardware by fitting a early P4 CPU and so on I'm actually repairing that CNC Lathe so it can continue working. After all none of the external things are different and the Original Hardware is still Intact. A Circuit Board and maybe a HDD have been changed but over all it makes absolutely no difference to the way that the Lathe works. Currently DOS Licenses are Easy Money for Microsoft but when they started trying to Gouge the Market they got a lot of resistance and companies offering to address these issues in Court as they believed that Microsoft had it wrong. There where even a couple of very highly powered SC's who where offering their services for Free because they wanted to set a Precedent which would have increased their earning power substantially. As I didn't want to be involved in a Protracted Legal Battle I just added in the License Fee without much though as it was nothing and the down time was substantial. Increasing that License Fee by over 300% though made many sit back and take notice not to mention Complain Bitterly. If Microsoft was actually offering anything for that Fee Increase maybe just maybe it may have been worth it but they offered nothing at all other than a Income Stream for Microsoft and an Expense for those companies using these products. As DE says they are going to be there for a very long time to come and while not a big market they are still substantial and a Guaranteed Income Stream for Microsoft. So the question becomes am I upgrading a Computer that drives a Lathe or am I repairing a Lathe Driven by that computer. One requires a New License while the other as a Repair requires nothing. ;) Col

Deadly Ernest
Deadly Ernest

HAVE to provide support for 25 years - mind you some big organisations are still using well written software from the the 1970s and 1980s because it wasn't made with deliberate faults. I've no trouble with a company putting a support lifespan limit on what they make, heck, they all do it. But there is a difference between making them all good and making them designed to be useless after a few years. The people using XP after 10 years are doing so despite all MS can do to get them to change to the other versions of Windows in between. BTW In case you don't know, Microsoft talked a lot of companies into using MS DOS as the OS for the embedded OS in a lot of computer controlled manufacturing and milling equipment - that gear had a designed lifespan of 50 to 75 years; it's one reason why MS still has copies of MS-DOS available from their major HQs today as replacement copies for that gear.

michaellashinsky
michaellashinsky

It took until SP2 until they got it working correctly. SP3 added some more security fixes. It is the most finished version of Windows ever! M$ typically releases an OS, has one team write a service pack, and the rest of the team is working on the next version. By the time the first service pack is published, the OS is already considered (by M$) old and disposable. If Longhorn hadn't been delayed, XP would not have been patched, updated, and FINISHED! The only reason M$ has supported XP for this long is because the public screamed bloody murder! I don't particularly want to beta test their next OS, or the one after that. I like software that has the bugs worked out. XP will continue being used long after the 2014 deadline because it still works, and works as well or better than other versions before or after. We shouldn't be on this upgrade treadmill. Add to the OS situation the fact that purchased versions of software sometimes break when the new OS is pre-installed on your new computer, and you find yourself on not one, but many upgrade treadmills at the same time. It is a racket.

Brentabrown
Brentabrown

I'm not sure why 13 years = making me buy all new software. I want a new box with more power to run the tools I use, not a new "digital experience"

Deadly Ernest
Deadly Ernest

perfectly on Win 7 or Win 8 - they don't because Microsoft is forcing incompatibility in to the system to up their profits.

Slayer_
Slayer_

That most of the problems I have had are due to missing dependancies or missing legacy functions. And a few times installs have been blocked by the OS for compatibility problems. Such as SQL server 2000. When you actually convince it to install. It runs perfectly fine. According to dependency viewer. and a fairly quick glance, kernel32 seems to have all the same public functions that windows 7 had. There is probably an MSDN page somewhere that details the OS API changes.

Deadly Ernest
Deadly Ernest

long in the manufacturing environment. The heat and other stuff floating around won't do them good. Add in the copies have to be kept or stored fairly close so they can be shown when an audit is held - well, I don't hold much mope the discs would be of much use after a month or two, let alone the many months or few years between working on them.

michaellashinsky
michaellashinsky

I would just install the copy of Dos I have. It doesn't activate over the internet, does it? It isn't an OEM License adhered to the case, is it? I would just reuse my current license and M$ can KMA. Of course, that is me. I expect the world to make sense. (I am almost always disappointed!)

HAL 9000
HAL 9000

Though M$ says that you have Upgraded the unit by fitting a New M'Board and so on. @ $60.00 it's easy to eat the cost and just comply with the M$ Ruling as I personally don't want the Hassles of being involved in a Protracted Legal Battle over what is effectively rubbish to begin with. However @ $180.00 which is about an hours work it's a different matter to eat the cost of a License and as you say repairing a CNC Lathe or whatever so it works again is a Repair which doesn't need a New License. This is great stuff to work with well at least the stuff that I do it's all involved in the Power Generation Industry and they make Mega Watt Generators used in Coal/Gas Fired Power Stations, Wind Turbines, Hydro and so on. Lots of fancy machines on the floor and no people unless Service Work is being performed or Raw Materials are being poured in one end and the finished product is being removed at the other. About 5 years ago they refitted this place which means pulling everything out and throwing it away then getting the new equipment in setting up the production floor and then leaving things in place for the next few years. About the only thing reused where the grates on the floors over the Cable Trenches and while they still use Coax as a Network Cable everything was re-pulled when they did the update. Things like Metal Shards and Cutting Oil have a nasty effect on the contents of those cable tench's. But here with the plant running it's all in how things are defined. The Company sees it as a Repair of a CNC Lathe where as Microsoft sees it as a Upgrade to a computer which effectively runs a CNC Lathe. Legal Definitions are a B1tch. :^0 Col

michaellashinsky
michaellashinsky

but are putting DOS on it, why can't you use the license you already own? Is it tied to the hardware? (If you are paying a retail price, it shouldn't be.)

wdewey@cityofsalem.net
wdewey@cityofsalem.net

I understand how to secure these systems, but a lot of people don't. There is also a "stick my head in the sand" type of attitude because of the cost and risk of fixing the issue. If you apply a patch to your system and lose two days of production because something broke then that can be a huge cost. Manufacturing tends to be a low margin field so building a lab environment that is close enough to the real production environment is expensive and may still not guarantee that no issues will happen. Security becomes very difficult on these types of devices and, to my point, just because a device is designed to run for decades at a time doesn't mean that is the an example other industries should follow. Bill

Deadly Ernest
Deadly Ernest

he maintains the computer systems on a whole bunch of computer controlled manufacturing equipment, stuff made to last 50 to 75 years and they hang off the network as well. In short, in a situation like that you do what the banks have done since they started using computerised banking systems back in the 1960s, you hire people with the skills to look after them and fix them in-house or go with an independent support service. If the system doesn't warrant that sort of expense, then maybe you don't need to worry about it. It all comes down to risk assessment and management.

wdewey@cityofsalem.net
wdewey@cityofsalem.net

An that attitude is what makes security so difficult. I work with a couple security researchers who have just started looking at Industrial Control systems in the last couple of years. These systems are designed to just work. The problem is that when you find a vulnerability in the system it will probably be there for another 5 to 10 years. How do you secure these systems then? Do you completely isolate them from the internet? Do you have people manually update stats and aggregate data? Just because a system is designed and will work for decades instead of years doesn't mean that it is an exemplary piece of software. The real issue with these systems is to reduce costs and improve visibility they are being hooked up to corporate networks. This makes them accessible to malicious people that may find some gain from manipulating them. Just ask Iran about their nuclear program. Bill

wdewey@cityofsalem.net
wdewey@cityofsalem.net

I have an old dos based game called betrayal at krondor. With a couple compatibility settings my nephew was able to easily get it running on Window 7. Sound and everything worked just like it did when I ran it in Win 95. Bill Bill

wdewey@cityofsalem.net
wdewey@cityofsalem.net

You said, "loaded software to allow the sound card, the cd-rom, and the more advanced actions of the graphics card to work." So by your own admission, in the early days you did load "drivers" or "software" to enable advanced functionality. Basic functionality is insufficient. Drivers are necessary and have been necessary even from the early days. Bill

Deadly Ernest
Deadly Ernest

have released updated versions of their standards and I no longer work in an area where I get them free, haven't for over a decade. Thus I don't have the current standards to reference and I threw out all my old stuff years ago due to having to winnow papers and the like after a divorce and having to move house a few times in short time periods. However, wikipedia has some of the stuff that you can look at; here's some links about the ITU and some of the ISOs - over the years the number of bodies involved has grown and it's hard to keep up with them if you aren't actively involved any more. http://en.wikipedia.org/wiki/International_Telecommunication_Union http://en.wikipedia.org/wiki/List_of_International_Organization_for_Standardization_standards One of the significant start points with the various IT standards is the Request for Comments - but there were many other sources, mostly committees of different sorts. http://en.wikipedia.org/wiki/List_of_RFCs Another wiki page that may help you is the one on the BIOS http://en.wikipedia.org/wiki/BIOS .............. In the days of the 286 / 386 / and 486 chips we used system with the ISA design, which is still the basis for most modern PCs. http://en.wikipedia.org/wiki/Industry_Standard_Architecture The standards for the ISA motherboards in the late 1980s included in the BIOS the commands to handle the basic graphics and keyboard signals, they did have some basic commands for the hard drives as well but nothing to run a mouse or a printer or a modem etc. When you built a system you noted on the information on the hard drive about the number of sectors and platters and the size and this data was entered into the BIOS, along with a lot of other parameters on the system and its hardware - - this was the days of MB sized HDDs, seriel keyboard and mouse. Once the system was built you installed MS-DOS or a similar OS. After DOS you loaded a program called Amouse so the mouse would work, you also loaded software to allow the sound card, the cd-rom, and the more advanced actions of the graphics card to work. Then you went in and made required adjustments to files like config.sys and autoexec.bat to get the best out of the system in the way the OS and the hardware interfaced. As the years passed the standards were improved and extended and so were the items included in the BIOS - commands for the mouse and cd-roms added, and the changes to EIDE allowed the inclusion of a single set of commands for running the hard drives. A lot has changed since then, but the basic stuff is still there and used. Classic examples are TCP, IP, FTP, Telnet, SMTP, ASCII, POP, Ethernet, ICMP, NTP, IMAP, IRC, DHCP and are still heavily used today. All of these,and many others, have command sets of the signals on how they're to work. Many have been extended over the years, but the initial baseline stuff is still there as they were originally created. An example of the types of commands in the signals is in the list in the wiki page on ASCII: http://en.wikipedia.org/wiki/Ascii The section on ASCII Control Characters has a list of the commands and their binary code to do things like carriage feed, start transmission, end transmission, etc. Similar sets of commands exist for each type of peripheral, the International Industry Standard set them out so that everyone would be working off the same page and use the exact same signals for relevant commands - some examples would be for a printer to start printing, feed a line, feed a page, stop printing, eject a page, etc. The idea behind the concept was to reduce the amount of work the IS had to do in translating commands between the programs and the hardware, as well as making it possible to have all the programs and hardware using the same commands and thus totally interchangeable. As hardware improves new commands etc are added to the standards and new versions issued, and new standards are also issued as they need to be. That's why we have standards for PCI, PCI-E, SATA, USB 1.0 and USB 2. etc, and HTML 1 through to HTML 5 as a few examples. ..................... Any software and hardware that's made to use the standards will work perfectly with any other software or hardware made to the standards without the need for drivers as they all speak the same command instructions. The incompatibilities I mention that Microsoft created are those that relate to certain instruction commands within Windows. They have changed those commands at different times and thus made hardware and software designed to work with one version not work with the other versions. That's why you have different hardware drivers for Win 9x to Win 2000/XP to Win Vista / 7 / 8. Now about using old software made to the Industry Standards on a modern OS made to the Industry Standards. Although I frequently dump old books and papers, I rarely toss out old software. Back in 1996 when I was doing a college course about Unix and Linux I was given a game that ran on Red Hat at that time. The last time I played it was back in 2008 when I moved house and found it during the move. I loaded it onto Ubuntu 8.04 and it worked perfectly well. I have a Minolta colour laser printer I bought back in 1995/6; over the years I've plugged it into an old Pentium 1 running Win 3.11 on DOS 6.2 and it just worked, no driver needed. I've plugged it into systems using Red Hat, Debian, SuSe, Ubuntu, SimplyMEPIS Linux, Free BSD, Zorin Linux and it just worked without any extra software needed. However it will NOT work on Win 2000 / XP or Win Vista as there are no drivers for it, and I have drivers to make it Work on Win 9x. Also Apple do a little of this sort of things with regards to some of their hardware too. .............. I've been working with various types of computers in various guises since I bought a Commodore 64 back in the 1970s - some as a hobby and some as paid employment - they've included mainframes, minicomputers, microcomputer which later became known as PCs. In some jobs I worked with the International Standards Organisations, and others I just got their paperwork as part of the job. Much of the information I've learned over the years has changed, and much is still the same. I've also done a lot of work outside the IT industry too. I've seen a lot of developments over the years and I shudder at the amount of the history of computing that's under attack for various political reasons and how much has not been fully documented. A lot of the situation today arises out of decisions made back in the mid 1990s and few know about the history behind them due to those involved retiring or dying. It's this longevity perspective that lets me see and comment on a lot of things that people are not aware of. Things like Microsoft saying that Windows 8 has greatly improved security and has many major improvements over everyone else, something they said about Win 7, Vista, Win XP SP3, Win XP, Win 2000, Win 98SE and Win 98. I see there are only few choices that can be made from that, either: 1. Microsoft Windows is now the most secure OS in the world - that's been proven wrong; or 2. Windows 95 was so unsecure it's not funny and all the versions since then have worked to fix all those issues; evidence is they have improved but are still well behind everyone else; or 3. Microsoft regular lie about security and improvements as they don't really care about anything beyond selling more copies of their software, both Windows and their applications. The evidence to date is the third choice. Microsoft has been improving security since 1998 they claim. Yet their security system are not yet up to the standards that Unix, Linux, and Mac have had since 1994 or before. One has to wonder why they can't do what everyone else can do. Arrgh, I best leave it there before this becomes a thesis. 1. Win

wdewey@cityofsalem.net
wdewey@cityofsalem.net

Deadly Earnest, I just wanted to say that I have appreciated your insights and opinions on this matter. I don't think that we are going to come to an agreement on this topic, which is fine, but I wanted to say that I appreciated the manor you conducted yourself. Sometimes these types of discussions can degenerate into more base types of communication and that didn't happen here. I'll probably read your reply to my last post, but I don't plan to post again. This is taking up too much free time and while interesting and insightful it isn't a priority. Take care! Bill

wdewey@cityofsalem.net
wdewey@cityofsalem.net

I appreciate hearing your opinion of what happened in early PC days, but I would also like to have some type of reference for the command set. I like to form my own opinion of these things from source material. Many of the devices you referenced (hard drives) just work with any OS. I have not ever seen a hard drive, mouse or keyboard that said "requires Windows XX". Where I have seen this is with Modem's and some video capture cards. These devices rely on functionality that is provided by Windows and would have been more expensive for manufacturers to build into the device. Just to make it more obvious, 3rd party manufacturers chose a cheap route to make money which caused incompatibilities with other OS's. You said "automatically recognize the basic level actions of standard components and peripherals". This is basic level functionality and, again, most people won't settle for basic level functionality. The ITU can not keep up with technology advancement so it is not possible to have a standard way of providing functionality of new capabilities (Draft N WAP's, etc.). These new technologies and functionality is that differentiates products so companies innovate, die or live on a very small margin copying other companies. "it is this introduced changes from the standards that means software designed to work on Win XP does not just load and work on Win 7 or Win 8" I can give you lots of examples where this is not true. There are several listed in this comment area. There are also a number of examples where this is true, but the same can be said for Mac's and Linux distributions. Developers make improvements to the kernel or support libraries and that can cause problems for applications that rely on that functionality. Again, this is true for all OS's not just Windows. "old software designed for use on Unix and Linux in the late 1990s runs perfectly well on the very latest versions of Unix and Linux because the command sets are to the industry standards" So you are telling me that every version of every application will run on the most current version of Linux? Many linux commands have not changed in the RESULT you get from them in 20 years, but have been continuously developed to provide increased functionality (VI, VIM - I loose track of all the different names and versions of this application because they usually put a VI alias that points to the current version). All you have to do is look at a change log to disprove this theory and this issue is the very bases of package managers such as aptitude. Aptitude helps you RESOLVE dependency issues, ie incompatibilities. If every Linux and Unix application just worked then you wouldn't need this. So, now I see you falling back to "core" functionality. You could argue the same for Windows. Starting in DOS 3 or 4 you could do a "dir /p" and it would show you a single page at a time of the file structure. You can issue this exact same command on windows 8 and get the exact same RESULT. Every OS changes and evolves and this causes applications issues that companies have to modify their applications to fix. This is not unique to MS and stating they do it just to make money is just narrow sighted. To be honest MS has really gone too far at times to help make applications run properly. There are some examples where they have customized how the OS handles a particular application in a non-standard way just so that there won't be compatibility issues such as (if I remember correctly) Sim City. I also know that the SAMBA team complained about how Excel made some funny calls to network shares that were non-standard but Windows would handle them properly. MS isn't perfect and I complain regularly about .Net versions, but saying every incompatibility is just a money making scheme is narrow sighted and wrong. .Net explanation: When .Net came out I remember it being touted as a cross windows platform compatibility library, but soon became tied to OS versions which threw out the compatibility capability. There are a lot of Linux applications that have been ported to Windows, but don’t retain all the functionality of the Linux version. Nmap is one example. Windows limits the number of threads that an application can spawn so Nmap runs slower on Windows than on Linux. This example is just to illustrate that there are fundamental differences between OS’s that are often times hard (ie expensive) to overcome. It does not always make business sense to port or build an application for another platform. I would like to see MS office on Linux, but I can’t see MS making money off of porting it. It would lose functionality (vb scripting which is an integral part of it’s capability) and many Linux users would be unwilling to spend money on it when (insert favorite office suite here) works just fine. Bill

Deadly Ernest
Deadly Ernest

because if you were you should know all this. However a very detailed history lesson, but cut back as much as I think I can and get the message delivered. In the beginning every hardware manufacturer and software company did things their own way. The CCITT, later called the ITU, the international standards body responsible for telecommunications etc organised a bunch of standards that all the hardware and manufacturer's were to use - some being the OSI model, OSI protocols, TCP/IP, SMTP, FTP, ISA, EISA, IDE, etc. They often lagged behind the actual hardware and software development activities. In the early microcomputers (later called personal computers then PCs) when you put it together you had to enter the into the BIOS system details of the various hardware, the most involved being the hard drives - plater numbers, sectors, etc - so the motherboard would know how to control the hard drive properly. You installed DOS and the other drivers needed for the peripheral hardware like a mouse etc. You also fine tuned files that told DOS how to work with the hardware of the motherboard so it got the best use of the RAM etc. The instruction commands for the hardware and protocols that came out of the various standards were collectively referred to as command sets, and still are. Many of the hardware command sets ended up being included in the BIOS so the motherboards could automatically recognise the basic level actions of standard components and peripherals, as the motherboards became more complex other command sets were included in the BIOS to help the motherboard to functions properly. This still happens, but the BIOS has the basic level commands and the higher function commands for the fancier peripherals are in the electronic controller cards of the peripherals or part of the OS. Due to advances the OS command sets have expanded, but the basic ones are supposed to be there. If you add a peripheral to a system with an older OS that doesn't have the commands for that peripheral or the higher functions, then extra software needs to be added to the OS, these are known as drivers (still). Thus a pre USB OS needs a USB driver added before it can use a USB device. One of the standards that came out was for all hard drives to recognise and accept the same set of command functions, this resulted in the hard drives having a small controlling pcb being included in their construction with that converted the command set instructions into machine language and also control the HDD internal operations. Similar standards came out for many other peripherals and plug-in cards. The standards had the various commands and signals listed - the wiki article n ASCII gives a good example of what a lot of the looked like. At the same time standards came out setting out the functions and processes of an operating system and programs. They included a set of command set instructions for common commands. The intent was to have all the programs issuing the same command for the same function and all the OSs would recognise the same commands. The long term intent was to make it possible for the one program to be written and run on any OS and the OS to tun any program written. For a short while in the early 1990s this system was in full use by all the major players in what was then known as the PC industry. All the new hardware and software was out of the box compatible with all the operating systems, programs, and hardware made to those standards. However, with the release of Windows 95 Microsoft pulled away from those standards and also some software standards as well. Microsoft took two applications (the graphics user interface and the Internet browser) and embed them into the OS in an attempt to have them work faster than if they were on the outside of the OS kernel security wall. They also incorporated some non-standard commands in the browser operations code (most of which was still there in MSIE 7 and starting to be taken out in MSIE 8). Another change MS made at that time was to NOT use the industry standard commands for interaction between the OS and the applications, they created a set of their own and insisted that anyone wanting to create software for use on Win 95 use their commands. MS also told the hardware manufacturers the same thing and pressured them to make hardware out of the box compatible with Windows 95 and not the industry standards. Many hardware manufacturers did as asked by MS due to the economic pressure applied. The result of the above was the inclusion of the notations "Windows compatible" on the hardware or software, and notes like "requires Windows 95 or later." Thus anyone wanting to use that hardware on a non-Win 95 system needed a driver for it, and anyone getting a peripheral made to the industry standard needed a Win 95 driver for it. Then with Win 2000 MS change their proprietary command set again, and thus you now had two Windows standards and sets of drivers. The same occurred with Win Vista, and will probably occur again with Win 9 or Win 10 - whenever MS want to introduce a new level of incompatibility. Another action MS took with Win 95, and they've kept up since, was to include fast back door access into the OS kernel functions for other MS application programs like MS Word, Excel etc. They also used proprietary command sets in those applications so they would NOT work on any OS except MS Windows. They also change those command sets when they change the Windows ones. The result is MS created incompatibilities between variants of MS Windows compatible software and hardware and the need for drivers for almost anything. ........ it is this introduced changes from the standards that means software designed to work on Win XP does not just load and work on Win 7 or Win 8 - as the commands from the application are NOT recognised by the newer OS. Now before you go off about newer hardware and commands, remember that the latest versions of Unix and Linux include all the newer hardware commands and work the hardware and the old software designed for use on Unix and Linux in the late 1990s runs perfectly well on the very latest versions of Unix and Linux because the command sets are to the industry standards and the latest not only have the commands for the newest stuff, but also the exact same commands as were created for the old stuff. Adherence to the industry standards means cross OS operation for the software without the need for any internal changes. ..................... Hope this helps you to understand the situation better and what I'm saying. I've been working and living with all this stuff since the days of DOS 2. It's only in recent years I've started to pull away from working heavily with MS Windows and MS Office, but my clients and friends won't let me drop it all, thus I keep checking out the new stuff so I can fix their new vendor supplied systems and software.

wdewey@cityofsalem.net
wdewey@cityofsalem.net

Ok, so the BASIC command set hasn't change, but how the OS interacts with the device does. If what you are saying is true then why do all hardware manufactures have different versions of their drivers or even write drivers to begin with? I would we willing to concede that a communication channel with the device shouldn't really change, but to get real functionality out of the device the OS has to know exactly how to interact with that specific hardware. That type of interaction is very dependent on low level system calls that the OS uses to provide a common interface into that type of device. Take printers for example. Printers have a UI that allows a user to select certain capabilities for a printer. That UI is provided as a part of the driver package (in Windows, I don't print much in Linux). Can that driver use the same code to provide that UI for every OS? Sure you could allow the OS to present the UI, but as a manufacturer how do you differentiate your device so that people will buy it? My device can do a 400X zoom, but the standard is only 300X so my device doesn't appear any better than my competitor. I think that you are thinking about this a little too simply. You could argue that the basic commands in C haven't changed in 30 years so all C programs should run on any platform. It's really not that simple. Are you talking about devices such as WinModems? The only devices that I have ever seen that only use a generic driver are mice and keyboards. Of course these devices really haven't changed in 20 years either other than the port that they plug into. If you are willing to accept 20 year old capabilities (such as VGA) then you probably don't need drivers, but who buys a device and would accept 20 year old capabilities. Could you provide a reference to this command set? Just curious since I have never heard of it before unless you are referring simply to the assembly language. Bill

Deadly Ernest
Deadly Ernest

them, while I also make money fixing the screw ups they create.

Deadly Ernest
Deadly Ernest

for hardware have NOT changed for almost 20 years - except within Windows. Yes, new commands have been added, which is why to add a USB device to a Win 9x system you have to add USB drivers as it's not part of the system Some hardware is made to the industry standard command set detailed in the early 1990s and they just plug and work with any OS that uses the industry standards commands, but any hardware designed to a specific proprietary standard does NOT need a driver for that OS and will need a driver for any other OS. That's why hardware listed as 'out of the box compatible with Win XP' just plugged in and worked with XP but needed drivers to work with anything else. I have a laser printer that was made in 1996 and it uses the Industry standard commands. It just plugged in and worked with my old Win 3.11 system when I got it, I needed drivers to work with Win 9x but no Win 2000 / XP drivers for it, yet it plugs in and works with any Unix, Linux, or Mac system as they use the industry standard command sets - while Windows hasn't since they walked away from the standards with Win 95. The same is true for all hardware. It's the use of the industry standard commands for monitors in the BIOS that allows them to have basic operation with any item, the newer fancy features will need drivers or not depending open which command set is in them and what OS they're hooked up to. The printer driver issue that arose with Windows came about from the fact that Windows has NOT used the industry standards for printers since win 3.11 and not all the printer manufacturers had the same level of expertise or information on the Windows systems to make the drivers for Windows. - In short, MS created the problem in the first place.

Gisabun
Gisabun

I see you are definitely anti-Microsoft. Not a Linux zealot by chance? You don't have to use Windows if you are.

wdewey@cityofsalem.net
wdewey@cityofsalem.net

How drivers work (access hardware) can and does change. Linux, Mac's all have these issues (just look up driver error for ANY OS in existence, Linux is especially bad about this with major kernel upgrades). I know that one of the really major changes with Server 2008 was that it had the ability to isolate print driver so that an error with one driver wouldn't affect other printers (essentially bringing down the whole print server). People have been complaining about blue screens in Windows for years and one of the major problems was hardware driver issues which is why Microsoft addressed this in Vista and higher operating systems. You can say that Microsoft rarely changes how code works to fix issues, but that is pretty much what they did with Vista and is why there were so many compatibility issues. I just want to point out that people complain both because they fixed issues as well as because the didn't fix issues. It's really a no win situation because you will always have people that are unhappy. Bill Edited to add last paragraph

Deadly Ernest
Deadly Ernest

a bug or flaw in how the code works, something Microsoft have rarely done - they usually just patch it. However, there is NO reason to change the commands from the IS to the hardware about the actions the hardware take, in fact, there is NO valid reason to have the commands as anything but the international industry standards - yet Microsoft do NOT use the international industry standards, and haven't for almost two decades. Microsoft also change them now on then on a whim - which is why you need different hardware drivers for a device for Win 9x to Win XP to Win 7 / 8. It is these changes that causes almost all the incompatibility issues with programs. edit to add - other changes include the way programs interact with the OS as well -and wouldn't be an issue if MS used the standard command sets and procedures.

wdewey@cityofsalem.net
wdewey@cityofsalem.net

Over the years people discover design flaws that limit capabilities (security, flexibility, stability). Often times these design flaws when corrected cause applications that rely on those particular capabilities to break. Some times it is possible to do some work around stuff to get it running, but sometimes it isn't. I can tell you that I do some security work and when we hook an XP box it makes my day because it is so much easier to manipulate than any of the later MS OS's. Sure, stay on XP, but don't complain if your computer gets taken over and all your data shipped off to a different country. Bill