'플랫폼'에 해당되는 글 2건
- 2009.03.31 순대보드 CrossCompile 환경 - 1
- 2007.10.18 [WindowsCE 6.0 특집 ①] 연결된 장치 개발을 위한 윈도우 임베디드 CE 6 플랫폼
2009. 3. 31. 20:44
순대보드 CrossCompile 환경 - 1
2009. 3. 31. 20:44 in 혼자서 놀기.../순대보드(AHAV9302)
임베디드 작업은 'Cross Compile(크로스 컴파일)'환경이 갖추어진 상태라야 비로소 제대로 된 작업을 할 수 있다.
근데... '크로스 컴파일' 환경이란 뭐지? -_-
일반적으로 사용하는 데스크톱의 환경을 네이티브 개발환경이라고 한다. 해당하는 플랫폼에서 개발을 하고, 개발을 한 그 플랫폼에서 이런 저런 것들을 실행시키는 환경을 말한다.
쉽게 설명하자면, 리눅스나 윈도우즈가 설치된 데스크톱 기계(x86)에서 어떠한 프로그램을 작성하고, 작성한 프로그램을 동일한 플랫폼(x86)에서 실행시키는 것을 생각하면 될 것이다.
크로스 컴파일환경은 이와는 조금 다르다.
일반적으로 프로그램등을 작성할 때에는 흔히 사용하는 데스크톱(x86) 환경에서 작성을 하게 된다. 하지만 실제 작성한 프로그램 등은 개발한 플랫폼에서 동작하는 것이 아니고, arm 과 같은 별도의 임베디드 기계에서 동작을 하게 된다. 실제 프로그램이 동작해야할 플랫폼에 맞게 컴파일을 해주도록 해주는 녀석을 크로스 컴파일러라고 한다. 그리고 이런 크로스 컴파일을 할 수 있도록 해주는 환경을 크로스 컴파일 환경이라고 한다.
에이.. 그냥 arm 과 같은 임베디드 기계에서 프로그램을 작성하고, 컴파일을 하면 되지 않을까? 라고 생각 할 수도 있지만, 실제 임베디드 기계가 가지고 있는 성는은 데스크톱에 비하면 매우 빈약하다. 좀더 효과적인 작업을 하기 위해 성능이 좋은 데스크톱을 빌려 작업을 한다라고 생각하면 편할 듯 하다.
사실.. 본인도 잘 모른다. 그냥 그런 것 같다 ㅎㅎ
서론이 길긴 했는데.. 그럼 일단 순대보드(AHAV9302)의 크로스 컴파일을 위한 환경을 만들어 보려 한다. 크로스 컴파일을 위한 전용 디렉토리를 만들고, 몇 가지의 환경변수를 등록할 것이다.
'당근이의 AVR 갖구 놀기'에 설명된 대로 따라할 것이다.
리눅스 기계의 /opt 디렉토리로 이동을 하여 다음의 디렉토리들을 생성해 준다.
/opt/arm9sbc
/opt/arm9sbc/ahav
/opt/arm9sbc/ahav/backup => 포팅할 패키지들과 패치들을 보관하는 곳.
/opt/arm9sbc/ahav/build => 컴파일 시 사용할 임시 디렉토리.
/opt/arm9sbc/ahav/host => 컴파일 시 필요한 헤더와 명령어들을 임시로 보관하는 곳.
/opt/arm9sbc/ahav/images => 램디스크 이미지를 생성하는 곳.
/opt/arm9sbc/ahav/kernel => 커널 컴파일을 하는 곳.
/opt/arm9sbc/ahav/kernel/.post => 후기 작업을 위해서 필요한 곳...??
/opt/arm9sbc/ahav/nfs => NFS를 사용할 경우에 사용.
/opt/arm9sbc/ahav
/opt/arm9sbc/ahav/backup => 포팅할 패키지들과 패치들을 보관하는 곳.
/opt/arm9sbc/ahav/build => 컴파일 시 사용할 임시 디렉토리.
/opt/arm9sbc/ahav/host => 컴파일 시 필요한 헤더와 명령어들을 임시로 보관하는 곳.
/opt/arm9sbc/ahav/images => 램디스크 이미지를 생성하는 곳.
/opt/arm9sbc/ahav/kernel => 커널 컴파일을 하는 곳.
/opt/arm9sbc/ahav/kernel/.post => 후기 작업을 위해서 필요한 곳...??
/opt/arm9sbc/ahav/nfs => NFS를 사용할 경우에 사용.
/opt 디렉토리로 이동 한 후 아래와 같이 입력을 한다.
$ sudo mkdir arm9sbc
[sudo] password for ID :
$ sudo chown ID:users arm9sbc
[sudo] password for ID :
$ sudo chown ID:users arm9sbc
위와 같이 해주는 것으로 생성한 arm9sbc는 root 계정이 아닌 일반 사용자 계정으로 사용을 할 수 가 있다.
ID는 사용자가 접속시 사용하였던 ID가 된다.
참고로.. 이것은 ubuntu 리눅스에서만.. 이런식으로 사용한다.
mkdir 명령을 사용하여 위의 디렉토리들을 생성해 준다.
$ mkdir arm9sbc/ahav
$ mkdir arm9sbc/ahav/backup
...
$ mkdir arm9sbc/ahav/nfs
$ mkdir arm9sbc/ahav/backup
...
$ mkdir arm9sbc/ahav/nfs
/opt/arm9sbc/ahav에 환경변수를 설정한다.
$ cd /opt/arm9sbc/ahav
$ vi .initrc-ahav
export PATH=/usr/local/arm/4.1.1-920t/bin:/usr/local/arm/3.2.1-elf/bin:${PATH}
export AHAV_PROJECT_NAME="AHAV9302"
export AHAV_BASE_DIR=/opt/arm9sbc/ahav
export AHAV_BACKUP_DIR=${AHAV_BASE_DIR}/backup
export AHAV_BUILD_DIR=${AHAV_BASE_DIR}/build
export AHAV_HOST_DIR=${AHAV_BASE_DIR}/host
export AHAV_IMAGES_DIR=${AHAV_BASE_DIR}/images
export AHAV_ROOT_DIR=${AHAV_IMAGES_DIR}/root
export AHAV_KERNEL_DIR=${AHAV_BASE_DIR}/kernel
export AHAV_KERNEL_VER="2.6.22.8"
export AHAV_NFS_DIR=${AHAV_BASE_DIR}/nfs
$ chmod 750 .initrc-ahav
$ . .initrc-ahav
$ vi .initrc-ahav
export PATH=/usr/local/arm/4.1.1-920t/bin:/usr/local/arm/3.2.1-elf/bin:${PATH}
export AHAV_PROJECT_NAME="AHAV9302"
export AHAV_BASE_DIR=/opt/arm9sbc/ahav
export AHAV_BACKUP_DIR=${AHAV_BASE_DIR}/backup
export AHAV_BUILD_DIR=${AHAV_BASE_DIR}/build
export AHAV_HOST_DIR=${AHAV_BASE_DIR}/host
export AHAV_IMAGES_DIR=${AHAV_BASE_DIR}/images
export AHAV_ROOT_DIR=${AHAV_IMAGES_DIR}/root
export AHAV_KERNEL_DIR=${AHAV_BASE_DIR}/kernel
export AHAV_KERNEL_VER="2.6.22.8"
export AHAV_NFS_DIR=${AHAV_BASE_DIR}/nfs
$ chmod 750 .initrc-ahav
$ . .initrc-ahav
여기까지 진행을 하면, 크로스 컴파일 환경을 위한 사전 작업을 마친 것이다.
사전 작업이라고 해봤자... 크로스 컴파일러를 설치할 경로 정도를 설정해 준 것이긴 하지만... -_-
다음 시간에 나머지 작업을 진행해야지...... 슬슬 귀찮아지는데... ㅜ
'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글
순대보드 u-boot - 2 (0) | 2009.08.11 |
---|---|
순대보드 u-boot - 1 (4) | 2009.04.02 |
순대보드 CrossCompile 환경 - 2 (0) | 2009.04.01 |
순대보드 사전 작업?? (0) | 2009.03.30 |
순대보드 - AHAV9302 (2) | 2009.03.27 |
2007. 10. 18. 09:44
[WindowsCE 6.0 특집 ①] 연결된 장치 개발을 위한 윈도우 임베디드 CE 6 플랫폼
2007. 10. 18. 09:44 in Windows Embedded/Windows Embedded CE 6.0
다음은 'zdnet'에 올라와 있는 서진호님의 글을 스크랩한 것이다.
서진호님은 현재 마이크로소프트 임베디드 디벨로퍼 에반젤리스트로 활동하고 있으며 국내 모바일/임베디드 및 로봇 기술전도에 앞장서고 있다. 현재 서진호 모바일/임베디드 이야기라는 블로그를 운영하고 있다.
서진호님은 현재 마이크로소프트 임베디드 디벨로퍼 에반젤리스트로 활동하고 있으며 국내 모바일/임베디드 및 로봇 기술전도에 앞장서고 있다. 현재 서진호 모바일/임베디드 이야기라는 블로그를 운영하고 있다.
여러분은 어떤 술을 좋아하는가?
남자분들이라면 만추의 그윽한 향기를 느낄 수 있는 몰트 위스키 한 잔을 떠올릴 것이고 여자분들이라면 부드럽고 감미로운 붉은 포도주 한 잔을 떠오를 것이다. 최근 미국 로스앤젤레스에서 개최된 와이어드 넥스트 페스트2007에서 이 와인에 RFID를 달아서 판매된 수량 및 재고 파악 외에 이 와인을 사 가지고 간 고객 정보를 입력 받아 같은 와인 종류를 좋아하는 사람들끼리 커뮤니티를 형성 해주는 일종의 소셜 네트워크(Social Networking) 마케팅을 한 사례가 소개되었다.
생각보다 우리가 알지 못하는 사이에 임베디드 장치는 우리의 생활 속에 사람들과 잘 융합해 가고 있다. 오늘은 이러한 임베디드 장치를 만드는 데 향후 차세대 먹거리가 어떠한 것이 될 것인가에 대해 함께 이야기를 나누어 보도록 하자.
연결형 장치 개발의 도래 배경
국내 유비쿼터스 전도사인 차원용 소장님은 향후 유비쿼터스 시대가 도래하게 되면 우리의 오감을 만족시키는 임베디드 장치와 소프트웨어 서비스가 융복합(NT+IT+BT융합)된다고 예측한 바 있다.
이러한 예측은 [그림1]에서 보듯이 IDC 기관의 2005년도 11월 리포트에서 잘 입증해 주고 있다. 따라서 향후 2010년에는 PC 시장이 점차 태블릿PC 또는 미니PC와 같은 인간 중심의 필기/음성 인식이 탑재된 사용자 인터페이스를 가진 PC로 서서히 진화되며, 지금의 강력한 PC 기능은 개인 사용자가 사용하고 있는 나만의 PC(PDA)로 변모하고 산업 속에서 점차 기계와 기계 간의 스스로 연결되고 동작하는 로봇과 같은 장치로 변모될 것이다.
그만큼 개인과 기업 시장에서의 임베디드 시장은 폭발적인 성장을 할 것이라는 예측을 하고 있다. 특히 연결된 장치라 부르는 인터넷이나 다른 네트워크(무선랜/블루투스)와 같은 연결형 장치의 출시가 주류를 이끌게 될 것이다.
한편, 이러한 연결된 장치는 독립형 장치와 달리 인터넷을 통한 웹 사이트 또는 기업의 기간계 백-엔드 시스템과 접속을 기본으로 한다.
예를 들어 앞에서 말했던 RFID를 이용한 와인 소셜 네트워킹 시스템에서 RFID가 담긴 와인 장치를 클라이언트라고 보면 고객의 동적인 정보를 기록하여 소셜 네트워킹으로 연결해 주는 백-엔드 고객 관리 시스템은 서버라고 볼 수 있다.
지금까지 이러한 클라이언트는 메인 프레임의 호스트부터 다운사이징이 된 후 PC, 그리고 웹을 이용한 클라이언트를 이용하는 것까지 발전해왔다. 그러나 향후 이러한 시스템과 병행하여 임베디드 장치를 클라이언트로 하는 하드웨어, 소프트웨어 및 웹 서비스가 융합하는 이른바 ‘서비스로서의 소프트웨어’ 시장이 도래하게 될 것이다.
결론적으로 말해서 서비스로서의 소프트웨어는 장치 중심에서 사람 중심으로 시나리오가 변경되므로 새로운 비즈니스 모델을 기반한 수익 창출의 증대에 있다. 특히 국내와 같은 하드웨어 기반의 IT 산업에서는 하드웨어와 소프트웨어 지식이 결합하여 다른 나라와의 경쟁에서 우위를 선점할 수 있는 기반이 중요하다.
새로운 여정의 시작, 윈도우 임베디드 CE 6
그렇다면 임베디드 개발자 입장에서 보자면 이것을 어떻게 구현할 것인가에 대해 의문을 가지게 될 것이다. 만일 지금 당장 이를 시제품으로 구현해 보라고 명령이 떨어진다면 연결된 장치라고 해서니까 먼저 임베디드 보드에 통신을 할 수 있는 LAN 포트와 그 밖의 부가적으로 동작시키는 CPU와 메모리, 배터리 등 하드웨어 사양에 대한 조사를 할 것이다.
그런 후에 여러분들은 보드 기반의 소프트웨어 프레임워크인 BSP(Board Support Package)가 있는지 점검하게 될 것이다. 그 위의 여러분들이 동작시킬 장치 드라이버와 사용자 인터페이스에 필요한 쉘(Shell)이나 최종 사용자가 사용할 응용 프로그램을 탑재 시킬 것이다.
여기까지가 일반적으로 임베디드 개발자가 구현하는 범위일 것이다. 여기 범위에서 한 발짝 더 나아가 연결된 장치는 웹 서버를 통한 웹 사이트나 기간계 백-엔드 시스템을 연결하면 된다.
이때 SOAP이나 REST와 같은 표준 통신 프로토콜을 이용한 서비스-지향 아키텍처로 기존의 솔루션과 통합하는 작업이 필요하다. [그림3]은 연결된 장치 기반의 솔루션 아키텍처를 잘 보여주는 예이다.
이러한 연결된 장치는 개인 부문 시장에서는 자동차 내비게이션 또는 IPTV와 같은 솔루션에서 이미 DMB나 안정된 케이블 또는 WiBro/HSDPA와 같은 유무선 네트워크와 연결되어 서비스되고 있다. 그러나 고객들은 좀 더 빠르고 편리하게 사용하며 저전력의 소프트웨어를 원하고 있다.
이것을 뒷받침하기 위해서는 하드웨어 업체도 CPU와 메모리의 용량도 증폭시키는 데 투자를 많이 하고 있지만 소프트웨어 플랫폼들도 이를 긴밀하게 지원하기 위한 프로세스 및 메모리 관리를 혁신시킬 필요가 있다.
윈도우 임베디드 CE 6부터는 10년 동안 사용하던 정적으로 프로세스를 관리하는 방법을 버리고 PC 운영체제와 비슷하게 동적으로 프로세스를 관리하는 방식으로 변경되었다.
윈도우 임베디드 CE 6에서는 3만2,000개의 프로세스와 하나의 프로세스당 4기가 가상 메모리 중 2기가 사용자 메모리를 쓸 수 있어서 기존 버전보다 가상 메모리를 더 사용할 수 있기 때문에 용량이 많은 HD급 화질의 멀티미디어 동영상이나 트래픽이 많은 스트리밍 서비스 등을 소프트웨어적으로 더 가속화시킬 수 있는 기반을 마련했다.
[그림4]는 작년 11월에 발표된 윈도우 임베디드 CE 6 커널 아키텍처를 나타낸 그림이다. 여기에서 보듯이 윈도우 임베디드 CE6는 과거 버전과 달리 커널 모드와 사용자 모드라는 두 가지의 모드로 분리했다.
이것은 커널 장치 드라이버의 성능을 좀더 높이기 위해, 그리고 USB나 SDIO과 같은 입출력 많은 사용자 드라이버로 인하여 견고성을 갖추기 위해 분리시켰다.
또한 임베디드 보드나 칩을 만드는 회사가 포팅을 해주는 NK.EXE 와 윈도우 임베디드 CE 6의 커널을 DLL 형태로 분리하며 KITL 또한 분리하여 개발자가 쉽게 커널 모드에서 디버깅을 할 수 있도록 제공하게 되었다.
그리고 윈도우 임베디드 CE6부터는 커널 소스를 100%로 공유 소스 라이선스 방식으로 공개되어 CE 6 플랫폼 빌더만 있으면 그 소스를 쉽게 접근하게 되었다.
인터넷에 연결된 장치를 양산함으로써 여러분의 코드에 대해 한 가지 더 주의를 기울여야 하는 점이 생기게 되었다. 그것은 말하지 않아도 잘 알겠지만 이제부터 보안을 강화해야 한다.
다시 말해 특정 장치 드라이버에 알 수 없는 메모리 블록 복사로 인하여 버퍼가 오버런이 나거나 특정 포트를 공격하는 것과 같은 인터넷 상에서 발생하는 웜 바이러스 또는 DOS 공격 등을 여러분의 장치에서도 할 수 있다는 이야기이다.
이를 방지하기 위해 CE 6부터는 커널 모드에 곧바로 접근할 수 없고 보안을 강화는 API만 사용해야만 접근할 수 있도록 변경되었다.
윈도우 임베디드 운영체제의 시즌2
시즌2라는 말은 로스트나 프리즌 브레이크와 같은 미국 드라마나 연속극들이 시리즈 물을 편성하기 위해 사용된 말인데 마이크로소프트는 올 하반기에 ‘R2(Release2)’ 라는 이름으로 작년에 발표되었던 윈도우 임베디드 운영체제의 특징을 좀더 보강할 계획이 있다.
특히 윈도우 임베디드 CE6 R2에서는 개발 및 디버깅할 수 있는 플랫폼 빌더나 운영체제 시스템 및 커널, BSP 등은 변경되지 않는다.
그러나 CEPC에서 하드 디스크를 사용할 수 있도록 시리얼 ATA(Sa-ta) 드라이버 지원을 확장했고 부트로더에서는 FAT32 와 ExFAT 파티션을 지원하여 플래시 메모리에서 새로운 멀티 레이어 셀을 지원하여 스트리밍 드라이버 방식인 MDD/PDD 표준 방식으로 변경될 예정이다.
한편 R2의 BSP에서는 연결형 기업 장치를 위하여 씬 클라이언트에서 많이 사용될 X86 프로세서를 지원하는 HP/Compaq t5530 보드를 새롭게 지원하며 ST마이크로 사의 STI7109 보드를 지원하여 비디오 스트리밍을 강화시키며, 마벨 사의 PXA270을 통한 VoIP 솔루션을 참조할 수 있도록 추가될 예정이다.
끝으로 R2 에서는 인터넷 익스플로러와 윈도우 미디어 플레이어가 업데이트 될 예정이다. 아직까지는 데스크톱 PC에서 사용하는 만큼 풀 브라우징을 지원하지 못하지만 보안 강화를 통해 연결형 장치의 보안에 대비를 한 것이 돋보인다. 또한 미디어 플레이어 컨트롤을 버전 7.0으로 데스크톱 PC에서 사용했던 것과 똑같이 API 인터페이스를 지원하기 시작한다.
그리고 연결된 장치를 위해 Windows XP 와 Windows 서버2003 과 같은 원격 서버를 웹 패드와 같은 씬 클라이언트로 접속 및 제어하기 위해 RDP 프로토콜 6.0으로 업그레이드되었다.
통합 커뮤니케이션을 위한 VoIP 솔루션을 더욱 더 쉽고 빠르게 개발할 수 있도록 홈 스크린 사용자 인터페이스 및 폰 응용 프로그램를 개선했으며 멀티 레벨과 멀티 파티에서 비디오 컨퍼런싱을 할 수 있도록 서버 솔루션들과 함께 컴포넌트를 제공한다. 한편 CE6 R2 발표는 11월 OEM테크니컬 세미나에서 발표될 예정이다.
결론: 우리의 내일
이와 같이 임베디드 장치 시장에서는 하드웨어나 소프트웨어 모두 급변하게 변해가고 있다. 그것도 그럴 것이 요즘 택시를 타 보면 자동차 내비게이션 시스템의 맵이 2D에서 3D로 바뀌고 있으며 어디에서 고객이 요청해 오는지 호출 번호가 화면에 떠오른다. 그리고 그 호출 번호에 연결되어 통화할 수 있도록 지원해주는 연결형 장치가 우리 눈앞에 벌써 다가왔다.
그리고 올 여름 서울에서 개최된 전세계 대학생들의 소프트웨어 경연대회인 이매진 컵(Imagine Cup)에서 국내 세종대학교 EN#605팀이 준우승한 소식을 이미 들었을 것이다.
이렇게 준우승을 할 수 있는 이유는 시각장애자에게 학습과 커뮤니케이션을 위해 임베디드 칩을 이용한 장갑을 개발하여 점자 언어를 이용할 수 있도록 창의적 아이디어의 혁신성 때문이었다.
향후 미래의 임베디드 개발에서는 현업에서 나오는 창의적 아이디어로 개발된 솔루션이 매우 중요하며 이것은 플랫폼을 지원하는 회사와, 이를 임베디드 하드웨어와 연결하여 솔루션을 개발하는 국내 파트너와 나아가서는 실용적인 학문을 익혀 학생들이 사회진출을 돕는 대학교 및 연구소의 역할이 상생을 이루어야 한다.
참고 레퍼런스 사이트
남자분들이라면 만추의 그윽한 향기를 느낄 수 있는 몰트 위스키 한 잔을 떠올릴 것이고 여자분들이라면 부드럽고 감미로운 붉은 포도주 한 잔을 떠오를 것이다. 최근 미국 로스앤젤레스에서 개최된 와이어드 넥스트 페스트2007에서 이 와인에 RFID를 달아서 판매된 수량 및 재고 파악 외에 이 와인을 사 가지고 간 고객 정보를 입력 받아 같은 와인 종류를 좋아하는 사람들끼리 커뮤니티를 형성 해주는 일종의 소셜 네트워크(Social Networking) 마케팅을 한 사례가 소개되었다.
생각보다 우리가 알지 못하는 사이에 임베디드 장치는 우리의 생활 속에 사람들과 잘 융합해 가고 있다. 오늘은 이러한 임베디드 장치를 만드는 데 향후 차세대 먹거리가 어떠한 것이 될 것인가에 대해 함께 이야기를 나누어 보도록 하자.
연결형 장치 개발의 도래 배경
국내 유비쿼터스 전도사인 차원용 소장님은 향후 유비쿼터스 시대가 도래하게 되면 우리의 오감을 만족시키는 임베디드 장치와 소프트웨어 서비스가 융복합(NT+IT+BT융합)된다고 예측한 바 있다.
이러한 예측은 [그림1]에서 보듯이 IDC 기관의 2005년도 11월 리포트에서 잘 입증해 주고 있다. 따라서 향후 2010년에는 PC 시장이 점차 태블릿PC 또는 미니PC와 같은 인간 중심의 필기/음성 인식이 탑재된 사용자 인터페이스를 가진 PC로 서서히 진화되며, 지금의 강력한 PC 기능은 개인 사용자가 사용하고 있는 나만의 PC(PDA)로 변모하고 산업 속에서 점차 기계와 기계 간의 스스로 연결되고 동작하는 로봇과 같은 장치로 변모될 것이다.
그만큼 개인과 기업 시장에서의 임베디드 시장은 폭발적인 성장을 할 것이라는 예측을 하고 있다. 특히 연결된 장치라 부르는 인터넷이나 다른 네트워크(무선랜/블루투스)와 같은 연결형 장치의 출시가 주류를 이끌게 될 것이다.
[그림1] 임베디드 장치 성장 예측 |
한편, 이러한 연결된 장치는 독립형 장치와 달리 인터넷을 통한 웹 사이트 또는 기업의 기간계 백-엔드 시스템과 접속을 기본으로 한다.
예를 들어 앞에서 말했던 RFID를 이용한 와인 소셜 네트워킹 시스템에서 RFID가 담긴 와인 장치를 클라이언트라고 보면 고객의 동적인 정보를 기록하여 소셜 네트워킹으로 연결해 주는 백-엔드 고객 관리 시스템은 서버라고 볼 수 있다.
지금까지 이러한 클라이언트는 메인 프레임의 호스트부터 다운사이징이 된 후 PC, 그리고 웹을 이용한 클라이언트를 이용하는 것까지 발전해왔다. 그러나 향후 이러한 시스템과 병행하여 임베디드 장치를 클라이언트로 하는 하드웨어, 소프트웨어 및 웹 서비스가 융합하는 이른바 ‘서비스로서의 소프트웨어’ 시장이 도래하게 될 것이다.
결론적으로 말해서 서비스로서의 소프트웨어는 장치 중심에서 사람 중심으로 시나리오가 변경되므로 새로운 비즈니스 모델을 기반한 수익 창출의 증대에 있다. 특히 국내와 같은 하드웨어 기반의 IT 산업에서는 하드웨어와 소프트웨어 지식이 결합하여 다른 나라와의 경쟁에서 우위를 선점할 수 있는 기반이 중요하다.
[그림2] 임베디드 장치 마켓 분석 |
새로운 여정의 시작, 윈도우 임베디드 CE 6
그렇다면 임베디드 개발자 입장에서 보자면 이것을 어떻게 구현할 것인가에 대해 의문을 가지게 될 것이다. 만일 지금 당장 이를 시제품으로 구현해 보라고 명령이 떨어진다면 연결된 장치라고 해서니까 먼저 임베디드 보드에 통신을 할 수 있는 LAN 포트와 그 밖의 부가적으로 동작시키는 CPU와 메모리, 배터리 등 하드웨어 사양에 대한 조사를 할 것이다.
그런 후에 여러분들은 보드 기반의 소프트웨어 프레임워크인 BSP(Board Support Package)가 있는지 점검하게 될 것이다. 그 위의 여러분들이 동작시킬 장치 드라이버와 사용자 인터페이스에 필요한 쉘(Shell)이나 최종 사용자가 사용할 응용 프로그램을 탑재 시킬 것이다.
여기까지가 일반적으로 임베디드 개발자가 구현하는 범위일 것이다. 여기 범위에서 한 발짝 더 나아가 연결된 장치는 웹 서버를 통한 웹 사이트나 기간계 백-엔드 시스템을 연결하면 된다.
이때 SOAP이나 REST와 같은 표준 통신 프로토콜을 이용한 서비스-지향 아키텍처로 기존의 솔루션과 통합하는 작업이 필요하다. [그림3]은 연결된 장치 기반의 솔루션 아키텍처를 잘 보여주는 예이다.
[그림3] 연결형 장치 아키텍처 |
이러한 연결된 장치는 개인 부문 시장에서는 자동차 내비게이션 또는 IPTV와 같은 솔루션에서 이미 DMB나 안정된 케이블 또는 WiBro/HSDPA와 같은 유무선 네트워크와 연결되어 서비스되고 있다. 그러나 고객들은 좀 더 빠르고 편리하게 사용하며 저전력의 소프트웨어를 원하고 있다.
이것을 뒷받침하기 위해서는 하드웨어 업체도 CPU와 메모리의 용량도 증폭시키는 데 투자를 많이 하고 있지만 소프트웨어 플랫폼들도 이를 긴밀하게 지원하기 위한 프로세스 및 메모리 관리를 혁신시킬 필요가 있다.
윈도우 임베디드 CE 6부터는 10년 동안 사용하던 정적으로 프로세스를 관리하는 방법을 버리고 PC 운영체제와 비슷하게 동적으로 프로세스를 관리하는 방식으로 변경되었다.
윈도우 임베디드 CE 6에서는 3만2,000개의 프로세스와 하나의 프로세스당 4기가 가상 메모리 중 2기가 사용자 메모리를 쓸 수 있어서 기존 버전보다 가상 메모리를 더 사용할 수 있기 때문에 용량이 많은 HD급 화질의 멀티미디어 동영상이나 트래픽이 많은 스트리밍 서비스 등을 소프트웨어적으로 더 가속화시킬 수 있는 기반을 마련했다.
[그림4] 윈도우 임베디드CE 6 커널 아키텍처 |
[그림4]는 작년 11월에 발표된 윈도우 임베디드 CE 6 커널 아키텍처를 나타낸 그림이다. 여기에서 보듯이 윈도우 임베디드 CE6는 과거 버전과 달리 커널 모드와 사용자 모드라는 두 가지의 모드로 분리했다.
이것은 커널 장치 드라이버의 성능을 좀더 높이기 위해, 그리고 USB나 SDIO과 같은 입출력 많은 사용자 드라이버로 인하여 견고성을 갖추기 위해 분리시켰다.
또한 임베디드 보드나 칩을 만드는 회사가 포팅을 해주는 NK.EXE 와 윈도우 임베디드 CE 6의 커널을 DLL 형태로 분리하며 KITL 또한 분리하여 개발자가 쉽게 커널 모드에서 디버깅을 할 수 있도록 제공하게 되었다.
그리고 윈도우 임베디드 CE6부터는 커널 소스를 100%로 공유 소스 라이선스 방식으로 공개되어 CE 6 플랫폼 빌더만 있으면 그 소스를 쉽게 접근하게 되었다.
인터넷에 연결된 장치를 양산함으로써 여러분의 코드에 대해 한 가지 더 주의를 기울여야 하는 점이 생기게 되었다. 그것은 말하지 않아도 잘 알겠지만 이제부터 보안을 강화해야 한다.
다시 말해 특정 장치 드라이버에 알 수 없는 메모리 블록 복사로 인하여 버퍼가 오버런이 나거나 특정 포트를 공격하는 것과 같은 인터넷 상에서 발생하는 웜 바이러스 또는 DOS 공격 등을 여러분의 장치에서도 할 수 있다는 이야기이다.
이를 방지하기 위해 CE 6부터는 커널 모드에 곧바로 접근할 수 없고 보안을 강화는 API만 사용해야만 접근할 수 있도록 변경되었다.
윈도우 임베디드 운영체제의 시즌2
시즌2라는 말은 로스트나 프리즌 브레이크와 같은 미국 드라마나 연속극들이 시리즈 물을 편성하기 위해 사용된 말인데 마이크로소프트는 올 하반기에 ‘R2(Release2)’ 라는 이름으로 작년에 발표되었던 윈도우 임베디드 운영체제의 특징을 좀더 보강할 계획이 있다.
특히 윈도우 임베디드 CE6 R2에서는 개발 및 디버깅할 수 있는 플랫폼 빌더나 운영체제 시스템 및 커널, BSP 등은 변경되지 않는다.
그러나 CEPC에서 하드 디스크를 사용할 수 있도록 시리얼 ATA(Sa-ta) 드라이버 지원을 확장했고 부트로더에서는 FAT32 와 ExFAT 파티션을 지원하여 플래시 메모리에서 새로운 멀티 레이어 셀을 지원하여 스트리밍 드라이버 방식인 MDD/PDD 표준 방식으로 변경될 예정이다.
한편 R2의 BSP에서는 연결형 기업 장치를 위하여 씬 클라이언트에서 많이 사용될 X86 프로세서를 지원하는 HP/Compaq t5530 보드를 새롭게 지원하며 ST마이크로 사의 STI7109 보드를 지원하여 비디오 스트리밍을 강화시키며, 마벨 사의 PXA270을 통한 VoIP 솔루션을 참조할 수 있도록 추가될 예정이다.
끝으로 R2 에서는 인터넷 익스플로러와 윈도우 미디어 플레이어가 업데이트 될 예정이다. 아직까지는 데스크톱 PC에서 사용하는 만큼 풀 브라우징을 지원하지 못하지만 보안 강화를 통해 연결형 장치의 보안에 대비를 한 것이 돋보인다. 또한 미디어 플레이어 컨트롤을 버전 7.0으로 데스크톱 PC에서 사용했던 것과 똑같이 API 인터페이스를 지원하기 시작한다.
그리고 연결된 장치를 위해 Windows XP 와 Windows 서버2003 과 같은 원격 서버를 웹 패드와 같은 씬 클라이언트로 접속 및 제어하기 위해 RDP 프로토콜 6.0으로 업그레이드되었다.
통합 커뮤니케이션을 위한 VoIP 솔루션을 더욱 더 쉽고 빠르게 개발할 수 있도록 홈 스크린 사용자 인터페이스 및 폰 응용 프로그램를 개선했으며 멀티 레벨과 멀티 파티에서 비디오 컨퍼런싱을 할 수 있도록 서버 솔루션들과 함께 컴포넌트를 제공한다. 한편 CE6 R2 발표는 11월 OEM테크니컬 세미나에서 발표될 예정이다.
결론: 우리의 내일
이와 같이 임베디드 장치 시장에서는 하드웨어나 소프트웨어 모두 급변하게 변해가고 있다. 그것도 그럴 것이 요즘 택시를 타 보면 자동차 내비게이션 시스템의 맵이 2D에서 3D로 바뀌고 있으며 어디에서 고객이 요청해 오는지 호출 번호가 화면에 떠오른다. 그리고 그 호출 번호에 연결되어 통화할 수 있도록 지원해주는 연결형 장치가 우리 눈앞에 벌써 다가왔다.
그리고 올 여름 서울에서 개최된 전세계 대학생들의 소프트웨어 경연대회인 이매진 컵(Imagine Cup)에서 국내 세종대학교 EN#605팀이 준우승한 소식을 이미 들었을 것이다.
이렇게 준우승을 할 수 있는 이유는 시각장애자에게 학습과 커뮤니케이션을 위해 임베디드 칩을 이용한 장갑을 개발하여 점자 언어를 이용할 수 있도록 창의적 아이디어의 혁신성 때문이었다.
향후 미래의 임베디드 개발에서는 현업에서 나오는 창의적 아이디어로 개발된 솔루션이 매우 중요하며 이것은 플랫폼을 지원하는 회사와, 이를 임베디드 하드웨어와 연결하여 솔루션을 개발하는 국내 파트너와 나아가서는 실용적인 학문을 익혀 학생들이 사회진출을 돕는 대학교 및 연구소의 역할이 상생을 이루어야 한다.
참고 레퍼런스 사이트
와이어드 넥스트 페스트2007
스터디 비즈니스 닷컴, 차원용 소장
OEM 테크니컬 세미나
이매진 컵 국내 첫 우승
'Windows Embedded > Windows Embedded CE 6.0' 카테고리의 다른 글
[WindowsCE 6.0 특집 ③] 윈도우 임베디드 CE 애플리케이션 디버깅 (0) | 2007.10.18 |
---|---|
[WindowsCE 6.0 특집 ②] 윈도우 임베디드 CE 6.0의 Cellcore 및 RIL 기능 (0) | 2007.10.18 |
Windows CE 개발자를 위한 커뮤니티들.. (0) | 2007.10.17 |
Windows Embedded CE 6.0 platform builder 설치 순서. (0) | 2007.10.17 |
Windows Embedded CE 6.0 관련 웹 캐스트 (0) | 2007.10.17 |