KR20140058281A - 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 - Google Patents

빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 Download PDF

Info

Publication number
KR20140058281A
KR20140058281A KR1020120125090A KR20120125090A KR20140058281A KR 20140058281 A KR20140058281 A KR 20140058281A KR 1020120125090 A KR1020120125090 A KR 1020120125090A KR 20120125090 A KR20120125090 A KR 20120125090A KR 20140058281 A KR20140058281 A KR 20140058281A
Authority
KR
South Korea
Prior art keywords
boot
image
boot image
firmware
forming apparatus
Prior art date
Application number
KR1020120125090A
Other languages
English (en)
Other versions
KR101959359B1 (ko
Inventor
임강희
추정훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120125090A priority Critical patent/KR101959359B1/ko
Priority to EP13187539.5A priority patent/EP2728467A1/en
Priority to US14/056,404 priority patent/US9354895B2/en
Publication of KR20140058281A publication Critical patent/KR20140058281A/ko
Application granted granted Critical
Publication of KR101959359B1 publication Critical patent/KR101959359B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

빠른 부팅을 위한 부트 이미지를 업데이트하는 화상형성장치는 이전에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 이용하여 기존 버전의 부트 이미지를 업데이트한다.

Description

빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 {Method for updating boot image for fast booting and image forming apparatus for performing the same}
빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치에 관한다.
최근 전자제품의 많은 기능들이 하드웨어에서 소프트웨어로 변동하고 있다. 이는 하드웨어의 기술 발전으로 인하여 소프트웨어에 대한 제약이 줄어든 것이다. 하지만, 소프트웨어가 다양한 기능을 제공함으로써 소프트웨어의 용량이 커지고 처리가 복잡해 지고 있다. 그리고, 다양한 미들웨어(middleware)를 사용으로 소프트웨어의 개발을 효율적으로 하고 있으나, 다양한 소프트웨어들로 인하여 전자제품의 시스템 부팅 시간 또는 속도는 점점 느려지고 있다. 비록 시스템의 부팅 시간은 시스템의 종류마다 상이하지만, 퍼스널 컴퓨터나 서버 시스템은 장치 드라이버 및 시스템 초기화에 소요되는 부팅 시간이 상당히 길기 때문에, 에너지 낭비 또는 시간 낭비가 크다. 또한, 시스템 부팅 속도는 비단 컴퓨터나 서버 시스템뿐만 아니라, 점차 다양한 기능을 포함하는 디지털 텔레비전, 이동통신 단말기, 내비게이션 등의 전자제품에서도 상당한 문제가 되고 있다. 이와 같은, 최근 전자제품들의 부팅 시간은 짧게는 수십 초에서 길게는 수 분에 이르고 있는 현실이다.
빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치를 제공하는데 있다. 또한, 이 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따르면, 빠른 부팅을 위한 부트 이미지를 업데이트하는 화상형성장치는 상기 화상형성장치에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신하는 인터페이스부; 상기 빠른 부팅을 위한 기존 버전의 제 1 부트 이미지가 저장된 비휘발성 메모리; 및 상기 수신된 새로운 버전의 펌웨어에 새로운 버전의 제 2 부트 이미지가 포함된 경우, 상기 저장된 제 1 부트 이미지가 상기 제 2 부트 이미지로 대체되도록 제어함으로써 부트 이미지를 업데이트하는 프로세서를 포함한다.
다른 일 측면에 따르면, 화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법은 상기 화상형성장치에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신하는 단계; 상기 수신된 새로운 버전의 펌웨어에, 비휘발성 메모리에 저장된 기존 버전의 제 1 부트 이미지를 업데이트하기 위한 새로운 버전의 제 2 부트 이미지가 포함되어 있는지 여부를 판단하는 단계; 및 상기 제 2 부트 이미지가 포함된 것으로 판단된 경우, 상기 저장된 제 1 부트 이미지가 상기 제 2 부트 이미지로 대체되도록 제어함으로써 부트 이미지를 업데이트하는 단계를 포함한다.
또 다른 일 측면에 따르면, 상기 부트 이미지 업데이트 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기된 바에 따르면, 전자제품에 설치된 펌웨어가 업데이트 또는 업그레이드되더라도 부트 이미지를 이용하여 빠른 부팅(fast booting)을 수행함으로써 전자제품의 하드웨어적인 변경 없이 소프트웨어적으로 전자제품의 부팅 속도를 개선할 수 있다. 따라서, 사용자는 부팅 시간의 감소 또는 부팅 속도의 증대로 인해 보다 효율적으로 전자제품을 사용할 수 있다. 특히, 새로운 버전의 펌웨어에 새로운 버전의 부트 이미지가 포함되어 있는바, 펌웨어가 업데이트 또는 업그레이드되더라도 사용자는 부트 이미지를 재생성하는 번거로움을 줄일 수 있다.
도 1a는 본 발명의 일 실시예에 따른 디바이스의 구성도이다.
도 1b는 본 발명의 일 실시예에 따른 화상형성장치의 구성도이다.
도 1c는 본 발명의 일 실시예에 따른 프로세서의 상세 구성도이다.
도 2는 본 발명의 일 실시예에 따른 화상형성장치의 전체 부팅 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 상세 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 파일시스템의 속성이 변경되는 과정을 도시한 상세 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리에 실제로 저장된 파일시스템의 정보가 다를 수 있는 경우를 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다.
도 9는 본 발명의 다른 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다.
도 10은 본 발명의 일 실시예에 따라 사용자 인터페이스부에 표시된 부팅 모드를 선택하는 화면을 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따라 부트 이미지 생성 모드에 따라 부트 이미지가 생성될 때 사용자 인터페이스부에 표시되는 화면을 도시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 빠른 부팅을 수행하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 13은 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치의 빠른 부팅 수행하는 방법의 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치의 빠른 부팅 수행하는 방법의 상세 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 16은 본 발명의 일 실시예에 따른 새로운 버전의 펌웨어에 포함된 펌웨어 이미지들 및 새로운 버전의 부트 이미지를 도시한 도면이다.
도 17은 본 발명의 일 실시예에 따라 펌웨어 업데이트 전과 펌웨어 업데이트 후의 화상형성장치의 시스템 상태를 비교하여 도시한 도면이다.
도 18은 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법의 흐름도이다.
도 19는 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트한 후 업데이트된 부트 이미지로 빠른 부팅을 수행하는 방법의 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 상세히 설명하도록 하겠다.
도 1a는 본 발명의 일 실시예에 따른 디바이스(1)의 구성도이다. 도 1a를 참고하면, 디바이스(1)는 프로세서(10), 메모리부(20), 사용자 인터페이스부(30) 및 네트워크 인터페이스부(40)로 구성된다.
도 1a에서는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예에 관련된 하드웨어 구성요소(hardware component)들만이 도시되었다. 하지만, 본 실시예에 따른 디바이스(1)는 도 1a에 도시된 하드웨어 구성요소들 외에 다른 범용적인 하드웨어 구성요소들이 포함될 수 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
본 실시예에서 디바이스(1)는 일반적으로 사용되는 휴대폰, PDA 등의 모바일 장치 또는 컴퓨터 등과 같은 일종의 컴퓨팅 장치를 포함한다. 또한, 디바이스(1)는 임베디드(embedded) 장치를 포함할 수도 있다.
도 1b는 본 발명의 일 실시예에 따른 화상형성장치(2)의 구성도이다. 도 1b를 참고하면, 화상형성장치(2)는 프로세서(10), 메모리부(20), 사용자 인터페이스부(30), 네트워크 인터페이스부(40), 프린팅부(42), 팩스부(44), 스캐닝부(46), 데이터 변환부(48)로 구성된다. 도 1b에서는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예에 관련된 하드웨어 구성요소(hardware component)들만이 도시되었다. 하지만, 본 실시예에 따른 화상형성장치(2)는 도 1b에 도시된 하드웨어 구성요소들 외에 다른 범용적인 하드웨어 구성요소들이 포함될 수 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1b를 참고하면, 화상형성장치(2)는 도 1a의 디바이스(1)의 일 예로써 디바이스(1)와 유사한 기능을 하는 공통적 구성 요소들인 프로세서(10), 메모리부(20), 사용자 인터페이스부(30), 네트워크 인터페이스부(40)를 포함한다. 따라서, 이하에서는 프로세서(10), 메모리부(20), 사용자 인터페이스부(30), 네트워크 인터페이스부(40)에 대해서는 화상형성장치(2)의 구성 요소들로써 설명하겠으나, 화상형성장치(2)는 디바이스(1)의 일 예에 해당되는바 화상형성장치(2)에 대해 설명된 내용은 디바이스(1)에도 공통적으로 적용될 수 있다.
본 실시예에 따른 화상형성장치(2)는 복사, 인쇄, 스캔, 팩스 송수신, 이메일 전송 등의 기능들을 하나의 장치에서 수행할 수 있는 일반적인 복합기를 포함한다. 이하에서는 화상형성장치(2)가 복합기인 경우를 예로 들어 설명하겠으나, 본 실시예에 따른 화상형성장치(2)는 이에 한정되지 않고 프린터, 스캐너, 팩스 등과 같은 개별적인 장치에 해당될 수 있다.
프로세서(10)는 메모리부(20)에 저장되어 있는 데이터를 이용하여 화상형성장치(2)에 설치된 운영체계(Operating System, OS)의 실행 및 응용 프로그램(application)의 실행을 처리하는 것으로써, 중앙처리장치(CPU)에 해당된다.
도 1c는 본 발명의 일 실시예에 따른 프로세서(10)의 상세 구성도이다. 도 1c를 참고하면, 프로세서(10)는 제어부(110), 부트 이미지 생성부(120), 스와핑부(130), 부팅부(140) 및 로딩부(150)를 포함한다. 이와 같은 프로세서(10)는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서로 구현될 수도 있다. 즉, 다양한 형태의 하드웨어로 구현될 수도 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
다시 도 1a 또는 1b를 참고하면, 메모리부(20)는 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함한다.
휘발성 메모리(210)는 화상형성장치(2)에서 실행되고 있는 운영체계 및 응용 프로그램과 관련된 데이터를 비휘발성 메모리(220)에서 읽어 로드함으로써, 프로세서(10)가 운영체계 및 응용 프로그램과 관련된 데이터에 액세스할 수 있게 한다. 여기서, 휘발성 메모리(210)는 메인 메모리로서 RAM(random access memory)일 수 있다.
비휘발성 메모리(220)는 화상형성장치(2)의 운영체계 및 응용 프로그램의 실행을 위한 데이터를 저장하는 장치로써, 하드 디스크 드라이브(Hard Disk Drive), FRAM(Ferroelectric RAM), MRAM(Magnetoresistive RAM), PRAM(Phase-change RAM) 등과 같이 휘발성 메모리(210)와 달리 화상형성장치(2)의 전원이 꺼져도 저장된 데이터가 소거되지 않는 메모리일 수 있다.
사용자 인터페이스부(30)는 키보드, 마우스, 하드웨어 버튼, GUI의 소프트 키보드와 같은 터치 스크린, 또는 음성 인식 장치 등의 정보 입력 장치를 사용하여 사용자로부터 정보를 입력받는다. 또한, 사용자 인터페이스부(30)는 시각 정보를 표시하기 위한 장치(예를 들어, LCD 화면, LED 화면, 눈금 표시 장치 등) 또는 청각 정보를 제공하기 위한 장치(예를 들어, 스피커 등) 등을 이용하여 화상형성장치(2)에서 처리되는 정보를 사용자에게 보고한다.
네트워크 인터페이스부(40)는 화상형성장치(2)의 주변 기기, 외부의 다른 디바이스 또는 네트워크 등과 통신한다. 예를 들어, 화상형성장치(2)는 네트워크 인터페이스부(40)를 통해 WIFI(50), Bluetooth(52) 기능 등을 구비한 장치들과 통신하거나, 네트워크(58)에 접속하거나, 또는 USB(Universal Serial Bus)(60)와 같은 주변 기기들과 통신한다. 화상형성장치(2)는 또한, IrDA(Infrared Data Association) 네트워크(54) 또는 PSTN(Public Switch Telephone network)(56)과도 통신할 수 있다.
화상형성장치(2)는 전원이 인가된 경우 프로세서(10) 및 메모리부(20) 등의 내부 구성 요소들을 이용하여 자동적으로 부팅된다. 나아가서, 본 실시예에 따른 화상형성장치(2)는 부트 이미지(boot image)를 이용하여 빠른 부팅(fast booting)이 수행되거나, 부트 이미지를 생성하는 과정을 거치면서 부팅이 수행될 수 있다.
여기서, 부트 이미지(boot image)란 부트 이미지가 생성된 특정 시점의 시스템 상태로 복원하면서 화상형성장치(2)를 부팅시키기 위하여 필요한 모든 정보를 포함하는 데이터로서, 하나의 파일로써 생성될 수 있다. 보다 상세하게 설명하면, 부트 이미지는 화상형성장치(2)의 부팅 초기의 시스템 상태에 필요한 정보를 나타내는, 휘발성 메모리의 데이터 및 CPU 레지스터의 데이터를 포함하는 이미지이다. 본 실시예에 따른 부트 이미지는 다른 용어로써 스냅샷 이미지(snapshot image)로도 호칭될 수 있다.
도 2는 본 발명의 일 실시예에 따른 화상형성장치(2)의 전체 부팅 방법을 나타내는 흐름도이다. 도 2를 참고하면, 도 2의 흐름도에 따른 전체 부팅 방법은 도 1b에 도시된 화상형성장치(2)에서 수행되는 부팅 방법이다.
201 단계에서, 프로세서(10)는 화상형성장치(2)에 전원이 인가된 경우 부트로더(bootloader)를 초기화함으로써 화상형성장치(2)의 부팅을 시작한다.
202 단계에서, 프로세서(10)는 화상형성장치(2)의 기존의 하드웨어(H/W) 설정과 변경된 부분이 있는지 여부를 판단한다. 예를 들어, 프로세서(10)는 화상형성장치(2)의 스캐닝부(46), 팩스부(44) 등과 같은 하드웨어(H/W)의 설정에 변경된 부분이 있는지를 판단한다.
203 단계에서, 프로세서(10)는 202 단계에서 하드웨어(H/W) 설정이 변경되지 않았다고 판단된 경우 화상형성장치(2)의 운영체계(OS)를 초기화한다.
204 단계에서, 프로세서(10)는 비휘발성 메모리(220)에 저장된 파일시스템(filesystem)을 검사하고 복구한다. 만약, 파일시스템에 문제가 있다고 검사된 경우, 프로세서(10)는 문제가 있는 파일시스템에 대해 정상적인 파일시스템의 상태로 복구한다.
205 단계에서, 프로세서(10)는 비휘발성 메모리(220)에 부트 이미지가 저장되어 있는지 여부를 판단한다.
206 단계에서, 프로세서(10)는 205 단계에서 부트 이미지가 저장되어 있다고 판단된 경우 저장된 부트 이미지에 에러가 있는지 여부를 검사한다.
207 단계에서, 프로세서(10)는 206 단계에서 저장된 부트 이미지에 에러가 없는 것으로 검사된 경우 비휘발성 메모리(220)에 저장된 부트 이미지를 휘발성 메모리(210)로 로딩한다.
208 단계에서, 프로세서(10)는 로드된 부트 이미지에 기초하여 화상형성장치(2)를 부트 이미지에 포함된 시스템 상태로 복원하여 부팅한다.
209 단계에서, 프로세서(10)는 화상형성장치(2)의 부팅을 완료한다.
210 단계에서, 프로세서(10)는 206 단계에서 저장된 부트 이미지에 에러가 있는 것으로 검사된 경우 저장된 부트 이미지를 복구한다. 저장된 부트 이미지의 복구가 완료된 후, 프로세서(10)는 201 단계의 방법부터 다시 수행한다.
211 단계에서, 프로세서(10)는 202 단계에서 하드웨어(H/W) 설정이 변경된 경우 화상형성장치(2)의 부팅 모드를 판단한다. 여기서, 부팅 모드는 정상 부팅(normal booting) 및 부트 이미지 생성 모드 중 어느 하나이다. 정상 부팅은 일반적으로 사용되는 콜드 부팅(cold booting)을 포함한다.
이 때, 사용자 인터페이스부(30)는 사용자에게 부팅 모드에 대한 선택 화면을 표시하고, 사용자로부터 부팅 모드에 대한 선택을 입력받을 수 있다. 이와 같이, 사용자 인터페이스부(30)를 통해 사용자로부터 부팅 모드에 대한 선택을 입력받은 경우, 화상형성장치(2)는 입력된 부팅 모드에 기초하여 부팅 모드를 판단한다. 또한, 다른 실시예에 따라서는 화상형성장치(2)와 네트워크로 연결된 외부의 다른 디바이스와 네트워크 인터페이스부(40)를 통해 통신함으로써 부팅 모드에 대한 선택을 입력받을 수 있다.
212 단계에서, 프로세서(10)는 211 단계에서 부팅 모드가 부트 이미지 생성 모드로 판단된 경우 부트 이미지를 생성한다.
213 단계에서, 프로세서(10)는 화상형성장치(2)의 상태 등에 따라 시스템 재부팅(system reboot)이 필요한지 여부를 판단한다. 프로세서(10)는 재부팅이 필요한 것으로 판단된 경우 재부팅 후 201 단계의 방법부터 다시 수행한다.
214 단계에서, 프로세서(10)는 212 단계에서 시스템 재부팅이 필요 없는 것으로 판단된 경우 부트 이미지를 다시 로딩하여야 하는지 여부를 판단한다. 프로세서(10)는 부트 이미지를 다시 로딩하여야 하는 것으로 판단된 경우 203 단계의 방법부터 다시 수행한다. 그러나, 부트 이미지를 다시 로딩하지 않아도 되는 것으로 판단된 경우, 209 단계로 진행되어 화상형성장치(2)의 부팅은 완료된다.
215 단계에서, 프로세서(10)는 211 단계에서 부팅 모드가 정상 부팅(normal booting)으로 판단된 경우 운영체계(OS)를 초기화한다. 그리고, 209 단계로 진행되어 화상형성장치(2)의 부팅은 완료된다.
결국, 도 2에 따르면 화상형성장치(2)는 부팅이 시작된 경우 207 단계 내지 208 단계에 따른 빠른 부팅(fast booting), 212 단계에 따른 부트 이미지 생성 모드, 215 단계에 따른 정상 부팅(normal booting)의 세 가지 부팅 모드 중 어느 하나로 진행된다.
이하에서는 빠른 부팅을 위한 부트 이미지 생성 모드에 따라 부트 이미지를 생성하는 과정과, 빠른 부팅을 수행하는 과정에 대하여 보다 상세하게 설명하도록 하겠다.
도 3은 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 3을 참고하면, 화상형성장치(2)는 도 1b에 도시된 바와 같이 프로세서(10) 및 메모리부(20)를 포함한다. 그러나, 본 실시예의 설명의 편의를 위하여 다른 구성 요소들은 생략하여 도시하였다. 또한, 도 3에는 도 1c에 도시된 프로세서(10)의 구성 요소들 중 본 실시예와 관련된 구성 요소들만 도시되었음을 당해 기술분야에서 통상의 지식을 가진 자라면 알 수 있다.
프로세서(10)는 제어부(110), 부트 이미지 생성부(120) 및 스와핑부(130)를 포함한다. 그리고, 메모리부(20)는 도 1b에서 설명한 바와 같이, 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함한다.
도 4는 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 흐름도이다. 도 4를 참고하면, 부트 이미지 생성 방법은 도 3의 화상형성장치(2)에서 시계열적으로 수행되는 방법이다. 따라서, 이하에서는 도 3 및 4를 연계하여 부트 이미지를 생성하는 방법을 설명하도록 하겠다.
401 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS) 및 적어도 하나의 응용 프로그램을 초기화한다.
402 단계에서, 제어부(110)는 초기화가 완료된 상태에서 실행되는 프로세스들 중 운영체계 및 응용 프로그램의 실행에 사용되지 않는 프로세스를 종료한다.
403 단계에서, 제어부(110)는 화상형성장치(2)에서 실행 중인 프로세스들을 정지(suspend)한다.
404 단계에서, 부트 이미지 생성부(120)는 실행 중인 프로세스들이 정지된 동안 휘발성 메모리(210)에 저장된 시스템 상태에 대한 정보에 기초하여 부트 이미지를 생성한다. 이 때, 스와핑부(130)는 생성된 부트 이미지를 비휘발성 메모리(220)에 저장한다.
도 5는 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 상세 흐름도이다. 도 5에 도시된 부트 이미지 생성 방법은 도 4에 도시된 부트 이미지 생성 방법을 보다 상세하게 도시한 흐름도에 해당된다.
501 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS) 및 적어도 하나의 응용 프로그램을 초기화한다. 여기서, 초기화되는 응용 프로그램은 운영체계(OS) 외에, 시스템을 동작시킬 수 있는 응용 프로그램을 의미한다. 화상형성장치(2)의 경우, 복사, 인쇄, 스캔, 팩스, 주소록(Address Book), 다큐먼트 박스(Document Box) 등과 관련된 적어도 하나의 응용 프로그램이 초기화된다. 이 때, 응용 프로그램의 초기화 과정에서 응용 프로그램의 데이터 및 스레드(thread)가 생성된다. 그리고, 응용 프로그램의 초기화 과정에서, 필요한 정보들이 파일, DB, 네트워크 소켓(network socket)으로부터 휘발성 메모리(210)로 로딩된다.
예를 들어, Java와 같은 미들웨어(middleware)가 사용될 경우에는 시스템 사용에 필요한 클래스들(class)도 함께 초기화된다. 하지만, Java와 같이 첫 단계의 수행 속도가 느린 시스템인 경우에는 속도가 느린 초기 단계의 중요 기능들을 초기화시켜 부트 이미지에 저장함으로써, 빠른 부팅 이후의 Java의 부팅 속도를 빠르게 할 수 있다. 왜냐하면, Java의 경우에는 interpreting 기반의 미들웨어로써 첫 번째 코드 수행 시 interpreting과 컴파일(compile)이 함께 수행된다. 다음 코드들의 수행부터는 이미 컴파일이 완료되었기 때문에 수행 속도가 빨라진다.
제어부(110)는 초기화가 완료된 것을 판단하기 위하여 운영체계(OS), 응용 프로그램 각각으로부터 완료 여부를 수신하여 판단할 수 있다.
502 단계에서, 제어부(110)는 USB, Bluetooth 장치 등과 같은 주변 장치(peripheral device)를 모두 정지(suspend)시킨다. 여기서, 주변 장치를 정지시키는 이유는 추후에 부트 이미지를 이용한 빠른 부팅시 추가적인 초기화를 방지하여 부팅 속도를 빠르게 하기 위함이다. 정지될 주변 장치는 예를 들어, 이더넷(ethernet)과 같은 네트워크 장치, USB 장치 등일 수 있다. 또한, 화상형성장치(1)의 경우, 팩스, 스캐너, 프린터 등과 같은 장치가 정지될 수 있다. 또한, 제어부(110)는 화상형성장치(2)의 PCI(peripheral component interconnect) 상태 정보를 저장한다.
503 단계에서, 제어부(110)는 동작 중인 드라이버(driver)들 중 주변 장치의 정지로 인해 불필요한 장치 드라이버(device driver)를 종료한다.
504 단계에서, 제어부(110)는 초기화된 응용 프로그램들 중 부트 이미지에 저장하고자 하는 응용 프로그램의 프로세스(process)를 정지한다. 이는 부트 이미지가 생성되는 동안 응용 프로그램의 프로세스가 진행될 경우에 발생되는 오동작을 방지하기 위함이다.
505 단계에서, 제어부(110)는 운영체계(OS) 및 응용 프로그램의 초기화가 완료된 상태에서 실행되는 프로세스들 중 운영체계 및 응용 프로그램의 실행에 사용되지 않는 프로세스를 종료한다. 예를 들어, 리눅스 운영체계(Linux OS)의 경우 제어부(110)는 samba, ssh, telnet 등의 프로세스를 종료한다. 이와 같이 프로세스를 종료시키는 이유 중 하나는 생성될 부트 이미지의 사이즈를 줄이기 위함이다. 또한, 파일(file)을 사용하는 프로세스의 경우에는 파일(file)이 열린(open) 정보가 그대로 저장되게 되므로, 부트 이미지를 이용한 빠른 부팅 시 이와 같은 프로세스가 잘못된 파일(file) 정보를 참조하지 않게 하기 위함이다. 화상형성장치(2)의 경우, 펌웨어 업데이트(F/W udpate)를 담당하는 프로세스나 개발용 로그를 저장하는 프로세스 등이 종료될 수 있다.
또한, 제어부(110)는 부트 이미지를 생성하는 작업에 사용되지 않는 다른 프로세스도 종료할 수 있다. 나아가서, 제어부(110)는 운영체계(OS) 및 응용 프로그램의 초기화가 완료된 상태에서 실행되는 프로세스들 중 수행 시간이 소정 임계값 이하인 프로세스도 함께 종료할 수 있다. 여기서, 소정 임계값은 사용자의 설정에 따라 변경될 수 있는 임의의 값에 해당된다.
506 단계에서, 제어부(110)는 종료된 프로세스에서 사용된 파일시스템(filesystem) 및 부트 이미지를 생성하는 작업(job)에 사용되지 않는 파일시스템 중 적어도 하나를 언마운트(unmount)한다. 바꾸어 말하면, 제어부(110)는 동작 중인 프로세스들이 사용하고 있지 않는 파일시스템들을 모두 언마운트한다. 화상형성장치(2)의 경우에는, 사용자(User) 정보, 계정(Account) 정보, 히스토리(history) 정보 등이 사용되고 있는 경우 모두 언마운트함으로써, 부트 이미지가 저장될 때 파일시스템을 안전하게 유지시킨다.
507 단계에서, 제어부(110)는 비휘발성 메모리(220)에서 부트 이미지가 저장될 공간을 초기화한다. 예를 들어, 제어부(110)는 비휘발성 메모리(220)의 특정 파티션 등에 저장될 수 있도록 특정 파티션을 초기화할 수 있다. 보다 상세하게 설명하면, 제어부(110)는 비휘발성 메모리(220)에서 사용이 이미 끝난 메모리 공간이지만 소거(free)하지 않고 유지하고 있는 메모리 공간을 의미한다. 특히, Java와 같은 미들웨어(middleware)를 사용할 경우에는 비휘발성 메모리(220)에 있는 불필요한 데이터를 가비지 콜렉션(Garbage collection)을 이용하여 제거할 수 있다. 이와 같이, 제어부(110)가 부트 이미지가 저장될 공간을 초기화하면, 이후에 빠른 부팅시 보다 많은 메모리 공간을 확보하여 동작시킬 수 있다. 따라서, 여유로운 메모리 공간이 미리 확보될 수 있으므로, 추가적으로 가비지 콜렉션(Garbage collection)을 수행하지 않고도 메모리 공간을 확보할 수 있으므로, 시스템 성능 저하를 방지할 수 있다.
제어부(110)는 비휘발성 메모리(220)를 여러 개의 파티션들로 초기화한다. 이와 같이, 복수의 파티션들로 나누는 이유는, 만약 하나의 파티션만이 존재한다면 부트 이미지가 생성될 때 파일시스템의 모든 정보가 부트 이미지에 저장될 수 있다. 이는, 이후에 부트 이미지에 저장된 파일과 파일시스템의 파일 정보가 일치하지 않게 되는 문제의 원인이 될 수 있다. 제어부(110)는 변경될 수 없는 데이터와 변경 가능한 데이터를 별도의 파티션에 저장한다. 화상형성장치(2)의 경우, 변경될 수 없는 데이터는 일반적인 운영체계(OS) 및 펌웨어(F/W) 데이터에 해당될 수 있다. 또한, 화상형성장치(2)의 경우 변경 가능한 데이터는 작업(Job) 히스토리 정보, 계정(account) 정보, 사용자 주소록 등과 같은 데이터와, IP address 등과 같이 사용자에 의해서 변경 가능한 운영체계(OS) 데이터가 포함된다.
508 단계에서, 제어부(110)는 화상형성장치(2)에서 실행 중인 모든 프로세스들을 정지(suspend)한다.
509 단계에서, 부트 이미지 생성부(120)는 실행 중인 프로세스들이 정지된 동안 휘발성 메모리(210)에 저장된 시스템 상태에 대한 정보에 기초하여 부트 이미지를 생성한다. 보다 상세하게 설명하면, 508 단계를 통해 모든 프로세스들이 멈추게 되면, 제어부(110)는 부트 이미지를 생성하기 위한 사전 단계로써 비휘발성 메모리(220)의 부트 이미지의 저장 공간에 헤더(header) 정보를 저장한다. 이와 같이 부트 이미지의 생성 준비가 완료되면, 부트 이미지 생성부(120)는 시스템 상태에 대한 정보를 저장하고 있는 휘발성 메모리(210)의 모든 데이터, CPU(프로세서(10)) 레지스터 값들 및 CPU 캐쉬 정보들에 기초하여 부트 이미지를 생성한다.
즉, 부트 이미지에 포함된 시스템 상태에 대한 정보는 실행 중인 프로세스들이 정지된 상태에서 화상형성장치(2)의 부팅에 필요한 정보를 나타내는, 휘발성 메모리(210)의 데이터 및 CPU(프로세서(10)) 레지스터의 데이터를 포함한다.
510 단계에서, 스와핑부(130)는 생성된 부트 이미지를 비휘발성 메모리(220)에 저장한다. 스와핑부(130)는 비휘발성 메모리(220)의 특정 파일에 또는 특정 파티션에, 생성된 부트 이미지를 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 파일시스템의 속성이 변경되는 과정을 도시한 상세 흐름도이다. 도 6을 참고하면, 도 6에는 파일시스템이 언마운트되는 도 5의 506 단계의 상세 흐름도도 함께 도시되어 있다.
601 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS)를 초기화한다.
602 단계에서, 제어부(110)는 운영체계의 초기화가 완료된 상태에서, 적어도 하나의 파일시스템(filesystem)의 속성을 읽기/쓰기 전용(read/write)의 상태로 변경시킨다.
예를 들어, 제어부(110)는 일 실시예에 따라, 모든 파일시스템의 속성을 읽기/쓰기 전용(read/write)의 상태로 변경시킨다. 이후에 제어부(110)는 아래의 604 단계에서 모든 파일시스템을 언마운트한다. 이와 같이 모든 파일시스템의 속성을 읽기/쓰기 전용(read/write)의 상태로 변경시킨 후 모든 파일시스템을 언마운트하는 이유는, 추후에 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 다를 경우를 방지하기 위함이다.
이에 따라, 생성될 부트 이미지에는 어떠한 파일시스템에 대한 정보도 저장되지 않을 수 있다. 따라서, 부트 이미지를 이용한 빠른 부팅을 수행하는 경우 파일시스템이 다시 마운트(mount) 되어 새롭게 파일시스템에 대한 정보가 운영체계(OS)에 로딩(loading)된다.
하지만, 다른 일 실시예에 따르면, 예를 들어 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 달라질 수 없는 파일시스템에 대해서는 읽기/쓰기 전용(read/write)의 상태로 변경시키지 않거나, 언마운트하지 않을 수 있다.
603 단계에서, 제어부(110)는 적어도 하나의 응용 프로그램을 초기화한다.
604 단계에서, 제어부(110)는 읽기/쓰기 전용(read/write)의 속성으로 변경된 상태를 이용하여 상기 파일시스템을 언마운트한다. 이 때, 제어부(110)는 파일시스템을 언마운트하기 전에 운영체계 및 응용 프로그램이 열고(open) 있는 모든 file/Socket/Database 등을 우선 닫는다(close). 이와 같이 file/Socket/Database 를 닫는(close) 이유는 열려진(open) file/Socket/Database 때문에 정상적으로 언마운트할 수 없는 경우를 방지하고, 파일시스템을 안전하게 보호하기 위함이다. 이에 대해서는 이하의 도 7에서 보다 상세하게 설명하도록 하겠다. 파일시스템이 언마운트되면, 운영체계(OS) 및 응용 프로그램이 열고 있는 파일시스템에 대한 정보가 모두 삭제되게 되므로, 파일시스템은 없는 것으로 간주된 상태로 부트 이미지에 저장된다.
605 단계에서, 부트 이미지 생성부(120)는 부트 이미지를 생성한다.
606 단계에서, 제어부(110)는 부트 이미지의 생성이 완료된 경우, 읽기/쓰기 전용(read/write)의 속성으로 변경된 파일시스템 중 운영체계(OS)에 대한 파일시스템의 속성을 읽기 전용(read only) 상태로 변경시킨다.
607 단계에서, 제어부(110)는 운영체계(OS) 및 응용 프로그램에서 사용되는 파일시스템들과 그 밖의 프로세스들에서 사용되는 파일시스템들을 마운트(mount)한다.
부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 다를 수 있는 경우가 발생될 수 있다고 앞서 설명하였다. 이에 대해서는 이하의 도 7을 참고하여 설명하도록 하겠다.
도 7은 본 발명의 일 실시예에 따라 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 다를 수 있는 경우를 설명하는 도면이다.
도 7을 참고하면, 부트 이미지가 생성될 당시에 휘발성 메모리(210)에는 File A가 저장되어 있으므로, 부트 이미지에는 File A가 저장된다. 이후에, 사용자가 응용 프로그램을 사용하면서 File A를 삭제하고 File B를 사용한 경우 비휘발성 메모리(220)에는 File A 대신에 File B가 저장된다. 차후 사용자가 부트 이미지를 이용한 빠른 부팅을 할 경우 부트 이미지에는 File A가 저장되어 있는바, 응용 프로그램은 비휘발성 메모리(220)로부터 File A를 읽으려고(read) 한다. 하지만, 비휘발성 메모리(220)에는 File A 대신에 File B가 저장되어 있다. 따라서, 응용 프로그램은 File A를 읽을 수 없어 오동작을 하게 된다.
그러므로, 이와 같은 오동작을 방지하기 위해서는 부트 이미지 생성 전에 모든 파일시스템들 또는 적어도 하나의 특정 파일시스템을 언마운트하여야 한다.
도 8은 본 발명의 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다. 도 8을 참고하면, 앞서 도 5의 501 단계의 응용 프로그램이 초기화되는 과정에 대한 상세 흐름도이다.
801 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS)를 초기화한다.
802 단계에서, 제어부(110)는 운영체계(OS)가 초기화되면 화상형성장치(2)에 설치된 적어도 하나의 응용 프로그램을 실행한다.
803 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인지 정상 부팅(normal booting)인지 판단한다. 부팅 모드가 부트 이미지 생성 모드인 경우 804 단계로 진행되고, 부팅 모드가 정상 부팅인 경우 806 단계로 진행된다.
804 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 실행된 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화함으로써, 실행된 응용 프로그램을 초기화한다. 즉, 제어부(110)는 마치 콜드 부팅(cold booting)과 같은 정상 부팅시에 초기화되는 것처럼 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화한다.
805 단계에서, 부트 이미지 생성부(120)는 초기화된 응용 프로그램을 이용하여 부트 이미지를 생성한다.
806 단계에서, 제어부(110)는 부팅 모드가 정상 부팅인 경우 실행된 응용 프로그램을 초기화한다.
807 단계에서, 제어부(110)는 화상형성장치(2)의 정상 부팅을 완료한다.
이와 같이 도 8에 따르면, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 부트 이미지가 생성되기 전에 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화한다.
그러나, 이후에 부트 이미지를 이용한 빠른 부팅을 수행할 경우에는 응용 프로그램의 가변 정보를 재초기화하는 과정이 수행된다. 여기서, 가변 정보는 사용자가 응용 프로그램을 사용하면서 사용자에 의해 변경될 수 있는 데이터 및 스레드를 포함하는 정보를 의미한다. 화상형성장치(2)의 경우, 가변 정보는 작업 히스토리(Job history) 정보, 사용자별 계정(account) 정보, 사용자가 설정한 시스템 옵션, 사용자가 저장한 문서들이 포함된다. 이와 같은 가변 정보는 부트 이미지의 생성 이후에 사용자에 의해 변경되는 정보들로써 빠른 부팅 이후에 재초기화되어야 한다. 즉, 가변 정보는 빠른 부팅 이후 비활성 메모리(220)로부터 다시 독출됨으로써(read-out), 부트 이미지에 저장된 정보가 재초기화된다. 그러나, 만약 재초기화되지 않는다면, 부트 이미지에 저장된 정보가 그대로 사용되게 되어 충돌이 발생될 수 있다. 하지만, 이와 같은 가변 정보에 대해서는 초기화가 두 번 수행될 수 있는바, 불필요한 시간이 낭비될 수 있다.
도 9는 본 발명의 다른 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다. 도 9를 참고하면, 도 8과 마찬가지로 앞서 도 5의 501 단계의 응용 프로그램이 초기화되는 과정에 대한 상세 흐름도이다. 도 9는 도 8과 비교할 때, 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화하지 않는다.
901 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS)를 초기화한다.
902 단계에서, 제어부(110)는 운영체계(OS)가 초기화되면 화상형성장치(2)에 설치된 적어도 하나의 응용 프로그램을 실행한다.
903 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인지 정상 부팅(normal booting)인지 판단한다. 부팅 모드가 부트 이미지 생성 모드인 경우 904 단계로 진행되고, 부팅 모드가 정상 부팅인 경우 906 단계로 진행된다.
904 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 실행된 응용 프로그램에 대한 데이터 및 스레드(thread) 중 사용자에 의해 변경될 수 없는 데이터 및 스레드를 선택적으로 초기화함으로써, 실행된 응용 프로그램을 초기화한다.
905 단계에서, 부트 이미지 생성부(120)는 초기화된 응용 프로그램을 이용하여 부트 이미지를 생성한다.
906 단계에서, 제어부(110)는 부팅 모드가 정상 부팅인 경우 실행된 응용 프로그램을 초기화한다.
907 단계에서, 제어부(110)는 화상형성장치(2)의 정상 부팅을 완료한다.
이와 같이 도 9에 따르면, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 부트 이미지가 생성되기 전에 선택적으로 응용 프로그램의 데이터 및 스레드(thread)를 초기화함으로써 가변 정보가 두 번 초기화되지 않을 수 있다. 즉, 가변 정보는 부트 이미지 생성을 위해서는 초기화되지 않고 빠른 부팅시에만 초기화되기 때문에 부트 이미지를 생성하는 시간을 줄일 수 있다.
다시 도 1b를 참고하면, 사용자 인터페이스부(30)는 정보 입력 장치를 사용하여 사용자로부터 정보를 입력받거나, 화상형성장치(2)에서 처리되는 정보를 사용자에게 보고한다.
도 10은 본 발명의 일 실시예에 따라 사용자 인터페이스부(30)에 표시된 부팅 모드를 선택하는 화면을 도시한 도면이다. 앞서 설명한 바와 같이, 부팅 모드는 빠른 부팅(fast booting), 정상 부팅(normal booting) 및 부트 이미지 생성 모드를 포함한다. 사용자는 사용자 인터페이스부(30)를 통해 도 10과 같은 화면에서 부팅 모드를 선택할 수 있다.
도 11은 본 발명의 일 실시예에 따라 부트 이미지 생성 모드에 따라 부트 이미지가 생성될 때 사용자 인터페이스부(30)에 표시되는 화면을 도시한 도면이다. 도 11을 참고하면, 부트 이미지를 생성하는 진행 상황에 대해 도시되어 있다. 특히, 진행 상황은 백분율과 같은 숫자(10) 또는 그래프(20) 등의 다양한 형태로 표시될 수 있다. 나아가서, 사용자에게 필요한 메세지(30)도 함께 표시될 수 있다.
이와 같은 도 10 및 11의 화면 구성은 일 실시예에 해당될 뿐, 다른 형태로 변경될 수 있음을 당해 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
이제까지, 화상형성장치(2)에서 부트 이미지를 생성하는 과정에 대해 살펴보았다. 이하에서는 화상형성장치(2)에서 생성된 부트 이미지를 이용하여 빠른 부팅을 수행하는 과정에 대해 살펴보도록 하겠다.
도 12는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 빠른 부팅을 수행하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 12를 참고하면, 화상형성장치(2)는 도 1b에 도시된 바와 같이 프로세서(10) 및 메모리부(20)를 포함한다. 그러나, 본 실시예의 설명의 편의를 위하여 다른 구성 요소들은 생략하여 도시하였다. 또한, 도 12에는 도 1c에 도시된 프로세서(10)의 구성 요소들 중 본 실시예와 관련된 구성 요소들만 도시되었음을 당해 기술분야에서 통상의 지식을 가진 자라면 알 수 있다.
프로세서(10)는 부팅부(140) 및 로딩부(150)를 포함한다. 그리고, 메모리부(20)는 도 1b에서 설명한 바와 같이, 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함한다.
도 13은 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치(2)의 빠른 부팅을 수행하는 방법의 흐름도이다. 도 13을 참고하면, 부트 이미지를 이용한 빠른 부팅 방법은 도 12의 화상형성장치(2)에서 시계열적으로 수행되는 방법이다. 따라서, 이하에서는 도 12 및 13을 연계하여 부트 이미지를 이용한 빠른 부팅 방법을 설명하도록 하겠다.
1301 단계에서, 부팅부(140)는 화상형성장치(2)의 전원이 인가된 경우 화상형성장치(2)의 부팅을 시작한다. 즉, 부팅부(140)는 부트로더를 초기화한다.
1302 단계에서, 로딩부(150)는 화상형성장치(2)에 미리 저장된 부트 이미지를 로드한다. 여기서, 부트 이미지는 앞서 설명된 부트 이미지에 해당된다. 보다 상세하게 설명하면, 1301 단계의 부팅이 시작되기 전에 미리 저장된, 화상형성장치(2)에 설치된 운영체계(OS) 및 적어도 하나의 응용 프로그램의 초기화가 완료된 상태에서 실행되는 프로세스들 중 운영체계 및 응용 프로그램의 실행에 사용되지 않는 프로세스가 종료된 후 화상형성장치(2)에서 실행 중인 프로세스들이 정지된 동안의 시스템 상태에 대한 정보가 포함된 부트 이미지이다.
1303 단계에서, 부팅부(140)는 로드된 부트 이미지에 기초하여 화상형성장치(2)를 부트 이미지에 포함된 시스템 상태로 복원한다.
도 14는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치(2)의 빠른 부팅을 수행하는 방법의 상세 흐름도이다. 도 14에 도시된 빠른 부팅 방법은 도 13에 도시된 빠른 부팅 방법을 보다 상세하게 도시한 흐름도에 해당된다.
1401 단계에서, 부팅부(140)는 부팅 모드가 부트 이미지를 이용한 빠른 부팅인 경우 현재 화상형성장치(2)에서 동작 중인 프로세스들을 정지(suspend)한다.
1402 단계에서, 부팅부(140)는 프로세스들의 정지가 완료된 경우 화상형성장치(2)가 정지되도록 제어한다. 화상형성장치(2)가 정지되면, 화상형성장치(2)의 네트워크 장치와 USB 장치와 같은 주변 장치들도 함께 정지된다. 또한, 화상형성장치(2)의 프린팅부, 팩스부 등과 같은 내부 장치들도 함께 정지될 수 있다.
이와 같이 1401 단계에서 프로세스들을 정지시키고 1402 단계에서 화상형성장치(2)를 정지시키는 이유는, 부트 이미지를 로드하기 위한 준비 과정들에 해당된다.
1403 단계에서, 로딩부(150)는 비휘발성 메모리(220)에 미리 저장된 부트 이미지를 휘발성 메모리(210)로 로드한다.
1404 단계에서, 부팅부(140)는 로드된 부트 이미지에 기초하여 화상형성장치(2)를 부트 이미지에 포함된 시스템 상태로 복원한다.
1405 단계에서, 부팅부(140)는 정지된 프로세스들을 다시 실행하고, 화상형성장치(2)를 다시 구동한다.
1406 단계에서, 부팅부(140)는 운영체계(OS), 응용 프로그램 및 다시 실행된 프로세스들에서 사용되는 파일시스템들을 마운트(mount)한다. 예를 들어, 화상형성장치(2)에서 마운트되는 파일시스템들은 사용자 문서, 사용자 주소록, 임시 프린트 데이터, 스캔 이미지 데이터 등을 포함한다. 하지만, 이에 한정되지 않고 다른 사용자 정보들에 대한 파일시스템도 마운트될 수 있다.
1407 단계에서, 부팅부(140)는 추가적으로 필요한 프로세스들을 실행한다. 예를 들어, 리눅스 운영체계(Linux OS)의 경우 부팅부(140)는 samba 또는 ssh 등과 같은 프로세스들을 추가적으로 실행할 수 있다. 또한, 화상형성장치(2)의 펌웨어(F/W)를 업데이트하는 응용 프로그램의 프로세스, 사용자 및 개발 로그 등을 저장할 수 있는 프로그램의 프로세스, 사용자에 의해 직접 설치된 프로그램의 프로세스 등이 실행될 수 있다. 하지만, 추가적으로 실행할 프로세스가 없는 경우 부팅부(140)는 1407 단계를 생략할 수 있다.
1408 단계에서, 부팅부(140)는 화상형성장치(2)에 필요한 주변 장치를 구동하기 위한 장치 드라이버(device driver)를 실행한다. 예를 들어, 부팅부(140)는 USB 장치와 같은 주변 장치를 구동하기 위한 USB driver를 실행한다. 또한, 예를 들어 화상형성장치(2)의 프린팅부(42), 팩스부(44), 스캐닝부(46) 등과 통신할 수 있는 드라이버를 실행한다.
1409 단계에서, 부팅부(140)는 1408 단계에서 실행된 장치 드라이버(device driver)에 따라 주변 장치를 구동한다. 즉, 앞서 설명한 바와 같이 부팅부(140)는 주변 장치와 통신하여 초기화 여부 및 동작 가능 상태를 확인하고 주변 장치를 구동한다. 예를 들어, 부팅부(140)는 화상형성장치(2)의 프린팅부(42), 팩스부(44), 스캐닝부(46) 등을 구동한다.
1410 단계에서, 부팅부(140)는 부트 이미지에 초기화되어 저장된 응용 프로그램을 다시 실행한다.
1411 단계에서, 부팅부(140)는 응용 프로그램을 재초기화한다. 이 때, 부팅부(140)는 앞서 설명된 응용 프로그램의 가변 정보와 같이 사용자에 의해 변경될 수 있는 데이터 및 스레드(thread)를 초기화할 수 있다. 보다 상세하게 설명하면, 재초기화가 필요한 가변 정보는 사용자 및 시스템에 의해 변경이 일어나는 데이터들로, 예를 들어 히스토리 정보, 카운트(count) 정보, 옵션 정보 등을 포함한다. 화상형성장치(2)의 경우 가변 정보는 작업(Job) 히스토리 정보 및 사용자 사용 이력 정보, 토너(toner) 및 트레이(tray) 정보, 네트워크 설정 정보 등을 포함한다. 또한, 가변 정보는 사용자에 의해 변경된 응용 프로그램의 옵션 정보, 복사(copy) 기능에서 사용자에 의해 설정된 옵션 정보 등을 포함한다.
1412 단계에서, 부팅부(140)는 화상형성장치(2)의 빠른 부팅을 완료한다.
이제까지, 화상형성장치(2)에서 부트 이미지를 이용하여 빠른 부팅을 수행하는 과정에 대해 살펴보았다. 이와 같이 부트 이미지를 이용하여 빠른 부팅을 수행할 경우에는 정상 부팅과 달리 부트 이미지에 저장된 시스템 상태부터 부팅되므로, 화상형성장치(2)의 부팅 속도를 개선시킬 수 있다. 특히, 부팅 속도가 느린 미들웨어를 사용해야 하는 시스템의 경우 부팅 시간이 많이 걸린다. 예를 들어, Java와 같은 미들웨어를 사용하는 시스템은 C언어 기반의 시스템에 비하여 부팅 속도가 늦을 수 밖에 없다. 나아가서, Spring framework과 같은 프레임워크(framework)를 Java에서 사용할 경우에는 프로그램 개발 편의성 및 확장성을 제공해 줄 수 있지만, 부팅 속도가 현저히 느려질 수 있다. 본 실시예에 따라 생성된 부트 이미지를 이용하여 시스템을 부팅할 경우에는 아래의 표 1과 같이 부팅 속도 또는 부팅 시간이 개선될 수 있다.
표 1은 ARM CPU 800Mhz 및 512MB RAM을 가진 복합기(MFP)에서 정상 부팅과 빠른 부팅에서의 각각의 기능들의 활성화 시간을 비교한 표이다. 다만, 표 1의 시간은 본 실시예를 설명하기 위한 하나의 예시일 뿐, 본 실시예는 이에 한정되지 않는다.
구분 COPY 화면 표시 시점 Printing 가능 시점 전체 부팅 완료 시점
정상 부팅
(cold booting)
3분 40초 5분 30초 10분 20초
부트 이미지를 이용한 빠른 부팅 1분 10초 1분 10초 2분
다시 도 1b를 참고하면, 화상형성장치(2)에는 다양한 종류의 소프트웨어들이 미리 설치되어 있다. 예를 들어, 화상형성장치(2)에는 펌웨어(firmware), 운영체계(OS), 응용 프로그램 등이 설치되어 있다. 그리고, 이와 같은 소프트웨어들은 비휘발성 메모리(220)에 저장된다.
사용자는 화상형성장치(2)에 이미 설치된 소프트웨어들을 변경하고자 할 경우가 있다. 예를 들면, 사용자는 화상형성장치(2)에 설치된 기존 버전의 펌웨어(firmware, F/W)를 새로운 버전의 펌웨어로 업데이트 또는 업그레이드하고자 할 수 있다.
하지만, 기존 버전의 펌웨어가 동작하는 시스템하에서 비휘발성 메모리(220)에는 이미 설치된 기존 버전의 펌웨어의 실행에 필요한 데이터들이 저장되어 있다. 또한, 화상형성장치(2)는 이와 같이 저장된 기존 데이터들을 이용하여 구동(예를 들어, 부팅)된다.
화상형성장치(2)가 새로운 버전의 펌웨어로 업데이트되는 경우, 비휘발성 메모리(220)에 저장된 데이터들이 변경될 수 있다. 이로 인하여, 기존 버전의 펌웨어가 동작하는 시스템하에서 생성된 기존 버전의 부트 이미지는 비휘발성 메모리(220)의 변경된 데이터를 이용할 수 없으므로, 기존 버전의 부트 이미지를 실행하는데 있어 문제가 생길 수 있다. 즉, 새로운 버전의 펌웨어가 동작하는 시스템에서는 기존 버전의 부트 이미지로 빠른 부팅을 수행할 수 없을 수 있다. 이와 같은 경우에는 기존 버전의 부트 이미지를 새로운 버전의 부트 이미지로 업데이트하여야 한다.
기존 버전의 펌웨어가 새로운 버전의 펌웨어로 업데이트되는 경우에, 부트 이미지를 업데이트하는 과정에 대해서 이하에서 설명하도록 하겠다.
도 15는 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 15의 화상형성장치(2)에는 본 실시예의 설명과 관련된 구성 요소들만이 도시되어 있고, 도 1b의 화상형성장치(2)의 나머지 구성 요소들은 생략되어 도시되었다. 하지만, 이는 설명의 편의를 위한 것일 뿐, 도 15의 화상형성장치(2)에 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
도 15를 참고하면, 화상형성장치(2)는 프로세서(10), 메모리부(20) 및 인터페이스부(400)를 포함한다. 프로세서(10)는 부트 이미지 생성부(120) 및 업데이트부(160)를 포함한다.
인터페이스부(400)는 화상형성장치(2)에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신한다. 여기서, 인터페이스부(400)는 도 1b에 도시된 네트워크 인터페이스부(40)와 같은 기능을 수행하는 장치로서, 유/무선 랜카드, USB 포트, Bluetooth 모듈 등과 같이 외부 네트워크, USB 장치 등으로부터 펌웨어를 수신하는 기능을 수행하는 장치이다.
펌웨어의 업데이트 전, 메모리부(20)의 비휘발성 메모리(220)에는 앞서 설명한 바와 같이, 생성된 기존 버전의 부트 이미지가 저장되어 있다. 빠른 부팅이 수행될 경우, 메모리부(20)의 휘발성 메모리(210)는 비휘발성 메모리(220)에 저장된 기존 버전의 부트 이미지를 로드하여 빠른 부팅을 수행한다.
하지만, 펌웨어가 업데이트된 경우에 비휘발성 메모리(220)에 저장된 다른 부팅에 관련된 다른 데이터들은 펌웨어의 업데이트에 의해 변경될 수 있기 때문에, 휘발성 메모리(210)는 기존 버전의 부트 이미지를 로드하여서는 빠른 부팅을 정상적으로 수행할 수 없다.
프로세서(10)의 업데이트부(160)는 수신된 새로운 버전의 펌웨어에 새로운 버전의 부트 이미지가 포함되어 있는지 여부를 먼저 판단한다. 그리고, 업데이트부(160)는 판단 결과에 따라 업데이트를 수행한다.
프로세서(10), 특히 업데이트부(160)는 수신된 새로운 버전의 펌웨어에 새로운 버전의 부트 이미지가 포함된 경우, 저장된 기존 버전의 부트 이미지가 새로운 버전의 부트 이미지로 대체되도록 제어함으로써 부트 이미지를 업데이트한다. 보다 상세하게 설명하면, 업데이트부(160)는 새로운 버전의 부트 이미지가 포함된 것으로 판단된 경우, 비휘발성 메모리(220)에 저장된 기존 버전의 부트 이미지를 삭제하고, 수신된 새로운 버전에 포함된 새로운 버전의 부트 이미지를 비휘발성 메모리(220)로 복사한다.
화상형성장치(2)가 리눅스(Linux) 시스템인 경우, 기존 버전의 부트 이미지가 저장되어 있는 비휘발성 메모리(220)는 swap 형식으로 포맷되어 있을 수 있다. 따라서, 일반 file을 복사하는 것처럼, 다음과 같은 디스크 입출력 프로그램을 이용하여 새로운 버전의 부트 이미지를 업데이트할 수 있다.
"dd if=snapshot_file of=/dev/memory1"
여기서, 'snapshot_file'은 업데이트부(160)가 업데이트할 새로운 버전의 부트 이미지에 대한 바이너리 파일이고, '/dev/memory1'은 새로운 버전의 부트 이미지를 저장할 비휘발성 메모리를 의미한다.
다만, 위와 같은 디스크 입출력 프로그램은 예시적인 것일 뿐이다. 따라서, 화상형성장치(2)가 다른 종류의 시스템으로 구현될 경우, 다른 디스크 입출력 프로그램을 이용할 경우 등에는 다른 방식으로 새로운 버전의 부트 이미지를 업데이트(복사)할 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
새로운 버전의 부트 이미지는 새로운 버전의 펌웨어에 의해 업데이트될 화상형성장치(2)의 시스템의 부팅 과정에서의 시스템 상태를 나타내는 정보를 포함한다. 예를 들어, 새로운 버전의 부트 이미지는 새로운 버전의 펌웨어에 의해 업데이트될 화상형성장치(2)의 하드웨어(H/W) 설정 또는 부팅 과정에서 수행되는 프로세스들에 대한 정보가 포함될 수 있고, 또한 새로운 버전의 펌웨어에 포함된 새로운 버전의 운영체계(OS) 및 응용 프로그램과 관련된 파일시스템(filesystem) 정보 등을 포함할 수 있다. 화상형성장치(2)의 경우, 새로운 버전의 부트 이미지는 주소록(Address Book), 다큐먼트 박스(Document Box) 등과 관련된 새로운 버전의 응용 프로그램과 관련된 파일시스템 정보 등을 포함할 수 있다.
새로운 버전의 펌웨어로의 업데이트 또는 업그레이드가 수행된 경우, 펌웨어 업데이트 전의 화상형성장치(2)의 시스템과 펌웨어 업데이트 후의 화상형성장치(2)의 시스템은 서로 동일하지 않기 때문에, 부트 이미지를 새롭게 재생성하여야만 추후에 빠른 부팅을 정상적으로 수행할 수 있었다. 하지만, 부트 이미지의 재생성에 소요되는 시간은 매우 길기 때문에 사용자에게 불편을 초래할 수 있고, 이에 따른 서비스 비용도 증가하게 될 가능성이 있다.
그러나, 본 실시예에 따라 부트 이미지를 업데이트하는 프로세서(10)(특히, 업데이트부(160))는 비휘발성 메모리(220)에서 기존 버전의 부트 이미지를 삭제한 후 새로운 버전의 펌웨어에 포함된 새로운 버전의 부트 이미지를 비휘발성 메모리(220)에 바로 복사하기 때문에, 부트 이미지를 처음부터 재생성하여야 하는 번거로움을 줄일 수 있다.
한편, 프로세서(10)이 부트 이미지 생성부(120)는 업데이트부(160)에서 새로운 부트 이미지의 업데이트를 실패하거나 업데이트된 새로운 부트 이미지를 이용한 빠른 부팅을 실패할 경우, 앞서 설명된 빠른 부팅을 위한 부트 이미지의 생성 과정(도 1a 내지 도 11의 설명 참고)을 이용하여 부트 이미지를 재생성한다.
도 16은 본 발명의 일 실시예에 따른 새로운 버전의 펌웨어에 포함된 펌웨어 이미지들 및 새로운 버전의 부트 이미지를 도시한 도면이다. 도 16을 참고하면, 새로운 버전의 펌웨어(1600)는 펌웨어 이미지 A(Firmware A)(1610), 펌웨어 이미지 B(Firmware B)(1620), 펌웨어 이미지 C(Firmware C)(1630) 및 새로운 버전의 부트 이미지(New version Boot Image)(1640)를 포함한다. 여기서, 펌웨어 이미지들(1610, 1620, 1630)의 개수는 임의의 개수이다.
이와 같은 새로운 버전의 펌웨어(1600)는 인터페이스부(400)를 통해 수신된다.
업데이트부(160)는 새로운 버전의 펌웨어(1600)에서 펌웨어 이미지들(1610, 1620, 1630) 및 새로운 버전의 부트 이미지(1640)를 각각 추출한다. 도 16을 참고하면, 펌웨어 이미지들(1610, 1620, 1630) 및 새로운 버전의 부트 이미지(1640) 각각에는 이미지 종류를 구분하는 '$IMG_...'와 같은 헤더가 있다. 업데이트부(160)는 이 헤더를 이용하여 펌웨어 이미지들(1610, 1620, 1630) 및 새로운 버전의 부트 이미지(1640)를 각각 추출한다.
업데이트부(160)는 펌웨어 이미지들(1610, 1620, 1630) 및 새로운 버전의 부트 이미지(1640) 각각의 에러를 검사하고, 에러가 없는 것으로 검사된 이미지를 이용하여 펌웨어 업데이트 또는 부트 이미지 업데이트를 수행한다.
이 때, 업데이트부(160)는 펌웨어 이미지들(1610, 1620, 1630) 및 새로운 버전의 부트 이미지(1640) 각각에 대한 체크섬(checksum)을 이용하여 에러를 검사할 수 있다. 또한, 이 밖에도 업데이트부(160)는 당해 기술분야의 통상의 기술자에게 이미 알려진 다른 에러 검사 방법을 이용할 수도 있다.
예를 들어 설명하면, 펌웨어 이미지 A(Firmware A)(1610), 펌웨어 이미지 B(Firmware B)(1620) 및 새로운 버전의 부트 이미지(1640)의 체크섬들(1611, 1621, 1641)의 검사 결과 에러가 없는 경우, 업데이트부(160)는 펌웨어 이미지 A(Firmware A)(1610) 및 펌웨어 이미지 B(Firmware B)(1620)를 이용하여 펌웨어를 업데이트하고, 새로운 버전의 부트 이미지(1640)를 이용하여 부트 이미지를 업데이트한다. 하지만, 만약 새로운 버전의 부트 이미지(1640)의 체크섬(1641)의 검사 결과 에러가 있는 경우, 업데이트부(160)는 펌웨어 이미지들(1610, 1620, 1630)만으로도 업데이트를 수행할 수 있다.
나아가서, 업데이트부(160)는 펌웨어 이미지들(1610, 1620, 1630) 및 새로운 버전의 부트 이미지(1640) 각각의 호환성을 검사를 검사하고, 화상형성장치(2)와의 호환성에 문제가 없는 것으로 검사된 이미지를 이용하여 업데이트를 수행할 수 있다.
결국, 부트 이미지의 업데이트의 경우, 업데이트부(160)는 비휘발성 메모리(220)에 저장되어 있던 기존 버전의 부트 이미지를 삭제하고 새로운 버전의 부트 이미지(1640)를 비휘발성 메모리(220)에 복사함으로써, 부트 이미지의 업데이트를 완료한다.
도 17은 본 발명의 일 실시예에 따라 펌웨어 업데이트 전(1701)과 펌웨어 업데이트 후(1702)의 화상형성장치(2)의 시스템 상태를 비교하여 도시한 도면이다.
도 17을 참고하면, 펌웨어 업데이트 전(1701)의 비휘발성 메모리(220)에는 File 1, File 2 및 File 3이 저장되어 있다. 그리고, 빠른 부팅을 위한 부트 이미지의 생성 과정(도 1a 내지 도 11의 설명 참고)에서 비휘발성 메모리(220)의 File 1, File 2 및 File 3는 휘발성 메모리(210)로 로드된다. 펌웨어 업데이트 전(1701)에 생성된 기존 버전의 부트 이미지(1710)에는 휘발성 메모리(210)에 로드된 File 1, File 2 및 File 3와 임시 데이터(Temp Data)에 기초하여 생성된다.
새로운 버전의 펌웨어(New Version F/W)(1700)에 의한 펌웨어 업데이트 후(1702), 비휘발성 메모리(220)에 저장되어 있던 File 1, File 2 및 File 3는 File A, File B 및 File C로 변경(대체)된다. 이에 따라, 이후에 빠른 부팅이 수행될 경우 휘발성 메모리(210)에는 File 1, File 2 및 File 3이 아닌, File A, File B 및 File C가 로드된다.
따라서, 앞서 설명한 바와 같이, 펌웨어 업데이트 후(1702)에 기존 버전의 부트 이미지(1710)를 이용한 빠른 부팅을 시도할 경우, 기존 버전의 부트 이미지(1710)의 File 1, File 2 및 File 3는 더 이상 비휘발성 메모리(220)에 저장되어 있지 않으므로, 빠른 부팅을 수행할 수 없는 현상이 발생되게 된다.
새로운 버전의 펌웨어(New Version F/W)(1700)에는 새로운 버전의 부트 이미지(1720)가 포함되어 있다. 업데이트부(160)는 비휘발성 메모리(220)에서 기존 버전의 부트 이미지(1710)를 삭제하고 새로운 버전의 부트 이미지(1720)를 비휘발성 메모리(220)에 복사함으로써, 부트 이미지를 업데이트한다. 이에 따라, 펌웨어 업데이트 후(1702) 빠른 부팅이 수행될 경우, 펌웨어 업데이트 후(1702)에 비휘발성 메모리(220)에 저장된 File A, File B 및 File C와 동일한 새로운 버전의 부트 이미지(1720)의 File A, File B 및 File C가 휘발성 메모리(210)에 로드되므로, 빠른 부팅이 정상적으로 수행될 수 있다.
다시 도 15를 참고하면, 프로세서(10)는 펌웨어 업데이트가 완료된 후, 대체된 새로운 버전의 부트 이미지를 이용하여 빠른 부팅을 시도한 결과 임계 횟수만큼 빠른 부팅이 실패될 경우에는, 앞서 설명된 정상 부팅 모드로 전환하여 정상 부팅이 수행되도록 제어한다. 나아가서, 프로세서(10)는 새로운 버전의 부트 이미지를 이용하여 임계 횟수만큼 빠른 부팅이 실패될 경우, 새로운 버전의 부트 이미지를 삭제하고 빠른 부팅을 위한 부트 이미지의 생성 과정(도 1a 내지 도 11의 설명 참고)을 통해 부트 이미지를 재생성한다. 여기서, 임계 횟수는 사용자의 사용 환경에 의해 임의로 설정될 수 있는 횟수이다.
한편, 화상형성장치(2)의 사용자 인터페이스부(30)는 부트 이미지 업데이트 또는 펌웨어 업데이트를 수행하는 과정들에 대한 정보를 사용자에게 제공하고, 사용자로부터 업데이트 과정들에 대한 명령을 수신한다. 예를 들어, 사용자 인터페이스부(30)는 부트 이미지 업데이트 또는 펌웨어 업데이트의 진행 상황에 대한 정보 또는 옵션에 대한 정보 등을 사용자에게 표시할 수 있다. 또한, 사용자 인터페이스부(30)는 부트 이미지 업데이트 또는 펌웨어 업데이트의 시작에 관한 명령, 업데이트할 펌웨어 이미지 또는 부트 이미지의 선택에 관한 명령 또는 정상 부팅 모드로의 전환에 관한 명령 등 업데이트 과정에 필요한 명령들을 사용자로부터 수신할 수 있다.
도 18은 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법의 흐름도이다. 도 18을 참고하면, 본 실시예에 따른 부트 이미지의 업데이트 방법은 앞서 설명된 도면들의 화상형성장치(2)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 화상형성장치(2)에 관하여 이상에서 기술된 내용은 본 실시예에 따른 부트 이미지의 업데이트 방법에도 적용된다.
1801 단계에서, 인터페이스부(400)는 화상형성장치(2)에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신한다.
1802 단계에서, 프로세서(10)는 수신된 새로운 버전의 펌웨어에, 비휘발성 메모리(220)에 저장된 기존 버전의 부트 이미지를 업데이트하기 위한 새로운 버전의 부트 이미지가 포함되어 있는지 여부를 판단한다.
1803 단계에서, 프로세서(10)는 새로운 버전의 부트 이미지가 포함된 것으로 판단된 경우, 기존 버전의 부트 이미지가 새로운 버전의 부트 이미지로 대체되도록 제어함으로써 부트 이미지를 업데이트한다. 여기서, 프로세서(10)는 비휘발성 메모리(220)에 저장된 기존 버전의 부트 이미지를 삭제하고, 새로운 버전의 부트 이미지를 비휘발성 메모리(220)에 복사한다.
도 19는 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지를 업데이트한 후 업데이트된 부트 이미지로 빠른 부팅을 수행하는 방법의 흐름도이다. 도 19에 일부 도시된 부트 이미지 업데이트 방법은 도 18에 도시된 부트 이미지 업데이트 방법에 해당된다.
1901 단계에서, 인터페이스부(400)는 화상형성장치(2)에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신한다.
1902 단계에서, 프로세서(10)는 수신된 새로운 버전의 펌웨어에, 비휘발성 메모리(220)에 저장된 기존 버전의 부트 이미지를 업데이트하기 위한 새로운 버전의 부트 이미지가 포함되어 있는지 여부를 판단한다. 만약, 새로운 버전의 부트 이미지가 포함되어 있는 경우, 프로세서(10)는 1903 단계를 수행한다. 그러나, 새로운 버전의 부트 이미지가 포함되어 있지 않은 경우, 프로세서(10)는 부트 이미지의 업데이트를 종료한다. 이 때, 부트 이미지의 업데이트가 종료되더라도 펌웨어의 업데이트는 별개의 과정으로 수행될 수 있다.
1903 단계에서, 프로세서(10)는 새로운 버전의 부트 이미지에 에러가 있는지 여부 또는 화상형성장치(2)와의 호환성이 있는지 여부를 검사한다. 만약, 새로운 버전의 부트 이미지에 에러가 없고 호환성이 있는 경우, 프로세서(10)는 1904 단계를 수행한다. 그러나, 새로운 버전의 부트 이미지에 에러가 있거나 호환성이 없는 경우, 프로세서(10)는 부트 이미지의 업데이트를 종료한다. 이 때, 부트 이미지의 업데이트가 종료되더라도 펌웨어의 업데이트는 별개의 과정으로 수행될 수 있다.
1904 단계에서, 프로세서(10)는 비휘발성 메모리(220)에 저장되어 있는 기존 버전의 부트 이미지를 삭제한다.
1905 단계에서, 프로세서(10)는 새로운 버전의 펌웨어에 포함된, 기존 버전의 부트 이미지를 대체하는 새로운 버전의 부트 이미지를 비휘발성 메모리(220)에 복사한다. 이로써, 부트 이미지의 업데이트는 완료될 수 있다.
1906 단계에서, 프로세서(10)는 새로운 버전의 펌웨어의 업데이트를 수행한다.
1907 단계에서, 프로세서(10)는 펌웨어가 업데이트된 시스템에서 화상형성장치(2)가 동작될 수 있도록 화상형성장치(2)의 시스템을 재부팅한다. 이 때, 화상형성장치(2)는 업데이트된 새로운 버전의 부트 이미지를 이용하여 빠른 부팅을 수행할 수 있다.
1908 단계에서, 프로세서(10)는 새로운 버전의 부트 이미지를 이용하여 빠른 부팅이 성공하였는지 여부를 판단한다.
만약, 새로운 버전의 부트 이미지를 이용한 빠른 부팅을 성공한 경우, 프로세서(10)는 1909 단계를 수행한다.
그러나, 새로운 버전의 부트 이미지를 이용한 빠른 부팅의 시도가 임계횟수(TH) 이하로 실패한 경우, 프로세서(10)는 1907 단계를 다시 수행하여 화상형성장치(2)의 시스템을 재부팅한다.
다만, 새로운 버전의 부트 이미지를 이용한 빠른 부팅의 시도가 임계횟수(TH)를 초과하여 실패한 경우, 프로세서(10)는 1910 단계를 수행한다.
1909 단계에서, 프로세서(10)는 빠른 부팅을 완료시킴으로써, 화상형성장치(2)의 부트 이미지 업데이트 및 부팅 과정을 종료한다.
1910 단계에서, 프로세서(10)는 새로운 버전의 부트 이미지를 삭제한다. 이후에, 프로세서(10)는 도 2의 201 단계부터 수행하여 새로운 버전의 펌웨어로 업데이트된 화상형성장치(2)의 시스템에서의 부트 이미지를 재생성한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
2: 화상형성장치
10: 프로세서(CPU) 20: 메모리부
120: 부트 이미지 생성부 160: 업데이트부
210: 휘발성 메모리 220: 비휘발성 메모리
400: 인터페이스부

