뭘 알아야 이해를 하지!
불과 5년 전만해도 일반 사람들에게는 무척 생소한 단어였을테고 지금도 여전히 생소하게 들리는 사람들이 있겠죠. 하지만 근래에 들어서 우리나라가 IT강대국으로 우뚝 서면서부터 많은 개발자들이 관심을 가지고 있는 분야죠.
국어사전에 보면 임베디드 시스템이란 임베디드-내장형, 시스템-일정한 원리를 따라서 낱낱의 부분이 짜임새 있게 조직되어 통일된 전체이라고 해요. (한국말은 역시 어려워-.,- )
우리 일상에서 언제나 동고동락하는 임베디드 시스템 제품들이 많이 있는데, 가장 대표적인 것이 휴대폰이라고 할 수 있어요. 이러한 제품을 개발하는 사람들을 임베디드 시스템 엔지니어라고 하는데, 그럼 과연 임베디드 시스템 엔지니어는 우리나라에 몇 명이나 될까요?
정확히 파악 되지는 않았지만 우선 휴대폰 개발회사의 엔지니어, 네비게이션 개발회사, 가전제품 개발회사, 자동차 엔진 개발회사, 카오스크 개발회사 등등 ...정말 많은 엔지니어가 있어요.
임베디드 시스템이 우리나라에 많이 알려진 편이라고 하지만 제 생각엔 지금은 시작에 불과하다고 느껴져요. 왜냐하면 지금까지의 우리미래는 SF 영화에 나오는 것들이 현실에서 실현되면서 어제보다 나은 오늘이라고 생각하고 있고 앞으로도 그렇게 될 건데 대부분 우리의 미래라고 하는 것중 출발점이 되는 것이 바로 임베디드 시스템이라고 해도 과언이 아닌 것......
그럼 일반 가정용 컴퓨터와 임베디드 시스템의 차이점이 뭘까요? 그건 말이죠. 두 가지로 정리를 해 드릴께요.
첫 번째는 범용과 특수용의 차이점이랍니다. 즉, 개인용 컴퓨터는 인터넷, 영화, 음악, 문서작성, 그림 편집, TV 시청 등 다양한 목적으로 사용 되지만 임베디드 시스템은 DMB, MP3, PMP 등과 같이 특수 목적으로만 사용되지요.
두 번째는 휴대성인데요. 가정용 컴퓨터는 휴대가 매우 불편하지만 반면 임베디드 시스템은 휴대가 간편하죠. 하지만 휴대성이 편리한 반면에 항상 고려 되야 사항이 있는데 바로 전원 문제랍니다.
그럼 가정용 컴퓨터와 임베디드 시스템의 장단점을 정리하면,
그럼 왜 우리는 임베디드 시스템이 어려운 걸까요?
그건 가정용 컴퓨터는 마더보드에 있는 주변 장치들이 표준화 되어 있어서 프로그램 개발이 편리하답니다. 반면에, 임베디드 시스템은 특수 목적으로 만들다 보니 워낙 다양한 주변장치들로 인해 프로그램 개발이 쉽지가 않아요. 특히나 새로운 주변장치를 제품에 넣는다면, 프로그램 전체를 새롭게 만들어야 하고, 안정성 테스트 및 성능 테스트 과정을 거쳐야 하기 때문에 개발에 어려움이 많답니다.
이쯤에서 임베디드 시스템의 용어를 잠시 살펴보면, 가정용 컴퓨터를 호스트 피시(Host pc)라고 부르고 임베디드 시스템 하드웨어를 타겟이라고 부른답니다. 그리고 임베디드용 컴파일러는 크로스컴파일러하고 부르죠. 사람은 언어를 통해 대화를 하듯이 임베디드 시스템에서도 언어가 필요한데, 대표적으로 사용되는 언어가 바로 씨(C)언어 입니다. 씨(C) 언어를 크로스 컴파일러로 컴파일을 하면 임베디드 시스템 언어로 만들어 진답니다. 임베디드 시스템 언어를 어셈블리 언어라고 하죠.
앞으로 이러한 용어들을 많이 접하시게 될 텐데 보다 자세한 내용을 앞으로 계속 살펴봐요.
댓글