KR101401143B1 - 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템 - Google Patents

무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템 Download PDF

Info

Publication number
KR101401143B1
KR101401143B1 KR1020070071827A KR20070071827A KR101401143B1 KR 101401143 B1 KR101401143 B1 KR 101401143B1 KR 1020070071827 A KR1020070071827 A KR 1020070071827A KR 20070071827 A KR20070071827 A KR 20070071827A KR 101401143 B1 KR101401143 B1 KR 101401143B1
Authority
KR
South Korea
Prior art keywords
intermediate binary
binary file
change
change log
file
Prior art date
Application number
KR1020070071827A
Other languages
English (en)
Other versions
KR20080008969A (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 삼성전자주식회사
Publication of KR20080008969A publication Critical patent/KR20080008969A/ko
Application granted granted Critical
Publication of KR101401143B1 publication Critical patent/KR101401143B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management

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)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 일반적으로 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 위한 시스템 및 방법에 관한 것이다. 이를 위한 본 발명은 추출 가능한 바이너리 이미지를 포함하는 중간 바이너리 파일에 대한 누적 변경 로그를 생성하는 단계를 포함한다. 또한, 누적 변경 로그는 중간 바이너리 파일과 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 사이에 변경을 기록할 수 있다. 누적 변경 로그는 중간 바이너리 파일에 저장되고 나중에 획득(retrive)된다. 또한, 누적 변경 로그는, 중간 바이너리 파일과 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 사이에서 발생한 변경에 관한 통계를 식별하도록 분석될 수 있다.
무선 펌웨어 업데이트, 변경 로그, 누적 변경 로그

Description

