A computing platform is the environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser or other underlying software, as long as the program code is executed in 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 assistance 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
- FreeBSD, NetBSD, OpenBSD
- Linux
- Microsoft Windows
- OpenVMS
- Classic Mac OS
- macOS
- OS/2
- Solaris
- Tru64 UNIX
- VM
- QNX
Mobile
- Android
- Bada
- BlackBerry OS
- Firefox OS
- iOS
- Embedded Linux
- Palm OS
- Symbian
- Tizen
- WebOS
- Windows Mobile
- Windows Phone
Software frameworks
- Binary Runtime Environment for Wireless (BREW)
- Cocoa
- Cocoa Touch
- Common Language Infrastructure (CLI)
- Mono
- .NET Framework
- Silverlight
- Flash
- AIR
- GNU
- Java platform
- Java ME
- Java SE
- Java EE
- JavaFX
- JavaFX Mobile
- LiveCode
- Microsoft XNA
- Mozilla Prism, XUL and XULRunner
- Open Web Platform
- Oracle Database
- Qt
- SAP NetWeaver
- Shockwave
- Smartface
- Universal Windows Platform
- Windows Runtime
- Vexi
Hardware examples
Ordered roughly, from more common types to less common types:
- Commodity computing platforms
- 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, now migrated to x86
- ARM architecture based mobile devices
- iPhone smartphones and iPad tablet computers devices running iOS, also from Apple
- Gumstix or Raspberry Pi full function miniature computers with Linux
- Newton devices running the Newton OS, also from Apple
- 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
- RISC processor based machines running Unix variants
- SPARC architecture computers running Solaris or illumos operating systems
- DEC Alpha cluster running OpenVMS or Tru64 UNIX
- Midrange computers with their custom operating systems, such as IBM OS/400
- Mainframe computers with their custom operating systems, such as IBM z/OS
- Supercomputer architectures
See also
- Cross-platform
- Platform virtualization
- Third platform
References
External links
- Ryan Sarver: What is a platform?