KR20070060448A - Device and method for upgradin system using two step bootloader - Google Patents

Device and method for upgradin system using two step bootloader Download PDF

Info

Publication number
KR20070060448A
KR20070060448A KR1020050119862A KR20050119862A KR20070060448A KR 20070060448 A KR20070060448 A KR 20070060448A KR 1020050119862 A KR1020050119862 A KR 1020050119862A KR 20050119862 A KR20050119862 A KR 20050119862A KR 20070060448 A KR20070060448 A KR 20070060448A
Authority
KR
South Korea
Prior art keywords
boot loader
upgrade
kernel
bootloader
function
Prior art date
Application number
KR1020050119862A
Other languages
Korean (ko)
Other versions
KR100860402B1 (en
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 KR1020050119862A priority Critical patent/KR100860402B1/en
Publication of KR20070060448A publication Critical patent/KR20070060448A/en
Application granted granted Critical
Publication of KR100860402B1 publication Critical patent/KR100860402B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/4406Loading of operating system
    • 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/445Program loading or initiating

Abstract

A device and a method for upgrading a system using a 2-step bootloader are provided to minimize user interference and use of a non-volatile memory when a bootloader, an OS, or an application program of an embedded system is upgraded, and perform upgrade again even if a fatal error is generated during the upgrade. The first bootloader(111) has a hardware POST(Power-On Self-Test) function and a function for setting a communication interface(120) with an external server(130) for initial system operation of the embedded system(100). The second bootloader(112) has the function for loading a kernel for executing the OS of the embedded system. If the system upgrade is needed, the first bootloader performs the system upgrade by receiving a new system image from the external server connected through the communication interface. The new system image includes at least one of the second bootloader, the kernel(113), and the application program(114).

Description

2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법{DEVICE AND METHOD FOR UPGRADIN SYSTEM USING TWO STEP BOOTLOADER}DEVICE AND METHOD FOR UPGRADIN SYSTEM USING TWO STEP BOOTLOADER}

도 1은 본 발명의 실시예에 따른 2단계 부트로더를 이용한 시스템 업그레이드 장치의 구성도이다. 1 is a block diagram of a system upgrade apparatus using a two-stage boot loader according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 2단계 부트로더를 이용한 시스템 업그레이드 과정을 보여주는 흐름도이다. 2 is a flowchart illustrating a system upgrade process using a two-stage boot loader according to an embodiment of the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

100: 내장형 시스템100: embedded system

110: 시스템 업그레이드 장치110: system upgrade device

111: 제1 부트로더111: first boot loader

112: 제2 부트로더112: second boot loader

113: 커널113: kernel

114: 응용 프로그램114: Application

120; 통신 장치 120; Communication device

130: 외부 서버130: external server

본 발명은 내장형 시스템에 관한 것으로, 특히 내장형 시스템을 위한 부트로더나 운영체제 혹은 응용프로그램을 업그레이드하는 장치 및 방법에 관한 것이다. The present invention relates to an embedded system, and more particularly, to an apparatus and method for upgrading a boot loader or an operating system or an application for an embedded system.

일반적으로, 내장형 시스템(Embedded System)이란 미리 정해진 기능을 수행하기 위해 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자 제어 시스템을 말한다. 상기 내장형 시스템에는 마이크로프로세서가 내장되어 있어 특화된 작업을 수행할 수 있으며, 고유의 운영체제(Operating System)를 갖고 있다. In general, an embedded system refers to an electronic control system in which hardware and software of a computer are combined to perform a predetermined function. The embedded system has a built-in microprocessor to perform specialized tasks and has a unique operating system.

이러한 내장형 시스템에는 부트 로더(Boot Loader)(또는, 부우터(booter)라고도 칭함)라는 프로그램이 구비되어 있다. 종래에는 내장형 시스템에서 부트로더나 운영체제 혹은 파일 시스템 업그레이드(upgrade) 할 경우, 외부 서버에 접속하여 상기 부트로더나 운영체제 혹은 파일 시스템에 대한 업그레이드 될 이미지를 다운로드 받아 내부의 비휘발성 메모리에 저장한 후 업그레이드를 수행하게 된다. Such an embedded system is provided with a program called a boot loader (or also referred to as a booter). Conventionally, when upgrading a boot loader, an operating system, or a file system in an embedded system, an external server is accessed to download an image to be upgraded for the boot loader, operating system, or file system, and stored in an internal nonvolatile memory. Will be performed.

