Being involved in creation of tools for 64-bit application developers, I follow the situation in the world. Processors being released, operating systems and technologies. I need it to understand the tendencies of this industry's development and make plans according to them.
Some years ago, in 2007, the director of Microsoft Windows Server unit Bill Leing announced: "Windows Server 2008 will be the last 32-bit operating system. All the following versions of operating systems for Microsoft servers after Windows Server 2008 will be 64-bit". At that time, we placed this quotation on the Viva64 product's page and we hope it did stimulate program developers to make 64-bit versions of their applications.
Windows Server 2008 operating systems released in February, 2008, was presented in 32-bit and 64-bit versions.
Figure 1 - Windows Server 2008 logo
But the next version Windows Server 2008 R2 released in July, 2009, is available only in 64-bit version!
Figure 2 - Windows Server 2008 logo
It seems that we will really see no 32-bit versions of server operating systems by Microsoft Microsoft. And this is understandable, for costs on maintenance for Microsoft will (gradually) decrease without 32-bit version.
But Microsoft has not stopped at ceasing to release the 32-bit version of the operating system.
Many administrators are aware of a relatively new installation and operation mode of the operating system's server version called Server Core.
Figure 3 - Installation in Server Core mode
It is this mode that participants of "Windows vs Linux" wars had been speaking about for a long time. One of the arguments supporters of using Linux on servers resort to is the ability to install a server operating system without GUI. So, here is this ability available now in Windows Server too. Installation in this mode allows you to get only the command line without GUI.
This ability (installation of Server Core) appeared in Windows Server 2008. But in Windows Server 2008 R2, there is an innovation bringing the 64-bit future closer. Support of 32-bit application invoke has become optional for Windows Server 2008 R2 (Server Core)! And by default this support is switched off. So, when trying to launch a 32-bit application in Server Core mode, the user will see the message about launch failure. Of course, you may add support of 32-bit programs:
start /w ocsetup ServerCore-WOW64
In common (Full Installation) mode, 32-bit applications can be launched by default, but in Server Core they cannot.
One can understand the causes of this. Besides the already mentioned difficulty of maintaining several platforms, 64-bit programs are, as a rule, safer.
The tendency is obvious. Programmers have less and less opportunities to postpone release of 64-bit versions of their applications.
In forums, people often say that 64-bit versions of programs consume a larger amount of memory and stack. Saying so, they usually argue that the sizes of data have become twice larger. But this statement is unfounded since the size of most types (char, short, int, float) in the C/C++ language remains the same on 64-bit systems. Of course, for ...
One of the problems that 64-bit software developers have to face is overflows of 32-bit variables in very long loops. PVS-Studio code analyzer is very good at catching issues of this type (see the Viva64 diagnostic set). A lot of questions concerning variable overflows are asked at StackOverflow.com. But since my answers may be treated as pure advertisement, rather than ...
We have already written in our articles about one of the problems of code migration to 64-bit systems relating to incorrect overload of virtual functions. For example, our article "20 issues of porting C++ code on the 64-bit platform" was published in March, 2007 (although is still relevant). It described the issue of virtual functions. The point of the problem ...