ソフトウェアにおいては、他のプラットフォームに合わせてプログラムのソースコードを書き換えるときに、修正が少なくて済む場合を「移植性が高い」と表現する。通例、ソースコードを静的コンパイルあるいはアセンブルして実行プログラム（マシンコード）を事前生成する方式のソフトウェアは、コンパイル時に指定したCPUアーキテクチャやOSなどに応じて、特定の環境でのみ動作する。一般に、移植の際の手間やコストを減らすために、できる限りこの移植性が高いプログラムを書くことが望まれる。
エンディアンの違いが移植性の問題点となるケースもある。
移植
移植（いしょく）とは、移し植えることである。またそこから移し変えることも指す。
仮想機械
システム仮想機械.
システム仮想機械はシステム全体を再現し、その上でOSを動かすことを可能にする。動作させるOSにいくらかの変更を加えることが必要な場合（準仮想化）もある。
システム仮想機械では、複数の仮想機械に計算資源やメモリ資源、ディスク資源を効率的に配分(スケジュール)したり、ハードウェア割り込みなどを伝達する必要がある。これらを制御するプログラムをハイパーバイザと呼ぶ。
システム仮想機械は、ユーザーやプログラムから「別のコンピュータ」に見えるもの（OS環境を実現するもの）を指すが、コンピュータの初期には仮想記憶やマルチタスク、マルチユーザー、タイムシェアリングなど、現在ではOSの機能となった技術を含める場合がある。仮想機械の技術はメインフレームで使われていたが、現在でコンピュータによるサービス提供の分野で一般的な技術となりつつある。
メインフレーム.
ハードウェアによる仮想化.
IBMのPR/SMに相当する機能には、日立製作所 PRMFなどがある。
仮想化OSによる仮想化.
OSによるリソースの仮想化.
OSの機能による各種リソースの仮想化には、仮想記憶やマルチタスク、マルチユーザー、タイムシェアリングなどがある。
ミッドレンジ.
商用UNIX.
商用UNIXベンダーによる仮想化技術には以下がある。現在の仮想化技術は各種のハードウェアとソフトウェアが密接に連携しており、またベンダーにより各技術の範囲が異なるため、ベンダー単位に記載する。
UNIX/Linux/Windowsなど.