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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[14809] Re: x-box 360의 커널, 그리고 win32 커널과 그 이복형제들...
김호광 [testcode] 4200 읽음    2008-07-13 04:58
퀴즈를 내고 -;; 제가 제정신이 -;;;

pc / 인텔 기반이였던 x-box의 커널은 익히 아시다시피 드림 캐스트에서 잘 써먹었던 드래곤 커널이라고 dos 7에 win32가 구동되는 모양새였습니다. 혹자는 컴팩트 win 2000 커널이라고 하는데 후기에 패치되면서 thread 문제와 크래킹 문제로 인하여 win2000 커널 부분이 많이 들어갔습니다.

x-box 코딩의 시작은

in main()
{

return 0;
};

였습니다. 재미있게도 WinMain()이 아니였습니다.

x-box는 블루스크린도 많은 게임기였습니다. -;;; 리눅스를 깔아 클러스터링 슈퍼컴을 만든 사람도 있었습니다. 저렴하니 뭐 ^^

하두 크래킹이 많아서 결국에는 win2000 커널을 추가하고 많은 기능을 도려냈다고 합니다. 그래서 나중에는 호환성 문제도 나타냈습니다. ㅠㅠ 나중에는 Win 2000 커널 서브 브런치 기반이라고 할 정도로 프로젝트가 달라졌습니다.

x-box 360 의 하드웨어는 다음과 같습니다.

3 symmetrical cores running at 3.2GHz each
2 hardware threads per core; 6 hardware threads total
1 VMX-128 vector unit per core; 3 total
128 VMX-128 registers per hardware thread
1MB L2 cache

PowerPC의 3 코어 판입니다.

CPU의 부동 소수점은 115.2 GFLOPS 로 펜3 기반의 X - Box 360 1.466 GFLOPS 보다 극적으로 빨라졌습니다. IO까지 고려하면 약 100배 빨라진 것입니다.

하도 인텔 기반에서 크래킹 당하고, 펜 3 기반이라 가격 인하가 힘들어 엄청난 적자를 봤던 플랫폼이 x-box입니다. 그래서 결국 임베디드 사업에 강한 IBM을 끌어들였습니다. 고려되었던 이유는 다음과 같습니다.

1. 임베디드 환경에 검증된 하드웨어야 한다. 초박형 출시 장시간 구동이 가능해야 한다.
2. visual c++/ mfc가 이식 가능한 플랫폼이어야 한다.
3. win32 기반 커널이 이식 가능해야 한다.

PowerPC는 잘 모르시겠지만 win 2000 이후 커널들이 지원하는 하드웨어 입니다. 한때는 선스팍도 포팅된 적도 있었습니다. 컴파일러 옵션에서 PPC를 찾아보시면 됩니다. wince 프로그래밍을 했다면 컴파일 옵션에서 찾으실 수 있습니다.

X-BOX에서 하도 많이 커널이 뜯겼기 때문에 360 팀은 아예 cpu를 갈아버리고 생소한 하드웨어로 전향합니다. 하지만 소니처럼 CELL 프로세서 같이 특이하고 알 수 없는 존재로 간 것이 아니기 때문에 역시 리눅스가 인스톨되는 비운을 맞았습니다.

요 상황에서 360 커널은 win 2000 커널 중에서 5~10% 정도의 일치를 보입니다. 이런 불일치와 CPU 차이로 인해서 360은 그 전 버전 X-BoX와 달리 Windows 2000 혹은 그 이상에서 디버깅 / 애뮬레이트 되지 않습니다.

아이러니하게도 360의 게임 테스팅은 PowerPC 기반의 맥킨토시에서 합니다. -;; 애뮬레이터가 거기서만 돕니다.  경쟁사 하드웨어와 운영체제에서 도는 아이러니가 발생한 것입니다.

WinCE 컴파일 / 디버깅에서 win32 / ppc(파워피씨), mips, arm을 선택하여 컴파일할 수 있었으며, 자신의 윈도우 환경에서 볼 수 있었지만 360의 커널은 극단적으로 변형되어 안되게 된 것이지요 -;;

삭제된 부분

1. x86 커널 부분 삭제
2. 도스 애뮬레이트 부분 삭제
3. 구 directx 버그 애뮬레이트 부분 삭제 (이식을 위해 버그도 애뮬레이트 했다는...)
4. GDI 삭제
5. os/2, 유닉스(posix) 삭제


추가 / 보존