Claims (19)

  1. 빠른 부팅을 위한 부트 이미지를 업데이트하는 화상형성장치에 있어서,
    상기 화상형성장치에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신하는 인터페이스부;
    상기 빠른 부팅을 위한 기존 버전의 제 1 부트 이미지가 저장된 비휘발성 메모리; 및
    상기 수신된 새로운 버전의 펌웨어에 새로운 버전의 제 2 부트 이미지가 포함된 경우, 상기 저장된 제 1 부트 이미지가 상기 제 2 부트 이미지로 대체되도록 제어함으로써 부트 이미지를 업데이트하는 프로세서를 포함하는 화상형성장치.
  2. 제 1 항에 있어서,
    상기 제 2 부트 이미지는
    상기 새로운 버전의 펌웨어에 의해 업데이트될 상기 화상형성장치의 시스템의 부팅 과정에서의 시스템 상태를 나타내는 정보를 포함하는 화상형성장치.
  3. 제 1 항에 있어서,
    상기 프로세서는
    상기 수신된 새로운 버전의 펌웨어에 상기 제 2 부트 이미지가 포함되어 있는지 여부를 판단하고, 상기 판단 결과에 따라 상기 업데이트를 수행하는 화상형성장치.
  4. 제 3 항에 있어서,
    상기 프로세서는
    상기 제 2 부트 이미지가 포함된 것으로 판단된 경우, 상기 저장된 제 1 부트 이미지를 삭제하고 상기 제 2 부트 이미지를 상기 비휘발성 메모리로 복사하는 화상형성장치.
  5. 제 1 항에 있어서,
    상기 프로세서는
    상기 수신된 새로운 버전의 펌웨어에 포함된 적어도 하나의 펌웨어 이미지 및 상기 제 2 부트 이미지 각각의 에러를 검사하고, 상기 에러가 없는 것으로 검사된 이미지를 이용하여 상기 업데이트를 수행하는 화상형성장치.
  6. 제 5 항에 있어서,
    상기 프로세서는
    상기 수신된 새로운 버전의 펌웨어에 포함된 이미지들 각각에 대한 체크섬(checksum)을 이용하여 상기 에러를 검사하는 화상형성장치.
  7. 제 1 항에 있어서,
    상기 프로세서는
    상기 수신된 새로운 버전의 펌웨어에 포함된 적어도 하나의 펌웨어 이미지 및 상기 제 2 부트 이미지 각각에 대한 호환성을 검사하고, 상기 화상형성장치와의 호환성에 문제가 없는 것으로 검사된 이미지를 이용하여 상기 업데이트를 수행하는 화상형성장치.
  8. 제 1 항에 있어서,
    상기 프로세서는
    상기 수신된 새로운 버전의 펌웨어에서 상기 제 2 부트 이미지를 추출하고, 상기 추출된 제 2 부트 이미지를 이용하여 상기 업데이트를 수행하는 화상형성장치.
  9. 제 1 항에 있어서,
    상기 프로세서는
    상기 대체된 제 2 부트 이미지로 상기 빠른 부팅을 시도한 결과 임계 횟수만큼 상기 빠른 부팅이 실패될 경우, 정상 부팅 모드로 전환하여 정상 부팅을 수행하는 화상형성장치.
  10. 제 9 항에 있어서,
    상기 프로세서는
    상기 임계 횟수만큼 상기 빠른 부팅이 실패될 경우, 상기 대체된 제 2 부트 이미지를 삭제하고 상기 빠른 부팅을 위한 부트 이미지를 재생성하는 화상형성장치.
  11. 제 1 항에 있어서,
    상기 업데이트를 수행하는 과정들에 대한 정보를 사용자에게 제공하는 사용자 인터페이스부를 더 포함하는 화상형성장치.
  12. 화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법에 있어서,
    상기 화상형성장치에 설치된 기존 버전의 펌웨어를 업데이트하기 위한 새로운 버전의 펌웨어를 수신하는 단계;
    상기 수신된 새로운 버전의 펌웨어에, 비휘발성 메모리에 저장된 기존 버전의 제 1 부트 이미지를 업데이트하기 위한 새로운 버전의 제 2 부트 이미지가 포함되어 있는지 여부를 판단하는 단계; 및
    상기 제 2 부트 이미지가 포함된 것으로 판단된 경우, 상기 저장된 제 1 부트 이미지가 상기 제 2 부트 이미지로 대체되도록 제어함으로써 부트 이미지를 업데이트하는 단계를 포함하는 방법.
  13. 제 12 항에 있어서,
    상기 제 2 부트 이미지는
    상기 새로운 버전의 펌웨어에 의해 업데이트될 상기 화상형성장치의 시스템의 부팅 과정에서의 시스템 상태를 나타내는 정보를 포함하는 방법.
  14. 제 12 항에 있어서,
    상기 업데이트하는 단계는
    상기 비휘발성 메모리에 저장된 상기 제 1 부트 이미지를 삭제하는 단계; 및
    상기 제 2 부트 이미지를 상기 비휘발성 메모리로 복사하는 단계를 포함하는 방법.
  15. 제 12 항에 있어서,
    상기 수신된 새로운 버전의 펌웨어에 포함된 적어도 하나의 펌웨어 이미지 및 상기 제 2 부트 이미지 각각의 에러 또는 호환성을 검사하는 단계를 더 포함하고,
    상기 업데이트하는 단계는
    상기 에러가 없거나 상기 호환성에 문제가 없는 것으로 검사된 이미지를 이용하여 상기 펌웨어 또는 상기 부트 이미지를 업데이트하는 방법.
  16. 제 12 항에 있어서,
    상기 수신된 새로운 버전의 펌웨어에서 상기 제 2 부트 이미지를 추출하는 단계를 더 포함하고,
    상기 업데이트하는 단계는
    상기 제 1 부트 이미지를 상기 추출된 제 2 부트 이미지로 대체함으로써 상기 부트 이미지를 업데이트하는 방법.
  17. 제 12 항에 있어서,
    상기 대체된 제 2 부트 이미지로 상기 빠른 부팅을 시도하는 단계; 및
    상기 시도 결과 임계 횟수만큼 상기 빠른 부팅이 실패될 경우 정상 부팅 모드로 전환하여 정상 부팅을 수행하는 단계를 더 포함하는 방법.
  18. 제 17 항에 있어서,
    상기 임계 횟수만큼 상기 빠른 부팅이 실패될 경우 상기 대체된 제 2 부트 이미지를 삭제하는 단계; 및
    상기 빠른 부팅을 위한 부트 이미지를 재생성하는 단계를 더 포함하는 방법.
  19. 제 12 항 내지 제 18 항 중의 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020120125090A 2012-11-06 2012-11-06 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 KR101959359B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120125090A KR101959359B1 (ko) 2012-11-06 2012-11-06 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
