Prolog

비스타가 출시되기 이전부터 비스타에서 구동되지 않은 프로그램이나 게임의 목록이 블로그들을 타고 돌기 시작했다. 정부기관의 ActiveX 문제 역시 기존 ActiveX가 비스타에서 호환되지 않은 이유로 정부가 MS에 도움을 요청했다는 굴욕사실때문에 뜨거운 이슈로 급부상했다. 아직까지 비스타를 써본 적이 없었는 필자는 무슨 문제 때문에 호환되지 않는지가 매우 궁금했으나, 구체적인 이유가 기술된 글들을 찾지 못해 두리뭉실한 느낌으로 ACL문제와 웹브라우저의 보안문제 등이 문제일 꺼라고 생각하고 있던 차에 오늘 우연히 Windows ME 시스템을 Windows Vista Home Edition에 migration해달라는 부탁을 받고 처음으로 비스타의 문제에 직면했다. (본 문제는 하위호환이 안되는 많은 문제중에 하나이기 때문에 넘버링을 했다. 문제를 찾을 때마다 포스팅할 예정이다.)

비스타의 하위호환문제 #1

이번에 발견한 문제는 ACL에 관련된 문제인데, 비스타(최소한 홈에디션)에서는 프로그램이 OS 루트 홀더의 파일 생성 및 저장의 권한을 가지지 못한다. XP의 최신 OEM버전에서도 이런 세팅이 있었지만, 안전모드에 administrator로 들어가서 루트+하위홀더의 권한을 유저나 원하는 계정에 부여해주면 해결되었다. 하지만, 비스타에서는 루트의 모든 권한을 해당 유저나 USERS 그룹등에 부여한다해도 파일을 생성할 수 없었다.(짧은 시간 리뷰였기 때문에 방법이 존재할 수도 있습니다. 아시는 분이 계신다면 리플 부탁드립니다.) 필자가 마이그레이션하던 프로그램은 BDE(Borland Database Engine)을 사용한 어플리케이션이었는데, BDE의 기본 DB인 Paradox에서는 DB파일의 네트워크 엑세스를 위하여 C:\에 PDOXUSRS.NET이라는 파일을 생성하는데 이 파일이 생성되지 않기 때문에 프로그램이 작동하지 않았다.

두개의 해결방안

이 문제는 해결하는 방법은 2가지가 있는데, 첫째는 BDE Administrator를 통하여 NET Directory를 변경하는 방법이 첫번째인데, 간단한 방법이기는 하나 어플리케이션에 따라 BDE Confiuration을 자체적으로 가지고 있는 넘들에게는 해결이 안되는 단점이 있다. 두번째는 단축아이콘 옵션에서 프로그램에 Administrator의 권한을 부여해주는 것이다. 확실한 방법이지만 역시 단점이 있는데, 시작할때 매번 이 프로그램의 권한은 Administrator로 실행하겠냐는 질문에 답을 해줘야한다. (끌 수 있는 옵션이 없다)


비스타의 새로운 정책을 꼬집은 Apple의 ad. 비스타를 써 봤다면 300% 공감이 가능하다.

애플광고에서 썬글라스 아저씨의 Cancel or Allow. 겨우 2시간 봤는데 짜증이 무럭무럭 났다;;


누구를 탓할 것인가

그럭저럭 문제를 해결하고나서 XP가 설치된 내 작업 노트북의 C루트를 보니 보안 ActiveX, 게임 런쳐 ActiveX,  웹하드 ActiveX 등등이 남긴 로그파일들이 쌓여있었다;; 비스타에서 이 모든 프로그램들은 구동중 OS 루트 홀더의 권한을 얻지 못하여 죽을 것이 뻔하다.. 자 그럼 누구를 탓할 것인가? 개발자가 무책임하게 가장 만만한 루트에 로그를 남긴 것을? 아님 ActiveX를 남용한 국내 사이트 제작자들? 아님 정부의 정책?

문제의 핵심은 무엇일까

아직까지 모든 비스타의 호환문제를 겪어본 것이 아니라 속단하기는 이르지만, 이 문제는 언젠가는 짚고 넘어가야할 Windows라는 OS의 문제였지 ActiveX의 문제라던가 정부정책의 문제를 수면으로 끌고 올라올 문제는 아니라는 생각이 든다. (주. ActiveX에서 호환문제가 더 커지는 것은 Stand-alone Application이 아니기 때문에 권한 설정이 불가능하고 Exception발생시 프로그램이 죽을 확률이 더 높기 때문이다.)한 회사의 솔루션을 정부 사이트에 적용해버린 부분의 문제는 이 문제와는 별개란거다. 시간을 거슬러 처음 NT기술이 일반 사용자에게 접목된 2000, 혹은 XP가 나올때 MS는 일반 사용자에게는 걸맞지 않은 NT 기술의 ACL을 도대체 어떻게 사용하기 쉽게 펼쳐놓을지를 고민했을 것이 분명하다. 하나의 홀더안에서도 파일의 성격에 따라 다른 권한을 주는 복잡다단한 OS가 될 것인가, 아니면 모든 파일이 관리자소유이고 모든 사용자가 관리자인 단순한 OS가 될 것인가의 갈림길에서 MS는 과감히 후자를 택했고, 그 이후로 대부분의 우리는 파일의 권한관리와는 담을 쌓고 살아왔다.

비스타의 하위 호환문제의 핵심은 새로운 "기능(function)"이 아니라 새로운 "정책(policy)"이다.

이미 가지고 있는 기능이지만 사용자의 편의를 위해서 죽여놨던 기능들을 허술한 보안체계의 OS라는 불명예를 씻어버리기 위해 부활시킨 것 뿐이다. 다만 그 과정에서 예고없이 강화한 많은 "정책"들이 기존 프로그램들의 호환성을 떨어뜨린 것뿐이다. 물론 개발자가 루트 홀더에 마구잡이로 파일을 생성한 것은 잘못된 것이지만, 그것이 이후 하위호환성을 떨어뜨릴 수 있다고 경고하지 않은 것은 M$다.
AND