맨위로가기

QNX

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

QNX는 1980년 설립된 실시간 운영 체제(RTOS)로, 임베디드 시스템, 특히 자동차 인포테인먼트 시스템에 널리 사용된다. 마이크로커널 아키텍처를 기반으로 하며, 프로세스 간 통신(IPC)을 위한 메시지 전달 방식을 사용한다. 블랙베리 플레이북 태블릿과 블랙베리 10 운영 체제에도 사용되었으며, 2004년 하만 인터내셔널에 인수된 후 블랙베리 리미티드에 인수되었다. QNX는 다양한 CPU 아키텍처를 지원하며, 2023년 기준 전 세계 2억 3천 5백만 대 이상의 차량에 탑재되어 있다.

더 읽어볼만한 페이지

  • 1980년 설립된 소프트웨어 기업 - 브로더번드
    브로더번드는 더그와 게리 칼스턴 형제가 설립한 소프트웨어 회사로, 게임 개발을 시작으로 교육용 및 가정용 소프트웨어로 사업을 확장했으며, The Print Shop, Carmen Sandiego 시리즈 등으로 성공을 거두었으나, The Learning Company에 인수된 후 여러 차례 매각되었다.
  • 1980년 설립된 소프트웨어 기업 - 노벨 (기업)
    노벨은 1979년 유타주에서 설립된 컴퓨터 소프트웨어 회사로, NetWare를 출시하며 급성장하여 네트워크 운영 체제 시장을 장악했으나, 마이크로소프트와의 경쟁에서 어려움을 겪고 여러 차례 인수 합병을 거쳐 2023년 오픈텍스트에 최종 인수되었다.
  • 경량 유닉스 계열 시스템 - NetBSD
    NetBSD는 높은 이식성을 가진 BSD 계열 오픈 소스 운영 체제로, 다양한 아키텍처를 지원하며 pkgsrc 패키지 관리 시스템을 통해 응용 프로그램 설치가 용이하고 안정성과 보안을 중시하여 여러 환경에서 사용된다.
  • 경량 유닉스 계열 시스템 - FreeBSD
    FreeBSD는 1993년 386BSD 사용자들에 의해 시작된 오픈 소스 운영 체제로, BSD 계열 중 가장 대표적이며 x86-64, ARM64 등 다양한 아키텍처를 지원하고, 포트 및 패키지 시스템을 통해 응용 프로그램 설치 및 관리를 자동화한다.
  • 마이크로커널 - Mach (커널)
    Mach 커널은 1980년대 DARPA에서 개발한 멀티프로세서 운영 체제로, 멀티프로세서 지원, 거대한 메모리 공간 활용, 분산 시스템 지원을 목표로 개발되었으며, 마이크로커널 구조를 채택하여 다양한 운영체제의 기반 기술로 활용되었다.
  • 마이크로커널 - 닌텐도 스위치 시스템 소프트웨어
    닌텐도 스위치 시스템 소프트웨어는 Horizon이라는 코드명으로 불리는 닌텐도 스위치의 운영체제로, FreeBSD와 안드로이드 코드를 일부 사용하고 마이크로커널 아키텍처를 기반으로 하여 직관적인 인터페이스와 다양한 기능을 제공하며, 닌텐도는 지속적인 업데이트를 통해 시스템을 개선하고 있다.
QNX - [IT 관련 정보]에 관한 문서
기본 정보
개발자블랙베리 (이전: QNX 소프트웨어 시스템즈)
계열유닉스 계열
작업 상태현재
소스 모델클로즈드 소스
최신 릴리스 버전8.0
마케팅 대상임베디드 시스템
패키지 관리자NetBSD 프로젝트의 pkgsrc 프레임워크 사용 가능
지원 플랫폼현재: x86-64, ARM32, ARM64
이전: MIPS, PowerPC, SH-4, StrongARM, XScale
커널 유형RTOS (마이크로커널)
사용자 영역POSIX
라이선스프로프리에터리
웹사이트블랙베리 QNX
QNX 로고
QNX 로고
QNX 6.4.1 스크린샷
QNX 6.4.1의 기본 데스크톱
기타

2. 역사

QNX 초기 버전은 1.44MB 플로피 디스크 하나에 담길 수 있을 정도로 가벼웠다.[24]

1990년대 말, QNX는 POSIX 호환 QNX 4 OS, 완전한 그래픽 사용자 인터페이스, 그래픽 텍스트 편집기, TCP/IP 네트워킹, 웹 브라우저 및 웹 서버를 포함하는 데모 이미지를 출시했는데, 이 모든 것이 386 PC용 부팅 가능한 1.44 MB 플로피 디스크에 들어갈 정도였다.