그러나 만약 이와 같이 업그레이드 절차를 수행하는 중간에 전원이 차단되거나 잘못된 이미지를 비휘발성 메모리에 저장하게 되는 경우, 해당 내장형 시스템은 사용 불가 상태가 되며, 향후 다시 업그레이드를 하기 위해서는 복구를 위한 특별 한 하드웨어 장치가 필요하게 되거나 복잡한 방법을 이용해야 하는 등 사용자 개입이 많아지는 불편이 있다. However, if you lose power or store a bad image in nonvolatile memory in the middle of this upgrade procedure, the embedded system will be disabled, and a special hardware device for recovery will be available for future upgrades. User intervention is inconvenient, such as needing to use or using complicated methods.

이러한 문제점을 해결하기 위해 일본공개특허 제1999-328040호 '메모리의 판독 제어 방법 및 프로그램의 판독 제어 방법'에는 프로그램의 갱신 중에 장애 발생으로 인하여 동작 불능 상태에 빠질 경우에도 상용 운행을 속행할 수 있는 메모리의 판독 방법이 개시되어 있다. 상기 선행 발명에 따르면 다운로드되는 프로그램의 갱신전 프로그램을 기억하는 제1 메모리와, 갱신후 프로그램을 기억하는 제2 메모리로 메모리를 이중화해두고, 갱신이 유효하면 제2 메모리 내의 갱신 후 프로그램을 실시하며, 갱신이 무효이면 제1 메모리 내의 갱신전 프로그램을 실행함으로써 안정적인 업그레이드를 수행할 수 있다. 그러나 상기 선행 발명을 이용하여 업그레이드를 수행할 경우 프로그램 또는 부트로더를 이중화하여 유지해야 하므로, 이중화된 프로그램 또는 부트로더를 저장하기 위하여 비휘발성 메모리의 소요량이 많아진다는 문제가 있다. In order to solve this problem, Japanese Laid-Open Patent Publication No. 1999-328040, `` Memory read control method and program read control method '', can continue commercial operation even when the program becomes inoperable due to a failure during update. A method of reading a memory is disclosed. According to the preceding invention, the memory is duplicated into a first memory for storing the pre-update program of the downloaded program and a second memory for storing the post-update program, and if the update is valid, the post-update program in the second memory is executed. If the update is invalid, the stable upgrade can be performed by executing the pre-update program in the first memory. However, when the upgrade is performed using the preceding invention, since a program or a boot loader must be kept redundant, there is a problem in that a requirement of the nonvolatile memory is increased to store the duplicated program or the boot loader.

상기와 같은 문제점을 해소하기 위한 본 발명의 목적은 부트로더나 운영체제 혹은 응용프로그램을 업그레이드할 경우 사용자의 간섭 및 비휘발성 메모리의 사용을 최소화하고, 업그레이드 도중에 치명적 오류가 발생하더라도 새롭게 업그레이드를 수행할 수 있는 장치 및 방법을 제공함에 있다. An object of the present invention for solving the above problems is to minimize the user's interference and the use of non-volatile memory when upgrading the boot loader, operating system or application, and to perform a new upgrade even if a fatal error occurs during the upgrade. The present invention provides an apparatus and method.

상기 목적을 달성하기 위한 본 발명에 따른 2단계 부트로더를 이용한 시스템 업그레이드 장치는, 내장형 시스템의 초기 시스템 운용을 위한 하드웨어 점검(POST) 및 외부 서버와의 통신 인터페이스 설정 기능을 갖는 제1 부트로더; 및 상기 내장형 시스템의 운영체제를 실행하도록 커널(kernel)을 로딩하는 기능을 갖는 제2 부트로더를 포함하고, 시스템 업그레이드가 필요한 경우, 상기 제1 부트로더는 상기 통신 인터페이스를 통하여 연결된 외부 서버로부터 새로운 시스템 이미지를 수신하여 시스템 업그레이드를 수행하는 것을 특징으로 한다. System upgrade apparatus using a two-stage boot loader according to the present invention for achieving the above object, the first boot loader having a hardware check (POST) for initial system operation of the embedded system and a communication interface setting function with an external server; And a second boot loader having a function of loading a kernel to execute an operating system of the embedded system, and when a system upgrade is required, the first boot loader is a new system from an external server connected through the communication interface. Receiving the image is characterized by performing a system upgrade.

