본문 바로가기
프로그래밍/임베디드 프로그래머 생활

OS가 있는 분야

by solution online 2020. 12. 13.
728x90
반응형

"임베디드 프로그래머 업무 분야" 소개글에서 OS 있는 분야에 대해 설명 드린 적이 있는데 상세하게 설명 드리는 것이 좋을 같아 이번 글을 작성합니다.

 

임베디드 시스템의 OS 대표적으로 linux 많이 사용하고 개발 환경은 ubuntu 많이 사용합니다.

Linux 사용하는 환경에서는 kernel 핵심이기 때문에 시스템에 필요한 기능들이 있는 kernel 골라서 사용합니다.

예를 들면 IPv6 사용을 위해서는 kernel 3.0 이상을 써야 하고 IPv6 필요없는 경우 kernel 3.0 미만을 사용합니다. 물론 kernel 2.x에도 v6 사용할 있지만 안정성이 확보되지 않기 때문에 많은 버그와 그에 따른 디버깅을 진행해야 합니다.

Chip사나 linux 직접 배포하는 회사라면 kernel 버전을 신중히 골라 테스트 최적화 여러 검증을 진행하겠지만 받아서 쓰는 회사인 경우 chip사에서 전달해 주는 SDK kernel 포함되어 있기 때문에 크게 수정할 일은 없습니다. 다만, 고객사의 요청에 따른 기능 구현 새로운 기능(WiFi6, Bluetooth 5 ) 추가시 kernel 변경하거나 수정해야 되는 경우도 있습니다. 이런 업무를 맡아야 회사에서 인정도 받고 능력도 향상 시킬 있습니다.

Kernel 버전에 따라 빌드 환경도 달라지다 보니 ubuntu 사용 버전도 나뉘게 됩니다. 그것 역시 chip 사서 쓰는 회사라면 chip사에서 지정해 주기 때문에 크게 걱정하실 필요는 없습니다

 

OS 있는 다른 분야는 많이들 아시는 android 입니다. Android 크게 가지 영역으로 단순하게 나누어 있습니다. 바로 C언어와 JAVA 입니다.

구글에 "android architecture" 라고 검색해 보시면 복잡하게 나뉘어 있는 모습을 보실 있는데 밑에를 보시면 "linux kernel" 이라고 되어 있습니다. , 핵심이 되는 부분은 kernel 이라는 뜻이죠. 그래서 linux OS쪽을 담당하는 업무를 한다면 android 분야로 옮기는 것에 도움이 됩니다.

물론 처음부터 android 하셨던 하고는 차이가 있겠죠 ㅎㅎ

 

임베디드 프로그래머에게 업무 분야가 가끔 애매할 때가 있습니다.

Android 같은 경우 linux kernel, hal, framework, application 파트로 나누어 보는데 어떻게 보면 framwork, application 임베디드 시스템에서 개발하는 것이다 보니 임베디드 프로그래머라고 하는 곳도 있고, 아닌 곳도 있습니다. 실제 자세히 따져보면 framework, application 임베디드 프로그래머라고 하기는 어렵습니다. 보통 android app 개발자라 불리는 분들이 framwork, application 담당하고 오래 일하신 분들은 app 관련된 kernel, hal 부분도 수정하십니다. ? 분야에 맞게 협업이 잘되면 좋겠지만 사실 그렇지 않거든요. 그리고 본인의 역량을 늘리려면 많은 것을 해야 하고 항상 상대방이 대기하고 있는 것이 아니기 때문에 혼자서 하게 되는 경우도 많습니다

 

OS 있는 분야 다른 것은 Mac, 타이젠 등이 있고요. 분야들은 특정 회사에서만 쓰다 보니 해당 회사에 입사하셔야 사용해 보실 있습니다

그러나 이런 OS들의 기초는 linux kernel 이란 !

따라서 kernel 개발자, device driver 개발자로 임베디드 프로그래머 생활하시는 것이 이직시 넓은 선택을 있으며, 연봉도 높일 있습니다 ㅎㅎ

중소기업에 가면 사실 모든 분야를 하게 됩니다. Kernel 부터 application 까지요 ㅎㅎ 그래서 넓은 업무 분야를 경험해 있지만 한편으로 전문성은 떨어집니다.

중견 기업, 대기업들은 제가 봤을 최소 석사 이상은 되셔야 가능했습니다. 제가 좋게 chip사에 취직한 적이 있는데 실제 chip 개발에 관련된 업무를 하시는 분들은 , 박사였습니다

 

여러 임베디드 업체를 고민 중이시라면 엄청난 연봉과 수명이 거의 되가는 것이 아니라면 OS 사용하는 시스템을 개발하는 회사로 이직하는 것이 좋을 같습니다

이쪽을 준비하시는, 시작하시는 분이라면 진지하게 대학원 진학도 고민해 보실 것은 추천 드립니다. 이왕 대학원 진학을 목표로 하셨다면 ! 박사까지 하시길 추천 드립니다!

 

제가 거의 글로만 작성하다 보니 이해가 안되실 수도 있을 같아 실제 제가 작업했던 업무들로 임베디드 프로그래머가 이런 것들을 하는구나~ 라는 가이드가 있게 글을 작성해 볼까 합니다

 

궁금한 사항은 언제든 댓글 달아주세요~~

728x90
반응형