이제 임베디드 OS도 자작 시대!

By | 2009년 3월 20일

시대의 흐름이 유비쿼터스와 모바일 중심으로 흘러가는 시점에, 임베디드 환경에서 동작하는 운영체제를 개발해 보는 것은 충분한 가치와 의미가 있다고 본다.
– 숭실대학교 김명호 교수

『A Book on C』를 번역하신 김명호 교수님 말씀처럼 임베디드 환경이 점점 주목받는 시대임은 분명합니다. 지하철을 타면 한 사람도 빠짐없이 휴대전화나 PMP, MP3 플레이어 등을 주시하고 있고, 통신 업체나 개발 업체들이 위짓이나 게임 등 임베디드 기기용 애플리케이션에 집중하려는 움직임도 이미 시작되었구요. 이런 분위기 속에 또 하나의 신간을 소개합니다. 『도전! 임베디드 OS 만들기(코딩하며 배우는 운영체제 이론)

표지 시안에도 각종 임베디드 기기를 제어하고 운용하는 임베디드 OS의 모습이 잘 나타나 있죠? ^^

사용자 삽입 이미지

기존의 ‘OS 만들기’ 류의 책들이 데스크톱 환경에서 그래픽 유저 인터페이스(GUI)가 포함된 운영체제를 만들어 보는 데 집중했다면, 『도전! 임베디드 OS 만들기』에서는 화려한 모니터 대신 LED를 깜박거리고, 키보드 대신 스위치로 입력을 받는 임베디드 운영체제를 만들어 봅니다.

사실, 임베디드 운영체제라고는 하나 사용자의 요청을 CPU 혹은 MPU(Micro Processing Unit)에 전달하여, 사용자가 원하는대로 하드웨어를 움직이게 도와주는 역할을 한다는 측면에서 일반적인 운영체제와 같다고 할 수 있습니다. 여기에 임베디드만의 독특함을 보여주는 LED 제어나 스위치 입력, 임베디드 아키텍처 설명 등이 덧붙어 있다고 보시면 됩니다.

사용자 삽입 이미지

출처 : FA리눅스 http://falinux.com/zproducts/ez-x5.php


또 하나 특별한 점이 있다면, ‘부트로더’를 직접 만들지 않는다는 점입니다. 부트로더는 운영체제에 속하지 않으면서도 운영체제를 구동시키기 위한 토대와 같은 것인데요. 문제는 부트로더를 설명하려면 그 분량이 만만치 않다는 점입니다. 게다가 꽤나 어려운 부분이기도 해서 운영체제를 개발하려던 개발자들의 불타는 의욕에 찬물을 끼얹기도 합니다. 그래서 이 책에서는 ‘부트로더’가 무엇인지 정도만 설명하고, 공개된 ‘부트로더’ 소스를 빌려다가 운영체제를 개발합니다. 부트로더만 만들어도 운영체제 만들기의 절반은 끝난다는 말도 있으니, 이 책을 집어든 순간 여러분만의 운영체제를 절반쯤 만든 셈입니다. ^^

그리고 부제에도 나와 있듯이 이 책은 소스코드로 설명을 대신합니다. 저자이신 이만우 님께서 개발자들은 한글 설명보다는 소스코드를 보고 이해하기가 더 편하다고 하시더라구요. 그래서 소스코드가 조금 비효율적이긴 해도 이해하기 쉽게 작성하셨답니다. C를 다뤄보신 개발자라면 쉽게 이해할 수 있을 거예요. ^^

int msg_sem_v(int semnum)
{
    semnum += SEMSTART;

    if(semnum > SEMEND || semnum < SEMSTART){
        return -1;
    }

    msgmng.free_msg_pool[semnum].flag++;

    return 0;
}

이 책은 원래 KLDP에서 『OS를 만들어 봅시다. 참 쉽죠?』라는 제목으로 연재되었던 강좌입니다. 이 강좌를 토대로, 설명으로만 이해하기 어려운 부분에는 그림을 보강하고, 임베디드 개발에 익숙치 않은 분들을 위한 용어 설명도 많이 넣었습니다. 무엇보다도 이지보드를 구입하지 못한 개발자들도 실습해 볼 수 있도록 에뮬레이터(qemu)용 환경 구축과 코드도 추가했답니다.

사용자 삽입 이미지
그나저나 원래 강좌의 제목에서는 ‘참 쉽게 그림을 그리시던’ 밥 로스 선생님이 떠오르죠? 그와 함께 좌절의 기억도요. ‘임베디드’나 ‘운영체제’라는 단어만으로도 이미 머리가 지끈거릴 분들이 많이 계실텐데, 연재될 때부터 독자들의 의견이 ‘쉽게 설명해서 좋다’였으니 이번 기회에 한번 도전해보세요! ^^ 강컴, 교보, 예스24, 인터파크에서 예약 판매 중입니다.

사용자 삽입 이미지
.

7 thoughts on “이제 임베디드 OS도 자작 시대!

  1. 레몬에이드

    핫핫핫

    참 쉬… 쉬워 보이네요 (쿨럭)
    예제로 따라하며 만드는 것이니 재밌을 것 같습니다
    음… 근데 하드웨어 테스트 킷은 부록으로 주시나요? ㅎ

    Reply
    1. 너굴;

      안녕하세요 레몬에이드 님.
      재미있을 겁니다. 한 번 시도해보세요. ^^
      그리고 하드웨어 킷은… 가격이… oTL…
      대신 에뮬레이터를 사용하셔서 실습하실 수 있습니다. (Windows나 Linux 모두 잘 됩니다.)

      Reply
  2. 하얀말

    보드 안 사면 말짱 도루묵인 줄 알았더니, QEMU로 하는 방법도 책에 있다니 다행이네요. 이런 거 할라면 의외로 환경 구성부터 좌절스럽다는 ^^;

    Reply
    1. 너굴;

      저희도 처음엔 ‘보드 필수’라는 것 때문에 고민을 많이 했는데요.
      다행히 저자께서 3일 밤낮을 새며 qemu를 연구한 끝에 에뮬레이터에서도 실습이 가능하게 되었답니다. ^^

      Reply
  3. 훈희

    우와. 인사이트의 국내서는 참 오랫만에 보는거 같네요.. 처음보는거 같기도 하고.

    Reply
    1. 너굴;

      IT 쪽 국내서가 참 귀하죠.
      인사이트에서도 집필서로는 두 번째랍니다.
      첫 번째 집필서는 스테디셀러인 『Java 세상을 덮친 Eclipse』구요. ^^

      Reply
  4. Pingback: ahastudio's me2DAY

댓글 남기기