또한 상기 목적을 달성하기 위한 본 발명에 따른 2단계 부트로더를 이용한 시스템 업그레이드 방법은, 내장형 시스템의 초기 시스템 운용을 위하여 제1 부트로더를 이용하여 하드웨어 점검(POST)을 수행하고, 외부 서버와의 통신 인터페이스를 설정하는 제1 단계; 상기 내장형 시스템의 운영체제를 실행하는데 필요한 제2 부트로더를 수행하는 제2 단계; 커널(kernel) 및 응용프로그램을 실행하는 제3 단계; 및 시스템 업그레이드가 필요한 경우, 상기 제1 부트로더는 상기 통신 인터페이스를 통하여 연결된 외부 서버로부터 새로운 시스템 이미지를 수신하여 시스템 업그레이드를 수행하는 제4 단계를 포함하는 것을 특징으로 한다. In addition, the system upgrade method using a two-stage boot loader according to the present invention for achieving the above object, to perform a hardware check (POST) using the first boot loader for the initial system operation of the embedded system, and with an external server A first step of establishing a communication interface; Performing a second boot loader required to execute an operating system of the embedded system; A third step of executing a kernel and an application program; And when the system upgrade is necessary, the first boot loader includes a fourth step of receiving a new system image from an external server connected through the communication interface and performing a system upgrade.

이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.DETAILED DESCRIPTION A detailed description of preferred embodiments of the present invention will now be described with reference to the accompanying drawings. It should be noted that the same reference numerals and the same elements among the drawings are denoted by the same reference numerals and symbols as much as possible even though they are shown in different drawings. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

도 1은 본 발명의 실시예에 따른 2단계 부트로더를 이용한 시스템 업그레이드 장치의 구성도이다. 1 is a block diagram of a system upgrade apparatus using a two-stage boot loader according to an embodiment of the present invention.

도 1을 참조하면, 상기 본 발명에 따른 시스템 업그레이드(upgrade) 장치(110)는 내장형 시스템(100) 내에 구성되며, 제1 부트로더(111), 제2 부트로더(112), 커널(113) 및 응용 프로그램(114)를 포함한다. Referring to FIG. 1, the system upgrade apparatus 110 according to the present invention is configured in the embedded system 100, and includes a first boot loader 111, a second boot loader 112, and a kernel 113. And application 114.

본 발명에 따른 시스템 업그레이드 장치는 부트로더(111,112)가 제1 부트로더(111)와 제2 부트로더(112)로 2단계로 구성된다는 점에 특징이 있다. The system upgrade apparatus according to the present invention is characterized in that the boot loaders 111 and 112 are configured in two stages, the first boot loader 111 and the second boot loader 112.

상기 제1 부트로더(111)는 내장형 시스템(100)의 초기 시스템 운용을 위한 하드웨어 점검(Power-On Self-Test: POST)을 수행하고, 또한 외부 서버(130)와 연결되는 통신 장치(120)를 초기화함으로써 상기 외부 서버(130)와 통신하는데 필요한 통신 인터페이스 설정하는 등의 기능을 갖도록 구성된다. 여기서, 초기 시스템 운용을 위한 하드웨어 점검(POST) 기능이란, 상기 내장형 시스템(100)에 전원이 공급되었을 때, 키보드, 램, 디스크 드라이브 그리고 기타 하드웨어 등이 바르게 동작하는지를 확인하기 위해, 내장형 시스템(100)의 기본입출력장치(Basic Input/Output System: BIOS)가 동작시키는 일련의 진단 시험 기능을 말한다. 이와 같이 상기 제1 부트로더(111) 내에 구성되는 기능들은, POST 수행 또는 통신 인터페이스 설정 등 부트로더 중에서 업그레이드를 하지 않아도 되는 기능들로서, 일반 사용자가 임의 변경이 불가능한 기능들로 구성된다. The first boot loader 111 performs a hardware check (Power-On Self-Test (POST)) for initial system operation of the embedded system 100, and also communicates with an external server 130. It is configured to have a function such as setting the communication interface required to communicate with the external server 130 by initializing the. Here, the hardware check function for initial system operation (POST) function, when the power is supplied to the embedded system 100, to check whether the keyboard, RAM, disk drive and other hardware, such as operating properly, the embedded system (100) Basic Input / Output System (BIOS) refers to a series of diagnostic test functions operated by the Basic Input / Output System (BIOS). As described above, the functions configured in the first boot loader 111 are functions that do not need to be upgraded among boot loaders such as performing a POST or setting a communication interface, and are configured with functions that a general user cannot change.

