1P by GN⁺ 7일전 | ★ favorite | 댓글 1개
  • QNX는 1980년대 초 캐나다에서 시작된 마이크로커널 기반 실시간 운영 체제
  • IBM PC 등 다양한 하드웨어 지원, 높은 이식성과 분산 메시지 전달, 뛰어난 신뢰성과 멀티태스킹 환경을 제공함
  • 교육용 컴퓨터, 산업 인프라, 차량 시스템 등에서 채택되어 큰 영향력을 가짐
  • POSIX 준수를 통해 유닉스와의 호환성을 강화하고, 경량 GUI(Photon) 와 다양한 네트워크 기능으로 발전함
  • 자동차, 임베디드, 모바일 등 최신 시장 변화에도 대응하며 지속적으로 안정성과 성능, 보안성을 높여왔음

QNX 운영 체제의 시작

  • 1979년 University of Waterloo의 Gordon BellDan DodgeThoth라는 실시간 운영 체제 프로젝트를 통해 경험을 쌓음
    • Thoth는 높은 이식성, 동기식 메시지 전달 특징, 하드웨어와 무관하게 작동
  • Bell과 Dodge는 졸업 후 Quantum Software Systems(후일 QNX Software Systems)를 설립, 프로토타입 마이크로컴퓨터(6809 기반)에서 자체 OS 개발 착수

QUNIX — QNX의 전신

  • 최초 버전인 QUNIX 0.1은 마이크로커널 기반, CP/M과 UNIX 요소의 혼합 형태, IBM PC용 최초 마이크로커널 실시간 OS로 개발됨
  • 전통적인 유닉스와 달리 /cmds, /config, /sys 등 독자적 디렉터리 구조, ‘help’ 명령 등 고유한 명령 체계 도입
  • 하드디스크 지원(QUNIX 0.4에서 5MB HDD), 플로피 기반 부팅 등 초창기 한계 존재

QNX로의 전환과 성장

  • AT&T의 상표 문제로 1982년 QUNIX에서 QNX로 이름 변경, 1983년 QNX 1.0 공식 출시
    • 커널 : 약 10,000 라인의 C 코드, 스케줄링, 메시지 패싱, 우선순위 처리 등 마이크로커널 특성
    • 서비스(파일 시스템, 드라이버, 네트워크 등) 대부분이 메시지 기반 통신 구조
    • 네트워크 투명 메시지 큐 지원, 최대 250 동시 태스크, 다 사용자 허용
  • C 컴파일러, 에디터, 네트워킹 지원 포함해서 $650에 판매(1983년 기준)
  • QNX 1.2(1984년): 패턴 매칭, 쉘 프로그래밍 강화, IBM AT 지원, 가격 인하 등

교육 분야로의 진출: Burroughs ICON

  • 온타리오 주 교육부의 교육용 표준 컴퓨터 프로젝트에 채택되어 ICON 컴퓨터(80186, 512K RAM, QNX 탑재) 개발
  • 네트워크 기반 파일 서버 부팅(ARCNET) , 개별 저장 장치 미포함, 사용자는 서버 기반 홈 디렉터리 사용
  • 하이퍼텍스트 기반 ‘lessonware’ 시도 및 다양한 교육 소프트웨어, 네트워킹, 오디오 기능, 확장성 등 선진 시스템 구축 경험

산업 및 상용 시장의 확장

  • 1980년대 중후반 IBM PS/2, LAN, GUI, DOS 에뮬레이션(QDOS, RUNDOS) 지원 등 시장 요구 반영
  • 1987년 QNX 2: IBM AT 보호모드, BSD 네트워킹, 1TB 파일, 32 직렬포트, 단순 GUI(House) 등 업그레이드
  • 사무실 확장, 신사옥 이전 등 조직 성장

POSIX 도입 및 Photon GUI

  • 1991년 QNX 4.0: POSIX 준수, 커널의 소형화(7K, 605 LOC), IPC, 네트워킹, 퍼포먼스 향상
  • 1994년 QNX Photon microGUI 출시: 마이크로커널 기반 경량 GUI, 네트워크 투명성, 다양한 기기 지원
    • Photon은 자원 제약 환경부터 고기능 GUI까지 확장, X 윈도우 호환 API 겸비
    • 전체 데모 환경(네트워킹, 웹 브라우저, 파일 관리 등)이 1.44MB 플로피 한 장에 구동될 정도로 경량화

임베디드 및 분산 시스템, Neutrino로의 진화

  • QNX 4.25(1997)까지 다양한 개선, 대기업 및 산업 현장(발전소, 의료, 교통, 우주 등)에서 실시간 OS 선도
  • 1996년 QNX Neutrino 1.0: SMP, 강화된 POSIX, 광범위 CPU 지원, GNU/GCC 도입, 프로세스/스레드 관리 강화
    • 메모리 관리와 프로세스 격리 더 철저, NetBSD 네트워킹 코드 도입으로 범용성 향상

파트너십과 시장 진입

  • 1998년 Amiga와 파트너십 추진(최종적으로 Amiga는 Linux 채택)
  • 1999년 Neutrino 2.0/2.1: UPM(커널 수준의 보호 메커니즘), PowerPC/MIPS/ARM 등 멀티 아키텍처 지원, 개발 환경 다양화
  • 1999년 Motorola와 협력, 자동차 인포테인먼트 시스템 진출(내비게이션, 오디오 등)

2000년대: 멀티미디어, 자동차, 모바일까지

  • 2001년 QNX 6.0: 멀티미디어 스트리밍, 웹 패키지 매니저, 다양한 CPU/아키텍처 개발 환경 통합
  • Eclipse 기반 Momentics Tool Suite(2002), 네트워크 클러스터링, IPv6 등 현대화
  • 2004년 Harman International 인수 후 임베디드·자동차 시장 집중, QNX CAR 플랫폼 도입, 주요 차량 제조사에 채택
  • 대량 상용화: 2010년까지 17백만대 차량, 200개 이상 모델에 탑재

BlackBerry 인수와 모바일/보안 진화

  • 2010년 Research in Motion(BlackBerry)이 QNX 인수, BlackBerry PlayBook·BB10(=BBX) 운영 체제로 확장
    • QNX Safety 커널(ISO/IEC 인증, 미션크리티컬 보안), 임베디드 인증시장 확대
    • Photon's 개선, 네트워크, 멀티미디어, UI/UX 등 지속 진화
  • BBX(2013): 제스처 중심 UI, 멀티태스킹, 다양한 앱 프레임워크, 고성능 하드웨어 탑재
    • 앱 생태계 제한, 키보드 제거 등으로 경쟁 실패, 2022년까지 수명 연장

결론

  • QNX는 실시간성, 원자적 커널 설계, 네트워크 투명 멀티프로세싱, 확장성, 보안성에서 두각을 나타내었음
  • 유닉스 호환성, 산업·자동차·임베디드 분야에서 독자적 영역 구축
  • 오픈 소스와 대중적 모바일 환경 진입 경쟁에서는 실패했으나, 미션크리티컬 분야에선 산업 표준급 명성을 유지하고 있음
