What does "native" actually mean

  • Thread starter Thread starter PhilMckracken
  • Start date Start date
P

PhilMckracken

New member
This term is used a lot in reference to computer based systems. What does it actually mean. Does it refer to some sort of proprietary system. Please explain if you know.
 
Native processing means it is done by the computer's CPU. In a ProTools TDM system, for example, processing is done on dedicated PCI cards. Much more powerful that way although host/native based processing is getting better all the time as CPU's get faster and handle more instructions/calculations.
 
there is also another meaning that refers to computers more broadly, not just audio applications.
For example, when Apple develops a new processor or a new operating system - like they did a year ago with Mac OS 10 - there is a phase when applications are divided into "native" and emulated" versions. For example, Microsoft Office for OS10 is native, meaning that it works directly with OS 10 and its hardware. On the other hand, older applications will also run on the new system, but in "emulated" mode, meaning that the new system (Mac OS 10) is pretending to be the old system (Mac OS 9), because if not the old application will crash as it doesn't know how to talk to this new entity. The ultimate goal of Apple will be that everybody rewrites their applications in native code, so they take advantage of all the features on the new systems. That's why they are working hard to make Protools Mac OS 10 native.


So "native code" will mean a piece of code written directly for a specific computer agent (an os, a processor, whatever).
I remember that previous versions of the Mac OS had some parts that were native to the new processor (the Power PC at that time) while others were still native for the old processor (the Motorola 68k family). So that last code was not native for that processor. When there's some legacy code the newer agent makes an effort and tries to understand this older guy talking in an archaic language, and tries to deliver the goods anyways. Most of the time it can, but not always. Returning to the Protools example, they can just work in emulation mode cause that won't be enough for the application to interact with the hardware.


Hope it makes sense. Cheers, Andrés
 
I'm not sure if this directly relates to Andrés point, but some Wave Native plugins have the ability to sense which processor you're running and optimize the software commands to match it. So, if you have an old pre-MMX CPU the software wouldn't try to send those types of instructions, but would automatically take advantage of them if you upgraded your computer. Maybe you could call this "super native"?

barefoot
 
you're right, Barefoot. When Apple made the change from 68k processors to the Power PC family, the applications came in 3 flavours:

1) The 68k version
2) The PPC version
3) The Fat version

The Fat version was a bigger one that basically had both codes, so when the application knew what kind of processor it was working with, he runned the 68k or the PPC version. Would that be "smart native"?

At the beginning the FAT version was the most used. When people traded their old macs for new ones, the PPC version became the most popular. 68k versions are still in use by some people who have older machines that can't run newer OS or have little memory. One example of this is the use of a small machine to make a web server or a proxy.

Cheers, Andrés
 
What did you mean by "Legacy"

Andres, thanks for the explanation, in fact, thank you all, that was very informative. However, Andres used the term "Legacy" in his definitions and I am wondering in this context what he meant by Legacy. Did that mean the original or primary version of a code or something else?
 
suppose I am running my old Macintosh:
-a Power Mac 7300 (year 1997)
-with a Motorola 604e processor,
-and with Apple's OS 7.5

Near that time, the guys at Digidesign were selling (actually giving for free) Protools 4.3. That version of Protools was native to that system, since it was designed and coded to work with it.

Now suppose I grab the CD that the Digi guys sent me for free (really, and to Argentina!) with Protools 4.3 and install it on my current Mac:
-a Mac with a G4 processor (year 2000),
-running Apple's OS 9.1

For this mac, Protools 4.3 is legacy code cause it will surely address the machine in a way that was meant to address the older machine. So the new machine takes the effort to "understand" this legacy code and make something useful with its instructions. Meanwhile, the developers at Digidesign recoded and made a new version, Protools 5, which is native to the new machine.

When there are big changes on the product race, you have to recode everything to work with the new machines. Following the example, Apple's OS 10 is a whole new system that is based in a whole different platform (Unix). So even if it has a "Classic Mode" that allows you to use legacy (OS9 and lower) applications, there are some tasks that can't be translated and the applications that do them simply won't work. Protools is an example of it. The current version of Protools cannot work with System 10. For Protools to work in OS10 Digidesign has to make a new, OS 10 native version of Protools. That'll be Protools 6, which is in the works.

It's very important for computer manufacturers to make sure that software developers will give the market newer, native versions of the old, legacy applications at the same time they launch their new machines. This will push users to upgrade and buy again.
 
Back
Top