상기 제2 부트로더(112)는 커널(kernel)(113)을 로딩(loading)하기 위한 기능과 같이 업그레이드가 예상되는 기능들로 구성된다는 점에서 상기 제1 부트로더(111)와 구분된다. 상기 제2 부트로더(112)에서는 커널(113)의 실행에 필요한 준비과정을 수행하며, 커널(113)을 상기 내장형 시스템(100)의 내부 메모리(미도시)로 로딩한 다음 커널(113)로 제어권을 넘겨주게 된다. The second boot loader 112 is distinguished from the first boot loader 111 in that the second boot loader 112 is composed of functions that are expected to be upgraded, such as a function for loading a kernel 113. The second boot loader 112 performs a preparation process necessary to execute the kernel 113, loads the kernel 113 into an internal memory (not shown) of the embedded system 100, and then loads the kernel 113 into the kernel 113. You will be given control.

상기 커널(113)은 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다. 일반적으로, 커널(113)에는 종료된 입출력 연산 등, 커널(113)의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와, 어떤 프로그램들이 어떤 순서로 커널(113)의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저 등이 포함되어 있다. 커널(113)은 또한, 메모리나 저장장치 내에서 운영체계의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널(113)의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리 관리자를 가지고 있다. 그리고 상기 커널(113)은 경우에 따라 파일 시스템을 마운트(mount)한 다음 응용 프로그램(114)를 실행하게 된다. 여기서 응용 프로그램(114)이란 사용자 또는 다른 응용프로그램에게 특정한 기능을 직접 수행하도록 설계된 프로그램이다The kernel 113 provides various basic services to all other parts of the operating system. In general, the kernel 113 includes an interrupt handler that processes all requests that competitively request a service of the kernel 113, such as a completed input / output operation, and which programs share the processing time of the kernel 113 in any order. It includes a scheduler that decides whether to do this, and a supervisor that actually licenses the computer to each process when the schedule ends. The kernel 113 also has a memory manager that manages the address space of the operating system in memory or storage and distributes it evenly to all the peripherals and other users using the services of the kernel 113. The kernel 113 optionally mounts a file system and then executes an application program 114. The application program 114 is a program designed to directly perform a specific function to a user or another application.

그리고 상기 제1 부트로더(111) 및 상기 제2 부트로더(112) 상기 내장형 시스템(100) 내의 프로그램 가능한 비휘발성 메모리 내에 형성될 수 있다. The first boot loader 111 and the second boot loader 112 may be formed in a programmable nonvolatile memory in the embedded system 100.

이와 같이, 본 발명에 따른 부트로더(111,112)는 부트로더 중 업그레이드가 요구되지 않는 기능들로 구성된 제1 부트로더(111)와, 부트로더 중 업그레이드가 요구되는 기등들로 구성된 제2 부트로더(112)을 갖도록 2 단계의 부트로더로 구성됨으로써, 시스템의 업그레이드 도중 전원 차단되거나 잘못된 시스템 이미지를 다운로드 받은 경우 등과 같은 치명적 오류가 발생한 경우에도 상기 제1 부트로더(111)를 이용하여 안정적인 업그레이드가 가능하다. 또한 종래와 같이 부트로더를 2중화하는 경우보다 전체 부트로더가 저장되는 비휘발성 메모리의 공간을 절약할 수 있게 된다. As such, the boot loaders 111 and 112 according to the present invention may include a first boot loader 111 composed of functions that are not required to be upgraded among boot loaders, and a second boot loader configured to include upgrades among boot loaders. 112 is configured to have a two-stage boot loader, even when a fatal error such as when the power is cut off or the wrong system image is downloaded during the upgrade of the system can be stable upgrade using the first boot loader 111. Do. In addition, it is possible to save the space of the non-volatile memory in which the entire boot loader is stored than in the case of dualizing the boot loader as in the prior art.

