A szoftverek mobilitása
A szoftverek mobilitása azt jelenti, hogy a szoftver készen áll egy hardveres működési környezetről a másikra történő átvitelre. A programok és adatok hordozhatósága a különféle hardver- és operációs platformokra számos modern program funkcionális alkalmasságának fontos mutatója. Ezt a tulajdonságot a szoftverkomponensek szükséges módosításainak mennyisége, fáradsága és időtartama, valamint az alkalmazkodási műveletek mennyisége alapján becsülhetjük meg, amelyet a szoftver teljes körű működésének biztosítására kell végrehajtani, miután átkerültek egy másik platformra.
A mobilitást a programok forráskódja vagy az objektumkód szintjén lehet megvalósítani. Ez attól függ, hogy a program és az adatkészletek struktúrája és kiterjedése, valamint az összetevők hordozhatóságának és módosításának végrehajtásához szükséges további erőforrások rendelkezésre állnak-e.
Ha hordozható programot szeretne írni, bizonyos szabályokat be kell tartania. Először is, a legtöbb programot olyan nyelven kell írni, amely minden rendszeren rendelkezésre áll, és amelyeket tovább kíván továbbítani. Ez mindenekelőtt azt jelenti, hogy a programot magas szintű, lehetőleg szabványosított nyelven kell írni, például a C-ben. Az assemblerben írt program általában nem hordozható. Másodszor, fontos, hogy minimalizáljuk, vagy ha lehetséges, kizárjuk azokat a kódokat, amelyek közvetlenül érintkeznek a hardverrel. A felszereléstől való függés sok formát ölthet. A függőség néhány nyilvánvaló formája magában foglalja a regiszterek és egyéb hardverek közvetlen manipulálását. Végül, ha a hardverfüggő kódot nem lehet teljesen kizárni, azt több jól lokalizált modulban el kell különíteni. A hardverfüggő kódot nem szabad a program egészében elosztani. Például egy absztrakt típus programmatikusan meghatározott adatait tartalmazó hardverfüggő struktúrát elrejtheti. A program egyéb moduljai ezen adatokkal dolgoznak, nem pedig a hardverrel, bizonyos funkciók segítségével. A szoftver átvitelének időpontjában csak ezek az adatok és az általuk manipulált funkciók módosulnak.
A POSIX szabványok bevezetésének célja a létrehozandó szoftver hordozhatóságának biztosítása volt.
A POSIX (hordozható operációs rendszer interfész a számítógépes környezetekhez) platform-független rendszerfelület a számítógépes környezetek számára. Ez egy olyan IEEE szabvány, amely leírja a nyitott operációs rendszerekhez rendszer interfészeket, beleértve a shelleket, segédprogramokat és eszközöket. Emellett a POSIX szerint szabványosították a biztonsági feladatokat, a valós idejű feladatokat, az adminisztrációs folyamatokat, a hálózati funkciókat és a tranzakciók feldolgozását. A szabvány UNIX alapú rendszereken alapul, de más operációs rendszerekben is megvalósítható.
Ez a szabvány részletesen leírja a VMS (virtuális memória rendszer, virtuális memória rendszer), multitasking (MPE, többprocesszoros végrehajtás) és az operációs rendszerek átviteli technológiáját (CTOS). Így valójában a POSIX egy szabványkészlet, a POSIX.1 - POSIX.12.
A táblázatban. A 4.1. Ábra bemutatja a szabványok által leírt fő irányokat. Azt is meg kell jegyeznünk, hogy a POSIX.1 feltételezi a C-t, mint a rendszer API funkcióinak leírásának fő nyelvét.
Így az ezen szabványoknak megfelelően írt programokat minden POSIX-kompatibilis rendszerben egyformán hajtják végre. Bizonyos esetekben azonban a szabvány csak ajánlás. Néhány szabványt nagyon szigorúan írnak le, míg a másik rész csak felületesen feltárja az alapvető követelményeket. Gyakran előfordul, hogy a szoftverrendszerek POSIX-kompatibilisek, bár nem nevezhetők ilyeneknek. Ennek oka a POSIX interfész különböző operációs rendszerekben való megvalósításának formális megközelítése. Az 1. ábrán. A 4.2. Ábra egy tipikus végrehajtási sémát mutat be egy szigorúan POSIX-kompatibilis alkalmazáshoz.
Ábra. 4.2. Olyan alkalmazások, amelyek szigorúan megfelelnek a POSIX szabványnak
Az 1. ábrából. 4.2 Az operációs rendszerrel való interakcióhoz a program csak POSIX.1 könyvtárakat és a szabványos C nyelvű RTL könyvtárat használ, amelyekben csak 110 különböző funkció létezik, amelyet a POSIX.1 szabvány is leír.
Sajnos, gyakran elég ahhoz, hogy növelje az alrendszer teljesítményét, vagy olyan saját technológiák bevezetésével, amelyek korlátozzák az alkalmazás használatát a megfelelő működési környezetbe, a programozás során más olyan funkciókat is használnak, amelyek nem felelnek meg a POSIX szabványnak.