몇가지 O/S커널을 ARM용으로 포팅하다보니, 뭔가 하나 만들어 보고 싶어졌습니다.
그리고 요즘하는 프로젝트에서 Single Task로만 동작시키다 보니, Collaborator들이 불만을 얘기하는군요.
물론 기존에 나와있는 O/S들이 있습니다만, 어느쪽으로든 유료인데다가, 점점 무거워지는 경향이 있어서요.
특히 메모리 4KB 정도 하는 시스템에서는 적용이 불가능하지요.
그래서 겸사겸사 최소형 Realtime Kernel을 제작하려고 합니다.
프로젝트는 2010년 1월 28일 시점으로 시작했습니다.
2010년 1월 30일 기준으로 들어갈(간) 기능은 다음과 같습니다.
1. 최소형: Kernel이 차지하는 Task Switching Time을 줄여서 실제 Task들의 Performance를 높힙니다.->현재 커널 사이즈 24 lines (ARM Assembly)->Task별 상태 메모리 128Byte (Stack별도)->Task 전환은 FIQ를 사용하여 빠르게 함 (일반 Device Interrupt는 IRQ 사용)2. Portable for ARM : 간단하게 구성해서 적용하기 쉽게 합니다. 물론 ARM용입니다.->기본 함수가 3개입니다. 코멘트 포함 모두 합해서 100줄이 안됩니다.task_init : piOS 초기화task_register: TASK 추가task_switcher: piOS Kernel3. task sleep, task messaging 기능 지원4. 고정 Task 갯수, MMU를 지원하지 않는 시스템에서 사용할 수 있도록 Task를 고정합니다.->말그대로 임베디드 시스템 용도입니다.
일단은 여기까지 할 예정입니다.
단지 임베디드용으로 무료로 쉽게 사용할 OS를 만드는 것이기 때문에
기능을 복잡하게 가지 않을 생각입니다.
기존에 만들어 놓은 zhal과도 고려를 해봐야겠네요..