1. Win32 api 애뮬레이트 부분 유지
2. 32비트 메모리 매니저 / 애뮬레이트
3. 닷넷 프레임워크 추가
4. directx 재설계, 10 버전 지원
5. 미디어 플레이어 재설계 / 레거시 삭제
6. 익스플로어 6
7. activex의 제한적 지원 (보안 문제로)



결국 360에 이르러서는 win 2000 커널에서 남아 있는 레거시, 비효율적인 부분이 싹 날아가 매우 안정적인 커널이 되었습니다. 삼돌이 코어 커널 개발팀에서 명작을 만들어 낸 것입니다.

그 이후 나온 소리가 GDI 버리고 directx 10 기반의 RIA로 간다는 둥, 별이 별 소리가 잠시 나왔던 것이 삼돌이 프로젝트에 감명 받은 MS 수뇌부 / 기술팀의 이야기였던 것입니다.

외부적으로 알려진 360의 커널 버전은 2.0.6690.0이며, 내부 커널 버전은 5.0xx대로 나가고 있습니다.

프로젝트 역시 win 2000 커널 팀과 다른 길을 걸어가고 있으며 directx 팀, 닷넷 팀과의 연계와 호환성 부분을 두고 있어서 상당히 변형된 win 2000 커널입니다. (임프님이 좋아하실만한 안정성과 용량, 최적화 요소가 있죠,)

익스플로어, 미디어 플레이어, Live, directx, 기본 driver까지 포함해서 12MB가 안될 정도로 컴팩트합니다. 물론 시작 버튼과 태스크 메니저 형태로도 띄울 수 있다는 이야기도 있습니다. ㅎㅎ

X-BOX 360의 커널의 결론을 이야기 드리면 win 2000 커널 기반이지만 90~95%를 날리고 변형한 버전이라고 할 수 있습니다.

참고 -
http://en.wikipedia.org/wiki/Windows_NT
http://www.windowsfordevices.com/news/NS3988467635.html


드롭된 커널 프로젝트

Cairo (windows 9x 기반 분산 컴퓨팅 프로젝트 및 기타 등등, 너무 느린 분산 시스템과 불안정성으로 물 먹은 프로젝트)

Nashville (windows 96, 97이 될뻔했으나 OSR 2.5 혹은 98에 통합된 프로젝트  , asp, ie 3, activex 등의 저주의 기원이 되었다. directx 3 기반의 동영상 플레이어 회사를 인수하여 미디어 플레이어로 출시하고, 이로 인해 두고 두고 directx 호환성과 에러, 하위 호환성 문제에 시달리다가 directx 10에서 레거시를 제거했다. 이로 인한 동영상 관련 개발자 혹은 연관자들은 개피를 보는 상황이...)