상기 외부 서버(130)는 상기 제2 부트로더(112), 커널(113) 및 응용프로그램(114)에 대한 시스템 이미지를 유지하고, 상기 내장형 시스템(100)내의 제2 부트로더(112), 커널(113) 또는 응용프로그램(114)에 업그레이드가 필요한 경우, 상기 제2 부트로더(112), 커널(113) 또는 응용프로그램(114)을 업그레이드하는데 필요한 새로운 시스템 이미지를 상기 제1 부트로더(111)로 전송함으로써 본 발명에 따른 시스템 업그레이드가 이루어 질 수 있게 된다. The external server 130 maintains a system image of the second boot loader 112, the kernel 113, and the application 114, and the second boot loader 112, the kernel in the embedded system 100. If the 113 or the application 114 needs to be upgraded, a new system image necessary for upgrading the second boot loader 112, the kernel 113, or the application 114 may be displayed in the first boot loader 111. By transmitting to the system upgrade according to the invention can be made.

도 2는 본 발명의 실시예에 따른 2단계 부트로더를 이용한 시스템 업그레이드 과정을 보여주는 흐름도이다. 2 is a flowchart illustrating a system upgrade process using a two-stage boot loader according to an embodiment of the present invention.

도 2를 참고하면 먼저, 내장형 시스템(100)에 전원이 인가되면 제1 부트로더 (111)가 실행된다(S201). 상기 단계(S201)에서 제1 부트로더(111)에서는 내장형 시스템(100)의 하드웨어 상태를 점검하는 POST 과정과 외부 서버(130)와의 통신 인터페이스를 초기화하는 절차가 수행된다. 이와 같이 상기 제1 부트로더(111)가 실행됨으로써 현재 내장형 시스템(100)의 하드웨어적인 상태가 어떠한지 또는 상기 제2 부트로더(112), 커널(113) 및 응용프로그램(114)의 버전(version) 상태를 확인할 수 있게 된다. Referring to FIG. 2, first, when power is applied to the embedded system 100, the first boot loader 111 is executed (S201). In step S201, the first boot loader 111 performs a POST process for checking a hardware state of the embedded system 100 and a procedure for initializing a communication interface with the external server 130. As such, the first boot loader 111 is executed to determine the hardware state of the embedded system 100 or the versions of the second boot loader 112, the kernel 113, and the application 114. You can check the status.

이후 시스템의 업그레이드가 필요한지 여부를 판단하여(S202), 업그레이드를 해야 할 경우에는 상기 통신 인터페이스를 이용하여 외부 서버(130)에 접속하여(S203), 필요한 업그레이드를 수행하게 된다(S204). 여기서 시스템의 업그레이드는 제2 부트로더(112)나 커널(113), 응용 프로그램(114)을 대상으로 이루어진다.Thereafter, it is determined whether the system needs to be upgraded (S202), and when it is necessary to upgrade, the external server 130 is accessed using the communication interface (S203), and the necessary upgrade is performed (S204). In this case, the upgrade of the system is performed for the second boot loader 112, the kernel 113, and the application program 114.

