Diosix 리뷰하기
Diosix의 모든 코드 및 문서 변경 사항은 커밋 또는 병합 전에 엄격한 다각도 감사를 통과해야 합니다. 변경 사항을 무심코 승인하지 말고, 깨졌거나 불완전하거나 검증되지 않은 코드를 승인하지 마십시오. 아래 리뷰 기준은 developing-diosix 및 documenting-diosix와 1:1로 일치하므로, 작성 스킬을 적용하면 커밋 전 및 병합 전 재작업이 필요 없습니다.
필수 4단계 검증 워크플로우
- 빌드, 완전성 및 테스트 게이트 (기본 요건):
- 기능이 설계된 대로 100% 구현되었으며
TODO스텁, 데드 코드, 또는 모의 프로덕션 경로가 없는지 확인합니다. - 500줄 제한을 초과하는 파일을 리팩토링할 때는 절대 기능이나 단위 테스트를 잘라내지 말고, 항상 큰 파일을 응집력 있는 하위 폴더(
vm/run.zig,panes/modal.zig,tests/gui.zig)로 컴포넌트화하고, 각 하위 모듈이 부모의test블록(_ = @import("vm/run.zig");)에서 참조되어zig build test가 해당 단위 테스트를 실행하는지 확인합니다. - 단위 테스트가 테스트하는
.zig소스 파일과 같은 위치에 있고, 통합 테스트는 별도의tests/디렉터리에 있는지 확인합니다. - 파일 형식 및 줄/열 검사 범위를 추적된 소스 디렉터리(
build.zig,hypervisor,tools,scripts)로 한정하고,.zig-cache/또는zig-out/에서 무제한 재귀 글로브를 실행하지 않아야 합니다. ./scripts/build.sh test --summary all및./scripts/build.sh를 모든 컴파일 및 테스트 단계가 경고나 누수 없이 100% 통과할 때까지 실행합니다.
- 기능이 설계된 대로 100% 구현되었으며
- 4-페르소나 심층 리뷰:
- 수정된 모든 파일과 그 주변 맥락을 네 가지 뚜렷한 렌즈를 통해 감사합니다:
- 회의적인 베테랑 엔지니어 (완전성, 관용구, 평면
prefix_subname.zig파일 대신 하위 폴더 계층 구조, 소문자 16진수 리터럴0xfff, 매직 비트마스크 대신PAGE_OFFSET_MASK및crossesPageBoundary같은 명명된 상수/헬퍼,Spinlock/정렬/경로 검증기의 복사-붙여넣기 중복 없음, 동일 버전 내부 경로에DEFAULT_GUEST_CANDIDATES같은 과거 후보 목록 폴백 배열 없음,usize대신 명시적 고정 너비u64ABI 타입, 리터럴과 함께@min/@max에 명시적usize타입 어노테이션, 500줄 초과 파일을 잘라내지 않고 컴포넌트화, <=80자 제한, 동적 vs 정적 버퍼, 빌드/런타임 설정으로 정책 외부화, Zig에서 임시 바이너리/ELF/이미지 합성 없음,tools/overlay-common/내부에 생성된 파일 없음) - 편집증적인 보안 전문가 (하이퍼바이저 블래스트-반경 격리, 게스트 메모리에 대한 단일 복사 이중-가져오기/TOCTOU 방지,
atomic.Spinlock을 통한 IRQ-안전 잠금, 암호/페이지 제로화, 검사된 산술 경계) - Diosix 유지관리자 (모듈성, 가독성,
defer/errdefer, ABIcomptime크기/오프셋 어설션, 외부 계약 하위 호환성 vs 원자적 인-트리 마이그레이션, 서브모듈 테스트 커버리지) - 초보자 및 전문가 사용자 (노력 없는 UX, 명확한 영어 오류 메시지, 설정 유연성, 성능)
- 회의적인 베테랑 엔지니어 (완전성, 관용구, 평면
- 수정된 모든 파일과 그 주변 맥락을 네 가지 뚜렷한 렌즈를 통해 감사합니다:
- Rust 스타일 빌림 검사기 및 포인터 수명 감사:
- 모든 제어 흐름 경로에서 모든 포인터, 슬라이스 및 할당을 수동으로 추적하여 사용 후 해제(UAF), 이중 해제, 크기 조정/재매핑 시 포인터 무효화, 또는 댕글링 스택 참조가 없음을 보장합니다.
- 문서, 맞춤법 및 스타일 게이트:
docs/가 모든 코드 변경 사항(SBI FID, C 구조체 타입, CLI 플래그, 모듈화된 파일 경로 포함)과 일치하고, 명확하고 문법적으로 올바른 미국식 영어로 작성되었으며, 맞춤법이 검증되었고,docs/style-guide.md및docs/development.md를 준수하는지 확인합니다.- 리뷰 수정 후
zig fmt --check build.zig hypervisor tools scripts및./scripts/build.sh test --summary all을 다시 실행합니다.
- 확실하지 않으면 중단하고 리드 유지관리자에게 문의: 리뷰에서 아키텍처 트레이드오프나 누락된 프리미티브가 발견되면, 가정하기 전에 리드 유지관리자에게 방향을 문의하십시오.
집중 참조 가이드
모든 리뷰에서 다음 참조 체크리스트를 참조하십시오:
- 4가지 리뷰 페르소나 체크리스트: 회의적인 베테랑 엔지니어, 편집증적인 보안 전문가, Diosix 유지관리자, 초보자/전문가 사용자에 대한 상세 검사 기준.
- 빌림 검사기 감사: Zig에서 포인터 출처, 수명, 앨리어싱 가변성, 교차 권한 메모리 안전성을 추적하는 단계별 방법론.
- 커밋 전 게이트:
devel또는stable에 커밋하거나 병합하기 전에 필요한 구체적인 검증 명령어 및 승인 기준.