ENGINEERING DETAIL

WAYFINDER OS 엔지니어링 상세

방법을 직접 확인하고 싶은 분을 위한 페이지입니다. 자체 개발은 어디까지인지, 라이선스 경계는 어떻게 긋는지, 72시간 에너지 예산은 어떻게 계산하는지, 규모 추정은 어디서 나왔는지 다룹니다. 모든 수치는 계획값이며, 실측 결과가 아닙니다.

WAYFINDER OS가 무엇을 왜 만드는지 먼저 알고 싶다면 시스템 소개를 확인하세요.

WHAT WE BUILD

자체 개발의 경계부터
분명히 합니다.

목표는 'WAYFINDER OS 주소 공간 내 서드파티 코드 제로'입니다. 이는 설계 및 검수 요구 사항이며, 아직 완료된 감사 결과가 아닙니다.

OS 이미지, 커널, 사용자 프로그램에 포함되는 코드는 팀이 직접 구현하는 것을 원칙으로 합니다. 플랫폼 펌웨어, 개발 도구, 독립 칩 펌웨어는 따로 관리합니다. 메모리 배치, 링크 결과, 실제 로드되는 내용을 모두 확인해야 합니다.

개발 도구
GCC / Clang, binutils, GDB, OpenOCD, git은 개발 용도로 사용할 수 있습니다. 컴파일러가 런타임 함수 호출을 생성할 수 있으므로 libgcc, compiler-rt, 시작 오브젝트, 링크 이미지까지 점검해야 하며, 베어메탈 컴파일 옵션을 썼다는 것만으로 서드파티 코드 제로를 주장할 수 없습니다.
플랫폼 펌웨어
DDR 초기화와 BL31은 실제 플랫폼에 따라 출처, 확보 가능성, 라이선스를 확인합니다. BL31은 EL3에서 런타임 서비스를 계속 제공할 수 있으므로, 부팅 후 사라지는 프로그램으로 일괄 간주할 수 없고, 일괄적으로 비공개 소스로 간주할 수도 없습니다.
독립 칩 펌웨어
EG915U, Genio용 Wi-Fi/BT, nRF54L15 등의 칩에 탑재된 펌웨어는 외부 모듈 의존성으로 분류합니다. 메인 OS 코드와는 다르지만, 버전, 인터페이스, 업데이트 방식은 기록해야 합니다.

기술적 경계 참고: GCC 런타임 함수 설명 ↗︎, Trusted Firmware-A 설계 문서 ↗︎.

ENERGY BUDGET

72시간 에너지 예산.

계획상 가정이며, 실측 아님
72시간 에너지 예산, 어떻게 확인할까?

계획상 가정인 1S 5000 mAh, 공칭 3.7 V로 계산하면 명목 에너지는 약 18.5 Wh입니다. 사용 가능 에너지를 16.7 Wh로 보면 72시간 평균 전력 예산은 약 232 mW입니다. 셀, 변환 효율, 차단 전압은 아직 확인이 필요합니다.

'20% 작업, 2% 최대 부하'가 서로 겹치지 않는 시간 비율이고 나머지 78%가 대기라면, 현재 전력 범위 기준으로 작업과 최대 부하에 드는 에너지는 약 11.52–20.16 Wh입니다. 범위 상단은 이미 16.7 Wh를 넘습니다. 따라서 대기 전력을 낮추는 것만으로 72시간을 보장할 수는 없습니다.

작업과 최대 부하의 합계 소비를 16.1 Wh로 먼저 가정하고 남은 0.6 Wh를 56.16시간의 대기에 배분해야, 약 10.7 mW의 대기 상한이 나옵니다. 이 계산에는 반복되는 콜드 부팅과 기타 반영되지 않은 손실이 아직 포함되지 않았습니다.

다음 단계로 각 상태의 에너지, 콜드 부팅 1회당 소비, 깨움 빈도, 전원 차단 전 데이터 저장 비용을 측정해 기기 전체 에너지 모델을 다시 세웁니다. 여기서 20%는 작업 시간 가정을 뜻하며, 개발 진척도나 모금 비율이 아닙니다.

자체 개발 OS는 이 프로젝트가 선택한 방향이며, 초 단위 부팅이 자체 개발 OS만의 특징은 아닙니다. Bootlin의 Linux 부팅 최적화 자료 ↗︎에 관련 사례가 있으며, 이를 근거로 CORE의 어떤 시스템이 이미 같은 속도에 도달할 수 있다고 추론할 수는 없습니다.

SCALE ESTIMATE

규모와 메모리 초기 추정.

규모와 메모리: 현재 어떤 추정이 있나?

팀이 초기 추정한 전체 규모는 12만–16만 줄이며, 항목별 합계는 약 14만 줄입니다. 이는 계획상의 규모이며, 완성된 코드가 아닙니다.

코드 규모 개략 추정이며, 기능이 존재함을 의미하지 않습니다
모듈추정 줄 수
커널: 부팅, MMU, GIC, 스케줄링, IPC, VFS15,000
SoC 드라이버25,000
libc12,000
그래픽과 UI40,000
파일 시스템7,000
주변 장치, 전원, AT 프록시20,000
애플리케이션 계층15,000
상시 코어 펌웨어6,000

이미지 5–10 MB, 실행 RAM 64 MB 미만은 임시 리소스 예산입니다. 디스플레이 해상도, 더블 버퍼링, 글꼴, 드라이버, 애플리케이션 작업 세트에 따라 다시 추정해야 합니다.

40–70 인월, 학생 팀 기준 60–140 인월 역시 보정되지 않은 초기 추정이며, 줄 수에서 바로 도출할 수 없습니다. 다음 단계에서 작업 분해, 투입 가능 시간, 실제 디버깅 기록으로 보정합니다.

LICENSING

라이선스와 '직접 다시 쓰기'의 경계.

GPL과 '직접 다시 쓰기'의 경계

U-Boot 전체는 GPLv2 또는 이후 버전을 따르지만, 개별 파일에는 다른 라이선스나 예외가 있을 수 있어 파일별로 확인해야 합니다. 코드를 인용하거나 고쳐 쓴 것이 파생 저작물에 해당하는지는 이름 변경, 언어 변경, '직접 한 번 타이핑'만으로 판단할 수 없습니다.

GPL의 소스 코드 제공 의무는 적용 대상 프로그램의 배포와 관련된 것으로, 읽거나 개인적으로 수정했다고 해서 OS 전체를 전 세계에 공개해야 하는 것은 아닙니다. 참고 코드를 사용하기 전에 출처, 라이선스, 사용 방식 기록을 먼저 남기고, 구체적인 배포 조건을 확인합니다.

참고: U-Boot 프로젝트 라이선스 안내 ↗︎, GNU GPL 자주 묻는 질문 ↗︎.