QNX

QNX
QNX
QNX logo.jpeg
QNX 6.4.1 screenshot.png
QNX 6.4.1의 기본 데스크톱
개발자BlackBerry(구 QNX 소프트웨어 시스템)
OS 패밀리Unix와 같은
동작 상태현재의
소스 모델폐쇄 소스
초기 릴리즈1982년; 40년 전 (2012년)
최신 릴리즈7.1 / 2020년 7월, 2년 전(2020-07)
마케팅 대상임베디드 시스템
패키지 매니저NetBSD 프로젝트에서 Pkgsrc 프레임워크 사용 가능
플랫폼전류: x86-64, ARM32, ARM64
이전 버전: MIPS, PowerPC, SH-4, StrongARM, XScale
커널 타입RTOS(마이크로커널)
유저랜드POSIX
면허증.독자 사양
공식 웹사이트blackberry.qnx.com

QNX(/kju)는 주로 임베디드 시스템 시장을 대상으로 하는 상용 Unix와 유사한 실시간 운영 체제입니다.QNX는 상업적으로 성공한 최초의 마이크로커널 운영 체제 [citation needed]중 하나였습니다.

이 제품은 원래 1980년대 초에 캐나다 회사인 Quantum Software Systems에 의해 개발되었으며 나중에 QNX Software Systems로 이름이 변경되었습니다.

2020년 현재, 자동차, 휴대 전화[1] 등 다양한 기기에 사용되고 있습니다.

역사

1980년 워털루 대학학생인 Gordon Bell과 Dan Dodge는 실시간 운영체제 강좌를 수강했습니다.이 강좌에서 학생들은 기본적인 실시간 마이크로커널과 사용자 프로그램을 구축했습니다.두 회사 모두 이러한 시스템에 대한 상업적 필요성이 있다고 확신하고, 그해 Quantum Software Systems를 시작하기 위해 온타리오주 Kanata라는 하이테크 커뮤니티로 이사했습니다.1982년 인텔 8088 CPU용으로 QUNIX의 첫 번째 버전이 출시되었습니다.QUantum Software Systems는 상표권 침해 문제를 피하기 위해 1984년 QUNIX의 이름을 QNX로 변경했습니다.

QNX 실시간 OS(RTOS)가 최초로 널리 사용된 것은 온타리오 교육 시스템의 자체 컴퓨터 설계인 Unisys ICON의 운영 체제로 선택되었을 때 임베디드되지 않은 세계였습니다.QNX는 44k 커널이 너무 커서 당시의 원칩 컴퓨터에 들어가지 못했기 때문에 수년간 대규모 프로젝트에 주로 사용되었습니다.이 시스템은 신뢰성이라는[citation needed] 평판을 얻었고 많은 산업 애플리케이션에서 기계를 작동시키는 데 사용되었습니다.

1980년대 후반, Quantum은 시장이 POSIX(Portable Operating System Interface) 모델로 빠르게 이동하고 있다는 것을 깨닫고 낮은 수준에서 훨씬 더 호환성이 높은 커널을 다시 쓰기로 결정했습니다.결과는 QNX 4였습니다.기간 동안 Patrick Hayden은 인턴으로 일하는 동안 Robin Burgener(당시 정규직 직원)와 함께 새로운 윈도우 시스템을 개발했습니다.[2] 특허받은 개념은 QNX Photon microGUI라는 이름의 내장형 그래픽 사용자 인터페이스(GUI)로 개발되었습니다.QNX는 X Window System 버전도 제공했습니다.

OS의 기능과 비교적 작은 크기를 보여주기 위해 1990년대 후반에 QNX는 POSIX [3][4]호환 QNX 4 OS, 완전한 그래피컬 사용자 인터페이스, 그래피컬 텍스트 에디터, TCP/IP 네트워킹, 웹 브라우저 및 웹 서버를 포함한 데모 이미지를 386 PC용 부팅 가능한 1.44 MB 플로피 디스크에 모두 장착했습니다.

