크라우니브라우저 완전 크라우니기계어화 + CRNS 와일드카드
개요
크라우니브라우저를 외부 셸 의존 없이 100% 크라우니기계어(TOAU)로 구동하는 작업. CRNS 한글 도메인 시스템에 와일드카드 지원 추가. ASCII/한글 비트맵 폰트 렌더러 구축.
1. 순수 크라우니기계어 HAL
libs/HAL크라우니.한선 — VM 네이티브 프레임버퍼만 사용하는 HAL.
기존 HAL.한선은 체계() 셸 호출 51건 (uname/osascript/sysctl 등). 신규 HAL은:
- VM 네이티브 opcode 직결: 화면초기화(346) 점찍기(347) 사각형(348) 선긋기(349) 글쓰기(350) 원그리기(354)
체계()호출 0건- 플랫폼 = "크라우니/toau729/vm네이티브"
2. 비트맵 폰트 렌더러 (순수 기계어)
libs/글꼴.한선 — 5x7 ASCII 비트맵 폰트. 점찍기 opcode만 사용.
- A-Z, a-z, 0-9, 기호 30여종
- 균형3진 나눗셈 자연반올림 회피 → greedy 감산으로 비트 디코드
- 검증: 알파벳/숫자/URL 렌더링 가독성 확인
libs/한글꼴.한선 — 한글 비트맵 폰트. 67자모(초성19+중성21+종성27) 조합.
- 음절 분해 공식: 음절=코드-44032, 종성=음절%28, 초성/중성 추출
- 디컴포지션 검증 완료 (크=ㅋ+ㅡ, 라=ㄹ+ㅏ 정확)
- 글리프 배치 디버깅 진행중
3. VM 색상 모델 정정
crownyc VM 프레임버퍼는 27색 3진 팔레트 사용:
c27 = r3*9 + g3*3 + b3(각 채널 0/1/2 = 0x00/0x60/0xFF)- 0-26 = 명명 팔레트, 27+ = 3×3×3 큐브
4. VM 버그 수정 (crownyc.c)
opcode 347(픽셀)/349(선)/350(텍스트)/354(원)이 memory[]에만 쓰고
fb_rgb[]엔 안 써서 FB_SAVE(PPM 저장)에 안 나타남.
→ 4개 opcode 모두 fb_rgb[] + memory_trits[] 갱신 + fb_dirty 설정하도록 수정.
(FB_RECT 348은 원래 정상)
5. CRNS 와일드카드 도메인
*.크라우니.한국 등록 시 모든 서브도메인 자동 해석:
블로그.크라우니.한국 → 192.168.219.153 [와일드카드]
쇼핑.크라우니.한국 → 192.168.219.153 [와일드카드]
아무거나.크라우니.월드 → 192.168.219.153 [와일드카드]
해석 우선순위: 캐시 → 레지스트리 → 와일드카드 → 미등록.
→ 한글 도메인 "마음껏" 사용 가능.6. 함수명 충돌 해소
브라우저 모듈 9개에서 동명 함수 리네임 (모듈 접두사). 풀빌드 경고 61건 → 27건. 남은 27건은 의도된 오버라이드.
빌드 상태
개별 모듈: 34/34 컴파일 OK
풀빌드: EXIT 0, 968,832 큐브, 26MB TOAU
경고: 27건 (의도된 오버라이드)
CRNS/HAL크라우니/글꼴/한글꼴: 전부 컴파일 OK
VM: crownyc 재빌드 (Security 프레임워크 링크 필요)
관련 파일
libs/CRNS.한선libs/CRNS_레지스트리.한선CRNS서버.한선libs/HAL크라우니.한선libs/글꼴.한선libs/한글꼴.한선crownyc.c(opcode 347/349/350/354 수정)src/v2/HTTP스택.한선(CRNS 통합)
빌드 명령
bashcd /Users/ef/CrownyOS/crownyc
cc -O2 -o crownyc crownyc.c -framework Security -framework CoreFoundation
cc -O2 -o hanseonc_high hanseonc_high.c
CROWNY_STD=libs ./hanseonc_high src/v2/크라우니브라우저v2.한선 > browser.toau
./crownyc run browser.toau
잔여 이슈
- 한글꼴 글리프 배치 디버깅 (음절 조합 가독성)
- 브라우저 모듈에 HAL크라우니/글꼴 통합 (현재 HAL.한선 사용중)
- CRNS 서버 실제 TCP 리스닝 테스트
추가 (오후): VM 메모리 레이아웃 버그 수정 + 네이티브 시작페이지
치명적 VM 버그: 프레임버퍼 제어 영역 충돌
memory[49990/49991](FB 너비/높이)이 한선씨 변수 영역과 충돌.
- 한선씨 변수는
frame_ptr=10000부터 위로 증가 - FB 메타는
memory[49990/49991], FB 데이터는memory[50000+] - 변수가 많은 프로그램(시작페이지 등)이 49990을 침범 → FB 너비/높이가 1 또는 -1로 손상 → 렌더 실패(1x1 PPM)
memory[49990/49991]을 sp/heap 스냅샷에 중복 사용.수정 (crownyc.c)
- TRANSACT 스냅샷 슬롯
49990/49991→49996/49997이전 - FB opcode 전체(346~359 READER)가
memory[49990/49991]대신 C 전역변수fb_width/fb_height사용 → 변수 영역과 완전 분리 - opcode 347/349/350/354가
fb_rgb[]갱신 (FB_SAVE 일관성, 오전 수정)
네이티브 시작페이지
src/v2/크라우니시작페이지.한선 — 순수 크라우니기계어 브라우저 홈.
- 1280x800, 외부 셸 0건
- 9개 한글 도메인 카드 3x3 그리드 (World/Korea/Music/Bank/Church/Asset/Play/Mind/Edu)
- 각 카드: CRNS 실시간 조회 → IP + T-OK 상태등
- HAL크라우니 + 글꼴 + CRNS 통합, crownyc VM opcode만으로 렌더