Computing platform

From Wikipedia, the free encyclopedia - View original article

 
Jump to: navigation, search

A computing platform is, in the most general sense, whatever pre-existing environment a piece of software is designed to run within, obeying its constraints, and making use of its facilities. Typical platforms include a hardware architecture, an operating system (OS) and runtime libraries.[1]

Binary executables have to be compiled for a specific hardware platform, since different central processor units have different machine codes. In addition, operating systems and runtime libraries allow re-use of code and provide abstraction layers which allow the same high-level source code to run on differently configured hardware. For example, there many kinds of data storage device, and any individual computer can have a different configuration of storage devices; but the application is able to call a generic save or write function provide by the OS and runtime libraries, which then handle the details themselves. A platform can be seen both as a constraint on the application development process — the application is written for such-and-such a platform — and an assistance to the development process, in that they provide low-level functionality ready-made.

Platforms may also include:

Some architectures have multiple layers, with each layer acting as a platform to the one above it. In general, a component only has to be adapted to the layer immediately beneath it. For instance, a java program has to be written to use the java virtual machine (JVM) and associated libraries as a platform, but does not have to be adapted to run for the Windows, Linux or Macintosh OS platforms. However, the JVM, the layer beneath the application, does have to be built separately for each OS.[8]

Operating system examples[edit]

Mobile[edit]

Android, a popular mobile operating system

Software frameworks[edit]

Hardware examples[edit]

Ordered roughly, from more common types to less common types:

See also[edit]

References[edit]

External links[edit]