aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/072-qemu-4k-page-store.md
blob: 09b554835317a0dc1599c39bee5ddcfa56a32075 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 072 — 실제 4 KiB 커널에서 페이지 저장소와 앱 실행

2026-09-24. [071](071-logical-page-portability.md)의 정렬 추론을 실제
OS 페이지 크기에서 검증했다. 16 KiB AArch64 호스트 위의 QEMU 10.0.13에서
`CONFIG_ARM64_4K_PAGES=y`인 Linux 6.18.39 AArch64 커널을 부팅했다.
게스트의 `sysconf(_SC_PAGESIZE)`는 **4,096 B**였다. 커널·설정·정적 게스트
실행물의 SHA-256은 [실행 기록](../../prototypes/connections/results/2026-09-24-logical-page/qemu-4k.json)에
남겼다. [압축된 원시 콘솔 로그](../../prototypes/connections/results/2026-09-24-logical-page/qemu-4k.log.gz)는
결과와 정상 전원 종료를 보여준다.

게스트에서 기존 페이지 저장소 검사는 스냅샷, 범위 매핑, 충돌, 고장 주입,
재구성, 인라인/페이지 전환과 128회 혼합 수정을 통과했다. 이어 실제
고정 정의 `editor.pure` CLI가 1 MiB 문서를 생성하고 전체 바이트를
다시 읽어 확인했다. 마지막 1 B 교체 뒤 리비전 2와 전체 본문을 확인했고,
리비전 1의 재요청은 충돌로 거절돼 본문이 유지됐다.
[두 번째 독립 실행](../../prototypes/connections/results/2026-09-24-logical-page/qemu-4k-repeat.json)에서도
게스트 바이너리와 재현 가능한 initramfs의 SHA-256이 일치했다.
[재현 도구](../../research/experiments/007-page-size-compatibility/run_qemu_4k.py)와
[게스트 검사 코드](../../research/experiments/007-page-size-compatibility/guest.c)가
빌드·부팅·마커·해시 검사를 수행한다.

수정한 저장소 테스트를 포함한 [최신 앱 소스 묶음](../../prototypes/connections/results/2026-09-24-qemu-4k/pure-source-preview.tar.gz)은
다른 디렉터리에서 빌드하고 기본 릴리스·실제 PTY·선택형 페이지 TUI를
[다시 검사했다](../../prototypes/connections/results/2026-09-24-qemu-4k/source-package-check.json).
QEMU 재현 코드는 연구 디렉터리에 있으며 이 작은 앱 소스 묶음에는 들어 있지 않다.

이 게스트의 파일 시스템은 initramfs다. `fsync` 호출과 충돌 계약은
실행됐지만 **물리 디스크 내구성이나 실제 장치 지연은 검증하지 않았다**.
4 KiB x86_64 CI와 macOS arm64 CI도 아직 미실행이다. 기본 코어·기본 저장
형식은 바뀌지 않았고, 페이지 저장소는 계속 선택형이다.