Jump to content

Native (computing)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Stevebroshar (talk | contribs) at 20:30, 27 April 2025 (Cloud computing: Remove low-value words ... and debatable info). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Native software is built to be executed directly by processors that implement a compatible instruction set.[1]

A program that runs natively on one platform is runnable on another platform via an emulator if an emulator is available and, generally, with significant runtime speed degradation.[2] For example, games for a Game Boy (typically distributed as a cartridge), generally run natively on a Game Boy which is relatively incompatible with other computer platforms.[3] To run such a game on another processor, software that emulates the Game Boy hardware is required.[4]

Cross-platform software can run on multiple processors although possibly requiring it to be re-built for different target systems.

Application

A native application uses the minimal number of software layers. For example, the Windows Native API is an application programming interface specific for the Windows NT kernel, which provides access to some kernel functions which cannot be directly accessed through the more universal Windows API.

Operating system

A native operating system implies the absence of virtualization or virtualization at its lowest level. For example, with multiple levels of virtualization, the lowest level operating system – the one that actually maintains direct control of the hardware – is referred to as a "Native VM".

Machine code

Machine code, also known as native code, is a program which is written in machine language. Machine code is usually considered the lowest level of code for a computer, that, in its lowest level form, is written in binary (0s and 1s), but is often written in hexadecimal or octal to make it a little easier to handle.[5] These instruction sets are then interpreted by the computer. With this, there is no need for translation. machine code is strictly numerical and usually isn't what programmers program in, due to this complex nature.[6] Machine code is also as close as you can get to the processor, so using this language, you are programming specifically for that processor as machine code for each processor may differ.[7] Typically programmers will code in high-level languages such as C, C++, Pascal, (or other directly compiled languages) which gets translated into assembly code, which then translates it into machine code (or in most cases the compiler generates machine code directly). Since each CPU is different, programs need to be recompiled or rewritten in order to work on that CPU.[8]

Data

Applied to data, native data formats or communication protocols are those supported by a certain computer hardware or software, with maximal consistency and minimal amount of additional components.

For example, EGA and VGA video adapters natively support code page 437. This does not preclude supporting other code pages, but it requires either a font uploading or using graphic modes.

Cloud Native

Cloud native refers to the approach of building, deploying, and managing applications in cloud computing environments – for software optimized for running on a cloud-based platform.

References

  1. ^ "What is native code? - Definition from WhatIs.com". SearchAppArchitecture. Retrieved 2019-11-22.
  2. ^ "How Does Emulation Work and Why Is It So S". MakeUseOf. Retrieved 2018-11-22.
  3. ^ "Nintendo Game Boy - Game Console - Computing History". www.computinghistory.org.uk. Retrieved 2019-11-22.
  4. ^ Pot, Justin. "Why Are Video Game Emulators So Important? (Because They Preserve Our History)". How-To Geek. Retrieved 2019-11-22.
  5. ^ "What is machine code? Definition and examples". Market Business News. Retrieved 2019-11-23.
  6. ^ "What is machine code? Definition and examples". Market Business News. Retrieved 2019-11-23.
  7. ^ Beal, Vangie. "What is Machine Language? Webopedia Definition". www.webopedia.com. Retrieved 2019-11-23.
  8. ^ Manzoor, Amir (2012-03-19). Information Technology in Business. Amir Manzoor. ISBN 978-1-4699-9188-7.