1990년대 말, 당시 QNX Software Systems라는 이름의 이 회사는 새로운 버전의 QNX에 대한 작업을 시작했는데, 이는 SMP(symmetric multiprocessing)를 지원하도록 처음부터 설계되었으며, 현재 모든 POSIX 애플리케이션 프로그래밍 인터페이스(API)와 새로운 POSIX API를 지원하면서도 여전히 micronel을 유지할 수 있도록 설계되었습니다.아키텍처.그 결과 QNX 뉴트리노는 2001년에 출시되었습니다.

Neutrino 커널과 함께 QNX Software Systems는 Eclipse(통합 개발 환경) 컨소시엄의 창립 멤버가 되었습니다.이 회사는 2002년에 Eclipse 워크벤치와 패키징된 Eclipse 플러그인 제품군을 출시했으며, QNX Momentics Tool Suite라는 이름을 붙였습니다.

2004년, 이 회사는 하만 인터내셔널 인더스트리에 매각되었다고 발표했다.이 인수 이전에 QNX 소프트웨어는 이미 자동차 업계에서 텔레매틱스 시스템에 널리 사용되었습니다.Harman이 구입한 이후 QNX 소프트웨어는 텔레매틱스 시스템, 인포테인먼트 및 내비게이션 [citation needed]장치 등 200개 이상의 다양한 자동차 제조사와 모델로 설계되었습니다.QNX CAR Application Platform은 2011년 [5]중반 현재 2,000만 대 이상의 차량에서 가동되고 있습니다.이 회사는 이후 QNX Avage Multimedia Suite, QNX Avage Acoustic Processing Suite 및 QNX HMI Suite를 포함한 여러 미들웨어 제품을 출시했습니다.

시스코 시스템즈의 IOS-XR(초고가용성 IOS,[6][7] 2004년 도입) 및 IOS 소프트웨어 모듈러리티(2006년 [8]도입)의 마이크로커널은 QNX를 기반으로 합니다.

2007년 9월 QNX 소프트웨어 시스템즈는 일부 소스 [9]코드를 사용할 수 있다고 발표했습니다.

2010년 4월 9일 Research In Motion(나중에 BlackBerry Limited로 명칭 변경)은 Harman International [10]Industries로부터 QNX Software Systems를 인수할 것이라고 발표했습니다.같은 날 QNX 소스 코드 액세스는 일반인과 [11]애호가들의 출입이 제한됐다.

2010년 9월, 이 회사는 태블릿 컴퓨터BlackBerry PlayBook과 태블릿에서 실행할 QNX 기반의 새로운 운영 체제 BlackBerry Tablet [12]OS를 발표했습니다.

2011년 10월 18일 Research In Motion은 "BBX"[13]를 발표하였고,[14] 이후 2011년 12월 BlackBerry 10으로 이름이 바뀌었다.Blackberry 10 장치는 터치 장치용 BlackBerry PlayBook QNX 기반 운영 체제를 기반으로 하지만 Qt 기반 Cascades Native User-Interface 프레임워크를 사용하여 스마트폰용 사용자 인터페이스를 조정합니다.

제네바 모터쇼에서 애플은 호환되는 차량의 헤드 유닛에 iOS와 같은 사용자 인터페이스를 제공하는 카플레이를 시연했습니다.자동차 회사가 구성한 후에는 QNX가 디스플레이와 일부 기능을 [15][16]Apple CarPlay 장치에 전달하도록 프로그래밍할 수 있습니다.

2014년 12월 11일, 포드 자동차 회사는 마이크로소프트 오토를 [1]QNX로 대체할 것이라고 발표했다.

2017년 1월 QNX는 인텔 및 ARM 32비트64비트 플랫폼과 C++14 지원을 포함한 SDP 7.0의 향후 릴리스를 발표했습니다.2017년 [17]3월에 발매되었습니다.

테크놀로지

마이크로커널 기반 OS인 QNX는 대부분의 운영 체제 커널을 리소스 관리자라는 여러 작은 태스크 형식으로 실행한다는 아이디어를 기반으로 합니다.이것은 운영체제 커널이 특별한 능력을 가진 엄청난 수의 부품으로 구성된 하나의 매우 큰 프로그램인 기존의 모노리식 커널과는 다릅니다.QNX의 경우 마이크로커널을 사용하면 사용자(개발자)가 OS를 변경하지 않고도 불필요한 기능을 끌 수 있습니다.대신, 이러한 서비스는 단순히 실행되지 않습니다.

QNX 커널,procnto에는 CPU 스케줄링, 프로세스통신, 인터럽트 리다이렉션 및 타이머만 포함됩니다.기타 모든 것은 사용자 프로세스로 실행되며, 여기에는 다음과 같은 특별한 프로세스가 포함됩니다.proc마이크로커널과 연계하여 프로세스 생성 및 메모리 관리를 수행합니다.이것은 서브루틴 콜타입 프로세스 간 통신과 커널 및 원하는 사용자 프로그램 및 공유 라이브러리를 포함하는 이미지를 로드할 수 있는 부트 로더의 두 가지 주요 메커니즘에 의해 가능합니다.커널에 디바이스 드라이버가 없습니다.네트워크 스택은 NetBSD [18]코드를 기반으로 합니다.QNX는 자체 네이티브 장치 드라이버 지원과 함께 기존 io-net 매니저 서버 및 NetBSD에서 [19]포팅된 네트워크 드라이버를 지원합니다.

QNX 프로세스 간 통신은 한 프로세스에서 다른 프로세스로 메시지를 보내고 응답을 기다리는 것으로 구성됩니다.이것은, 라고 하는 단일의 조작입니다.MsgSend메시지는 [citation needed]커널에 의해 송신 프로세스의 주소 공간에서 수신 프로세스의 주소 공간으로 복사됩니다.수신 프로세스가 메시지를 기다리는 경우 CPU 스케줄러를 통과하지 않고 CPU 제어가 동시에 전송됩니다.따라서 메시지를 다른 프로세스로 전송하고 응답을 기다려도 CPU의 '순번 상실'은 발생하지 않습니다.메시지 전달과 CPU 스케줄링 간의 긴밀한 통합은 QNX 메시지 전달을 광범위하게 사용할 수 있도록 하는 주요 메커니즘 중 하나입니다.Linux용 QNX 유형 메시징의 사용자 공간 구현은 존재하지만 대부분의 Unix 및 Linux 프로세스 간 통신 메커니즘에는 이러한 긴밀한 통합이 없습니다.이 미묘한 문제에 대한 잘못된 대처는 [citation needed]마하 초기 버전과 같은 일부 다른 마이크로커널 시스템의 성능이 실망스러운 주요 원인입니다.수신자 프로세스가 동일한 물리적 시스템에 있을 필요는 없습니다.

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

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

부트 로더는 최소 마이크로커널 시스템의 다른 주요 구성 요소입니다.기동 이미지에 사용자 프로그램을 짜넣을 수 있기 때문에, 기동시에 필요한 디바이스 드라이버와 서포트 라이브러리 세트가 커널에 포함되어 있을 필요도 없고, 포함되어 있지 않습니다.프로그램 로딩과 같은 함수도 커널에 없고 부트 이미지의 일부로 로드된 공유 사용자 공간 라이브러리에 있습니다.디스크리스 임베디드 시스템에 사용되는 ROM에 부트 이미지 전체를 저장할 수 있습니다.

Nutrino는 QNX 용어로는 Bound Multiprocessing(BMP; 바인드 멀티프로세서)이라고 불리는 대칭형 멀티프로세싱 및 프로세서 어피니티를 지원합니다.BMP는 캐시 적중을 개선하고 SMP가 아닌 애플리케이션을 멀티프로세서 컴퓨터로 쉽게 이행하기 위해 사용됩니다.

Neutrino는 완전 우선 스케줄링 및 Adaptive Partition Scheduling(APS)을 지원합니다.APS는 선택한 스레드 그룹에 대한 최소 CPU 비율을 보증합니다.단, 다른 그룹이 priority가 높을 수 있습니다.적응형 파티션스케줄러는 시스템이 과부하 상태일 때에도 여전히 priority 우선입니다.또한 시스템이 과부하 상태에서도 선택한 중요 스레드 세트를 엄격하게 실시간으로 실행하도록 구성할 수 있습니다.

QNX 운영 체제에는 'Voyager'[20]로 알려진 웹 브라우저도 포함되어 있습니다.

마이크로커널 아키텍처로 인해 QNX는 분산 운영 체제이기도 합니다.Dan Dodge와 Peter van der Veen은 미국 특허 6,697,876을 보유하고 있습니다.QNX 운영 체제의 분산 처리 기능에 기반한 분산 커널 운영 체제입니다.상업적으로는 Transparent Distributed Processing으로 알려져 있습니다.이를 통해 개별 장치의 QNX 커널이 로컬 [non-primary source needed]서비스에 액세스하는 데 사용되는 것과 동일한 통신 메커니즘을 사용하여 서로의 시스템 서비스에 액세스할 수 있습니다.

릴리스

QNX RTOS 이력[21]
버전 날짜. 유통 매체 메모들
1981 QUNIX 설립
베타. 1983 QNX 베타로서
1.0 1984
2.0 1987 4.3의 요소TCP/IPPPP같은 BSD가 QNX 2.0에 병합되었습니다.
2.21 1989 QNX 2.21
4.0 1990 QNX 4.0
4.1 1994 4.4의 요소QNX 4.1로의 BSD
4.2 1995 QNX 4.2
4.22 1995 QNX 4.22
4.24 1995 QNX/Neutrino 1.0은 QNX 4.24에서 포크
4.25 1997 QNX 4.25는 QNX/Neutrino 1.0을 사용한 후 계속됩니다.
QNX/Neutrino Microkernel 이력: 1996년 QNX 4.24에서 취득.
풀어주다 날짜. 메모들
1.0 1996 QNX 4.24에서 분기된 QNX/Neutrino 1.0
2.0 1998 QNX/중성미자 2.0
2.10 1999 QNX/중성미자 2.10 (QRTP)
6 2001년 1월 18일 QNX RTOS 6
6.1.0 2001 QNX RTOS 6
6.1.0 (패치 A) 2001년 9월 28일
6.2 2002년 6월 4일 QNX 6.2(모멘틱스)
6.2 (패치 A) 2002년 10월 18일 QNX 6.2
6.2.1 2003년 2월 18일 QNX 6.2.1 (모멘틱스)
6.3 2004년 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.0 2008년 10월 30일 QNX Neutrino RTOS 6.4.0
6.4.1 2009년 5월 QNX Neutrino RTOS 6.4.1
6.5.0 2010년 7월 QNX Neutrino RTOS 6.5.0은 BBX를 생성하기 위해 포크됩니다.
2011년 10월 18일 발표 후 예고된 바와 같이
2012년 5월 1일에 "BlackBerry 10 OS"로 명명되었습니다.
6.5 SP1 2012년 7월 11일 QNX Neutrino RTOS 6.5 SP1
6.6 2014년 2월 28일 QNX 6.6
7.0 2017년 1월 4일 QNX SDP 7.0, 64비트 지원 최초 버전
7.1 2020년 7월 23일 QNX SDP 7.1

사용하다

BlackBerry에서 설계한 BlackBerry PlayBook 태블릿 컴퓨터는 QNX 버전을 기본 운영 체제로 사용합니다.BlackBerry 10 운영 체제를 실행하는 BlackBerry의 장치도 QNX를 기반으로 합니다.

QNX는 또한 임베디드 QNX 아키텍처를 포함하는 변형을 제공하는 많은 주요 자동차 제조업체와 함께 차량 인포테인먼트 시스템에도 사용됩니다.wolfSSL[22]같은 일반적인 SSL/TLS 라이브러리에서 지원됩니다.

최근[when?] 몇 년 동안 QNX는 기능 안전 인증을 필요로 하는 자동차 프로젝트를 위해 자동 드라이브 또는 ADAS 시스템에 사용되어 왔습니다.QNX는 QNX OS for Safety 제품과 함께 이 기능을 제공합니다.

QNX Neutrino(2001)는 많은 플랫폼에 이식되어 현재 임베디드 시장에서 사용되는 거의 모든 최신 중앙 처리 장치(CPU) 제품군에서 작동합니다.여기에는 PowerPC, x86, MIPS, SH-4 및 ARM, Strong ARM 및 XScale밀접하게 관련되어 있습니다.

라이선스

QNX는 비영리 [23]및 학술 사용자를 위한 라이센스를 제공합니다.

지역 사회

  • OpenQNX는 독립적으로 설정 및 실행되는 QNX 커뮤니티 포털입니다.웹을 통해 IRC 채널 및 뉴스그룹에 액세스할 수 있습니다.현장의 [24]개발자는 다양한 업종을 대표한다.
  • Foundry27은 회사가 설립한 웹 기반 QNX 커뮤니티입니다.개발자가 등록하고 라이센스를 선택하여 RTOS의 소스 코드와 관련 툴킷을 얻을 수 있는 QNX [25]Neutrino 개발의 허브 역할을 합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Burns, Matt (December 11, 2014). "Ford Ditches Microsoft For QNX In Latest In-Vehicle Tech Platform". TechCrunch. Retrieved February 26, 2015.
  2. ^ US5745759
  3. ^ Hildebrand, Dan (6 June 1997). "Think Small. (The 1.44M Web Challenge)". marc.info.
  4. ^ "How we did it!". Archived from the original on 28 November 1999. Retrieved 3 August 2020.
  5. ^ QNX CAR http://www.qnx.com/products/qnxcar/
  6. ^ QNX Staff (2004-08-17). "QNX Delivers Extremely Reliable Microkernel for Massively Scalable Routing System". Retrieved 2012-03-16.
  7. ^ "CRS-1 and IOS XR Operational Best Practices". Cisco.
  8. ^ Brad Reese- BradReese.Com (2006-09-26). "Which OS is behind IOS?". Retrieved 2012-03-16.
  9. ^ Leroux, Paul (12 September 2007). "QNX Publishes Neutrino Source Code and Opens Development Process". www.qnx.com.
  10. ^ "RIM to buy QNX Software". The Globe and Mail. Toronto. The Canadian Press. 9 April 2010. Retrieved 2010-04-09.
  11. ^ "foundry27: View Wiki Page: UpdatedQNXSourceAccessPolicyFAQ". community.qnx.com.
  12. ^ RIM, BlackBerry PlayBook 공개, 공식 보도자료, 2010년 9월 27일
  13. ^ Molen, Brad (18 October 2011). "Research in Motion announces BBX, 'combines the best of BlackBerry and QNX'". Engadget. Retrieved 20 January 2013.
  14. ^ Arthur, Charles (2011-12-07). "BlackBerry-maker RIM forced to drop BBX name for new software". Guardian. London. Retrieved 2013-01-20.
  15. ^ Hartley, Matt (3 March 2014). "Apple Inc CarPlay brings iPhone features to GM, BMW, Ford and other car dashboards". Financial Post. Retrieved 2014-03-28.
  16. ^ "BlackBerry's QNX: Why it's so valuable to Apple, Google, auto industry". ZDNet. Retrieved 2014-10-27.
  17. ^ "BlackBerry QNX Launches its Most Advanced and Secure Embedded Software Platform for Autonomous Drive and Connected Cars". 2017-01-04.
  18. ^ 핵심 네트워킹 6.4: Neutrino의 차세대 네트워킹 스택 및 Foundry27 [1]
  19. ^ "foundry27: View Wiki Page: Drivers_wiki_page". community.qnx.com.
  20. ^ "QNX Neutrino RTOS – Embedded OS BlackBerry QNX BlackBerry QNX".
  21. ^ Lévénez, Éric (May 1, 2011). "UNIX History". levenez.com. Retrieved May 18, 2011.
  22. ^ "wolfSSL Build Sizes for the QNX Embedded RTOS". wolfSSL. 17 September 2010. Retrieved 2019-02-13.
  23. ^ "QNX Neutrino Realtime Operating System". QNX. 2010-07-15. Retrieved 2012-10-15.
  24. ^ OpenQNX 커뮤니티 포털:발표하다
  25. ^ QNX 프레스 릴리즈:주조 공장 27

추가 정보

외부 링크