허거걱... 한참을 이번 포스트를 쓰고 있었는데... 갑자기 새로운 internet page가 열리는 바람에
작성해 놓은 내용이 모두 다 훨훨~~ 날아갔다. T_T
다시 작성해야겠다.
이번 에는 Windows CE의 구조를 정리해 볼까 한다.
내용은 내가 Embedded World 와 마소, WECOM (http://wecom.dstcorp.com/)에 올려놓은 기고 내용을 기반으로 내 마음에 맞게 다시 수정, 보충해 볼꺼다.
위의 그림에서 확인해 볼수 있듯이, Windows CE는 Kernel을 비롯하여 여러개의 System Processor로 구성되어있다.
여기서의 Processor라는 의미는 일반적으로 우리가 잘 알고있는 실행 file인 "*.exe"를 의미한다.
대부분의 개발자들이 관심있어하는 Windows CE의 Kernel은 "NK.exe" 이다.
Kernel의 size는 약 250KByte 정도 된다 (작은 size의 Kernel이다.)
그런데 웃끼게도 Windows CE환경에서는 Kernel(NK.exe)만 가지고는 아무것도 할수가 없다.
(물론 조금은 할수 있다. 근데 거의 할수 없다고 볼수 있다. ㅎㅎㅎ ^^ )
Windows CE의 Kernel은 스케쥴링, API(Application Programming Interface)실행, Memory관리 등
몇몇 기본 service만 제공할뿐이다. ( 서비스 맞나 !! )
그럼 OS의 여러 다른 기본 서비스는 ?
예를 들어 File system, Data Base, UI (User Interface), Graphic 과 Window 처리 등등......
이들 여러 서비스는 앞에서 얘기했던 "System Processor"라는 것들이 제공 해준다.
(얘네 들은 확실한 서비스를 제공하는게 원칙이다 ㅎㅎㅎ ^^ )
System Processor는 일반적으로 아래와 같은 것들이 있다.
"Filesys.exe" File system 및 Data Base 그리고 system설정(Registry)들을 관리, 서비스 해준다.
"Device.exe" Device Driver관리자로 Driver들을 load하고 관리해준다.
"GWES.exe" Graphic Windowing Event Subsystem이라 부르고, graphic, event등 UI부분의 서비스를 제공한다.
"Explorer.exe" Windows CE의 기본 UI Shell이다. Windows 2000, XP와 같은 바탕화면 과 Task Bar등을 표시하고 User Application의 실행을 도와준다.
여기에 하나 빠진게 있다. (그림에도 빠졌다.)
"Service.exe" 라고~ ( 얜 진짜로 확실하게 서비스만 해주는 얘다.. ^^ )
이 System Processor는 Device driver에서 하기에는 좀 그런 protocol관련 service들을 load하고 관리해준다. 뿐만 아니라 간단한 Application같은 Thread의 등록을 이 service.exe에 하여 특정 기능을 수행할수 있다.
나중에 다시 확인해 보겠지만, Windows CE의 device driver들은 쫌 이상하게 되있어서 protocol service들을 device driver로 만들어 사용할수도 있다.
오늘은 퇴근후 쫌 중요한 미팅이 있어서 여기 까장 쓸란다...
또 허접할 다음 포스트를 기대해 주시라 ~~ ^^