Computing platform

A platform, sometimes called layer or level referred to in the computer science a uniform basis, can be executed and developed on the application programs. It is located between two components of a computer system. For the component, which makes use of the platform, the component is not visible thereunder. It can therefore be operated the same component on a platform on different " substrates". There are a variety of platforms and platform concepts in computer science area.

  • 3.1 Marketing
  • 3.2 openness
  • 4.1 Application Interfaces and Operating Systems
  • 4.2 runtime environments
  • 4.3 server platforms
  • 4.4 hardware

Objectives and methods

The idea behind a platform is the abstraction of intricate details for an application software or its developers.

On the one hand may be unknown properties of the execution environment in which a software application is used in the future, which are not known at the time of development of the application, or may be these details. These properties of the execution environment may be or what under -lying operating system the application will eventually operated by the user, for example, the exact type and performance of the hardware components.

On the other hand, the motivation for an abstraction also known complexity (eg, unstandardized hardware, competing manufacturers APIs, etc.) to be reduced in order to allow developers a faster, cheaper and easier development of applications.

This simplification can be achieved by the fact that the application developer a more abstract functional model of concrete functionality is provided typischwerweise in the form of a programming interface ( API eng. ) which envelops underlying functionality. For the resulting application is done typically in the form of a dynamically interpreted runtime environment ( JRE eg, browser, etc.) or a binary ABI to known software functions ( eg Win32, DirectX, etc.).

A quality that can provide this abstraction layers, is universality, commonly referred to as compatibility. Which may refer to the width, so the amount of different types, abstract details like. On the stability of the platform over time The Compatibility over time to ensure the backwards compatibility can be meant in a further development of a platform or even the manufacturer's assurance that with the advent of new abstrahierbarer "Details" (eg new operating systems, new hardware) this integrated into the platform be ( upward compatibility ).

Platform types

Possible components of a platform are a computer architecture, programming language, libraries, and runtime environments.

Hardware platform

For platforms can be made between software and hardware platforms. A hardware platform refers to a specific type of computer or a family of computer types. It is given primarily by a particular computer or processor architecture.

A processor architecture platform uses a single machine language, data word size, byte order etc. An example of this is the widespread x86 architecture.

As each of the commands of this machine language are processed internally in the microprocessor (eg with micro - ops ), but can vary greatly within the same platform. Only the final results which provide the instructions remain the same.

Hardware platforms can be broadly divided into CISC and RISC architectures. In current processor architectures, but the boundaries blur between these two types of architecture visibly.

Software platform

Binary interfaces based platform

Compatibility over time can be achieved, will be used to access the platform, for example, about kept steady binary interfaces of function libraries. In a further development of the platform only has the platform providers ensure that compatibility is maintained. This must then distribute the new version of its platform library, changes to the Anwendungsprogamm ( recompilation or adaptation) by application developers or configuration changes made by users are not required.

Source based platform

In addition to the above concept of a platform based on binary compatibility, which enables a further ability to run once developed software, nor does the concept of compatibility about the portability of the source code of an application program. Here is no long-term or broad ability to run the application program compiled programs guaranteed, but a compilability having a wide range of under -lying hardware, program libraries and software APIs, also known as platform independence. Disadvantages are that the process of compiling then must be performed frequently and especially by the user or application developer, a sometimes complex and error-prone process. The creation of portable software for such a platform is a problem. Similarly, the requirement that the source code must be available for the user to be an obstacle, as for example the case of proprietary software, the disclosure of this is unusual. Therefore, this concept of source - based compatibility, especially in the open source area and at Unix-like operating systems is dominant, whereas the binary compatibility for example, in the Windows or Mac operating systems.

Operating system as a platform

For example enables a software platform such as the Win32 API and operating systems software developers to write applications it, etc. which are functional on varying hardware, such as processors from different manufacturers, different video cards, different peripheral devices. Typically, however, such applications are to binary programs consisting of machine language instructions, compiled, and are therefore only to a specific hardware functional, so rely on this hardware platform. This procedure can be considered as a compromise in efficiency and level of abstraction, as this saves costly conversion at run time.

Run-time environment as a platform

For dynamically interpreted runtime environments the application of the hardware is abstracted still going on. This means that instructions and data a runtime environment or a service are passed, where they are interpreted at runtime, or translated into the appropriate machine language. Proceeding (eg, JRE or browser ) and various underlying operating systems, so other software platforms are abstracted away with a runtime environment.

Non-technical aspects of platforms

Marketing

For advertising often brand names in simplistic manner considered technically actually differentiating platforms, summarizing. A well-known example is the "Macintosh platform," whose technical platforms may differ radically depending on the generation. This simplistic view is partially passed into the language use and public perception.

So, for example, advertises the company Apple with the "Macintosh platform," although over the entire period of existence virtually all platforms that make Macintosh, (partly multiple) were exchanged. From a technical point of view, and Macintosh consisted of very different and sometimes incompatible hardware and software platforms. (Macintosh used or uses 680x0, POWER and x86 -64. Were offered by the Macintosh operating system, or Carbon, Cocoa, POSIX, SUS, GNU software environment, JRE ... ) In order to ensure the users a smooth transition of the platforms used Apple transitional approaches such as Fat binaries or emulators. Thus, the whole family was further perceived by the public as a unified platform.

