Beste svaret
På grunn av ordlyden du bruker, virker det som om du snakker om programvare som kommer til å kjøre på noen slags innebygd system i motsetning til programvare som skal distribueres som en stasjonær applikasjon eller annen variant.
Før du kan kjøre et program på et bestemt maskinvare, er det flere trinn som må følges for å konvertere kildekoden du skrev til noe som faktisk kan tolkes av en maskin.
Kildekoden din er skrevet på et språk som har viss syntaks og semantikk, og som kan leses for deg, mens en prosessor bare forventer og forstår 1s og 0s.
Når du arbeider med kompilerte språk, er det en serie verktøy som når de brukes i en bestemt rekkefølge og mates med de riktige inngangene, vil produsere det som er kjent som et programvarebilde. Dette programvarebildet er det du til slutt vil laste inn i målet.
Avhengig av maskinvaren din og hvordan du bygger verktøykjeden din, vil verktøyene for å produsere programvarebildet variere, men helt sikkert trenger du en forprosessor, en kompilator og en linker.
Kildekoden sendes til forprosessoren som vil løse noen ting (makroer, inkluderer, forhåndsbehandlingsdirektiver og andre), på dette punktet har du en mellomfil som fremdeles kan leses for deg. Deretter sendes den forhåndsbehandlede filen til kompilatoren som vil generere en objektfil. Du må fortelle kompilatoren hvordan og hvilke filer du skal ta for å produsere de riktige objektfilene.
Endelig vil linkeren kombinere de forskjellige objektfilene fra forrige trinn på den måten du forteller det, og vil produsere det binære bildet som et resultat (linkeren vil håndtere kobling av biblioteker og andre ting som ikke kunne bli løst i kompileringsfasen).
Installering eller testing av et programvarebilde betyr å laste det binære bildet du produserte i det siste trinnet i målmaskinvaren. Lastingen gjøres normalt ved å kopiere bildet til et ikke-flyktig minnelager.
Dette er en bred beskrivelse av prosessen og er ikke ment å være uttømmende.
Svar
Å lese de to svarene foran meg og innrømme at jeg ikke er sikkert hva du faktisk spør om, dette er de tingene du kan referere til.
I mange flerbrukersystemer, siden det bare er ett sett med maskinvareregister på maskinen som må deles, de vanligvis gi hver bruker et stykke tid (si 10ms) og deretter gå til neste og neste. Tilstanden til hver brukerdata endres ikke fordi den er lagret på disken eller i ubrukt minne. Tilstanden til registersettet må lagres som et øyeblikksbilde av hva som skjer dette øyeblikket, slik at de kan gjenopprettes neste gang brukeren blir valgt.
En annen bruk av begrepet er matematikk og minnestyring som kreves for å holde et bilde i minnet, i motsetning til bare å skanne et sett med linjer med varierende verdier.
I gamle dager med hovedrammedatamaskiner ble kildekoden samlet eller samlet i «Core image» -biblioteker, maskin språk som en blokk som skal lastes inn i minnet og deretter kjøres som den er. De fleste DLL-er bruker lignende teori hvis ikke praksis.
Beklager hvis alt jeg gjorde var gjørmete vannet.