http://www.bullog.net/Archive/632418108298985616.aspx
출처: ZDNet
Ⅲ. 운영 방법과 환경에 중심 둘 차세대 IT 개발 방향 컴퓨터의 개발 역사를 살펴보면 먼저 CPU가 개발되고 나서 시간이 지나면 OS가 개발되고 그 다음에 그 OS에 걸맞는 애플리케이션과 개발 툴들이 나오는 순서로 진행되었다. 그러나 차세대 환경에서는 하드웨어와 소프트웨어보다는 운영 방법과 환경이 더 많이 바뀌게 될 것이다. 오픈소스 운영체제 뿐만 아니라 상용 운영체제도 이 점에서는 유사하다.
차세대 운영체제는 64비트의 연산 능력과 메모리 버스의 이점을 최대한 살리려 할 것이다. 우선 엔터프라이즈 서버에 앞서 MS에서 야심적으로 개발중인 롱혼은 데스크탑 환경에서 부터 64비트의 연산 능력을 최대한 이용할 것이다.
이러한 상황에서 중요한 점은 운영체제의 성능이 아니라 운영체제가 제공하는 기능과 설비일 수도 있다. 과거의 예들은 기능과 설비를 제공하기 위한 설계 철학이 매우 중요했다는 사실을 알려준다. 또한 운영체제가 만들어내는 능력이 커널 만으로 이루어지는 것이 아니며 중요한 애플리케이션과의 시너지에 의한 것이라면 중요한 애플리케이션이 무엇인가를 잘 정리해 볼 필요가 있다.
이를테면 과거에 애플에서 매킨토시를 만들면서 가장 기본적인 기능은 ROM에 나머지 기능은 디스크에 구현한 적이 있다. 사람들은 이 간단한 기능의 GUI 운영체제로 파일을 정리하고 아이콘 조작으로 실제 일어나는 일들을 대행했다. 당시의 반응은 놀라운 것이었다. GUI는 하나의 패러다임이 되어 그 후 다른 운영체제들은 그래픽 환경을 텍스트 환경으로 랩핑하여 표시했다. NT나 윈도우도 이러한 작업의 연장이었다. 그 후 GUI는 단순한 파일 조작의 직접적인 추상화에서 보다 복잡한 일들이 일어나는 환경으로 바뀌었는데 인터페이스 철학은 메이커마다 달랐다.
얼마 후 웹 브라우저가 나오면서 브라우저는 때로 운영체제로 통하는 관문같은 환상을 일으키곤 했다. 웹브라우저는 네트워크상의 때로는 로컬 머신의 파일이 실행되고 작업이 일어나는 작은 작업장 같은 곳으로 변했다. 과거의 웹 브라우저 전쟁에서는 익스플로러가 승리하여 95% 이상의 점유율을 갖게 되었다(넷스케이프가 익스플로러에게 점유율 경쟁에서 밀린 뒤로 이름을 모질라(mozilla : mozilla.org)로 바꾸고 오픈소스 형태로 라이센스를 변경했다. 최근에는 파이어폭스(firefox)라는 이름으로 발표되어 많은 다운로드와 함께 관심을 모으고 있다.).
발표가 2년 후로 미루어진 롱혼이나 사용중인 MacOS X같은 운영체제에서는 이러한 일들이 점차로 더 세련된 모습을 보일 것으로 예측되는데 실제로 둘은 부분적으로는 비슷해질 것으로 예측한다.
MS에서 조금 더 늦게 발표될 것으로 보이는 WinFS도 파일과 폴더의 단순한 비유를 벗어나려는 시도를 보인다. 조금 더 본격적인 형태로는 이른바 Operating System of Information을 추구하던 E. Freeman과 D.Gelernter의 life stream 같은 개념이 있다. 다른 개발자들 역시 비슷한 필요성을 느끼기 시작했기 때문에 단순 데이터가 아닌 정보의 통합적 운용을 꾀할 것으로 보인다. Mac OS X에서 볼 수 있는 구조처럼 마이크로 커널과 그 위의 유닉스 API를 위한 레이어가 다시 그 위의 추상화 단계가 더 존재하는 구조같은 것은 복잡하기는 하지만 합리적인 것이다(Darwin 커널 .. 그래픽스 레이어 .. 프레임워크 레이어.. Aqua 레이어).
어떠한 통합의 형태를 취하든 간에 전체적인 네트워크까지는 아니더라도 적어도 서버나 워크스테이션의 정보에 대한 새로운 접근이 필요해 지는 것은 중요한 관건일 것이다. 단순히 파일을 열고 닫는 방식이아닌 정보를 다루는 설비와 기능의 제공은 중요한 애플리케이션과 운영체제와의 경계를 모호하게 한다.
Ⅳ. 롱혼으로 다시 쓰는 MS 이정표 MS는 지난 해부터 롱혼의 테크니컬 프리뷰 버전을 제한적으로 배포하면서 사용자들의 의견을 수렴해 왔으며, 최근 롱혼의 기능을 확정하고 개발을 본격적으로 시작하였다. 롱혼은 닷넷으로 작성된 최초의 운영체제라는 점에서 MS의 이정표가 될 것이다.
현재 롱혼은 크게 다섯 가지의 하부 시스템으로 나뉘어져 개발이 진행되고 있다. 각각의 하부 시스템은 새로운 기술을 담고 있으며, 차세대 PC 사용환경을 지원하는 기능들이 제공될 예정이다. 각각의 하부 시스템들이 제공하는 상세한 기능에 대해서는 올 초 제공될 예정인 베타 버전에서 구체적인 파악이 가능할 것이다.
롱혼의 핵심 모토중의 하나는 클라이언트 애플리케이션의 중심을 웹브라우저에서 윈도우로 다시 가져오는 것이다. 간단하게 기본 개념들을 살펴보자.
프리젠테이션 서비스를 위한 Avalon Avalon은 시스템 상에서 사용자 인터페이스, 문서 및 미디어를 표현하기 위한 통합된 아키텍처이다. Avalon은 개발자들이 최신의 그래픽 하드웨어의 기능을 활용할 수 있도록 지원하며, 개발자들은 롱혼의 쉘(shell) 기반의 사용자 환경을 구현할 수 있다.
![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.zdnet.co.kr%2Fimages%2Fstories%2Fetc%2F2005%2F01%2F0117-2%2F01.jpg) |
<그림1> 프리젠테이션 서비스를 위한 통합 이키텍처 Avalon |
기본적으로 Direct3D로 표현되는 3D 그래픽환경과 오디오 서비스, 입출력 시스템 등 사용자 인터페이스(UI)를 단일의 애플리케이션으로윈도우, 웹, 모바일 등의 환경에 관계없이 작동하도록 구현할 수 있게 된다.
특히 XAML(Extensible Application MarkupLanguage)이라는 선언적 마크업 언어를 내장하여 윈도우 기반 애플리케이션을 보다 쉽게 개발할 수 있게 한다. XAML을 통해 개발자들은 애플리케이션을 작성할 수 있고, 프리젠테이션 로직과 비즈니스 로직을 분리할 수 있다. 이를 통해 개발자와 디자이너의 협업이 가능해진다.
메시징 플랫폼 Indigo Indigo는 사람, 정보, 시스템과 장치들은 연결해준다. 기존의 커뮤니케이션 기능을 확장시켜 줄 Indigo의 메시징 기능과 프로그래밍 모델은 웹 서비스 개발을 간소화시켜 줄 것이다. Indigo는 서비스 지향의 연결된 시스템을 구축하고 운영하기 위한 일련의 기술을 이야기하며, 상호 운용성과 안전하고 신뢰할 수 있는 메시징 기능을 위한 통신 인프라를 제공한다. Indigo를 통해 확장 가능한 아키텍처, 스패닝 전송, 보안 시스템, 메시징 패턴, 인코딩, 네트워크 토폴로지 및 호스팅 모델의 광범위한 분산 시스템 기능을 통합할 수 있다.
Indigo는 기존의 COM+, MSMQ, .NET Remoting, ASMX(ASP.NET Web Services), System.EnterpriseServices, System.Messing 등의 메커니즘이 진화한 것으로, 이들 모두를 흡수하여 임의의 .NET 언어를 사용하여 서비스를 개발할 수 있는 하나의 단일 프로그래밍 경험을 제공하게 될 것이다.
데이터 스토리지 서비스를 위한 WinFS WinFS는 정보의 검색, 연관 및 처리 방법을 제공할 차세대 데이터 저장소이다. WinFS를 사용하면 개발자들은 애플리케이션에 내장된 데이터 구조를 활용할 수 있을 뿐 아니라 그러한 데이터 구조를 여러 가지 목적으로 활용할 수 있다.
WinFS는 기존의 파일 시스템과 관계형 데이터 처리 기술과 XML이 통합된 환경으로 이해할 수 있다. 기존의 파일 및 폴더로 구성되는 현재의 파일시스템의 한계를 극복하여 각각의 항목과 그에 관한 관계(Relation) 정보를 기본으로 처리하게 된다. 2006년 발표될 롱혼에서는 WinFS 베타 버전이 탑재될 예정이며 별도의 일정으로 정식 출시 제공될 예정이다.
기반 운영 시스템 서비스 Fundamentals 롱혼의 신기술들은 보안, 안정성, 확장성 등이 혁신적으로 개선된 기반 운영 시스템 서비스 상에서 작동하게 된다. 기존 윈도우XP 서비스 팩 2에서 적용되었던 보안 강화 기술들이 롱혼에서도 활용될 뿐 아니라 새로운 보안 기술과 아키텍처가 소개될 것이다. 설치 및 애플리케이션의 실행, 전개의 간소화, IPv6에 대한 지원 등도 중요한 개선 사항이다.
개발자 플랫폼 WinFX 롱혼 환경에서 개발자들이 애플리케이션을 개발할 수 있게 하는 프로그래밍 모델이 WinFX이다. 개발자에게 있어 롱혼에서 제공되는 새로운 개발 플랫폼과 운영체제의 변화는 기회인 동시에 위기가 될 수도 있다. 롱혼의 개발자 플랫폼인 WinFX는 .NET에서 시작된 MS 개발 플랫폼 변화의 완성이라고 할 수 있다. 우선 WinFX에 이르는 프로그래밍 모델 변화의 배경을 이해해보자.
![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.zdnet.co.kr%2Fimages%2Fstories%2Fetc%2F2005%2F01%2F0117-2%2F02.jpg) |
<그림 2> 언어와 프로그래밍 모델 통합 |
가장 일반적인 프로그래밍 모델인 Win32는 C언어를 사용하여 절차적 저수준 API로 운영체제의 기능을 가지고 있었다. 그러나 Win32는 메모리 관리의 어려움과 다른 프로세스 영역 침범, 그리고 낮은 생산성 등의 단점이 있어이를 보안한 것이 MFC(MicrosoftFoundation Classes)이다.
MFC는 Win32의 절차적 패러다임의 약점을 극복하기 위해 객체지향적 C++ 클래스 라이브러리를 제공하였다. MFC는 자주 사용되는 기능을 추상화한 클래스를 제공함으로써 일상적 코드 작성의 노력을 크게 감소시켜 개발자 생산성을 높여주고, 오류 발생 가능성도 줄일 수 있었다. 그러나 MFC가 직접 제공하지 않는 기능이 필요한 경우, Win32와 MFC 클래스의 상호작동 규칙까지 이해해야 하는 부담이 있었다. 윈도우 플랫폼의 빠른 확산으로 보다 생산적인 환경이 필요하게 되었고, MFC와 Win32를 사용하여 보다 다양한 기능을 구현하는 것을 일부 양보하는 대신 빠른 개발 생산성에 초점을 맞춘 Visual Basic과 같은 RAD 개발 환경이 기업 환경에서는 주류로 자리를 잡게 되었다.
이러한 개발 환경은 인터넷 덕분에 빠른 속도로 변화하게 되었고, 기업 환경 또한 변화하게 되었다. ASP(Active Server Page)는 기능적 코드와 HTML과 같은 마크업 언어로 구성된 웹 애플리케이션 개발을 위한 서버 측 기술로 인터넷 환경의 급속한 팽창과 함께 가장 대표적인 웹 애플리케이션 개발 환경으로 자리를 잡았다.
.NET은 이러한 이질적인 개발 환경과 상호 운용을 위한 개발/운용 환경으로 개발 언어 중립적인 실행 환경인 CLR(Common Language Runtime)과 표준 라이브러리 BCL(Base Class Libraries)을 바탕으로 일관되게 웹서비스를 통한 상호 운용 시스템을 구축하는 것을 목표로 제안되었다. .NET은 기존의 윈도우로 대변되는 리치 클라이언트와 웹으로 대변되는 씬 클라이언트, 양쪽의 장점을 함께 수용한 스마트 클라이언트 환경 구축이 가능한 개발 환경을 제공하고 있다.
이러한 통합된 연결 지향의 개발 환경을 기본으로 하는 것이 WinFX이다. WinFX는 롱혼의 하부 시스템,즉 Avalon, Indigo, WinFS 등의 기술을 활용할 수 있도록 해주는 기본 프로그래밍 모델이다. WinFX를 기반으로 개발자들은 Avalon을 통해 웹 애플리케이션과 윈도우 애플리케이션 그리고 모바일 애플리케이션을 통합 개발할 수 있고, XAML(Extensible Application Markup Language) 언어를 통해 프리젠테이션 계층과 비즈니스 로직 계층을 분리하여 좀 더 간편하게 애플리케이션을 구현할 수 있다. 또한 서비스 지향의 시스템을 구축하기 위한 여러 유형의 커뮤니케이션을 서비스/메시지/채널 등의 개념으로 통합한 Indigo를 사용하여 구현할 수 있다.
또한 WinFX는 좀 더 안정적이고 재 부팅이 없는 윈도우 업데이트 서비스를 바탕으로 “Click Once"라는 애플리케이션 배포, 버전 관리 도구를 제공한다. 그리고 시스템과 애플리케이션에 대한 트레이싱 기능과 하드웨어 모니터링과 드라이브 검증 등의 서비스를 통해 안정적인 컴퓨팅 환경을 지원한다. 여기에 좀 더자유로운 CPU 스케줄링과 디스크 입출력, GPU 성능이 개선될 것으로 보인다.
|