-
OS 관련 개발을 할때 느낀점 feat.뇌피셜보통사람의 스터디로그/개발일기장 2025. 5. 20. 22:41
1. OS 개발 생태계에 대한 이해
OS 개발을 둘러싼 생태계는 단순히 커널만을 이야기하는 게 아니다. BSP(Board Support Package), 커널 소스, 그리고 넓게는 QEMU나 실제 보드를 통한 시뮬레이션까지 포함된다. 너무나도 방대하다.
Linux든 RTEMS든,
어쨌든 QEMU 환경에서 구동할 수 있어야 하고,
GDB로 붙어서 특정 심볼(함수나 변수)을 추적할 수 있어야 한다.그래서 뭐?
단순히 돌아가는 걸 넘어서서,
내가 만든 코드가 정확히 언제, 어떻게 호출되는지를 알아야 하고,
거기서부터 시작이다.2. 환경부터가 짜질구리? 복잡하다
진짜 문제는 기능이 아니라 환경이다.
빌드 시스템, 크로스 컴파일러, 툴체인 버전,
하나라도 안 맞으면, 그냥 에러 지옥이다.빌드 에러? 링커 에러?
그냥 흔한 하루 일과다.
오류 로그 하나에 몇 시간씩 쏟기도 한다.
문제는... 그게 당연해 보인다는 거다. 이 생태계에선.3. 그럼 검증은 어떻게?
"내가 1을 넣었을 때 10이 나오면 끝?"
그게 전부일까?그 10이 나오기까지, 몇 단계를 타는지, 어디서 병목이 생기는지,
그걸 모르면 절대 신뢰할 수 없는 시스템이다.Trace 도구가 필요하다.
rtems-trace, ftrace, perf, QEMU log,
그 어떤 툴이라도 써서 코드 흐름과 시간,
그걸 정량적으로 검증할 수 있어야 한다.4. 그래서 뭘 하고 싶은가?
나는 결국 low-level 문제 해결사가 되고 싶다.
AI든, 하드웨어든,
지금보다 훨씬 복잡한 기능들이 요구될 거다.
전투기, 위성, 무기체계, 아니면 IoT 센서라도,
기본적인 구조는 비슷할 수 있다.
단지 응용 방식과 제약 조건이 다를 뿐.AI를 SoC에 박고,
리얼타임 처리도 되고,
보안도 신경 써야 하고,
이걸 다 감당하는 사람이 필요하다.나도 그중 하나가 되고 싶다.
그걸 코드로 증명하고 싶다.5. 아직도 고민 중이다. 제자리걸음 같기도 하다.
왜 하고 싶은지,
왜 여기에 집착하는지,
솔직히 아직도 정리가 안 된다.하지만 멈추고 싶진 않다.
이 길의 끝에서
‘내가 만든 것’이 움직이는 순간을 보고 싶으니까.