본문 바로가기

Papyrus/Dizzy Report

티맥스OS: 눈 먼 돈을 위한 노력은 성실하다

이쯤되면 뭐라고 불러야 하는가? 거짓말도 끝없이 하면 사람들이 믿는다는 것은 사기꾼들의 원칙이다. 티맥스OS는 이름만 바꾼 티맥스 윈도우이고, 티맥스 윈도우는 리눅스에 WINE을 올려 간단한 프로그램 몇 개 정도만 기어가는 수준으로 만든 조잡한 물건이었다. 티맥스가 쓴 시간과 돈이 완전히 무가치하다는 것은 아니지만, 이들이 하는 일은 단언컨데 OS와 아무런 상관이 없다. 잘 봐줘야 쓰레기 같은 윈도우 매니저일 뿐이다.


결론부터 말하자면, 이 사기꾼 집단이 OS를 제작한다고 하는 것은, 지적 능력이 저능하거나 애국팔이가 먹히는 사람들을 현혹하기 위한 것이다. 특히, 이들의 주력 사업인 데이터베이스 솔루션 시장에 통제 불가능한 OS라 부르고 싶은 플랫폼을 하나 더 얹어서 타 업체의 진입을 막기 위한 것이 아닐까 싶다. 혹시 눈 먼 돈을 투자 받을 수 있다면 그것은 덤이다.


운영체제를 만든다는 것은, 근본적으로 시스템콜을 설계하는 것에서부터 시작한다. 운영체제는 하드웨어를 감추고 추상화하여 사용자 편의를 제공하는 것이 첫번째 임무다. 이 하드웨어를 다루는 방식을 정의하는 것이 시스템콜이며, 운영체제마다 다른 철학과 구현을 가진다. 운영체제의 커널(kernel)은 바로 여기서부터 시작한다. 따라서, 운영체제 사이에서 호환성을 보장 받으려면 이 시스템콜을 완벽하게 에뮬레이션하거나, 이미 정의되어 있는 인터페이스에 맞춰 운영체제를 구현해야 한다. 가상 머신은 하드웨어를 추상화하고 격리하여(이 기능은 하드웨어가 지원하거나, 호스트 소프트웨어가 제공해야 한다), 독립적인 소프트웨어를 구동할 수 있도록 한 것이다. 흔히 사용하는 에뮬레이터는, 타겟이 되는 기계의 명령어(instructions)를 호스트 머신에서 실행할 수 있도록 변환하는 과정이 필요하다. 얼마나 많은 명령어를 호스트 머신의 명령어로 제대로 변환했느냐가 에뮬레이터의 성능을 좌우한다. 티맥스OS는 여기서 어느 것에도 해당되지 않는다. 여전히 소스가 공개된 유닉스 호환 운영체제 커널을 사용하고 있고, 여전히 마개조한 WINE을 사용하고 있다. 운영체제 수준에서 개발했다고 주장할만한 것은 아무 것도 없다.


이번 발표에서는 티맥스OS의 아키텍처를 슬라이드 한 장으로 공개했는데, 이 슬라이드는 사실 중요한 부분이 의도적으로 생략되어 있다. 즉, 하드웨어 레이어와 티맥스OS 레이어 사이에 존재하는 유닉스 호환 커널의 존재를 의도적으로 생략한 것이다. 이들이 없다면 티맥스OS는 부팅조차 하지 못한다. 나중에 티맥스가 좀 더 대담해진다면, LILO나 GRUB을 적당히 뜯어 고쳐서 티맥스OS 부트 로더라고 주장할지도 모르겠다. 그러나 그것이 의미가 있는가? 독자 부트 로더를 제작한다고 하더라도, 그것이 로드하는 것은 티맥스OS 커널이 아니다.


