A software platform is the infrastructure on which software runs, encompassing components like operating systems, runtime libraries, and computer architecture. Sometimes, a single relevant layer is referred to as the platform itself using metonymy. For example, in application software or a video game, the operating system is often considered the platform, leading to terms like cross-platform software that runs on multiple OSes. In multi-computer systems, platforms include hardware, operating systems, runtime libraries, and accessed components via APIs or a web browser. All components required to execute the code form the computing platform.
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".
- Device drivers and firmware.
- 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.3
- 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.4
- 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.5 The social networking sites Twitter and Facebook are also considered development platforms.67
- A application 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.8
Operating system examples
Further information: List of operating systems
Desktop, laptop, server
Mobile
- Newton OS
- Palm OS
- Symbian
- BlackBerry OS
- Windows Mobile
- Unix and Unix-like
- Windows
- BlackBerry 10
- HarmonyOS
- Fuchsia
Software examples
- Shockwave
- Binary Runtime Environment for Wireless (BREW)
- Cocoa
- Cocoa Touch
- .NET
- Flash
- Java
- LiveCode
- Microsoft XNA
- Mozilla Prism, XUL and XULRunner
- Mozilla WebExtensions API is modeled after Google Chrome's API.91011 Thus Firefox extensions are now largely compatible with their Chrome counterparts.12
- Web platform
- Oracle Database
- Qt
- SAP NetWeaver
- Smartface
- Universal Windows Platform
- HMS Core
- Cangjie
- ArkTS
- ArkUI
- Huawei Phoenix Engine
- Phoenix Engine Ray Shop
Hardware examples
Further information: Lists of computers
- 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
External links
Wikidata has the property:- platform (P400) (see uses)
- Media related to Computing platforms at Wikimedia Commons
- Ryan Sarver: What is a platform?
References
"What I Talk About When I Talk About Platforms". martinfowler.com. Retrieved 2018-03-18. https://martinfowler.com/articles/talk-about-platforms.html ↩
"platform". https://foldoc.org/platform ↩
Andrew Binstock (July 2, 2012). "Google's Redefinition of the Browser As Platform". Dr. Dobbs. http://www.drdobbs.com/web-development/googles-redefinition-of-the-browser-as-p/240003086?itc=edit_stub ↩
Chip Wilson; Alan Josephson. "Microsoft Office as a Platform for Software + Services". Microsoft Developer Network. http://msdn.microsoft.com/en-us/library/bb906062.aspx ↩
"What Is PAAS?". Interoute. Archived from the original on 2015-10-22. Retrieved 2014-01-28. https://web.archive.org/web/20151022043235/http://www.interoute.com/what-paas ↩
"Twitter Development Platform - Twitter Developers". https://dev.twitter.com/ ↩
"Facebook Development Platform Launches..." Facebook. August 15, 2006. https://www.facebook.com/notes/2207512130 ↩
"Platform independence in Java's Byte Code". Stack Overflow. https://stackoverflow.com/questions/17101796/platform-independence-in-javas-byte-code ↩
"The Future of Developing Firefox Add-ons". Mozilla Add-ons Blog. Retrieved 2018-12-15. https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/ ↩
"Upcoming Changes in Compatibility Features". Mozilla Add-ons Blog. Retrieved 2018-12-15. https://blog.mozilla.org/addons/2017/08/10/upcoming-changes-compatibility/ ↩
"How to enable legacy extensions in Firefox 57 - gHacks Tech News". www.ghacks.net. 12 August 2017. Retrieved 2018-12-14. https://www.ghacks.net/2017/08/12/how-to-enable-legacy-extensions-in-firefox-57/ ↩
"Porting a Google Chrome extension". Mozilla. Retrieved 30 December 2018. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension ↩