Computing platform
A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

A platform can be seen both as a constraint on the software development process, in that different platforms provide different functionality and restrictions; and as an assistant to the development process, in that they provide low-level functionality ready-made.  For example, an OS may be a platform that abstracts the underlying differences in hardware and provides a generic command for saving files or accessing the network.

Components
Platforms may also include:

 Hardware alone, in the case of small embedded systems. Embedded systems can access hardware directly, without an OS; this is referred to as running on "bare metal".
 A browser in the case of web-based software. The browser itself runs on a hardware+OS platform, but this is not relevant to software running within the browser.
 An application, such as a spreadsheet or word processor, which hosts software written in an application-specific scripting language, such as an Excel macro. This can be extended to writing fully-fledged applications with the Microsoft Office suite as a platform.
 Software frameworks that provide ready-made functionality.
 Cloud computing and Platform as a Service. Extending the idea of a software framework, these allow application developers to build software out of components that are hosted not by the developer, but by the provider, with internet communication linking them together. The social networking sites Twitter and Facebook are also considered development platforms.
 A virtual machine (VM) such as the Java virtual machine or .NET CLR. Applications are compiled into a format similar to machine code, known as bytecode, which is then executed by the VM.
 A virtualized version of a complete system, including virtualized hardware, OS, software, and storage. These allow, for instance, a typical Windows program to run on what is physically a Mac.

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.

Operating system examples

Desktop, laptop, server

 AmigaOS, AmigaOS 4
 Chrome OS
 FreeBSD, NetBSD, OpenBSD
 IBM i
 Linux
 Microsoft Windows
 OpenVMS
 Classic Mac OS - discontinued in 2011
 macOS
 OS/2
 Solaris
 Tru64 UNIX
 VM
 QNX
 z/OS

Mobile

 Android
 Bada - discontinued in 2013
 BlackBerry OS - discontinued in 2013
 Fire OS
 Firefox OS - discontinued in 2016
 iOS
 iPadOS
 Embedded Linux
 Palm OS - discontinued in 2011
 Symbian - discontinued in 2012
 Tizen
 WebOS
 LuneOS
 Windows Mobile - discontinued in 2010
 Windows Phone - discontinued in 2017
 kaiOS

Software examples

 Binary Runtime Environment for Wireless (BREW)
 Cocoa
 Cocoa Touch
 .NET
 Mono
 .NET Framework
 Silverlight
 Flash
 AIR
 GNU
 Java
 Java ME
 Java SE
 Java EE
 JavaFX
 JavaFX Mobile
 LiveCode
 Microsoft XNA
 Mozilla Prism, XUL and XULRunner
 Mozilla WebExtensions API is modeled after Google Chrome's API. Thus Firefox extensions are now largely compatible with their Chrome counterparts.
 Web platform
 Oracle Database
 Qt
 SAP NetWeaver
 Shockwave
 Smartface
 Universal Windows Platform
 Windows Runtime

Hardware examples

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

 Commodity computing platforms
 ARM architecture based devices
 Android smartphones
 iPhone smartphones and iPad tablet devices running iOS or iPadOS, from Apple
 Macintosh computers using Apple silicon.
 Raspberry Pi or Gumstix full function miniature computers with Linux
 ARM servers with Unix-like systems such as Linux or BSD variants
 Newton devices running the Newton OS, from Apple
ChromeBooks from various manufacturers
 Wintel, that is, Intel x86 or compatible personal computer hardware with Windows operating system
 Macintosh, custom Apple Inc. hardware and Classic Mac OS and macOS operating systems, originally 68k-based, then PowerPC-based, then x86-based, now migrated to Apple silicon with ARM architecture CPUs
 x86 with Unix-like systems such as Linux or BSD variants
 CP/M computers based on the S-100 bus, maybe the earliest microcomputer platform
 Video game consoles, any variety (PlayStation, Xbox, Nintendo)
 3DO Interactive Multiplayer, that was licensed to manufacturers
 Apple Pippin, a multimedia player platform for video game console development
 Non-commodity RISC or Itanium processor based machines
 Unix variants or Unix-like systems
 SPARC architecture computers running Solaris, illumos, or Linux operating systems
 POWER ISA, PowerPC, or Power ISA computers running IBM AIX or Linux operating systems
 Itanium computers running HP-UX
 DEC Alpha machines computers Tru64 UNIX
 PowerPC or Power ISA computers running IBM i
 DEC Alpha and Itanium computers running OpenVMS
 Midrange computers with their custom operating systems
 Mainframe computers with their custom operating systems, such as IBM z/OS
 Supercomputer architectures

See also

 Cross-platform
 Platform virtualization
 Third platform
 Platform ecosystem

References

External links

 Ryan Sarver: What is a platform?