본문 바로가기

현장속으로/세미나

윈도우 블루스크린 안 뜨게 하려는 개발자들의 노력

지난 1 24일부터 1주일 간 시애틀 마이크로소프트 본사에서 열린 스물두 번째 ‘IFS Plugfest’에 다녀왔다. ‘IFS’‘Installable File System’의 머릿글자이다. 이름에서 유추할 수 있듯이 다양한 회사의 필터 드라이버 팀이 자사의 솔루션을 가지고 와서 MS를 비롯해 각 업체 간에 상호운용성을 검증해 보는 자리이다. ‘fest’로 끝나는–예를 들면 독일 맥주 축제 옥토버페스트(Oktoberfest)와 같은 활기 넘치는 이벤트와 다르게 아주 조용하고 진지하게 진행되는 이벤트이다.

각 회사 별로 테스트 장비가 할당되고, 회사 별로 테스트 일정이 짜여 있다. 우리 팀은 V3 Lite에 새롭게 들어갈 행위 모니터링 드라이버와 V3 파일 필터 드라이버, 디스크 필터 드라이버 등을 테스트했다.

 

Plugfest가 열리는 대회의실. 앞뒤좌우 벽면에 MS 엔지니어가 상주하여 실시간으로 지원해준다.

 

그런데 왜 드라이버 팀들이 한데 모여서, 그것도 본사에 모여서 테스트를 하는 걸까? 그 이유는 프로세스 별로 격리되어 실행되는 다른 프로그램과 달리 드라이버는 커널 공간에서 모두 함께 실행되기 때문이다.

 

다음 그림을 보면 프로세스는 각기 고유한 공간에서 실행되고 드라이버는 모두 하나의 공간에서 서로 얽혀서 실행되는 것을 알 수 있다. 모두 하나의 공간에 모여서 실행되다 보니 어떤 문제가 일어났을 때 누구의 잘못인지 알기도 어렵고 고치기도 어렵다.

 

게다가 커널 공간에서 발생하는 오류는 즉시 BSOD(blue screen of death, 블루스크린)로 나타나고 대부분의 사람들은 윈도우 운영체제를 탓한다. MS로서는 상당히 억울했을 것이고, 그 해결 방법으로 Plugfest가 시작되었을 거라 추측된다.

 

*잠깐 용어 설명 - BSOD

마이크로소프트사의 윈도우 시스템에서 치명적인 시스템 오류로부터 복구될 수 없을 때 내보내는 파란 화면. 에러 번호, 드라이버, 스택 상태 등의 정보가 표시되며, 재부팅한 후 원인을 찾을 수밖에 없어, 공포의 파란 화면으로도 불린다.

 
드라이버 개발자와 솔루션을 한 곳에 모아 놓고 서로 잘 돌아가는지 테스트해보고, MS사의 엔지니어가 현장에서 실시간으로 기술지원을 해서 문제를 조기에 해결하고자 한 것이 성과가 좋았던 것 같다. 벌써 10년째이니. 안철수연구소도 이번에 꽤 쏠쏠한 성과를 얻었다. 사내에선 발견되지 않던 버그를 거의 하루에 하나 꼴로 잡았고 MS 엔지니어로부터 속 시원한 대답도 들을 수 있었다.

 

 

애플리케이션과 드라이버의 차이. 프로세스 단위로 실행되는 애플리케이션과 달리 드라이버는 한데 뭉쳐서 동작한다. 따라서, 타사 프로그램과 충돌할 가능성이 훨씬 높다. 문서화하지 않은 방법도 서슴지 않고 쓰는 보안 프로그램들끼리는 더 빈번히 충돌할 것이다.

 

Plugfest는 매일 오전 9시에 시작해서 저녁 6시에 끝난다. 하루에 2~32시간씩 타사와 상호운용성 테스트 일정이 잡혀 있고, 중간중간 MS의 세미나가 있다. 이번에는 전통적인 백신과 백업 솔루션 외에 소프트웨어(SW) 행위 모니터링과 가상화 솔루션을 들고 온 업체가 많았다.

 

일정에 맞춰 서로의 테스트 PC에 제품을 설치해서 테스트를 진행한다. 서로 간단히 자사 제품의 정상 동작을 확인하고, MS가 준비한 자동 테스트 도구를 실행하여 테스트를 시작한다. 중간에 오류가 나면 알려주기도 하고 상대방 PC에서 테스트가 잘 되고 있나 간간히 보러 가기도 한다.

 

행사에서 발표되는 세미나의 주 내용은 MS가 제공하는 온라인 충돌 분석 시스템에 대한 홍보와 필터 드라이버 구현에 관한 팁, OS 상에 새로 변경된 부분에 대한 안내가 주를 이룬다. 테스트 세션에서 발견된 버그를 디버깅하다 보면 세미나를 못 듣고 하루가 정신 없이 지나가기도 한다.

 

이번에 우리 팀은 드라이버 테스트 외에 추가적인 목표를 하나 더 가지고 있었다. 바로 타 회사 사람과의 인맥 만들기. 목표는 같은 동양인으로 영어에 관해 동병상련(?)이 있는 트렌드마이크로 연구원들이었다. 마침 우리와 테스트 일정도 잡혀 있어서 쉽게 친해질 수 있었다. 영어로 대화하다 보니 말은 원활하지 못했지만 재미있게도 동양인 엔지니어 간에 뭔가(!) 통하는 게 있었다. 점심도 같이 먹으며 생각보다 빨리 친해졌다. 마지막 날에는 로비에서 같이 기념 사진도 찍었다.

 

트렌드마이크로 연구원들과 함께

 

개인적으로는 처음 참가했지만, 생각보다 훨씬 유익했던 것 같다. 제품을 출시하기 전에 상호운용성을 테스트하여 제품 안정성을 높이는 것은 물론이고, 특히 뭔가 트러블이 있을 때 해당 부분을 개발하는 MS 엔지니어를 불러서 앉혀 놓고 직접 바로 트러블 슈팅을 해 볼 수 있다는 게 참 매력적인 것 같다.

 

해외에는 여행 다닌 게 전부인 나로서는 다국적 인종이 모여서 일하는 현장에 있었다는 것도 신선했고, 간단한 영어와 윈도우 API(Application Programming Interface), 그리고 C언어로 엔지니어끼리 대화가 된다는 것도 재미있었다J. 다음 번엔 테스트와 트러블 슈팅뿐 아니라 미래지향적인 인간관계를 형성하는 걸 시도해 봐야겠다. Ahn

틈틈이 찍은 사진들


 

황용석 선임연구원 / 안철수연구소 기반기술팀