티맥스OS가 윈도우 애플리케이션을 바이너리 차원에서 호환한다는 주장은 여전히 황당하다. 틀린 말은 아니지만 애초에 그것은 WINE의 능력에 달린 일이며, WINE은 이 모든 것을 진짜 에뮬레이션 하는 것이 아니라 이미 디스크에 존재하는 MS 윈도우의 바이너리를 사용한다. 즉, WINE은 윈도우 애플리케이션이 실행하는 시스템콜을 직접 처리하지 않고, 진짜 윈도우의 바이너리를 사용하여 요청 받은 시스템콜을 처리한다. 그리고 그 결과를 호스팅 환경에 맞춰 보여주는 것 뿐이다. 이것조차도 Win32 서브시스템의 폐쇄성과 특수성 때문에 한계가 명확하다. 즉, WINE은 상업용 제품에 쓸 수 없다. 더구나, MS 윈도우에서도 다른 개발 언어로 작성된 애플리케이션들의 ABI는 문제가 있었다. 이것이 완전히 해결된 것은 윈도우 10이 ABI 레이어를 추가했기 때문인데, 이것도 Universal Windows Platform 앱을 위한 것이지 레거시 윈도우 프로그램들을 위한 것이 아니다.


티맥스는 X 윈도우의 한계를 말하며 티맥스OS가 이것을 개선했다고 말했는데, 이것 또한 황당하다. 리눅스가 모든 유닉스를 의미하는 것은 아니지만, 편의상 유닉스 호환 운영체제들은 그냥 리눅스로 통칭하겠다. 현재 리눅스 진영에서 가장 설전이 많이 일어나고 있는 곳은 바로 그래픽스 지원 부분이며, 여러 차세대 X 프로젝트들이 경쟁하고 있다. 그러나, X 개발쪽은 그래픽스에 대한 커널쪽의 더 직접적인 지원을 요청하고 있으며, 커널쪽은 그것은 사용자 프로그램 쪽에서 처리해 할 일이라고 이야기하고 있다. 중요한 것은, 어느 쪽의 주장이 맞다고 하기 전에, 리눅스에서의 그래픽스 지원은 정치적, 기술적으로 대단히 꼬여 있는 부분이라는 점이다. 커널 개발쪽과 GPU 제작사들, 그리고 X 개발자들 사이에서 의견 통일조차 제대로 이루어지지 않는 마당에 X의 저성능을 탓하는 것이 무슨 의미가 있는가? 리누스 토발즈조차 GPU 드라이버 제작사의 폐쇄성에 짜증을 내는 마당에, 대체 어떻게 그래픽스 성능을 개선했다는 것인가? 티맥스OS는 X의 저성능을 탓하기 전에, 운영체제의 기본부터 생각해보는게 순서가 아니겠는가?


물론, 운영체제를 만들고자 한다면, 반드시 바닥에서부터 설계를 시작할 필요는 없다. 애플의 OS X은 넥스트스텝과 Mach 커널에 기반하고 있다. 안드로이드는 처음부터 리눅스 커널을 모바일 환경에 맞게 고쳐 사용했다. 그러나, 이들은 새로운 운영체제를 만들었다는 말은 하지 않았다. 앞뒤가 맞지 않는 주장을 하지도 않았다. 이리저리 욕을 먹는 삼성의 타이젠도 바닥부터 설계하지 않았다는 것을 그리 유쾌하게 생각하지 않을 뿐, 거짓말은 하지 않는다. 그러나, 티맥스가 하는 거짓말은 너무 혐오스럽다. 티맥스OS라는 것은 잘 봐줘야 커널에 의미 없는 엉터리 통로를 뚫어놓은, 유닉스 설계 철학을 정면으로 위배하는 버그덩어리 윈도우 매니저일 뿐이다.


그렇다면, 티맥스는 이 프로젝트에 왜 윈도우 호환성과 OS라는 단어를 강조하는가? 특정 X와 툴킷에 묶이는 제한적인 윈도우 매니저를 만들어봤자, 복잡한 사연이 많은 유닉스 X 시장을 생각해봤을 때 그것은 돈이 되지 않는다. 윈도우 호환성 문제도 마찬가지다. 오피스 문서 파일 차원의 호환이라면 굳이 마개조한 윈도우 에뮬레이터를 돌려서 MS 오피스를 실행하는 것보다, 안정적으로 개발되는 리브레 오피스를 사용하는 것이 더 낫다. 티맥스가 노리는 것은 정부의 눈 먼 돈이 아닌가? MS 오피스 구동 여부, 그리고 국산 OS 개발은 이를 위한 중요한 키워드다. 특히, OS라는 단어는 애국 마케팅에 혹하는 사람들에게 아주 효과적이다. 여기에 높으신 분들이 포함되지 않기를 바란다.