The same applies to the advertised brand by Microsoft "Windows ". Although the changes were never as comprehensive as Macintosh, and Windows is not a uniform platform. ( It used or uses the x86, x86 -64, ARM, MIPS, PowerPC, and Alpha platform and presented or provides the DOS, Win16, Win32, Win64, native API, Windows CE -. ., NET, POSIX, OS/2-Plattform and other applications ) Thus, for example, the Win32 and Windows CE API only very conditionally compliant. All building on the DOS or Windows NT kernel Windows products contain multiple platforms, creating a backward compatibility in some cases up to 30 years ( in the case of Win16 ) was achieved for applications.

Openness

Differentiate platforms can also have properties, such as the development model, cost model or the degree of openness and freedom which is granted when used at different levels. A platform, for example in the use by the end user, as a platform for software development or in the support of hardware through technical measures, the lack of restriktiert be open specifications or the need for licenses. A scientific publication from 2008 found, for example, reproduced in the table arrangement for current operating system brands, and the time to Jender therein platforms:

Examples

Application interfaces and operating systems

The application interfaces are usually supplied with the operating systems, if the (still ) is not the case, they will ( subsequently) provided by appropriate runtime environments.

  • AmigaOS
  • GNU software environment (Linux, BSD, Finch, Cygwin ... )
  • POSIX (UNIX, Linux, OSX ... )
  • SUS ( UNIX93 ... UNIX03 )
  • LSB (Linux Standard Base )
  • Carbon ( Mac OS)
  • Cocoa (Mac OS X, GNUstep ... )
  • Win64, Win32, Win16 (Windows, Wine, ReactOS ... )
  • Native API (Windows NT)
  • OS/400
  • Z / OS
  • OS / 2
  • Z / VM
  • Symbian
  • BlackBerry
  • IOS
  • Palm OS
  • Windows CE ( Windows Mobile, Windows Phone, Windows Embedded)
  • Android Runtime
  • Bada
  • OpenVMS

Runtime environments

  • Java runtime environment
  • PHP
  • . NET Framework
  • Mozilla Prism
  • UniPaaS
  • Adobe AIR
  • Mono

Server Platforms

  • LAMP (Linux, Apache, MySQL and PHP)
  • WAMP (Windows, Apache, MySQL and PHP)
  • MAMP (Mac OS X, Apache, MySQL and PHP)

Hardware

  • X86 ( Intel IA- 32 or AMD x86, 32 -bit data width with 32- bit data bus, 32 - bit address space with 24 - bit address bus to x86 backward compatible )
  • X86 -64 ( Intel 64 and AMD64, 64 -bit data width, 64 - bit address space, backward compatible with IA -32 and 16-bit x86)
  • IA -64 ( Intel Itanium 64- bit data width, 64 - bit address space, not backward compatible with IA -32 and 16-bit x86)
  • ARM
  • SPARC
  • MIPS
  • DEC Alpha ( 64-bit)
  • VAX ( 32-bit)
  • PDP 1, the PDP 4, the PDP 7, the PDP and PDP -9 -15 ( 18 bits)
  • PDP 5, the PDP 8, the PDP 12, the PDP 14 and the PDP 16 (12 bits)
  • PDP -6 and PDP -10 ( 36 bit)
  • PDP-11 (16 bits)
  • PA -RISC
  • POWER ( IBM POWER and IBM PowerPC)
  • 680x0 (now Freescale, formerly Motorola)
  • 6800 and 6809 (Motorola, 8- bit data, 8- bit address, 1974)
  • 68000 and 68010 (Motorola, 16 -bit data bus, 24- bit address, 1979)
  • 68008 (Motorola, 8 -bit data bus, 20 - bit address )
  • 68012 (Motorola, 16 -bit data bus, 31 - bit address )
  • 68020 and 68330 (Motorola, 32 -bit data bus, 32 - bit address, 1984)
  • 88000
  • IBM System/360 and System/370 (24 -bit addressing, 1964 and 1970)
  • IBM System/390 (31 -bit addressing, 1990)
  • IBM System z ( 64 -bit addressing, backward compatible with System/390, / 370 and / 360, 2000)
  • 4004 (4 -bit data width of 4 -bit data bus, 12 -bit address space, with 4- bit address, 1971)
  • 4040 (4 -bit data width of 4 -bit data bus, 13 -bit address space, with 4- bit address, 1974)
  • 8008 (8 -bit data width of 8 -bit data bus, 14 -bit address space, with an 8- bit address, 1972)
  • 8080 (8 -bit data width of 8 -bit data bus, 16 -bit address space, with 16- bit address, 1974)
  • Intel 8088, Intel 80188, Z80 and NEC V20 (16 -bit data width with 16- bit data bus, 20 - bit address space with 20-bit address bus, 1979)
  • OpenRISC
  • Am29000
  • I960
  • SuperH
  • AVR
  • IBM 801
71828
de