begin quote from:
https://en.wikipedia.org/wiki/Cross-platform_software#Hardware_platforms
Hardware platforms[edit]
A hardware platform can refer to an instruction set architecture. For example: x86 architecture and its variants such as IA-32 and x86-64. These machines often run one version of Microsoft Windows,[6] though they can run other operating systems as well, including Linux, OpenBSD, NetBSD, macOS and FreeBSD.
The 32-bit ARM architectures (and newer 64-bit version) is common on smartphones and tablet computers, which run Android, iOS and other mobile operating systems.
Software platforms[edit]
Software platforms can either be an operating system or programming environment, though more commonly it is a combination of both. A notable exception to this is Java, which uses an operating system independent virtual machine for its compiled code, known in the world of Java as bytecode. Examples of software platforms are:
- BlackBerry
- Android for smartphones and tablet computers (x86, ARM)
- iOS (ARM)
- Microsoft Windows (x86, ARM)
- Java
- Web browsers – more or less compatible with each other, running JavaScript web-apps
- Linux (x86, PowerPC, ARM, and other architectures)
- macOS (x86, PowerPC (on 10.5 and below))
- Mendix
- Solaris (SPARC, x86)
- PlayStation 4 (x86), PlayStation 3 (PowerPC based) and PlayStation Vita (ARM)
- Minor/historical
- AmigaOS (m68k), AmigaOS 4 (PowerPC), AROS (x86, PowerPC, m68k), MorphOS (PowerPC)
- Atari TOS, MiNT
- BSD (many platforms; see NetBSDnet,[clarification needed] for example)
- DOS-type systems on the x86: MS-DOS, IBM PC DOS, DR-DOS, FreeDOS
- OS/2, eComStation
Java platform[edit]
As previously noted, the Java platform is an exception to the general rule that an operating system is a software platform. The Java language typically compiles to a virtual machine: a virtual CPU which runs all of the code that is written for the language. This enables the same executable binary to run on all systems that implement a Java Virtual Machine (JVM). Java programs can be executed natively using a Java processor. This isn't common and is mostly used for embedded systems.
Java code running in the JVM has access to OS-related services, like disk I/O and network access, if the appropriate privileges are granted. The JVM makes the system calls on behalf of the Java application. This setup allows users to decide the appropriate protection level, depending on an ACL. For example, disk and network access is usually enabled for desktop applications, but not for browser-based applets. JNI can also be used to enable access to operating system specific functions.
Currently, Java Standard Edition programs can run on Microsoft Windows, macOS, several Unix-like operating systems, and several more non-UNIX-like operating systems like embedded systems. For mobile applications, browser plugins are used for Windows and Mac based devices, and Android has built-in support for Java. There are also subsets of Java, such as Java Card or Java Platform, Micro Edition, designed for resource-constrained devices.
No comments:
Post a Comment