EP13187539.5A EP2728467A1 (en) 2012-11-06 2013-10-07 Method of updating boot image for fast booting and image forming apparatus for performing the same
US14/056,404 US9354895B2 (en) 2012-11-06 2013-10-17 Method of updating boot image for fast booting and image forming apparatus for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120125090A KR101959359B1 (ko) 2012-11-06 2012-11-06 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치

Publications (2)

Publication Number Publication Date
KR20140058281A true KR20140058281A (ko) 2014-05-14
KR101959359B1 KR101959359B1 (ko) 2019-03-18

Family

ID=49382207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120125090A KR101959359B1 (ko) 2012-11-06 2012-11-06 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치

Country Status (3)

Country Link
US (1) US9354895B2 (ko)
EP (1) EP2728467A1 (ko)
KR (1) KR101959359B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160049956A (ko) * 2014-10-28 2016-05-10 삼성전자주식회사 모바일 장치 및 그것의 동작 방법
KR20220041936A (ko) * 2019-08-21 2022-04-01 마이크론 테크놀로지, 인크 구성 가능 매체 구조
KR20230020240A (ko) * 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 대용량 업데이트 개선 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394570B2 (en) 2010-02-26 2019-08-27 Hp Printing Korea Co., Ltd. Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US20130042097A1 (en) * 2010-02-26 2013-02-14 Samsung Electronics Co., Ltd. Method of updating boot image for fast booting and image forming apparatus for performing the method
US9367333B2 (en) * 2012-07-30 2016-06-14 Hewlett-Packard Development Company, L.P. Booting a printer
KR101959359B1 (ko) 2012-11-06 2019-03-18 에이치피프린팅코리아 유한회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
JP6351225B2 (ja) * 2013-09-02 2018-07-04 キヤノン株式会社 画像処理装置、情報処理システム、及びその制御方法、並びに情報処理装置と画像処理装置のプログラム
JP6001020B2 (ja) * 2014-07-16 2016-10-05 京セラドキュメントソリューションズ株式会社 画像形成装置
US9753874B2 (en) * 2015-02-20 2017-09-05 Qualcomm Incorporated Multi-step programming of heat-sensitive non-volatile memory (NVM) in processor-based systems
CN105117246A (zh) * 2015-08-04 2015-12-02 晶晨半导体(上海)有限公司 电子设备快速启动的方法
US10191811B2 (en) * 2015-08-13 2019-01-29 Quanta Computer Inc. Dual boot computer system
TWI564802B (zh) * 2015-12-14 2017-01-01 財團法人工業技術研究院 初始化週邊裝置之方法與使用此方法之電子裝置
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
US10331434B2 (en) * 2016-12-21 2019-06-25 Quanta Computer Inc. System and method for remotely updating firmware
US11263326B2 (en) 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10417429B2 (en) * 2017-06-02 2019-09-17 Apple Inc. Method and apparatus for boot variable protection
TWI640872B (zh) * 2017-07-07 2018-11-11 群聯電子股份有限公司 記憶體控制電路單元、記憶體儲存裝置及其控制方法
JP2019049907A (ja) * 2017-09-11 2019-03-28 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
WO2019066773A1 (en) * 2017-09-26 2019-04-04 Hewlett-Packard Development Company, L.P. LOADING IMAGE OF STARTUP
US10713060B2 (en) * 2018-08-02 2020-07-14 Micron Technology, Inc. Configurable option ROM
CN109885340B (zh) * 2019-01-10 2022-06-10 北京字节跳动网络技术有限公司 一种应用程序冷启动加速方法、装置、电子设备
JP7404780B2 (ja) * 2019-10-31 2023-12-26 株式会社リコー 情報処理装置、情報処理装置の更新方法及び更新プログラム
US11640466B2 (en) * 2020-04-20 2023-05-02 Honeywell International Inc. Firmware for small MCU carrying a large set of features
US11244055B1 (en) * 2021-01-25 2022-02-08 Dell Products L.P. Management controller to bios root of trust bypass implant detection and remediation
CN113114730B (zh) * 2021-03-22 2022-09-27 深圳市晨北科技有限公司 升级方法、装置、终端设备及存储介质
CN117149294A (zh) * 2023-02-27 2023-12-01 荣耀终端有限公司 相机应用配置方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058436A (ja) * 2001-08-17 2003-02-28 Minolta Co Ltd 画像処理装置、プログラム及び管理ユニット
US20060070055A1 (en) * 2004-09-24 2006-03-30 Hodder Leonard B Method of updating printer firmware and printing device employing the method
KR20070074349A (ko) * 2006-01-09 2007-07-12 삼성전자주식회사 Ap 시스템의 이종 소프트웨어 이미지 로딩 처리 방법 및이를 위한 ap 시스템
KR20110107579A (ko) * 2010-03-25 2011-10-04 삼성전자주식회사 인쇄 제어 단말장치 및 펌웨어 업그레이드 방법
KR20120027880A (ko) * 2010-09-13 2012-03-22 삼성전자주식회사 시스템을 복원하는 방법 및 시스템 복원 기능을 갖는 컴퓨팅 장치
US20120072897A1 (en) * 2010-09-20 2012-03-22 American Megatrends, Inc. Microcontroller firmware running from ram and applications of the same

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325532A (en) 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
JP2525122B2 (ja) 1992-11-09 1996-08-14 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タ・システムのバックアップ記録方法、復元方法およびシステム
US5557777A (en) 1994-09-30 1996-09-17 Apple Computer, Inc. Method and apparatus for system recovery from power loss
US5933631A (en) 1997-03-17 1999-08-03 International Business Machines Corporation Dynamic boot filesystem selection
KR19990011346A (ko) 1997-07-23 1999-02-18 윤종용 압축된 부팅 롬 생성 방법
US6098158A (en) * 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6507881B1 (en) 1999-06-10 2003-01-14 Mediatek Inc. Method and system for programming a peripheral flash memory via an IDE bus
JP3204251B2 (ja) 1999-06-30 2001-09-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイバネーション装置及び方法、それを格納した記録媒体並びにそれを適用したコンピュータ
KR100319292B1 (ko) * 1999-12-02 2002-01-05 윤종용 빠른 부팅 속도를 갖는 컴퓨터 시스템 및 그 방법
US6609182B1 (en) 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
US7062643B2 (en) 2000-08-01 2006-06-13 Fujitsu Limited System method and apparatus for controlling a boot process of a computer
US7055148B2 (en) 2000-12-07 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for updating firmware
US6807630B2 (en) * 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
CR6574A (es) 2001-02-27 2004-10-28 Syngenta Participations Ag Sales de avermectinas substituidas en la posicion 4 con propiedades plaguicidas
JP2003084977A (ja) 2001-09-11 2003-03-20 Ricoh Co Ltd コンピュータシステム及びその制御方法
US7249353B2 (en) * 2003-04-17 2007-07-24 Hewlett-Packard Development Company, L.P. Image-formation device firmware having modular upgrade capability
JP2004348677A (ja) 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
US7363484B2 (en) 2003-09-15 2008-04-22 Hewlett-Packard Development Company, L.P. Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems
US7475186B2 (en) 2003-10-31 2009-01-06 Superspeed Software System and method for persistent RAM disk
US8001348B2 (en) 2003-12-24 2011-08-16 Intel Corporation Method to qualify access to a block storage device via augmentation of the device's controller and firmware flow
JP2006244129A (ja) 2005-03-03 2006-09-14 Denso Corp フラッシュeeprom書換え方法および電子制御装置
US7590839B2 (en) 2005-03-22 2009-09-15 Qnx Software Systems Gmbh & Co. Kg System employing fast booting of application programs
US20060218361A1 (en) 2005-03-25 2006-09-28 Matsushita Electrical Industrial Co., Ltd. Electronic storage device with rapid data availability
US7634689B2 (en) 2005-09-22 2009-12-15 Advanced Micro Devices, Inc. Boot performance optimization for hard drive for personal internet communicator
US20070124573A1 (en) * 2005-10-28 2007-05-31 Walker Phillip M Method for rapid startup of a computer system
JP4933822B2 (ja) 2006-04-21 2012-05-16 株式会社Cspフロンティア研究所 データ消去システム、管理サーバ、データ消去方法およびプログラム
US7519808B2 (en) 2006-04-25 2009-04-14 Apple Inc. Method and apparatus for quickly reanimating devices from hibernation
US7640440B2 (en) 2006-04-25 2009-12-29 Apple Inc. Method and apparatus for facilitating device hibernation
US7673131B2 (en) 2006-05-05 2010-03-02 Microsoft Corporation Booting an operating system in discrete stages
JP2007334383A (ja) 2006-06-12 2007-12-27 Sony Corp 情報処理装置とその起動方法およびプログラム
US7743242B2 (en) 2006-10-16 2010-06-22 Scalent Systems Inc. Method and system for automatic generation of operating system boot images
JP4766332B2 (ja) 2006-12-28 2011-09-07 ソニー株式会社 情報処理装置、起動方法、およびプログラム
JP4857201B2 (ja) 2007-06-20 2012-01-18 キヤノン株式会社 情報処理装置
JP4980809B2 (ja) * 2007-07-10 2012-07-18 株式会社リコー 画像形成装置、画像形成装置の起動方法、およびプログラム
JP4448953B2 (ja) * 2007-12-28 2010-04-14 ブラザー工業株式会社 情報処理装置、情報処理方法及びプログラム
US8793796B2 (en) 2008-01-09 2014-07-29 Microsoft Corporation Booting a device from a trusted environment responsive to device hibernation
JP2009193379A (ja) 2008-02-14 2009-08-27 Konica Minolta Business Technologies Inc 画像処理装置及び同装置の起動方法
JP5038237B2 (ja) 2008-06-06 2012-10-03 株式会社リコー 電子機器、画像形成装置、電子機器の起動制御方法、起動制御プログラム及び記録媒体
TWI375912B (en) 2008-10-17 2012-11-01 Asrock Inc Method for reducing time of booting and computer system
US8443211B2 (en) 2009-01-05 2013-05-14 Marvell World Trade Ltd. Hibernation or suspend using a non-volatile-memory device
US8386757B1 (en) 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
CN101515239A (zh) 2009-04-08 2009-08-26 南京航空航天大学 X86飞控计算机快速启动方法
KR101611373B1 (ko) 2009-08-27 2016-04-26 삼성전자주식회사 휴대용 단말기에서 하이버네이션 부팅 방법 및 장치
KR101636870B1 (ko) 2010-02-26 2016-07-06 삼성전자주식회사 최소 부트 이미지의 생성 방법 및 장치
US20130042097A1 (en) 2010-02-26 2013-02-14 Samsung Electronics Co., Ltd. Method of updating boot image for fast booting and image forming apparatus for performing the method
US20130036300A1 (en) 2010-02-26 2013-02-07 Samsung Electronics Co., Ltd Method of fixing error of boot image for fast booting and image forming apparatus for performing the method
US10394570B2 (en) 2010-02-26 2019-08-27 Hp Printing Korea Co., Ltd. Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US8381021B2 (en) * 2010-08-25 2013-02-19 Itron, Inc. System and method for automated unattended recovery for remotely deployed intelligent communication devices
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
KR20130029995A (ko) * 2011-09-16 2013-03-26 삼성전자주식회사 화상형성장치 및 펌웨어 업그레이드 방법
JP5901242B2 (ja) * 2011-11-18 2016-04-06 キヤノン株式会社 画像形成装置、制御方法、及びプログラム
KR101959359B1 (ko) 2012-11-06 2019-03-18 에이치피프린팅코리아 유한회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058436A (ja) * 2001-08-17 2003-02-28 Minolta Co Ltd 画像処理装置、プログラム及び管理ユニット
US20060070055A1 (en) * 2004-09-24 2006-03-30 Hodder Leonard B Method of updating printer firmware and printing device employing the method
KR20070074349A (ko) * 2006-01-09 2007-07-12 삼성전자주식회사 Ap 시스템의 이종 소프트웨어 이미지 로딩 처리 방법 및이를 위한 ap 시스템
KR20110107579A (ko) * 2010-03-25 2011-10-04 삼성전자주식회사 인쇄 제어 단말장치 및 펌웨어 업그레이드 방법
KR20120027880A (ko) * 2010-09-13 2012-03-22 삼성전자주식회사 시스템을 복원하는 방법 및 시스템 복원 기능을 갖는 컴퓨팅 장치
US20120072897A1 (en) * 2010-09-20 2012-03-22 American Megatrends, Inc. Microcontroller firmware running from ram and applications of the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160049956A (ko) * 2014-10-28 2016-05-10 삼성전자주식회사 모바일 장치 및 그것의 동작 방법
KR20220041936A (ko) * 2019-08-21 2022-04-01 마이크론 테크놀로지, 인크 구성 가능 매체 구조
KR20230020240A (ko) * 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 대용량 업데이트 개선 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
US11789719B2 (en) 2021-08-03 2023-10-17 Security Platform Inc. Firmware massive update method using flash memory and computer program stored in recording media for executing the same

