본문 바로가기

Papyrus/Dizzy Report

티맥스 윈도우: 이건 사기다

티맥스 윈도우의 실체는 지금도 오리무중이다. 대체 무엇을 구현했다는 것인지 알 수가 없다. 일반인들에게 희자되는 '뭐가 되는데요?'라는 말은 더 말이 안되는 것이다.

Win32 API는 근본적으로 시스템콜과 일반 사용자 API가 명확하게 구별되어 있지 않다. 윈도우가 커널과 프리젠테이션 모듈이 분리되어 작성되어 있기는 하지만, 서로가 완전히 독립적이지는 않다. 즉, 윈도우는 Win32, POSIX, OS/2 PM 서브 시스템을 포함하고 있고, POSIX와 OS/2 PM 서브 시스템은 없어도 큰 문제가 없지만 Win32 서브 시스템은 반드시 포함하고 있어야 한다.

즉, 화면에 어떤 것을 그리고자 한다면 GDI 관련 API를 모두 자체 구현해야 하며, 파일 관련 서비스를 처리하기 위해서는 user32.dll이 구현하고 있는 관련 API를 구현해야 한다. 또, 그 이전에 근본적으로 kernel32.dll이 포함하고 있는 API도 구현해야 한다. 더구나, 이제는 이들이 대부분의 API를 포함하고 있던 시절도 아니다. 최종적으로 화면에 어떤 것을 보여주었다면, 최소한 윈도우 1.0 때부터 가지고 있었던 API들 대부분은 구현했어야 한다. 오리지널 계산기나 노트패드라도 돌아가려면 말이다. 사실, XP에 포함된 노트패드나 계산기조차 약간 개량된 Win32 API들을 사용하기 때문에 그대로 돌아갈지도 의문이다. 윈도우 프리젠테이션 엔진이 GDI에서 GDI+, 벡터 기반의 WPF 프리젠테이션 엔진으로 바뀌는 마당에 대체 GDI 기반 API를 모두 구현한다고 하더라도 무슨 의미가 있다는 말인가. WINE조차 이런 방식으로는 제작되지 않았다. 그러나, 완전한 운영체제를 표방하는 티맥스 윈도우는 이것을 어떤 방식으로 해냈다는 것인가?

클리핑 영역을 계산하고, GDI 오브젝트를 할당하고 해제하는 것에서부터 그 수많은 GDI API들을, 그런 것이 모두 버그 없이 구현되었다는 말인가? 화면 갱신 메세지는 가장 많이 발생하는 윈도우 메세지 중 하나인데, 그것을 버그 없이 구현했다고 하면, 그게 더 신기한 노릇이다. 그리고 디바이스를 GDI로 추상화 해주는 드라이버들은 어떻게 구현된 것인가? 표준화되어 있는 비디오 디스플레이 표준은 640 * 480 해상도에 256컬러 정도이며, 그 이상의 고해상도는 벤더마다 구현이 다르다. 그런데, 대체 어떻게 그것을 해낸 것인가? 350명 안에 리버스 엔지니어링의 대가가 대체 몇 명이나 있길래? 그리고 운영체제라고 표방했다면 최소한 입출력 모델이라도 말해주는게 좋지 않겠는가? 듣기로는 리눅스와 윈도우 바이너리를 동시에 호환 가능하게 만든다고 하는데, 모든 것을 바이트 스트림으로 은유하는 모델을 가진 유닉스와 윈도우 드라이버 모델을 어떻게 공존하게 할 수 있는지 알고 싶다. 대체 어떤 기반으로 작성되어 있는건가?

인터페이스가 무척 간단하고, 시스템콜이 그렇게 많지 않은 유닉스라면 몰라도 블랙박스화 되어 있는 윈도우와 호환 가능한 독자 운영체제를 만든다는 것은 사기이다. 고작 350명으로 그런 것이 가능하다고 생각했다면, 그 사람은 정말로 미친 것이다.

화면에 뭐라도 나타났다면 이미 상당수의 GDI 관련 API와 WinObj를 구현했다는 말인데, 이게 가능한가? 되고 안되고가 중요한게 아니라, 화면에 Win32 서브 시스템이 구현되어 나타났다는게 더 의문이다. 그것에 대해서는 한 마디 말도 없고 그냥 데모만 보여주는 이것은 거대한 사기라고 밖에 할 말이 없다. 커널과 Win32 서브 시스템이 동작하여 화면에 무엇을 보여주는 것에서 더 나아가 느리지만 응용 프로그램까지 호환 가능하다고? 우와? 가능한가? 그걸 다 구현한건가? MSDN과 리버스 엔지니어링에 의존해서? 차라리 화면에 뭐가 나타나는게 아닌, 설계 상의 레이어층이라도 보여주었다면 훨씬 더 그럴 듯 하겠다. 그 정도로 출중한 실력이라면, 당장 마이크로소프트 윈도우 개발팀에서 티맥스 개발 인력을 모두 스카웃해야 할 것이다. VMS와 NT의 아버지 데이비드 커틀러가 울고 갈 실력이다.

윈도우 1.0조차 수백개의 API를 가진다. 그리고, 그것조차 구현이 감추어져 있으며, 이것들을 리버스 엔지니어링과 MSDN에 의존해 독자 구현했다는 것은 말도 되지 않는다. 비스타에서 추가된 새로운 API만 7400개를 헤아린다. 대체 어떤 방식으로 Win32 프로그램들을 호환하겠다는건지, 그것조차도 밝히지 않으면서 3개월 안에 베타를 출시한다? 당신들 미쳤나?


티맥스는 개소리는 그만 집어치우고, 정확한 사실을 밝혀라. 먼저 티맥스 윈도우가 대체 무엇인지, 어디까지 호환성이 보장되는 것인지, 어떻게 구현할 것인지 등에 대한 상세한 정보를 공개하라. 그래도 회의적인데, 이런 식의 언론 플레이는 거대한 사기라는 하나의 사실만을 암시할 뿐이다.