Computing platform

Computing platform
A computing platform, digital platform, or software 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 for 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 on 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
ChromeOS
Unix and Unix-like
Linux
EulerOS
FreeBSD, NetBSD, OpenBSD
macOS
IBM AIX
HP-UX
Solaris and illumos
Tru64 UNIX
IBM i
Microsoft Windows
OpenVMS
Classic Mac OS - discontinued in 2011
OS/2
QNX
Midrange computers with their custom operating systems
Mainframe computers with their custom operating systems
VM
z/OS
Mobile
Android
Bada - discontinued in 2013
BlackBerry OS - discontinued in 2013
BlackBerry 10 - discontinued in 2022
Embedded Linux
Fire OS
Firefox OS - discontinued in 2016
HarmonyOS on Huawei smartphones models and Huawei MatePad tablets
iOS
iPadOS
kaiOS
LuneOS
Newton OS on Newton devices from Apple
Palm OS - discontinued in 2011
Symbian - discontinued in 2012
Sailfish OS
Tizen
Ubuntu Touch
WebOS
Windows Mobile - discontinued in 2010
Windows Phone - discontinued in 2017
Software examples
Shockwave
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
Smartface
Universal Windows Platform
Windows Runtime
HMS Core
Cangjie
Hardware examples
ARM architecture based devices
Raspberry Pi or Gumstix full function miniature computers
ARM servers with Unix-like systems such as Linux or BSD variants
ChromeBooks from various manufacturers
IBM PC compatible systems
IBM System p and IBM Power Systems computers
IBM z/Architecture mainframes
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
Supercomputer architectures
See also
Cross-platform software
Hardware virtualization
Third platform
Platform ecosystem
References
External links
Ryan Sarver: What is a platform?