또한 상기 단계(S202)에서 판단한 결과 상기 제1 부트로더(111)를 실행한 상태에서 시스템 업그레이드가 필요하지 않은 경우에는 제2 부트로더(112)가 실행된다(S205). 제2 부트로더(112)에서는 커널(113)을 실행하는데 필요한 작업을 수행한 후 메모리에 로딩된 커널(113)로 제어권을 넘겨주게 된다(S206). 커널(113)이 실행 된 후에는 응용 프로그램을 실행할 수 있다(S207). 이어서 시스템 업그레이드를 수행할 필요가 있는지 여부를 판단하여(S208), 업그레이드가 필요하면 외부 서버(120)와 연결하여(S203), 상기 외부 서버(120)로부터 상기 제2 부트로더(112), 커널(113) 또는 응용프로그램(114)에 대한 새로운 이미지를 다운로드하여 시스템 업그레이드를 수행하고(S204), 그렇지 않은 경우에는 절차를 종료한다. In addition, if it is determined in step S202 that the system does not need to be upgraded while the first boot loader 111 is executed, the second boot loader 112 is executed (S205). The second boot loader 112 transfers control to the kernel 113 loaded in the memory after performing a task necessary to execute the kernel 113 (S206). After the kernel 113 is executed, an application program may be executed (S207). Subsequently, it is determined whether a system upgrade needs to be performed (S208), and if an upgrade is required, an external server 120 is connected (S203), and the second boot loader 112 and the kernel are connected from the external server 120. In step S204, a new image for the application program 114 is downloaded and a system upgrade is performed (S204). Otherwise, the procedure ends.

만약 상기 단계(S204)의 업그레이드 과정에서 전원이 차단되는 것과 같은 치 명적 오류가 발생하거나, 잘못된 이미지를 다운로드 받은 경우에는(S209), 다시 상기 단계(S201)로 진행하여 제1 부트로더(111)를 실행하고, 상기 단계(S202 내지 S208)를 다시 수행함으로써 정상적으로 업그레이드가 수행될 때까지 업그레이드 절차를 반복하게 된다.If a fatal error such as a power cut off occurs in the upgrade process of step S204 or if a wrong image is downloaded (S209), the process proceeds to the step S201 again and the first boot loader 111 is performed. Then, the upgrade procedure is repeated until the upgrade is normally performed by performing the steps S202 to S208 again.

이와 같이 본 발명에서는 상기 단계(S304)의 업그레이드 과정 동안에, 전원이 차단되는 것과 같은 치명적 오류가 발생하여도 제1 부트로더(111) 영역은 일반 사용자가 접근할 수 없으므로 항상 부팅이 가능하며, 다시 상기 외부 서버(120)와의 연결을 이용하여 업그레이드가 정상적으로 성공시까지 절차를 반복함으로써 안정적으로 업그레이드가 이루어질 수 있다.As such, in the present invention, during the upgrade process of the step S304, even if a fatal error such as power is cut off, the first boot loader 111 region cannot be accessed by the general user and thus can always be booted again. The upgrade can be performed stably by repeating the procedure until the upgrade is normally successful using the connection with the external server 120.

본 발명에 따른 2단계 부트로더를 이용한 시스템 업그레이드 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현할 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송과 같이 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.The system upgrade method using the two-stage boot loader according to the present invention can be embodied as computer readable codes on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and also include those implemented in the form of carrier waves such as transmission over the Internet. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the claims below, but also by those equivalent to the claims.

상술한 바와 같은 본 발명에 따르면 부트로더를 업그레이드가 필요한 기능과 필요하지 않은 기능을 각각 분리하여 2단계로 부트로더를 구성함으로써, 단일 부트로더를 사용하여 부트로더를 업그레이드 할 경우 발생할 수 있는 전원의 차단과 같은 치명적 오류가 발생하여도 업그레이드 과정과 관계 없는 제1 부트로더를 이용하여 하드웨어 점검 및 초기 시스템 운용을 수행할 수 있으므로 안정적으로 부팅을 수행할 수 있는 이점이 있다. According to the present invention as described above, by configuring the boot loader in two stages by separating the functions that need to be upgraded and the functions that do not need to be upgraded, the power supply that can occur when upgrading the boot loader using a single boot loader Even in the event of a fatal error such as blocking, a hardware boot and initial system operation can be performed using the first boot loader irrelevant to the upgrade process, thereby providing a stable booting operation.

