Naraeon SSD Ready 계획

SMART 전체 – 자체 모듈로 받아오고 CrystalDiskInfo Language 파일로 해석 연결 속도(SATA3 연결 여부 / NVMe면 PCI 풀스펙 연결 여부) – 자체 모듈로 받아옴 플랫폼(노트북/AMD 플랫폼 판별) – WMI SMBIOS(Win32_BaseBoard)로 받아옴 벤치 결과(CDM 세팅대로 MS DiskSpd를 이용해 돌릴 예정) – DiskSpd로 받아옴 배경에서 돌아가는 프로그램의 I/O 량 – ETW로 받아옴 드라이버 설치 여부 – 자체 […]

1% 개발, 99% 유지보수 – 5. 에필로그

그 후로 나는 군대에 당첨되었고, 그러고도 많은 일이 있었고, 남아있는 수많은 일을 뒤로 하고 국방의 의무를 수행하기 위해 떠났다. 어느새 나래온 툴은 처음의 앳된 모습에서 점점 자신을 꾸밀 줄 아는 모습으로 변해갔으며, 내가 만든 다른 유틸리티들의 든든한 토대가 되어 더티 테스트 툴의, 그리고 수명 테스트 툴이 뿌리를 박을 수 있도록 도와주었다. 오늘도 수많은 프로그램들이 그 […]

1% 개발, 99% 유지보수 – 4. 인텔 드라이버발 위기

이 글이 다루는 시기: 2013년 5월 = 첫 버전 공개로부터 9개월차 이후로 나래온 툴은 그런대로 잘 나갔다. 그러나 나래온 툴의 앞날에 대형 사건이 몰려오고 있었으니… 나래온 툴의 전성기가 언제였나? 하면 딱 고를 수는 없지만, 나래온 툴의 위기가 언제였나? 하면 딱 고를 수 있는 때가 하나 있다. 총체적 난국. 극복하지 못했다면 나래온 툴은 거기서 끝났을 것이다. […]

1% 개발, 99% 유지보수 – 3. 수동 트림

이 글이 다루는 시기: 2012년 10월 ~ 2013년 1월 = 첫 버전 공개로부터 2개월 ~ 5개월까지 트림이라는 기능이 있다. 해당 위치의 자료가 더 이상 필요가 없게 될 경우 마크하는 기능인데, 이 기능이 왜 필요한지는 이 글을 보면 좋다. 이처럼 GC를 위해서는 빈 공간이 필요한데, SSD 입장에서는 어떤 공간이 빈 공간인지 모른다는 문제가 있다. 따라서 운영체제에서 […]

1% 개발, 99% 유지보수 – 2. Passthrough 자체 구현

이 글이 다루는 시기: 2012년 10월 ~ 12월 = 첫 버전 공개로부터 2개월 ~ 4개월까지 원래 나래온 툴의 HDDInfo를 대체하기 전까지만 해도 나는 별 특색 없는 학생 1이었고, 나래온 툴도 코어는 타인의 라이브러리를 썼을 뿐인 평범한 프로그램이었다. 스토리지 유틸리티 프로그래머라는 입지가 앞으로 얼마나 도움이 될지는 모르겠으나, 나에게 이런 특색을 부여하고 나래온 툴이 나름 시장에서 이름을 […]

1% 개발, 99% 유지보수 – 1. 초기의 버그들

이 글이 다루는 시기: 2012년 8월 ~ 10월 = 첫 버전 공개로부터 2개월까지 군 생활에 바쁘다 보니, 이번 글도 또 기억이 아슬아슬해질 즈음에 쓰게 되었다. 이번 글은 초기의 버그들에 대해서 다루려고 한다. 조합이 문제가 되는 경우가 많은 현재와 달리(즉 n가지 조건이 모두 갖추어져야 재현이 가능한 버그), 초기에는 프로그램 자체가 잘못 만들어져 나오는 버그가 많았다. 고백하자면 […]

CrystalDiskInfo 개발자가 얘기하는 NVMe – 한국어 번역 & 해설

12월 26일에 삿포로에서 C++ 스터디가 열렸습니다. 발표자 중에 CrystalDiskInfo 개발자 분이 있어서, 실례를 무릅쓰고 번역/배포 허가를 받아서 번역해보았습니다. 따라서 본 글을 퍼가서 다른 곳에 게시하실 경우, 원작자 분께 허가를 받아야 합니다. NVMe와 관련해서 잘 나오지 않는, 소프트웨어 측면에서의 NVMe를 볼 수 있는 좋은 프리젠테이션입니다. (1페이지) 크립톤 퓨처 미디어는 삿포로시 주오구에 있습니다. 한국에는 보컬로이드를 만든 회사로 […]

물리 디스크와 통신하기 – 2. 올바른 핸들 얻어오기

지난번 글에서는 간단하게 ‘C드라이브의 부모 저장장치’, ‘운영체제의 0번 저장장치’ 정도로 표현했지만 실제로 통신을 하기 위해서는 해당 드라이버에 대한 올바른 핸들이 필요하다. 명령어 셋 유형에 따라 올바른 핸들을 구해보자. ★ 드라이브의 부모 저장장치 \\.\★: 형식으로 경로를 지정해 CreateFile로 파일을 연 뒤, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS 컨트롤 코드로 저장장치 번호를 알아낸다. 이 뒤로는 명령어 셋을 검사해 2번이나 3번 항목에 따르면 […]