System image: Difference between revisions

Content deleted Content added
m Undid revision 527069910 by 189.122.115.242 (talk) revision made no sense
Jargon
Tags: Mobile edit Mobile web edit
 
(39 intermediate revisions by 31 users not shown)
Line 1:
{{Short description|Type of data structure}}
A '''system image''' in [[computing]] is a copy of the entire [[State (computer science)|state]] of a [[computer system]] stored in some [[Secondary storage|non-volatile]] form such as a [[Computer file|file]]. A system is said to be capable of using system images if it can be shut down and later restored to exactly the same state. In such cases, system images can be used for [[backup]].
{{Refimprove|date=December 2013}}
In [[computing]], a '''system image''' is a [[serialization|serialized]] copy of the entire [[State (computer science)|state]] of a [[computer system]] stored in some [[Computer data storage|non-volatile]] form, such as a binary executable [[Computer file|file]].
 
If a system has all its state written to a disk (i.e. on a [[disk image]]), then a system image can be produced by simply copying thatthe disk to a file elsewhere, often with [[disk cloning]] applications. On many systems a complete system image cannot be created by a disk cloning program running within that system because information can be held outside of disks and volatile memory, for example in non-volatile memory, likesuch as [[boot ROMsROM]]s.
Notebook [[Hibernate (OS feature)|hibernation]] is an example that uses an image of the entire machine's RAM.
 
A '''system image''' in [[computing]] is a copy of the entire [[State (computer science)|state]] of a [[computer system]] stored in some [[Secondary storage|non-volatile]] form such as a [[Computer file|file]]. A system is said to be capable of using system images if it can be shut down and later restored to exactly the same state. In such cases, system images can be used for [[backup]].
==Disk images==
 
{{Main|Disk image}}
[[Hibernation (computing)|Hibernation]] is an example that uses an image of the computer's entire [[Random-access memory|RAM]].
If a system has all its state written to a disk, then a system image can be produced by simply copying that disk to a file elsewhere, often with [[disk cloning]] applications. On many systems a complete system image cannot be created by a disk cloning program running within that system because information can be held outside of disks and volatile memory, for example in non-volatile memory like boot ROMs.
 
==Process images==
A [[Process (computing)|process]] image is a copy of itsa given process's [[State (computer science)|state]] at a given point in time. It is often used forto create [[persistence (computer science)|persistence]] within an otherwise volatile system. A common example is a [[database management system]] (DBMS). Most DBMS can store the state of its [[database]] or databases to a file before being closed down (see [[database dump]]). The DBMS can then be restarted later with the information in the database intact and proceed as though the software had never stopped. Another example would be the [[Hibernate (OS feature)|hibernate]] feature of many operating systems. Here, the state of all [[random-access memory|RAM]] memory is stored to disk, the computer is brought into an energy saving mode, then later restored to normal operation.
 
Some [[porra vai caralhoemulator]]s provide a facility to save an image of the system being emulated. ThisIn video gaming this is often calledreferred to as a [[savestate]].
 
Another use is [[code mobility]]: a [[mobile agent]] can migrate between machines by having its state saved, then copying the data to another machine and restarting there.
 
===Programming language support===
Some [[programming language]]s provide a command to take a system image of a program. This is normally a standard feature in [[Smalltalk]] (inspired by [http://www.mprove.de/diplom/gui/kay68.html FLEX]) and [[Lisp (programming language)|Lisp]], among other languages. Development in these languages is often quite different from many other programming languages. For example, in Lisp the programmer may load packages or other code into a running Lisp [[implementation]] using the [[read-eval-print loop]], which usually compiles the programs. Data is loaded into the running Lisp system. The programmer may then [[ROM image|dump]] a system image, containing that pre-compiled and possibly customized code - andcode—and also all loaded application data.
<!--
It's to avoid the time penalty of recompiling that software like Emacs use images, and modern Common Lisp interpreters, anyway, compile packages as a matter of course (See SBCL, CMUCL, etc.)
-->
Often this image is an executable, and can be run on other machines. This system image can be the form in which executable programs are distributed — thisdistributed—this method has often been used by programs (such as [[TeX]] and [[Emacs]]) largely implemented in Lisp, Smalltalk, or [[idiosyncratic]] languages to avoid spending time repeating the same initialization work every time they start up.
 
Similar, [[Lisp Machine]]s were booted from Lisp images, called Worlds. The World contains the complete operating system, its applications and its data in a single file. It was also possible to save incremental Worlds, that contain only the changes from some base World. Before saving the World, the Lisp Machine operating system could optimize the contents of memory (better memory layout, compacting data structures, sorting data, ...).
Line 24 ⟶ 28:
 
== See also ==
* [[Disk image]]
* [[ISO image]]
 
Line 30 ⟶ 33:
* [http://cryopid.berlios.de/ CryoPID] — A Process Freezer for [[Linux]]
 
[[Category:Lisp programming language]]
[[Category:Smalltalk programming language family]]
[[Category:Operating system technology]]
[[Category:System image| ]]
 
[[kk:Жүйе бейнесі]]
[[lt:Sistemos atvaizdas]]
[[ja:システムイメージ]]