Mobilitatea software înseamnă că software-ul este gata să fie transferat de la un mediu de operare hardware la altul. Portabilitatea programelor și dat-TION pe o varietate de hardware și platforma de operare este un indicator important al NYM funcționale de fitness pentru multe dintre programele de astăzi. Această proprietate poate fi măsurată în volum, complexitatea și durata modificărilor componente software necesare și a operațiunilor de adaptare care urmează să fie efectuate pentru a asigura o funcționare completă ON-TION după transferul într-o altă platformă.
Mobilitatea poate fi implementată la nivelul codului sursă al programelor sau la nivelul codului obiect. Depinde de granularitatea și complexele de pod extensibil de programe și date, precum și disponibilitatea de resurse suplimentare necesare pentru punerea în aplicare a portabilității și a componentelor de modificare a acestora în timpul transportului.
Pentru a scrie un program portabil, trebuie să urmați anumite reguli. În primul rând, cea mai mare parte a programului ar trebui să fie scrisă în limba disponibilă pentru toate sistemele, care sunt planificate să fie transferate în continuare. Acest lucru înseamnă, mai presus de toate, că programul trebuie să fie scris într-un limbaj de nivel înalt, preferabil standardizat, de exemplu în C. Programul scris în asamblare nu este, în general, portabil. În al doilea rând, este important să minimalizați sau, dacă este posibil, să excludeți acele părți ale codului care interacționează direct cu hardware-ul. Dependența de echipamente poate lua mai multe forme. Unele forme evidente de dependență includ manipularea directă a registrelor și a altor componente hardware. În cele din urmă, dacă codul dependent de hardware nu poate fi complet exclus, atunci acesta trebuie izolat în mai multe module bine localizate. Codul dependent de hardware nu ar trebui să fie distribuit pe tot parcursul programului. De exemplu, puteți ascunde o structură dependentă de hardware în date specificate în mod programatic, de tip abstract. Alte module ale programului vor funcționa cu aceste date, nu cu hardware-ul, utilizând un set de funcții. Când software-ul este transferat, se modifică numai aceste date și funcțiile pe care le manipulează.
Introducerea standardelor POSIX a avut rolul de a asigura portabilitatea software-ului creat.
POSIX (Interfață pentru sistemul de operare portabil pentru medii de calcul) este o interfață de sistem independentă de platforme pentru medii de calcul. Acesta este un standard IEEE care descrie interfețele de sistem pentru sistemele de operare deschise, inclusiv scoici, utilitare și instrumente. În plus, în conformitate cu POSIX, sarcinile de securitate, sarcinile în timp real, procesele de administrare, funcțiile de rețea și procesarea tranzacțiilor sunt standardizate. Standardul se bazează pe sisteme bazate pe UNIX, dar poate fi implementat și în alte sisteme de operare.
Acest standard descrie în detaliu VMS (sistem de memorie virtuală, sistem de memorie virtuală), multitasking (MPE, execuție multiproces) și tehnologie de transfer a sistemelor de operare (CTOS). Astfel, POSIX este un set de standarde, numit POSIX.1 - POSIX.12.
În tabel. 4.1 prezintă direcțiile principale descrise de aceste standarde. De asemenea, trebuie remarcat faptul că POSIX.1 presupune că C este limba principală pentru descrierea funcțiilor API ale sistemului.
Astfel, programele scrise în conformitate cu aceste standarde vor fi executate în mod egal pe toate sistemele compatibile POSIX. Cu toate acestea, în unele cazuri standardul este doar recomandator. Unele dintre standarde sunt descrise foarte strict, în timp ce cealaltă parte dezvăluie doar superficial cerințele de bază. Adesea, sistemele software sunt declarate compatibile cu POSIX, deși nu pot fi numite astfel. Motivele stau în abordarea formală a implementării interfeței POSIX în diferite sisteme de operare. În Fig. 4.2 prezintă o schemă de implementare tipică pentru o aplicație strict compatibilă cu POSIX.
Fig. 4.2. Aplicații care se conformează strict standardului POSIX
Din fig. 4.2 că pentru interacțiunea cu sistemul de operare programul folosește numai bibliotecile POSIX.1 și biblioteca RTL standard C, în care sunt posibile doar 110 funcții diferite, descrise și în standardul POSIX.1.
Din păcate, destul de des pentru a spori performanțele unui subsistem sau de la introducerea de tehnologii brevetate care restricționează utilizarea aplicației în mediul de operare adecvat, alte funcții care nu se conformează standardului POSIX sunt utilizate în programare.