Windows XP의 프로필 사진 선택 알고리즘 공개
Key Point
Windows XP의 숨겨진 구현 세부 사항을 20년 뒤에 공식 개시한 드물고 흥미로운 기술 역사 기록이며, 현대 알고리즘 설계의 우아함을 보여준다.
핵심 요약
- Windows XP는 GetTickCount() 값을 초기 시드로 하는 RtlRandomEx 난수 생성기를 사용해 기본 프로필 사진을 무작위로 선택했다.
- 한 번의 파일 시스템 접근으로 완료되는 원-패스 알고리즘(저수지 표본추출의 특수 사례)을 적용했다.
- 이 방식은 파일 개수를 먼저 세는 방식과 달리 파일 시스템 호출을 줄이고, 실행 중 디렉토리 내용 변경에 견딜 수 있다.
- 알고리즘은 각 새로운 항목마다 1부터 현재 개수까지의 난수를 생성해 같을 확률로만 선택하는 방식으로 동작한다.
- 병리적 상황을 방지하기 위해 코드는 최대 100개 이미지까지만 샘플링한다.