Ce este o imagine software?


Cel mai bun răspuns

Datorită formulării pe care o utilizați, mi se pare că vorbiți despre software care va rula pe unele un fel de sistem încorporat spre deosebire de software care urmează să fie implementat ca aplicație desktop sau altă variantă.

Înainte de a putea rula un program pe o anumită bucată de hardware, trebuie parcurși câțiva pași pentru a converti codul sursă pe care l-ați scris în ceva care poate fi interpretat de fapt de o mașină.

Codul dvs. sursă este scris într-o limbă care are o anumită sintaxă și semantică și care vă poate fi citită, în timp ce un procesor așteaptă și înțelege doar 1s și 0s.

Când lucrați cu limbi compilate, există o serie de instrumente care, atunci când sunt utilizate într-o anumită ordine și se alimentează cu intrările potrivite, vor produce ceea ce este cunoscut sub numele de imagine software. Această imagine software este ceea ce veți încărca în cele din urmă în țintă.

În funcție de hardware-ul dvs. și de modul în care vă construiți lanțul de instrumente, instrumentele pentru a produce imaginea software-ului vor varia, dar cu siguranță veți avea nevoie de un preprocesator, un compilator și un linker.

Codul sursă este transmis preprocesorului, care va rezolva unele lucruri (macrocomenzi, include, directive preprocesor și altele), în acest moment aveți un fișier intermediar care vă poate fi citit în continuare. Apoi, fișierul preprocesat este trecut la compilator, care va genera un fișier obiect. Trebuie să spuneți compilatorului cum și ce fișiere să ia pentru a produce fișierele obiect corecte.

În cele din urmă, linkerul va combina diferitele fișiere obiect din pasul anterior în modul în care îi spuneți și va produce imaginea binară ca rezultat (linkerul va gestiona legătura bibliotecilor și alte lucruri care nu au putut să fie rezolvate în faza de compilare).

Instalarea sau testarea unei imagini software înseamnă încărcarea imaginii binare pe care ați produs-o în ultimul pas în hardware-ul țintă. Încărcarea se face în mod normal prin copierea imaginii într-o memorie nevolatilă.

Aceasta este o descriere amplă a procesului și nu trebuie să fie exhaustivă.

Răspuns

Citind cele două răspunsuri în fața mea și mărturisind că nu sunt sigur ce întrebați de fapt, acestea sunt lucrurile la care s-ar putea să faceți referire.

În multe sisteme multi-utilizator, deoarece există un singur set de registre hardware pe mașină care trebuie partajate, ele de obicei acordați fiecărui utilizator o bucată de timp (să zicem, 10 ms) și apoi mergeți la următorul și la următorul. Starea datelor fiecărui utilizator nu se modifică deoarece este stocată pe disc sau în memoria neutilizată. Starea setului de registre trebuie stocată ca instantaneu a ceea ce se întâmplă în acest moment, astfel încât să poată fi restaurate data viitoare când este selectat utilizatorul.

O altă utilizare a termenului este matematica și gestionarea memoriei necesare pentru a ține o imagine în memorie, spre deosebire de scanarea doar a unui set de linii cu valori diferite.

În vremurile vechi ale computerelor cu cadru principal, codul sursă a fost compilat sau asamblat în bibliotecile „imagine de bază”, mașină limba ca un bloc care trebuie încărcat în memorie și apoi rulat așa cum este. Majoritatea DLL-urilor folosesc o teorie similară, dacă nu practică.

Ne pare rău dacă tot ce am făcut a fost să înnodeze apa.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *