← 목록
브라우저 2026-05-22 5KB 읽기 5분

크라우니브라우저 완전 크라우니기계어화 + 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)
추가 발견: opcode 269(TRANSACT)도 memory[49990/49991]을 sp/heap 스냅샷에 중복 사용.

수정 (crownyc.c)

  1. TRANSACT 스냅샷 슬롯 49990/4999149996/49997 이전
  2. FB opcode 전체(346~359 READER)가 memory[49990/49991] 대신 C 전역변수 fb_width/fb_height 사용 → 변수 영역과 완전 분리
  3. 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만으로 렌더
검증: 1280x800 PPM 정상 생성, 9개 카드 모두 CRNS T(확정) 192.168.219.153.