임베디드 리눅스 기반 동적 소프트웨어 업그레이드 기술 Dynamic SW upgrade for embedded systems 2009. 11. 6 이 민석 한성대학교 컴퓨터공학과 SevenCore Co. Ltd.

Slides:



Advertisements
Similar presentations
ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
Advertisements

CHAP. 2 안드로이드 개발 도구 설치. © 2012 생능출판사 All rights reserved 개발 과정의 개요.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Data Communication/Computer Network 관련 교과목의 내용
한국클라우드서비스협회 ▶ 제키톡 서비스 - 제키톡 서비스 ∙ 안드로이드 기반의 모바일 무료 메시지, 무전기, 채팅 어플리케이션으로 국내뿐만 아니라 전세계 대상으로 서비스 제공 중 ∙ 현재 안드로이드폰을 대상으로 서비스 중이며, 아이폰을.
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
BlackVue FOTA Upgrade 사용 안내 Android App. 펌웨어 다운로드 (Server > Smart phone) 펌웨어 다운로드 (Server > Smart phone) 인터넷이 가능한 상태에 서 블랙뷰앱을 실행합니 다. 1. 블랙뷰앱 홈화면에서 [
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
신입생 Study 커리큘럼 OneScore. Contents 후니의 시스코 네트워킹 (4 주 ) 01/ Network 생활코딩 – 웹 서비스 만들기 (4 주 ) Wowhacker 웹 게임 (4 주 ) 02/ Web 뇌를 자극하는 윈도우 시스템 프로그래밍 (4 주 ) 리버싱.
갤럭시S6 마시멜로 업데이트 및 루팅 안내 2016/05/10 SPIRE TECHNOLOGY INC.
Android 프로그램개발 환경. 학습 목표 ■ 교육 목표  JDK 설치  JDK 환경 설정  Eclipse 설치  Android SDK 설치  ADT Plug-in 설치  Android Virtual Device(AVD) 설치  Android 예제 프로그램.
컴퓨터 운영체제의 역사 손용범.
Security Solutions (S/W) - Fortify
캡스톤 디자인 졸업논문 중간보고서 순천향대학교 컴퓨터공학과 빛의전사.
관광 스마트 북 발행 제안 OSMD( One Source Multi Device ).
“ 안드로이드 ” 개발 환경 설정 [ 컨버전스팀 ] ㈜한 싹 2011 년 01 월 03 일.
1. 개발 시스템 개요.
EZ Board-M In-Ho, Roh Real Time System Lab.
2. 앱 개발환경 구축 Step by Step 안드로이드 프로그래밍 쉽게 시작하는 안드로이드 4.4 앱 개발.
新 연구관리 프로그램 SAP 설치 안내 1. SAP GUI 7.3 설치 2전자증빙 솔루션 설치 배포 :
Image & Video processing
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Cross Compiler를이용한 커널 컴파일 및 포팅
임베디드 프로그래밍 Lecture #
Bluetooth Billionton Setup
ANSYS17.2 Student 제품 무료 다운로드
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
갤럭시 S를 이용한 자동차 원격 제어 시스템 담당교수 : 진현욱 교수님
임베디드 리눅스 설치 및 동작 Lecture #5.
운영체제 박상민.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
이클립스를 이용한 AVR 개발환경 구축 로보틱스랩 유승일.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
부트로더와 Self Programming
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
SK Telecom 매출 통계 시스템의 SQL Server Reporting Services 적용사례
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
Android studio로 Application 만들기.
Grade Server Team14. Attention Seeker
Cross Compiler를이용한 커널 컴파일 및 포팅
AVR – ATmega103(ATMEL) Compilers & ISP
Transmission & Analysis
Quartus II의 개요 다양한 플랫폼의 설계 환경을 제공 SOPC 설계를 위한 환경이며, 모든 FPGA와 CPLD를 지원
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
Device Driver 임베디드 시스템 I.
망고100 보드로 놀아보자 -12 커널 디렉토리 설명
제목소개 1. 안드로이드소개 2. 패킷캡쳐를 위한 환경 소개 3. ndk 소개 4. lipcap 5. 6.도식화 그림
Xscale Educational Kit
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
StyleCop 소개 SGS Framework 개발 팀.
임베디드 시스템 개론 3주차.
펌웨어(S/W) Upgrade 방법 Samsung Kies3
SafeMSR 설정.
LEON3 DBT 엔진을 이용한 ERC32 기반의 하이퍼바이저 프로토 타입 개발
Presentation transcript:

임베디드 리눅스 기반 동적 소프트웨어 업그레이드 기술 Dynamic SW upgrade for embedded systems 이 민석 한성대학교 컴퓨터공학과 SevenCore Co. Ltd.

임베디드 시스템에서의 SW 업그레이드 장비를 처음 켜면 : 업그레이드 체크, “ 업그레이드 수행할까요 ?” : 신규 SW 다운받아 설치 한 후 재부팅, 재시작 영화 감상 도중에 : 자동으로 신규 SW 다운로드, 설치 : 수정내용 즉각 반영 불가, “ 지금 재부팅 할까요 ?” 서비스 지연 서비스 중단 시스템 재부팅 Flash 메모리 : 비휘발성 메모리로 코드가 저장되는 곳 RAM 메모리 : 휘발성 메모리로 코드가 실제 실행되는 곳 임베디드 시스템의 메모리 구조 IPTV STB 2

SevenCore Co. Ltd. [SW 업그레이드 ] 기존방식 vs. 신규방식 Flash 메모리 SDRA M 메모 리 서비스 단절 피해 100% 가용성 훼손 실생활 위험 초래 통신장비 의료장비 발전소 군사 무기체계 Flash 메모리 업그레이드 : 비휘발성 메모리로 코드가 저장되는 곳 RAM 메모리 업그레이드 : 휘발성 메모리로 코드가 실제 실행되는 곳 동적 업그레이드 방식 다운받은 패치파일로 RAM 메모리의 수행 코드 수정 (Flash 메모리의 기존 코드수정 ) Flash 메모리 SDRA M 메모 리 Flash 메모리 업그레이드 : 비휘발성 메모리로 코드가 저장되는 곳 정적 업그레이드 방식 다운받은 패치파일로 Flash 메모리의 기존 코드수정 서비스 중단 시스템 재부팅 재부팅 없음 서비스 지속 3

SevenCore Co. Ltd. 동적 업그레이드 지원 범위 Kernel, LKM, Application – 가능 프로그램의 Code 영역이 수정되었을 경우 - 가능 프로그램의 Data 영역이 수정되었을 경우 – 부분적으로 가능 동적 업그레이드 관련 논문에서는 100% 의 동적 업그레이드 지원을 위해 데 이터 스트럭쳐 업그레이드를 지원해야 함 아직 검증되지 못한 방법 코드 뿐만 아니라 data 영역도 업그레이드를 시도 단점 : 개발자가 업그레이드를 위해 소스를 분석하고 업그레이드 코드를 위해 추가 적으로 코드를 작성해야 하는 등의 일을 수행 즉 자동화된 업그레이드 이미지를 생 성 못함. “2005~2008 리눅스 커널의 보안 패치 중 88% 가 함수 단위의 코드 업그레이 드로 패치가 가능 ” [Ksplice] 4

SevenCore Co. Ltd. 기술 개요 기술 요약 임베디드 시스템을 위한 동적 소프트웨어 업그레이드 기술 실제 만들어야 할 것 시스템 중단 없는 동적 SW 업그레이드를 위한 프레임워크 목표 다양한 임베디드 시스템에서 시스템의 정지 및 재부팅 없이 소프트웨어의 버그패치 및 업그레이드를 수행하는 소프트웨어 솔루션을 개발 동적 업그레이드 프레임워크 패치생성도구 (IDE) Old-New 코드 비교를 통해 작은 크기의 업그레이드 패치파일 자동 생성 업그레이드 서버 타겟시스템으로 패치파일 전송 타겟시스템 관리자 다운받은 패치파일로 RAM 메모리의 수행 코드 수정 (Flash 메모리의 기존 코드 수정 ) 5

SevenCore Co. Ltd. 6 동적 업그레이드 프레임워크 구성 모듈 업그레이드 서버 Application Manager Version Manager Upgrade DM Upgrade DB Target Info Upgrade Image 타겟 시스템 DM Registry SW Info Upgrade Driver Redirection Handler Dynamic Image Updater Safe-point Manager Target Upgrade Manager Firmware Flash Updater Downloader Security Manager 개발도구 (IDE) Upgrade GUI Upgrade Console Upgrade Generator Object Analyzer Version Manager Image Generator Upgrade Engine Source/Object Repository Sources FilesObject Files Network Firmware Manager Security Manager Download Manager Device Info DM Client Software Manager Version Manager Device Manager

SevenCore Co. Ltd. 기술 개발 단계 동적 업그레이드 프레임워크 설계 프로토타입 시스템 구현 & 검증 공개소스 운영체제인 임베디드 리눅스 운영체제 기반 공개 개발도구인 GNU tools – Eclipse 사용 모바일 단말기에 구현 (Mobile Processor) 실제 임베디드 시스템에 적용 개발된 동적 업그레이드 프레임워크를 안드로이드 플랫폼에 적용 7

SevenCore Co. Ltd. 패치 생성 도구 패치파일을 자동으로 생성하는 모듈 이클립스 (Eclipse) Plug-in 으로 구동됨 (Linux & MS Windows) Old-New 오브젝트 파일 비교를 통해 패치파일 자동 생성 Source 및 Object Repository 유지 몇 번의 마우스 클릭으로 패치파일 자동 생성 패치 파일은 ELF 와 유사한 구조 8

SevenCore Co. Ltd. 업그레이드 서버 패치파일을 Target 시스템으로 전송하는 업그레이드 서버 SW 다수의 단말기로 패치파일을 전송 오픈소스 프로젝트 ‘Funambol Framework’ 을 기반으로 제작 단말기 원격관리를 위한 OMA-DM 국제표준을 준수 OMA(Open Mobile Alliance) 에서 제정한 단말기 관리 표준 Device Management Requirements: OMA-RD-DM-V1_2 9

SevenCore Co. Ltd. 타겟 시스템 관리자 타겟시스템의 기존 소프트웨어를 업그레이드, 관리, Redirection 업그레이드 서버로부터 패치 파일을 다운 받아 타겟 시스템의 RAM 에서 구동중인 기존 SW 를 재부팅 없이 신규 SW 로 교체 기존 함수 첫 머리에 illegal instruction 삽입  trap 발생  트랩 핸들러가 새로운 함수로 분기 하는 방식 적용 (old-new 코드 교체 시간 최소화 ) 리눅스 기반 안드로이드 폰에 적용 리눅스 , 안드로이드 1.0 탑재 동적 업그레이드 기능 ( 타겟시스템 관리자 SW) 탑재 10

SevenCore Co. Ltd. 핵심 기술요소 개발도구 - 패치파일 생성 기술 제품 적용 - 스마트폰 적용 오브젝트 파일 비교 분석 기술 패치파일 제작 기술 IDE 환경 통합 (Eclipse Plug-in) 패치파일 압축 기술 안드로이드 플랫폼 구축 기술 동적 업그레이드 솔루션 적용 기술 데몬 프로그램 제작 기술 안드로이드 기반 UI 프로그램 구현 기술 RAM 수행코드 교체 기술 Flash 이미지 Upgrade 기술 Trap handler 처리 기술 성능 개선 기술 타겟시스템 - 패치적용 기술 임베디드 시스템을 위한 동적 소프트웨어 업그레이드 기술 업그레이드 서버 - 다운로드 기술 다운로더 구현 기술 OMA-DM 표준 수용 다운로드 서버 구축 버전 관리자 구현 기술 11

SevenCore Co. Ltd 이미지 등록 타겟 시스템 1. 수정 2.Commit 5. 업그레이드 이미지 생성 4. New-Old 프로젝트 다운로드 8. 연결 설정 9. 장비 정보 교환 10. 업그레이드 지시 12. 이미지 다운로드 13. 업그레이드 실행 업그레이드 관리자 개발자 동적 업그레이드 솔루션 구동 시나리오 3. 업그레이드 요청 7. 업그레이드 요청 소스코드 저장공간 업그레이드 서버

SevenCore Co. Ltd. 13 업그레이드 이미지 생성과정 old kernel sourcenew kernel source kernel object/image file tree kernel object/image file tree kernel objects deference functions kernel binary imagekernel objects firmware delta image dynamic upgrade image kernel binary image build divide object binary diff binary diff processing package Modify delta image + upgrade package additional information For RAMFor Flash

SevenCore Co. Ltd. 동적 업그레이드 RAM 상의 기존 코드를 신규 코드로 교체하기 (1 단계 ) 신규 함수 코드를 RAM 상의 임의 영역에 로드하기 (2 단계 ) Trap 핸들러 수정하기 ( 신규 코드로 jump 하도록 함 ) (3 단계 ) 기존 함수 코드 첫머리에 illegal instruction 삽입하기 SDRAM 구동 SW A B C D E New C 신규 코드 삽입 기존 함수 Function : 신규 ( 수정 ) 함수 Function : illegal Instruction exception Address new function address 0x0000a2110x Upgrade Hash Table 메인 함수 Function : call original function illegal instruction Handler Search a Function address Stack Manipulation

SevenCore Co. Ltd. 15 Previous Program ImageCurrent Program Image Copy Delta File Insert Copy Insert Copy Data Copy Insert Firmware Delta 적용

SevenCore Co. Ltd. 기대 효과 제품 검증시간의 획기적 단축 소프트웨어의 복잡성이 커짐에 따란 버그 가능성 증가 테스팅을 많이 하면 할 수록 버그는 줄어드나 비용은 증가 차후에 발견된 버그는 차후에 수정하여 다시 배포.  제품 시장 적기 출시, 검증비용 절감 국내 단말 제조기술과 시너지 효과를 일으켜 국가 경쟁력 확보에 기여 제품 유지보수 비용의 획기적 절감 원격지에서 자동으로 제품의 SW 를 편리하게 관리  관리 비용 절감 모든 제품의 SW 를 항상 최신 버전으로 관리 가능.  고객 만족도 높임 효율적 SW 업그레이드 수행  단말기 개발회사와 서비스 사업자의 수익 극대화에 기여 서비스 상시성 ( 無정지 ) 유지 상시성이 요구되는 분야의 서비스 단절 방지 ( 국가통신망, 의료기기, 공장생산설비, 발전소, 군용시스템 ) 시스템 중단에 따른 비용손실을 제거  추정이 불가능한 막대한 2 차적 경제적 이득 발생 16

SevenCore Co. Ltd. [ 결과 시연 ] 메인메뉴로 되돌아 가는 버튼 [ 전원키 ] 전원 On/Off ( 부팅에 2 분 소요 ) [ 버그 존재 ] ① 키패드 버그 – 숫자키 오동작 ② 사운드 버그 – 소리 깨짐 시제품 – 리눅스 스마트폰 플랫폼 17

SevenCore Co. Ltd. [ 결과 시연 ] ① 패치파일 생성 업그레이드 서버 ② 패치파일 전송 ( 업로드 ) 개발자 ③ 패치파일 전송 ( 다운로드 ) ④ 패치파일 적용 업그레이드 완료 - 키패드 버그 수정 - 사운드 버그 수정 ( 재부팅 없음 ) - 키패드 디바이스 드라이버 코드 수정 - 사운드 디바이스 드라이버 코드 수정 개발도구 - 이클립스 18

SevenCore Co. Ltd. [ 결과 시연 ] 19

SevenCore Co. Ltd. 감사합니다. Q & A 임베디드 리눅스 기반 동적 소프트웨어 업그레이드 기술 20

SevenCore Co. Ltd. 성능 검증 임베디드 리눅스의 모든 구성 모듈에 대해 검증 실시 수정 후 동적 업그레이드 실시하여 정동작 확인 /usr/src/linux Doc arch includeinit fs kernel ipc lib mm net scripts driver alpha arm m68k mips ppc sparc i386 boot kernel lib math-emu mm asm-alpha asm-arm asm-i linux net scsi video 802 appletalk decnet ethernet ipv4 unix sunrpc x25... block cdrom char net pci pnp sbus scsi... sound video coda ext2 hpfs msdos nfs isofs... ntfs 21

SevenCore Co. Ltd. Dynamic Image 생성 과정 I object 파일 내부의 text section 비교 Object Code 비교 static unsigned int FunctionB() { … 기존 코드 AAA } static unsigned int FunctionB() { … 수정 코드 BBB } : e1a0c00d movip, sp e92dd870 stmdbsp!, {r4, r5, r6, fp, ip, lr, pc} e24cb004 subfp, ip, #4; 0x4 e24dd004 subsp, sp, #4; 0x4 e59040c8 ldrr4, [r0, #200] e1a05000movr5, r0 e ldrr7, [r0, #148] ebfffffebl34 e subsr4, r0, #0; 0x0 e1a01000 movr1, r0 e1a05000 movr5, r : e1a0c00d movip, sp e92dd870 stmdbsp!, {r4, r5, r6, fp, ip, lr, pc} e24cb004 subfp, ip, #4; 0x4 e24dd004 subsp, sp, #4; 0x4 e59040c8 ldrr4, [r0, #200] e1a01000 movr1, r0 e1a05000 movr5, r0 Object Code 비교 22

SevenCore Co. Ltd. Dynamic Image 생성 과정 II 함수 코드 추출 Function A Function B Function D Function E Function F Function G Function H Rodata sections Data sections Text sections : 0:e1a0c00d movip, sp 4:e92ddff0 stmdbsp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc} 8:e24cb004 subfp, ip, #4; 0x4 c:e24dd02c subsp, sp, #44; 0x2c... 2c:e1a05000 movr5, r0 30:e ldrr7, [r0, #148] 34:ebfffffe bl34 38:e subsr4, r0, #0; 0x0 3c:b1a08004 movltr8, r :e58da000 strsl, [sp] 5c:e58d9004 strr9, [sp, #4] 60:ebfffffe bl60 64:e subsr8, r0, #0; 0x0 68:1a bne178 fc:e59f0020 ldrr0, [pc, #32]; :ebfffffe bl :e1a00008 movr0, r8 108:e24bd028 subsp, fp, #40; 0x28 10c:e89daff0 ldmiasp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc} 110:e1a00005 movr0, r5 23

