시스템 이미지
System image컴퓨팅에서 시스템 이미지는 파일 등의 비휘발성 형식으로 저장된 컴퓨터 시스템의 전체 상태를 직렬로 복사한 것입니다.시스템을 셧다운하고 나중에 완전히 동일한 상태로 복원할 수 있는 경우 시스템 이미지를 사용할 수 있다고 합니다.이 경우 시스템 이미지를 백업에 사용할 수 있습니다.
최대 절전 모드는 전체 시스템의 RAM 이미지를 사용하는 예입니다.
디스크 이미지
시스템의 모든 상태가 디스크에 쓰여져 있는 경우는, 그 디스크를 다른 파일(대부분의 디스크 클로닝 애플리케이션)에 카피하는 것만으로 시스템이미지를 생성할 수 있습니다.많은 시스템에서는 부트 ROM 등의 비휘발성 메모리 등 디스크나 휘발성 메모리 외부에 정보를 보관할 수 있기 때문에 해당 시스템 내에서 실행되는 디스크 복제 프로그램으로 완전한 시스템 이미지를 생성할 수 없습니다.
이미지 처리
프로세스 이미지는 특정 시점에서의 특정 프로세스 상태의 복사본입니다.휘발성이 없는 시스템 내에서 영속성을 확립하기 위해 자주 사용됩니다.일반적인 예로는 Database Management System(DBMS; 데이터베이스 관리 시스템)이 있습니다.대부분의 DBMS는 데이터베이스 상태를 종료하기 전에 파일에 저장할 수 있습니다(데이터베이스 덤프 참조).데이터베이스 내의 정보를 그대로 유지한 채 나중에 DBMS를 재시작하여 소프트웨어가 정지하지 않은 것처럼 진행할 수 있습니다.다른 예로는 많은 운영 체제의 휴지 상태 기능을 들 수 있습니다.여기서, 모든 RAM 메모리의 상태를 디스크에 격납해, 컴퓨터를 에너지 절약 모드로 한 후, 통상의 동작으로 되돌린다.
일부 에뮬레이터는 에뮬레이트되는 시스템의 이미지를 저장하는 기능을 제공합니다.비디오 게임에서는 이것을 흔히 savestate라고 부릅니다.
또 하나의 용도는 코드 모빌리티입니다.모바일 에이전트는 상태를 저장한 후 데이터를 다른 머신에 복사하고 거기에서 재시작함으로써 머신 간에 이행할 수 있습니다.
프로그래밍 언어 지원
일부 프로그래밍 언어는 프로그램의 시스템 이미지를 촬영하는 명령을 제공합니다.이것은 보통 Smalltalk(FLEX에서 영감을 받은) 및 Lisp(다른 언어)에서 표준 기능입니다.이러한 언어의 발달은 많은 다른 프로그래밍 언어들과 상당히 다릅니다.예를 들어, Lisp에서 프로그래머는 보통 프로그램을 컴파일하는 read-eval-print 루프를 사용하여 실행 중인 Lisp 구현에 패키지 또는 다른 코드를 로드할 수 있습니다.데이터는 실행 중인 리스프 시스템에 로드됩니다.그런 다음 프로그래머는 미리 컴파일된 맞춤형 코드를 포함한 시스템 이미지를 덤프할 수 있으며 모든 애플리케이션 데이터를 로드할 수도 있습니다.대부분의 경우 이 이미지는 실행 파일이며 다른 기계에서 실행할 수 있습니다.이 시스템 이미지는 실행 가능한 프로그램을 배포하는 형식일 수 있습니다.이 방법은 시작할 때마다 같은 초기화 작업을 반복하는 것을 피하기 위해 리스프, Smalltalk 또는 고유 언어로 주로 구현된 프로그램(TeX 및 Emacs 등)에서 자주 사용됩니다.
마찬가지로 Lisp Machines도 Worlds라고 불리는 Lisp 이미지에서 부팅되었습니다.월드에는 완전한 운영 체제, 애플리케이션 및 데이터가 하나의 파일에 포함되어 있습니다.또한 일부 기본 월드의 변경 사항만 포함하는 증분 월드를 저장할 수도 있습니다.Lisp Machine 운영체제는 세상을 구하기 전에 메모리의 내용을 최적화할 수 있었습니다(더 나은 메모리 레이아웃, 데이터 구조 압축, 데이터 정렬 등).
목적은 다르지만 "시스템 이미지"는 코어 덤프와 구조가 비슷한 경우가 많습니다.