시스코 시스템즈의 IOS-XR(2004년 도입) 및 IOS 소프트웨어 모듈성(2006년 도입) 마이크로 커널은 QNX를 기반으로 했다. IOS 소프트웨어 모듈성은 큰 주목을 받지 못하고 Catalyst 6500에 대한 소규모 실행으로 제한되었으며, IOS XR은 Linux로 전환되었다.

2007년 9월, QNX 소프트웨어 시스템은 일부 소스 코드를 공개했다.

제네바 모터쇼에서 애플은 호환되는 차량의 헤드 유닛에 iOS와 유사한 사용자 인터페이스를 제공하는 카플레이를 시연했다. 자동차 제조사가 구성하면, QNX는 디스플레이와 일부 기능을 애플 카플레이 장치로 넘기도록 프로그래밍할 수 있다.

2014년 12월 11일, 포드 자동차는 마이크로소프트 오토를 QNX로 교체한다고 발표했다.

2017년 1월, QNX는 Intel 및 ARM 32비트 및 64비트 플랫폼 지원과 C++14 지원을 포함한 SDP 7.0 출시를 발표했고, 2017년 3월에 출시되었다.

2023년 12월, QNX는 최신 Intel 및 ARM [v8 및 v9] 64비트 플랫폼, GCC12 기반 툴체인 및 Visual Studio Code용 QNX 툴킷을 지원하는 차세대 마이크로 커널 기반의 QNX SDP 8.0을 출시했다.

2024년 7월 17일, QNX는 QNX 컨테이너를 출시하여 QNX 기반 장치에서 컨테이너 기술의 배포, 실행 및 관리를 위한 표준 기반 환경을 제공한다.[1]

2024년 9월 14일, 안전을 위한 QNX 파일 시스템(QFS)이 발표되었다. QFS는 POSIX 호환, ISO 26262 인증, 무결성 검사 파일 시스템으로, OEM 및 기타 임베디드 소프트웨어 공급업체에게 안전 필수 시스템 구축 시 추가 유효성 검사 계층을 제공한다.[2]

QNX RTOS 출시 역사[4]
버전날짜배포 매체비고
1981년QUNIX 설립.
베타1983년QNX Beta로 출시
1.01984년
2.01987년4.3BSD의 TCP/IP 및 PPP와 같은 요소가 QNX 2.0에 통합.
2.211989년QNX 2.21
4.01990년QNX 4.0
4.11994년4.4BSD의 요소가 QNX 4.1에 통합
4.21995년QNX 4.2
4.221995년QNX 4.22
4.241995년QNX/Neutrino 1.0이 QNX 4.24에서 분기됨
4.251997년QNX 4.25는 QNX/Neutrino 1.0의 분기 이후에도 계속 출시됨.


2. 1. QNX 설립과 초기 발전 (1980년대)

1980년, 워털루 대학교의 학생이었던 고든 벨(Gordon Bell)과 댄 도지(Dan Dodge)는 운영체제 설계에 대한 컴퓨터 과학 수업을 들으면서 기본적인 실시간 커널을 만들었다. 이들은 이러한 시스템의 상업적 필요성을 확신하고 같은 해 캐나다 온타리오주의 카나타에서 퀀텀 소프트웨어 시스템즈(Quantum Software Systems)를 설립했다. 1982년, 8088 CPU용으로 QUNIX의 첫 번째 버전이 출시되었다. 1984년, 퀀텀 소프트웨어 시스템은 상표권 침해 문제를 피하기 위해 QUNIX의 이름을 QNX로 변경했다.

QNX 실시간 OS(RTOS)가 처음으로 널리 사용된 사례 중 하나는 임베디드되지 않은 환경에서 온타리오주 교육 시스템의 자체 컴퓨터 디자인인 유니시스 아이콘을 위한 운영 체제로 선택되었을 때였다. 수년에 걸쳐 QNX는 44k 커널이 당시의 원칩 컴퓨터에 맞기에는 너무 커서 주로 대규모 프로젝트에 사용되었다. 이 시스템은 신뢰성으로 명성을 얻었고 많은 산업 응용 분야에서 기계를 작동시키는 데 사용되었다.

1980년대 후반, 퀀텀은 시장이 POSIX 모델로 빠르게 이동하고 있음을 깨닫고 커널을 훨씬 더 낮은 수준에서 호환되도록 다시 작성하기로 결정했다. 그 결과 QNX 4가 나왔다. 이 기간 동안 패트릭 헤이든은 인턴으로 일하면서 당시 정규직 직원이던 로빈 버거너와 함께 새로운 윈도우 시스템을 개발했다. 이 특허받은 개념은 QNX Photon 마이크로GUI라는 임베디드 가능한 그래픽 사용자 인터페이스(GUI)로 개발되었다. QNX는 또한 X 윈도우 시스템 버전을 제공했다.

