In Citrix AppDNA engineering, we assess all new versions of Windows for application compatibility issues. The various methods we use include traditional testing and validation, as well as working from Microsoft documentation.
The AppDNA team does however also dig a bit deeper to look at the application compatibility profile of the new operating system to ensure we are not missing something important. This sometimes highlights some interesting areas of research in our hunt for application compatibility issues. Take a view behind the scenes to see how AppDNA engineering builds accurate, automated application compatibility algorithms.
How different is Windows 8.1 from Windows 8 and the respective server systems?
Some Windows 8 to 8.1 feature additions or operating system improvements have been well documented in other blogs, for example, Paul Thurrott’s: “Hands-On with Windows 8.1” . Aside from those noted changes, the AppDNA team’s analysis revealed some minor changes to the API footprint and a bit of file system re-organisation. Windows 8 and Windows 8.1 (and Windows Server 2012 / Windows Server 2012 R2) are essentially the same product “under-the-hood”.
How do we reach this conclusion?
- Citrix works closely with Microsoft in understanding the changes to the new operating systems
- The AppDNA team tests a random sample of applications to ensure that there are no major shifts in our expected results (100 test apps validated so far)
- We look “under-the-hood” to see if there are changes to the file system and APIs
Windows 8 to 8.1 Sample Data
In order to do the low level analysis we need to produce the difference between the two operating systems, using AppDNA product technology.
It looks as follows:
The above sample data can be summarized as:
|Type||Windows 8.1||Server 2012 R2|
|Removed APIs(Import Address Table vs. Export Address Table)||2394||266|
*The number of removed files may look large but it should be noted that some of these are a re-organisation. For example moving system files to different folders should have no impact since these paths will still be in the DLL search path.
The removed APIs are of more interest since there appears to be a magnitude of 10 more removed APIs on the client OS than on the server OS, since we expect these to be similar in terms of the APIs that they provide (or have been removed).
However at a deeper inspection of the data, this can be easily explained. It seems that ‘SystemFolder\migwiz\wet.dll’ (Migration Wizard, which is client side) has a number of changes/removed APIs but it seems they are name mangled. This change is probably not relevant, in fact in this folder alone we have 1088 removed APIs. Doing a manual check of the operating system reveals that these files exist, so it must be the non-deterministic nature of name mangled API exports.
Here is a snippet of the sample data:
Leaving no stone unturned, the AppDNA team then assessed all of the remaining APIs, row by row, to double check that we had not missed anything. Then we found something odd…
We found a whole bunch of 16 bit WOW layer APIs missing; however the files were present:
This is strange since we believe that Windows 8.1 x86 supports 16 bit executables like predecessor operating systems did.
So why did we have this disparity?
We compared more of the file data and found that these files all had the same hashes which mean these are stubs on the file system. So we installed and ran a 16 bit application to see what would happen and discovered the following prompts:
This is not a major issue it now seems 16 bit support is a “Windows Feature” and requires elevation to install. Most users will be standard users, so unless this is enabled on the build, they will not be able to run the application. This is really important in a well-managed secure desktop environment, and this is one type of issues AppDNA will highlight in the Citrix AppDNA product update for Windows 8.1 support.
In fairness, you always needed administrative privileges on Windows 8 to “enable” 16 bit applications. However on Windows 8, the files were in place already and a setting change was all that was needed.
Is there anything else relevant?
Without going into every change, we found it is worth noting that there are changes to some core DLLs. For example, KernelBase.dll has 20 removed APIs and kernel32.dll has 61 removed APIs.
Applications that use these APIs will fail, but since these are all undocumented APIs, we expect that most apps will likely not be affected. However, some ‘bad’ apps that rely on these undocumented APIs will fail. The only way to be certain of these compatibility issues is by performing an analysis using Citrix AppDNA application compatibility software.
Windows 8 and Windows 8.1, and their respective server counterparts for the most part are the same. As with any new operating system there are changes, but the impact seems minimal in light of what we found, so Windows 8.1 is as compatible as Windows 8 with the range of new published features.
Check out what AppDNA can do for Windows 8 application compatibility today, download the no-charge AppDNA application migration trial edition .