또한 본 발명에 따르면 종래에 동일한 부트로더 이미지를 2 곳의 비휘발성 메모리에 저장하여 부트로더를 2중화하는 방법과는 달리, 하나의 부트로더 이미지를 기능적으로 2개로 분리된 이미지들로 구분하여 각기 비휘발성 메모리들에 저장하는 것이므로 비휘발성 메모리의 저장 공간의 효율성이 향상시키는 이점이 있다. According to the present invention, unlike the conventional method of dualizing the boot loader by storing the same boot loader image in two nonvolatile memories, each boot loader image is divided into two functionally divided images. Since the storage in the nonvolatile memory has the advantage of improving the efficiency of the storage space of the nonvolatile memory.

Claims (7)

내장형 시스템의 초기 시스템 운용을 위한 하드웨어 점검(POST) 및 외부 서버와의 통신 인터페이스 설정 기능을 갖는 제1 부트로더; 및A first boot loader having a hardware check (POST) for initial system operation of an embedded system and a communication interface setting function with an external server; And 상기 내장형 시스템의 운영체제를 실행하도록 커널(kernel)을 로딩하는 기능을 갖는 제2 부트로더를 포함하고,A second boot loader having a function of loading a kernel to execute an operating system of the embedded system, 시스템 업그레이드가 필요한 경우, 상기 제1 부트로더는 상기 통신 인터페이스를 통하여 연결된 외부 서버로부터 새로운 시스템 이미지를 수신하여 시스템 업그레이드를 수행하는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 장치.When the system upgrade is necessary, the first boot loader receives a new system image from an external server connected through the communication interface and performs a system upgrade. 제1항에 있어서, 상기 제1 부트로더에서 수행되는 기능은 업그레이드가 필요하지 않은 기능으로 구성되는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 장치.The apparatus of claim 1, wherein the function performed by the first boot loader is configured as a function that does not require upgrade. 제1항에 있어서, 상기 제2 부트로더에서 수행되는 기능은 업그레이드가 수행될 수 있는 기능으로 구성되는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 장치. The apparatus of claim 1, wherein the function performed by the second boot loader is configured as a function capable of performing an upgrade. 제1항에 있어서, 상기 업그레이드가 이루어지는 시스템 이미지에는, 상기 제2 부트로더, 상기 커널 및 상기 응용프로그램 중 적어도 하나에 대한 시스템 이미지를 포함하는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 장치. The system upgrade apparatus of claim 1, wherein the system image of the upgrade includes a system image of at least one of the second boot loader, the kernel, and the application program. 내장형 시스템의 초기 시스템 운용을 위하여 제1 부트로더를 이용하여 하드웨어 점검(POST)을 수행하고, 외부 서버와의 통신 인터페이스를 설정하는 제1 단계;Performing a hardware check (POST) by using a first boot loader for initial system operation of an embedded system, and establishing a communication interface with an external server; 상기 내장형 시스템의 운영체제를 실행하는데 필요한 제2 부트로더를 수행하는 제2 단계;Performing a second boot loader required to execute an operating system of the embedded system; 커널(kernel) 및 응용프로그램을 실행하는 제3 단계; 및A third step of executing a kernel and an application program; And 시스템 업그레이드가 필요한 경우, 상기 제1 부트로더는 상기 통신 인터페이스를 통하여 연결된 외부 서버로부터 새로운 시스템 이미지를 수신하여 시스템 업그레이드를 수행하는 제4 단계를 포함하는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 방법. If a system upgrade is required, the first boot loader includes a fourth step of receiving a new system image from an external server connected through the communication interface and performing a system upgrade. Way. 제5항에 있어서, The method of claim 5, 상기 제4 단계에서 상기 시스템 업그레이드를 수행하는 동안에 오류가 발생한 경우에는, 상기 제1 내지 제4 단계를 다시 수행하는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 방법.If an error occurs while performing the system upgrade in the fourth step, performing the first to fourth steps again. 제5항에 있어서, 상기 업그레이드가 이루어지는 시스템 이미지에는, 제2 부트로더, 커널 및 응용프로그램 중 적어도 하나에 대한 시스템 이미지를 포함하는 것을 특징으로 하는 2단계 부트로더를 이용한 시스템 업그레이드 방법. The method of claim 5, wherein the upgraded system image includes a system image of at least one of a second boot loader, a kernel, and an application program.
KR1020050119862A 2005-12-08 2005-12-08 Device and method for upgradin system using two step bootloader KR100860402B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050119862A KR100860402B1 (en) 2005-12-08 2005-12-08 Device and method for upgradin system using two step bootloader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050119862A KR100860402B1 (en) 2005-12-08 2005-12-08 Device and method for upgradin system using two step bootloader

