오늘은 짧게 고찰만 잠깐 할려고 합니다. 작년까지만 해도 한달에 4~5개 정도 글을 올리는 것이 다였는데 요즘 너무 달린 것 같아서 제 자신도 어리둥절하네요.


임베디드기기에 대해 얼마나 알고 계시나요?


Embedded 사전을 찾아보면 내장된, 내장형인, 품고있는 등으로 해석이 됩니다. 즉 Embedded OS란 내장형OS란 의미입니다. Windows나 우리가 사용하는 일반PC용 배포판과 다르게 특정기기에 내장되어 사용되는 OS란 의미입니다. 그런데 최근에는 경계가 많이 모호해져서 단순펌웨어 수준인데 OS로 취급되는 것도 있고 OS라고 하지만 알고보면 그냥 펌웨어수준인 경우도 있습니다.


대표적인 것이 NAS로 유명한 시놀로지입니다. 시놀로지OS는 NAS구동에 쓰이는 일종의 임베디드OS이자 펌웨어인데 리눅스기반이라서 일반PC용으로 포팅이 이루어졌습니다. 역으로 리눅스 기반이라 기능확장도 뛰어나지요. 엄밀히말하면 NAS용 펌웨어지만 범용OS급의 확장성과 이식성을 갖추고 있다는 의미입니다. 이쯤되면 그냥 범용OS수준이지요.


범용 OS는 만드는 것이 굉장히 어렵습니다. 수많은 부품들을 다 지원하는 것이 쉽지 않거든요. Windows는 뭐냐고 하시는 분들도 있겠지만 Windows도 일부장치와 호환문제로 곤혹을 겪는 경우가 많습니다. 산업용 장비들이 구형OS를 사용하는 이유이기도 합니다. 2017년 현재에도 DOS로 구동되는 장비들이 있고 보기 힘든 OS/2장비들도 현역인 곳이 아직 많습니다.


하지만 임베디드라면? 이야기가 많이 달라집니다. 일단 특정기기만을 지원하므로 다른 기기에대한 기능을 쳐낼 수있고 지원기기에 대한 특정 기능을 추가할 수도 있습니다. 다른 기기로 이식을 하는 일은 있을 수 있지만 해당OS를 그대로 사용할리는 없지요. 이런 쪽으로는 리눅스가 정말 딱이라는 생각이 들 수 있습니다.


임베디드기기는 PDA, 디지털 카메라, 스마트TV, 스마트폰 외에도 넓게 보면 로봇청소기, 은행ATM, 길거리 광고판, 산업용 장비 들도 특정 기기를 위한 세팅이 되어있으므로 임베디드기기라고도 볼 수 있습니다. 여기에 흔히 사용하는 IP공유기도 엄밀히 말하면 임베디드기기가 맞습니다.


그럼 여기서 임베디드 리눅스는 어디까지 자리를 잡고 있을까요?


아쉽게도 리눅스는 임베디드OS로 위상이 애매한 상황입니다.


임베디드기기는 그 자체로 상용제품이 될 수 있습니다. 그리고 지속적인 펌웨어 업그레이드를 통해 기기의 성능을 끌어올릴 필요가 있지요. 하지만 리눅스 커널을 기기에 맞게 수정하고 조합하는 일이 쉽지가 않습니다. 심한 경우에는 임베디드 기기를 만드는 곳에서 다 해결을 해야할 수도 있습니다. 회사같은 곳에서는 이런 것을 좋아하지 않습니다. 책임질 일만 늘어나는 셈이거든요.


예전의 아이스테이션이란 PMP가 있었고 OS로 임베디드 리눅스를 썼었습니다. 성능도 나쁘지 않았고 인기도 많이 있었는데 어느날 일부모델에 한해서 WindowsCE기반의 펌웨어를 새로 배포했었습니다. 왜 그랬을까요?


사실 아이스테이션은 신생업체였고 나름 대박을 쳤지만 경쟁업체(아이리버 등)에 비해 개발능력이 좋은 회사는 아니었습니다. 새로운 모델을 찍어내기 시작하고 해당 모델의 파생형이 생기는 등 라인업이 많아지면서 이를 관리를 해야했는데 이를 전부 관리하기가 어려웠을 겁니다. 회사의 규모가 작은 탓에 수많은 제품의 펌웨어를 관리하는 것이 힘들어졌고 소위 말하는 버려진 모델도 생겨났을겁니다. 그래서 상대적으로 개발과 관리가 쉬운 WindowsCE를 택한 것을 보입니다.


만약 지금이라면 안드로이드를 택하는 것이 좋은 생각이었을 겁니다. 하지만 안드로이드가 지금의 위상이 생기기 전에 아이스테이션이란 업체는 사라져버리고 말았습니다.


안드로이드 이야기가 나와서 말하는 것이지만 안드로이드는 과연 임베디드 리눅스라고 볼 수 있을까요? 안드로이드는 애매한 위치를 가지고 있습니다. 보통 임베디드 리눅스라고 하는 것은 우리가 흔히 사용하는 리눅스 프로그램들을 사용하지만 특정기기용으로 특화된 OS를 말하는 것인데 안드로이드는 임베디드OS는 맞지만 이 부분이 애매하기 때문에 임베디드 리눅스에 넣기도 하고 빼기도 합니다. 안드로이드 전용 애플리케이션을 쓰는 경우가 많거든요. 안드로이드를 빼는 순간 임베디드 리눅스의 점유율은 바닥으로 처박힙니다. 그만큼 기업시장에서 (안드로이드를 제외한)임베디드 리눅스는 그렇게 상황이 좋지 않다는 의미이기도 합니다.(물론 국내이야기입니다.)


다만, GBusTV에 우분투를 사용하고 있고 스마트TV 셋톱박스에 리눅스가 사용되는 것이 확인 되는 것을 보면 시장 점유율이 0이 되는 일은 없을 것이라는 생각이 듭니다. 다만, 책임문제라는 고질적인 문제가 해결되지 않으면 임베디드 리눅스가 임베디드 시장에 영향이 높아지기는 어려울 것이라고 생각합니다. POS기 해킹사건이나 블루스크린 광고판이 나오는데도 Windows기반의 임베디드 기기가 시장을 잡고있는 이유는 책임소재가 명확하고 관리가 쉽다는 바로 그 점이 시장에서 먹히고 있는 것일겁니다.


P.S 공공부문이나 산업부문에서는 리눅스가 찬밥이지만 네트워크쪽은 리눅스만한 것이 없더군요. 거의 왠만한 장비는 유닉스가 50% 리눅스가 거의 50%입니다. 다만 이쪽은 책임소재가 명확하고 이미 검증된 경우가 많아서 그런것으로 보입니다.


P.S-2 안드로이드가 리눅스가 맞기는 하지만 시장에서는 임베디드 리눅스라고 하지 않고 안드로이드라고 따로 지칭을 합니다. 즉, 리눅스커널을 쓴 별도의 OS로 취급한다고 생각하시면 될 것 같습니다. 몇몇 임베디드 기기의 카탈로그들을 참고 했습니다.

,