ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 임베디드 시스템 개발 경험.. 그리고 RTOS(리얼타임OS)와 리눅스
    정보통신에너지/임베디드 시스템 2012. 8. 10. 09:21


     

    제가 개발자로서 처음 해본 일은 임베디드 시스템 개발 이었습니다.

    임베디드 시스템이 뭐인지는 대략 나중에 잘 정리해서 설명 드리겠습니다.

    어쨌든 임베디드 시스템이란 그런 것 같습니다. 일단 하드웨어적인 와꾸를 잘 잡아 놓고 이제 거기에 들어가는 소프트웨어를 개발해야 합니다.

    하드웨어적인 와꾸야.. 사실 큰 문제는 아닌 것 같습니다. 물론 하드웨어적인 와꾸가 핵심인 분야도 있어서 그런 분야는 제외합니다.

    일단 어느 정도 제품을 팔아본 회사라면 대충 와꾸 잡는 프로세스는 다 구축이 되어 있을 것이고 설계적인 면에서 이상 없고 부품들이 다 멀쩡하면 더 이상 왈가불가 할 것이 없어 보입니다.

     

    문제는 소프트웨어입니다.ㅋ

    끝까지 속 썩이고 맘대로 안 되는게 바로 소프트웨어 같습니다.

    운영체제 자체도 특이합니다. 저는 vxWorks 라는 리얼타임OS를 썼었는데.. 요새는 이거 안 쓰고 임베디드 리눅스가 대세인 것 같습니다.

    vxWorks는 가격이 굉장히 비쌉니다. 한 Copy에 5천만원인가 하는 것으로 알고 있습니다. 거기다가 뭔가 한 제품을 개발 해서 팔아먹을 때마다 라이선스를 지불해야 합니다.

    안정성 면에서는 타의 추종을 불허하는 운영체제이지만.. 결코 대중적이지는 않습니다.

     

    리눅스 시스템 프로그래밍도 좀 해보면서 vxWorks RTOS랑 비교해본 결과 둘 다 기본은 C언어 입니다. C++도 사용되긴 합니다만 보통 임베디드 시스템에서는 C++ 보다는 C를 선호하는 것 같습니다.

    아무래도 복잡한 기교보다는 안정성을 중시하기 때문에 제 생각에도 막 이리저리 복잡해질 수 있는 C++ 보다는 C가 임베디드 시스템 개발에 맞는 것 같습니다.

    vxWorks는 몇 가지 장점이 있는데 우선 태스크 관리가 굉장히 심플하고 편합니다. 리눅스에서는 프로세스 개념(vxWorks 태스크 = 리눅스 프로세스)인데 리눅스에서 프로세스를 다룰려고 하면 부모 넣고 자식 넣고 포크 쓰고 어쩌구저쩌구 약간 복잡합니다.ㅋ

    vxWorks는 태스크스폰이란 함수 하나로 한 큐에 다 끝내버릴 수 있습니다.ㅋ

     

    그 외에 시간 관리 기능 또한 굉장히 좋습니다. 아마도 이게 RTOS의 핵심이 아닐까 싶습니다. 시스템 클럭을 설정해놓고 그 설정한 클럭에 맞춰서 모든 동작을 정확한 시간을 두고 동작시킬 수 있습니다.

    시간 간격이 1초, 2초 뭐 이런 것이 아니라 0.001초 0.0001초 단위로 가능합니다. 예를 들어 메시지 큐에서 데이터 하나 받는데 0.001초 마다 한 바이트씩 받고 싶다면 아주 간단하게 메시지리시브 할 때 파라미터 변수로 0.001이라는 인자를 넣어주면 땡입니다.

    리눅스에서 이 짓 하려면 아주 짜증스럽습니다. ㅋㅋ 시간관련 라이브러리 참조해서 막 이 짓 저 짓 해야 되는데 제가 리눅스 시스템 프로그래밍을 깊게 안 해봐서 그렇겠지만 어쨌든 vxWorks가 훨씬 편리하고 강력한 것이 사실입니다.

     

    그러나저러나 그렇다고 해도 임베디드 소프트웨어 개발… 어렵습니다. 개발자 라는 직무 자체가 어렵긴 한데 임베디드 시스템 같은 경우 쓰이는 곳이 거의 인간의 생명과 관계된 분야가 많아서 조그마한 버그 하나가 무지막지한 대형사고 및 회생불가능의 손해로 직결될 수 있습니다.

     

    예를 들면, 비행기 개발자가 비행기 제어 시스템을 만들었는데 거기에 아주 사소한 버그가 하나 있었고 그게 잡히지 않은 채 비행기가 납품되었습니다. 비행기는 승객 200명을 태우고 가다가 그 버그로 인해 추락해버립니다.

    여러 가지 분석 끝에 그 버그가 밝혀집니다. 그러면 뭐.. 비행기 개발 회사고 뭐고 끝장나는 것 입니다. 당장 물어줘야 되는 손해는 물론 앞으로 비즈니스 길도 콱 막혀버리겠지요.

     

    그래서 임베디드 시스템 개발이란 어쩌면 생명을 담보로 한 무시무시한 후덜덜한 직무일 수도 있습니다.ㅋ

    반대로 보면 그만큼 아무나 할 수 없기에 보람 있고 대략 연봉도 좀 받고 그럴 수 있겠습니다.


    댓글