제목 그대로 RTOS 의 Windows 라고 할 수 있을 만큼 가장 높은 점유율을 가지고 있는 VxWorks 에 대해서 슬쩍 맛만 보는 식으로 설명할 것이다.
사실은 저번 학기에 '실시간 제어 소프트웨어' 라는 수업을 통해 실제로 직접 VxWorks 를 사용하면서, 이 것에 대한 문서를 만들어야 겠다고 수 없이 다짐했지만, 학기가 끝난 후에야 어렴풋한 기억을 더듬어 작성했다.
준비물
내가 수업시간에 실습했던 환경은 다음과 같다.
먼저 타겟과 호스트 머신이 필요하다. 여기서는 둘다 X86 아키텍처이다. 참고로 두 개의 머신은 같은 네트워크게 존재하며, 서로 연결되어 있다.
호스트에서 VxWorks 커널을 생성하여, 플로피 디스켓에 저장한다.
타겟에서는 하드 디스크가 없고 단지 플로피 드라이브만 존재한다. 앞에서 만든 플로피 디스켓을 넣고 부팅을 하면, 타겟에서는 FTP 를 사용해서 호스트로 부터 커널을 다운로드 받아 부팅한다. 참고로 FTP 는 VxWorks 패키지에서 제공하는 프로그램이다.
위의 주소에서 PDF 파일을 참고하기 바란다.
실행 방법
VxWorks 는 자체의 Shell 을 가지고 있고, 사용자는 자신이 만든 프로그램을 독립적으로 구현하여 Tornado 라는 VxWorks 의 IDE 툴을 사용해서 컴파일한다. 오브젝트 파일이 생성되면, FTP 를 사용해서 타겟에 업로드한다. 업로드한 파일은 타겟의 메모리 상에 올라가고, Shell 상에서 VxWorks 명령어를 사용해서 실행할 수 있다.
느낀 점
내가 처음 VxWorks 를 접했을 때, 가장 놀랐던 점은 configurable 한 커널을 만들 수 있다는 점이었다. 그것도 손쉽게 GUI 상에서 마우스 클릭 만으로 원하는 기능을 추가/삭제가 가능했다. 그 만큼 모듈화가 잘 되어있다는 뜻이기도 했다.
또한 Shell 을 제공함으로서 직접 만든 프로그램을 동적으로 손쉽게 실행해볼 수 있다는 장점이 있다.
아쉽게도, 커널에 관련한 소스코드는 볼 수 없었지만, RTOS 가 갖추어야 할 항목들을 정리할 수 있었다.