QNX
QNX는 실시간 응답성과 안정성이 중요한 임베디드 장치를 위해 개발된 운영체제 제품군이다. Dan Dodge와 Gordon Bell이 1980년에 설립한 Quantum Software Systems에서 시작했으며, 초기 제품명 QUNIX는 상표 문제로 QNX로 변경되었다. 1981년 첫...
| 분류 | 실시간 마이크로커널 운영체제 |
|---|---|
| 개발 | Dan Dodge·Gordon Bell, QNX Software Systems |
| 최초 공개 | 1981년 첫 배포 |
| 커널 | 자체 개발 마이크로커널·메시지 전달 |
| 계보 | QUNIX → QNX → QNX Neutrino·QNX OS |
| 지원 플랫폼 | x86·ARM 등 버전별 지원 상이 |
| 배포 정책 | 상용 라이선스 및 구성 요소별 계약 |
| 상태 | 개발 중 |
| 초기 명칭 | QUNIX |
| 대표 세대 | QNX 2, QNX 4, QNX Neutrino, QNX OS 8 |
| 주요 분야 | 자동차·산업 장비·의료·임베디드 제어 |
| API와 표준 | POSIX 호환 |
| 분산 시스템 | 메시지 전달, 리소스 관리자 |
| 공식 자료 | 프로젝트·제조사 자료 |
QNX는 실시간 응답성과 안정성이 중요한 임베디드 장치를 위해 개발된 운영체제 제품군이다. Dan Dodge와 Gordon Bell이 1980년에 설립한 Quantum Software Systems에서 시작했으며, 초기 제품명 QUNIX는 상표 문제로 QNX로 변경되었다. 1981년 첫 QNX 제품을 배포한 뒤 QNX 2·QNX 4를 거쳐 QNX Neutrino와 현대 QNX OS 계열로 발전했다. 시스템의 핵심은 처음부터 작게 구성한 커널과 메시지를 주고받는 독립 프로세스의 결합이다.[1]
QNX Neutrino의 핵심 실행 파일인 procnto는 저수준 스레드 스케줄링과 동기화·인터럽트·프로세스 관리를 수행하고, 파일 시스템·네트워크·장치 드라이버 등 여러 서비스는 사용자 공간의 리소스 관리자 프로세스로 제공된다. 메시지 전달 기반 IPC를 통해 응용 프로그램과 서버가 동작하며, 드라이버가 별도 주소 공간에서 실패하면 다른 구성 요소와 커널 자체로 오류가 직접 확산되는 위험을 줄일 수 있다. 우선순위와 실시간 스케줄링은 정해진 시간 안에 반응해야 하는 제어 프로그램을 지원한다.[2]
QNX는 UNIX 사용자가 익숙한 파일·프로세스와 POSIX API를 제공하지만 AT&T UNIX 또는 BSD 커널의 코드를 직접 물려받은 UNIX 파생 배포판은 아니다. POSIX는 구현이 아닌 인터페이스 규격이기 때문에 QNX는 자체 마이크로커널 구조를 유지하면서도 널리 사용되는 UNIX 프로그램의 소스 이식을 지원할 수 있다. 이 점은 호환성과 코드 계승을 구분하는 대표적인 사례다.[3]
QNX는 자동차 계기판·인포테인먼트, 산업 자동화와 의료·통신 등 안전성과 결정적인 응답 시간이 요구되는 분야에 활용된다. 전용 개발 도구와 BSP, 크로스 컴파일 및 프로파일링 환경을 제공하며, 실제 제품에서는 CPU 아키텍처와 보안·안전 인증, 하드웨어 지원이 특정 QNX 버전·제품에 따라 달라진다. BlackBerry QNX가 제공하는 현대 QNX OS 8.0과 Neutrino 제품군은 같은 역사적 QNX 계열 안에서도 지원 규격과 개발 환경을 구분해야 한다.[4]