Native mode generally refers to one of two things relating to computer software or hardware. When software runs natively, it runs on the computer’s actual hardware rather than through emulation or through the intervention of another program. This state is common for most normal computer programs running on a system. The other usage means that a piece of hardware or software is specifically designed to run in a certain environment. In many ways, this is a more general version of the first usage, but it involves other situations such as compatibility mode.
The biggest factor in the first usage is emulation. An emulator may mimic a specific set of hardware, which will allow non-native programs to run in an environment in which they are comfortable. Other forms of emulations are possible, but hardware emulation has the biggest impact on native mode.
The other factor that influences this part of native mode is software support systems. These programs support another program; this is different from true emulation because the running software functions on the existing hardware, but the program won’t function without the other program running. This situation is much less common than emulation, but it does happen in a few places, such as web browsers. Essentially, programs will run inside a browser but not outside.
The other aspect of native mode centers on compatibility mode. This is a method used by operating systems to extend their functionality back into older programs. As systems and hardware advance, the calls made by older systems fall out of favor or are used for other reasons. Compatibility mode allows a modern system to transfer the information back and forth with older technology.
Compatibility mode may seem the same as an emulator, but it is actually quite different. Emulators create an artificial environment that allows non-native programs to run. Compatibility mode acts more like a translator, taking information from one system and converting it into the language used by the other.
All of these systems create non-native situations. Native mode is defined as a system that doesn’t use any of these additional compatibility processes. As long as a program is designed to work on a specific platform and doesn’t require any software support or translation, it is native. As soon as a program falls outside of these requirements, it is non-native.
The fact that a program runs in native mode in one situation doesn’t mean that it is always a native program. Should the same program run on two different operating systems, it may run natively on one but require emulation on the other. In addition, as a program ages, it will eventually require compatibility mode just to function correctly.