Cross- platform ( cross-platform ) - schopnost softwaru pracovat s více hardwarovými platformami nebo operačními systémy . Je poskytován pomocí programovacích jazyků na vysoké úrovni , vývojových a runtime prostředích, která podporují podmíněnou kompilaci, propojování a spouštění kódu pro různé platformy. Typickým příkladem je software navržený pro současné spuštění na operačních systémech Linux a Windows .
Většinu moderních programovacích jazyků na vysoké úrovni lze nazvat multiplatformní . Například C , C ++ , Free Pascal , FreeBASIC , PureBasic jsou multiplatformní jazyky na úrovni kompilace, to znamená, že pro tyto jazyky existují kompilátory pro různé platformy. To umožňuje - při správné kvalitě kódu - nepřepisovat hlavní engine programu, pouze se mění speciální části závislé na systému.
Neméně důležité pro použití napříč platformami jsou standardizované runtime knihovny . Standardem se stala zejména knihovna jazyka C ( POSIX ). Z velkých multiplatformních knihoven - Qt , GTK+ , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .
Existují křížové kompilátory – kompilátory, které generují spustitelný kód pro jinou platformu, než na které běží samotný kompilátor.
PHP , Perl , Python , Tcl a Ruby jsou multiplatformní interpretované jazyky a jejich interpreti existují pro mnoho platforem.
Běhové moduly ActionScript Virtual Machine , Java Virtual Machine a .NET jsou také multiplatformní, ale jejich vstupem není zdrojový kód , ale přechodný kód . Proto lze programy napsané v ActionScriptu , Javě a C# spouštět na různých operačních systémech bez rekompilace.
Na různých operačních systémech a prostředích – bez ohledu na to, jak je práce v nich technicky zajištěna – mají standardní prvky rozhraní různé velikosti. Jednoduché pevné umístění prvků rozhraní je tedy nemožné – v jiném operačním systému (prostředí) se mohou „plazit“ jeden přes druhý, „rozmazávat“, „opíjet“. Existuje několik přístupů:
V každém případě je v jiných operačních systémech a prostředích vyžadováno alespoň minimální testování, protože jsou možné chyby v propojení ...
Přestože obecně existuje široká standardizace hardwaru a softwaru, programátor se často musí větvit pro různé operační systémy a prostředí, včetně jednoho nebo druhého prostřednictvím podmíněné kompilace .
Například prohlížeč Mozilla Firefox má různé sady ikon pro různé operační systémy.
Velké množství aplikačních programů je také multiplatformních. Tato kvalita je zvláště výrazná v programech původně vyvinutých pro operační systémy podobné Unixu . Důležitou podmínkou pro jejich přenositelnost na jiné platformy je kompatibilita platforem s doporučeními POSIX a také existence kompilátoru GCC pro platformu, na kterou jsou portovány.
Moderní operační systémy jsou také často multiplatformní. Například open source operační systémy (zejména: NetBSD , Linux , FreeBSD , AROS ) mohou běžet na několika různých hardwarových platformách. Nejběžnější jsou: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . („ Elbrus OS “ není nic jiného než hluboce modifikovaný pro platformu Elbrus . Existuje však „Elbrus OS“ také pro platformy Elbrus-SPARC, což je implementace platformy SPARC od MCST a platformy x86. ) První vydání Microsoft Windows NT 4 , vydané v roce 1996, podporovalo čtyři platformy (x86, Alpha, MIPS a PowerPC), pozdější verze Windows NT podporovaly pouze platformu x86. Moderní Microsoft Windows může běžet na platformách Intel x86 i Intel Itanium . (Přesněji řečeno, Itanium má pouze verze Windows 2000/XP, Windows 2003 a Windows 2008, poté byla podpora pro Itanium postupně ukončena.) Operační systém NetBSD je považován za nejvíce multiplatformní [1] , je portován na většinu stávající platformy.
Řada IDE , včetně Free Pascal, Lazarus , Qt Creator , běží na různých operačních systémech: Linux, Windows a další [2] .
Pokud není program určen ke spuštění (spuštění) na konkrétní platformě, ale pro tuto platformu existuje emulátor základní platformy pro tento program, pak lze program spustit v prostředí emulátoru.
Spuštění programu v prostředí emulátoru obvykle vede ke snížení výkonu ve srovnání s podobnými programy, pro které je platforma základem, protože značná část systémových prostředků je vynaložena na funkce emulátoru.