ClickCease 최고의 임베디드 Linux 개발 도구 - TuxCare

인기 뉴스레터 구독하기

4,500명 이상의 Linux 및 오픈소스 전문가와 함께하세요!

한 달에 두 번. 스팸이 없습니다.

최고의 임베디드 Linux 개발 도구

2020년 8월 25일 TuxCare 홍보팀

최고의 Linux 임베디드 개발 도구

대부분의 개발자는 개발용 그래픽 인터페이스에 익숙하기 때문에 IoT 및 임베디드 Linux 개발의 세계로 뛰어들면 더 많은 저수준 프로그래밍과 명령줄 실행이 필요한 새로운 경험을 하게 됩니다. IoT, GPS, 자동차 기술, 제조 또는 기타 저수준 전자 프로그래밍과 같은 시스템을 구축하려면 임베디드 개발 환경이 필요합니다.

임베디드 Linux는 시작하기 위한 많은 문서가 있는 오픈 소스이며 운영 체제를 사용하는 데 초기 비용이 거의 들지 않기 때문에 이러한 시스템 대부분에서 일반적으로 사용됩니다. 이러한 이유로 이 경로에 관심이 있는 개발자는 일반적으로 Linux 프로그래밍을 익히고 제품을 연결, 프로그래밍 및 배포하는 데 적합한 도구를 다운로드합니다. 초보자이든 새로운 도구를 찾고 있는 전문가이든 누구나 쉽게 시작할 수 있도록 최고의 임베디드 Linux 프로그래밍 도구 목록을 정리했습니다.

콘텐츠:

  1. 임베디드 시스템 편집자
  2. 컴파일러
  3. 어셈블러
  4. 디버거
  5. 링커
  6. 에뮬레이터
  7. 완벽한 소프트웨어 개발 환경

 

임베디드 시스템 편집자임베디드 시스템 편집자

개발자는 매일 작업하는 것이므로 일반적인 GUI 편집기에 익숙해야 합니다. 예를 들어 Visual Studio는 C# 및 VB.NET을 위한 일반적인 편집기입니다. Java 개발자는 일반적으로 이클립스나 넷빈을 사용합니다. Python 개발자는 PyCharm을 사용합니다. 모든 개발자는 선호하는 편집기를 가지고 있으며, 최고의 도구를 사용하면 개발자가 색상으로 구분된 코드를 쉽게 작성하여 다양한 구문을 더 쉽게 식별할 수 있습니다. 임베디드 프로그래밍은 주로 C 또는 C++로 이루어지므로 올바른 솔루션은 이 두 가지 언어를 지원해야 합니다.

 

  • Geany: Geany는 구문 강조 표시와 HTML 및 XML 태그 지원에 훨씬 더 중점을 둔 GUI입니다. 또한 Java, PHP, Python, Perl 및 Pascal과 호환됩니다. 유닉스 스타일 명령에 익숙하지 않은 대부분의 개발자가 가장 쉽게 사용할 수 있는 도구이기 때문에 이 도구를 먼저 소개합니다.
  • Lime: 서브라임 텍스트 편집기에 익숙한 개발자는 후속작인 라임을 좋아할 것입니다. 인터페이스는 Sublime과 유사하며 현재 인기 있는 Go 언어로 개발되었습니다.
  • 나노: 나노는 초보 및 고급 프로그래머에게 유용합니다. 명령줄 기반이지만 텍스트를 강조 표시하고 색상으로 구분하여 C 구문을 쉽게 이해할 수 있도록 합니다.
  • 블루피쉬: Bluefish에는 위에 나열된 도구보다 몇 가지 추가 기능이 있습니다. 웹 개발뿐만 아니라 리눅스 개발용이지만, 원격 파일도 사용할 수 있고 맞춤법 검사 및 실행 취소 옵션도 있습니다. 대규모 프로젝트의 경우, Bluefish는 더 나은 정리 기능을 갖추고 있으며 여러 프로젝트와 잘 작동합니다.
  • Vim: 말 그대로 모든 플랫폼에 존재하는 다재다능하고 고도로 구성 가능한 텍스트 편집기입니다. 비교적 높은 진입 장벽에도 불구하고 거의 모든 것을 사용자 지정할 수 있고 그래픽 모드를 사용할 수 없는 소형 임베디드 시스템에서도 거의 모든 곳에서 사용할 수 있다는 점에서 많은 임베디드 개발자가 선호합니다.

 

 

컴파일러
컴파일러

프로그램을 작성했다면 이제 컴파일할 차례입니다. 컴파일러는 사람이 작성한 코드를 노트북이나 서버와 같은 로컬 시스템에서 사용할 수 있도록 바이너리로 변환합니다. 임베디드 Linux에서는 호스트 머신이 아닌 대상 머신의 CPU용 바이너리를 생성하는 컴파일러가 필요합니다. 임베디드 개발용 컴파일러를 크로스 컴파일러 툴체인이라고도 합니다.

직접 조립할 수도 있지만, 특히 초보 개발자에게는 지루한 작업입니다. 대신 C 코드를 컴파일, 링크 및 어셈블할 수 있는 여러 도구가 존재합니다. Ubuntu와 같은 데비안 기반 Linux를 프로그래밍에 사용하는 경우 운영 체제에 이미 사용 가능한 도구가 있습니다. 다음 명령을 실행하여 설치하세요:

 

sudo apt install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

 

크로스 컴파일러 툴체인을 구축하고자 하는 경우, 컴파일러 기능을 제공하는 몇 가지 도구를 사용하면 처음부터 빌드할 필요가 없습니다:

  • Crosstool-NG: 이 기본 크로스 컴파일러 툴체인은 코드를 어셈블하고 필요한 링크 라이브러리를 생성합니다.
  • 빌드루트: 빌드루트는 훨씬 더 강력한 메뉴 시스템과 인터페이스를 갖추고 있어 초보자에게 좋습니다. 컴파일, 라이브러리 생성, 디렉토리 계층 구조를 구축하여 대규모 프로젝트를 더 쉽게 탐색할 수 있습니다.
  • Yocto: Yocto는 컴파일에서 한 단계 더 나아가 대상 임베디드 시스템을 위한 패키지를 빌드합니다. 바이너리와 라이브러리도 빌드하지만 패키지를 사용하면 외부 시스템에 배포하고 설치하기가 더 쉬워집니다. Yocto는 극도로 복잡하지만 가장 강력하고 다양한 기능을 갖춘 솔루션입니다.

자세히 읽어보세요: 임베디드 개발에 가장 적합한 Linux 배포판은 무엇인가요?

 

 

어셈블러

어셈블러

사람의 코드는 기계어로 어셈블되어야 합니다. 컴파일러는 사람의 코드를 객체 코드로 변환한 다음 바이너리로 변환합니다. 어셈블러는 기계어 코드와 훨씬 더 유사한 로우레벨 코드에서 직접 바이너리를 생성하여 훨씬 더 빠른 변환을 수행합니다. 어셈블러는 컴파일러보다 훨씬 빠르지만 저수준 언어로 제한됩니다. 저수준 어셈블리 언어로 작업하는 고급 개발자의 경우 어셈블러를 사용하여 코딩된 명령어를 CPU 실행과 매핑할 수 있습니다.

Linux에는 GNU 어셈블러(gas 또는 as라고도 함)라는 자체 어셈블러가 있습니다. 이 어셈블러는 Linux 운영 체제 전용 바이너리 도구 모음인 GNU Binutils에 포함되어 있습니다. 설치에 포함된 도구 목록은 여기에서 확인할 수 있습니다.

Binutils를 설치하려면 다음 명령을 실행합니다:

sudo apt 설치 빌드 에센셜

 

하지만 arm64로 컴파일해야 하는 경우 설치하세요:

sudo apt 설치 크로스빌드-에센셜-암64

 

 

디버거

디버거

모든 개발자는 코드를 테스트하고 디버깅해야 한다는 것을 알고 있습니다. 디버거를 사용하면 각 실행 줄에서 어떤 일이 발생하는지 확인할 수 있습니다. 코드가 구문상으로는 정확할 수 있지만 논리 오류로 인해 프로그램이 충돌할 수 있습니다. 디버거를 사용하면 이러한 오류를 제거할 수 있습니다.

GNU 프로젝트에는 다운로드할 수 있는 디버거가 있습니다. 이 디버거는 C 기반 프로그래밍에 특화되어 있으므로 임베디드 시스템 코드를 디버깅하는 데 적합합니다. 명령줄에서 설치하려면 다음 명령을 사용하세요:

 

sudo apt-get 설치 libc6-dbg gdb valgrind

 

링커

링커

프로그램을 빌드할 때 프로그램 작동에 필요한 여러 파일과 라이브러리가 있는 것이 일반적입니다. 이러한 파일은 컴파일 과정에서 링커를 사용하여 링크됩니다. 컴파일러가 링크를 자동으로 수행하는 경우가 많지만, 어셈블러를 사용하여 저수준 코드를 기계어로 변환하는 경우 프로젝트 파일을 서로 연결하기 위해 링커가 필요할 수 있습니다.

위에 나열된 컴파일러 중 하나를 사용하는 경우 링커가 필요하지 않을 수 있지만, GNU 프로젝트에는 고급 프로젝트 빌드에 사용할 수 있는 링커가 있습니다. 이 링커는 어셈블러 섹션에 언급된 Binutils와 함께 사용할 수 있습니다. Binutils를 설치하면 링커가 포함됩니다. 다음 명령을 사용하여 도구를 설치하세요:

 

sudo apt-get 설치 빌드 에센셜

 

에뮬레이터

에뮬레이터

Android 운영 체제용 프로그래밍을 해본 적이 있다면 에뮬레이터를 사용해 본 적이 있을 것입니다. 에뮬레이터는 대상 환경을 복제하는 프로그램입니다. 모든 인터페이스 항목, 명령, 출력 이미지 및 기능은 임베디드 장치에서 사용자에게 표시되는 것과 유사하게 로컬 컴퓨터에 표시됩니다.

가장 인기 있는 무료 도구는 QEMU입니다. QEMU를 사용하면 여러 Linux 배포판에서 창작물을 시각화할 수 있습니다. 데비안 또는 우분투 배포판의 경우 다음 명령을 실행하여 설치하세요:

 

sudo apt-get 설치 qemu

 

완벽한 소프트웨어 개발 환경

완벽한 소프트웨어 개발 환경

위의 소프트웨어 목록을 통해 개발 환경을 커스터마이징할 수 있지만, 별도의 리소스를 설치하지 않고도 모든 편집과 컴파일을 자동으로 처리하는 풀 IDE 패키지도 여러 개 있습니다. 아래의 IDE 개발 환경은 완전한 GUI와 크로스 플랫폼을 지원하며, 프로젝트에 임베드할 수 있는 웹 애플리케이션을 지원하는 것도 있습니다.

 

  • PyCharm: PyCharm은 Python 개발자를 위해 만들어졌지만 크로스 플랫폼을 지원하며 Linux 개발자에게도 잘 작동합니다. PyCharm의 개발사인 JetBrains는 임베디드 Linux 프로그래밍에 특별히 사용되는 CLion이라는 기능을 추가했습니다.
  • Qt 크리에이터: Qt Creator는 임베디드 시스템 프로그래밍을 위해 특별히 설계되었습니다. 자동차, IoT, TV, 모바일 앱 등 여러 대상 디바이스를 위한 에뮬레이터가 있습니다.
  • MPLAB X: PIC 마이크로컨트롤러 및 신호 컨트롤러의 임베디드 개발을 위해 설계된 IDE입니다.
  • Visual Studio: 대부분의 개발자는 Visual Studio를 .NET 프로그래밍으로 알고 있지만 VisualGDB 플러그인은 Visual Studio 인터페이스를 임베디드 시스템을 위한 크로스 플랫폼 Linux 개발 플랫폼으로 전환합니다.
  • 이클립스: Eclipse는 일반적인 Java 개발 IDE이지만, 자동차 소프트웨어 개발자를 위한 Eclipse IDE 애드온은 자동차 산업을 위한 솔루션을 만들기 위한 도구와 컴파일러를 제공합니다.
  • 아두이노: 임베디드 시스템 프로그래밍을 테스트해보고 싶은 개발자에게는 Arduino가 좋은 출발점이 될 수 있습니다. 여기에는 초보자가 학습할 수 있는 완벽한 환경을 위한 하드웨어와 소프트웨어가 포함되어 있습니다.
  • ARM Keil: 본격적인 개발 플랫폼의 경우, 거의 모든 ARM 기반 디바이스용 프로그래밍에 사용할 수 있는 ARM Keil을 사용할 수 있습니다. 시중에서 많이 사용되는 디바이스로 작업해야 하는 전문가에게 적합한 IDE입니다. 이 IDE에는 초보자가 배울 수 있는 코드 템플릿과 예제 프로젝트가 있습니다.

 

결론

임베디드 Linux 개발을 시작하려는 경우 위의 도구는 환경을 실행하는 데 필요한 전체 목록입니다. 임베디드 Linux 프로그래밍은 표준 데스크톱 프로그래밍과는 다른 환경이지만, IoT 및 자동차 시스템의 작동 방식에 입문할 수 있는 좋은 방법입니다.

Kernel 재부팅, 시스템 다운타임 또는 예정된 유지 보수 기간 없이 취약성 패치를 자동화하고 싶으신가요?

TuxCare로 라이브 패치에 대해 알아보기

TuxCare 게스트 작가 되기

시작하기

메일

가입

4,500

Linux & 오픈 소스
전문가!


뉴스레터 구독하기