데이비드 커틀러를 아시나요?

@codemaru · June 29, 2009 · 6 min read

               md 0

“빌게이츠의 야망을 가진 남자들”. 책 제목만 보면 무슨 삼류 통속 소설 같은 삘이 확 느껴지는 책이죠. 원서 제목은 “Show-stopper!: Breakneck Race to Create Windows NT and the Next Generation at Microsoft”입니다. 정말 왜 저렇게 통속적으로 제목을 바꿨는지 도저히 이해할 수 없습니다. 엉뚱한 책 제목 베스트 10 정도에는 뽑힐 법한 번역서 제목이죠. 참고로 쇼스토퍼란 NT 개발팀이 NT를 중단시킬 만큼 치명적인 버그를 지칭하는 말입니다.

이 책은 Windows NT의 개발 스토리를 담고 있습니다. 커틀러 팀이 마이크로소프트에 합류하게 된 부분부터 Windows NT의 초기 버전 릴리즈 까지의 내용이죠. Windows NT는 1989년 부터 본격적으로 개발이 시작되어서 1993년에 첫 릴리즈가 배포됩니다.  근 5년간 개발된 것이죠. NT는 실로 방대한 프로젝트 였습니다. 첫 릴리즈 버전의 코드가 530만 라인이 넘었으며, 참여한 개발자만 거의 300명에 육박했습니다. 좀 놀라운 프로젝트죠.

이 책의 스토리 중심에 데이비드 커틀러가 있습니다. 데이비드 커틀러는 NT의 아버지로 불리는 사람으로 실제로 NT의 코어 아키텍처부터 운영 체제의 여러 부분을 설계, 코딩 했습니다. 커틀러는 마이크로소프트로 오기 전 디지털에서 VMS라는 운영체제를 성공적으로 개발했던 적이 있었죠. 사실 운영체제 개발 쪽에 있어서는 전설적인 인물입니다. 상용 운영체제를 세 번 넘게 성공적으로 개발한 사람은 전 세계를 통틀어서 딱 한 명 뿐인데,  그 사람이 바로 데이비드 커틀러죠.

NT 프로젝트 진행 과정을 보면서 가장 놀라운 점은 저렇게 거대 괴물 같은 아웃풋이 결국은 나왔다는 점 입니다. 정말 우여곡절도 많고 사람들이 좌절하는 시간도 많았습니다. 정치적인 이슈 사항도 많았죠. 하지만 결국 운영체제는 릴리즈가 됩니다. 소프트웨어 시간에서 5년이란 시간이 길지 않은 시간이고, 운영체제란 놈은 실로 괴물같은 놈임을 가만할때 커틀러 팀은 대단하다고 밖에 말할 수 없습니다. 그렇게 많은 장애물들이 있음에도 멋진 운영체제가 나올 수 있었던 건 커틀러 자신은 정확하게 무엇을 어떻게 만들어야 할지 알고 있었기 때문이 아닐까란 생각이 들었습니다.

두 번째로 놀라운 점은 커틀러는 소신을 굽히지 않는 엔지니어 였다는 점 입니다. 커틀러가 설계한 초창기 NT 커널은 마이크로 커널의 특징을 많이 가지고 있었습니다. 안정성이 높은 대신 느리고 컸죠. 게이츠는 이 설계 방식에 대해서 꾸준히 의문을 제기합니다. 하지만 커틀러는 안정성이 더 중요하다는 자신의 뜻을 굽히지 않습니다. 성능은 자신의 코딩 테크닉을 통해서 극복할 수 있다고 주장했죠. 그리고 결국 설계를 크게 변경하지 않는 선에서 운영체제 개발을 끝냈습니다. 지금의 NT 커널은 하이브리드 커널로 분류됩니다. 마이크로 커널과 모놀리틱 커널의 특징을 비슷하게 가지고 있기 때문이죠. 그게 커틀러가 말한 테크닉인지도 모르겠네요.

89년도 NT가 개발되기 시작한 시점부터 최근 윈도우 7이 나오기 까지 근 20년 가까운 세월이 흘렀습니다. 재미있는 사실은 그 때 커틀러가 작성한 코드가 여전히 윈도우 7에 포함되어 있다는 사실입니다. 책의 주요 인물들이 작성한 코드들이 아직도 운영체제 속에 살아있는 것이죠. 이 책을 보고 그 코드들을 다시 들여다보니 그 때 그 사람들의 땀방울이 느껴지는 듯 하는군요. 엔지니어로써 이보다 더 뿌듯한 일이 있을까요? ㅎ~ 20년이란 세월을 버티는 코드를 만든다는 일… 흠~

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중