대메뉴 바로가기 본문 바로가기

데이터 기술 자료

데이터 기술 자료 상세보기
제목 윈도우 임베디드 스탠다드 OS의 특징과 개발방법
등록일 조회수 8122
첨부파일  

MS 윈도우 임베디드와 IoT

윈도우 임베디드 스탠다드 OS의 특징과 개발방법



인텔 에디슨은 작은 크기와 저전력, 블루투스/WiFi 모듈을 탑재하고 있다는 점 외에 다양한 개발 환경이 제공된다는 장점이 있다. 더욱이 최근 몇 년간 큰 인기를 얻은 자바스크립트를 사용해 IoT 관련 개발을 할 수 있다는 것은 에디슨를 더욱 매력적으로 보이게 만드는 요소다. 이번 시간에는 자비스크립트로 개발하기 위한 방법 중 하나인 인텔의 XDK를 활용한 개발 방법을 살펴볼 것이다.



윈도우7 혹은 8, 8.1 OS가 PC에서 차지하는 공간은 어떻게 될까. 윈도우 최신 업데이트까지 적용한다면 OS 설치 만으로 10GB가 넘어선다. 사용하지 않는 불필요한 기능도 들어 있겠지만 일반 사용자 PC에서 크게 문제가 되지 않을 수도 있다. 그렇다면 시스템 경량화가 필요한 임베디드 산업 환경에서도 아무런 문제가 되지 않을까?

산업용 제품은 일반 OS과 비교했을 때 필요한 기능과 안정성이 보장되는 무언가가 필요하다. 이러한 요구조건을 충족하는 OS가 윈도우 임베디드 스탠다드 제품 군이다. 윈도우 기능이 구성 요소화해 제공되기에 특별한 기능을 수행하는 자신만의 특화된 OS 기반 시스템을 개발할 수 있다.

또한, 임베디드 OS에서만 제공되는 기능들(EEFs, Embedded Enabling Features)을 적용해 보다 높은 시스템 안정성과 효율성, 연결성을 보장받을 수 있다. 서비스 기능을 제한하거나 운영체제 이미지 최적화가 필요한 산업 제품에 적합하며 산업용 장비에 많이 사용된다. 윈도우 임베디드 스탠다드 제품 군으로는 윈도우 XP 임베디드, 윈도우 임베디드 스탠다드 2009, 윈도우 임베디드 스탠다드 7(이하 WES7), 윈도우 임베디드 8 스탠다드(이하, WE8S)가 있다. 이번 글에서는 윈도우 7 기반 WES7, 8 기반 WE8S의 개발 방법과 임베디드 OS의 특화된 기능인 EEFs를 살펴본다.



WES7 소개 및 개발방법

윈도우7 기능을 150여개 패키지로 분리했으며 WES7에는 세 가지 제품 군이 있다. 이센셜(Essential) 제품인 WES7 E, 프리미엄(Premium) 제품인 WES7 P 그리고 컨수머(Consumer) 제품인 WES7 C이다. 커넥티드 미디어 기기로만 사용되는 WES7 C를 제외한 WES7 E, WES7 P의 차이에 대해 살펴본다.



가장 큰 차이는 두 개 이상 언어 탑재 가능 여부와 BitLocker, AppLocker 등의 고급기능 탑재 여부다. 개발자는 제품의 시나리오에 맞는 제품을 선택하여 사용할 수 있다. WES7을 타깃 장비에 설치하기 위해 Image Builder Wizard(이하, IBW)와 Image Configuration Editor(이하, ICE)를 이용하는 두 가지 방법을 사용할 수 있으며 IBW는 제공된 설치 DVD를 넣고 일반 윈도우 7 설치와 동일한 과정으로 설치를 진행하고 ICE는 에디터 툴을 이용해 IBW를 직접 만들어서 타겟 장비에서 설치한다.



전체적인 개발 순서를 살펴보면 아래 그림 하나로 설명할 수 있다.



ICE 기준으로 보면 타깃 장비에 대한 장치분석(Target Analyzer)이라는 과정을 통해 .pmq 파일을 추출하며, 이 파일을 통해 어떤 장치가 확인되고 필요한 드라이버는 어떤 것인지를 확인한다. 필요한 OS의 기능들을 추가하고 모든 설정을 구성하여 시스템에 맞는 OS를 구성하고 빌드를 거쳐 WES7 설치 파일을 만든다. 이렇게 만들어진 설치 파일을 타겟 장비에 설치하고 마스터 이미지를 만든 후 여러 장비에 배포하는 순서이다. ICE 툴킷은 아래 그림과 같이 구성되어 있으며 각각에 대한 설명은 다음과 같다.



Distribution Share(이하, DS): Embedded 런타임을 구성하고 사용하기 위한 모든 리소스 포함(3개의 필수 폴더)

■ $OEM$ Folders: 사용자가 직접 만든 컴포넌트를 넣는 공간
■ Out-of-Box Drivers: 설치해야 할 .inf 형태의 드라이버 파일
■ Packages: MS에서 제공되는 기본 Packages를 포함
- Driver: 메인보드와 관련된 대부분의 드라이버가 포함되어 있음
- Feature Pack: OS 기능과 관련된 내용
- LanguagePack: MUI가 있으며 다양한 언어 선택 가능
- Product: 배포 가능한 가장 작은 패키지로서 부팅에 필요한 드라이버, 보안, 서비스, 네트워크에 관련된 기본적인 내용 포함
- Update: 보안, 성능향상 관련 S/W 업데이트
■ Template: 사전에 정의 된 컴퍼넌트 목록

Answer File: IBE(Image Build Engine)으로 빌드 될 런타임 OS 이미지의 Configuration을 정의하는 XML

타깃 장비 정보(.pmq) 추출은 Tap.exe를 이용한다. WinPE 폴더에서 확인할 수 있다. 방법은 툴킷에서 Tools-Create Media-Create Windows PE Image 메뉴를 이용해서 WinPE 파일을 만들고 이를 bootable USB로 복사해 타겟 장비에 꽂고 tap.exe를 실행해 추출한다. ICE에서는 앞에서 추출한 .pmq 파일을 임포트하고, DS에 있는 임베디드 패키지들 중에서 필요한 항목만을 Answer File로 추가해 제품의 시나리오에 맞는 Answer File을 만든다.



Packages-> FeaturePack-> Embedded Enabling Features (EEFs) 부분이 임베디드 운영체제의 가장 큰 특징이자 장점을 모아놓은 부분이며 EEFs 의 주요 기능에 대해 살펴보자.

● EWF(Enhanced Write Filter)
디스크, 파티션 단위의 보호 기능으로 디스크에 직접적인 쓰기를 방지한다. 원리는 EWF 기능 활성화 시 모든 쓰기 동작은 물리적인 메모리(오버레이 영역)에 올라가고, 재부팅 시 초기화 되는 형식이다.



● HORM(Hibernate Once Resume Many)
EWF 활성화 후 사용 가능하다. 이는 시스템 부팅 시 Hibernation Image 만을 램에 로드해 부팅을 진행하기 때문에 빠른 부팅 시간을 제공. 한번 생성된 Hibernation Image를 계속해서 사용하기 때문에 시스템 항상성을 유지 가능하며 또한, Power management API 제공되므로 효율적인 전원 관리 가능해 전원 공급 불안정시 유용한 기능이다.

● FBWF(File Based Write Filter)
사용자가 선택하는 파일, 폴더, 파티션, 디스크 단위로 보호 설정이 가능하다 즉, 선택적인 파일 쓰기 가능하다. 보호된 파티션의 특정 폴더 업데이트 시 유용하다.

● Edition Branding
시스템 부팅 및 OS 시작 화면을 제어하는 기능으로서 이는 시스템을 윈도우처럼 보이지 않게 하고 싶을 때 유용한 기능이다. 윈도우 부팅화면이나 Resume 혹은 최대절전모드 화면 등을 제거할 수 있으며, 시작화면에서 윈도우 브랜딩을 제거하거나 윈도우 시작 화면 배경 이미지를 변경할 수 있다.

● Dialog Filter
다이얼로그 박스와 설정한 윈도우 창을 숨기는 기능이다.

● Keyboard Filter
윈도우의 단축키를 비활성화 할 수 있다. 일반 사용자가 단축키를 이용해 시스템의 동작에 영향을 끼치는 것을 방지할 수 있다.

EEF 기능 중 필요한 것들을 추가하고 이들의 의존성(dependency) 검사를 한다. 이는 추가된 패키지가 구동하기 위해 누락된 필수 패키지들을 확인하고 추가하는 작업이며, 누락된 패키지가 있을 경우 error 메시지 박스를 확인해 추가한다. 이렇게 완성된 Answer File을 빌드해 WES7 설치 파일을 만들어서 타겟 장비에 설치를 하면 된다.

이상으로 WES7의 개발 툴과 절차 그리고 EEFs에 대해 알아보았고, 이어서 윈도우8 기반의 WE8S에 대해 알아보자.



WE8S 소개와 개발방법

WE8S 또한 IBW와 ICE를 이용한 설치방법이 있다. 달라진 점을 꼽자면 첫째, OS를 기존의 패키지 단위가 아닌 모듈 단위의 분리하였다는 점이다.



모듈(Module)이란 WE8S의 새로운 포맷이며 기존의 패키지를 재구성한 것으로, 사용자 응용프로그램 및 장치 드라이버 등의 3rd 파티 구성요소들을 모듈 디자이너(Module Designer)를 이용해 OS에 통합 구성이 가능하다. OS 설계 시 사전 구성하거나 배포 도구를 이용해 추후에 런타임 이미지에서도 서비스가 가능하다. 또한, OEM에 의해 인증된 모듈만 사용할 수 있어 OS 설치 및 배포 시에 안전성 및 보안성을 높일 수가 있다.

이러한 새로운 개발 방식을 이용해 필요한 기능만 포함된 OS개발이 가능하기에 개발의 효율성을 높일 수 있고, 구성화된 모듈 기능으로 인해 개발과정 및 시간을 단축할 수 있을 뿐만 아니라, 윈도우8 모던 스타일 앱 기반의 새로운 제품을 개발할 수 있다. 구성 요소화된 모듈들이 저장되어 있는 임베디드 툴킷의 데이터베이스 개념의 카탈로그(Catalog)에는 임베디드 특화 모듈, 사용자 모듈, 윈도우8 운영체제 모듈, 윈도우8 앱 모듈 등의 총 네 가지 범주로 계층적으로 구성된 모듈들이 포함되어 있어 기능들 간의 의존성 및 일관성, 도구들 간의 연결성에 중점을 두었다.

두 번째 달라진 점은 기존의 EEFs 라는 이름은 Lockdown 으로 이름이 변경되었으며 EWF, FBWF 기능은 UWF (Unified Write Filter)로 통합된 것을 꼽을 수 있다.





ELM(Embedded Lockdown Manager) 기능을 이용해 다이어로그 필터(Dialog Filter), 키보드 필터(Keyboard Filter), 유니파이드 라이터 필터(Unified Writer Filter), 쉘 런처 등의 임베디드 기능들을 로컬 및 원격으로 관리 구성할 수 있다. 기존의 CMD 명령어 방식과 API 기반의 사용자 제어프로그램도 그대로 이용할 수 있어 임베디드 기능 제어의 효율성을 최대한 보장하고 있다.



몇 가지 재미있는 기능을 살펴보자면, 윈도우 8 앱 런처(App Launcher), 쉘 런처(Shell Launcher) 기능을 꼽을 수 있다. 이를 이용해 사용자 계정 별로 다른 윈도우 쉘 환경을 구성할 수 있어서 관리자와 사용자가 서로 다른 환경의 시스템을 사용함에 따라 시스템 안정성 및 보안성을 높일 수 있다. 이러한 쉘 환경은 기존 데스크탑 응용 프로그램뿐 만 아니라, 새로운 모던 앱 모두에서 지원된다.



또한, 제스처 필터(Gesture Filter) 기능을 이용해 터치 기반으로 구성된 환경에서 제스처 기능을 제어할 수 있어 사용자의 시스템 설정 접근을 방지하여 운영체제의 안정성을 확보할 수 있다. 사용자에게 시스템 화면에 제공되는 기능 및 기본적인 터치 동작들만 접근 가능하게 하고 시스템 내부 설정은 접근할 수 없도록 제품을 구성을 할 수 있다.

이렇게 윈도우 임베디드 스탠다드 제품군 중에 WES7, WE8S에 대해 간단히 살펴보았는데 이러한 제품 군들이 특히나 빛을 볼 수 있는 이야기가 바로 사물인터넷(IoT)일 것이다.



IoT 시대가 되면서 그림 10의 디바이스 분류 중 상위 단에 있는 인텔리전트 시스템에서 파생될 것으로 예상되는 디바이스 수는 20억 개 이상으로 추정되며 많은 제조회사에서 다양한 형태의 제품들을 쏟아낼 것으로 예상된다. 수많은 제품들 중에서 우리 제품만이 가지는 차별화 전략이 분명 있을 것이며 윈도우 임베디드 스탠다드의 임베디드 특화 기능과 OS를 최적화할 수 있다는 특징은 분명, 그 차별화를 도울 수 있는 밑거름이 될 것이라 생각한다.



출처 : 마이크로소프트웨어 4월호

제공 : 데이터전문가 지식포털 DBguide.net