저번주에 MS에서 주최한 Windows Embedded Developer Conference를 다녀와서 여러가지 생각이 많이 들었다. MS가 윈도를 이용하여 PC OS 환경에서는 천하통일을 한 상태고 서버 시장에서도 이제는 윈도 서버가 유닉스 서버에 근접할 만큼 점유율을 높혀놓은 상태다. 즉, OS라는 분야에 있어서 MS, 그리고 윈도가 차지하는 비중은 PC, 서버 다 합쳐서 본다면 절대급까지는 아니지만 거의 절대급에 가까이 있으며 MS는 이런 위치를 이용하여 새로운 분야에까지 그 비중을 늘릴려고 하고 있다고 본다.
현재 MS가 바라보고 있는 분야는 역시나 플랫폼 분야일 것이다. OS도 플랫폼의 한 종류로 봐야 할 것이며(엄밀히 따지면 플랫폼보다 더 큰 개념이기도 하지만) 현재 MS가 집중하고 있는 분야 역시 플랫폼이라 본다. 플랫폼에는 Runtime이라 불리는 실행 플랫폼이 있을 것이며 또한 개발환경도 플랫폼에 들어간다고 본다.
이미 MS는 각 PC에서 기본 운영체제도 돌아가고 있는 윈도를 보유하고 있다. 또한 Visual Studio라는 윈도용 응용프로그램을 만들 수 있는 개발환경을 보유하고 있다. 하지만 앞으로는 윈도와 Visaul Studio만으로는 우위를 점하기 어려운 세상이 올 듯 싶다. 바로 인터넷으로 대변되는 차세대 네트워크 플랫폼과 PC를 떠나 Non PC, 이름하여 임베디드 디바이스들이 점점 각광을 받고 있기 때문이다. 이제는 사람들이 PC환경와 유선환경에서 벗어나서 PMP, PDA, UMPC, 휴대폰 등의 무선환경에서 자유롭게 이동하며 사용할 수 있는 디바이스들을 선호하게 될 것이라는 것이 대부분의 전문가들의 이야기다. MS 역시 이것을 모를리가 없을듯 싶다.
인터넷과 임베디드 디바이스 플랫폼에 MS의 미래가 달려있다고 해도 허황된 이야기는 아닐 것이다. MS가 구글을 왜 그렇게 경계하는지를 보면 점점 사람들의 IT 트랜드가 오프라인 PC 환경에서 온라인 환경으로 옮겨가고 있다는 것을 알았기 때문이라 생각한다. 또한 이제는 어느 한곳에 고정되어 있는 것이 아니라 자유롭게 옮기면서 작업을 할 수 있는 세상이 오게 되었으며 거기에는 임베디드 디바이스가 자리잡고 있다고 본다. 물론 계속 PC, 서버용 OS가 출시될 것이다. 윈도 비스타의 서비스팩도 2, 3으로 계속 나올 것이며 서버 2008 이후의 서버 OS도 나올 것이며 비스타 후속 OS인 윈도 7 역시 개발중이라고 하니 데스크탑용 OS는 MS의 큰 기둥으로서의 역할을 할 것이다. 하지만 MS도 내부적으로 계속 변화하고 있다는 생각이 든다.
서론이 길었지만 이번 컨퍼런스를 보면서 MS가 임베디드 분야에 투자하는 것이 매우 많다는 것을 느꼈다. 임베디드용 윈도는 대표적으로 Windows CE(WinCE)가 있으며 고사양급인 WIndows XP Embedded(WinXPe)가 있다.
또한 이들로부터 파생된 각 디바이스 종류별 OS도 다양하다. 워낙 임베디드 디바이스들은 그 종류에 따라서 기능들이 다르고 성격들이 다르니 똑같은 OS로는 제대로 성능을 발휘하기 어렵기 때문에 성격에 따라서 내용을 다르게 만드는거 같다. 대표적인 것이 휴대폰용 OS인 윈도 모바일이 될 것이다. WInCE를 기반으로 휴대폰과 PDA폰에 맞도록 커스터마이징이 된 OS다. 국내외 스마트폰에 많이 탑재된 OS며 노키아의 심비안, 구글의 안드로이드 등과 현재 열심히 경쟁중이다.
그리고 WInXPe를 기반으로 만든 Windows XP Embedded Point of Service(WinXPe POS)라는 OS도 있다. 서비스의 성격에 맞춰서 개량한 OS다. 실제로 WInXPe는 WinCE보다 높은 고사양의 임베디드 디바이스에 들어가는 OS며 거의 PC급을 요구하는 경우에 많이 쓰인다. Intel의 데스크탑용 CPU만 지원하고 있으며 윈도XP를 컨퍼넌트로 분리하여 임베디드 환경에 맞도록 커스터마이징하고 필요한 컨퍼넌트들만 따로 조합하여 디바이스에 맞도록 OS를 구성해서 쓴다. 구동되는 것도 일반 PC용 OS인 윈도XP와 같다. 즉, PC가 필요한데 PC를 쓰기는 뭐시기한 장소에 PC급 임베디드 디바이스를 만들고 거기에 쓰는 OS가 WInXPe다. 대표적인 것이 예전에 물의가 되었던 게임머신 바다이야기가 WinXPe를 사용하는 것으로 알려졌다. 또한 WinXPe POS도 비슷한 개념으로 쓰이고 있다. 일반 대형 음식점 등에서 사용하고 있는 POS 시스템에 WinXPe POS가 사용되는 것으로 알려지고 있다. 단 WinXPe POS는 WinXPe보다 더 세분화되고 커스터마이징이 되기 때문에 진짜 필요한 기능만 집어넣어서 만들다보니 WInXPe보다 지원되는 기능은 더 적다.
이렇듯 MS는 임베디드 분야에서도 모바일 분야에서의 WinCE(윈도 모바일 포함)와 고정된 사업장에서 사용할 수 있는 더 큰 분야에서의 WinXPe를 보유하고 있으며 점유율 역시 임베디드 시장에서 상당한 수준에 이른다. 일단 국내의 경우 PMP, PDA 등의 이동식 멀티미디어 디바이스에서는 거의 WinCE가 천하통일 하다시피 했다. 일부 저가형 기기에서만 임베디드 리눅스나 뉴클레스 OS를 사용하고 네비게이션은 대부분이 WinCE며 PMP도 이제는 대부분이 WinCE를 채택하고 있다. PDA 역시 WinCE가 70%이상 차지하고 있는 상황이며 스마트폰에서는 대부분이 윈도 모바일을 사용하고 있다고 보면 된다. 일단 모바일 디바이스에서는 WinCE가 거의 절대강자로 꼽히고 있는 상황이다. WinXPe의 경우는 약간 사정이 다를 수 있지만 일단 POS 시스템에서는 대부분이 WinXPe POS를 사용하고 있다고 알려져있다. 전철역의 광고 시스템이나 안내 시스템도 WinXPe를 사용하고 있으며(예전에는 Win98을 직접 사용하여 PC로 돌렸는데 요즘은 WinXPe로 대부분 교체되었다고 한다) ATM기에서도 대부분이 WinXPe를 사용하고 있다고 한다.
이렇듯 미들레벨과 하이레벨에서의 임베디드 OS 시장에서의 MS 윈도는 점점 그 영역을 확고히 하며 점유율을 극대화 시키고 있는 중이다. 그리고 이들 WinCE와 WinXPe가 급격히 확산되었던 배경에는 바로 개발도구의 편리성이 자리잡고 있었다. 다름아닌 Visual Studio의 존재다.
임베디드 프로그래밍을 하는 개발자들이라면 아마도 개발중에 수없이 코피를 쏟아내었던 경험이 있을 것이다. 나 역시 임베디드 모듈을 만드는 개발자로서 또한 예전에는 임베디드 리눅승 위에서 파일시스템과 디바이스 드라이버를 개발했었던 경험에 비춰봤을 때 정말로 개발환경이 안좋아서 힘들었던 적이 한두번이 아니다. 임베디드 리눅스 뿐만 아니라 다른 임베디드 OS(혹은 RTOS) 위에서 개발을 할 때에는 개발 자체 뿐만 아니라 개발 후의 디버깅 작업이 너무 힘들다. PC용 프로그램을 개발할 때에는 눈에 무언가가 보이기 때문에, 또한 디버깅 환경이 너무 좋아서 개발하기 용이했지만 임베디드 환경은 그게 전혀 지원되지 않기 때문에 하나하나 로그를 파일로 남겨서 보던지 시리얼 화면을 통해서 확인하던지 하는 방법을 써야만 했다. 그래서 임베디드 개발자들이 희귀했기도 했다. 다들 안할려고 하기 때문에 말이다.
WinCE 역시 초창기에는 개발환경이 그닥 좋지는 않았다고 한다. 하지만 WinCE를 만들고 지원하는 플랫폼빌더의 성능이 점점 좋아지고 Embedded Visual C++(eVC)의 기능이 점점 개선이 되어서 이제는 PC에서 프로그래밍을 하듯 임베디드 프로그래밍을 할 수 있게 되었다. 게다가 Visual Studio 2005(VS2005)에서 WinCE 프로그래밍을 할 수 있게 지원이 되어서 PC 프로그램 개발하듯 똑같은 개발환경에 디버깅 환경을 제공받을 수 있게 되었다. 실제로 eVC가 Visual Studio 6와 비슷한 개발환경을 제공해주지만 VS2005에서 제공하는 환경은 더 환상에 가깝다. Visual Studio 2008도 VS2005와 마찬가지로 WinCE 프로그래밍을 지원해주니 점점 WinCE 프로그래밍이 간편해지고 좋아지는 것은 당연지사다. 그러니 개발하기 힘든 임베디드 리눅스나 타 임베디드 OS에서 개발하기 편한 WinCE로 넘어오는 것은 어찌보면 당연한 일이라 보여진다. WinXPe 역시 WIndows Embedded Studio라는 eVC와 비슷한 개발환경을 제공한다. 비록 VS2005, VS2008에서는 지원하지 않지만 거의 비슷한 개발, 디버깅 환경을 제공하니 개발자 입장에서는 자기가 친숙한 개발환경에서 임베디드 개발까지 할 수 있다는 장점을 갖추게 된 것이다.
실제로 MS에서 WinCE를 마케팅하면서 꼭 하는 이야기가 바로 WinCE 프로그램을 Visual Studio에서 만들 수 있다는 말이다. 즉, 개발자 입장에서 정말 익숙한 개발환경에서 WinCE 프로그램을 만들 수 있다고 하니 개발자 입장에서는 정말 매력적인 일이라 할 수 있을 것이다. 그러다보니 당연히 개발기간도 줄어들게 되는 부수적인 이득도 있다. 실제로 임베디드 리눅스 등으로 개발하는 것 보다 WinCE로 개발하는 것이 2~3개월 더 줄어든다는 비공식 통계도 존재하고 말이다. Visual Studio 2005 이상에서나 아니면 플랫폼빌더 + eVC의 조합으로 개발하는 것이나 다른 OS에서 개발하는 것보다 훨씬 편한 것은 사실이며 MS는 이것을 전면에 내세우고 마케팅을 함으로 현재 임베디드 OS 시장 1등을 차지하도록 만들었다고 본다.
또한 이번에 .NET Framework의 임베디드 버전들이 버전업되면서 더 안전한 임베디드 프로그래밍을 할 수 있도록 되었다. WinCE에서 제공하는 .NET Compact Framework과 로우레벨 임베디드 시스템에서 사용할 수 있도록 만든 .NET Micro Framework를 보면서 정말 편하게 프로그래밍을 할 수 있겠구나 하는 생각이 들었다. 일반적으로 임베디드 프로그래밍을 얘기하면 C언어를 떠오르며 WinCE용 프로그램 역시 MFC를 이용하기도 하지만 주로 Win32 API를 이용한 프로그래밍들이 대부분이다. 게다가 더 심오한 부분은 어셈블리어를 이용해야 하니 프로그래밍하는 입장에서는 매우 부담스러운 것이 사실이다. 이런 환경에서 C#이라는 고급언어를 사용할 수 있다는 것은 매우 큰 매리트가 된다. 특히나 기존 C나 WIn32 API등에서 문제가 되었던 메모리 관리 및 잘못된 포인터 사용으로 시스템이 뻣는 문제가 C#을 이용한다면 C# Runtime(일종의 VM 개념이다)이 알아서 다 관리를 해주니 프로그래밍 하는 입장에서는 더 안전하고 편리하게 프로그래밍을 할 수 있게 된 셈이다.
이번 컨퍼런스에서 느꼈던 것은 .NET Micro Framework의 존재로 인해 MS는 임베디드 시스템 전방위에서 OS를 다 지원하면서 임베디드 시장까지 천하통일을 노리는구나 하는 부분이었다. 실제로 WinCE는 임베디드 디바이스 중에서도 약간은 고사양을 요구하는 OS다. 요즘은 대부분의 임베디드 칩셋들이 고사양이라 WinCE를 충분히 지원하지만 그렇지 않는 다바이스들도 분명 존재한다. 솔직히 이런 부분에 WInCE에 밀렸던 임베디드 리눅스나 다른 RTOS들이 영역을 넓히고 있는데 이 부분까지 커버하기 위한 것이 바로 .NET Micro Framework다. WInCE정도의 사양을 요구하지 않는 임베디드 디바이스를 위해 만들어진 OS 대용품이라 할 수 있을듯 싶다.
.NET Micro Framework의 사양을 보니 다른 OS 위에서 돌아갈 수 있으며(.NET Framework가 윈도 위에서 올라가는 것 처럼) 단독으로도 사용할 수 있는거 같았다. 즉, .NET Micro Framework 단독으로도 부팅부터 다 제어할 수 있도록 되어있는 것이다. 펌웨어가 동작하듯 사용할 수 있도록 된 듯 싶다. 다만 제약사항이 좀 심해서 시스템적인 부분만 지원하고 파일시스템과 RT(Real Time) 요소는 지원하지 않는다. 그러다보니 제어장치 등에는 사용하기 어렵겠지만 다른 임베디드 OS와 같이 사용하여 MP3P와 같은 작은 장치에서도 사용할 수 있고 또한 단독으로도 충분히 작은 장치에서 사용할 수 있을 듯 보였다. 게다가 C#을 지원하고 개발을 Visual Studio 2005에서 할 수 있으니 더 괜찮아보였다. 제약사항때문에 그 적용대상도 제한이 있겠지만 WinCE의 하위버전으로 사용할 수 있는 충분한 매리트를 느꼈다.
이렇듯 WinCE에 WinXPe, 그리고 .NET Micro Framework까지 MS가 보유하고 있는 다양한 임베디드 OS와 Visual Studio라는 개발 툴까지 MS는 이제 PC 시장뿐만 아니라 임베디드 시장에서까지 천하통일을 노리고 있구나 하는 생각을 하게 되었다. 이미 윈도라는 경험을 갖고 있는 MS와 사용자, 그리고 Visual Studio라는 편리한 개발 툴은 이제 임베디드 개발환경을 더이상 암흑으로 밀어넣는 것이 아닌 양지로 끌어올리고 있다고 생각이 되기 때문이다. MS가 구글에 밀려 인터넷 분야에서는 좀 어려워할 수 있을지 몰라도 기반이 되는 OS 부분을 이렇게 다 먹어버리고 있으니 MS의 진정한 무서움은 여기에 있는게 아닐까 싶다는 생각이 든다.
현재 MS가 바라보고 있는 분야는 역시나 플랫폼 분야일 것이다. OS도 플랫폼의 한 종류로 봐야 할 것이며(엄밀히 따지면 플랫폼보다 더 큰 개념이기도 하지만) 현재 MS가 집중하고 있는 분야 역시 플랫폼이라 본다. 플랫폼에는 Runtime이라 불리는 실행 플랫폼이 있을 것이며 또한 개발환경도 플랫폼에 들어간다고 본다.
이미 MS는 각 PC에서 기본 운영체제도 돌아가고 있는 윈도를 보유하고 있다. 또한 Visual Studio라는 윈도용 응용프로그램을 만들 수 있는 개발환경을 보유하고 있다. 하지만 앞으로는 윈도와 Visaul Studio만으로는 우위를 점하기 어려운 세상이 올 듯 싶다. 바로 인터넷으로 대변되는 차세대 네트워크 플랫폼과 PC를 떠나 Non PC, 이름하여 임베디드 디바이스들이 점점 각광을 받고 있기 때문이다. 이제는 사람들이 PC환경와 유선환경에서 벗어나서 PMP, PDA, UMPC, 휴대폰 등의 무선환경에서 자유롭게 이동하며 사용할 수 있는 디바이스들을 선호하게 될 것이라는 것이 대부분의 전문가들의 이야기다. MS 역시 이것을 모를리가 없을듯 싶다.
인터넷과 임베디드 디바이스 플랫폼에 MS의 미래가 달려있다고 해도 허황된 이야기는 아닐 것이다. MS가 구글을 왜 그렇게 경계하는지를 보면 점점 사람들의 IT 트랜드가 오프라인 PC 환경에서 온라인 환경으로 옮겨가고 있다는 것을 알았기 때문이라 생각한다. 또한 이제는 어느 한곳에 고정되어 있는 것이 아니라 자유롭게 옮기면서 작업을 할 수 있는 세상이 오게 되었으며 거기에는 임베디드 디바이스가 자리잡고 있다고 본다. 물론 계속 PC, 서버용 OS가 출시될 것이다. 윈도 비스타의 서비스팩도 2, 3으로 계속 나올 것이며 서버 2008 이후의 서버 OS도 나올 것이며 비스타 후속 OS인 윈도 7 역시 개발중이라고 하니 데스크탑용 OS는 MS의 큰 기둥으로서의 역할을 할 것이다. 하지만 MS도 내부적으로 계속 변화하고 있다는 생각이 든다.
서론이 길었지만 이번 컨퍼런스를 보면서 MS가 임베디드 분야에 투자하는 것이 매우 많다는 것을 느꼈다. 임베디드용 윈도는 대표적으로 Windows CE(WinCE)가 있으며 고사양급인 WIndows XP Embedded(WinXPe)가 있다.
또한 이들로부터 파생된 각 디바이스 종류별 OS도 다양하다. 워낙 임베디드 디바이스들은 그 종류에 따라서 기능들이 다르고 성격들이 다르니 똑같은 OS로는 제대로 성능을 발휘하기 어렵기 때문에 성격에 따라서 내용을 다르게 만드는거 같다. 대표적인 것이 휴대폰용 OS인 윈도 모바일이 될 것이다. WInCE를 기반으로 휴대폰과 PDA폰에 맞도록 커스터마이징이 된 OS다. 국내외 스마트폰에 많이 탑재된 OS며 노키아의 심비안, 구글의 안드로이드 등과 현재 열심히 경쟁중이다.
그리고 WInXPe를 기반으로 만든 Windows XP Embedded Point of Service(WinXPe POS)라는 OS도 있다. 서비스의 성격에 맞춰서 개량한 OS다. 실제로 WInXPe는 WinCE보다 높은 고사양의 임베디드 디바이스에 들어가는 OS며 거의 PC급을 요구하는 경우에 많이 쓰인다. Intel의 데스크탑용 CPU만 지원하고 있으며 윈도XP를 컨퍼넌트로 분리하여 임베디드 환경에 맞도록 커스터마이징하고 필요한 컨퍼넌트들만 따로 조합하여 디바이스에 맞도록 OS를 구성해서 쓴다. 구동되는 것도 일반 PC용 OS인 윈도XP와 같다. 즉, PC가 필요한데 PC를 쓰기는 뭐시기한 장소에 PC급 임베디드 디바이스를 만들고 거기에 쓰는 OS가 WInXPe다. 대표적인 것이 예전에 물의가 되었던 게임머신 바다이야기가 WinXPe를 사용하는 것으로 알려졌다. 또한 WinXPe POS도 비슷한 개념으로 쓰이고 있다. 일반 대형 음식점 등에서 사용하고 있는 POS 시스템에 WinXPe POS가 사용되는 것으로 알려지고 있다. 단 WinXPe POS는 WinXPe보다 더 세분화되고 커스터마이징이 되기 때문에 진짜 필요한 기능만 집어넣어서 만들다보니 WInXPe보다 지원되는 기능은 더 적다.
이렇듯 MS는 임베디드 분야에서도 모바일 분야에서의 WinCE(윈도 모바일 포함)와 고정된 사업장에서 사용할 수 있는 더 큰 분야에서의 WinXPe를 보유하고 있으며 점유율 역시 임베디드 시장에서 상당한 수준에 이른다. 일단 국내의 경우 PMP, PDA 등의 이동식 멀티미디어 디바이스에서는 거의 WinCE가 천하통일 하다시피 했다. 일부 저가형 기기에서만 임베디드 리눅스나 뉴클레스 OS를 사용하고 네비게이션은 대부분이 WinCE며 PMP도 이제는 대부분이 WinCE를 채택하고 있다. PDA 역시 WinCE가 70%이상 차지하고 있는 상황이며 스마트폰에서는 대부분이 윈도 모바일을 사용하고 있다고 보면 된다. 일단 모바일 디바이스에서는 WinCE가 거의 절대강자로 꼽히고 있는 상황이다. WinXPe의 경우는 약간 사정이 다를 수 있지만 일단 POS 시스템에서는 대부분이 WinXPe POS를 사용하고 있다고 알려져있다. 전철역의 광고 시스템이나 안내 시스템도 WinXPe를 사용하고 있으며(예전에는 Win98을 직접 사용하여 PC로 돌렸는데 요즘은 WinXPe로 대부분 교체되었다고 한다) ATM기에서도 대부분이 WinXPe를 사용하고 있다고 한다.
이렇듯 미들레벨과 하이레벨에서의 임베디드 OS 시장에서의 MS 윈도는 점점 그 영역을 확고히 하며 점유율을 극대화 시키고 있는 중이다. 그리고 이들 WinCE와 WinXPe가 급격히 확산되었던 배경에는 바로 개발도구의 편리성이 자리잡고 있었다. 다름아닌 Visual Studio의 존재다.
임베디드 프로그래밍을 하는 개발자들이라면 아마도 개발중에 수없이 코피를 쏟아내었던 경험이 있을 것이다. 나 역시 임베디드 모듈을 만드는 개발자로서 또한 예전에는 임베디드 리눅승 위에서 파일시스템과 디바이스 드라이버를 개발했었던 경험에 비춰봤을 때 정말로 개발환경이 안좋아서 힘들었던 적이 한두번이 아니다. 임베디드 리눅스 뿐만 아니라 다른 임베디드 OS(혹은 RTOS) 위에서 개발을 할 때에는 개발 자체 뿐만 아니라 개발 후의 디버깅 작업이 너무 힘들다. PC용 프로그램을 개발할 때에는 눈에 무언가가 보이기 때문에, 또한 디버깅 환경이 너무 좋아서 개발하기 용이했지만 임베디드 환경은 그게 전혀 지원되지 않기 때문에 하나하나 로그를 파일로 남겨서 보던지 시리얼 화면을 통해서 확인하던지 하는 방법을 써야만 했다. 그래서 임베디드 개발자들이 희귀했기도 했다. 다들 안할려고 하기 때문에 말이다.
WinCE 역시 초창기에는 개발환경이 그닥 좋지는 않았다고 한다. 하지만 WinCE를 만들고 지원하는 플랫폼빌더의 성능이 점점 좋아지고 Embedded Visual C++(eVC)의 기능이 점점 개선이 되어서 이제는 PC에서 프로그래밍을 하듯 임베디드 프로그래밍을 할 수 있게 되었다. 게다가 Visual Studio 2005(VS2005)에서 WinCE 프로그래밍을 할 수 있게 지원이 되어서 PC 프로그램 개발하듯 똑같은 개발환경에 디버깅 환경을 제공받을 수 있게 되었다. 실제로 eVC가 Visual Studio 6와 비슷한 개발환경을 제공해주지만 VS2005에서 제공하는 환경은 더 환상에 가깝다. Visual Studio 2008도 VS2005와 마찬가지로 WinCE 프로그래밍을 지원해주니 점점 WinCE 프로그래밍이 간편해지고 좋아지는 것은 당연지사다. 그러니 개발하기 힘든 임베디드 리눅스나 타 임베디드 OS에서 개발하기 편한 WinCE로 넘어오는 것은 어찌보면 당연한 일이라 보여진다. WinXPe 역시 WIndows Embedded Studio라는 eVC와 비슷한 개발환경을 제공한다. 비록 VS2005, VS2008에서는 지원하지 않지만 거의 비슷한 개발, 디버깅 환경을 제공하니 개발자 입장에서는 자기가 친숙한 개발환경에서 임베디드 개발까지 할 수 있다는 장점을 갖추게 된 것이다.
실제로 MS에서 WinCE를 마케팅하면서 꼭 하는 이야기가 바로 WinCE 프로그램을 Visual Studio에서 만들 수 있다는 말이다. 즉, 개발자 입장에서 정말 익숙한 개발환경에서 WinCE 프로그램을 만들 수 있다고 하니 개발자 입장에서는 정말 매력적인 일이라 할 수 있을 것이다. 그러다보니 당연히 개발기간도 줄어들게 되는 부수적인 이득도 있다. 실제로 임베디드 리눅스 등으로 개발하는 것 보다 WinCE로 개발하는 것이 2~3개월 더 줄어든다는 비공식 통계도 존재하고 말이다. Visual Studio 2005 이상에서나 아니면 플랫폼빌더 + eVC의 조합으로 개발하는 것이나 다른 OS에서 개발하는 것보다 훨씬 편한 것은 사실이며 MS는 이것을 전면에 내세우고 마케팅을 함으로 현재 임베디드 OS 시장 1등을 차지하도록 만들었다고 본다.
또한 이번에 .NET Framework의 임베디드 버전들이 버전업되면서 더 안전한 임베디드 프로그래밍을 할 수 있도록 되었다. WinCE에서 제공하는 .NET Compact Framework과 로우레벨 임베디드 시스템에서 사용할 수 있도록 만든 .NET Micro Framework를 보면서 정말 편하게 프로그래밍을 할 수 있겠구나 하는 생각이 들었다. 일반적으로 임베디드 프로그래밍을 얘기하면 C언어를 떠오르며 WinCE용 프로그램 역시 MFC를 이용하기도 하지만 주로 Win32 API를 이용한 프로그래밍들이 대부분이다. 게다가 더 심오한 부분은 어셈블리어를 이용해야 하니 프로그래밍하는 입장에서는 매우 부담스러운 것이 사실이다. 이런 환경에서 C#이라는 고급언어를 사용할 수 있다는 것은 매우 큰 매리트가 된다. 특히나 기존 C나 WIn32 API등에서 문제가 되었던 메모리 관리 및 잘못된 포인터 사용으로 시스템이 뻣는 문제가 C#을 이용한다면 C# Runtime(일종의 VM 개념이다)이 알아서 다 관리를 해주니 프로그래밍 하는 입장에서는 더 안전하고 편리하게 프로그래밍을 할 수 있게 된 셈이다.
이번 컨퍼런스에서 느꼈던 것은 .NET Micro Framework의 존재로 인해 MS는 임베디드 시스템 전방위에서 OS를 다 지원하면서 임베디드 시장까지 천하통일을 노리는구나 하는 부분이었다. 실제로 WinCE는 임베디드 디바이스 중에서도 약간은 고사양을 요구하는 OS다. 요즘은 대부분의 임베디드 칩셋들이 고사양이라 WinCE를 충분히 지원하지만 그렇지 않는 다바이스들도 분명 존재한다. 솔직히 이런 부분에 WInCE에 밀렸던 임베디드 리눅스나 다른 RTOS들이 영역을 넓히고 있는데 이 부분까지 커버하기 위한 것이 바로 .NET Micro Framework다. WInCE정도의 사양을 요구하지 않는 임베디드 디바이스를 위해 만들어진 OS 대용품이라 할 수 있을듯 싶다.
.NET Micro Framework의 사양을 보니 다른 OS 위에서 돌아갈 수 있으며(.NET Framework가 윈도 위에서 올라가는 것 처럼) 단독으로도 사용할 수 있는거 같았다. 즉, .NET Micro Framework 단독으로도 부팅부터 다 제어할 수 있도록 되어있는 것이다. 펌웨어가 동작하듯 사용할 수 있도록 된 듯 싶다. 다만 제약사항이 좀 심해서 시스템적인 부분만 지원하고 파일시스템과 RT(Real Time) 요소는 지원하지 않는다. 그러다보니 제어장치 등에는 사용하기 어렵겠지만 다른 임베디드 OS와 같이 사용하여 MP3P와 같은 작은 장치에서도 사용할 수 있고 또한 단독으로도 충분히 작은 장치에서 사용할 수 있을 듯 보였다. 게다가 C#을 지원하고 개발을 Visual Studio 2005에서 할 수 있으니 더 괜찮아보였다. 제약사항때문에 그 적용대상도 제한이 있겠지만 WinCE의 하위버전으로 사용할 수 있는 충분한 매리트를 느꼈다.
이렇듯 WinCE에 WinXPe, 그리고 .NET Micro Framework까지 MS가 보유하고 있는 다양한 임베디드 OS와 Visual Studio라는 개발 툴까지 MS는 이제 PC 시장뿐만 아니라 임베디드 시장에서까지 천하통일을 노리고 있구나 하는 생각을 하게 되었다. 이미 윈도라는 경험을 갖고 있는 MS와 사용자, 그리고 Visual Studio라는 편리한 개발 툴은 이제 임베디드 개발환경을 더이상 암흑으로 밀어넣는 것이 아닌 양지로 끌어올리고 있다고 생각이 되기 때문이다. MS가 구글에 밀려 인터넷 분야에서는 좀 어려워할 수 있을지 몰라도 기반이 되는 OS 부분을 이렇게 다 먹어버리고 있으니 MS의 진정한 무서움은 여기에 있는게 아닐까 싶다는 생각이 든다.
'IT 최신 정보' 카테고리의 다른 글
Open Source Symposium에 초대합니다! (0) | 2008.11.18 |
---|---|
developerWorks Screencast event (0) | 2008.08.07 |
WPF(Windows Presentation Foundation ) 링크 (1) | 2008.08.05 |
제프 한의 멀티-터치 스크린 (1) | 2008.07.05 |
JavaOne 2008 Wrap-up 세미나 발표자료 (1) | 2008.07.01 |