Computing platform

Environment in which a piece of software is executed

A computing platform or digital platform[1] 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.[2] 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.[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.[6][7]
  • 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.[8]

Operating system examples

Desktop, laptop, server

  • AmigaOS, AmigaOS 4
  • Chrome OS
  • 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, a popular mobile operating system
  • 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.[9][10][11] Thus Firefox extensions are now largely compatible with their Chrome counterparts.[12]
  • 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
  • Platform virtualization
  • Third platform
  • Platform ecosystem

References

  1. ^ "What I Talk About When I Talk About Platforms". martinfowler.com. Retrieved 2018-03-18.
  2. ^ "platform". Free On-line Dictionary of Computing
  3. ^ Andrew Binstock (July 2, 2012). "Google's Redefinition of the Browser As Platform". Dr. Dobbs.
  4. ^ Chip Wilson; Alan Josephson. "Microsoft Office as a Platform for Software + Services". Microsoft Developer Network.
  5. ^ "What Is PAAS?". Interoute.
  6. ^ "Twitter Development Platform - Twitter Developers".
  7. ^ "Facebook Development Platform Launches..." Facebook. August 15, 2006.
  8. ^ "Platform independence in Java's Byte Code". Stack Overflow.
  9. ^ "The Future of Developing Firefox Add-ons". Mozilla Add-ons Blog. Retrieved 2018-12-15.
  10. ^ "Upcoming Changes in Compatibility Features". Mozilla Add-ons Blog. Retrieved 2018-12-15.
  11. ^ "How to enable legacy extensions in Firefox 57 - gHacks Tech News". www.ghacks.net. 12 August 2017. Retrieved 2018-12-14.
  12. ^ "Porting a Google Chrome extension". Mozilla. Retrieved 30 December 2018.

External links

Wikidata has the property:
  • platform (P400) (see uses)
  • Media related to Computing platforms at Wikimedia Commons
  • Ryan Sarver: What is a platform?
  • v
  • t
  • e
Computer science
Note: This template roughly follows the 2012 ACM Computing Classification System.
Hardware
Computer Retro.svg
Computer systems organization
  • Computer architecture
  • Embedded system
  • Real-time computing
  • Dependability
Networks
  • Network architecture
  • Network protocol
  • Network components
  • Network scheduler
  • Network performance evaluation
  • Network service
Software organization
  • Interpreter
  • Middleware
  • Virtual machine
  • Operating system
  • Software quality
Software notations and tools
  • Programming paradigm
  • Programming language
  • Compiler
  • Domain-specific language
  • Modeling language
  • Software framework
  • Integrated development environment
  • Software configuration management
  • Software library
  • Software repository
Software development
  • Control variable
  • Software development process
  • Requirements analysis
  • Software design
  • Software construction
  • Software deployment
  • Software engineering
  • Software maintenance
  • Programming team
  • Open-source model
Theory of computation
  • Model of computation
  • Formal language
  • Automata theory
  • Computability theory
  • Computational complexity theory
  • Logic
  • Semantics
Algorithms
  • Algorithm design
  • Analysis of algorithms
  • Algorithmic efficiency
  • Randomized algorithm
  • Computational geometry
Mathematics of computing
  • Discrete mathematics
  • Probability
  • Statistics
  • Mathematical software
  • Information theory
  • Mathematical analysis
  • Numerical analysis
  • Theoretical computer science
Information systems
  • Database management system
  • Information storage systems
  • Enterprise information system
  • Social information systems
  • Geographic information system
  • Decision support system
  • Process control system
  • Multimedia information system
  • Data mining
  • Digital library
  • Computing platform
  • Digital marketing
  • World Wide Web
  • Information retrieval
Security
  • Cryptography
  • Formal methods
  • Security services
  • Intrusion detection system
  • Hardware security
  • Network security
  • Information security
  • Application security
Human–computer interaction
  • Interaction design
  • Social computing
  • Ubiquitous computing
  • Visualization
  • Accessibility
Concurrency
  • Concurrent computing
  • Parallel computing
  • Distributed computing
  • Multithreading
  • Multiprocessing
Artificial intelligence
Machine learning
  • Supervised learning
  • Unsupervised learning
  • Reinforcement learning
  • Multi-task learning
  • Cross-validation
Graphics
  • Animation
  • Rendering
  • Image manipulation
  • Graphics processing unit
  • Mixed reality
  • Virtual reality
  • Image compression
  • Solid modeling
Applied computing
  • E-commerce
  • Enterprise software
  • Computational mathematics
  • Computational physics
  • Computational chemistry
  • Computational biology
  • Computational social science
  • Computational engineering
  • Computational healthcare
  • Digital art
  • Electronic publishing
  • Cyberwarfare
  • Electronic voting
  • Video games
  • Word processing
  • Operations research
  • Educational technology
  • Document management
  • Category
  • Outline
  • WikiProject
  • Commons