Also Published As

Publication number Publication date
EP2728467A1 (en) 2014-05-07
KR101959359B1 (ko) 2019-03-18
US9354895B2 (en) 2016-05-31
US20140129820A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
KR101959359B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
US10394570B2 (en) Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US20130036300A1 (en) Method of fixing error of boot image for fast booting and image forming apparatus for performing the method
US10990415B2 (en) Disk management method and apparatus in ARM device and ARM device
US20130042097A1 (en) Method of updating boot image for fast booting and image forming apparatus for performing the method
US8417796B2 (en) System and method for transferring a computing environment between computers of dissimilar configurations
US6889340B1 (en) Use of extra firmware flash ROM space as a diagnostic drive
CN105917306B (zh) 用于配置系统固件配置数据的系统和方法
CN102591675B (zh) 使用共享存储块管理多软件镜像的方法和系统
TWI505087B (zh) 系統重設
KR20170040734A (ko) 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법
TWI498822B (zh) 可更新基本輸入輸出系統的電子裝置及其基本輸入輸出系統的更新方法
US8335891B2 (en) Method and system for configuring a storage array
KR101813641B1 (ko) 화상형성장치 및 하이버네이션 기능을 갖는 화상형성장치를 부팅하는 방법
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
KR20130068630A (ko) 임베디드 디바이스의 초기화 방법 및 장치
KR101850275B1 (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
KR101845467B1 (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
KR101850272B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
US7506115B2 (en) Incremental provisioning of software
US20060047927A1 (en) Incremental provisioning of software
CN111868698A (zh) 空闲空间直通
US8549273B1 (en) Method and apparatus to present a unique background image on a personal computer display when the computer system is booted from an external drive
US20140136777A1 (en) Method and system for configuring a storage array
US11467898B2 (en) Information processing apparatus and method of controlling the same

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant