Windows Embedded Compact

 



[image]
Windows CE 5.0 Professional[1]의 스크린샷
1. 개요
2. 상세
3. 역사
3.1. 버전 목록
4. 기타
5. 관련 문서


1. 개요


마이크로소프트에서 개발한 임베디드 시스템RTOS이다. 프로그래밍 언어는 C++를 사용했다.

2. 상세


PDA 등에도 사용되며 일반 사용자에게도 많이 알려졌다. 예전엔 Windows CE로 불렸고 아마도 일반인들에게는 오랫동안 사용된 이 이름이 훨씬 친숙할 것이다. 마이크로소프트는 공식적으로 무엇의 약자인지는 밝히지 않았다. 그러나 ME(Millenium Edition)이나 SE(Second Edition)등의 네이밍으로 미루어 보아 Compact Edition 정도로 유추해볼 수는 있다. 2011년 Windows Embedded Compact로 개명하였고 현재 저 이름으로 미는 중이다. RTOS란 Windows Embedded Compact가 응용 프로그램의 처리 요청을 정해진 시간안에 해주는 운영 체제를 말한다. Windows 3.x 기반이 아니냐는 소리가 나왔지만 마이크로소프트에서 자체적으로 개발했다.[2] 대신 DOS에서 전용 커널을 사용해 Windows CE를 DOS상에서 쓸 수 있었다.

3. 역사


Windows CE 1.0과 2.0 버전은 Handheld PC 및 Palm-sized PC라고 쓰고 PDA라고 읽는 기종 위주로 사용되었다. Windows CE 2.0을 탑재한 주요 기종은 LG의 모빌리안 시리즈와 엠플러스텍(M Plus Tec.)의 제스(Zess) 시리즈가 있다.
Windows CE 3.0 이상부터 멀티미디어 기능이 비약적으로 향상되었고 이 때부터 Pocket PC 시리즈 및 스마트폰용 버전이 등장했다. Pocket PC라는 명칭을 사용하려면 MS의 인증을 받아야 했으며 액정 해상도, 하드웨어 버튼 개수 등 MS에서 정한 규격대로 하드웨어를 만들어야 인증을 받을 수 있었다. 그러나 초기 버전인 Pocket PC 2000은 PC 윈도우의 GUI를 그대로 축소시켜 놓은 발로 만든 듯한 GUI, 엄청난 메모리 누수, 내장된 포켓 오피스의 버그 등 당시 모바일 기기가 저성능이었음을 감안해도 사상 최악이라 할 수 있는 운영 체제를 내놓았다. Win CE, ME, NT 4.0을 합쳐서 윈도우 '''CEMENT'''라고 뭉뚱그려 부르는 사람들도 있었다. '''심지어 셋 다 단점이 비슷했다.''' 그나마 Pocket PC 2002부터는 이 증상이 완화되었다. Pocket PC의 UI 특성상 멀티태스킹은 가능하지만 작업 표시줄이 없었기 때문에 하드웨어 버튼 하나를 작업 관리자용으로 매칭해서 썼어야 했고 이 개념은 윈도 모바일로 이어진다. 안드로이드 스마트폰도 2014년부터는 작업 관리자 개념에 해당되는 최근 앱 버튼 - 홈 - 뒤로가기 식의 버튼을 채택하고 있지만 PPC 2002의 주요 기종은 델의 액심 X5 시리즈(X50 시리즈 제외)가 있다.
Windows CE 4.0부터는 Palm의 멀티미디어 기능을 뛰어넘을 만한 CPU 지원과 메모리 누수를 완화하고 더 높은 호환성을 보여주게 되었다. 이 때부터 .NET 프레임워크의 Compact 버전을 내장하기 시작했기 때문에 Windows CE .NET이라는 별칭도 있었다. 이 때부터 국내 내비게이션의 대다수가 CE 4.0을 내장하기 시작했다. Pocket PC 2003의 기반이 되는 OS이다. Pocket PC 및 Windows Mobile은 국내 스마트폰 1세대(RW6100, M4300등), LG PM80 등에 사용되었고 Windows CE는 NEXiO S155/160(XP30), 시그마리온 3, 스마트솔루션 사의 iIBEE 등에 사용되었다.
Windows CE 4 커널까지의 가장 큰 단점은 사용자 데이터와 설치된 프로그램을 플래시 메모리가 아닌 RAM 위에 저장시켰다. 그 때문에 RAM에 항상 전원을 공급시켜 주어야 했고 주 배터리를 다 쓰거나 전원 어댑터 연결이 해제되었을 때 데이터 보존을 위해서 백업 배터리를 장착해야 했다. 백업 배터리까지 방전되어 RAM의 전원 공급이 완전히 끊어지면 '''하드리셋'''(컴퓨터로 치자면 하드디스크 초기화)이 되어 버려 사실상 공장 초기화 상태가 된다. 보통 사용된 백업 배터리는 길어야 30분 정도밖에 버티지 못했고 배터리는 수명이 다 되어 가면서 용량이 줄어들어 백업 배터리 완충 상태에서도 5분도 채 견디지 못할 때도 있었다. 일부 기기들은 백업 배터리의 수명 문제인지 내장 소프트웨어가 부팅 시 느려지는 걸 방지하려고 하는 건지 시스템 디렉토리(Application Data, Program Files, Windows, My Documents)에 앱 등을 설치하거나 파일을 넣고 전원을 끄면 '''날아간다 '''심지어 '''리셋을 해도 날아간다.''' 앱은 그나마 프로그램 추가/제거에서 흔적은 남지만..
2000년대 초반에는 PDA에 GPS가 내장된 케이스 형태의 모듈을 부착하여 내비게이션 용도로 많이 사용하였는데 일반 RAM에 내비게이션 프로그램을 설치하다보니 배터리 관리를 못해 방전되면 판매점을 방문하여 다시 깔아야 하는 번거로움이 있었다. 때문에 PDA 판매점에는 항상 내비게이션 프로그램을 재설치하려는 사람들이 있었을 정도 이 당시만 해도 피처폰에 비해 다양한 기능을 수행하는 PDA가 휴대기기 시장을 잠식할 것이라는 예측도 있었지만 휴대폰이 스마트폰으로 발전하면서 PDA는 역사 속으로 사라지게 되었다. 다만 특수 직종에서는 아직도 PDA를 사용하고 있긴 하다.
Windows CE 5 커널에서 환골탈태하여 주 저장소를 RAM이 아닌 NAND 플래시나 HDD에 저장하도록 변경되어 이 문제가 해결되었다. CE 커널 자체는 데스크톱용 HDD도 지원하지만 휴대용 장치에는 HDD가 크기에 탑재할 수 없어 Microdrive[3]를 대신 사용했다. 요즈음의 안드로이드를 사용하는 스마트폰태블릿 컴퓨터 역시 DRAM이 있지만 eMMC, UFS를 비롯한 플래시 메모리를 필수적으로 사용하고 OS가 달라서 배터리가 나가더라도 공장 초기화되는 일은 없다. CE 5까진 16bit 하이컬러(6만5천색)를 지원한다.
Windows Mobile 5.0, 6.x 버전은 Windows CE 5 커널을 사용한다. 참조 의외로 WM 6.0이 WM 5.0보다 안정성이 떨어졌으나 WM 6.1 이후로 안정성이 증가하였다. Windows Mobile 6에는 Windows Mobile Standard 에디션이 추가되었다. Pocket PC와 가장 큰 차이점은 터치스크린이 없고 피처폰처럼 숫자 키패드로 모든 메뉴를 탐색할 수 있다. 국내 출시 기종은 블랙잭 하나밖에 없지만 외국에는 팬택의 Duo, 아이메이트, Moto Q 등이 있다. WM 6.5도 커널은 CE 5이기 때문에 최대 6만 5천 컬러까지 지원한다. 삼성 옴니아 2의 경우엔 동영상 재생 시에는 트루컬러로 재생된다는 얘기가 있지만 과연 어떨련지 Windows Mobile 5/6 시기의 주요 기종은 LG의 PM81, HP의 단일형 PDA, 델의 액심 X50 시리즈(추가 그래픽 칩셋 포함) 등이 있고 아이나비, 아이리버 엔비(NV), PMP에도 이 버전이 사용되었다. MS의 Zune HD의 OS는 Windows CE 6.0을 커스텀화하여 사용 중이었다.
2010년 3사분기에 출시된 Windows Phone 7은 Windows CE 6.0과 Windows Embedded Compact 7의 일부 요소를 혼합한 커널을 사용했고 Windows Phone 8부터는 PC와 동일한 Windows NT 커널 기반으로 변경되었다. 2010년까지 공개되었던 정보들 중 대다수에는 "Windows Phone 7은 기존 Windows CE 계열의 애플리케이션과는 호환되지 않을 것"이라는 절망적인 얘기가 있었고 결국 현실이 되었다. Windows Mobile 6.1과 출시 연기설이 돌던 Windows Phone 7 사이의 간격을 메꾸기 위해 Windows Mobile 6.5가 출시되었고 6.5 내에서도 일부 마이너 업그레이드가 있었다. 결국 Windows Embedded Compact 7은 Windows Phone 7의 커널로 사용되지 못했고 Windows Phone 7보다 더 늦은 2011년 3월에서야 출시되었다. 이 때부터 Windows Phone과 Windows CE가 확실하게 갈라진다. 현재 나온 최신 버전은 Windows Embedded Compact 2013이다.
많은 사람이 착각하는 것이지만 이름에도 드러나 있듯이 Windows CE의 가장 큰 시장은 PDA스마트폰이 아니라 임베디드 시장이었다. 그러나 여기도 이제는 리눅스 계열이[4] 야금야금 갉아먹기 시작했다.[5]
버전에 따라서 인터넷 익스플로러가 내장되어 있지 않은 경우가 있다. Windows CE Core 버전이 그 예이다. 보통 PMP 등에선 Core 버전을 이용하기 때문에 Internet Explorer가 탑재되어 있지 않다.[6] 이런 장치에서는 해당 CPU/OS용 PDA용 브라우저를 설치해야 (넷프론트, 오페라 미니 등) 인터넷을 사용할 수 있었다. 또한 MioPocket 등 유틸을 깔아 IE를 우회적으로 설치하는 것도 가능했다.

3.1. 버전 목록


  • CE 1.0(1996년 11월 18일)
  • CE 2.0(1997년 9월 29일)
    • Handheld PC 3.0 (CE 2.11 Core)
    • Handheld PC 3.1 (CE 2.12 Core)
  • CE 3.0(2000년 6월 15일)
    • Pocket PC 2000
    • Pocket PC 2002
    • Smartphone 2002
  • CE 4.0(2002년 1월 7일)
  • CE 5.0(2004년 7월 9일)
  • CE 6.0(2006년 9월 15일)
  • Windows Embedded Compact 7
    • Windows Phone 7[7]
  • CE 7.0(2011년 3월)
    • Windows Embedded Compact 2013(2013년 6월 14일)

4. 기타


자체 커널이라서, 구조가 일반 윈도우와 다르다. 먼저 CE 커널은 '''NK.EXE'''이며, 마이크로 커널 디자인으로 메모리 관리, 스케줄링, API 지원 등이 들어가 있다. 마이크로스프트는 개발자의 커널 포팅을 최소화하기 위해서 커널의 주요 기능들을 라이브러리로 제공하고, CPU 및 하드웨어 관련 부분은 개발자가 직접 만들어야 한다. 커널의 기능을 갖춘 마이크로소프트 기본 제공 라이브러리는 NK.lib이고, 개발자(OEM)가 직접 포팅한 라이브러리는 OAL[8].lib이다. 이 두개가 하나로 합쳐서 NK.EXE이 만들어지게 된다.
NK.EXE 뿐만 아니라 그 외에는 시스템 파일을 관리하는 Filesys.exe, 장치 및 장치 드라이버들을 관리하는 Device.exe, 서비스를 관리하는 Service.exe, GUI 및 이벤트, 메시지를 관리하는 GWES.exe, 그리고 윈도우 기본 GUI 셸인 Explorer.exe이 있다. CE 부팅 과정에서는 NK.EXE > Filesys.exe > Device.exe > GWES.exe > Service.exe > Explorer.exe 순으로 실행한다.
일단은 Windows CE 5.0 Core 이상 버전부터는 \Windows 폴더에 cmd.exe가 내장되어 있고 시작 - 실행 메뉴가 있는 경우 동일한 방법으로 "cmd"를 입력하면 열 수 있다. 데스크톱용 Windows에 비하면 명령어가 많이 빠졌거나 기능이 심하게 너프되었다. 예를 들어 FOR 명령은 아예 없고 IF 명령어는 ELSE 등이 지원되지 않거나 SET 명령어의 계산기능(/A), 추가 입력 기능(/P) 지원이 안된다 심지어는 GOTO 명령어 등으로 루프를 돌릴때 구문이 약간만 이라도 어긋나거나 에러가 발생하면 CPU 사용량을 미칠듯이 100%로 올려버리며 기기를 먹통으로 만든다 커널 패닉까지는 안 가고 애초에 임베디드 기기들 자체가 CPU 처리 속도가 떨어지다보니 미칠듯한 무한루프를 못 견디는 듯. 사실 SET 계산식도 안 먹히니 루프 돌릴 일이 많이 없기도 하지만 파일 작성 등을 하고 처음으로 되돌아가는 루프 등을 구현했을 때 조심해야 한다. 이 때는 하드웨어적으로 종료 명령을 내려도 완전 먹통이라 기기 리셋밖엔 답이없다. Windows CE용 배치 파일 작성시 참고할 것.
Core버전은 일부 dll이 없어서 따로 구해서 써야한다.

5. 관련 문서


  • PDA
  • PMP
  • 드림캐스트: Windows CE를 사용할 수 있지만 본체에 OS가 내장된 형식이 아니라 필요한 소프트웨어에만 라이브 CD마냥 내장되어 있다. Windows CE를 사용하는 소프트웨어는 세가 랠리 2나 츄츄로켓, 드림 패스포트 등 크로스 플랫폼 네트워크를 사용하는 경우와 개발용으로 제공되는 데스크탑 환경 등이 있다.
  • 쌍용 체어맨
  • 르노삼성 SM6[9]

[1] 모든 스탠드 얼론 윈도우 CE 버전 중 안정성과 호환성이 가장 높아 호평을 많이 받았다. 윈도우 CE계의 XP라고 할 정도로 많은 기기에 탑재되었으며 스마트폰이 널리 퍼지기 전 일부 내비게이션 등의 기기에 탑재된 적이 있다. 다만 대한민국에서는 대부분 Core 버전(일부 기능이 없음)으로 탑재되어 나왔다. 예외적으로 민트패드는 Pro 버전(Handheld GPS 대응)을 사용했다.[2] Windows 3.x를 받쳐주는 DOS 시스템부터 ARM을 비롯한 여러 시스템에 포팅되지 않았기 때문에 그런 예측 자체는 신빙성이 없었다.[3] 소형 HDD[4] 소비자 계통은 안드로이드가 정밀 기기쪽은 리눅스 기반 RTOS가. 여전히 임베디드 컴팩트의 비중은 높지만 예전만큼은 못하다.[5] 하지만 임베디드 분야의 절대 강자들은 Micro-COS나 mbedOS, FreeRTOS 같은 전통적인 RTOS들이다. 이쪽에서는 아예 멀티스레딩이 필요없으면 OS 자체를 안쓴다.[6] 단, 민트패드 같은 것들은 예외.[7] Windows Phone 7은 6.0 R3을 기반으로 했지만, 여러 기능은 Windows Embedded Compact 7에서 많이 가져왔다.[8] OEM Adaptation Layer, 커널과 하드웨어 사이에 들어가는 레이어다.[9] PE, SE 등급에선 정품 V8 내비게이션을 선택할 수 있는데 문제는 대부분의 차량 제조사별 인포테인먼트 시스템과 사제 내비게이션이 안드로이드 기반 커스텀 OS로 선회하는 와중에 정품 V8 내비게이션은 Windows Embedded Compact를 기반으로 하고 있다.(...)