KR102517251B1 - Embedded system, patch server, and method for updating the embedded system - Google Patents
Embedded system, patch server, and method for updating the embedded system Download PDFInfo
- Publication number
- KR102517251B1 KR102517251B1 KR1020160049477A KR20160049477A KR102517251B1 KR 102517251 B1 KR102517251 B1 KR 102517251B1 KR 1020160049477 A KR1020160049477 A KR 1020160049477A KR 20160049477 A KR20160049477 A KR 20160049477A KR 102517251 B1 KR102517251 B1 KR 102517251B1
- Authority
- KR
- South Korea
- Prior art keywords
- patch
- embedded system
- version
- file
- stream
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 일 실시예에 따른 임베디드 시스템(embedded system)의 업데이트 방법은, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 패치 서버로 전송하는 단계; 상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하는 단계; 및 상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하는 단계를 포함할 수 있다.An update method of an embedded system according to an embodiment of the present invention includes transmitting a channel join message requesting joining of a multicast channel for transmitting a patch stream to a patch server. step; receiving a patch stream through the multicast channel and storing a patch file required for system update; and performing a runtime patch without rebooting by a patch module configured from the stored patch file.
Description
본 발명은 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법에 관한 것으로, 더욱 상세하게는 시스템의 중단 없이 시스템 업데이트를 수행할 수 있는 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법에 관한 것이다.The present invention relates to an embedded system, a patch server, and a method for updating the embedded system, and more particularly, to an embedded system capable of performing a system update without stopping the system, a patch server, and a method for updating the embedded system. will be.
임베디드 시스템(Embedded System, 내장형 시스템)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하는 컴퓨터 시스템이다. 상기 임베디드 시스템은 개인용 컴퓨터(PC)와는 달리 특정한 요구 사항을 가지고 있으며, 미리 정의된 작업(task)만을 수행한다. 상기 개인용 컴퓨터는 하드 디스크와 같은 대용량 저장장치에 운영 체제(Operating System; OS)를 내장하고 있다. 그에 반해, 상기 임베디드 시스템은 운영 체제와 응용 프로그램들이 비휘발성 메모리(Non-volatile memory)(예: ROM, flash memory 등)에 이미지(image) 형태로 저장되어 있다가, 시동과 동시에 램 디스크(RAM Disk)를 만든 다음, 램 디스크 위에 운영 체제와 응용 프로그램들이 구성되고 구동되는 시스템이다.An embedded system is a computer system that performs only special functions by embedding software for operating the system in hardware. Unlike a personal computer (PC), the embedded system has specific requirements and performs only predefined tasks. The personal computer has an operating system (OS) embedded in a mass storage device such as a hard disk. On the other hand, in the embedded system, the operating system and application programs are stored in the form of images in non-volatile memory (e.g., ROM, flash memory, etc.) Disk) is created, and then the operating system and application programs are configured and run on the RAM disk.
상기 임베디드 시스템은 필요에 따라 업데이트(update)될 수 있으며, 시스템 운용자는 업데이트를 위한 갱신 소프트웨어를 제공하는 서버에 접속하여 특정 임베디드 시스템의 시스템 종류에 따른 소프트웨어 버전을 확인하여, 갱신 소프트웨어의 존재 및 적용 여부를 판단함에 의해 시스템 업데이트가 진행될 수 있다. The embedded system can be updated as needed, and the system operator connects to a server providing updated software for updating and checks the software version according to the system type of the specific embedded system to determine the existence and application of the updated software. System update may proceed by determining whether or not.
또한, 임베디드 시스템에서 운영 소프트웨어는 비휘발성 메모리에 저장되는 단일 이미지로 관리되는데, 시스템 업데이트 시 운영 소프트웨어 내의 특정 모듈, 애플리케이션의 변경이 필요한 경우 단일 이미지를 새로 생성해야 하고 임베디드 시스템을 재부팅하여야 변경된 소프트웨어로 동작할 수 있게 된다. 이 경우, 임베디드 시스템의 동작이 중단될 수 밖에 없으므로 24시간 운용되어야 하는 시스템에서는 품질 저하를 가져오게 된다.In addition, in the embedded system, the operating software is managed as a single image stored in non-volatile memory. When updating the system, if a specific module or application within the operating software needs to be changed, a new single image must be created and the embedded system must be rebooted to restore the changed software. be able to operate. In this case, the operation of the embedded system is inevitably stopped, resulting in quality degradation in a system that must be operated 24 hours a day.
본 발명은 시스템 중단 없이 업데이트를 진행할 수 있는 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법을 제공하기 위한 것이다.An object of the present invention is to provide an embedded system capable of performing an update without system interruption, a patch server, and a method for updating the embedded system.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.
상기와 같은 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 임베디드 시스템(embedded system)의 업데이트 방법은, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 패치 서버로 전송하는 단계; 상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하는 단계; 및 상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하는 단계를 포함할 수 있다.In order to solve the above technical problem, a method for updating an embedded system according to an embodiment of the present invention includes a channel join message requesting subscription of a multicast channel for transmitting a patch stream ( channel join message) to the patch server; receiving a patch stream through the multicast channel and storing a patch file required for system update; and performing a runtime patch without rebooting by a patch module configured from the stored patch file.
실시예에 따라, 상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설될 수 있다.Depending on the embodiment, the multicast channel may be established for each system and patch version.
실시예에 따라, 상기 채널 조인 메시지는 상기 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고, 상기 멀티캐스트 채널은 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 채널일 수 있다.According to an embodiment, the channel join message includes system identification information and patch version information of the embedded system, and the multicast channel is the latest version after the current version according to the patch version information for the system according to the system identification information. It may be a channel corresponding to the patch of the version.
실시예에 따라, 상기 패치 스트림은, 패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 상기 패치 파일의 버전 정보, 상기 패치 파일의 전체 크기 및 상기 패치 파일의 인덱스를 포함할 수 있다.According to an embodiment, the patch stream may include patch target system information on the type of system on which the patch can be installed and whether the system version is compatible, version information of the patch file, the total size of the patch file, and the index of the patch file. can include
실시예에 따라, 상기 패치 파일을 저장하는 단계는, 상기 패치 대상 시스템 정보로부터 상기 임베디드 시스템에 설치될 수 있는 패치 파일인지 판단하는 단계; 상기 임베디드 시스템에 설치될 수 있는 패치 파일인 경우, 상기 패치 파일의 버전 정보를 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단하는 단계; 및 상기 수신된 패치 파일의 버전이 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전보다 높은 버전일 경우, 상기 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단하는 단계를 포함할 수 있다.According to an embodiment, the storing of the patch file may include determining whether the patch file can be installed in the embedded system from the patch target system information; If the patch file can be installed in the embedded system, comparing version information of the patch file with patch version information of a patch currently installed in the embedded system, determining whether a patch needs to be installed; and if the version of the received patch file is higher than the patch version of the patch currently installed in the embedded system, determining whether the patch file has already been received based on the index of the patch file.
실시예에 따라, 상기 런타임 패치를 수행하는 단계는, 상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하는 단계를 포함할 수 있다.According to embodiments, the performing of the runtime patch may include modifying a code region or data region of an operating system or a specific program being executed by the patch module in a pin-point manner.
실시예에 따라, 상기 패치 서버의 동작 불능시, L3 스위치로부터 패치 스트림을 수신하여, 상기 패치 파일을 저장하는 단계를 더 포함할 수 있다.According to an embodiment, the method may further include receiving a patch stream from an L3 switch and storing the patch file when the patch server is inoperable.
본 발명의 다른 실시예에 따른 임베디드 시스템(embedded system)의 업데이트 방법은, 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 수신하는 단계; 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 멀티캐스트 채널을 상기 임베디드 시스템에 할당하는 단계; 및 재부팅(rebooting)없이 런타임 패치(runtime)를 수행할 수 있도록, 상기 멀티캐스트 채널을 통해 패치 스트림을 상기 임베디드 시스템에 전송하는 단계를 포함할 수 있다.An update method of an embedded system according to another embodiment of the present invention includes system identification information and patch version information of the embedded system, and requests subscription to a multicast channel for transmitting a patch stream. Receiving a channel join message; allocating to the embedded system a multicast channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information; and transmitting a patch stream to the embedded system through the multicast channel so as to perform a runtime patch without rebooting.
상기와 같이 구성되는 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 핀포인트 방식으로 패치를 진행함으로써 소프트웨어 전체를 교체할 필요 또는 재부팅할 필요 없이도 시스템 업데이트가 가능하다.According to the update method of an embedded system according to an embodiment of the present invention configured as described above, system update is possible without the need to replace or reboot the entire software by patching in a pinpoint method.
또한, 전체 시스템을 업데이트하는데 소요되는 시간을 단축할 수 있으며, 시스템 이미지를 수정하는데 따르는 위험을 줄일 수 있고, 패치 적용 실패시에도 전체 시스템을 다시 업데이트 하지 않고 해당 영역에 대한 패치를 집중적으로 다시 시도할 수 있다.In addition, the time required to update the entire system can be shortened, the risk of modifying the system image can be reduced, and even if the patch application fails, the patch for that area is intensively retried without updating the entire system again. can do.
아울러, 패치 서버가 멀티캐스트 채널을 운영하여 패치 스트림을 전송함으로써 동시에 여러 임베디드 시스템들에 대한 패치가 가능하다. In addition, the patch server operates a multicast channel and transmits a patch stream so that multiple embedded systems can be patched at the same time.
마지막으로, 패치 서버의 장애시에도 다른 스위치에서 패치 스트림을 제공함으로써 정상적으로 패치를 완료할 수 있다.Lastly, even when the patch server fails, patching can be completed normally by providing patch streams from other switches.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. will be.
도 1은 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다.
도 2는 도 1에 도시된 패치 스트림의 일 예를 나타낸 도면이다.
도 3은 도 1에서 패치가 적용되는 방법을 설명하기 위한 도면이다.
도 4는 도 3의 방법을 이용해 패치가 적용되는 일 예에 대한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다.1 is a flowchart illustrating an update method of an embedded system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of the patch stream shown in FIG. 1 .
FIG. 3 is a diagram for explaining a method of applying a patch in FIG. 1 .
FIG. 4 is a diagram of an example in which a patch is applied using the method of FIG. 3 .
5 is a flowchart illustrating an update method of an embedded system according to another embodiment of the present invention.
이하, 본 발명과 관련된 적어도 하나의 실시 예에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.Hereinafter, at least one embodiment related to the present invention will be described in more detail with reference to the drawings. The suffixes "module" and "unit" for components used in the following description are given or used together in consideration of ease of writing the specification, and do not have meanings or roles that are distinct from each other by themselves.
도 1은 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다. 도 2는 도 1에 도시된 패치 스트림의 일 예를 나타낸 도면이다. 도 3은 도 1에서 패치가 적용되는 방법을 설명하기 위한 도면이다. 도 4는 도 3의 방법을 이용해 패치가 적용되는 일 예에 대한 도면이다.1 is a flowchart illustrating an update method of an embedded system according to an embodiment of the present invention. FIG. 2 is a diagram showing an example of the patch stream shown in FIG. 1 . FIG. 3 is a diagram for explaining a method of applying a patch in FIG. 1 . FIG. 4 is a diagram of an example in which a patch is applied using the method of FIG. 3 .
도 1을 참조하면, 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하는 컴퓨터 시스템이다. 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 각각 네트워크를 통해 스위치A(30)와 연결될 수 있다.Referring to FIG. 1 , the first embedded
스위치A(30)와 스위치B(40)는 임베디드 시스템들(10, 20)과 패치 서버(50) 사이에서 라우팅(routing)을 수행할 수 있다. 스위치A(30)와 스위치B(40)는 L3 스위치로 구현될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.Switch A 30 and
패치 서버(50)는 임베디드 시스템들(예컨대, 10, 20)의 업데이트(update)를 위한 패치 스트림(patch stream)을 제공하는 서버로서, 시스템과 패치 버전 별로 멀티캐스트(multi-cast) 채널을 개설하고 멀티캐스트 방식으로 해당 패치 스트림을 전송할 수 있다.The
제1 임베디드 시스템(10)은 채널 조인 메시지(channel join message)를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S110). 상기 채널 조인 메시지는 멀티캐스트 채널 가입을 요청하는 메시지로서, 제1 임베디드 시스템(10)의 시스템 식별 정보 및 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전 정보를 포함할 수 있다. 또한, 상기 채널 조인 메시지는 제1 임베디드 시스템(10)에 수신된 패치 스트림이 존재하는 경우, 수신된 패치 스트림의 인덱스(index)를 포함할 수 있다.The first embedded
제1 임베디드 시스템(10)은 시스템 관리자에 의해 미리 설정된 주기(예컨대, 3일)마다 채널 조인 메시지를 생성할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.The first embedded
패치 서버(50)는 수신된 채널 조인 메시지를 기초로 쿼리 메시지(query message)를 생성하여 스위치A(30)와 스위치B(40)를 통해 제1 임베디드 시스템(10)으로 전송할 수 있다(S120). 상기 쿼리 메시지는 멀티캐스트 채널 가입의 요청에 대한 응답 메시지이다. The
패치 서버(50)는 제1 임베디드 시스템(10)의 시스템 식별 정보 및 패치 버전 정보를 확인하여 시스템 식별 정보에 따른 시스템에 대해 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치가 존재하는지 판단할 수 있다. 업데이트가 필요한 최신 버전의 패치가 존재할 경우, 패치 서버(50)는 자신의 주소 정보와 함께 패치 파일을 가지고 있다는 정보를 포함하는 쿼리 메시지를 생성하여 제1 임베디드 시스템(10)으로 전송하게 된다.The
또한, 패치 서버(50)는 상기 시스템 식별 정보와 상기 최신 버전의 패치에 대응하는 멀티캐스트 채널에 대한 제1 임베디드 시스템(10)의 접속을 허용할 수 있으며, 이를 위해 상기 쿼리 메시지에는 상기 멀티캐스트 채널에 대한 접속을 위한 정보가 포함될 수 있다. 이에 따라 제1 임베디드 시스템(10)은 상기 쿼리 메시지를 수신하여 상기 멀티캐스트 채널에 접속할 수 있다.In addition, the
제2 임베디드 시스템(20)은 채널 조인 메시지를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S130).The second embedded
패치 서버(50)는 수신된 채널 조인 메시지를 기초로 쿼리 메시지를 생성하여 스위치A(30)와 스위치B(40)를 통해 제2 임베디드 시스템(20)으로 전송할 수 있다(S140).The
S130 단계와 S140 단계의 동작은 제1 임베디드 시스템(10)에서 제2 임베디드 시스템(20)으로 변경된 것 이외에는 실질적으로 차이가 없으므로, 이에 대한 설명은 생략하기로 한다. 다만, 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 동일한 멀티캐스트 채널에 가입하여 패치 스트림을 수신한다고 가정하고 설명하기로 하며, 제1 임베디드 시스템(10)에서의 패치 스트림 수신 및 적용을 중심으로 설명하기로 한다.There is no substantial difference between the operations of steps S130 and S140 except for the change from the first embedded
제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 패치 서버(50)가 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)이 가입한 멀티캐스트 채널로 전송하는 첫번째 패치 스트림을 수신할 수 있다(S150).The first embedded
도 2에서, 패치 스트림(100)은 헤더(header) 및 바디(body)를 포함할 수 있다. In FIG. 2 , the
상기 헤더는 패치 스트림(100)의 시작을 알려주는 매직 코드(magic code), 패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 패치 파일의 버전 정보, 패치 업로드(upload) 날짜, 패치 파일의 전체 크기, 패치 파일의 인덱스, 오류 확인 정보(예컨대, CRC) 등을 포함할 수 있다.The header includes a magic code indicating the start of the
상기 바디는 임베디드 시스템(10, 20)의 업데이트를 위한 패치 파일의 적어도 일부를 포함할 수 있다. 상기 바디는 단일 기능 단위의 바이너리(binary) 형태의 복수의 파일들(binary#1~binary#n(n은 2이상의 정수))을 포함할 수 있다. 상기 패치 파일은 도 4의 패치 모듈(400)을 구성할 수 있다.The body may include at least a part of a patch file for updating the embedded
제1 임베디드 시스템(10)은 패치 서버(50)가 멀티캐스트 채널로 전송하는 패치 스트림의 패치 대상 시스템 정보로부터 제1 임베디드 시스템(10)에 설치될 수 있는 패치 파일인지 판단할 수 있다.The first embedded
만일, 제1 임베디드 시스템(10)에 설치될 수 없는 패치 파일인 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 무시할 수 있다.If it is a patch file that cannot be installed in the first embedded
그러나 제1 임베디드 시스템(10)에 설치될 수 있는 패치 파일인 경우, 제1 임베디드 시스템(10)은 패치 파일의 버전 정보를 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단할 수 있다.However, in the case of a patch file that can be installed in the first embedded
만일, 수신된 패치 파일의 버전이 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전과 동일하거나 낮은 버전일 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 무시할 수 있다.If the version of the received patch file is the same as or lower than the patch version of the patch currently installed in the first embedded
그러나 수신된 패치 파일의 버전이 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전보다 높은 버전일 경우, 제1 임베디드 시스템(10)은 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단할 수 있다.However, if the version of the received patch file is higher than the patch version of the patch currently installed in the first embedded
만일, 이미 저장되어 있는 패치 파일의 인덱스와 수신된 패치 파일의 인덱스가 동일한 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 무시할 수 있다.If the index of the patch file already stored is the same as the index of the received patch file, the first embedded
그러나, 이미 저장되어 있는 패치 파일의 인덱스와 수신된 패치 파일의 인덱스가 동일하지 않은 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 비휘발성 메모리(예컨대, 도 4의 플래시 메모리(200))에 저장할 수 있다.However, if the index of the patch file already stored and the index of the received patch file are not the same, the first embedded
도 1의 실시예에서는 패치 서버(50)가 패치 파일을 4회에 나누어 전송한다고 가정하며, 제1 임베디드 시스템(10)은 S150에서 이미 저장되어 있는 패치 파일의 인덱스가 존재하지 않을 경우, 패치 파일의 시작을 검출해 낼 수 있다.In the embodiment of FIG. 1 , it is assumed that the
또한, 제1 임베디드 시스템(10)은 전체 파일의 크기와 현재까지 수신된 패치 파일의 인덱스를 기초로 패치 파일이 모두 수신되었는지 판단할 수 있다. 예컨대, 전체 파일의 크기가 100MByte이며, 현재까지 수신된 패치 파일의 인덱스가 지시하는 용량이 50MByte 인 경우, 제1 임베디드 시스템(10)은 패치 파일이 모두 수신되지 않았다고 판단할 수 있다.In addition, the first embedded
제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 패치 서버(50)가 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)이 가입한 멀티캐스트 채널로 전송하는 두번째, 세번째, 그리고 네번째 패치 스트림을 수신할 수 있다(S152, S154, S156).The first embedded
제1 임베디드 시스템(10)은 S152, S154 및 S156 단계에서 S150 단계와 동일한 동작에 의해 패치 스트림(100)에 포함된 패치 파일을 저장할 수 있다.The first embedded
S156 단계에서 제1 임베디드 시스템(10)은 전체 파일의 크기와 현재까지 수신된 패치 파일의 인덱스를 기초로 패치 파일이 모두 수신되었는지 판단하며, 4회의 패치 파일 수신이 완료되었으므로 패치 파일의 마지막을 검출할 수 있다.In step S156, the first embedded
패치 파일이 모두 수신되었다고 판단되면, 제1 임베디드 시스템(10)은 해당 패치 파일을 적용할 수 있다(S160).If it is determined that all patch files have been received, the first embedded
도 3을 참조하면, 제1 임베디드 시스템(10)은 패치 파일을 비휘발성 메모리인 플래시 메모리(200)에 저장하며, 수신이 완료된 패치 파일은 패치 모듈(400)을 구성하게 된다. 패치 파일은 별도의 실행 과정을 통해 패치 모듈(400)로 동작할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.Referring to FIG. 3 , the first embedded
패치 모듈(400)은 제1 임베디드 시스템(10)과의 연동을 통해 패치가 필요한 영역의 주소(논리 주소 또는 물리 주소)를 획득하여 패치 동작을 수행할 수 있다.The
플래시 메모리(200)는 패치 파일 이외에 제1 임베디드 시스템(10)의 이미지(image)인 네트워크 운영체제(Network Operating System, 300)를 포함할 수 있다. 즉, 플래시 메모리(200)는 제1 임베디드 시스템(10)이 동작하는 상위 시스템의 구성이며, 제1 임베디드 시스템(10)은 플래시 메모리(200)에 이미지 형태인 NOS(300)로 저장되어 있다가, 시동과 동시에 램 디스크(RAM Disk, 600)를 생성한 뒤, 램 디스크(600) 상에 운영 체제와 응용 프로그램들이 구성되고 구동되는 시스템이다. The
또한, 제1 임베디드 시스템(10)은 커널(kernel, 500)을 통해 상기 상위 시스템의 하드웨어(예컨대, 200)에 액세스(access)할 수 있다. 상기 설명된 제1 임베디드 시스템(10)이 패치 파일을 플래시 메모리(200)에 저장하는 동작 역시 커널(500)을 통해 수행될 수 있다.In addition, the first embedded
패치 모듈(400)은 커널(500)을 통해 상기 상위 시스템의 하드웨어(예컨대, 200)에 액세스함으로써, 제1 임베디드 시스템(10)의 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정할 수 있다.The
또한, 패치 모듈(400)은 램디스크(600) 상에서 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트 방식으로 수정할 수 있다.In addition, the
이처럼, 패치 모듈(400)이 커널(500) 및 램디스크(600)가 정상적으로 동작하는 도중 핀포인트 방식으로 재부팅 없이 해당 코드를 즉시 수정 및 적용하는 것을 런타임 패치(runtime patch)라 한다.As such, when the
런타임 패치를 위해, 패치 모듈(400)은 코드 수정의 대상인 영역이 액세스되고 있는지 모니터링(monitoring)할 수 있고, 모니터링 결과 해당 영역이 액세스되지 않고 패치 진행 도중 액세스될 가능성이 없을 경우에만 코드 수정을 진행할 수 있다.For runtime patching, the
도 4에서, 패치 모듈(400)이 실행되면, 패치 모듈(400)은 제1 임베디드 시스템(10)으로부터 패치가 필요한 영역에 대한 메모리 주소(0x100002fc ~ 0x10000318)를 획득하며, 메모리 주소(0x100002fc ~ 0x10000318)에 대해 핀포인트 방식으로 수정함으로써 런타임 패치를 진행할 수 있다. 상기 핀포인트 방식은 패치가 필요한 영역에만 이레이즈(erase) 및 프로그램(program) 동작을 수행하여 해당 영역의 코드를 교체하는 방식을 의미한다.In FIG. 4 , when the
예컨대, 런타임 패치에 의해 메모리 주소(0x10000310)에 저장된 코드는 “38 0a 00 01”에서 “11 0a 00 a0”으로 교체될 수 있다. For example, the code stored at the memory address (0x10000310) by the runtime patch may be replaced with “11
해당 영역의 코드 수정이 완료되면, 제1 임베디드 시스템(10)은 수정된 영역을 실행할 수 있는 파일로 변경하는 빌드(build) 동작을 수행할 수 있다. 제1 임베디드 시스템(10)은 빌드된 파일을 실행하여 정상적으로 동작하는지 검증할 수 있으며, 검증 결과 정상 동작이 확인되면 S160 단계를 완료할 수 있다.When the code modification of the corresponding area is completed, the first embedded
그러나, 검증 결과 정상적으로 동작되지 않을 경우, 제1 임베디드 시스템(10)은 패치 서버(50)로 해당 패치 파일을 다시 요청할 수 있으며, 해당 영역에 대한 패치 스트림 재수신 및 패치 적용 단계를 다시 수행할 수 있다.However, if it does not operate normally as a result of the verification, the first embedded
기존의 임베디드 시스템의 업데이트 방식은 이미지 형태의 NOS(300)를 수정 또는 교체하여 재부팅이 필수적이었으므로 서비스 제공이 중단될 수 밖에 없었다.In the existing update method of the embedded system, the
그러나, 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 핀포인트 방식으로 패치를 진행함으로써 소프트웨어 전체를 교체할 필요 또는 재부팅할 필요 없이도 시스템 업데이트가 가능하다.However, according to the update method of an embedded system according to an embodiment of the present invention, system update is possible without the need to replace or reboot the entire software by patching in a pinpoint method.
또한, 전체 시스템을 업데이트하는데 소요되는 시간을 단축할 수 있으며, NOS(300)를 수정하는데 따르는 위험을 줄일 수 있다.In addition, the time required to update the entire system can be reduced, and the risk of modifying the
아울러, 패치 적용 실패시에도 전체 시스템을 다시 업데이트 하지 않고 해당 영역에 대한 패치를 집중적으로 다시 시도할 수 있다.In addition, even if the patch application fails, the patch for the corresponding area can be intensively retried without updating the entire system again.
패치 적용 완료 후, 제1 임베디드 시스템(10)은 채널 리브 메시지(channel leave message)를 스위치A(30)와 스위치B(40)를 통해 전송할 수 있다(S170). 상기 채널 리브 메시지는 패치 스트림 수신을 위한 멀티캐스트 채널에 대한 해지를 요청하는 메시지이다. After the application of the patch is completed, the first embedded
상기 채널 리브 메시지를 수신한 패치 서버(50)는 제1 임베디드 시스템(10)에 대한 멀티캐스트 채널을 해지하며, 패치 스트림을 제2 임베디드 시스템(20)으로 전송할 수 있다(S180).Upon receiving the channel live message, the
본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 패치 서버가 멀티캐스트 채널을 운영하여 패치 스트림을 전송함으로써 동시에 여러 임베디드 시스템들에 대한 패치가 가능하다. According to the update method of an embedded system according to an embodiment of the present invention, a patch server operates a multicast channel and transmits a patch stream, so that multiple embedded systems can be patched at the same time.
또한, 시스템 관리자의 개입없이 자동적으로 패치가 진행되어 신속한 시스템 업그레이드와 함께 시스템 관리자의 편의성이 높아질 수 있다.In addition, patching is performed automatically without intervention of the system manager, so that the convenience of the system manager can be increased along with rapid system upgrade.
도 5는 본 발명의 다른 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다.5 is a flowchart illustrating an update method of an embedded system according to another embodiment of the present invention.
도 1 및 도 5를 참조하면, 패치 서버(50)가 어떠한 이유(예컨대, 서버 자체 점검 또는 오류, 통신 상의 장애 등)로 쿼리 메시지 및 패치 스트림 등의 데이터의 전송이 불가능한 상태라 가정한다.Referring to FIGS. 1 and 5 , it is assumed that the
제1 임베디드 시스템(10)은 채널 조인 메시지를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S210). 그러나, 패치 서버(50)는 데이터 전송이 불가한 상태이므로, 스위치B(40)는 쿼리 메시지를 수신하지 못한다.The first embedded
스위치B(40)는 시스템과 패치 버전 별 패치 파일을 일부 저장할 수 있다. 즉, 스위치(B(40)는 패치 서버(50)의 제어에 따라 상기 패치 파일을 저장할 수 있거나, 패치 스트림을 패치 서버(50)와 스위치A(30) 사이에서 전달하는 과정에서 스스로의 판단에 의해 저장할 수도 있다.The
스위치B(40)는 상기 채널 조인 메시지에 포함되는 제1 임베디드 시스템(10)의 시스템 식별 정보 및 패치 버전 정보를 확인하여, 시스템 식별 정보에 따른 시스템에 대해 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치를 저장하고 있는지 판단할 수 있다.The
또한, 스위치B(40)는 상기 채널 조인 메시지의 수신된 패치 스트림의 인덱스를 확인하여 제1 임베디드 시스템(10)이 필요한 패치를 저장하고 있는지 판단할 수 있다.In addition, the
제1 임베디드 시스템(10)이 필요한 패치를 저장하고 있는 경우, 스위치B(40)는 자신의 주소 정보와 함께 패치 파일을 가지고 있다는 정보를 포함하는 쿼리 메시지를 생성하여 제1 임베디드 시스템(10)으로 전송하게 된다(S220).When the first embedded
제2 임베디드 시스템(20)은 채널 조인 메시지를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S230).The second embedded
S220 단계와 동일하게, 스위치B(40)는 제1 임베디드 시스템(10)이 필요한 패치를 저장하고 있는 경우, 수신된 채널 조인 메시지를 기초로 쿼리 메시지를 생성하여 스위치A(30)를 통해 제2 임베디드 시스템(20)으로 전송할 수 있다(S240).Similarly to step S220, switch
제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 스위치B(40)로부터 첫번째 패치 스트림을 수신할 수 있다(S250).The first embedded
이후의 단계들(S252~S280) 각각은 도 1의 S152~S180 단계들 각각과 실질적으로 동일하므로, 상세한 설명은 설명의 중복을 피하기 위해 생략하기로 한다.Since each of the subsequent steps (S252 to S280) is substantially the same as each of the steps S152 to S180 of FIG. 1, detailed descriptions will be omitted to avoid duplication of description.
본 발명의 다른 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 패치 서버의 장애시에도 다른 스위치에서 패치 스트림을 제공함으로써 정상적으로 패치를 완료할 수 있다.According to the method for updating an embedded system according to another embodiment of the present invention, patching can be normally completed by providing a patch stream from another switch even when a patch server fails.
상기와 같이 설명된 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. The method described above can be implemented as computer readable codes on a computer readable recording medium. Computer-readable recording media includes all types of recording media in which data that can be decoded by a computer system is stored. For example, there may be read only memory (ROM), random access memory (RAM), magnetic tape, magnetic disk, flash memory, optical data storage device, and the like. In addition, the computer-readable recording medium may be distributed to computer systems connected through a computer communication network, and stored and executed as readable codes in a distributed manner.
또한, 상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.In addition, although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art can make the present invention within the scope not departing from the spirit and scope of the present invention described in the claims below. It will be appreciated that various modifications and variations may be made.
Claims (18)
상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하는 단계; 및
상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하는 단계를 포함하고,
상기 런타임 패치를 수행하는 단계는,
상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하는 단계를 포함하고,
상기 핀포인트(pin-point) 방식으로 수정하는 단계는,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고, 상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만 상기 해당 영역에 대한 코드 수정을 진행하는 임베디드 시스템(embedded system)의 업데이트 방법.Transmitting a channel join message requesting subscription to a multicast channel for transmitting a patch stream to a patch server;
receiving a patch stream through the multicast channel and storing a patch file required for system update; and
Performing a runtime patch without rebooting by a patch module configured from the stored patch file;
The step of performing the runtime patch,
Modifying a code area or data area of an operating system or a specific program being executed by the patch module in a pin-point manner;
The step of correcting by the pin-point method,
It monitors whether the corresponding area, which is the target of code modification, is being accessed, and based on the result of the monitoring, the code for the corresponding area is modified only when the corresponding area is not accessed and there is no possibility of access during the patching process. Update method of an embedded system that proceeds.
상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설되는 임베디드 시스템의 업데이트 방법.According to claim 1,
The method of updating an embedded system in which the multicast channel is established for each system and patch version.
상기 채널 조인 메시지는 상기 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고,
상기 멀티캐스트 채널은 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 채널인 임베디드 시스템의 업데이트 방법.According to claim 2,
The channel join message includes system identification information and patch version information of the embedded system,
The multicast channel is a channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information.
상기 패치 스트림은,
패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 상기 패치 파일의 버전 정보, 상기 패치 파일의 전체 크기 및 상기 패치 파일의 인덱스를 포함하는 임베디드 시스템의 업데이트 방법.According to claim 1,
The patch stream,
A method for updating an embedded system, including information about a system type to which a patch can be installed and system versions to be patched, information about the version of the patch file, total size of the patch file, and an index of the patch file.
상기 패치 파일을 저장하는 단계는,
상기 패치 대상 시스템 정보로부터 상기 임베디드 시스템에 설치될 수 있는 패치 파일인지 판단하는 단계;
상기 임베디드 시스템에 설치될 수 있는 패치 파일인 경우, 상기 패치 파일의 버전 정보를 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단하는 단계; 및
상기 수신된 패치 파일의 버전이 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전보다 높은 버전일 경우, 상기 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단하는 단계를 포함하는 임베디드 시스템의 업데이트 방법.According to claim 4,
The step of storing the patch file is,
determining whether the patch file can be installed in the embedded system from the patch target system information;
If the patch file can be installed in the embedded system, comparing version information of the patch file with patch version information of a patch currently installed in the embedded system, determining whether a patch needs to be installed; and
If the version of the received patch file is higher than the patch version of the patch currently installed in the embedded system, determining whether the patch file has already been received based on the index of the patch file. method.
상기 패치 서버의 동작 불능시, L3 스위치로부터 패치 스트림을 수신하여, 상기 패치 파일을 저장하는 단계를 더 포함하는 임베디드 시스템의 업데이트 방법.According to claim 1,
The method of updating an embedded system further comprising receiving a patch stream from an L3 switch and storing the patch file when the patch server is inoperable.
상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 멀티캐스트 채널을 상기 임베디드 시스템에 할당하는 단계; 및
재부팅(rebooting)없이 런타임 패치(runtime)를 수행할 수 있도록, 상기 멀티캐스트 채널을 통해 패치 스트림을 상기 임베디드 시스템에 전송하는 단계를 포함하고,
상기 임베디드 시스템은,
전송된 상기 런타임 패치를 수행하도록 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하고,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고, 상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만 상기 해당 영역에 대한 코드 수정을 진행하는 임베디드 시스템(embedded system)의 업데이트 방법.Receiving a channel join message including system identification information and patch version information of an embedded system and requesting subscription to a multicast channel for transmitting a patch stream;
allocating to the embedded system a multicast channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information; and
Transmitting a patch stream to the embedded system through the multicast channel so that runtime patching can be performed without rebooting;
The embedded system,
Modifying a code area or data area of an operating system or a specific program being executed by a patch module in a pin-point manner to perform the transmitted runtime patch;
It monitors whether the corresponding area, which is the target of code modification, is being accessed, and based on the result of the monitoring, the code for the corresponding area is modified only when the corresponding area is not accessed and there is no possibility of access during the patching process. Update method of an embedded system that proceeds.
상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설되는 임베디드 시스템의 업데이트 방법.According to claim 8,
The method of updating an embedded system in which the multicast channel is established for each system and patch version.
상기 패치 스트림은,
패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 패치 파일의 버전 정보, 패치 파일의 전체 크기 및 패치 파일의 인덱스를 포함하는 임베디드 시스템의 업데이트 방법.According to claim 8,
The patch stream,
The update method of the embedded system, which includes information about the type of system on which the patch can be installed and system version compatibility, the version information of the patch file, the total size of the patch file, and the index of the patch file.
상기 런타임 패치는,
상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하되,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고,
상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만, 상기 해당 영역에 대한 코드 수정을 진행하는 임베디드 시스템(embedded system).A patch file necessary for system update is transmitted by sending a channel join message requesting subscription to a multicast channel for transmitting a patch stream to a patch server and receiving a patch stream through the multicast channel. is stored, and a runtime patch is performed without rebooting by a patch module configured from the stored patch file,
The runtime patch,
The code area or data area of an operating system or a specific program being executed by the patch module is modified in a pin-point manner,
monitoring whether the area subject to code modification is being accessed;
Based on the result of the monitoring, the embedded system proceeds with code modification for the corresponding region only when the corresponding region is not accessed and there is no possibility of access during patching.
상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설되는 임베디드 시스템.According to claim 11,
The multicast channel is established for each system and patch version.
상기 채널 조인 메시지는 상기 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고,
상기 멀티캐스트 채널은 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 채널인 임베디드 시스템.According to claim 12,
The channel join message includes system identification information and patch version information of the embedded system,
The multicast channel is a channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information.
상기 패치 스트림은,
패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 상기 패치 파일의 버전 정보, 상기 패치 파일의 전체 크기 및 상기 패치 파일의 인덱스를 포함하는 임베디드 시스템.According to claim 11,
The patch stream,
An embedded system including patch target system information on the type of system to which the patch can be installed and whether the system version is compatible, version information of the patch file, total size of the patch file, and an index of the patch file.
상기 패치 대상 시스템 정보로부터 상기 임베디드 시스템에 설치될 수 있는 패치 파일인지 판단하고,
상기 임베디드 시스템에 설치될 수 있는 패치 파일인 경우, 상기 패치 파일의 버전 정보를 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단하고,
상기 수신된 패치 파일의 버전이 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전보다 높은 버전일 경우, 상기 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단하는 임베디드 시스템.According to claim 14,
Determining whether the patch file can be installed in the embedded system from the patch target system information;
In the case of a patch file that can be installed in the embedded system, version information of the patch file is compared with patch version information of a patch currently installed in the embedded system to determine whether the patch needs to be installed;
If the version of the received patch file is higher than the version of the patch currently installed in the embedded system, the embedded system determines whether the patch file has already been received based on the index of the patch file.
상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하는 임베디드 시스템.According to claim 11,
An embedded system that modifies a code area or data area of an operating system or a specific program being executed by the patch module in a pin-point manner.
상기 패치 서버의 동작 불능시, L3 스위치로부터 패치 스트림을 수신하여, 상기 패치 파일을 저장하는 임베디드 시스템.According to claim 11,
An embedded system configured to receive a patch stream from an L3 switch and store the patch file when the patch server is inoperable.
상기 임베디드 시스템은,
전송된 상기 런타임 패치를 수행하도록 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하고,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고, 상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만 상기 해당 영역에 대한 코드 수정을 진행하는 패치 서버.A system that includes system identification information and patch version information of an embedded system, receives a channel join message requesting subscription to a multicast channel for transmitting a patch stream, and receives a system according to the system identification information , a multicast channel corresponding to a patch of the latest version after the current version according to the patch version information is allocated to the embedded system, and a runtime patch is performed without rebooting. Sending a patch stream to the embedded system through,
The embedded system,
Modifying a code area or data area of an operating system or a specific program being executed by a patch module in a pin-point manner to perform the transmitted runtime patch;
It monitors whether the corresponding area, which is the target of code modification, is being accessed, and based on the result of the monitoring, the code for the corresponding area is modified only when the corresponding area is not accessed and there is no possibility of access during the patching process. The patch server that runs the .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160049477A KR102517251B1 (en) | 2016-04-22 | 2016-04-22 | Embedded system, patch server, and method for updating the embedded system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160049477A KR102517251B1 (en) | 2016-04-22 | 2016-04-22 | Embedded system, patch server, and method for updating the embedded system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170120922A KR20170120922A (en) | 2017-11-01 |
KR102517251B1 true KR102517251B1 (en) | 2023-04-03 |
Family
ID=60382912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160049477A KR102517251B1 (en) | 2016-04-22 | 2016-04-22 | Embedded system, patch server, and method for updating the embedded system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102517251B1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100598074B1 (en) * | 2004-10-19 | 2006-07-10 | 한국전자통신연구원 | Method of transmitting broadcast streaming data in ip based broadcasting service system |
KR20080037450A (en) * | 2006-10-26 | 2008-04-30 | 웹싱크 주식회사 | System and method for processing update software run on mobile terminal platform |
KR20120015681A (en) * | 2010-08-12 | 2012-02-22 | (주)네오위즈게임즈 | Method, server, recording medium and terminal for file patch |
US9152410B2 (en) * | 2012-06-21 | 2015-10-06 | Vaibhav KHANDELWAL | Auto-update while running client interface with handshake |
-
2016
- 2016-04-22 KR KR1020160049477A patent/KR102517251B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20170120922A (en) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10466999B2 (en) | Software hot upgrading method and device | |
US10628205B2 (en) | Virtual machine placement with automatic deployment error recovery | |
US11243792B2 (en) | Image file conversion method and apparatus | |
TWI579769B (en) | Virtual machine migration tool | |
US8245217B2 (en) | Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine | |
US10462250B2 (en) | Distributed caching cluster client configuration | |
US20180307569A1 (en) | Data retracement method, apparatus, and system | |
US11231919B2 (en) | Live updates of stateful components | |
US8635425B1 (en) | Upgrading computing devices | |
US20200117478A1 (en) | Method, apparatus, and computer program product for managing service container | |
US10409999B2 (en) | Communication between key manager and storage subsystem kernel via management console | |
US20200150950A1 (en) | Upgrade managers for differential upgrade of distributed computing systems | |
JPWO2017145272A1 (en) | Data migration method and computer system | |
US20220413968A1 (en) | Devices and methods for fast backup | |
US11295018B1 (en) | File system modification | |
KR102517251B1 (en) | Embedded system, patch server, and method for updating the embedded system | |
EP3647953B1 (en) | System and method for data backup in mixed disk environment | |
US10972343B2 (en) | System and method for device configuration update | |
US10635544B1 (en) | Assigning VMware local proxy host-datastore groups for consistently optimized access | |
US9270530B1 (en) | Managing imaging of multiple computing devices | |
US10848405B2 (en) | Reporting progress of operation executing on unreachable host | |
US11853560B2 (en) | Conditional role decision based on source environments | |
US11704071B1 (en) | Delegating low priority tasks to a passive storage controller | |
US20240104114A1 (en) | Techniques for upgrading and accessing metadata | |
US8065737B1 (en) | Virus scanning for block-level distributed application management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |