Embedded/이론

[Embedded] 임베디드 리눅스란

유제필 2022. 11. 15. 21:41

임베디드 리눅스는 간단하게 스마트폰, 셋톱 박스, TV, 라우터 등 부터 크게는 산업용 장치, 의료 감시 장치 등                   임베디드 컴퓨터 시스템 상에서 사용하는 리눅스를 일컫는 말이다.

리눅스는 1991년에 최초 버전이 출시 되었는데, 약 8년 뒤인 1999년 정도에 처음으로 임베디드 장치에 쓸만해 졌다.

액시스(Axis Communication)의 네트워크 카메라, 티보(Tivo)의 DVR(Digital Video Recorder) 출시를 시작으로,

임베디드 리눅스가 보편화되어 사용하게 되었다.

임베디드 장치에 리눅스가 탑재되어 사용된 이유는 임베디드 제품이 더욱 복잡하고, 다양한 기능들이 많아져 운영체제가 필요하게 된 것이다.

예를 들어, TV는 단순히 영상만 보여주기만 하는 것이 아닌, 인터넷에 연결되어 스마트폰, 태블릿 등 미디어 서버로부터 콘텐츠를 내려 받거나

게임 하는 등 복잡한 기능들이 많아져 운영체제 없이 구동이 불가하는 등 이라는 이유로 탑재되기 시작했다.

임베디드 리눅스 채택 요인

1. 리눅스는 좋은 스케줄러와 네트워크 스택, USB, Wifi, Bluetooth 등 여러 저장 매체를 지원하며,멀티미디어 장치를 잘 지원하는 등 제품이 동작하기에 필요한 기능을 고루 갖고 있다.

2. 리눅스는 SoC 설계 중 흔히 볼 수 있는 ARM, MIPS, x86, 파워 PC 등 넓은 범위의 프로세스 아키텍처가 이식되어 있다.

3. 리눅스는 오픈소스 이므로 필요에 따라 소스를 수정해 사용할 수 있다.

4. 오픈소스 라이선스는 소스 코드에 대한 접근을 보장하며, 특정 벤더에 종속되지 않는다.

5. 리눅스는 유연하므로, 메모리와 저장 공간을 절약하도록 필요 없는 기능을 제거할 수 있다.

임베디드 리눅스의 4 요소

임베디드 리눅스의 모든 프로젝트는 이 4가지의 요소로 구성되어 있고, 배포하면서 시작한다. 임베디드 리눅스 시스템에서 가장 기본적이며, 가장 중요한 요소이다.

1. 툴체인(toolchain) : 타깃 장치를 위한 만드는 데 필요한 컴파일러와 기타 도구로 구성된다.

나머지는 모두 툴체인에 의존한다.

2. 부트로더(bootloader) : 보드를 초기화하고 리눅스 커널을 로드하는 프로그램이다.

3. 커널(kernel) : 시스템의 심장부로, 시스템 자원을 관리하고 하드웨어와의 접점이다.

4. 루트 파일시스템(root filesystem) : 커널이 초기화를 끝낸 뒤, 실행되는 라이브러리와 프로그램을 담고 있다.

임베디드 리눅스용 하드웨어

임베디드에 리눅스를 올려 사용하기 위해 하드웨어를 설계할 때 주의해야 할 점이 있다.

1. 커널이 지원하는 CPU 아키텍처를 확인해야 한다.

2. 적절한 크기의 램(RAM)이 필요하다.

3. 비휘발성 메모리가 있어야 한다. 흔히 플래시 메모리를 사용한다.

4. 디버그 포트가 있어야 한다. (개발 시 매우 유용하며 시간이 단축됨)