임베디드 운영체제
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
임베디드 운영체제는 특정 기기 내에서 하드웨어를 제어하고 응용 프로그램을 실행하기 위해 설계된 운영 체제이다. 장치 드라이버와 API를 통해 장치를 제어하고, 스케줄러를 통한 복잡한 제어 구현, 기존 개발 리소스 활용 등을 목적으로 도입된다. 임베디드 운영체제는 범용 운영 체제와 달리 ROM에 기록되어 사용되며, 비용 절감을 위해 본체 및 작업 메모리가 작고, 응용 프로그램에 특화된 커스터마이징과 실시간성을 고려한 스케줄러를 사용할 수 있다. 1970년대 후반 실시간 멀티태스킹 커널 개념이 등장한 이후, VRTX32, WinCE, OS-9, VxWorks 등 다양한 운영체제가 개발되었다. 최근에는 사물 인터넷 환경에서 저전력 소비, 안전성, 네트워크 기능 등을 위해 임베디드 리눅스, OpenHarmony, FreeRTOS 등 다양한 운영체제가 사용되며, 고성능 단말에는 리눅스, NetBSD, Windows와 같은 범용 운영 체제도 활용된다.
더 읽어볼만한 페이지
- 임베디드 운영체제 - 블랙베리 10
블랙베리 10은 2013년에 출시된 블랙베리 리미티드의 모바일 운영 체제로, 터치스크린 및 물리 키보드 스마트폰을 지원하며 제스처 기반 인터페이스, 블랙베리 허브 등의 기능을 제공했으나 2022년에 공식 지원이 종료되었다. - 임베디드 운영체제 - QNX
QNX는 고든 벨과 댄 도지가 개발한 마이크로커널 기반의 실시간 운영 체제로, 산업용 기계 제어 분야에서 신뢰성을 인정받아 현재는 블랙베리가 소유하며 자동차 인포테인먼트 시스템, 자율 주행 시스템 등 다양한 임베디드 시스템에 활용되고, POSIX 표준 준수로 유닉스 계열 소프트웨어와 호환된다.
임베디드 운영체제 | |
---|---|
개요 | |
유형 | 운영 체제 |
하위 유형 | 실시간 운영 체제 (RTOS) |
사용 분야 | 임베디드 시스템 |
특징 | |
자원 제약 | 제한된 자원 (메모리, 처리 능력) |
실시간성 | 실시간 작업 처리 중요 |
특수 목적 | 특정 작업에 최적화 |
신뢰성 | 높은 신뢰성 요구 |
전력 효율성 | 저전력 소비 중요 |
예시 | |
상용 | QNX VxWorks Windows Embedded Compact INTEGRITY |
오픈 소스 | FreeRTOS eCos µC/OS-II RT-Thread Apache NuttX Zephyr Mbed OS Contiki Tizen Yocto |
리눅스 기반 | Embedded Linux Android webOS Sailfish OS |
고려 사항 | |
커널 크기 | 작은 커널 크기 선호 |
실시간 성능 | 실시간 응답성 중요 |
전력 관리 | 효율적인 전력 관리 기능 |
하드웨어 지원 | 다양한 하드웨어 플랫폼 지원 |
개발 도구 | 개발 도구 및 SDK 지원 |
라이선스 | 라이선스 조건 확인 |
활용 사례 | |
산업 자동화 | 로봇 제어 PLC (Programmable Logic Controller) |
자동차 | 엔진 제어 ABS (Anti-lock Braking System) 인포테인먼트 시스템 |
의료 기기 | 환자 모니터링 장치 의료 영상 장비 |
가전 제품 | 스마트 TV 냉장고 세탁기 |
통신 장비 | 라우터 스위치 휴대 전화 |
항공 우주 | 항공기 제어 시스템 위성 시스템 |
관련 기술 | |
마이크로컨트롤러 | 임베디드 시스템의 핵심 부품 |
펌웨어 | 하드웨어 제어를 위한 소프트웨어 |
장치 드라이버 | 하드웨어와 운영 체제 간의 인터페이스 |
BSP (Board Support Package) | 특정 하드웨어 플랫폼 지원을 위한 소프트웨어 패키지 |
개발 프로세스 | |
시스템 요구 사항 분석 | 임베디드 시스템의 요구 사항 정의 |
하드웨어 및 소프트웨어 설계 | 시스템 아키텍처 설계 |
구현 | 소프트웨어 코딩 및 하드웨어 제작 |
테스트 및 디버깅 | 시스템 기능 검증 및 오류 수정 |
통합 | 하드웨어 및 소프트웨어 통합 |
검증 | 시스템 요구 사항 만족 여부 확인 |
2. 특징
임베디드 운영체제를 도입하는 목적은 일반적으로 다음과 같다.
- 세련된 기초 시스템 확보
- 장치 드라이버, API 등을 통한 장치 제어 및 처리 추상화.
- 여러 제품 라인업 간의 통일적인 개발 기반
- 스케줄러를 통한 복잡한 제어 구현
- 오픈 소스 등 기존 개발 리소스 활용
임베디드 운영체제는 범용 운영 체제에 비해 다음과 같은 차이점이 있다.
- 응용 소프트웨어와 함께 ROM에 기록되어 사용되는 경우가 많다.
- 비용 절감을 위해 본체 및 작업 메모리가 작은 것이 필요하다.
- 사용자는 임베디드 시스템 개발자이므로 대부분의 경우 소스 코드를 포함한 라이선스가 이루어진다.
- 응용 프로그램에 특화된 커스터마이징을 고려한다.
- 실시간성을 고려한 스케줄러를 사용할 수 있다.
- 모듈화가 매우 발달했다. 모듈 단위의 로드 및 언로드가 가능하다.
3. 설계
임베디드 시스템은 프로세서와 해당 소프트웨어로 구성된다.[4] 임베디드 소프트웨어는 실행 파일과 런타임 중 임시 데이터 처리를 위한 저장 공간이 필요하다.[4] 임베디드 시스템은 일반적으로 ROM과 RAM을 주 기억 장치 구성 요소로 사용한다.[4] 기능 구현을 위해 임베디드 시스템은 입력 및 출력 인터페이스가 필요하다.[4] 임베디드 하드웨어 구성은 응용 분야에 따라 다르며, 종종 고유하다.[4] 임베디드 시스템 하드웨어의 자원 제약이 있기 때문에, 운영 체제는 하드웨어 제약 내에서 최적의 작동을 보장하기 위해 특정 응용 분야에 맞춰 좁은 범위로 설계된다.[4] 하드웨어를 구성하고 제어하는 임베디드 운영 체제의 선택은 종종 추가로 필요한 임베디드 하드웨어 구성 요소를 결정한다.[4]
소프트웨어 개발자는 중앙 처리 장치(CPU)의 전체 처리 능력을 활용하기 위해 필수적인 코드를 어셈블리 언어로 작성할 수 있다.[4] 어셈블리 언어는 ''기계 효율적''이므로 결정적 시스템에서 속도를 향상시킬 수 있지만 이식성 및 유지 보수성을 감소시킬 수 있다.[4] 빈번하게, 임베디드 운영 체제는 C와 같은 이식 가능한 프로그래밍 언어로 코딩된다.[4]
4. 역사
4. 1. 초기 임베디드 운영 체제
실시간 멀티태스킹 커널의 개념은 1970년대 후반에 등장했다. 1980년대에는 임베디드 시스템 응용 분야가 복잡해짐에 따라, 실시간 멀티태스킹 커널을 갖춘 운영 체제가 임베디드 개발의 진화하는 요구 사항을 충족하는 데 어려움을 겪었다. 이로 인해 실시간 멀티태스킹 커널은 네트워킹, 파일 관리, 개발 및 디버깅 기능을 포함하는 포괄적인 운영 체제(RTOS)로 발전하게 되었다.[5]1981년, 레디 시스템(Ready System)은 세계 최초의 상용 임베디드 실시간 커널인 VRTX32를 개발했다. 1993년, 합병 후 레디 시스템과 실리콘 밸리의 마이크로텍 리서치(Microtec Research)는 VRTXmc를 기반으로 두 개의 새로운 RTOS 커널, VRTX32와 VRTXsa를 개발했다. 동시에 VRTX 통합 개발 환경인 Spectra가 도입되었다.[5]
1996년, 마이크로소프트(Microsoft)는 x86, ARM, SH4, MIPS를 포함한 다양한 프로세서 아키텍처를 지원하는 임베디드 운영 체제인 WinCE를 출시했다. WinCE는 주류 지원이 2018년에 종료되면서 현재는 사용되지 않는다.[5]
OS-9와 VxWorks 또한 주목할 만한 임베디드 운영 체제이다.[5]
4. 2. 현대 임베디드 운영 체제
현대 사물 인터넷 (IoT) 환경에서 임베디드 장치는 어디에나 존재한다. 예를 들어 자동차는 수백 개의 센서를 사용한다. 전통적인 임베디드 시스템과 달리, IoT 시스템은 더 낮은 전력 소비, 향상된 안전성과 신뢰성, 그리고 애드혹 네트워크 기능을 필요로 한다. 통신 계층은 다양한 프로토콜 간의 변환을 용이하게 해야 하며, 응용 계층은 인터넷을 통해 클라우드 컴퓨팅 기능을 가능하게 해야 한다.5. 현대 임베디드 운영 체제
임베디드 리눅스[6] 변종(OpenWrt, Zeroshell, 안드로이드, LineageOS, LEDE, LibreCMC), OpenHarmony, Oniro OS, HarmonyOS, NetBSD,[7] PX5 RTOS, ThreadX, FreeRTOS 등 여러 새로운 임베디드 운영 체제가 인기를 얻고 있다. 최근에는 네트워크 기능이나 GUI 등 복잡한 처리가 필요한 것에서는 리눅스, NetBSD, OpenBSD, FreeBSD, Windows XP와 같은 범용 운영 체제를 기반으로 한 것이 널리 사용되기 시작했다.
시판되는 광대역 라우터는 OpenBSD를 채택하는 기종이 많다. KIOSK 단말에는 NetBSD와 Windows가 많이 사용되고 있다. NetBSD는 OS 전체를 합쳐도 120MB로 작고, 읽기 전용 미디어에 설치하여 사용할 수 있으며, 다종다양한 아키텍처를 지원하기 때문에 점유율을 넓히고 있다. 리눅스는 임베디드용으로 사용자 정의된 배포판이 다수 있으며, 실시간 기능을 부가한 커널이 있다. Windows는 사용자 정의성에서는 오픈 소스 OS에 뒤떨어지지만, PC용 애플리케이션이나 개발 도구, 품질 보증이 있는 장치 드라이버 등 풍부한 소프트웨어 자산과 Windows PC 수준의 GUI를 가지고 있으며, 어느 정도의 PC 기술만 있다면 현장의 사원도 유지보수 작업을 할 수 있기 때문에 고기능 단말에 많이 사용된다. 기본 탑재된 멀티미디어 기능도 다른 OS에 비해 충실하기 때문에, 멀티미디어 기능이 있는 편의점 POS 단말의 과반수가 Windows이다. 최근에는 임베디드 리눅스의 멀티미디어 기능도 크게 향상되어, Windows를 대신하여 리눅스 기반의 POS 단말도 보급되기 시작했다.[8]
이러한 시스템을 고성능 단말로서 이용하는 경우, 하드웨어도 일반적인 x86 계열을 탑재한 것이 선택되는 경우가 적지 않다. 그 경우, 케이스에 개인용 컴퓨터와 동일한 구성의 하드웨어 또는 본체 그 자체를 내장하여, 기기 제어에 사용하는 경우도 많다 (아케이드 게임, 스티커 사진기, 증명사진, 키오스크 단말 등). 운영 체제도 마찬가지로 Windows NT 계열의 Windows Embedded나 Debian 등의 리눅스 배포판을 채용하는 경우가 많다. 반대로 개인용 컴퓨터에, 전원 끄기부터 즉시 기동 가능한 인스턴트 기능을 실현하기 위해 임베디드 시스템을 조합하는 것도 늘어났다.
6. 리눅스 기반 프로젝트
다수의 리눅스 기반 프로젝트, 툴킷, 그리고 프레임워크가 다양한 임베디드 시스템에서 작동하는 운영체제를 만들기 위해 개발되었다. 이러한 프로젝트의 대표적인 예로는 OpenEmbedded, BusyBox, uClibc, musl libc, 그리고 Buildroot가 있다.
7. 종류
임베디드 리눅스[6] 변종(OpenWrt, Zeroshell, 안드로이드, LineageOS, LEDE, LibreCMC), OpenHarmony, Oniro OS, HarmonyOS, NetBSD,[7] PX5 RTOS, ThreadX, FreeRTOS 등 여러 새로운 임베디드 운영 체제가 인기를 얻고 있다.
- NuttX
- VxWorks
- eCos
- Enea OSE
- iOS
- ITRON
- Micro Embbeded System (MES)
- 마이크로소프트(Microsoft)
- Windows Embedded Compact(Windows Embedded Compact, Windows CE)
- Windows 10 IoT
- MS-DOS
- OS-9
- FreeDOS (MS-DOS 호환)
- ReactOS (Microsoft Windows 호환)
- 심비안 OS
- T-Kernel
- TOPPERS
- QNX
- Smalight OS
- RedHawk Linux
- 밸브 코퍼레이션(Valve Corporation)
- SteamOS
- 소니 인터랙티브 엔터테인먼트(ソニー・インタラクティブエンタテインメント)
- PlayStation 3의 시스템 소프트웨어
- PlayStation 4의 시스템 소프트웨어
- PlayStation 5의 시스템 소프트웨어
8. 최근 경향
임베디드 리눅스[6] 변종(OpenWrt, Zeroshell, 안드로이드, LineageOS, LEDE, LibreCMC), OpenHarmony, Oniro OS, HarmonyOS, NetBSD,[7] PX5 RTOS, ThreadX, FreeRTOS 등 여러 새로운 임베디드 운영 체제가 인기를 얻고 있다. 최근에는 네트워크 기능이나 GUI 등 복잡한 처리가 필요한 것에서는 리눅스, NetBSD, OpenBSD, FreeBSD, Windows XP와 같은 범용 운영 체제를 기반으로 한 것이 널리 사용되기 시작하여 이러한 경계가 모호해지고 있다.
예를 들어, 시판되는 광대역 라우터는 OpenBSD를, KIOSK 단말에는 NetBSD와 Windows가 많이 사용된다. NetBSD는 OS 전체 크기가 작고, 읽기 전용 미디어에 설치 가능하며, 다양한 아키텍처를 지원하여 점유율을 높이고 있다. 리눅스는 임베디드용 사용자 정의 배포판이 다수 있으며, 실시간 기능을 부가한 커널이 있다. Windows는 사용자 정의성에서는 오픈 소스 OS에 뒤떨어지지만, 풍부한 소프트웨어 자산과 GUI를 가지고 있으며, PC 기술을 활용한 유지보수가 가능하여 고기능 단말에 많이 사용된다. 멀티미디어 기능도 충실하여 편의점 POS 단말에 많이 사용되지만, 최근에는 임베디드 리눅스의 멀티미디어 기능도 향상되어 리눅스 기반 POS 단말도 보급되기 시작했다.[8]
고성능 단말의 경우, 하드웨어는 일반적인 x86 계열을 탑재하고, 케이스에 개인용 컴퓨터와 동일한 구성의 하드웨어를 내장하는 경우가 많다 (아케이드 게임, 스티커 사진기, 증명사진, 키오스크 단말 등). 운영 체제도 Windows NT 계열의 Windows Embedded나 Debian 등의 리눅스 배포판을 채용하는 경우가 많다. 반대로 개인용 컴퓨터에 인스턴트 기능을 위해 임베디드 시스템을 조합하는 경우도 늘어났다.
참조
[1]
논문
A Survey: Embedded Systems Supporting By Different Operating Systems
2016-05-11
[2]
웹사이트
Definition of embedded OS
https://www.pcmag.co[...]
2023-09-13
[3]
서적
Embedded Operating Systems: A Practical Approach
Springer International Publishing
[4]
간행물
Embedded operating systems for real-time applications
https://www.ee.iitb.[...]
Electronic Systems Group, EE Dept, IIT Bombay
2002-11
[5]
웹사이트
Microsoft - Lifecycle for Windows Embedded Compact 2013.
https://docs.microso[...]
2022-02-03
[6]
웹사이트
What is embedded Linux?
https://ubuntu.com/b[...]
2023-09-13
[7]
웹사이트
Chapter 1. What is NetBSD?
https://www.netbsd.o[...]
2023-09-13
[8]
웹사이트
株式会社九州テラオカ
http://www.kyushu-te[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com