요청: 크라우니-위계완성-OS브라우저런치
- 날짜: 2026-06-22 18:59:30
- 작업 경로: /Users/ef/crowny-ai
요청 본문
VM>OS>브라우저 위계완성: CrownyOS가 브라우저를 앱으로 등록·런치하도록 결선(APP_레지/런처/통합매니페스트), 0바이트 sdcard 브라우저앱 채우기
관련 산출
(클로드가 작업 결과를 이어 기록)
산출 결과 — VM>OS>브라우저 위계완성 (2026-06-22)
직전 현황감사가 "OS→브라우저 런치 미결선(브라우저가 VM 직결)·sdcard 앱 0바이트"를 갭으로 지목 → 결선 완료.
결선 내역
- OS 브라우저 앱 신규
apps/크라우니브라우저.한선(0바이트→61KB toau): 크롬(탭/주소창)+시작페이지 렌더, OS 앱로더 진입점. 컴파일·실행 검증. - OS 셸 등록
crownyc/apps/os/크라우니OS.한선: APP_browser + APP_레지 "browser"=4 + APP_실행 분기 + run/apps 명령 + 부팅메시지 + 데모run browser. exec 디스크립터[OS→VM exec] apps/크라우니브라우저.toau발행. - 런처 등록
crownyc/pkg/libs/런처.한선: 9번째 앱 브라우저(apps/크라우니브라우저.toau), _고정앱시작 8→9. - 통합매니페스트 등록
crownyc/통합/통합매니페스트.한선: 서비스정의("크라우니브라우저", 0, "os://browser", 2, "OS앱"). - 전 sdcard 0바이트 앱 채움 (10개 플랫폼, 잔여 0).
- 호스트 하니스
위계부팅.sh: VM이 OS실행 → OS가 브라우저 런치결정·exec발행 → 하니스 포착 → VM이 브라우저앱 실행 → 한선씨웹엔진 HTML→cmd 실렌더.
end-to-end 검증 (위계부팅.sh)
- [층1] crownyc VM → CrownyOS 부팅,
run browser→ PID=3 프로세스 등록 →[OS→VM exec] apps/크라우니브라우저.toau - [층2] OS exec 디스크립터 포착
- [층3] VM이 브라우저앱.toau 실행 → 크롬+시작페이지
- [엔진] 한선씨웹엔진:
<h1>크라우니</h1><p>...</p>→INIT/RECT/TEXT/ENDcmd (WebKit 없이 순수 한선씨) - 회귀: 수정 4파일 + 앱 컴파일 4/4 OK
의미
이전엔 "VM 위에 [OS]와 [브라우저]가 각각" 얹힌 평면이었으나, 이제 OS 앱 레지스트리가 브라우저를 소유하고 런치를 결정한다. 3층이 실제 위계로 합성됨(각 층 crownyc VM 실행). 단 in-VM은 exec 디스크립터 발행+호스트 하니스가 cross-process exec 완성(단일 crownyc는 자기 안에서 다른 crownyc spawn 불가 — 정당한 호스트경계).관련 파일
- /Users/ef/CrownyOS/apps/크라우니브라우저.한선 (+ .toau, 전 sdcard 복제)
- /Users/ef/CrownyOS/crownyc/apps/os/크라우니OS.한선
- /Users/ef/CrownyOS/crownyc/pkg/libs/런처.한선
- /Users/ef/CrownyOS/crownyc/통합/통합매니페스트.한선
- /Users/ef/CrownyOS/위계부팅.sh