Native (computing): Difference between revisions

Content deleted Content added
I rewrote and expanded on the lead section. I also made sure to back everything with links as that is something this page is lacking.
Removed machine code section since is quite far off topic
 
(48 intermediate revisions by 32 users not shown)
Line 1:
{{see also|Native and format}}
{{Unreferenced|date=December 2009}}
{{Short description|Software that operates directly in a given context}}
{{ContextOriginal research|date=February 20162023}}
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 (electronic)|cartridge]] and on this cartridge, is the code that runs natively on the Game Boy.<ref>{{Cite web|url=http://www.computinghistory.org.uk/det/4033/Nintendo-Game-Boy/|title=Nintendo Game Boy - Game Console - Computing History|website=www.computinghistory.org.uk|access-date=2019-11-22}}</ref> In a more technical sense, native code is code written specifically for a certain [[Processor (computing)|processor]].<ref>{{Cite web|url=https://searchapparchitecture.techtarget.com/definition/native-code|title=What is native code? - Definition from WhatIs.com|website=SearchAppArchitecture|language=en|access-date=2019-11-22}}</ref> 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.<ref>{{Cite web|url=https://www.howtogeek.com/347530/the-importance-of-emulation-for-games-preservation/|title=Why Are Video Game Emulators So Important? (Because They Preserve Our History)|last=Pot|first=Justin|website=How-To Geek|language=en-US|access-date=2019-11-22}}</ref> This usually comes at the cost of speed.<ref>{{Cite web|url=https://www.makeuseof.com/tag/how-does-emulation-work/|title=How Does Emulation Work and Why Is It So Slow?|website=MakeUseOf|language=en-US|access-date=2019-11-22}}</ref>
'''Native''' describes a computing system as operating directly with an underlying technology; with no intervening communication or translation layers.
 
== ApplicationsNative software ==
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]].
 
Native software is [[software build|built]] to be [[Execution (computing)|executed]] directly by [[Processor (computing)|processors]] that implement a compatible [[instruction set]].<ref>{{Cite web|url=https://searchapparchitecture.techtarget.com/definition/native-code|title=What is native code? - Definition from WhatIs.com|website=SearchAppArchitecture|language=en|access-date=2019-11-22}}</ref> 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.<ref>{{Cite web|url=https://www.makeuseof.com/tag/how-does-emulation-work/|title=How Does Emulation Work and Why Is It So S
== Operating systems ==
|website=MakeUseOf|language=en-US|access-date=2018-11-22}}</ref> For example, games for a [[Game Boy]] (typically distributed as a [[ROM cartridge|cartridge]]), generally run natively on a Game Boy which is relatively incompatible with other computer platforms.<ref>{{Cite web|url=http://www.computinghistory.org.uk/det/4033/Nintendo-Game-Boy/|title=Nintendo Game Boy - Game Console - Computing History|website=www.computinghistory.org.uk|access-date=2019-11-22}}</ref> To run such a game on another processor, software that emulates the Game Boy hardware is required.<ref>{{Cite web|url=https://www.howtogeek.com/347530/the-importance-of-emulation-for-games-preservation/|title=Why Are Video Game Emulators So Important? (Because They Preserve Our History)|last=Pot|first=Justin|website=How-To Geek|language=en-US|access-date=2019-11-22}}</ref>
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.
 
[[Cross-platform software]] can run on multiple processors although possibly requiring it to be re-built for different target systems.
== Machine code ==
{{expand section|date=February 2012}}
Native [[operating system]], '''native''' [[instruction set]], etc., in application to a computer [[central processing unit|processor]] means that the corresponding item was implemented specifically for the given model of the computer or [[microprocessor]], as opposed to [[Emulator|emulation]] or [[compatibility mode]].
 
== DataNative API ==
SomethingA running on anative [[computerapplication programming interface]] natively(API) meansprovides thatdirect itaccess isto running without any external layer requiring feweran softwareunderlying layerstechnology. For example, inthe [[Microsoft Windows]] the [[Native API]] is an [[application programming interface]] specific for the [[Windows NT]] kernel, which can be used to giveprovides access to some kernel functions, which cannot be directly accessed through athe more universal [[Windows API]].
 
== Native VM ==
A native [[virtual machine]] (VM) runs directly on hardware; without virtualization or virtualization at its lowest level. For example, with multiple levels of virtualization, the lowest level operating system {{endash}} the one that actually maintains direct control of the hardware {{endash}} is referred to as a "Native VM".
 
== Native data ==
{{expand section|date=February 2012}}
Applied to [[data (computing)|data]], native [[data type|data formats]] or [[communication protocol]]s are those supported by a certain [[computer hardware]] or software, with maximal consistency and minimal amount of additional components.
 
For example, [[Enhanced Graphics Adapter|EGA]] and [[VGA]] video adapters ''natively'' support [[code page 437]]. This does not preclude supporting other [[code page]]s, but it requires either a [[VGA-compatible text mode#Fonts|font uploading]] or using [[All Points Addressable|graphic modes]].
 
== Cloud Native ==
[[Category:Computer jargon]]
'''Cloud native''' refers to the approach of building, deploying, and managing applications in cloud computing environments {{endash}} for software optimized for running on a cloud-based platform.
 
==References==
{{software-eng-stub}}
{{Reflist}}
 
[[Category:Computer jargon]]