Native (computing)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computing, Native software or data-formats are those that were designed to run on that operating system. For example, a Game Boy receives its software through a cartridge[disambiguation needed] and on this cartridge, is the code that runs natively on the Game Boy.[1] In a more technical sense, native code is code written specifically for a certain processor.[2] The only way to run this code on another processor is to use an emulator, tricking the program into thinking it's using that same processor.[3] This usually comes at the cost of speed.[4]

Applications[edit]

Something running on a computer natively means that it is running without any external layer requiring fewer software layers. For example, in Microsoft Windows the Native API is an application programming interface specific for Windows NT kernel, which can be used to give access to some kernel functions, which cannot be directly accessed through a more universal Windows API.

Operating systems[edit]

Used to designate the lowest level of virtualization or the absence of virtualization. For instance the term “Native VM” is used to ensure reference to the lowest level operating system, the one that actually maintains direct control of the hardware when multiple levels of virtualization occur.

Machine code[edit]

Machine Code, also known as native code, is a program which is written in machine language. Machine code compromises of hexadecimal or binary instructions.[5] These instruction sets are than 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 Java, which gets gets translated into assembly code, which than translates it into machine code. Since each CPU is different, programs need to be recompiled or rewritten in order to work on that CPU.[8]

Data[edit]

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.

References[edit]

  1. ^ "Nintendo Game Boy - Game Console - Computing History". www.computinghistory.org.uk. Retrieved 2019-11-22.
  2. ^ "What is native code? - Definition from WhatIs.com". SearchAppArchitecture. Retrieved 2019-11-22.
  3. ^ Pot, Justin. "Why Are Video Game Emulators So Important? (Because They Preserve Our History)". How-To Geek. Retrieved 2019-11-22.
  4. ^ "How Does Emulation Work and Why Is It So Slow?". MakeUseOf. 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.