임베디드 임베디드 단어는 아주 옛날부터 많이 들어봤었다.
그런데 정확한 정의를 모르겠다. 임베디드가 뭘까? 임베디드 SW는 컴퓨터(PC) SW랑 뭐가 다른걸까??
일단 이해를 돕기 위해 가장 간단히 설명하면 임베디드 = 컴퓨터다.
편의상 구분짓기 위해서 임베디드 라고 칭하는 거지 임베디드도 사실 그냥 컴퓨터다.
근데 키보드,마우스,모니터가 없는 컴퓨터다. ( 대신 간단한 버튼 몇개와 LCD화면, LED 램프 등이 달려있다.)
임베디드SW랑 컴퓨터SW는 뭐가 다를까?
본질적으로 똑같다.
임베디드 개발자가 개발하는 SW가 사실은 PC에도 이미 깔려서 돌아가고 있다.
(윈도우와 같은 OS, 그리고 각종 HW 드라이버들 )
윈도우 OS는 컴퓨터를 사면 자동으로 깔려있고.. 키보드도 마우스도 컴퓨터를 켜면 알아서 동작하니까
의문을 가져 본 적이 없을 것이다.
내가 키보드 자판을 두드리면 어떻게 그걸 글자로 인식하지? 내가 마우스를 움직이면 어떻게 마우스포인터가 화면에 나타나지??
컴퓨터의 두뇌라고 불리는 CPU가 하는 일은 SW를 실행하는 것이다.
컴퓨터는 SW만 실행하고 있는데 키보드 마우스 모니터가 어떻게 동작하는걸까??
별도의 SW가 안돌아가고 있는거처럼 느껴지지만 사실은 키보드도 마우스도 동작시키기 위해서 드라이버라는 SW가 필요하다. 근데 그게 이미 깔려있어서 문제 없이 동작하는 것이다.
옛날에 집에서 프린터기를 써 본 사람은 알 것이다. 프린터는 연결만 한다고 바로 쓸 수가 없다. 프린터 드라이버라는 SW를 깔아야 프린터가 동작한다.
옛날에 스피커를 새로 살아서 달아본 사람은 알 수도 있다. 한번씩 스피커도 사운드 드라이버 제대로 안깔면 소리 안나던 시절이 있었다. (요새도 있나 ??)
그리고 지금 우리가 쓰고 있는 모니터,키보드,마우스가 정상동작하는것도 다 그래픽드라이버,키보드드라이버,마우스드라이버라는 SW가 깔려서 우리 모르게 돌아가고 있는 것이다.
제어판에 하드웨어 관련 메뉴에 들어가서 드라이버를 지워봐라. 동작안한다.
PC SW와 임베디드 SW가 다른것처럼 느껴지는 것은 바로 이부분이다.
임베디드 개발자는 보통 각종 HW들을 직접적으로 제어하기 위한 드라이버 SW를 짜는것이 주요한 업무이다.
근데 PC 를 사용하는 사람들은 그런 HW를 제어하는 SW는 직접 짜는게 아니라 CD나 인터넷으로 다운받아서 쓰는 제품이라고 생각하고 있다. (그리고 한번 깔아두면 내가 더블클릭해서 별도의 실행파일을 켜지 않기 때문에 SW라는 인식 자체도 없다.)
컴퓨터를 사면 당연하게 깔려있는 드라이버SW와 윈도우 SW는 누가 개발했는지 생각해 본적이 있는가??
---> 바로!!!! 그걸 개발하는 사람이 임베디드 개발자다.
다시 한번 예를 들면.
우리가 비쥬어 스튜디오에서 printf(" hello world"); 라는 프로그래밍을 해본적 있을 것이다. 저걸 실행하면 모니터에 Hello World가 출력된다.
그게 어떻게 가능할지 생각해본적 있는가? printf라는 c언어를 알아듣고 실행하는 주체는 CPU다.
CPU랑 모니터는 엄연히 다른 , 별도의 HW이다.
ㄱ근데 CPU가 저 명령어를 수행했더니 어떻게 모니터에 화면이 출력됐을까??
아니 그보다 앞서서.. printf 함수는 누가 어떻게 만든거지..???
그 printf 함수가 바로 임베디드 SW이고, 그걸 만드는 사람이 임베디드 개발자다.
그리고 대부분의 PC SW 개발자는 그러한 토대 위에서 application을 짜는 것이다.
참고로 임베디드 SW도 그런 하드웨어와 직접적인 연관이 있는 SW만 있는건 아니고 그걸 기반으로한 application SW도
짠다.
보통 application SW / Bsw(basic sw), 펌웨어 이런식으로 구분하기도한다.(정확한 구분은 아님)
주절주절 쓴 글이라 나 말고 누가 읽을 사람이 있을려나 모르겠다. 현타오니까 일단 여기까지만 써야지.
'임베디드 쌩초보 공부' 카테고리의 다른 글
Atmega128 MCU에 대하여 (0) | 2020.04.08 |
---|---|
컴퓨터 SW . 그리고 2진수에 대하여 (0) | 2019.07.04 |
공부한 내용 정리해두는 낙서장 (0) | 2019.07.03 |