무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법 및시스템{SYSTEM AND METHOD FOR CHANGE LOGGING IN A FIRMWARE OVER THE AIR DEVELOPMENT ENVIRONMENT}
본 발명은 일반적으로 FOTA(Firmware Over The Air) 개발 환경에서의 변경 로깅을 위한 시스템 및 방법에 관한 것이다.
일반적으로 핸드셋 및 무선 장치는 실행 가능 명령 및 비실행 데이터 형식의 소프트웨어를 저장하고 있는 메모리를 포함한다. 핸드셋 및 무선 장치는 이와 같은 소프트웨어를 통해 무선 네트워크를 통한 통신, 착신호 대기와 착신호 전환과 같은 콜 특징의 취급, 달력과 주소록을 유지와 같은 다양한 기능을 수행할 수 있게 된다. 한편, 일단 최종 사용자에게 제공되고 나면, 추가적인 소프트웨어를 제공하거나, 장치에 이미 인스톨된 소프트웨어를 보정하는 것이 어렵게 된다.
이러한 문제를 해결하기 위해 무선을 통한 펌웨어(FOTA; firmware over the air)가 개발되었고, 이에 서비스 제공자는 무선 네트워크를 통해 무선 장치에 소프트웨어를 업데이트하기 위한 정보를 전송할 수 있게 되었다. 이하, FOTA를 무선 펌웨어 업데이트로 기재하도록 한다. 이와 같은 무선 펌웨어 업데이트는 무선 장치에 이미 존재하는 소프트웨어에 추가적인 기능을 제공할 수 있거나, 기존의 소프트웨어에 있는 문제를 처리하기 위한 버그 수정을 위한 정보를 제공할 수 있도록 한다.
상기와 같이 현재 서비스 제공자가 무선 장치로 소프트웨어를 전송하는 무선 펌웨어 업데이트 방식을 제공하고 있지만, 프로그램을 생성하고 유지하는 개발 과정에서 많은 문제들이 있다. 그 문제들 중에서 무선 펌웨어 업데이트 개발 환경에서 소프트웨어의 개발은 어려운 문제이고 개선의 여지가 있다.
따라서, 본 발명은 모바일 장치에서 이용되는 바이너리 이미지의 이터레이션(iteration)을 생성할 때 변경 로그(change log)를 유지하는 방법을 제공하는 것이다.
또한, 본 발명은 무선 펌웨어 업데이트 개발 환경에서 이용되는 방법이 제공하는데 있다.
또한, 본 발명은 무선 펌웨어 업데이트 환경에서의 변경 로깅을 위한 시스템을 제공하는데 있다.
상기한 바를 달성하기 위한 본 발명은 모바일 장치에서 이용되는 바이너리 이미지의 이터레이션(iteration) 을 생성할 때 변경 로그를 유지하는 방법이 제공된다. 이 방법은 제1 바이너리 이미지에 대한 헤더 정보 및 이미지 정보를 포함하는 제1 중간 바이너리 파일을 생성하는 단계와, 제2 바이너리 이미지에 대한 헤더 정보 및 이미지 정보를 포함하는 제2 중간 바이너리 파일을 생성하는 단계를 포함한다. 제1 변경 로그가 제2 중간 바이너리 파일로 삽입되며, 여기서 제1 변경 로그 는 제1 및 제2 중간 바이너리 파일 간의 차이를 포함하는 것이다. 제3 바이너리 이미지에 대한 헤더 정보와 이미지 정보를 포함하는 제3 중간 바이너리 파일이 생성된다. 제1 변경 로그와 제2 변경 로그가 제3 중간 바이너리 파일로 삽입되며, 여기서 제2 변경 로그는 제2 와 제3 중간 바이너리 파일 간의 차이를 포함하는 것이다.
상기한 바를 달성하기 위한 본 발명은, 무선 펌웨어 업데이트(FOTA : firmware over the air) 개발 환경에서 이용되는 방법이 제공된다. 이 방법은 추출가능한 바이너리 이미지를 포함하는 중간 바이너리 파일에 대한 누적 변경 로그를 생성하는 단계를 포함하며, 여기서 누적 변경 로그는 중간 바이너리 파일과 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 사이에 변경을 기록한다. 누적 변경 로그는 중간 바이너리 파일에 저장되고, 중간 바이너리 파일로부터 검색된다. 누적 변경 로그는 중간 바이너리 파일과 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 사이에서 발생한 변경에 관한 통계를 식별하도록 분석된다.
상기한 바를 달성하기 위한 본 발명은, 무선 펌웨어 업데이트 환경에서의 변경 로깅을 위한 시스템이 제공된다. 이 시스템은 프로세서, 프로세서에 연결된 메모리 및 메모리에 저장되어 프로세서에 의해 실행되는 다수의 컴퓨터 실행 명령을 포함한다. 이 명령은 바이너리 이미지에 대한 헤더 정보와 이미지 정보를 포함하는 베이스(base) 중간 바이너리 파일을 생성하고 중간 바이너리 파일의 적어도 제1 및 제2 이터레이션(iteration) 동작을 생성하는 명령을 포함한다. 이 명령은 또한 베이스와 제1 중간 바이너리 파일 간의 차이를 나타내는 제1 변경 로그 및 제1 과 제2 중간 바이너리 파일 간의 차이를 나타내는 제2 변경 로그를 생성하는 명령을 포 함한다. 또한, 명령은 제1 변경 로그를 제1 이터레이션 동작의 중간 바이너리 파일로 삽입하고, 제2 변경 로그를 제2 이터레이션 동작의 중간 바이너리 파일로 삽입하는 명령을 포함한다. 또한, 명령은 제2 중간 바이너리 파일로부터 실행가능한 바이너리 이미지를 추출하는 명령을 포함한다.
상기한 바와 같이 본 발명은 무선 펌웨어 업데이트 개발 환경에서 모바일 장치에서 이용되는 바이너리 이미지의 이터레이션(iteration) 동작을 생성할 때 변경 로그(change log)를 유지할 수 있도록 하는 이점이 있다. 또한, 본 발명은 무선 펌웨어 업데이트 시 기존에 비해 좀더 개선된 프로그램의 생성 및 유지 방법을 제공하는 이점이 있다.
하기의 설명은 본 발명의 다른 특징들을 구현하는, 많은 다른 실시 예와 예들을 제공하는 것으로 이해되어야 한다. 본 발명에 대한 설명의 단순화를 위해 요소 및 배치의 특정한 예들이 하기에 설명되었다. 물론, 이것들은 예시를 위한 것으로서 한정하려는 의도를 갖는 것은 아니다. 나아가, 본 발명의 설명에서 참조부호 및/또는 문자들이 이터레이션 될 수 있다. 이러한 이터레이션은 단순함 및 명확함을 위한 것이며 그 자체로, 논의된 다양한 실시 예들 및/또는 구성들의 관계를 나타내는 것은 아니다.
본 발명의 측면들은 첨부한 도면과 더불어 하기의 설명을 통해 잘 이해될 수 있다. 산업계의 표준 관행에 따라, 다양한 특징들이 일정한 비율로 도시되지 않았 다. 실제로, 다양한 특징들의 치수는 논의의 명확함을 위해 임의적으로 증가되거나 축소되었다.
본 발명의 실시 예에 따라 무선 펌웨어 업데이트 시스템에서 이터레이션(되는 바이너리 이미지들 사이의 변경 정보를 기록하는데 이용될 수 있는 방법(100)에 대하여 도 1을 참조하여 살펴보도록 한다.
도 1을 참조하면, 무선 펌웨어 업데이트 시스템에서 사용되는 바이너리 이미지와 같이 이터레이션(iteration) 되는 바이너리 이미지들 사이에 변경을 기록하는데 사용될 수 있다. 예를 들어, 이 방법은 무선 펌웨어 업데이트 메커니즘을 통해 바이너리 이미지가 로딩되기 이전에 바이너리 이미지의 개발 과정에서 이용될 수 있다. 또한, 다른 예로는 바이너리 이미지의 초기 버전이 셀룰러 폰 또는 유사 장치에 로딩될 수 있으며, 그러한 개발 과정은, 초기 버전을 업데이트 하는데 이용될 수 있는, 이후 버전을 개발하는데 이용될 수 있다. 본 발명의 실시 예에서는 서로 다른 바이너리 이미지들 간에 변경을 기록하기 위해 바이너리 이미지가 생성되는 소프트웨어 환경이 하나 이상의 변경 로그(change log)를 이용할 수 있다.
102 단계에서, 베이스 중간 바이너리 파일(base intermediate binary file)이 생성될 수 있다. 중간 바이너리 파일은 바이너리 이미지의 제1 버전에 대한 헤더 정보 및 이미지 정보를 포함할 수 있다. 상기와 같은 중간 바이너리 파일로부터 바이너리 이미지 정보를 추출하여 바이너리 이미지를 생성할 수 있다. 이러한 중간 바이너리 파일 생성에 대하여는 하기에서 더 상세하게 설명하도록 한다.
104 단계에서, 바이너리 이미지의 제2 버전에 대한 헤더 정보 및 이미지 정 보를 포함하는 제2 중간 바이너리 파일이 생성될 수 있다. 이전의 중간 바이너리 파일을 이용하여 제2 중간 바이너리 파일을 생성할 수 있다. 이때, 이전 중간 바이너리 파일은 베이스 중간 바이너리 파일이다.
106 단계에서, 베이스 중간 바이너리 파일과 제2 중간 바이너리 파일 간의 차이를 포함하는 변경 로그가 제2 중간 바이너리 파일에 저장될 수 있다.
상기의 104단계 및 106단계는, 중간 바이너리 파일의 다른 버전이 생성될 때마다 이터레이션(iteration) 될 수 있다. 따라서, 이와 같은 이터레이션(iteration) 되는 과정에서, 새로운 N번째 중간 바이너리 파일이 생성될 수 있으며, N번째 중간 바이너리 파일과 이전의 중간 바이너리 파일인 N-1번째 중간 바이너리 파일 간에 변경을 기록하는 변경 로그가 제 N번째 중간 바이너리 파일에 저장될 수 있다.
또한, 이때 중간 바이너리 파일에 저장되는 변경로그는 이전 변경 로그의 컴파일(copilation)일 수도 있고, 또는 각 변경 로그가 분리되어 유지될 수도 있다고 이해되어야 한다. 예를 들어, N번째 중간 바이너리 파일이 변경 로그의 순차 리스트를 포함할 수 있다. 이와 같은 리스트를 위해, 각 변경 로그는 버전 넘버, 일자 스탬프(stamp), 다른 식별 메커니즘 등과 같은 정보를 이용하여 특정한 중간 바이너리 파일과 연관될 수 있다.
도 2는 본 발명의 실시 예에 따라 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템(200)을 도시하고 있다. 도 2를 참조하면, 시스템(200)은 이미지 생성 시스템(image creation system)(202), 무선 네트워 크(wireless network)(204) 및 무선 장치(wireless device)(206)를 포함한다.
이미지 생성 시스템(202)은 실행 명령 또는 데이터를 포함하는 이미지를 생성하는 기능성(functionality)을 제공한다. 또한, 이미지 생성 시스템(202)은 생성된 이미지를 무선 네트워크(204)를 통해 무선 장치(206)로 전송한다.
무선 장치(206)는 수신한 이미지를 이용하여 사용자에게 기능성을 제공하고, 무선 네트워크(204)를 통해 다른 장치들과 통신한다. 이때, 이미지는 기능성과 데이터의 다양한 조합을 포함할 수 있고, 추가적인 특징 및 버그 수정 정보는 이미지 생성 시스템(202)에 의해 이미지를 업데이트 하는데 이용될 수 있다.
무선 네트워크(204)로는 중앙 집중 및 호크(hoc) 네트워크를 포함하는, 어느 유형의 네트워크일 수 있으며, CDMA 방식, GSM(Global System for Mobile communication) 방식, 직교 주파수 분할 다중 방식(OFDM), UMTS(Universal Mobile Telecommunications System) 방식, EDGE(Enhanced Data GSM Environment, 이는 또한 글로벌 에볼루션(Global Evolution)에 대한 향상된 데이터 속도와, GSM 에볼류션에 대한 향상된 데이터 속도를 의미할 수 있다) 또는 다른 통신 기술을 포함하는 어느 유형의 네트워크를 이용할 수 있다. 본 발명의 실시 예에서는 무선 네트워크(204)가 패킷-기반(packet-based) 네트워크를 예로 들었지만, 상기에서 언급한 어느 유형의 네트워크를 이용할 수 있다.
도 3을 참조하면, 컴퓨터가 도 2의 이미지 생성 시스템(202)에 대한 하나의 실시예로서 도시된다. 컴퓨터(202)는 중앙처리부(CPU : Central Processing Unit)(302), 메모리부(304), 입력/출력(Input/Output) 장치(306) 및 네트워크 인터 페이스(308)를 포함할 수 있다. 네트워크 인터페이스(308)는 예를 들어 각기 미디어 액세스 제어(MAC) 어드레스와 연관되는 하나 이상의 무선 및/또는 유선 네트워크 인터페이스 카드(NICs)일 수 있다. 네트워크 인터페이스(308)는 무선 네트워크(204)에 직접 연결될 수 있거나 하나 이상의 다른 네트워크(도시안함)를 통해 연결될 수 있다. 또한, 컴퓨터(202)를 구성하는 각각의 구성 요소(302, 304, 306 및 308)들은 버스(BUS) 시스템(310)을 통해 서로 연결된다.
컴퓨터(202)는 다르게 구성될 수 있고, 리스트에 기재된 요소들 각각은 실제 여러 가지 다른 요소들을 나타낼 수 있다는 것을 이해하여야 한다. 예를 들어, CPU (302)는 멀티-프로세서 또는 분산처리시스템(distributed processing system)을 나타낼 수 있고, 메모리부(304)는 다른 레벨의 캐시메모리, 메인 메모리, 하드 디스크, 원격 저장소를 포함할 수 있으며 그리고 I/O 장치(306)는 모니터, 키보드 등을 포함할 수 있다. 더욱이, 비록 입력/출력 장치(306)의 예로 키보드와 같은 입력장치는 컴퓨터(202) 내부에 있는 것으로 도시되었지만, 물리적으로 컴퓨터(202) 외부에 위치할 수 있다. 또한, 일부 또는 모든 요소(302, 304, 306 및 308)는 분산하여 위치될 수 있다. 따라서, 컴퓨터(202)의 구성에 대한 광범위한 유연성이 예상될 수 있다.
도 4를 참조하면, 컴파일링 방법(400)에 대한 실시 예를 나타내며, 이는 도 2의 이미지 생성 시스템(202)에서 바이너리 이미지(412)를 컴파일링하는 다양한 모듈을 이용하는 것을 나타낸다. 소프트웨어 프로그램은 일반적으로 소스코드(source code)와 같은 고급언어를 이용하여 쓰여지고, 오브젝트 코드(object code)와 같은 기계판독형 언어 오브젝트 코드(object code)로 변환된다. 비록 용어 및 실제 처리에 있어서 몇 가지 변수가 발생하지만, 컴파일링 방법(400)은 사전처리 단계(402), 컴파일링 단계(404), 어셈블링 단계(406) 및 링크 단계(408)를 포함하는 통상의 변환 과정에서 이용된 모듈들에 의해 제공된 기본 기능성을 설명한다. 사전처리 단계(402), 컴파일링 단계(404), 어셈블링 단계(406) 및 링크 단계(408)는, 일반적으로 특정 프로그래밍 언어 및/또는 플랫폼과 관련된 통상적으로 이용되는 과정들일 수 있다.
사전처리 단계(402)는 컴파일링되는 소스 프로그램의 다른 부분들을 수집하는 단계이다. 컴파일링 단계(404)는 사전처리 단계(402)에서의 출력을 어셈블리 언어 코드로 변환하며, 어셈블링 단계(406)는 어셈블리 언어 코드를 기계 언어 코드로 변환한다. 링크 단계(408)는 기계 언어 코드를 기계 언어 코드에 의해 지시된 특정 라이브러리 또는 다른 외부 모듈을 식별하고, 이들 모듈을 기계 언어 코드에 바인딩(binding)하여 중간 바이너리 파일을 형성한다. 이와 같은 중간 바이너리 파일은 바이너리 이미지(412)뿐만 아니라, 헤더 및 디버그 정보와 같은 다른 정보를 포함할 수 있다. 바이너리 이미지(412)는 410 단계에서 중간 바이너리 파일로부터 추출되어 무선 펌웨어 업데이트 또는 다른 로딩 매커니즘을 이용하는 모바일 장치에 로딩될 수 있다.
몇몇 컴파일 시스템에서는 컴파일링 방법(400)을 수행하는 동안 로그파일 내에 변경 정보를 기록하기 위한 하나의 단계가 선택적으로 실행될 수 있다. 그러한 단계를 예를 들어 설명하면, 링크 단계(408) 이전에 예를 들어 어셈블링 단계(406) 와 링크 단계(408) 사이에 변경 정보를 기록할 수 있는 단계를 삽입할 수 있으며, 링크 단계(408) 이전에 기계 언어 코드를 사전 처리함으로써 동작될 수 있다. 그러나 이와 같은 선택적인 단계가 선택적인 만큼 그 단계가 수행되지 않는다면, 어떠한 변경의 기록도 손실될 수 있다. 더욱이, 그러한 선택적인 단계가 수행되고 변경의 기록이 발생한다고 하더라도, 그 변경 정보 기록이 저장되거나 나중에 이용될 것이라는 것을 보장하는 메커니즘이 없을 수 있다. 이는 예를 들어 프로젝트의 라이프 사이클(life cycle)에서 발생할 수 있는 전형적인 변경에 관한 정보를 수집하는 것을 어렵게 할 수 있다. 또한, 이는 미래 소프트웨어 레이아웃 거동 및 미래의 소프트웨어 이미지에서 발생할 수 있는 변경의 양을 예측하는 것을 어렵게 할 수 있다. 나아가, 소프트웨어 소스 코드에서의 변경이 기록될 수 있다고 하더라도, 그러한 기록은, 검출 및 실제 변경에 관한 정보를, 바이너리 정보 자체에 기록하는 능력을 제공하지 않을 수 있으며, 이는 무선 펌웨어 업데이트와 같은 애플리케이션에 대해서는 바람직하지 않을 수 있다.
도 5를 참조하면, 본 발명의 다른 실시예로서, 500의 방법은 바이너리 이미지를 생성하는 동안에 바이너리 변경 정보를 기록하고 저장하는데 이용될 수 있다. 본 발명의 실시 예에서는 방법(500)은 영국의 ARM 사에 의해 제조된 ARM 개발 슈트(ADS)의 요소들을 참조하여 설명한다. 또한, 실행 및 링크 포맷(ELF)을 중간 바이너리 파일 포맷으로서 이용하지만, 다른 개발 슈트 또는 개발 슈트의 다양한 요소들이 이용될 수 있음을 이해하여야 한다. 따라서, ARM 링커 "armlink"에 대한 참조가 다른 링커로 대체될 수 있으며, 이와 같이 유사한 요소들로의 대체는 당업자 에게 공지된 바와 같이 이루어질 수 있다. 또한, 본 발명의 실시 예에서는 ELF 파일을 중간 바이너리 파일 포맷으로 예를 들어 설명하지만, 다른 파일 포맷이 이용될 수 있음을 이해하여야 한다. 알려진 바와 같이, ELF와 같은 파일은 바이너리 이미지와 같은 소프트웨어 이미지를 포함할 수 있을 뿐만 아니라, 소프트웨어 이미지를 디버깅하는데 이용될 수 있는 디버그 및 심볼 정보와 같이 소프트웨어가 아닌 부분인 다른 섹션을 포함할 수 있다.
500의 방법은 사전처리 단계(502), 컴파일링 단계(504) 및 어셈블링 단계(506)와 같은 다양한 단계로 시작할 수 있다. 502, 504, 506단계는 상기의 도 4의 402, 404, 406단계와 유사한 단계이므로, 도 5의 설명에서는 상세하게 설명하지 않도록 한다.
508 단계에서, ELF 파일의 선행 이터레이션(iteration) 동작이 있고, 502 단계에서의 사전처리와는 다른 변경 식별을 위한 사전처리는 어셈블링 단계(506)에 의해 산출된(produced) 기계 언어에서 발생할 수 있다고 가정한다. 예를 들어, 변경 식별을 위한 사전처리 단계(508)는 링크 단계(510)를 모방하여(mimic) 선행 ELF 파일과 현재 이터레이션(iteration) 동작에 연결된 ELF 파일 사이에 발생했던 변경을 식별할 수 있다. 이때 만일 이용할 수 있는 선행 ELF 파일이 없다면, 508 단계를 생략할 수 있다.
510 단계에서, 기계 언어 코드가 ELF 이미지와 같은 ELF 파일(512)을 생성하기 위한 링크될 수 있다. 만일 변경 식별을 위한 사전처리 단계(508)가 변경을 식별했다면, 이들 변경은 변경 로그로서 ELF 파일에 삽입될 수 있다. 예를 들어, 링 크 단계(510)가 완료된 후 500의 방법을 제어하는 소프트웨어 툴이 변경 로그를 ELF 파일에 삽입할 수 있다. 또한, ELF 파일의 다양한 이터레이션(iteration) 동작 사이의 변경을 식별하고, ELF 파일의 현재 이터레이션(iteration) 동작에 이들 변경을 저장하기 위해 다른 방법들이 이용될 수 있으며, 이와 같은 다른 방법들을 사용하는 경우 500의 방법과의 다른 곳(places)에서 발생할 수 있다는 것을 이해하여야 한다. 따라서, 사전처리 단계의 사용과 이후의 ELF 파일로 변경 로그를 삽입하는 것은 단지 예시의 목적이다.
500의 방법에 따른 개발 과정에서 ELF 이미지에 대한 어떠한 업데이트가 있는 지가 결정될 수 있다. 예를 들어, 만일 버그 수정 또는 특징의 추가가 있으면, 500의 방법은 추가적인 이터레이션(iteration) 동작을 위해 514단계에서 502 단계 또는 다른 단계로 리턴될 수 있다. 또한, 상기의 이터레이션(iteration) 동작에 따라 발생한 어떤 변경이라도 ELF 파일의 현재 이터레이션(iteration) 동작에 따른 변경 로그에 저장될 수 있다.
만일 바이너리 이미지 배포를 위해 준비된 것과 같이 아무런 변경도 만들어지지 않는다면 최종 바이너리 이미지(518)가 ELF 파일로부터 추출되는 단계 516을 계속할 수 있다. 몇몇 실시 예에서는, 소프트웨어의 추가적인 버전이 배포되기 때문에 516 단계가 이터레이션(iteration) 되어 업데이트 된 바이너리 이미지(518)를 생성할 수 있다. 따라서, ELF 파일(512)의 이터레이션(iteration) 동작 내에 저장된 변경 로그의 이용은, 단일 바이너리 이미지(518)의 배포를 위한 개발 사이클 내에서 이용될 수 있을 뿐만 아니라, 업데이트 된 바이너리 이미지(518)의 배포를 위 한 이터레이션(iteration) 동작을 위해 이용될 수 있다.
ELF 파일과 같이 변경 로그의 일부로서 중간 바이너리 파일에 저장된 정보는 변할 수 있다는 것을 이해하여야 한다. 예를 들어 그 정보는, 이전의 이터레이션(iteration) 동작과 비교하여, 파일 또는 파일 일부의 크기 및 위치를 현재 이터레이션(iteration) 동작에 포함할 수 있다. 추가적인 정보는 변경된 파일과 결합된 글로벌 심볼을 포함할 수 있다. 예를 들어, 데이터 심볼이 상대적으로 독특한 글로벌 심볼에 포함될 수 있고, 반면 실행 코드는 서브루틴들의 긴 리스트 중의 첫 번째 서브루틴과 같은 좀 덜 독특한 글로벌 심볼에 통합될 수 있다.
따라서, ELF 이미지와 같은 중간 바이너리 파일 내의 변경 로그(들)는 그 정보를 상대적으로 접근하기 쉽고 맞춤화될 수 있는 포맷으로 저장할 수 있다. 예를 들어, 프로젝트를 위해 중간 바이너리 파일을 생성하는 모든 소프트웨어는 변경을 기록할 필요가 있을 수 있다. 더욱이, 특정 파라미터가 그러한 리포트를 위해 희망(desired) 레벨의 상세 정보를 생성할 필요가 있을 수 있다. 이러한 방식에서, 변경 로그로부터 얻어진 다양한 통계의 분석이, 코드의 어느 섹션이 가장 많이 변경되고 있는지 그리고 개발 과정에서 어느 소프트웨어 개발 그룹이 변경의 주요부분에 책임이 있는 지와 같은 관심 인자를 결정하기 위해, 프로젝트의 수행중이나 이후에 행해질 수 있다.
추가적으로 도 6을 참조하면, 다이어그램(diagram) 600은 도 5의 방법(500)의 일부에 대한 하나의 실시 예의 요약(summary)을 나타낸다. 베이스라인(Baseline) 소프트웨어(602)가 암링크 링커(604)에 의해 처리된다. 도시하지 않 았지만, 소프트웨어 개발 슈트가 도 6에 도시된 과정의 제어에 이용될 수 있고, 도 5의 추가적인 단계들이 수행될 수 있다. 암링크에 의한 처리를 통해 ELF_베이스(base) 이미지(606a)를 얻는다.
베이스라인 소프트웨어(602a)에 대해 변경이 이루어져서 소프트웨어 버전_1(602b)이 얻어질 수 있다. 소프트웨어 버전_1(602b)이 암링크(604)에 의해 처리되어 ELF_베이스 이미지(606a)에 대해 수정된 ELF_1(606b) 이 얻어진다. 상기한 바와 같이, 소프트웨어 개발 슈트에 의한 ELF_베이스 이미지(606a)가 ) ELF_베이스 이미지와 ELF_1 이미지 사이의 변경을 관리하는 것을 지원하는데 이용될 수 있다. 변경_로그_1이, ELF_베이스 이미지와 ELF_1 이미지 사이의 변경을 나타내기 위해, ELF_1 이미지(606b)에 추가될 수 있다.
소프트웨어_1(620b)에 대한 변경으로 소프트웨어_2(602c)가 얻어질 수 있다. 소프트웨어_2(602c)가 암링크(604)에 의해 처리되어, ELF_1 이미지(606B)에 대하여 수정된 ELF_2 이미지(606c)(이 얻어진다. 상기한 바와 같이, 소프트웨어 개발 슈트에 의한 ELF_1 이미지(606b)가 ELF_1 이미지(606b)와 ELF_2 이미지(606c) 사이의 변경을 관리하는 것을 지원하기 위해 이용될 수 있다. 변경_로그_2가 ELF_2 이미지(606c)에 추가되어 ELF_1 이미지와 ELF_2 이미지 사이의 변경을 나타낼 수 있다. 도 6에서 변경 로그가 분리된 로그로서 도시되었지만, 단일 누적 변경 로그가 ELF_2 이미지(606c)로의 삽입을 위해 생성될 수 있다.
본 발명의 또 다른 실시 예로 도 7을 참조하면, 700의 방법은 변경 로그 정보를 레버리지(leverage)하기 위해 이용될 수 있다. 702 단계 및 704 단계에서, 누 적 변경 로그가 중간 바이너리 파일에 대해 생성될 수 있고 중간 바이너리 파일에 저장될 수 있다. 이 프로세스가 이전의 실시 예에서 논의되었으므로, 본 예에서는 상세하게 논의되지 않을 것이다.
706 단계에서, 변경 로그가 중간 바이너리 파일로부터 획득(retrieval)될 수 있다. 그러한 획득(retrieval)은 개발 프로세스 동안에 예를 들어 중간 바이너리 파일의 이터레이션(iteration) 동작들 사이에 일어날 수도 있고, 개발 프로세스가 완료된 후 예를 들어, 바이너리 이미지가 추출되었을 때에 일어날 수 있다. 708 단계에서, 중간 바이너리 파일의 다양한 이터레이션(iteration) 동작들 사이의 변경에 관한 통계를 식별하기 위해 누적 변경 로그가 분석될 수 있다.
예를 들어, 이러한 분석은 향상된 버전의 소프트웨어를 생성하는데 바람직할 수 있다. DLL(dynamic link library)과 같은 소프트웨어 구조의 이용을 원할 경우, 어떤 타입의 코드가 DLL에 적합할 것인가를 결정하는 것이 이로울 것이다. 나아가, 무선 펌웨어 업데이트를 위해 종종 이용되는 세그멘티드(segmented) 메모리 환경에서, 변경 코드 섹션의 분석이, 최초 및 나중의 업데이트를 통해 메모리 손실을 줄이도록 바이너리 이미지를 효율적으로 분할하는데 도움을 줄 수 있다. 예를 들어, 700의 방법은 미래의 새로운 소프트웨어 이미지를 제작할 때 더 나은 결정을 내리기 위해 변경 로그에 저장된 누적 변경 정보를 스캔하도록 구성될 수 있다. 이는 상대적으로 안정된 소프트웨어 모듈의 식별 및 수집을 포함할 수 있다. 예를 들어, 본 발명에서 논의된 바와 같은 누적 변경 로그의 이용은, 여기에 모두 참조로서 통합된, 2006년 1월 13일에 출원된 미국 특허 출원 번호 11/333,847호의 "패치 최소 화 툴을 위한 시스템 및 방법(SYSTEM AND METHOD FOR A PATCH MINIMIZATION TOOL)", 및/또는 2006년 1월 13일에 출원된 미국특허 출원번호 11/334,600호의 "의사 DLL 링커를 위한 시스템 및 방법(SYSTEM AND METHOD FOR A PSEUDO DLL LINKER)"과 함께 이용될 수 있다.
본 발명에서 논의된 바와 같은 누적 변경 로그의 이용은 무선 펌웨어 업데이트 환경에 한정되지 않고, 다른 환경에서도 구현될 수 있음을 이해하여야 한다. 예를 들어, 자동차 딜러는 유지, 보수 및 보증 정보와 같은 정보를 자동차 내부의 비휘발성 메모리 내에 저장할 수 있다. 따라서, 본 발명의 많은 다른 응용이 착안될 수 있다.
단지 몇 개의 본 발명의 예시적인 실시 예가 상기에서 상술되었지만, 당업자는 본 발명의 새로운 교시 및 이점으로부터 실질적으로 벗어나지 않고, 예시적인 실시 예에서 많은 변형 예들이 가능할 것이라는 것을 알 수 있을 것이다. 예를 들어, 본 발명은 예를 위해서 모바일 장치를 자주 이용하였지만, 업데이트 크기가 중요한 비-모바일(non-mobile) 장치와 함께 이용될 수 있다는 것을 이해하여야 한다. 또한, 위에서 몇 가지 실시 예와 관련하여 설명되고 논의된 특징들은 위에서 다른 실시 예와 관련하여 설명되고 논의된 특징들과 결합될 수 있다. 따라서, 모든 그러한 변형 예들은 본 발명의 범위 내에 포함되려는 의도를 갖는 것이다.
도 1은 본 발명의 실시 예에 따라 바이너리 이미지의 이터레이션(iteration) 동작들 사이의 변경을 기록하는 단계를 나타내는 흐름도,
도 2는 본 발명의 실시 예에 따라 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템을 도시하는 도면,
도 3은 도 2에서 이미지 생성 시스템의 내부 구성도,
도 4는 도 2의 이미지 생성 시스템에서 바이너리 이미지를 생성하기 위한 단계를 나타내는 흐름도,
도 5는 본 발명의 실시 예에 따라 바이너리 이미지의 이터레이션(iteration) 동작을 중간 바이너리 파일에 기록하고 저장하는 단계를 나타내는 흐름도,
도 6은 본 발명의 실시 예에 따라 ELF 파일 이터레이션(iteration) 동작을 가지는 누적 변경 로그의 사용을 나타내는 프로세스를 설명하기 위한 도면.
도 7은 본 발명의 다른 실시 예에 따라 중간 바이너리 파일의 변경 로그를 저장하고, 획득(retrieve)하여 분석하는 단계를 나타내는 흐름도.

Claims (20)

  1. 모바일 장치에 사용되는 바이너리 이미지의 이터레이션(iteration)을 생성할 때 변경 로그를 유지하기 위한 방법에 있어서,
    제1 바이너리 이미지에 대한 헤더 정보 또는 이미지 정보를 포함하는 제1 중간 바이너리 파일을 생성하는 단계와,
    제2 바이너리 이미지에 대한 헤더 정보 또는 이미지 정보를 포함하는 제2 중간 바이너리 파일을 생성하는 단계와,
    상기 제2 중간 바이너리 파일에 상기 제1 과 제2 중간 바이너리 파일 간의 차이를 포함하는 제1 변경 로그를 삽입하는 단계와,
    제3 바이너리 이미지에 대한 헤더 정보 및 이미지 정보를 포함하는 제3 중간 바이너리 파일을 생성하는 단계와,
    상기 제3 중간 바이너리 파일로, 상기 제1 변경 로그 및 상기 제2와 제3 중간 바이너리 파일 간의 차이를 포함하는 제2 변경 로그를 삽입하는 단계를 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  2. 제 1항에 있어서,
    상기 제1 및 제2 변경 로그를 상기 제3 중간 바이너리 파일로 결합하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  3. 제 1항에 있어서,
    상기 제1 및 제2 변경 로그는 상기 제3 중간 바이너리 파일 내에서 분리되어 유지되는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  4. 제 1항에 있어서,
    상기 제1 변경 로그에 근거하는 상기 제3 중간 바이너리 파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  5. 제 1항에 있어서,
    상기 제1, 제2 및 제3 중간 바이너리 파일 간의 차이에 근거하는 통계를 축적하도록 상기 제1 및 제2 변경 로그를 리뷰잉(reviewing)하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  6. 제 5항에 있어서,
    상기 제1 과 제2 중간 바이너리 파일 사이와 상기 제2 와 제3 중간 바이너리 파일 사이에 발생한 변경의 수가 미리 설정된 임계값 미만인, 상기 제1, 제2 및 제3 중간 바이너리 파일의 부분을 식별하기 위해 상기 통계를 분석하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  7. 제 5항에 있어서,
    상기 제1, 제2 및 제3 중간 바이너리 파일의 다른 부분 보다, 상기 제1 과 제2 중간 바이너리 파일 사이와 상기 제2 와 제3 중간 바이너리 파일 사이에서 덜 변경된 제1, 제2 및 제3 중간 바이너리 파일의 부분을 식별하도록 분석하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  8. 제1 항에 있어서
    제4 바이너리 이미지에 대한 헤더 정보 또는 이미지 정보를 포함하는 제4 중간 바이너리 파일을 생성하는 단계와,
    상기 제1 변경 로그, 상기 제2 변경 로그 및 상기 제3 및 제4 중간 바이너리 파일 간의 차이를 포함하는 제3 변경 로그를 상기 제4 중간 바이너리 파일로 삽입하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  9. 청구항 1에 있어서, 상기 제1 및 제2 변경 로그는 자동으로 생성되는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  10. 무선 펌웨어 업데이트 개발 환경에 이용되는 방법에 있어서,
    추출 가능한 바이너리 이미지를 포함하는 중간 바이너리 파일에 대해 상기 중간 바이너리 파일과 상기 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 간에 변경을 기록하기 위한 누적 변경 로그를 생성하는 단계와, 상기 누적 변경 로그를 상기 중간 바이너리 파일에 저장하는 단계와,
    상기 중간 바이너리 파일로부터 누적 변경 로그를 획득(retrive)하는 단계와,
    상기 중간 바이너리 파일과 상기 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 간에 발생한 변경에 관한 통계를 식별하도록 상기 누적 변경 로그를 분석하는 단계를 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  11. 제10 항에 있어서,
    상기 중간 바이너리 파일과 상기 중간 바이너리 파일의 선행 이터레이션(iteration) 동작 사이에 발생한 변경의 수가 임계값 아래인 상기 중간 바이너리 파일 및 상기 중간 바이너리 파일의 선행 이터레이션(iteration) 동작을 식별하도 록 상기 통계를 분석하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  12. 제10 항에 있어서,
    상기 중간 바이너리 파일 및 상기 중간 바이너리 파일의 선행 이터레이션(iteration) 동작의 다른 부분 보다 덜 변경된 상기 중간 바이너리 파일 및 상기 중간 바이너리 파일의 선행 이터레이션(iteration) 동작의 부분을 식별하도록 상기 통계를 분석하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  13. 제12 항에 있어서,
    상기 중간 바이너리 파일 내에서 상기 식별된 부분의 위치 및 크기를 식별하는 단계를 더 포함하는 것인 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  14. 제13 항에 있어서,
    상기 식별된 부분을 상기 중간 바이너리 파일 내의 다른 위치로 이동시키는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  15. 제 10항에 있어서,
    상기 식별된 통계에 근거하여 상기 추출 가능한 바이너리 이미지를 분할하는 단계를 더 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 방법.
  16. 무선 펌웨어 업데이트 환경에서 변경 로깅을 위한 시스템에 있어서,
    다수의 컴퓨터 실행 명령을 저장하는 메모리와, 상기 메모리와 결합되고, 바이너리 이미지에 대한 헤더 정보 및 이미지 정보를 포함하는 베이스(base) 중간 바이너리 파일을 생성하고, 상기 중간 바이너리 파일의 적어도 제1 및 제2 이터레이션(iteration) 동작을 생성하고, 상기 베이스 및 제1 중간 바이너리 파일 간의 차이를 나타내는 제1 변경 로그와, 상기 제1 및 제2 중간 바이너리 파일 간의 차이를 나타내는 제2 변경 로그를 생성한 후, 상기 제1 변경 로그를 상기 중간 바이너리 파일의 상기 제1 이터레이션(iteration) 동작으로 삽입하고, 상기 제1 및 제2 변경 로그를 상기 중간 바이너리 파일의 상기 제2 이터레이션(iteration) 동작으로 삽입하고, 상기 제2 중간 바이너리 파일로부터 실행가능한 바이너리 이미지를 추출하는 프로세서를 포함하는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템.
  17. 제 16항에 있어서, 상기 프로세서가,
    상기 제1 변경 로그를 상기 중간 바이너리 파일의 상기 제2 이터레이 션(iteration) 동작으로, 상기 제2 변경 로그와 분리하여, 삽입하는 것을 더 포함함을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템.
  18. 제 17항에 있어서, 상기 프로세서가,
    상기 제1 및 제2 변경 로그를 상기 중간 바이너리 파일의 상기 제2 이터레이션(iteration) 동작 내의 단일 누적 변경 로그로 결합시키는 것을 더 포함함을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템.
  19. 제 16항에 있어서, 상기 프로세서가,
    상기 중간 바이너리 파일의 상기 제2 이터레이션(iteration) 동작의 생성 이전에 상기 제1 변경 로그를 분석하고, 상기 분석 결과를 상기 중간 바이너리 파일의 상기 제2 이터레이션(iteration) 동작 내의 정보의 배치를 수정하는데 이용되는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템.
  20. 제 16항에 있어서,
    상기 제1 및 제2 변경 로그는 상기 중간 바이너리 파일의 상기 제1 및 제2 이터레이션(iteration) 동작과 함께 자동으로 생성되는 것을 특징으로 하는 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을 수행하기 위한 시스템.
KR1020070071827A 2006-07-21 2007-07-18 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템 KR101401143B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/490,927 US8296268B2 (en) 2006-07-21 2006-07-21 System and method for change logging in a firmware over the air development environment
US11/490,927 2006-07-21

Publications (2)

Publication Number Publication Date
KR20080008969A KR20080008969A (ko) 2008-01-24
KR101401143B1 true KR101401143B1 (ko) 2014-05-29

Family

ID=39028814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070071827A KR101401143B1 (ko) 2006-07-21 2007-07-18 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템

Country Status (2)

Country Link
US (1) US8296268B2 (ko)
KR (1) KR101401143B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2465193A (en) 2008-11-10 2010-05-12 Symbian Software Ltd Detecting updated files in a firmware over the air update using CRC values
KR100986380B1 (ko) * 2009-11-20 2010-10-08 엘지이노텍 주식회사 발광 장치
JP5774513B2 (ja) * 2012-02-07 2015-09-09 株式会社日立ソリューションズ ファイルリスト生成方法及びシステム並びにプログラム、ファイルリスト生成装置
US8812243B2 (en) 2012-05-09 2014-08-19 International Business Machines Corporation Transmission and compression of genetic data
US8855938B2 (en) 2012-05-18 2014-10-07 International Business Machines Corporation Minimization of surprisal data through application of hierarchy of reference genomes
US10353869B2 (en) 2012-05-18 2019-07-16 International Business Machines Corporation Minimization of surprisal data through application of hierarchy filter pattern
US8972406B2 (en) 2012-06-29 2015-03-03 International Business Machines Corporation Generating epigenetic cohorts through clustering of epigenetic surprisal data based on parameters
US9002888B2 (en) * 2012-06-29 2015-04-07 International Business Machines Corporation Minimization of epigenetic surprisal data of epigenetic data within a time series
US9460073B2 (en) 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
KR20150004200A (ko) * 2013-07-02 2015-01-12 한국전자통신연구원 데이터 복제 방법 및 장치
US10383968B2 (en) * 2015-12-29 2019-08-20 David Truong Jonathan Hobson Bathroom air purification and odor reduction system
US11070427B2 (en) 2017-01-17 2021-07-20 Advanced Semiconductor Engineering, Inc. Method and apparatus for transmission over virtual tunnel

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020029227A1 (en) 2000-01-25 2002-03-07 Multer David L. Management server for synchronization system
US20040034849A1 (en) 2002-06-17 2004-02-19 Microsoft Corporation Volume image views and methods of creating volume images in which a file similar to a base file is stored as a patch of the base file
US6925476B1 (en) 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5842024A (en) * 1995-02-27 1998-11-24 Ast Research, Inc. Method of software installation
US6192365B1 (en) * 1995-07-20 2001-02-20 Novell, Inc. Transaction log management in a disconnectable computer and network
US5729743A (en) * 1995-11-17 1998-03-17 Deltatech Research, Inc. Computer apparatus and method for merging system deltas
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
JP3232052B2 (ja) * 1997-10-31 2001-11-26 松下電器産業株式会社 画像復号化方法
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6230316B1 (en) * 1998-04-17 2001-05-08 Symantec Corporation Patching rebased and realigned executable files
EP0981099A3 (en) * 1998-08-17 2004-04-21 Connected Place Limited A method of and an apparatus for merging a sequence of delta files
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
WO2001060059A1 (en) * 2000-02-07 2001-08-16 Sony Corporation Image processor and image processing method and recorded medium
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
AU2001272970A1 (en) * 2000-06-22 2002-01-02 Synchrologic, Inc. A system and method for file transmission using file differentiation
US20020165724A1 (en) * 2001-02-07 2002-11-07 Blankesteijn Bartus C. Method and system for propagating data changes through data objects
US6816873B2 (en) * 2001-05-15 2004-11-09 International Business Machines Corporation Method for managing distributed savepoints across multiple DBMS's within a distributed transaction
US7613815B1 (en) * 2001-10-15 2009-11-03 Netapp, Inc. Method and apparatus for customized logging in a network cache
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7792950B2 (en) * 2002-09-26 2010-09-07 International Business Machines Corporation Coverage analysis of program code that accesses a database
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7461373B2 (en) * 2002-12-05 2008-12-02 Samsung Electronics Co., Ltd. Apparatus and method for upgrading software of a wireless mobile station
US7890469B1 (en) * 2002-12-30 2011-02-15 Symantec Operating Corporation File change log
US7797693B1 (en) * 2003-12-12 2010-09-14 Hewlett-Packard Development Company, L.P. NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
KR100584448B1 (ko) * 2004-01-19 2006-05-26 삼성전자주식회사 바이너리 위치정보를 이용한 임베디드 소프트웨어 원격다운로드방법 및 시스템
US7831965B1 (en) * 2004-08-12 2010-11-09 Oracle America, Inc. Method and apparatus for facilitating intermediate linking of binary files in a virtual machine
US20070132774A1 (en) * 2005-12-01 2007-06-14 Samsung Electronics Co., Ltd. System and method for a patch minimization tool
US8055096B2 (en) * 2006-05-10 2011-11-08 Research In Motion Limited Method and system for incremental patching of binary files
US7779401B2 (en) * 2006-06-26 2010-08-17 Research In Motion Limited Method and system for generating a reverse binary patch for undoing a software update

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020029227A1 (en) 2000-01-25 2002-03-07 Multer David L. Management server for synchronization system
US6925476B1 (en) 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes
US20040034849A1 (en) 2002-06-17 2004-02-19 Microsoft Corporation Volume image views and methods of creating volume images in which a file similar to a base file is stored as a patch of the base file

Also Published As

Publication number Publication date
US8296268B2 (en) 2012-10-23
US20080030757A1 (en) 2008-02-07
KR20080008969A (ko) 2008-01-24

Similar Documents

Publication Publication Date Title
KR101401143B1 (ko) 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템
JP5208350B2 (ja) 自己記述型ソフトウェアイメージ更新コンポーネント
US20060161605A1 (en) Data management system, a data management apparatus, a data management method, a data supplying system, and a computer-readable recording medium with a program recorded therein
CN106095620B (zh) 一种嵌入式Linux存储分区的开发方法
CN110209568B (zh) 覆盖率测试方法、装置及存储设备
CN111124550B (zh) 一种程序动态加载方法、装置及存储介质
CN101002174B (zh) 在便携式装置中加载具有面向对象的中间语言的软件的方法
CN102200911A (zh) 变量闭包
CN109800005B (zh) 一种客户端热更新方法及装置
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
CN105338115A (zh) 数据服务器
JP2007531946A (ja) データ処理装置におけるデータ整合性
CN109426496B (zh) 程序日志写入文件的方法、存储介质、电子设备及系统
KR100637787B1 (ko) 파일 정보의 기록 처리 방법 및 프로그램
EP1202171A2 (en) Compile method and program recording medium
CN107783778B (zh) 一种基于特征值查表法的增量升级方法
CN114924947A (zh) 代码测试方法、装置、电子设备及存储介质
JP5337187B2 (ja) 移行テスト支援システム、移行テスト支援プログラム、移行テスト支援方法
CN110806896B (zh) 基于maven扩展插件实现软件开发中国际化信息提取方法
CN113760291A (zh) 日志输出的方法和装置
KR100846203B1 (ko) 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
CN110750266A (zh) 程序编译方法、装置、计算机设备及存储介质
KR101737575B1 (ko) 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치
KR101281954B1 (ko) 임베디드 시스템을 위한 점진적 링킹 방법
CN114138282B (zh) 一种还原iOS类型编码的伪代码的方法及装置

Legal Events

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