나래온 툴을 만든 선택들 – 5. 위험천만 외줄타기

이 글이 다루는 시기: 2012년 7월

= 개발 시작
= 첫 버전 공개까지 1개월 남음


인터넷 검색 결과는 당연하게도 처참했다. 표준 문서 하나. DeviceIoControl에 대한 MSDN 문서 하나. 안타깝게도 SSD에 대한 최신 커널 분석이 담긴 Windows Internals 6판이 나오기 2년 전이었다. 이걸 요새 합본으로 사서 읽고 있는데 정말 좋은 책이다. 그 때 이 책이 있었다면 삽질 중 30% 정도는 줄지 않았을까. 어쨌든 지체할 시간이 없었다. 확보한 정보들을 가지고 실습을 시작했다.

잘못된 명령이 날아가면 내 목숨도 끝이었다. 두 SSD를 모두 팔아 겨우 만든 돈으로 산 제품이었다. 실험 내내 외줄을 타는 느낌이었다. 잘못 건드려 파티션이 날아가면 윈도를 덮어썼다. 이미지를 떠놓은 건 다행이지만 이래도 되나 싶을 정도로 쓰기가 많았다. 다행히 SSD가 삼도천을 건너는 일은 없었다. 감사합니다 라이트온.

이 얘기는 극초반의 나래온 툴을 아는 사람에게는 의아한 얘기일 수 있다. 왜 정보를 받기만 하는 나래온 툴을 위한 실험으로 SSD가 망가질 수 있냐는 생각이 들 수 있다. 그러나 이유는 바로 그 별 옵션 없는 정보 받는 명령어들 때문이었다. 정보를 받는 명령어들은 별 옵션을 요구하지 않는다. 대부분의 옵션은 기본값인 0으로 놔두어진다. 따라서 쓰기같은 다른 명령 코드가 잘못 들어가면 0위치에 가까운 부분이 대상이 된다. 어느 파일 시스템도 0위치와 가까운 곳이 덮어씌워져서 좋을 게 없다.

이런 외줄타기 경험은 나래온 툴 개발이 전반적으로 안전주의로 진행되는 계기가 된다. 사용자에게도 외줄타기를 시켜서는 안 되잖은가.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.