Linux?

오픈소스 운영 체제(OS). 운영 체제(Operating System, OS)는 CPU, 메모리, 스토리지처럼 시스템의 하드웨어와 리소스를 직접 관리하는 소프트웨어. OS는 애플리케이션과 하드웨어 사이에서 모든 소프트웨어와 작업을 수행하는 물리적 리소스를 연결

 

Linux는 크게 아래 3가지로 구성 됨

1. 부트로더(Boot loader)

2. 커널(Kernel)

3. 파일 시스템(File system)


 

1. 부트로더(Boot loader)

OS가 시작되기 전 실행되어 커널을 메모리에 올려 OS를 실행 시켜 줌

 

1-1. 부트로더의 기능

- 메모리 초기와

- 하드웨어 초기와

- 네트워크 초기와

- 사용자 인터페이스 기능

 

1-2. 부트로더의 동작

- 압축 되어 있는 커널 이미지를 메모리에 복사

- 커널 이미지의 압축을 품

- 커널을 실행

- 루트 파일시스템을 마운트

- OS 운영에 필요한 프로그램을 실행

 

1-3. 부트로더의 종류

- U-Boot(Universal Bootloadcer)

- LILO(Linux Loader)

- GRUB(GRand Unified Bootloader)

- RedBoot

- BLOB(Boot Loader Object)

 

1-4. U-Boot의 구조

- uboot는 여러개의 디렉토리로 구성 되어 있음

 

 

2. 커널(Kernel)

- 시스템의 자원을 관리해주는 OS의 핵심부

- 컴퓨터 하드웨어솨 소프트웨어를 이어주는 핵심 인터페이스

- 두 가지 관리 리소스 사이에서 최대한 효율적으로 통신

 

2-1. 커널의 기능

OS의 핵심. 메모리에 상주하며 CPU에 명령을 내리는 소프트웨어

커널은 다음과 같은 4가지 기능을 수행

 

- 메모리 관리

: 메모리가 어디에서 무엇을 저장하는데 얼마나 사용되는지 추적

 

- 프로세스 관리

: 어느 프로세스가 CPU를 얼마나 사용할지 결정(스케쥴링)

 

- 장치 드라이버

: 하드웨어와 프로세스 사이에서 중재자/인터프리터 역할을 수행

 

- 시스템 호출 및 보안

: 프로세스의 서비스 요청을 수신

 

2-2. 커널의 종류

- 단일형 커널(Monolithic Kernel)

- 마이크로 커널(Micro Kernel)

- 하이브리드 커널(Hybrid Kernel)

등이 있다.

 

2-3. 시스템 콜(System Call)

- 사용자가 접근할 수 없는 커널 메모리, 커널 데이터 등을 대신해서 접근해 주는 인터페이스

- Application Program은 user mode에서 수행 되며 하드웨어 직접 접근과 메모리에 대한 허용되지 않는 접근이 제한됨

- open(), read(), write(), close() 등이 있음

 

 

3. 파일 시스템(File system)

파일 시스템은 OS에서 파일 또는 자료에 쉽게 접근할 수 있도록 보관하거나 조직하는 체계

저장장치의 많은 파일을 관리하는 방법이 파일 시스템

 

- ex4

: ex4는 1EB까지 지원. ex3은 16TB까지 지원(TB(테라) < PB(페타) < EB(엑사)

 

- swap

: swap 공간으로 사용되는 파일 시스템

 

- xfs

: 64bit 고성능 저널링 파일 시스템

 

- iso9660

: DVD/CD-ROM을 위한 표준 파일 시스템으로 읽기만 가능

 

- nfs(network file system)

: 원격 서버에서 파일 시스템을 마운트 할 때 사용

 

 

'리눅스(Linux) > 기본 지식' 카테고리의 다른 글

QEMU(Quick Emulator)  (0) 2025.04.18
MachineWare  (0) 2025.04.18
리눅스(Linux) 기본 명령어(2) - cd  (0) 2025.03.18
리눅스(Linux) 기본 명령어(1)  (0) 2025.03.18

Embedded System의 GUI Platform

Qt를 상용 제품 개발에 추천하는 이유는 다음과 같다.

  • 안정성과 신뢰성 : 상업적 지원을 통해 품질 보장과 지속적인 업데이트를 받을 수 있음
  • 강력한 기능과 유연성 : 다양한 플랫폼 지원, 복잡한 UI 구현, 성능 최적화
  • 장기적인 유지 보수 용이 : 버그 수정과 기술 지원이 체계적으로 제공됨

하지만 Qt 라이센스 비용은 상상 초월이다. 비용 산정 기준도 복잡해서 Qt 상용 라이센스를 사용할 기업은 사용전에 반드시 비용을 검토해야 한다.

 

예를 들어 개발자 1명이 연 양산수량 5,000개의 임베디드 시스템 제품을 개발 및 생산한다고 하면

($10,000 * 1명) + ($2 * 5000개) = $20,000, $20,000 / 5,000개 = $4

→ 제품당 약 4$의 로열티

 

그런데 연 5,000개 만드는 회사에서 개발자가 1명만 있지는 않을테고, 5명이라고 가정시

($10,000 * 5명) + ($2 * 5000개) = $60,000, $60,000 / 5,000개 = $12

→ 제품당 약 12$의 로열티

 

문제는 연 양산수량이 500개 라고 해도 양산 최소 수량 만큼의 로열티를 지불해야 한다는 것이다.

($10,000 * 1명) + ($2 * 5000개) = $20,000, $20,000 / 500개 = $40

→ 제품당 약 40$의 로열티, 환율 1300원 적용하면 약 52,000원 + 알파(GUI 디자인 툴)

 
라이선스 종류
대상
개발자 라이선스
비용 (대략)
양산 최소 수량
제품당
로열티
비용
특징
Qt for Application Development
데스크탑/모바일 애플리케이션 개발용
$4,500~$5,500
/ 1년 / 개발자 1명
없음
없음
데스크탑 및 모바일 애플리케이션 개발용. 상업적 배포 가능.
Qt for
Device Creation
임베디드 시스템 및 디바이스용
$10,000~$15,000
/ 1년 / 개발자 1명
5,000~10,000개 양산 수량 이상
$2~$5
/ 제품
임베디드 디바이스용 GUI 개발에 적합. 제품당 로열티 발생.
Qt for
MCU
자원이 제한된 마이크로컨트롤러 기반 시스템용
$15,000 이상
/ 프로젝트 기준
5,000개
양산 수량 이상
$1~$3
/ 제품
저사양 마이크로컨트롤러에 최적화된 GUI. 제품당 로열티 발생.
Qt Design Studio
UI/UX 디자이너를 위한 GUI 디자인 툴
$550~$1,000
/ 1년 / 사용자 1명
없음
없음
GUI 디자인 및 프로토타입 제작 도구.
Extended Support
장기적 지원 및 이전 버전의 Qt에 대한 연장 지원
별도 협의
(수천~수만 달러 이상)
없음
없음
장기적 제품 유지 보수 및 보안

 

비용이 걱정된다면 아래 표를 참조하여 오픈 소스 GUI 라이브러리를 고려할 수 있다.

(오픈 소스 ≠ 무료)

 
플랫폼
장점
단점
사용
언어
비용
사용되는 시스템
LVGL (LittlevGL)
- 오픈 소스이며 크로스 플랫폼 지원
- 리소스 효율적이며 낮은 메모리 요구
- 다양한 위젯과 디자인 가능
- 상업적 프로젝트에서 널리 사용됨
- 특정 고급 기능은 별도의 라이브러리 필요
- 커뮤니티 지원에 의존적일 수 있음
C
C++
무료
- 임베디드 시스템
- IoT 장치
- 저전력 디스플레이 장치
Qt for Embedded
- 크로스 플랫폼 지원 (임베디드 및 데스크탑)
- 강력한 위젯과 툴 제공
- 복잡한 애플리케이션 개발에 적합
- 상대적으로 높은 자원 요구
- 상대적으로 높은 자원 요구
- 라이센스 비용이 비쌈
C++
QML
유료 (상용
라이
센스
필요)
- 임베디드 시스템
- 산업용 장비
- 디지털 표지판
- 자동차 인포테인먼트 시스템
TouchGFX
- STM32 마이크로컨트롤러에 최적화
- 리소스 제한 환경에서도 고성능 그래픽 제공
- 하드웨어 가속 지원
- 낮은 전력 소비와 메모리 사용
- STM32 전용
- 다른 플랫폼에 비해 제한적
C++
무료
- STM32 기반 임베디드 시스템
- 모바일 장치
- 산업 장비
GTK+ for Embedded
- 주로 Linux 기반 임베디드 시스템에서 사용
- 다양한 언어 지원 (C, Python 등)
- GNOME 데스크탑과의 통합성
- 상대적으로 복잡한 설정
- 설정과 유지 관리가 복잡할 수 있음
- 비교적 무거울 수 있음
C Python
Rust (gtk-rs)
무료
- Linux 기반 임베디드 시스템
- 산업용 디스플레이
- IoT 장치
EmWin
- STMicroelectronics의 임베디드 시스템에 최적화
- 효율적인 메모리 사용
- 간단한 설정과 사용법
- 다양한 위젯과 지원 기능
- STMicroelectronics의 하드웨어에만 최적화
- 상대적으로 비쌈
C
유료
- STM32 MCU
- NXP, Renesas, Silicon Labs MCU
- 산업용 장비
- 소비자 전자제품
Flutter
- 크로스 플랫폼 지원 (모바일, 웹, 데스크탑)
- 빠른 UI 개발과 핫 리로드 기능
- 위젯 기반 UI 설계
- 임베디드 시스템에서의 사용은 아직 초기 단계
- 임베디드 시스템에서의 지원이 아직 초기 단계
- 대형 애플리케이션에서 성능 문제 발생 가능
Dart
무료
- 모바일 애플리케이션
- 웹 애플리케이션
- 데스크탑 애플리케이션

 

 

 

+ Recent posts