Přenositelnost (IT)

Přenositelnost z počítačového programu je jeho schopnost být schopen přizpůsobit více či méně snadno, aby se funkce v různých prováděcích prostředích . Rozdíly se mohou týkat hardwarového prostředí ( procesoru ) a softwarového prostředí ( operačního systému ). Rozdíl v prostředí může také souviset s kombinací těchto dvou prvků. To je případ například v oblastech palubních počítačů , superpočítačů a virtuálních strojů .

Úprava programu tak, aby mohl běžet v jiném prostředí, se přenáší .

Runtime prostředí

Pojem prováděcí prostředí označuje sadu (fyzickou nebo softwarovou), která bude provádět pokyny programu . Toto prostředí má různé aspekty v závislosti na použitém programovacím jazyce a typu programu.

Běhové prostředí je tedy:

Nejnižší společný jmenovatel

Úroveň přenositelnosti programu se měří podle skutečnosti, že v několika prostředích používá nejnižšího společného jmenovatele. Pokud je tedy softwarová knihovna k dispozici v několika prostředích a tento program používá pouze druhé a ne určité funkce specifické pro konkrétní prostředí, říká se, že tento program je přenosný, kdekoli je tato knihovna k dispozici.

Nejběžnější softwarové knihovny jsou knihovny dodávané s programovacími jazyky, které se nazývají standardní knihovny. Pokud tedy program používá jazyk C a pouze svou standardní knihovnu , lze jej bez problémů přenést jednoduše překompilováním pro všechna prostředí pomocí kompilátoru C (což je případ téměř všech existujících operačních systémů).

POSIX

Přenositelnost programu je dobrá věc, protože umožňuje oslovit širší publikum. Nevýhodou je, že se musíte omezit na běžné knihovny, které jsou často špatné ve srovnání s tím, co poskytuje konkrétní běhové prostředí. Standardní knihovny C a C ++ tedy neznají síť , nenáročné procesy nebo dokonce grafická rozhraní .

Důvodem byl standard POSIX, který definuje několik funkcí, které musí systém UNIX poskytovat , jako jsou jeho základní příkazy a programovací rozhraní . POSIX vám umožňuje dělat mnohem pokročilejší věci, než jen používat standardní knihovny C a C ++. POSIX tedy zná síť, nenáročné procesy a má systémové funkce v reálném čase .

Qt, GTK +, wxWidgets atd.

Ačkoli POSIX nabízí některé pokročilé funkce, stále mu chybí jedna, která je dnes široce používána, grafické rozhraní . Z tohoto důvodu se objevily knihovny jako Qt, GTK + nebo dokonce wxWidgets. Ale ty se neomezují pouze na grafické rozhraní a nabízejí také programovací rozhraní pro síť, přístup k souborům nebo dokonce manipulaci s řetězci znaků .

Úrovně přenositelnosti

Přenositelnost programu lze provést na několika úrovních. Prozatím jsou softwarové knihovny jako POSIX nebo Qt omezeny na přenositelnost na úrovni zdrojového kódu. Existují ale i jiné úrovně, například úroveň bytecode nebo dokonce, ale vzácnější, úroveň spustitelného souboru.

Zdrojový kód

Přenositelnost na úrovni zdrojového kódu vyžaduje dostupnost programovacího rozhraní ve všech cílových běhových prostředích. Z toho stačí překompilovat zdrojový kód se správnými knihovnami.

Přenositelnost na úrovni zdrojového kódu platí také pro interpretované jazyky, kde je tentokrát požadována dostupnost tlumočníka a jeho standardní knihovny.

Z bytecode

Bytecode je druh přechodného kódu, který lze považovat za „napůl kompilovaný“ nebo „pseudokompilovaný“. Tento kód není určen k provedení přímo operačním systémem jako jakýkoli kompilovaný program. Je za to zodpovědný virtuální stroj . Jeho účelem je sloužit jako vrstva mezi programem a operačním systémem, čímž je každý program dokonale přenosný, pokud je v cílovém systému virtuální stroj.

Dnes je hlavním zástupcem Java , jejíž virtuální stroj je k dispozici, na hlavních operačních systémech ( Windows , Linux , Mac OS , FreeBSD nebo dokonce Solaris ). Programovací jazyk Microsoftu , C # má také virtuální stroj.

Ze spustitelného souboru

Tuto úroveň přenositelnosti nabízí zejména spustitelný formát Universal binaries společnosti Apple , kde aplikace běží na architektuře PowerPC a x86 , ale pouze na Mac OS X

Operační systém

Běhové prostředí operačního systému je hardwarová architektura, na které běží. Úroveň přenositelnosti systému proto závisí na jeho schopnosti abstrahovat od specifičností hardwaru tím, že má minimum hardwarově závislého kódu. Na této úrovni je velkou obtížností mít dostatečně velkou sbírku ovladačů zařízení , aby bylo používání operačního systému zajímavé.

Velmi přenosným systémem je NetBSD , který je k dispozici na více než padesáti hardwarových architekturách (od superpočítačů po topinkovače ).

Poznámka

  1. To není vždy pravda, protože vývojář mohl během vývoje aplikace předpokládat určité věci, které již při změně operačního systému nejsou pravdivé. Jedním z případů, které mohou nastat, je znak oddělovače v cestách k souborům, který je '/' (pro systémy UNIX) a '\' (pro Windows).
  2. více či méně optimalizováno
  3. (in) Technologic Systems Designs NetBSD Controlled Toaster

Podívejte se také