2. 2. QNX 4와 Photon microGUI (1990년대)

1980년대 말, 퀀텀 사는 시장이 POSIX 모델로 빠르게 이동하는 것을 보고, 커널의 호환성을 높이기 위해 재작성을 결정했다. 그 결과 QNX 4가 출시되었다. 이때 인턴으로 일하던 패트릭 헤이든(Patrick Hayden)과 정직원 로빈 버제너(Robin Burgener)는 새로운 컨셉의 윈도우 시스템을 개발했다.(). 이를 제품에 활용하여, 임베디드 가능한 GUI인 Photon microGUI가 OS에 추가되었다. 동시에 QNX용 X 윈도 시스템도 준비되었다. QNX 4에서는 POSIX를 준수하여 유닉스나 BSD용 소프트웨어의 이식이 용이해졌다.

퀀텀 소프트웨어 시스템즈는 1990년대 초 퀀텀과의 혼동을 피하기 위해 QNX 소프트웨어 시스템즈로 회사이름을 변경했다.

2. 3. QNX Neutrino와 블랙베리 인수 (2000년대 ~ 현재)

2000년대 말, QNX 소프트웨어 시스템은 SMP 기능을 갖도록 처음부터 설계되었고, 모든 현재 POSIX API와 마이크로 커널 아키텍처를 유지하면서 예상할 수 있는 새로운 POSIX API를 지원하는 새로운 버전의 QNX 작업을 시작했다. 그 결과 2001년에 QNX Neutrino가 출시되었다.

Neutrino 커널과 함께 QNX 소프트웨어 시스템은 이클립스 (통합 개발 환경) 컨소시엄의 창립 멤버가 되었다. 이 회사는 2002년에 이클립스 워크벤치와 함께 패키지된 일련의 이클립스 플러그인을 출시했으며, 이를 QNX Momentics Tool Suite라고 명명했다.

2004년, 이 회사는 하만 인터내셔널에 매각되었다. QNX 소프트웨어가 이미 텔레매틱스 시스템을 위해 자동차 산업에서 널리 사용되었기 때문이다. 하만의 인수를 통해 QNX 소프트웨어는 텔레매틱스 시스템과 인포테인먼트 및 내비게이션 장치에서 200개 이상의 다양한 자동차 제조사 및 모델에 설계되었다. QNX CAR 애플리케이션 플랫폼은 2011년 중반 기준으로 2천만 대 이상의 차량에서 실행되고 있었다. 그 이후 이 회사는 QNX Aviage 멀티미디어 스위트, QNX Aviage 음향 처리 스위트, QNX HMI 스위트를 포함한 여러 미들웨어 제품을 출시했다.

2010년 4월 9일, 리서치 인 모션(나중에 블랙베리 리미티드로 이름 변경)은 하만 인터내셔널 인더스트리로부터 QNX 소프트웨어 시스템을 인수할 것이라고 발표했다. 같은 날, QNX 소스 코드 액세스가 대중과 취미 사용자로부터 제한되었다.

2010년 9월, 회사는 태블릿 컴퓨터블랙베리 플레이북과 태블릿에서 실행하기 위한 QNX 기반의 새로운 운영 체제인 블랙베리 태블릿 OS를 발표했다.

2011년 10월 18일, 리서치 인 모션은 "BBX"를 발표했는데, 이는 나중에 2011년 12월에 ''블랙베리 10''으로 이름이 변경되었다. 블랙베리 10 장치는 터치 장치를 위한 블랙베리 플레이북 QNX 기반 운영 체제를 기반으로 구축되었지만, Qt 기반 Cascades 네이티브 사용자 인터페이스 프레임워크를 사용하여 스마트폰에 맞게 사용자 인터페이스를 조정했다.

출시날짜비고
1.01996QNX/Neutrino 1.0 (QNX 4.24의 포크)
2.01998QNX/Neutrino 2.0
2.101999QNX/Neutrino 2.10 (QRTP)
62001년 1월 18일QNX RTOS 6
6.1.02001QNX RTOS 6
6.1.0 (patch A)2001년 9월 28일
6.22002년 6월 4일QNX 6.2 (Momentics)
6.2 (patch A)2002년 10월 18일QNX 6.2
6.2.12003년 2월 18일QNX 6.2.1 (Momentics)
6.32004년 6월 3일QNX 6.3
6.3.0 SP1?
6.3.0 SP2?
6.3.0 SP3/
OS 6.3.2
6.3.2
6.4.02008년 10월 30일QNX Neutrino RTOS 6.4.0
6.4.12009년 5월QNX Neutrino RTOS 6.4.1
6.5.02010년 7월QNX Neutrino RTOS 6.5.0
6.5 SP12012년 7월 11일QNX Neutrino RTOS 6.5 SP1
6.62014년 2월 28일QNX 6.6
7.02017년 1월 4일QNX SDP 7.0 (64비트 최초 지원)
7.12020년 7월 23일QNX SDP 7.1


3. 기술

QNX는 매우 작고 빠른 운영 체제이다. 플로피 디스크 한 장에 GUI 환경과 웹 브라우저를 포함한 데모 시스템이 들어갈 정도이다.[9]

마이크로커널 아키텍처를 채택하여, 운영 체제의 대부분이 "서버"라고 불리는 작은 태스크 형태로 동작한다. 이는 전통적인 모놀리식 커널 OS와는 대조적인데, 모놀리식 커널에서는 OS 자체를 변경해야 불필요한 기능을 끌 수 있는 반면, QNX에서는 사용자나 개발자가 서버를 중지시켜 간단하게 기능을 끌 수 있다.

2001년에 출시된 QNX Neutrino는 x86, MIPS, PowerPC, SH-4, ARM, StrongARM, XScale 등 현재 임베디드 시장에서 사용되는 대부분의 CPU에서 동작한다.

2007년 9월 12일부터는 비상업적 이용을 위한 라이선스도 제공하기 시작했다.

블랙베리는 QNX를 소유하고 있으며, 태블릿 컴퓨터용 모바일 OS인 BlackBerry Tablet OS 및 BlackBerry 10은 QNX를 기반으로 한다.

QNX 운영 체제에는 'Voyager'라는 웹 브라우저도 포함되어 있었다.[3]

3. 1. 마이크로커널 아키텍처

QNX는 마이크로커널 기반 운영 체제로, 운영 체제의 커널 대부분을 리소스 관리자라고 하는 여러 개의 작은 작업 형태로 실행한다. 이는 운영 체제 커널이 특수한 기능을 가진 수많은 부분으로 구성된 매우 큰 프로그램인 모놀리식 커널과는 다른 방식이다. QNX는 마이크로커널을 사용하므로 사용자가 운영 체제를 변경하지 않고도 필요 없는 기능을 끌 수 있다.

QNX 커널인 `procnto` (QNX Neutrino ('nto') 프로세스 ('proc') 자체의 바이너리 실행 프로그램 이름)에는 CPU 스케줄링, 프로세스 간 통신, 인터럽트 리디렉션 및 타이머만 포함되어 있다. 그 외 모든 것은 사용자 프로세스로 실행되며, 여기에는 마이크로커널과 함께 작동하여 프로세스 생성 및 메모리 관리를 수행하는 `proc`이라는 특수 프로세스가 포함된다. 이는 서브루틴 호출 형식의 프로세스 간 통신과 커널 및 원하는 사용자 프로그램, 공유 라이브러리를 포함하는 이미지를 로드할 수 있는 부트 로더라는 두 가지 핵심 메커니즘으로 가능하다. 커널에는 장치 드라이버가 없다. 네트워크 스택은 NetBSD 코드를 기반으로 한다. QNX는 자체 네이티브 장치 드라이버와 레거시 ''io-net 관리자'' 서버, NetBSD에서 포팅된 네트워크 드라이버를 지원한다.

QNX 프로세스 간 통신은 한 프로세스에서 다른 프로세스로 메시지를 보내고 응답을 기다리는 것으로 구성된다. (`MsgSend`라는 단일 작업). 메시지는 커널에 의해 전송 프로세스의 주소 공간에서 수신 프로세스의 주소 공간으로 복사된다. 수신 프로세스가 메시지를 기다리고 있으면 CPU 제어가 동시에 전송되어 CPU 스케줄러를 거치지 않는다. 따라서 메시지 전달과 CPU 스케줄링 간의 긴밀한 통합은 QNX 메시지 전달을 광범위하게 사용할 수 있게 하는 핵심 메커니즘이다. 대부분의 유닉스리눅스 프로세스 간 통신 메커니즘은 이러한 통합이 부족하지만, 리눅스 SIMPL에 QNX 유형 메시징의 사용자 공간 구현이 존재한다. 이러한 문제를 잘못 처리하는 것이 초기 Mach와 같은 다른 마이크로커널 시스템의 성능 저하를 유발한 주요 원인이다. 수신 프로세스는 동일한 물리적 머신에 있을 필요가 없다.

모든 I/O 작업, 파일 시스템 작업, 네트워크 작업은 이 메커니즘을 통해 작동하도록 설계되었으며, 전송된 데이터는 메시지 전달 중에 복사된다. 최신 버전의 QNX는 성능상의 이유로 별도의 프로세스 수를 줄이고 네트워크 스택 및 기타 기능 블록을 단일 애플리케이션으로 통합한다.

메시지 처리는 스레드 우선 순위에 따라 우선 순위가 지정된다. I/O 요청은 메시지 전달을 사용하여 수행되므로 우선 순위가 높은 스레드는 우선 순위가 낮은 스레드보다 먼저 I/O 서비스를 받는다. 이는 하드 실시간 시스템의 필수 기능이다.

부트 로더는 최소 마이크로커널 시스템의 또 다른 핵심 구성 요소이다. 사용자 프로그램을 부트 이미지에 내장할 수 있으므로, 시작에 필요한 장치 드라이버 및 지원 라이브러리가 커널에 있을 필요가 없다. 프로그램 로딩과 같은 기능조차 커널에 있지 않고 부트 이미지의 일부로 로드되는 공유 사용자 공간 라이브러리에 있다. 전체 부트 이미지를 ROM에 넣을 수 있으며, 이는 디스크 없는 임베디드 시스템에 사용된다.

Neutrino는 대칭형 멀티프로세싱 및 프로세서 선호도를 지원하며, QNX 용어로는 바운드 멀티프로세싱(BMP)이라고 한다. BMP는 캐시 적중을 개선하고 비 SMP 안전 애플리케이션을 멀티 프로세서 컴퓨터로 쉽게 마이그레이션하는 데 사용된다.

Neutrino는 엄격한 우선 순위-선점 스케줄링 및 적응형 파티션 스케줄링(APS)을 지원한다. APS는 다른 스레드가 우선 순위가 높더라도 선택한 스레드 그룹에 최소 CPU 비율을 보장한다. 적응형 파티션 스케줄러는 시스템 부하가 적을 때에도 엄격하게 우선 순위-선점 방식이며, 시스템에 과부하가 걸린 경우에도 선택한 중요 스레드를 엄격하게 실시간으로 실행하도록 구성할 수 있다.

마이크로커널 아키텍처로 인해 QNX는 분산 운영 체제이기도 하다. 댄 도지와 피터 반 데르 빈은 QNX 운영 체제의 분산 처리 기능을 기반으로 하며, 이는 투명 분산 처리로 상업적으로 알려져 있다. 이를 통해 별도의 장치에 있는 QNX 커널은 로컬 서비스에 접근하는 데 사용되는 것과 동일한 통신 메커니즘을 사용하여 서로의 시스템 서비스에 접근할 수 있다.

3. 2. 프로세스 간 통신 (IPC)

QNX의 프로세스 간 통신(IPC)은 한 프로세스가 다른 프로세스에 메시지를 보내고 응답을 기다리는 방식으로, `MsgSend`라는 단일 명령으로 수행된다. 메시지는 커널에 의해 전송 프로세스의 주소 공간에서 수신 프로세스의 주소 공간으로 복사된다.[19] 수신 프로세스가 메시지를 기다리고 있으면 CPU 제어가 동시에 전송되어 CPU 스케줄러를 거치지 않으므로, 메시지를 보내고 응답을 기다리는 동안 CPU 시간이 낭비되지 않는다.

이러한 메시지 전달과 CPU 스케줄링의 긴밀한 통합은 QNX 메시지 전달을 광범위하게 사용할 수 있게 하는 핵심 메커니즘이다. 대부분의 유닉스리눅스 프로세스 간 통신 메커니즘은 이러한 긴밀한 통합이 부족하지만, 리눅스 SIMPL에 QNX 유형 메시징의 사용자 공간 구현이 존재한다.[20] 초기 버전의 Mach와 같은 다른 마이크로커널 시스템의 성능이 좋지 않았던 주요 원인 중 하나는 이러한 문제를 제대로 처리하지 못했기 때문이다.

메시지 처리는 스레드 우선 순위에 따라 우선 순위가 지정된다. I/O 요청은 메시지 전달을 사용하여 수행되므로, 우선 순위가 높은 스레드는 우선 순위가 낮은 스레드보다 먼저 I/O 서비스를 받는다. 이는 하드 실시간 시스템의 필수 기능이다.

모든 I/O 작업, 파일 시스템 작업, 네트워크 작업은 이 메커니즘을 통해 작동하도록 설계되었으며, 전송된 데이터는 메시지 전달 중에 복사된다. 최신 버전의 QNX는 성능상의 이유로 별도의 프로세스 수를 줄이고 네트워크 스택 및 기타 기능 블록을 단일 애플리케이션으로 통합한다.

마이크로커널 아키텍처이기 때문에 QNX는 분산 운영 체제이기도 하다. 댄 도지와 피터 반 데르 빈은 QNX 운영 체제의 분산 처리 기능(상업적으로 투명 분산 처리로 알려짐)에 관한 특허를 보유하고 있다.

3. 3. 분산 처리

마이크로커널 아키텍처 덕분에 QNX는 분산 운영 체제이기도 하다. 댄 도지(Dan Dodge)와 피터 반 데르 빈(Peter van der Veen)은 QNX 운영 체제의 분산 처리 기능에 기반하여 Transparent Distributed Processing영어 (TDP, 투명 분산 처리)로 상업적으로 알려진 분산 커널 운영 체제에 대한 특허를 획득했다. 이를 통해 별도의 장치에 있는 QNX 커널들은 로컬 서비스에 접근하는 데 사용되는 것과 실질적으로 동일한 통신 메커니즘을 사용하여 서로의 시스템 서비스에 접근할 수 있다.

QNX의 분산 처리(TDP)는 QNX의 네트워크 분산 아키텍처를 지칭한다. 마이크로커널은 본질적으로 네트워크 분산이 가능하며, TDP는 QNX의 네트워크 스택에 통신 프로토콜 모듈을 플러그인하는 방식이다. qnet이라고 불리는 프로토콜 모듈이 네트워크상의 여러 마이크로커널 간을 연결하면, 실제로 어떤 노드에 있는지 신경 쓰지 않고 OS 서비스에 접근할 수 있게 된다.[21]

3. 4. 스케줄링

QNX 커널인 `procnto`는 CPU 스케줄링, 프로세스 간 통신, 인터럽트 처리, 타이머 기능만 포함하고 있다. 그 외에는 사용자 프로세스로 구현되며, 프로세스 생성, 메모리 관리를 담당하는 '''proc'''라는 특수 프로세스는 마이크로커널과 협력하여 동작한다. 이를 위해 서브루틴 호출형 프로세스 간 통신과 부트 로더가 커널뿐만 아니라 여러 사용자 프로그램 및 공유 라이브러리를 포함한 이미지를 로드할 수 있도록 되어 있다. 커널 내에는 장치 드라이버가 존재하지 않는다.

QNX의 프로세스 간 통신은 한 프로세스에서 다른 프로세스로 메시지를 보내고 응답을 기다리는 방식이다. 메시지는 커널이 송신 측 주소 공간에서 수신 측 프로세스의 주소 공간으로 복사한다. 수신 프로세스가 메시지를 기다리고 있던 경우, 동시에 수신 측 프로세스에 CPU 제어가 전달되며, 이때 스케줄러를 거치지 않는다. 따라서 메시지 전송과 응답 대기에 낭비가 없다. 이러한 메시지 전달과 CPU 스케줄링의 밀접한 결합이 QNX 메시지 전달의 핵심이다.

메시지 처리는 스레드 우선 순위에 따라 처리된다. 입출력도 메시지 처리를 사용하므로, 우선 순위가 높은 스레드가 입출력 결과를 먼저 받는 경향이 있다 (실시간 시스템의 기본).

Neutrino는 프로세서 친화성을 고려한 대칭형 멀티프로세싱(BMP, bound multiprocessing)을 지원한다. BMP는 멀티프로세서 미지원 애플리케이션을 쉽게 멀티프로세서 하드웨어로 이전하고, 캐시 적중률도 높게 유지하도록 돕는다.

Neutrino는 엄격하게 우선 순위에 기반한 선점형 스케줄링 및 적응형 파티션 스케줄링 (APS)을 지원한다. APS는 다른 높은 우선 순위의 파티션(스레드 그룹)이 있더라도, 모든 파티션에 최소 CPU 할당을 보장한다. 이를 통해 시스템 부하가 높아도 자원 기아를 방지하고, 중요 스레드가 실시간으로 동작하도록 한다.

3. 5. 기타

마이크로커널 아키텍처 덕분에 QNX는 분산 운영 체제이기도 하다. 댄 도지(Dan Dodge)와 피터 반 데르 빈(Peter van der Veen)의 특허[20]는 QNX의 분산 처리 기능에 관한 것으로, 마케팅 상에서는 투명 분산 처리 (Transparent Distributed Processing, TDP)라고 불린다.

2001년에 출시된 QNX Neutrino는 x86, MIPS, PowerPC, SH-4, ARM, StrongARM, XScale 등 현재 임베디드 시장에서 사용되는 대부분의 CPU에서 동작한다.

2007년 9월 12일부터는 비상업적 이용을 위한 라이선스도 제공하기 시작했다.

현재 QNX를 소유하고 있는 블랙베리의 태블릿 컴퓨터용 모바일 OS인 BlackBerry Tablet OS 및 BlackBerry 10은 QNX 기반이다.

4. 활용 분야

블랙베리 플레이북 태블릿 컴퓨터는 블랙베리에서 설계되었으며, 주요 운영 체제로 QNX의 한 버전을 사용한다. 블랙베리 10 운영 체제 또한 QNX를 기반으로 한다.

QNX는 자동차 인포테인먼트 시스템에도 사용된다. 많은 주요 자동차 제조사들이 임베디드 QNX 아키텍처를 포함하는 변형 제품을 제공하며, 이는 SSL/TLS 라이브러리인 wolfSSL과 같은 인기 있는 라이브러리에서 지원된다.

2010년 "Safe Kernel 1.0" 도입 이후, QNX는 자동 운전 또는 ADAS 시스템과 같이 기능 안전 인증 RTOS가 필요한 자동차 프로젝트에 사용되었다. QNX는 QNX OS for Safety 제품을 통해 이를 제공한다.[5]

QNX Neutrino (2001)는 여러 플랫폼으로 포팅되었으며, 이제 임베디드 시장에서 사용되는 사실상 모든 최신 중앙 처리 장치 (CPU) 제품군에서 실행된다. 여기에는 PowerPC, x86, MIPS, SH-4, 그리고 ARM, StrongARM, XScale의 밀접하게 관련된 그룹이 포함된다.

2023년 6월 26일 기준으로, QNX 소프트웨어는 BMW, 보쉬, 콘티넨탈, 둥펑 자동차, 지리 자동차, 혼다, 메르세데스-벤츠, 토요타, 폭스바겐, 볼보 등과 같은 대부분의 주요 OEM 및 Tier 1을 포함하여 전 세계적으로 이상의 차량에 탑재되어 있다.[6]

5. 라이선스

QNX는 비상업적 및 학술적 사용자를 위한 라이선스를 제공한다. 2024년 1월, 블랙베리는 취미 사용자들이 QNX에 더 쉽게 접근할 수 있도록 QNX Everywhere를 도입했다. QNX Everywhere는 아직 공개적으로 접근할 수 없다.

6. 커뮤니티


  • '''OpenQNX''''(오픈QNX)는 독립적으로 설립되어 운영되는 QNX 커뮤니티 포털이다. 웹을 통해 IRC 채널과 뉴스그룹에 접속할 수 있으며, 다양한 산업 분야의 개발자들이 이 사이트에 참여하고 있다.
  • '''Foundry27''''(파운드리27)은 회사에서 설립한 웹 기반 QNX 커뮤니티로, QNX Neutrino 개발의 허브 역할을 한다. 개발자들은 이곳에서 등록, 라이선스 선택, RTOS 소스 코드 및 관련 툴킷을 얻을 수 있다.[22] 2010년 4월 9일, 리서치 인 모션에 인수되면서 QNX의 전체 소스 코드를 자유롭게 이용할 수 없게 되었다.[23]

7. 경쟁 OS

임베디드 시장의 주요 경쟁 OS는 다음과 같다.


  • '''POSIX 실시간 OS'''
  • LynxOS
  • '''임베디드(에도 사용되는) Unix 계열 OS'''
  • Linux
  • '''기타 실시간 OS'''
  • VxWorks, THEOS, OS-9, SCIOPTA, ITRON
  • '''기타 임베디드 OS'''
  • Windows CE


분산 처리 및 MMU(메모리 관리 장치)를 강화할 경우, 메시지 패싱 방식의 실시간 운영 체제(RTOS)가 필요하다. 이와 같은 개념의 아키텍처를 가진 운영 체제로는 SCIOPTA, OSE 등이 있다.

8. 출시 역사

다음은 QNX의 출시 역사이다.

QNX RTOS 출시 역사[4]
버전날짜배포 매체비고
1981년QUNIX 설립.
베타1983년QNX Beta로 출시
1.01984년
2.01987년4.3BSD의 TCP/IP 및 PPP와 같은 요소가 QNX 2.0에 통합.
2.211989년QNX 2.21
4.01990년QNX 4.0
4.11994년4.4BSD의 요소가 QNX 4.1에 통합
4.21995년QNX 4.2
4.221995년QNX 4.22
4.241995년QNX/Neutrino 1.0이 QNX 4.24에서 분기됨
4.251997년QNX 4.25는 QNX/Neutrino 1.0의 분기 이후에도 계속 출시됨.



QNX/Neutrino 마이크로커널 출시 역사 (1996년 QNX 4.24에서 분기)
출시날짜비고
1.01996년QNX 4.24에서 분기된 QNX/Neutrino 1.0
2.01998년QNX/Neutrino 2.0
2.101999년QNX/Neutrino 2.10 (QRTP)
62001년 1월 18일QNX RTOS 6
6.1.02001년QNX RTOS 6
6.1.0 (패치 A)2001년 9월 28일
6.22002년 6월 4일QNX 6.2 (Momentics)
6.2 (패치 A)2002년 10월 18일QNX 6.2
6.2.12003년 2월 18일QNX 6.2.1 (Momentics)
6.32004년 6월 3일QNX 6.3
6.3.0 SP1
6.3.0 SP2
6.3.0 SP3/
OS 6.3.2
6.3.22006년 8월 16일
6.4.02008년 10월 30일QNX Neutrino RTOS 6.4.0
6.4.12009년 5월QNX Neutrino RTOS 6.4.1
6.5.02010년 7월QNX Neutrino RTOS 6.5.0은 2011년 10월 18일에 발표되고, 나중에 미리 보기가 공개되어 2012년 5월 1일에 "블랙베리 10 OS"로 명명되어 BBX를 생산하기 위해 분기됨.
6.5 SP12012년 7월 11일QNX Neutrino RTOS 6.5 SP1
6.62014년 2월 28일QNX 6.6
7.02017년 1월 4일64비트 지원을 갖춘 최초 버전인 QNX SDP 7.0
7.12020년 7월 23일QNX SDP 7.1
8.02023년 12월QNX SDP 8.0


참조

[1] 웹사이트 QNX Adds QNX Containers to Trusted Software Development Platform Portfolio https://www.blackber[...] 2024-09-23
[2] 웹사이트 BlackBerry QNX Strengthens Automotive Software Portfolio with New Safety-Certified Filesystem https://www.blackber[...] 2024-09-23
[3] 웹사이트 QNX Neutrino RTOS – Embedded OS | BlackBerry QNX | BlackBerry QNX http://www.qnx.com/p[...]
[4] 웹사이트 UNIX History http://www.levenez.c[...] 2011-05-01
[5] 웹사이트 QNX OS for Safety https://blackberry.q[...]
[6] 웹사이트 BlackBerry Software Is Now Embedded In Over 235 Million Vehicles https://www.blackber[...] 2024-09-23
[7] 웹사이트 QNX Board Support Packages https://blackberry.q[...] 2024-11-07
[8] 웹사이트 Blackberry QNX Partners https://blackberry.q[...] 2024-11-12
[9] 웹사이트 QNX4 Demo Disk: An Expounding Look http://www.openqnx.c[...] OpenQNX 2004-03-24
[10] 문서 QNX CAR Application Platform http://www.qnx.com/p[...]
[11] 뉴스 source code availability http://www.qnx.com/n[...] QNX Press Releases
[12] 뉴스 RIM to buy QNX Software http://www.theglobea[...] The Globe and Mail 2010-04-09
[13] 문서 wiki4376: UpdatedQNXSourceAccessPolicyFAQ http://community.qnx[...]
[14] 문서 RIM Unveils The BlackBerry PlayBook http://www.marketwir[...] official press release 2010-09-27
[15] 웹사이트 QNX Delivers Extremely Reliable Microkernel for Massively Scalable Routing System http://www.qnx.com/n[...] 2004-08-17
[16] 문서 CRS-1 and IOS XR Operational Best Practices http://www.cisco.com[...]
[17] 웹사이트 Which OS is behind IOS? http://www.velocityr[...] 2006-09-26
[18] 문서 Core Networking 6.4: Neutrino’s Next Gen Networking Stack and Foundry27 http://community.qnx[...]
[19] 문서 Foundry27: Project Networking - Driver wiki page http://community.qnx[...]
[20] 문서 SIMPL-Synchronous Interprocess Messaging http://sourceforge.n[...]
[21] 문서 U.S. Patent 5,745,759 http://www.patentsto[...]
[22] 뉴스 Foundry27 http://www.qnx.com/n[...] QNX Press Releases
[23] 문서 Updated QNX Source Access Policy FAQ http://community.qnx[...]
[24] 웹인용 UNIX History http://www.levenez.c[...] 2011-05-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com