
Windows 95는 설치 프로그램 감지 시 파일 이름 기반 '추측' 사용했다고 전하는 개발자
요약
과거 Windows 95는 설치 프로그램이 실행되었는지 파일 이름을 기반으로 '추측'하여 시스템 파일을 복구하는 휴리스틱 방식을 사용했습니다. 이 방식은 안전망 역할을 했으나, 이름만으로는 정확한 판단이 어려워 오작동을 일으키기도 했습니다. 이후 Windows 2000부터는 Winlogon 및 접근 제어 목록(ACL) 등 더 정교하고 안정적인 파일 보호 메커니즘으로 발전했습니다.
핵심 포인트
- Windows 95는 설치 프로그램 감지 시 파일 이름 기반의 추측 로직을 사용함.
- 초기 시스템 복구는 '추측'에 의존하여 오작동 가능성이 높았음.
- Windows 2000부터는 Winlogon 및 파일 변경 알림 등 안정적인 방식으로 전환됨.
- 현재 sfc /scannow 명령어의 근간은 Windows 95의 초기 메커니즘에서 파생됨.
Microsoft 엔지니어이자 반(半)공식 Windows 역사학자인 Raymond Chen이 자신의 Old New Thing 블로그를 통해 공유한 내용에 따르면, Windows 95는 실행 파일의 이름을 읽고 이를 하드 코딩된 짧은 단어 목록과 비교하여 해당 프로그램이 설치 프로그램인지 여부를 파악했습니다.
이러한 휴리스틱(heuristic)은 복구 메커니즘을 가능하게 했습니다 Chen이 3월에 설명함. 당시의 설치 프로그램들은 버전 확인 없이 시스템 파일을 덮어썼으며, 파일은 항상 더 새로운 버전으로만 대체되어야 한다는 Microsoft의 규칙을 무시했습니다. 예를 들어, Windows 3.1 설치 프로그램이 공유 DLL의 사본을 가져오면, 이는 더 최신인 Windows 95 버전을 그 아래에 묻어버렸고, 현재 파일을 사용하던 모든 프로그램은 작동하지 않게 되었습니다.
Windows 95는 흔히 손상되는 파일들의 백업 사본을 숨겨진 C:\Windows\SYSBCKUP 디렉토리에 보관했습니다. 그런 다음 각 설치 프로그램이 작업을 완료하도록 내버려 두고, 그 작업 내용을 확인한 후, 설치 프로그램이 다운그레이드했던 부분에 올바른 버전을 복원했습니다. 이 안전망은 전적으로 설치 프로그램이 실행되었다고 정확하게 추측하는 것에 의존했기 때문에, 이름이 특이한 설정 루틴(setup routine)은 이를 통과했고, instant.exe와 같은 평범한 이름의 프로그램은 아무 이유 없이 작동을 멈추게 했습니다.
파일 확인은 즉시 수행되기보다는 다음 부팅 시로 미뤄지는 경우가 많았는데, Chen에 따르면 일부 설치 프로그램들은 이미 사용 중인 파일을 대체할 수 없어 MS-DOS로 돌아가 배치 파일(batch file)을 실행하여 파일을 교체한 후 Windows를 재시작했기 때문에, 정리 패스(cleanup pass)는 배치 파일이 변경한 내용을 포착하려면 재부팅을 기다려야 했습니다.
Windows 2000에서 새로운 접근 방식이 등장하다
Microsoft는 Windows 2000에서 이 방식을 폐기하고, Windows File Protection을 도입했습니다. 해당 시스템은 Winlogon을 통해 파일 변경 알림(file-change notifications)을 등록하여 보호된 파일을 %WinDir%\System32\dllcache 캐시에서 복원하며, 파일 이름 추측이나 설정 프로그램의 완료를 기다리는 과정이 없습니다.
그 후, Windows ME는 유사한 시스템 파일 보호 기능을 출시했고, Vista부터는 대신 접근 제어 목록(access-control lists)을 사용하여 파일을 보호하는 Windows Resource Protection으로 전환했습니다. Windows 11 사용자들이 여전히 시스템 파일을 복구하기 위해 실행하는 sfc /scannow 명령어는 바로 그 작업에서 직접 파생된 것으로, 파일 이름을 'setup'이라는 단어로 스캔하여 언제 작동할지 결정했던 1995년 메커니즘을 대체했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Tom's Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기