QEMU를 이용하면 임베디드 하드웨어 에뮬레이팅이 접근하기 쉽습니다.

저는 요즘 개발에서는 한 발 뒤로 빠져있는 입장이긴 한데, 그래도 여러모로 개발 관련 질문을 여럿 받습니다. 지금까지 해온 것도 있고 해서..

특히 임베디드를 좀 오랫동안 해왔고, 주변에 여전히 임베디드 하는 선배분들도 많고, 극소수지만 임베디드 하겠다고 하는 애들도 많이 보는데….

하드웨어 구매하기 좀 애매한 사정의 친구들이 보일 때가 있습니다. 그럴 때에는 그냥 전 QEMU를 이용하여 에뮬레이션 하는 방법을 알려주곤 합니다. QEMU 자체는 가상화되 지원하지만 CPU 아키텍쳐를 에뮬레이션 해주기도 하기 때문에 다양한 환경 기반으로도 작업을 해볼 수 있기 때문입니다.

뭐 하드웨어 가격 얼마나 한다고 하겠지만, 해보신 분들 아실 껍니다. 하드웨어 하나만 삽니까? 이것저것 뭐 한다고 더 지르고 그러면서 생각 이상으로 지출 많이 생기는 거 뻔한데….

기회가 되면 직접 돌려보는 것도 좋겠지만, 저는 아직 힘들면 우선 RTOS 같은 것들을 가르칠 땐 QEMU를 통한 환경으로 가르쳐 주는 것도 좋은 방법이라고 생각해서 관련 노하우를 전달해주곤 합니다. FreeRTOS 같은 녀석 이용할 때 QEMU 쓰는 게 얼마나 편한데요. 특정 타겟팅 환경 에뮬레이션 해서 이용하는 것도 편하고요.

…이참에 노하우로 정리해야 할 것들이 계속 늘어서 큰일입니다.

001 – Octave의 설치

https://octave.org 에서 다운로드 받을 수 있다.

윈도우는 전용 인스톨러로, 리눅스와 맥은 각각의 설치 위키를 보고 참조하면 된다. 맥은 homebrew로 설치하면 간단하다. 리눅스는 꼭 위키에 나온대로 설치하는 것이 좋다. 난 이용하기 좋은 윈도우 기준으로 설치에 관련된 몇 가지 이야기만 하겠다. 설치법은 쉬워서 헤멜 일도 없고…

윈도우의 경우, 설치가 이렇게 둘로 되어있다. 32비트 운영체제는 요즘 나오지 않기 때문에 아예 아래에 별도로 설명하고 있는데, 그냥 무시하겠다.

64비트 운영체제여도 두 가지 버전이 존재한다. 일반 버전과 64비트 선형대수 처리가 가능한 버전이다. 설명에도 적혀있듯 최소 32G 이상의 메모리와 함께 이용해야 한다. 그에 맞는 조건이나 연산이 필요한 경우에 컴퓨터 사양을 맞춰서 설졍하면 된다. (근데 아마 램만 64G는 있어야 원활할 것이다.)

설치 방법은 별도로 옵션을 선택하는 것이 없기 때문에 그냥 바로 다음, 다음으로도 쉽게 설치가 가능하다.

다음 글에서는 화면 구성과 함께 간단한 연산과 스크립트 코드 작성을 시작하겠다.

GNU Octave 가장 기초부터 적어보자

나는 대학 다니면서도, 대학원 다니면서도 MATLAB을 썼었다. 그냥 대학에 있으면서 사용할 수 있는 버전을 받아서 쓰고, 다들 그렇게 쓰고 있다보니 자연스럽게 MATLAB을 쓰고 있을 것이다. 그리고 그렇게 이용된 수치 해석 자료로 논문내고 그럴 것이고…

근데, 사회 나가거나 그러면 저거 참 쓰기 힘들다. 라이센스 문제나 가격이나 뭐 여러모로… 사줄 수 있는 회사나 연구실이면 상관 없겠는데 그거 아니면 생각보다 많이 못쓰게 된다.

그럴 꺼면 그냥 Octave를 처음부터 쓸 수 있으면 그게 더 좋은 거 아닌가 하는 생각을 엄청 하는데… 취급이 그냥 대용품은 대용품일 것이다 하고 마는 사람들이 생각보다 많았다. 의외로 문법 호환도 미묘하게 안되는 것도 있고, 각종 호환성 관련해서 몇몇 문제도 있고 하다보니깐…

아, 그리고 퍼포먼스 느린 게 생각 이상으로 실무에서 발목 잡는 건 이해한다. 근데 그런 곳은 이미 알아서 MATLAB 사서 쓰고 있을 것이다. ㅠㅠ

근데 생각보다 유전 알고리즘, 이미지 분석 패키지는 상당히 쓰기 좋은 녀석들도 있기도 하고, 공짜로 이용할 수 있는 만큼 오히려 시작을 이걸로 해야 한다고 보는 시각도 좀 있다. 그래야지 패키지를 개발할 수 있을 정도가 되어서 패키지쪽에도 많은 기능들이 더 늘어나 주고 하면 더더욱 좋은 것이니깐…

그래서 일단 이런 걸로 쓸 줄 안다는 것부터 깔고 가고 싶었다. 그리고 나조차도 이쪽은 문외한이라서… 같이 시작한다는 느낌으로 해보고 싶었다. 그래서 가장 기초부터 적어보려고 한다.