Hacker News 의견
  • 나는 이 OS와 관련된 재미있는 추억이 있음. 초등학교 때 ICON 컴퓨터가 교실에 있었고, 친구들과 트랙볼을 최대한 빠르게 돌리려고 경쟁했던 기억임. BlackBerry에서 일할 때는 QNX BlackBerry를 Bluetooth HID 기기로 활용하도록 만드는 기능을 개발했음. 이를 통해 트랙패드와 물리 키보드로 노트북을 원격에서 제어할 수도 있었고, 프레젠테이션 때 정말 유용했음. 그런데 어떤 PM이 이 기능을 Playbook 전용으로 제한하라고 해서 사실상 무용지물이 되었음. Dan Dodge가 표준이니 만큼 제약을 두면 안 된다고 주장한 걸 또렷하게 기억함. Dan Dodge를 존경하게 되었고, 그 PM과는 다시 일하고 싶지 않음

    • ICON 컴퓨터가 이 OS 기반이었다는 게 놀라움. 그 당시 일반 PC보다 훨씬 진보적이었음. 단, ICON끼리 대화 기능을 통해 다른 시스템이나 네트워크 전체를 쉽게 다운시킬 수 있었던 점은 예외였음

    • QNX는 결국 BlackBerry 10이 되었음. 내가 써봤던 최고의 모바일 OS임. 다만 소수만이 사용했던 점이 아쉬움

    • 네가 작업했던 HID 기능을 사용해봤고, 정말 마음에 들었음

    • KDE Connect가 사실상 동일한 기능을 더 잘해냄. 진심으로 훌륭함

    • ICON 경험을 에뮬레이터로 보존할 수 있었으면 함. 요즘 브라우저로도 ICON 네트워크 전체를 에뮬레이션할 수 있을 것 같음

  • QNX Photon의 미니멀한 미학이 정말 좋았음. Photon 느낌을 최대한 살리려고 복잡한 FVWM 설정을 유지했었음. 참고로 2004년 Gentoo 데스크탑 스크린샷임 데스크탑 스크린샷

    • 네 설정을 나도 가져다가 15년 넘게 유지해왔음

    • 지금 봐도 멋져 보임. dotfiles를 아직도 가지고 있나 궁금함

    • 내 WindowMaker 테마보다 월등함. 네 FVWM 테마 정말 멋짐

    • 스크린샷에 있는 게 Winamp 짝퉁 아님?

  • QNX라는 발상이 정말 맘에 들어서 엄청 기대했음. 당시 우리 팀은 광학 식품 프로세서를 DSP에서 범용 하드웨어(FireWire, 1394)로 옮기는 중이었음. QNX의 프로세스 격리는 굉장했고, 메시지 기반 데이터 전송의 오버헤드는 그렇게 만족스럽지 못했음. 결국 리눅스의 1394 드라이버에 isochronous mode/dma를 2천 불 주고 지원받았고 RT extensions와 함께 사용했음. 이때 얻은 교훈이 바로 “추함 보존의 법칙”임. 소프트웨어 시스템에선 어느 부분엔 절대 세련되지 못한 ‘추함’이 남아있는데, 한쪽을 개선하면 그 ‘추함’이 다른 곳으로 옮겨간다는 점임

    • “추함 보존의 법칙”이 본질적으로 ‘워터베드 원리’와 매우 비슷하다고 생각함. 어느 정도 복잡도가 있는 시스템에선 한 부분의 문제를 누르면 반드시 다른 곳에 튀어나옴. 워터베드 원리에 대해 더 궁금하다면 여기 참고할 수 있음

    • QNX에서 메시지 전달 속도를 높이는 아이디어가 있음. 페이징 메커니즘을 이용해서 메시지를 보내는 방식인데, 데이터 복사 없이 페이지 테이블만 업데이트하는 것임. 물론 여전히 macro kernel에 비해 double TSS load 오버헤드가 있지만 빠른 편임. 그래도 우아함엔 대가가 따름. 지연, 신뢰성, 안정성, 정확성까지 생각하면 단순한 처리속도보다 이런 요소들이 훨씬 무거운 선택지가 됨

    • 오늘날에는 DSMP(Direct System Memory Protection)가 완전히 지원되고, 시스템 성능도 월등해져서 메시지 전달의 오버헤드는 그리 큰 문제가 아니라고 생각함. 오히려 다른 장점이 더 크다고 봄

    • “optical food processor”가 은유인지, 진짜로 이미지를 활용해 음식을 자르는 장치인지 궁금함

  • 이 블로그에 있는 ICON 사진이 바로 내 ICON이고, 내 블로그에서 가져갔음(출처 표기는 고마움). 내 QNX에서 ICON 컴퓨터를 다룬 포스트를 공유함. 첫 글엔 QNX 데모 영상 유튜브 링크도 있음
    ICON 포스트
    LEXICON 포스트

    • 혹시 소프트웨어나 ROM을 archive.org에 백업할 계획이 있는지 궁금함. 이 시스템의 에뮬레이터 제작이 ROM 접근성 문제로 막혔었음
  • 2002년쯤 케이블 모뎀을 telnet으로 접속했더니 QNX가 돌아가고 있길래 엄청 신기했음

  • 1996년쯤, 플로피 한 장에 RTOS GUI와 네트워크 스택까지 담긴 QNX를 받아보고 그 작은 용량에 감탄했음. 슬랙웨어 설치만 해도 디스크 여러 장이 필요했는데 QNX는 믿기 어려웠음

    • 나도 기억함. 그 작은 데모에 웹 브라우저까지 들어 있었음. 직접 체험해보고 싶으면 여기에서 가능함

    • 이런 데모 버전 자체가 사실은 기능 과시를 위한 용도였음. 당시엔 QNX가 라이브CD 시장에서 사람들이 입을 모아 칭찬할 정도로 인상적이었음. 참고로 플로피에서 구동되는 X11과 웹 브라우저가 탑재된 리눅스도 있었는데, 그것도 정말 대단했음 HN 댓글 링크

    • 2000년쯤 리눅스 데스크탑을 만져보던 찰나 QNX 데모를 받아보고 깜짝 놀랐던 기억임

  • QNX 4로 대학에서 로봇 시스템을 만들었음. 네트워크로 연결된 486/Pentium CPU 카드를 활용해 완전한 하드 리얼타임 로봇 구성에 성공했음. QNX의 기본 시스템 콜(send/receive/reply)이 헤더 파일에 거의 3줄 어셈블리로 인라인 구현된 점이 인상적이었음. 이 경험을 바탕으로 로봇틱스 분야에서 vxWorks, SunOS, Linux 등에서 비슷한 기능을 직접 구현하며 많은 것을 배웠음
    로봇 시스템 논문

    • QNX는 한때 현실에서 진짜로 사용되는 마이크로커널 OS의 ‘불가능을 가능케 한 표준’이었음. 요즘은 Nintendo Switch Horizon, seL4, HarmonyOS NEXT 같은 최신 OS와 비교해서 어떤 위치일지 궁금함
  • 라즈베리 파이로 QNX를 체험하고 싶으면 참고할만한 글을 공유함 QNX 라즈베리파이 설치 가이드

    • 여기 QNX 8.0의 무료 이미지도 있음. 바로 Pi 4에 플래시해서 사용할 수 있고, Pi 400과 CM4에도 맞게 조절 가능함
      무료 QNX 8.0 이미지 및 안내

    • 가상 머신에서 쓰고 싶으면 구 버전 이미지를 archive.org에서 받아볼 수 있음
      구버전 QNX 이미지

  • QNX로 오디오 서버를 만들어서 MP3 인코딩과 재생 기능까지 포팅했음. 본사에 직접 방문했을 때 Dan Dodge가 팀원들에게 전폭적으로 우리를 도와주라 지시했음. 그 덕분에 스타트업을 안정적으로 시작할 수 있었고, 6년 뒤 리눅스로 이전할 때까지 큰 도움을 받았음

    • 너무 멋진 이야기임. QNX Everywhere를 통해 이런 정신을 다시 살릴 예정임. 커뮤니티에 무료 접근과 최대한 지원 제공할 계획임
  • Quantum에선 유닉스를 존중한다고 하면서도 QNX가 1980년대 설계로 90년대의 OS가 되리라 홍보했음. 당시에 GNU, 인터넷, Microsoft Windows, 써드파티 개발, Windows 기반 앱 진입장벽, 웹, 쉐어웨어, BBS, VAR, 자유소프트웨어 운동 등은 고려하지 못했었음. 운영체제 시장이 승자독식 구조라는 점, 그리고 몇백 달러의 가격정책이 패착이었음. 그 시절에는 불가피했겠지만, 문제의식은 분명 있었음. 물론 GUI의 중요성도 늦게 인식했고, Photon GUI는 QNX 4.1(1994년)에서야 등장했음

    • 이 OS는 POSIX 호환이면서 데스크톱/서버까지 확장 가능하고, 극도로 안정적이며 실시간 제어도 가능한 독특한 시스템이었음. 실시간 특성 덕분에 인터랙션이 매우 쾌적했고, 1990~2000년대까지는 이런 틈새시장이 있었기에 회사가 존속할 수 있었음. 1.44MB에 전체 GUI, 네트워킹, 웹브라우저까지 모두 담았던 1999년 데모는 지금도 그만한 기능 압축을 본 적이 없을 만큼 대단했음. 요즘엔 실시간 리눅스가 QNX급 성능을 내고, QNX 6.6 이후로는 셀프 호스팅 개발도 중단되어 매력이 옅어짐. 사업적으로는 자동차/임베디드 시장에 집중하는 게 합리적이지만, 테크 덕후로서 아쉬운 감정임. 고가 라이선스와 리얼타임 리눅스(고급), Zephyr/FreeRTOS(저급) 경쟁 때문에 새 프로젝트에 QNX를 선택할 이유가 잘 떠오르지 않음. 혹시 최근에 QNX를 선택한 사례가 있다면 의견 듣고 싶음