SevenCore Co. Ltd. Dynamic Image 생성 과정 III 함수 코드 내부 심볼 재배치 : 0:e1a0c00d movip, sp 4:e92ddff0 stmdbsp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc} 8:e24cb004 subfp, ip, #4; 0x4 c:e24dd02c subsp, sp, #44; 0x2c... 2c:e1a05000 movr5, r0 30:e ldrr7, [r0, #148] 34:ebfffffe bl34 38:e subsr4, r0, #0; 0x0 3c:b1a08004 movltr8, r :e58da000 strsl, [sp] 5c:e58d9004 strr9, [sp, #4] 60:ebfffffe bl60 64:e subsr8, r0, #0; 0x0 68:1a bne178 fc:e59f0020 ldrr0, [pc, #32]; :ebfffffe bl :e1a00008 movr0, r8 108:e24bd028 subsp, fp, #40; 0x28 10c:e89daff0 ldmiasp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc} 110:e1a00005 movr0, r5 타겟에서 실행 가능하도록 심볼 재 배치 24

SevenCore Co. Ltd. 25 FLASH: Firmware Image Updater Version 1 Image Version 2 Image Delta Generator Byte-Level Difference Image (Delta Image) Install script Byte-Level Difference Image (Delta Image) Install script Flash Image Updater Script 의 내용을 읽고 FLASH 내용 Update create write IN-PLACE Copy !?

SevenCore Co. Ltd. 26 타겟에서 업그레이드 적용 과정 analysis firmware delta image upgrade package analysis dynamic upgrade image firmware delta upgrade register functions check safe point insert illegal instructions relocation functions