C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[21693] Windows 8 정식버전 출시와 4G/LTE 칩 장착된 Tablet PC
빌더(TWx) [builder] 5832 읽음    2012-08-27 01:05
Windows 8 정식버전이 나왔죠.(하드웨어 제조업체와 개발자들에게 먼저 제공됐고, 일반 사용자들도 조만간에 사용 가능)
향후 모바일 시장에 큰 변화가 예고되고 있는 가운데, 관심있는 분들이 있을 것 같아서 몇자 적어 봅니다.

Windows 8을 하드웨어 기준의 플렛폼으로 나눠서 보면...

모바일 대상의 ARM 프로세서가 장착된 하드웨어를 타겟으로 하는 'Windows 8 RT'가 있고...
Intel CPU가 장착된 일반 PC(Tablet PC포함)를 대상으로 하는 'Windows 8'... 이렇게 두가지 플렛폼으로 나눠 볼수 있습니다.

ARM 프로세서는 Intel CPU에 비해서 퍼포먼스가 느리죠 (대신 값이 저렴). ARM 프로세서가 장착되는 하드웨어에는...
'Windows 8'의 축소 판이라고 볼수 있는 'Windows 8 RT' 가 사용되게 됩니다.

여기서 RT란 기존의 Win32 API 대체 버전으로 윈도우즈 8에서 새로 도입된 API 레이어를 말하는데..C++ COM 모델로 구현되어
있고 .NET 4.5 프레임웍 런타임 환경을 구성하는 Low Layer  배이스 파트가 되기도 하는데요...

'Windows 8 RT' 가 장착되는 ARM 기종에서는 기존의 윈도우즈 애플리케이션은 쓸 수 없고, Metro Style 의 애플리케이션 만
사용이 가능 합니다. ('Windows 8'에서는 RT 레이어와 기존의 Win32 API 레이어도 그대로 다 지원하기 때문에 이런 제한이 없음)

퀄컴 사에서는 이미 스마트폰과 PC를 모두 지원하는 '4G/LTE' 칩셋을 개발해서, 'Windows 8'을 탑재한 시스템에서 테스트를 완료
한 상태고...

'4G/LTE'칩이 장착된 인텔 CPU 기반의 Tablet PC 를 갖고 있으면, 전화를 걸기 위해서 별도로 스마트 폰을 사용할 필요도 없고...
외부에 나가서도 무선으로 인터넷 검색하고, 컴파일러 돌려가면서 프로그램 짤수도 있고해서, 제품이 나오면 하나 사볼 생각 입니다.

비쥬얼 스튜디오 개발환경이 워낙 잘 만들어져 있어서 안드로이드나 iPad 쪽 보다는 프로그램 개발하기가 더 편하기도 하고요.
(Visual Studio와 Blend를 이용하면 Metro Style 애플리케이션 만들기가 거의 거져  먹기 수준)


참고로...

RAD XE3 에서의 Metro 스타일 애플리케이션은...
TForm 클래스를 이용해서 캡션바 안나오게 하고, Metro Application에서 디폴트로 사용하는 블랙계통 컬러를 배경색으로 사용해서
메인 폼 화면 모양을 마치... Metro Style 애플리케이션인 것 처럼 보이게 하는 구조 일 뿐... 키를 인증받고 Metro Style Application
의 Context 로 실행되는 실제적인 Pure Metro Application 이 아닙니다. (메인 프레임 화면 모양만 Metro Style App 처럼 보이게
하는 기존의 Win32 애플리케이션 그대로 임)


...




PS) 댓글단 분들에 대한 답글로 몇자 추가합니다.


'Windows 8 RT'는 펌웨어로 넣어져서 엔드 유져들에게 제공되기 때문에 이쪽 관련 업체에 관여하고 있는 한정된 개발자들이나
접해 볼수 있을 뿐, 인스톨 CD로 자신이 직접 설치 할수 있는 'Windows 8'과는 달리 일반 사용자들이 직접 접해 볼수있는 건 아니
고요. 프로그램 개발자들도 프레임웍 이용해서 프로그램 짜면 그만이니까 'Windows 8'이냐 'Windows 8 RT'냐를 갖고 구분할
필요가 없을 겁니다.


여기서 관심가져 볼 필요가 있는 부분은...

기존의 Win32 API 대체 버전으로 '윈도우즈 8'에서 새로 도입된 'WinRT' 인데요....
어떻게 보면 크게 진일보된 새로운 획기적인 인터페이스 구조라고 할수 있습니다.

표면적으로 보면...
함수, 타입, 전달되는 파라미터 등 메타데이타 형식의 정보가 제공된다는 점에서는 .NET 어셈블리 모듈 처럼 보이기도 하지만..
중간언어인 IL을 이용하는 .NET과는 달리... WinRT (Windows RunTime)는 C++ COM으로 구현되어 있는 Native Code 레이어
입니다.


그러나 ...

WinRT가 C++ COM 모델로 구현되어 있다고 해서.. 이를 사용하는 프로그래머 입장에서 볼 때...
기존의 C++ COM 프로그래밍 방식 처럼 IDL로 지져분하게 인터페이스를 기술하고,  헤더파일들 줄줄이 달고 다녀야 하는 그런
너덜한 구조는 또 아닙니다. (ATL Template 코딩박식 처럼 고전 방식으로 코딩하는 것도 가능하지만 그건 별론으로 하고)

