Windows Embedded CE 6.0 R2 의주요개선사항 저자 : Douglas Boling 출판일 : 2007 년 11 월 요약 : Windows Embedded CE 6.0 R2 에서는핵심드라이버및운영체제구성요소의여러가지기능이향상되었습니다. 이백서에서는향상된기능을살펴본후이러한기능향상이운영체제에주는영향에대해설명합니다.
저작권 이문서에포함된정보는문서발행시논의된문제들에대한 Microsoft Corporation의당시관점을나타냅니다. Microsoft는변화하는시장상황에부응해야하므로이를 Microsoft측의약정으로해석해서는안되며 Microsoft는발행일이후소개된어떠한정보에대해서도그정확성을보증하지않습니다. 이백서는오직정보를제공하기위한것입니다. Microsoft는이문서의정보에대해어떠한명시적, 묵시적, 법적보증도하지않습니다. 해당저작권법을준수하는것은사용자의책임입니다. 저작권에서의권리와는별도로, 이설명서의어떠한부분도 Microsoft의명시적인서면승인없이는어떠한형식이나수단 ( 전자적, 기계적, 복사기에의한복사, 디스크복사또는다른방법 ) 또는목적으로도복제되거나, 검색시스템에저장또는도입되거나, 전송될수없습니다. Microsoft가이설명서본안에관련된특허권, 상표권, 저작권또는기타지적재산권등을보유할수도있습니다. 서면사용권계약에따라 Microsoft로부터귀하에게명시적으로제공된권리이외에, 이설명서의제공은귀하에게이러한특허권, 상표권, 저작권또는기타지적재산권등에대한어떠한사용권도허여하지않습니다. 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows 및 Windows 로고와 Internet Explorer는미국및 / 또는기타국가에서의 Microsoft Corporation 등록상표또는상표입니다. 여기에인용된실제회사와제품이름은해당소유자의상표일수있습니다.
목차 소개...1 새드라이버...1 직렬 ATA 디스크드라이버...1 Secure Digital 2.0 호스트컨트롤러드라이버...2 새플래시드라이버...2 플러그형글꼴...4 부팅로더의향상된기능...4 새보드지원패키지...5 결론...6
Windows Embedded CE 6.0 R2 의주요개선사항 1 소개 Microsoft 에서는최근새드라이버와업그레이드된구성및추가기능을갖춘 Windows Embedded CE 6.0 을다시발표했습니다. Windows Embedded CE 6.0 R2 라고불리는이릴리스에서는 CE 패키지에몇가지유용한향상된기능이추가되었습니다. 이릴리스에서는많은부분이향상되었지만이백서에서는운영체제, 드라이버및보드지원패키지부분에대해중점적으로설명합니다. 이들향상된기능은 OEM 디바이스의대상과관계없이모든 OEM 에도움이될것입니다. 특정드라이버및기타구성요소의업그레이드에대한설명을시작하기에앞서전체운영체제에영향을주는업그레이드에대해살펴봐야합니다. Windows Embedded CE 6.0 을발표한후 Microsoft 에서는코드에서발견된버그를수정하는월간 QFE(Quick Fix Engineering) 업데이트를발표했습니다. 이번에발표된새 Windows Embedded CE 에는지난한해동안발표된모든 QFE 가포함되어있습니다. 따라서 CE 6.0 R2 코드를한번만설치하면그동안발표된 Windows Embedded CE 6.0 의모든수정사항이적용되므로 CPU 유형별로 10 개의월별 QFE 를설치하는것보다간편하게업그레이드할수있습니다. QFE 문제에대해설명했으므로이제 R2 의다른향상된기능을살펴보겠습니다. 새드라이버 Windows Embedded CE 시스템에서가장중요한요소는드라이버이므로 Windows Embedded CE OEM 의입장에서가장반가운요소는바로향상된새디바이스드라이버입니다. 드라이버가제공되지않으면 OEM 에서는고객이원하는기능을구현하는데집중하지못하고부족한엔지니어링인력을드라이버작성업무에재배치해야합니다. Microsoft 에서는 Platform Builder 에예제디바이스드라이버를제공하기위해많은노력을기울이고있으며새롭게발표되는드라이버는항상좋은반응을얻고있습니다. 직렬 ATA 디스크드라이버가장먼저설명할드라이버는간단하지만많은사람들이기다리던 ATA 하드디스크드라이버에대한업데이트입니다. 하드디스크드라이버가직렬 ATA 컨트롤러를지원하도록업그레이드되었습니다. 이전드라이버는 PC 제조업체에서새로운직렬 ATA 기술로옮겨가면서사용빈도가낮아지고있는기존의병렬 ATA 디스크컨트롤러만지원했습니다. 이드라이버는 Promise PDC40518 SATA 카드에작성되었습니다. 그러나이러한유형의드라이버는일반적으로드라이버에사용되는명령집합이시장에나와있는다른 SATA 카드와호환되어야합니다. 기존드라이버에새 SATA 지원기능이통합되었으므로운영체제를빌드하는작업만수행하면새하드웨어지원을사용할수있습니다. 업데이트된드라이버코드를살펴보면 SATA 지원기능외에도일반적인기능조정과향상이이루어졌다는것을알수있습니다. 예를들어 PCI 벤더및제품 ID 뿐만아니라사용자지정드라이버생성자를지정할수있는기능이추가되어레지스트리를통한보다다양한구성이가능해졌습니다. 40518 을개작하는데관심이있는개발자를위해 pdc40518.cpp, pdc40518.h, pdc40518.reg 등의새파일이 public\common\oak\drivers\block\atapi 의드라이버코드에추가되었습니다.
Windows Embedded CE 6.0 R2 의주요개선사항 2 Secure Digital 2.0 호스트컨트롤러드라이버업데이트된또다른드라이버는 Secure Digital 호스트컨트롤러드라이버입니다. SD 2.0 사양을구현한하드웨어를지원하기위해 SD 컨트롤러드라이버가업데이트되었습니다. SDIO 카드에비해빠른 I/O 속도를제공하는 Secure Digital 2.0 은최대 50MHz 클록속도로작동하고최대 25MB/ 초의읽기 / 쓰기속도 (4 비트모드 ) 를제공합니다. 이새사양은지원되는카드에대해 512 바이트의고정블록길이를사용하는블록주소지정모드도지원합니다. SDIO 카드에비해빠른속도를지원하는 SD 2.0 은최대 32GB 의고용량메모리카드도지원합니다. 기존 SD 1.1 드라이버에서는최대 4GB 용량의메모리카드만지원되었습니다. 이러한고밀도카드가출시되기시작하면서기존 SD 1.1 제한에대한문제가제기되고있습니다. 새 USB 스마트카드판독기드라이버가 R2 에추가되었습니다. Windows Embedded CE 에서는특정스마트카드판독기를지원하므로드라이버는 CCID(Chip/Smart Card Interface Devices) 사양을지원하는 USB 카드판독기와호환됩니다. 이제수많은스마트카드판독기에서이사양을지원하므로 OEM 에서는과거와달리다양한카드판독기중에서선택할수있게되었습니다. 새플래시드라이버플래시드라이버도업데이트되었습니다. 이드라이버는최신플래시기술을지원할뿐아니라표준 Windows Embedded CE 드라이버모델에더적합하도록재설계되었습니다. 새플래시드라이버는다층계층셀지원기능을제공하며, 각플래시셀의저장용량은 1 비트를넘습니다. 새로운고밀도플래시디바이스에서다층계층셀지원이널리사용되고있기때문에드라이버의소거횟수평준화 (wear leveling) 및블록관리에사용되는알고리즘의변화가필요합니다. 이에따라플래시드라이버의설계가플래시드라이버에고유한기존 플래시추상계층 / 플래시미디어드라이버 아키텍처에서 Windows Embedded CE 의다른드라이버에서도사용되는일반적인모델디바이스드라이버 / 물리적디바이스드라이버계층드라이버디자인으로변경되었습니다.
Windows Embedded CE 6.0 R2 의주요개선사항 3 플래시드라이버스택의새배열은다음과같습니다. 그림 1. 플래시드라이버스택 플래시드라이버스택은파일시스템에표준블록드라이버 IOCTL 인터페이스를노출하는특수제작된플래시파티션드라이버로시작됩니다. 파티션드라이버는일련의사용자지정 IOCTL 명령을사용하여플래시드라이버의 MDD 계층과통신합니다. 이러한 IOCTL 명령은문서화되어있습니다. 드라이버를지정된플래시기술로이식하기위해 PDD 계층을작성하는 OEM 의경우 MDD 및 PDD 계층사이의 IOCTL 명령이중요합니다. 이러한 IOCTL 명령은다음과같습니다. IOCTL_FLASH_PDD_GET_REGION_INFO 영역정보를가져옵니다. IOCTL_FLASH_PDD_GET_BLOCK_STATUS 플래시블록상태를가져옵니다. IOCTL_FLASH_PDD_SET_BLOCK_STATUS 플래시블록상태를설정합니다. IOCTL_FLASH_PDD_READ_PHYSICAL_SECTORS 섹터를읽습니다. IOCTL_FLASH_PDD_WRITE_PHYSICAL_SECTORS 섹터를씁니다. IOCTL_FLASH_PDD_ERASE_BLOCKS 블록을지웁니다. IOCTL_FLASH_PDD_COPY_PHYSICAL_SECTORS 섹터를복사합니다. IOCTL_FLASH_PDD_GET_PHYSICAL_SECTOR_ADDRESS XIP에사용됩니다 (NOR 플래시 전용 ). IOCTL_FLASH_PDD_LOCK_BLOCKS 플래시블록을잠급니다. IOCTL_FLASH_PDD_GET_LIFE_CYCLE_INFO 블록수명주기정보를가져옵니다. IOCTL_FLASH_PDD_GET_IDENTITY_INFO 플래시일련번호를가져옵니다. 플래시드라이버 FMD 계층을새아키텍처로이식하는 OEM 을지원하기위해 R2 에서는기존 FDD 코드에연결하여새 IOCTL 인터페이스를노출할수있는 PDD 를제공합니다. 이 FMD 래퍼 PDD 는 public 트리의 common\oak\drivers\block\msflash 에있습니다.
Windows Embedded CE 6.0 R2 의주요개선사항 4 플러그형글꼴 WYSIWYG(What You See Is What You Get) 운영체제의핵심기술중하나는텍스트를다양한글꼴로표시하는기능이며 Windows Embedded CE 도예외가아닙니다. 기본적으로 Windows Embedded CE 는래스터 ( 비트맵 ) 글꼴과트루타입글꼴을지원합니다. Microsoft 에서는 Platform Builder 를통해수많은글꼴파일을제공하고있으며 Windows Embedded CE 에서는지원되는비트맵또는트루타입글꼴파일형식을따르기만하면타사글꼴을항상사용할수있습니다. 하지만타사에서제공하는오픈타입과같은다른글꼴표준및기술도있습니다. 과거에는 GWES 의글꼴파일해석방법과호환되지않아다른글꼴파일형식은 Windows Embedded CE 플랫폼에서사용할수없었습니다. Windows Embedded CE 6.0 R2 부터는운영체제의그래픽프런트엔드 (GWES) 가타사글꼴엔진을지원하도록재설계되어모든파일형식의글꼴을열고읽을수있습니다. 플러그형글꼴 이라불리는이기술이지원되기때문에 OEM 에서는글꼴을해석할수있는엔진만제공할수있다면글꼴형식에관계없이자유롭게타사글꼴파일에대한라이선스를받아사용할수있습니다. 오픈타입이이러한글꼴의대표적인예입니다. 현재 Windows Embedded CE 에서는오픈타입글꼴파일형식이지원되지않습니다. OEM 에서는플러그형글꼴기술을사용하여오픈타입글꼴을표시하기위해 Windows Embedded CE 에설치할수있는글꼴엔진을만드는공급업체를찾을수있습니다. Microsoft 에서제공하는글꼴에비해향상된타사글꼴솔루션이제공되는극동지역의글꼴분야에서해법을찾아보는것도한가지방법입니다. 부팅로더의향상된기능 Platform Builder 와함께제공되는다양한보드지원패키지에는여러가지부팅로더예제가포함되어있습니다. 이러한부팅로더에는 2GB 를초과하는 FAT 파티션은지원하지않는다는한가지제한사항이있습니다. 이전버전의 Windows Embedded CE 에서는부팅로더가 2GB 파티션크기로제한된 FAT16 만지원했기때문에이러한제한사항이적용되었습니다. 하지만시스템에하드디스크뿐만아니라플래시드라이브까지도대용량이사용되면서이 2GB 제한으로인해부팅파티션을줄이고데이터파티션을늘리는방향의변경이필요하게되었습니다. CEPC BSP 에서제공하는새부팅로더는 FAT32 및 ExFAT 파티션에서운영체제이미지를로드할수있습니다. 이러한두파티션유형은모두 2GB 이상의파티션을지원하므로부팅파티션을줄이지않아도됩니다. 새부팅로더는 BIOS 로더 입니다. 즉, DOS 를사용하여이미지를로드하지않고사용자지정부팅섹터에서직접로드될수있습니다. CEPC BSP 에는새부팅로더외에도하드디스크파티션을쿼리하고만들수있는 DiskPart 라는새유틸리티가있습니다. 이 Windows Embedded CE 유틸리티를통해개발자는시스템의하드디스크상태를쿼리하고 BIOS 부팅로더를위한하드디스크를준비하는작업을쉽게수행할수있습니다. 다음은 DiskPart 유틸리티에서지원되는명령목록입니다.
Windows Embedded CE 6.0 R2 의주요개선사항 5 Active 파티션을활성으로표시합니다. Inactive 활성파티션플래그를지웁니다. Create 주파티션을만듭니다. Delete 파티션을삭제합니다. Clean 파티션을삭제하고데이터를지웁니다. List 모든하드디스크와모든파티션을나열합니다. Select 후속명령을적용할파티션을선택합니다. DumpMBR 마스터부트레코드데이터를표시합니다. DumpStore 하드디스크정보를표시합니다. DumpPart 파티션정보를표시합니다. DumpSector 섹터정보를표시합니다. MBRCode MBR의코드영역에파일을씁니다. BootSec 파티션의부팅섹터에파일을씁니다. FixPartOffset 적합한파티션정보를사용하여부팅섹터의 BPB를업데이트합니다. Zero 섹터의모든바이트에 0을씁니다. 위목록에서알수있는것처럼 DiskPart 유틸리티는하드디스크를준비하는데매우유용하게사용할수있는기능을제공합니다. 새보드지원패키지 CEPC 보드지원패키지에는새부팅로더코드가포함되어있습니다. CEPC BSP 는부팅로더만업그레이드된반면세가지새 BSP 가 R2 에추가되었습니다. 내부적으로 Microsoft 개발자들은이러한세 BSP 를 Platform Builder 와함께제공되는사전정의된특정플랫폼에활용하고있습니다. 새릴리스에추가된첫번째 BSP 는 HP/Compaq t5530 씬클라이언트용 BSP 입니다. 이 x86 기반보드지원패키지는 VIA C9 CPU 용으로작성되었으며 VIA 칩셋용드라이버를포함합니다. RDP 팀에서는 CE 6.0 R2 와함께제공되는새원격데스크톱클라이언트소프트웨어를테스트및검증하는데이플랫폼을사용했습니다. BSP 는비디오, 오디오및네트워크디바이스에대한사용자지정드라이버를제공합니다. 비디오드라이버는하드웨어가속및비디오오버레이기능을지원합니다. 네트워크드라이버와부속네트워크 KITL 라이브러리는 VIA Fast Ethernet CE6B 네트워크컨트롤러에기록되었습니다. ST7109 BSP 는비디오스트리밍기술을테스트하는데사용되는 SH4 기반 BSP 입니다. 이보드지원패키지에는빌드트리의 public\common 측에있는 ATA 디스크드라이버와는별개로 SATA 드라이버를고유하게구현한사용자지정직렬 ATA 디스크드라이버를포함한몇가지흥미로운드라이버가포함되어있습니다. BSP 에는 STMicro 하드웨어를지원하는사용자지정비디오및이더넷드라이버도있습니다. Marvell PXA270 BSP 는 Marvell 에서새로인수한 ARM XScale 제품군을지원하는 Marvell 보드지원패키지입니다. 이 BSP 는 Marvell 평가플랫폼에서 PXA270 을지원합니다. 이 BSP 는 Windows Embedded CE 6.0 의초기버전에서제공하던 Mainstone III BSP 와대조되는흥미로운기능을제공합니다. 이새 BSP 에는 Mainstone III BSP 에없는오디오및플래시드라이버가있습니다.
Windows Embedded CE 6.0 R2 의주요개선사항 6 이 BSP 에는 XScale PXA270 CPU 에대한전원관리를위해특별히설계된 Philips PCF50606 전원관리칩용드라이버도포함되어있습니다. 이 BSP 는 VoIP 팀에서 CE 6.0 R2 에도있는 VoIP 업데이트의유효성을검사할때사용되었습니다. 결론 Windows Embedded CE 6.0 R2 의드라이버, 코어및보드지원패키지기능이향상되어운영체제에간단하지만많은사람들이기다리던여러가지기능향상이이루어졌습니다. 이러한기능향상은 Internet Explorer, RDP 및 VoIP 의업데이트 ( 다른백서참조 ) 와함께 Windows Embedded CE 6.0 R2 가 Windows Embedded CE 의우수한업그레이드버전임을보여줍니다. 자세한정보 : Windows Embedded 웹사이트 : http://www.microsoft.com/korea/windows/embedded/default.mspx