Neptune (스샷 : http://upload.wikimedia.org/wikipedia/en/thumb/c/cd/Windows_Neptune_Desktop.png/290px-Windows_Neptune_Desktop.png, 윈도우 XP 보안센터, 파이어월에 기능통합, 99년 시작된 프로젝트, win 2000 기반 차기 프로젝트, 도스 커널 기반 개인 유저용)

- 요 언저리에 실버라이트(silver light)라는 플래시 유사 프로젝트 팀도 생겨났다. 처음에는 웹 기반이 아니였다고 한다. 차세대 GDI 프로젝트였다고 한다.

Odyssey (win2000 기반 차기 프로젝트 99년 시작된 커널 프로젝트로 넵튠 팀과 오디세이 팀은 XP 팀으로 통합되는 불운을 맞았다. 극심한 조직 이탈과 파벌로 인해서  망가졌다고 들었다. 비지니스 용 프로젝트였으나 넵튠과 통합되면서 커널이 복잡해졌다. 그래서 XP의 경우 최악의 플랫폼 빌드를 자랑하게 되엇다고 한다. 각 언어권, 각 홈, 프로 등에서 많은 구조적 차이와 병목, 버그로 많은 지탄을 받았다. 각 버전별로 GDI가 미묘하가 따로 놀고 일부 기능도 다르게 구동된다.)


드롭되지 않았지만 정체 모호한 것.

Windows Fundamentals for Legacy PCs (" WinFLP ")  - 씬 클라인트입니다. 기반은 Windows XP Embedded입니다. NET Framework를 밀 때 나와서 닷넷 1.1이 설치 됩니다. 프로젝트 네임은 아이거( Eiger)와  Mönch를 사용했습니다. 닷넷 프레임워크를 밀자라는 취지에서 사용했지만, 어느새 저사양에서도 xp를 사용하고 싶어요 프로젝트로 돌변했다. 100달러 PC 사건으로 인해서 MS가 이것 기반으로 무언가를 내놨습니다. -;;

동영상 : http://www.mgoon.com/view.htm?id=1383413

저주받은  windows 홈 서버...

windows 홈 서버는 Windows 2003 sp2 기반입니다. 도대체 왜 2003 기반에 홈서버가 나왔냐라는 점인데 이 놈은 비스타 다음으로 나온 것입니다. 결론적으로 홈 서버 프로젝트  / 커널 팀이 존재하고 있는 것입니다. 2003 sp2 기반이면서 세부에서 차이가 많이 나고 있습니다. 차기 비스타 / 2008 기반 홈서버 호환성에 큰 문제점을 드러낸 프로젝트입니다. 일각에서는 비스타를 넘어서 윈도우 7의 장기 호환성 부재를 만들 떡잎이라 칭하고 있습니다.  (마치 내슈빌 처럼)서버에서 directx 10을 사용하기도 합니다. ㅠㅠ


혼돈스러운 XP 커널 제품군 (서버 제외)

Home, Professional, 64-bit Edition ( Itanium ), Media Center (original, 2003, 2004 & 2005), Tablet PC (original and 2005), Starter, Embedded, Home N, Professional N

그리고 최근 Professional x64 Edition

10가지... ㅠㅠ

또 하나 gnu의 도전... win32 호환 OS 개발 프로젝트

http://www.reactos.org/ko/index.html

testcode~



김진우 님이 쓰신 글 :
: 헐 저거 사실이면 미도리가 윈도우를 장악하면 c/c++언어는 슬슬 사장되는건가요?
:
: 근데 저런언어로 os짜면 겁나 느릴거 같은데요 ㅡ.ㅡ;
:
: 무엇보다도 프로젝트네임이 미도리ㅡ.ㅡ 이거 일본어로 녹색이라는 뜻인데 순간 "미도리의 나날"이라는 애니가 생각났습니다.
:
: --------------------------------------------------------------------------------------------------
:
:
: [단독] 'Windows 7' 차기작? 'Windows 8 Midori'
:
:
:
: MS포르투갈 지사의 스태프에게 마이크로소프트사가 Windows 7의 후계자, 그리고 후계자의 후계자가 될 OS를 개발중이라는 정보를 입수했습니다. 이 프로젝트의 이름은 'Windows Codename Midori'이며, 윈도우즈를 완전히 재설계하는 것에 초점이 맞추어져 있습니다. NT커널과의 결별을 뜻하는 것이겠죠? 어쨌든 Windows Midori는 더 이상 C/C++로 프로그래밍 되지 않을 것이며 대신 C#,F#등의 언어가 짬뽕되어 코딩될 것이라고 합니다.
:
: 이런 큰 변경점 때문에 'Windows Midori'는 우리가 익숙해져 있던 윈도우즈의 모습과는 전혀 다를것입니다. 프로젝트 윈도우즈 미도리의 초안은 여러가지 코드가 커널에 혼합되어 있는 'Singularity' 플랫폼에 기반하고 있습니다.
:

:
: 현재 'Singularity' 플랫폼은 1.0 버전이 나온 상태로 알고 있으며(코드네임 Redmond에서 나온 말은 아닙니다.), 이 'Singularity'플랫폼은 윈도우즈 미도리를 위한 일종의 큰 실험인 셈입니다. 참고로 이 'Windows Midori'와 'Singularity' 플랫폼은 MS연구팀인 프로젝트 코드네임 'Global CHESS' 연구팀에서 개발한 것입니다.
:
:
: 프로젝트 코드네임 'Global CHESS'는 멀티스레드를 사용하는 소프트웨어의 오류를 찾기 위한 자동화 툴입니다.
:
: 결론적으로 MS는 'Windows 7'과 'Windows Midori' 그리고 'Singularity'까지 현재 3개의 OS프로젝트를 가동중입니다.  뭐 나쁘진 않습니다. 왜냐하면 'Windows 7'의 개발과는 별개로 이미 'Windows Midori' 프로젝트가 가동중이기 때문입니다. 앞에서 이미 말했듯이, 'Windows 7'은 NT커널로 제작되는 마지막 운영체제가 될 것입니다. 그리고 'Windows 7'의 차기작인 '윈도우즈 미도리'는 MinWin 커널이 되겠죠.

+ -

관련 글 리스트
14783 차차기 윈도우 프로젝트 네임 미도리? 김진우 4375 2008/07/09
14809     Re: x-box 360의 커널, 그리고 win32 커널과 그 이복형제들... 김호광 4200 2008/07/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.