.NET 어셈블리 모듈 처럼 메타데이타 정보가 제공되기 때문에...
프로그램에서 WinRT 를 사용할 때... 마치 .NET을 다루고 있다는 착각이 들정도로 편리하게 사용할 수 있고...
그렇지만 생성되는 코드가 중간 언어인 IL 이 아닌,.. Native Code라는 점에서는 근본적으로 다르죠.

프로그램 개발할 때...
C#, F#, VB 같은 랭귀지를 이용해서 기존의 .NET 헝태로 개발 할 수도 있고, WinRT를 직접 사용할 수도 있는데요.
WinRT의 새로운 인터페이스 구조. 그리고 C++ 컴파일러가 어떤 식으로 관여해서 COM 객체의 Reference 카운터를 유지하는
코드를 자동으로 생성하는지 그런 부분에 대해서는.. 세부적으로 알아 두는 게 좋겠죠.


아직 아리송해 하는 분들이 있을지도 모르겠는데요...

간단하게 보면...

''WinRT 는... .기존 Win32 API 레이어의 대체 역할도 하고 .NET의 Native 버전 프레임웍 역할을 하기도 한다' 라고..

쉽게 생각하면 됩니다.



...
망치 [mangchy]   2012-08-27 08:09 X
빠른 정보 감사합니다. RT버젼이 기존 윈도우하고 틀리군요...위에서 말씀하시는 비쥬얼 스튜디오는 2012버젼이겠군요..
이렇게 OS가 다양하게 가니 개발자들이 혼란이 있을수도 있겠지만 일거리도 많아지고 좋네요...^^&
Lyn [tohnokanna]   2012-08-27 10:49 X
이런... 델XE3 샤킹이었어?
개발자임 [abcde12345]   2012-08-31 07:46 X
그렇다면 WinRT 기반에서 프로그래밍 하는 것은 C++코드로 프로그램을 짜서 만들어도 WinRT가 돌아가는 어느 단말에서나(인텔이든, 퀄컴이든) 잘 돌아 간다는 말씀이신지요??

초보 개발자 입장에서는 사실 요부분이 많이 중요하거든요. C++로 개발해도 어디서나 쓸수 있는것인지...
빌더(TWx) [builder]   2012-08-31 09:40 X
퀄컴사는 스마트폰 등에 사용되는 무선 통신 칩을 만드는 회사일 뿐이고요. Windows 8 이 지원되는 경우는 Intel 과 ARM 프로세서 쪽 입니다.
WinRT는 네이티브 코드이기 때문에 컴파일 할 때 타겟을 선택해서 컴파일 하게 됩니다.(비쥬얼 스튜디오 C++ 컴파일러에서 Intel, ARM 타겟 선택)

C++ COM 프로그래밍에 경험이 있으면 기존의 고전적인 방식으로 코딩하고 컴파일 해도 되지만 본문에서 언급한 대로 메타데이타 정보가 제공되고
컴파일러가 알아서 COM 객체의 Reference Count를 유지하는 코드를 자동으로 생성해주기 때문에 번거롭게 고전적인 방식으로 프로그래밍 할 필요 없이 .NET 처럼 편리하게 사용할 수 있습니다.

WinRT가 지원되는 Windows 8 이 장착된 단말기라면 CPU에 상관 없이 컴파일만 타겟에 맞게 해주면 되고요.
빌더(TWx) [builder]   2012-08-31 19:21 X
참고로...

WinRT 는 위와 같이 C++ COM 의 확장셋이기도 하고. C#, VB 등을 이용하는 .NET 어셈블리 모듈에서 WinRT 모듈을 (사용자가 WinRT로 만든
커스텀 콘트롤 포함) .. 마치 기존의 .net 어셈블리 모듈인 것 처럼 편리하게 사용할 수도 있습니다.

그러나 이와 같은 편리한 사용이 가능하려면...

메타데이타 테이블의 정보를 파싱 가능해야 하고, 네이티브 코드인 WinRT와 .net 어셈블리 간에 ABI 바운드리를 연계해주는 코드..
그리고 COM 객체의 레퍼런스 카운트를 자동으로 관리하는 코드가 바이너리를 생성할 때 자동으로 에미트 될 수 있도록...
C++ 네이티브 컴파일러의 기능이 확장되어 있어야 합니다.

엠바카데로는 C++ 11 랭귀지 스펙지원을 위한 clang/LLVM 작업 마저도 아직 끝내놓고 있지 못하고 있는 것으로 보이고...
WinRT 를 지원하기 위해선  C++ 11 랭귀지 스펙 이외에... 별도로 네이티브 컴파일러의 기능을 추가로 더 확장해야 하는데...

엠바카데로가 WinRT를 지원하는 네이티브 컴파일러를 과연 언제 쯤이나 내놓을 수 있을지???  ( 뭐 별로 큰 기대는 안합니다 --; )


+ -

관련 글 리스트
21693 Windows 8 정식버전 출시와 4G/LTE 칩 장착된 Tablet PC 빌더(TWx) 5832 2012/08/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.