Publications (2)

Publication Number Publication Date
KR20070060448A true KR20070060448A (en) 2007-06-13
KR100860402B1 KR100860402B1 (en) 2008-09-26

Family

ID=38356470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050119862A KR100860402B1 (en) 2005-12-08 2005-12-08 Device and method for upgradin system using two step bootloader

Country Status (1)

Country Link
KR (1) KR100860402B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775431B1 (en) * 2006-02-20 2007-11-12 삼성전자주식회사 Apparatus and Method for System Imbedded System and Firmware Updating Method Therein
KR101640207B1 (en) * 2015-01-20 2016-07-15 주식회사 뉴티씨 (Newtc) Bootloader and embedded system upgrade method
CN112181446A (en) * 2020-09-04 2021-01-05 中国船舶重工集团公司第七0七研究所 STM 32-based software online upgrading method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102552463B1 (en) 2018-04-20 2023-07-06 삼성전자 주식회사 Application processor, system on chip and booting method of device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308265B1 (en) 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Protection of boot block code while allowing write accesses to the boot block
KR20020089812A (en) * 2001-05-24 2002-11-30 주식회사 하이닉스반도체 Method for updating of flash memory in mobile communication system
KR100446734B1 (en) * 2002-02-28 2004-09-01 엘지전자 주식회사 An updating system of pda
JP2004157767A (en) 2002-11-06 2004-06-03 Mitsubishi Electric Corp Software update system
KR20040083236A (en) * 2003-03-21 2004-10-01 엘지전자 주식회사 Method for upgrading program recorded on memory
JP2004348434A (en) 2003-05-22 2004-12-09 Mitsubishi Electric Corp Information processing device with communication function, and program update method for same
KR100506203B1 (en) * 2003-09-17 2005-08-05 삼성전자주식회사 Booting and boot code update method and system thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775431B1 (en) * 2006-02-20 2007-11-12 삼성전자주식회사 Apparatus and Method for System Imbedded System and Firmware Updating Method Therein
KR101640207B1 (en) * 2015-01-20 2016-07-15 주식회사 뉴티씨 (Newtc) Bootloader and embedded system upgrade method
CN112181446A (en) * 2020-09-04 2021-01-05 中国船舶重工集团公司第七0七研究所 STM 32-based software online upgrading method

Also Published As

Publication number Publication date
KR100860402B1 (en) 2008-09-26

Similar Documents

Publication Publication Date Title
KR101143112B1 (en) Applying custom software image updates to non-volatile storage in a failsafe manner
CN109478135B (en) Computer system and method for rebooting a computer system
US7730295B1 (en) Updating firmware of a peripheral device
US6553490B1 (en) Computer system including local computer with capability to automatically update operating system or application program from network server
KR100675518B1 (en) Modular bios update mechanism
US6928579B2 (en) Crash recovery system
US8417992B2 (en) Method, system and article of manufacture for system recovery
US6711675B1 (en) Protected boot flow
US6353928B1 (en) First run installer
US7017004B1 (en) System and method for updating contents of a flash ROM
US8032740B2 (en) Update in-use flash memory without external interfaces
US8539213B2 (en) Manageability extension mechanism for system firmware
US10437580B2 (en) Software updating methods and systems
US20080010446A1 (en) Portable apparatus supporting multiple operating systems and supporting method therefor
US20030069999A1 (en) Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems
CA2701491A1 (en) Firmware image update and management
US6308326B1 (en) Run-time modules for dynamically adjusting computer operation
KR20110055841A (en) Recovery method of system and apparatus for supplying the same
CN107567629A (en) Dynamic firmware module loader in credible performing environment container
KR100860402B1 (en) Device and method for upgradin system using two step bootloader
US20090138865A1 (en) Performing an operating system upgrade without multiple system interruptions
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
CN111258617B (en) Electronic equipment
JP2005515524A (en) Devices used in a network environment
US11768669B2 (en) Installing application program code on a vehicle control system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee