OpenDingux는 주로 휴대용 게임기(예: Anbernic, GCW Zero 등)에서 사용되는 리눅스 기반의 임베디드 운영체제입니다. 경량화된 리눅스 + SDL 기반 UI + libretro 호환 게임 실행 환경으로 구성되어 있으며, 휴대용 게임 에뮬레이터 환경 구축에 최적화되어 있습니다.
OpenDingux의 전체 구조
┌─────────────────────────────────────┐ │ 사용자 앱 / 에뮬레이터 │ │ (libretro cores, SDL 게임 등) │ └─────────────────────────────────────┘ │ (SDL2 / OpenGL ES / libretro API) │ ┌─────────────────────────────────────┐ │ 유저랜드 라이브러리 │ │ glibc/uClibc, libSDL, libdrm, ALSA │ └─────────────────────────────────────┘ │ ┌─────────────────────────────────────┐ │ OpenDingux 커널 │ │ Linux 커널 + Dingux-specific │ │ 패치 및 드라이버 (framebuffer, │ │ keypad, battery, audio 등) │ └─────────────────────────────────────┘ │ ┌─────────────────────────────────────┐ │ 하드웨어 (SoC, LCD 등) │ └─────────────────────────────────────┘
핵심 구성 요소 상세
1. Linux Kernel (OpenDingux 커널)
주로 MIPS 아키텍처 기반
특화된 커널 모듈:
Framebuffer (fbdev)
키 입력 (input driver)
오디오 (ALSA)
배터리 상태, 전원 관리
Real-time 처리를 위한 커널 옵션 포함
2. C 라이브러리
uClibc 또는 glibc 기반
정적 링크 및 공간 효율성 고려
3. 그래픽 시스템
보통 fbdev (프레임버퍼 직접 사용) 기반
SDL1/SDL2 지원
OpenGL ES는 기기에 따라 다름 (대부분은 없음)
4. 오디오 시스템
ALSA (Advanced Linux Sound Architecture) 사용
저지연 오디오 처리 가능
5. 입력 시스템
/dev/input/event* 경로 기반
사용자 정의 키맵 제공 (핸드헬드 기기의 물리 버튼)
6. 런처 / UI
gmenu2x 또는 SimpleMenu, JZ-Launcher 같은 런처 UI
앱 선택 및 실행 기능 제공
.opk 포맷 사용 (애플리케이션 패키지)
7. 패키징 시스템: OPK (Open Package)
SquashFS로 만든 일종의 앱 컨테이너
.opk 파일은 앱, 아이콘, 메타데이터 포함
외부 SD카드에서 직접 실행 가능
OpenDingux vs 일반 Linux
항목OpenDingux일반 Linux 배포판목적휴대용 게임기 전용범용GUI없음 (경량 런처 UI)X11, Wayland 등 사용 가능그래픽Framebuffer 직접 접근DRM, OpenGL, Vulkan패키징.opk 파일.deb, .rpm, .apk 등리소스 사용량매우 적음 (수 MB 수준)상대적으로 높음성능 최적화게임 실행 위주로 최적화일반 용도
활용 예
Anbernic, GCW Zero, TrimUI Mini, Miyoo Mini 등에서 사용
libretro core (SNES9x, Genesis Plus GX 등) 실행
SDL 기반 인디 게임, Doom 포트, DOSBox 등 구동
참고용: 디렉터리 예시 (rootfs 기준)
/media/data/ ├── apps/ ← OPK 앱 위치 ├── config/ ← 런처 및 앱 설정 ├── local/ ← 공유 라이브러리 ├── roms/ ← 게임 ROM 디렉터리 └
댓글 0