크라우니OS 한선씨 OS코어 (순수 한선씨, crownyc VM 위)
개요
crownyc VM(v10.3 / ISA729) 위에서 도는 순수 한선씨 텍스트 OS 환경.
C커널 무수정. 한글 키워드 그대로. 5모듈 단일 파일.
무엇을 했는지
apps/os/크라우니OS.한선 작성 (컴파일+실행 검증 완료)
- [1] 부팅: 배너 + VFS/프로세스테이블/앱레지스트리 초기화 로그
- [2] 가상FS: 맵 2-way 분리(내용/타입) + 경로목록 평행배열. 만들기/쓰기/덧쓰기/읽기/삭제/목록/존재
- [3] 프로세스테이블: 평행배열 5개(PID/이름/상태/우선/앱번호). 등록/상태변경/목록/종료
- [4] 셸: 자체 공백 토막내기 파서 → 디스패치. help ls cd pwd mkdir touch write append cat rm echo ps kill run apps time reboot
- [5] 앱로더: APP_레지(맵) 이름→번호, APP_실행 전역 switch (hello/clock/info)
- 하드코딩 명령 시퀀스 23개로 부팅+실행 데모
VM 한계 회피
- 구조체배열 손상 → 프로세스테이블 평행배열 5개
- 독립 클로저 불가 → APP_실행 전역 만약 디스패치
- 맵 729 cap → VFS 내용맵/타입맵 2-way 분리
- 분리() 내장 부재 → 토막내기() 자체 구현(글자 0-index 순회)
함정 발견 (중요)
- 맵꺼내 미스값 = -1(미존재), 0(값을 0으로 덮어쓴 삭제). 절대 falsy 0 가정 금지.
→ VFS_타입조회()로 -1/0 모두 빈문자 정규화, 존재여부는 글자수>0로 판정.
- 인라인 주석
; 다중단어 = 미정의변수 에러. // 사용 필수.
- 글자(s,i) 0-index, 부분(s,start,end) end-exclusive 슬라이스.
- 토큰화()는 NLP라 공백분리 안 됨(빈 배열).
관련 파일
- /Users/ef/CrownyOS/crownyc/apps/os/크라우니OS.한선
- 빌드: ./hanseonc_high apps/os/크라우니OS.한선 > os.toau 2>/dev/null && ./crownyc run os.toau
잔여 이슈
- 대화형 입력(입력())은 현재 미사용(하드코딩 데모). 추후 stdin 루프 연결 가능.
- VFS_경로목록 삭제 시 빈칸만 표시(재배치 안 함) — 대량 삭제 시 슬롯 낭비.