Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Porting
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == The number of significantly different CPUs and operating systems used on the desktop today is much smaller than in the past. The dominance of the [[x86]] [[instruction set|architecture]] means that most desktop software is never ported to a different CPU. In that same market, the choice of operating systems has effectively been reduced to three: [[Microsoft Windows]], [[macOS]], and [[Linux]]. However, in the [[embedded systems]] and [[mobile computing|mobile]] markets, [[Portability (software)|portability]] remains a significant issue, with the [[ARM architecture|ARM]] being a widely used alternative. International standards, such as those promulgated by the [[International Organization for Standardization|ISO]], greatly facilitate porting by specifying details of the computing environment in a way that helps reduce differences between different standards-conforming [[platform (computing)|platforms]]. Writing software that stays within the bounds specified by these standards represents a practical although nontrivial effort. Porting such a program between two standards-compliant platforms (such as [[POSIX|POSIX.1]]) can be just a matter of loading the source code and [[compiling|recompiling]] it on the new platform, but practitioners often find that various minor corrections are required, due to subtle platform differences. Most standards suffer from "gray areas" where differences in interpretation of standards lead to small variations from platform to platform. There also exists an ever-increasing number of tools to facilitate porting, such as the [[GNU Compiler Collection]], which provides consistent programming languages on different platforms, and [[Autotools]], which automates the detection of minor variations in the environment and adapts the software accordingly before compilation. The compilers for some [[high-level programming language]]s (e.g. [[Eiffel (programming language)|Eiffel]], [[Esterel]]) gain portability by outputting source code in another high level [[intermediate language]] (such as [[C (programming language)|C]]) for which compilers for many platforms are generally available. Two activities related to (but distinct from) porting are [[emulator|emulating]] and [[cross-compiling]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)