Linux Kernel의 Embedded 관련 요구사항?
글쓴이: 권순선 / 작성시간: 목, 2005/09/01 - 8:59오후
혹시 embedded 환경에서 Linux를 적용하여 개발하시다가 '아 커널에 이런 기능이 있으면 참 좋을텐데...'라고 생각하신 것이 있으시면 좀 알려 주세요.
가능하다면 http://www.gnome.org/bounties/ 에 있는 형식으로 최대한 구체적으로 적을 수 있으면 더 좋겠습니다.
Linux가 어떠한 부분에서 embedded 환경을 위해 더 향상될 필요가 있는지도 알 수 있을 테고... 커널 쪽으로 오픈소스 프로젝트를 해보고 싶어하시는 분이 계신다면 이러한 요구사항들을 반영하는 프로젝트를 진행하실 수도 있을 것입니다. :-)
댓글
Re: Linux Kernel의 Embedded 관련 요구사항?
위의 형식으로 구체적으로 적고 싶지만... 먼저 생각나는 것을 간단하게 적어도 되겠죠? :wink:
전 개인적으로 하는 일에 RTOS와 Linux를 프로젝트에 따라 선택해서 사용합니다... 부족한 점을 나열하다보면 당연히 RTOS와 비교를 하게 되는데, 간혹 비교하면서 서로 다른 영역을 비교하는것은 아닌가 생각을 합니다.
그럼에도 불구하고 좀 개선되었으면 하는 사항을 나열하면,
1. kernel image 가 작으면 좋겠습니다. Ethernet 하나 정도 가지고 있는 PDA 기능을 수용할 수 있는 커널의 크기가 적어도 압축을 하지 않은 상태에서 1M 안쪽에 들어가면 좋겠습니다.
2. 부팅속도가 빠르면 좋겠습니다. (약 200MHz ARM9에서 약 5초 안에...)
3. Ramdisk가 있어야 하는것이 부담스럽습니다. 크기를 줄여도 압축하지 않은 상태로 2M 이하고 줄이기 어렵습니다.
4. 적어도 5msec 정도의 정확성을 나타내는 periodic timer (timer SIGNAL과 같은)가 있으면 좋겠습니다. (다시말하면 특별히 timer 기능을 할 수 있는 디바이스와 드라이버를 만들어주지 않아도 기본 API로 나와 있었으면.... 혹시 좋은 방법이 현재도 있나요?)
5. posix thread에 task resume과 suspend 기능이 있으면 좋겠습니다. 물론 mutex를 이용해서 구현할 수 있지만, 다른 RTOS를 사용하다가 보면 왜 위의 두가지 기능이 없는지 의문이 생깁니다...
6. multiple event를 기다릴수 있으면 좋겠습니다. 간단하게 conditinal variable을 이용해서 blocking mode multiple event waiting을 구현하기가 까다롭습니다.
또 생각이.... 예전에는 생각이 많이 났는데요...
괜히 개발중 갑갑했던 푸념만 늘어놓네요.. ==33
1. kernel image 가
>1. kernel image 가 작으면 좋겠습니다. Ethernet 하나 정도 가지고 있는 PDA 기능을 수용할 수 있는 커널의 크기가 적어도 압축을 하지 않은 상태에서 1M 안쪽에 들어가면 좋겠습니다.
커널 크기를 줄이는건 어려워보이는군요. 압축을 해서 아무리 줄여도 600~800 Kbyte 이니 압축 하지 않은 상태로 1 Mbyte 미만은 힘들어 보입니다.
>2. 부팅속도가 빠르면 좋겠습니다. (약 200MHz ARM9에서 약 5초 안에...)
커널 부팅시 CRC 첵크 하는 부분을 빼면 시간을 많이 줄일수 있습니다. UI 빼면 3~4초 안에도 부팅 가능한 걸로 압니다.
3. Ramdisk가 있어야 하는것이 부담스럽습니다. 크기를 줄여도 압축하지 않은 상태로 2M 이하고 줄이기 어렵습니다.
램디스크를 쓰지 않으면 되는거 아닐런지? 물론 NOR 및 NAND가 넉넉해야 하겠지만..
> 4. 적어도 5msec 정도의 정확성을 나타내는 periodic timer (timer SIGNAL과 같은)가 있으면 좋겠습니다. (다시말하면 특별히 timer 기능을 할 수 있는 디바이스와 드라이버를 만들어주지 않아도 기본 API로 나와 있었으면.... 혹시 좋은 방법이 현재도 있나요?)
커널 2.6.18 부터 TimeSys의 Real-Time 기능이 추가되었습니다. 그렇다고 해도 대충 콘트롤 할수 있는 수준은 10ms 정도 레벨인것으로 압니다. 5ms 이하라면 RTLinux 나 다른걸 생각해보시는게 나을겁니다.
>5. posix thread에 task resume과 suspend 기능이 있으면 좋겠습니다. 물론 mutex를 이용해서 구현할 수 있지만, 다른 RTOS를 사용하다가 보면 왜 위의 두가지 기능이 없는지 의문이 생깁니다...
thread 는 제가 잘 몰라서 통과..
>6. multiple event를 기다릴수 있으면 좋겠습니다. 간단하게 conditinal variable을 이용해서 blocking mode multiple event waiting을 구현하기가 까다롭습니다.
libevent 에서 안되는 기능인가요? 이것도 잘 모르는 분야이므로 pass..
또 생각이.... 예전에는 생각이 많이 났는데요...
괜히 개발중 갑갑했던 푸념만 늘어놓네요.. ==33
흠... 커널 다이어트의 시작인가...
커널 다이어트의 한계는 몇까지 갈까요?
댓글 달기