- QNX 1980 के दशक की शुरुआत में कनाडा में शुरू हुआ एक microkernel-आधारित real-time operating system है
- यह IBM PC सहित विभिन्न प्रकार के hardware support, उच्च portability, distributed message passing, और बेहतरीन reliability तथा multitasking environment प्रदान करता है
- शैक्षिक कंप्यूटर, औद्योगिक infrastructure, वाहन systems आदि में अपनाया गया और इसका बड़ा प्रभाव रहा
- POSIX अनुपालन के जरिए Unix के साथ compatibility को मजबूत किया गया, और lightweight GUI (Photon) तथा विभिन्न networking features के साथ इसका विकास हुआ
- automotive, embedded, mobile जैसे नए बाज़ार परिवर्तनों के अनुरूप यह लगातार stability, performance, security को बेहतर बनाता रहा
QNX ऑपरेटिंग सिस्टम की शुरुआत
- 1979 में University of Waterloo के Gordon Bell और Dan Dodge ने Thoth नामक real-time operating system project के माध्यम से अनुभव हासिल किया
- Thoth की विशेषताएँ थीं उच्च portability, synchronous message passing, और hardware से स्वतंत्र रूप से काम करना
- Bell और Dodge ने स्नातक होने के बाद Quantum Software Systems (बाद में QNX Software Systems) की स्थापना की, और prototype microcomputer (6809-आधारित) पर अपना OS विकसित करना शुरू किया
QUNIX — QNX का पूर्वरूप
- पहला संस्करण QUNIX 0.1 microkernel-आधारित था, जिसमें CP/M और UNIX के तत्वों का मिश्रण था, और इसे IBM PC के लिए पहले microkernel real-time OS के रूप में विकसित किया गया
- पारंपरिक Unix से अलग /cmds, /config, /sys जैसी स्वतंत्र directory structure, और
help command जैसी अपनी command system पेश की गई
- hard disk support (QUNIX 0.4 में 5MB HDD), floppy-आधारित booting जैसी शुरुआती सीमाएँ मौजूद थीं
QNX में बदलाव और विकास
- AT&T के trademark issue के कारण 1982 में QUNIX का नाम बदलकर QNX किया गया, और 1983 में QNX 1.0 आधिकारिक रूप से जारी हुआ
- kernel: लगभग 10,000 lines का C code, जिसमें scheduling, message passing, priority handling जैसी microkernel विशेषताएँ थीं
- अधिकांश services (file system, driver, network आदि) message-based communication structure पर आधारित थीं
- network-transparent message queue support, अधिकतम 250 simultaneous tasks, और multi-user support
- C compiler, editor, और networking support सहित इसे $650 में बेचा गया (1983 के मानक के अनुसार)
- QNX 1.2 (1984): pattern matching, shell programming में सुधार, IBM AT support, price cut आदि
शिक्षा क्षेत्र में प्रवेश: Burroughs ICON
- Ontario Ministry of Education के educational standard computer project में अपनाए जाने के बाद ICON computer (80186, 512K RAM, QNX installed) विकसित किया गया
- network-based file server booting (ARCNET), कोई व्यक्तिगत storage device नहीं, और उपयोगकर्ता server-आधारित home directory इस्तेमाल करते थे
- hypertext-आधारित
lessonware प्रयास, विभिन्न educational software, networking, audio features और extensibility सहित उन्नत system निर्माण का अनुभव मिला
औद्योगिक और व्यावसायिक बाज़ार में विस्तार
- 1980 के दशक के मध्य और उत्तरार्ध में IBM PS/2, LAN, GUI, DOS emulation (QDOS, RUNDOS) support जैसी बाज़ार मांगों को शामिल किया गया
- 1987 में QNX 2: IBM AT protected mode, BSD networking, 1TB file, 32 serial ports, simple GUI (House) जैसे upgrades
- office expansion, नए भवन में स्थानांतरण आदि के साथ संगठन का विकास हुआ
POSIX अपनाना और Photon GUI
- 1991 में QNX 4.0: POSIX compliance, kernel का और छोटा होना (7K, 605 LOC), IPC, networking, performance improvements
- 1994 में QNX Photon microGUI जारी: microkernel-आधारित lightweight GUI, network transparency, विभिन्न devices support
- Photon resource-constrained environment से लेकर high-function GUI तक स्केल कर सकता था, और X Window-compatible API भी देता था
- पूरा demo environment (networking, web browser, file management आदि) इतना lightweight था कि 1.44MB floppy की एक ही disk par चल सकता था
embedded और distributed systems, Neutrino की ओर विकास
- QNX 4.25 (1997) तक कई सुधार हुए, और बड़े enterprises तथा industrial sites (power plants, medical, transport, space आदि) में यह real-time OS के रूप में अग्रणी रहा
- 1996 में QNX Neutrino 1.0: SMP, enhanced POSIX, broad CPU support, GNU/GCC adoption, stronger process/thread management
- memory management और process isolation को और सख्त किया गया, और NetBSD networking code अपनाने से इसकी सामान्य उपयोगिता बढ़ी
partnerships और market entry
- 1998 में Amiga के साथ partnership की कोशिश हुई (हालाँकि अंततः Amiga ने Linux अपनाया)
- 1999 में Neutrino 2.0/2.1: UPM (kernel-level protection mechanism), multi-architecture support जैसे PowerPC/MIPS/ARM, और development environment में विविधता
- 1999 में Motorola के साथ सहयोग कर automotive infotainment systems (navigation, audio आदि) में प्रवेश
2000 का दशक: multimedia, automotive, mobile तक
- 2001 में QNX 6.0: multimedia streaming, web package manager, विभिन्न CPU/architecture development environments का integration
- Eclipse-आधारित Momentics Tool Suite (2002), network clustering, IPv6 आदि के साथ modernization
- 2004 में Harman International द्वारा अधिग्रहण के बाद embedded और automotive market पर focus, QNX CAR platform की शुरुआत, और प्रमुख वाहन निर्माताओं द्वारा अपनाया जाना
- बड़े पैमाने पर commercialization: 2010 तक 17 million vehicles, 200 से अधिक models में तैनाती
BlackBerry अधिग्रहण और mobile/security विकास
- 2010 में Research in Motion (BlackBerry) ने QNX का अधिग्रहण किया, और इसे BlackBerry PlayBook और BB10 (=BBX) operating system तक विस्तारित किया गया
- QNX Safety kernel (ISO/IEC certification, mission-critical security), embedded certification market का विस्तार
- Photon में सुधार, networking, multimedia, UI/UX आदि में लगातार विकास
- BBX (2013): gesture-केंद्रित UI, multitasking, विभिन्न app frameworks, और high-performance hardware support
- app ecosystem की सीमाएँ, keyboard हटाना आदि कारणों से यह प्रतिस्पर्धा में सफल नहीं हो सका, हालांकि 2022 तक इसका जीवन बढ़ाया गया
निष्कर्ष
- QNX ने real-time capability, atomic kernel design, network-transparent multiprocessing, scalability, security में अपनी अलग पहचान बनाई
- Unix compatibility के साथ industrial, automotive, और embedded क्षेत्रों में इसने अपना विशिष्ट स्थान बनाया
- open source और mass-market mobile environment में प्रवेश की प्रतिस्पर्धा में यह सफल नहीं रहा, लेकिन mission-critical क्षेत्रों में इसने industrial-standard स्तर की प्रतिष्ठा बनाए रखी है
1 टिप्पणियां
Hacker News राय
इस OS से जुड़ी मेरी कुछ दिलचस्प यादें हैं। जब मैं प्राथमिक स्कूल में था, तब क्लासरूम में ICON कंप्यूटर होते थे और मुझे याद है कि मैं और मेरे दोस्त trackball को जितनी तेज़ हो सके घुमाने की होड़ लगाते थे। बाद में जब मैं BlackBerry में काम कर रहा था, तब मैंने एक फीचर बनाया था जिससे QNX BlackBerry को Bluetooth HID डिवाइस की तरह इस्तेमाल किया जा सके। इसकी मदद से trackpad और physical keyboard के ज़रिए laptop को remotely control किया जा सकता था, और presentations के दौरान यह बहुत काम का था। लेकिन फिर किसी PM ने कहा कि इस फीचर को सिर्फ Playbook तक सीमित कर दिया जाए, और वह लगभग बेकार हो गया। मुझे साफ़-साफ़ याद है कि Dan Dodge ने कहा था कि यह एक standard है, इसलिए इस पर ऐसी पाबंदियाँ नहीं होनी चाहिए। उसी समय से मैं Dan Dodge का सम्मान करने लगा, और उस PM के साथ फिर कभी काम नहीं करना चाहता
यह जानकर हैरानी हुई कि ICON कंप्यूटर इसी OS पर आधारित थे। वे उस दौर के सामान्य PC से काफ़ी आगे थे। हाँ, ICON-to-ICON chat की वजह से दूसरे systems या पूरे network को आसानी से crash किया जा सकता था, यह अलग बात है
QNX आखिरकार BlackBerry 10 बन गया। यह मेरे इस्तेमाल किए हुए सबसे बेहतरीन mobile OS में से था। बस अफ़सोस यही है कि बहुत कम लोगों ने इसे इस्तेमाल किया
तुमने जिस HID फीचर पर काम किया था, मैंने उसे इस्तेमाल किया है और मुझे वह बहुत पसंद आया था
KDE Connect लगभग यही काम और बेहतर तरीके से करता है। सच में शानदार है
काश ICON का अनुभव emulator में सुरक्षित रखा जा सके। आजकल शायद browser में पूरे ICON network को भी emulate किया जा सकता है
मुझे QNX Photon की minimal aesthetic बहुत पसंद थी। Photon जैसा एहसास बनाए रखने के लिए मैं एक काफ़ी जटिल FVWM configuration चलाता था। वैसे, यह 2004 के मेरे Gentoo desktop का screenshot है डेस्कटॉप स्क्रीनशॉट
मैंने तुम्हारा setup अपनाया था और 15 साल से ज़्यादा समय तक उसे बनाए रखा
आज भी यह शानदार दिखता है। सोच रहा हूँ, क्या तुम्हारे पास अभी भी dotfiles हैं?
मेरे WindowMaker theme से कहीं बेहतर है। तुम्हारा FVWM theme सच में कमाल का है
screenshot में जो है, क्या वह Winamp की नकल नहीं है?
मुझे QNX का विचार इतना पसंद आया कि उससे बहुत उम्मीदें थीं। उस समय हमारी टीम एक optical food processor को DSP से general-purpose hardware (FireWire, 1394) पर ले जा रही थी। QNX की process isolation शानदार थी, लेकिन message-based data transfer का overhead उतना संतोषजनक नहीं था। आखिर में हमने Linux के 1394 driver में isochronous mode/dma support के लिए 2000 डॉलर दिए और उसे RT extensions के साथ इस्तेमाल किया। उस अनुभव से मैंने जो सीखा, वह था “कुरूपता के संरक्षण का नियम”। यानी software systems में कहीं न कहीं कोई न कोई असुंदर ‘कुरूपता’ हमेशा रहती है; आप एक जगह उसे सुधारते हैं, तो वह किसी दूसरी जगह चली जाती है
मुझे लगता है “कुरूपता के संरक्षण का नियम” मूल रूप से ‘waterbed principle’ से बहुत मिलता-जुलता है। किसी भी पर्याप्त जटिल system में आप एक समस्या को दबाते हैं, तो वह कहीं और उभर आती है। अगर waterbed principle के बारे में और जानना चाहें, तो यहाँ देख सकते हैं
QNX में message passing को तेज़ करने का एक विचार है। इसमें paging mechanism का इस्तेमाल करके messages भेजे जाते हैं, यानी data copy करने के बजाय सिर्फ page table update की जाती है। बेशक, macro kernel की तुलना में double TSS load overhead फिर भी रहता है, लेकिन यह काफ़ी तेज़ है। फिर भी elegance की अपनी क़ीमत होती है। जब आप latency, reliability, stability और correctness जैसी चीज़ें देखते हैं, तो ये अक्सर raw throughput से कहीं ज़्यादा महत्वपूर्ण बन जाती हैं
आज के समय में DSMP(Direct System Memory Protection) पूरी तरह supported है, और system performance भी बहुत बेहतर हो चुकी है, इसलिए मुझे नहीं लगता कि message passing overhead अब उतनी बड़ी समस्या है। बल्कि इसके दूसरे फायदे ज़्यादा महत्वपूर्ण हैं
क्या “optical food processor” एक रूपक है, या सचमुच images का इस्तेमाल करके खाना काटने वाली कोई मशीन थी?
इस ब्लॉग में जो ICON की तस्वीर है, वह दरअसल मेरी ही ICON है, और उसे मेरे ब्लॉग से लिया गया है (credit देने के लिए धन्यवाद)। मैं QNX पर ICON कंप्यूटर के बारे में अपनी पोस्ट साझा कर रहा हूँ। पहली पोस्ट में QNX demo video का YouTube link भी है
ICON पोस्ट
LEXICON पोस्ट
लगभग 2002 में मैंने एक cable modem में telnet किया था और यह देखकर बहुत हैरान हुआ कि उस पर QNX चल रहा था
लगभग 1996 में, जब मैंने एक floppy disk पर RTOS GUI और network stack सहित QNX देखा, तो उसके इतने छोटे आकार पर दंग रह गया। Slackware install करने के लिए कई disks लगती थीं, और QNX लगभग अविश्वसनीय लगा
मुझे भी याद है। उस छोटे demo में web browser भी था। अगर खुद आज़माना चाहें, तो यहाँ कर सकते हैं
ऐसे demo versions का मकसद ही capability दिखाना था। उस दौर में QNX liveCD दुनिया में उन चीज़ों में था जिनकी लोग खुलकर तारीफ़ करते थे। वैसे floppy से चलने वाला X11 और web browser वाला Linux भी था, और वह भी सच में कमाल था HN टिप्पणी लिंक
लगभग 2000 में जब मैं Linux desktop के साथ प्रयोग कर रहा था, तब QNX demo डाउनलोड करके सच में चौंक गया था
मैंने यूनिवर्सिटी में QNX 4 के साथ एक robotic system बनाया था। networked 486/Pentium CPU cards का इस्तेमाल करके हमने पूरी तरह hard real-time robot configuration तैयार की थी। QNX का मूल system call (send/receive/reply) header file में लगभग 3 lines of assembly के रूप में inline implement किया गया था, यह मुझे बहुत प्रभावशाली लगा। उसी अनुभव के आधार पर मैंने robotics में vxWorks, SunOS, Linux आदि पर वैसी ही चीज़ें खुद implement करके बहुत कुछ सीखा
रोबोट सिस्टम शोधपत्र
अगर आप Raspberry Pi पर QNX आज़माना चाहते हैं, तो यह लेख काम आ सकता है QNX Raspberry Pi इंस्टॉलेशन गाइड
यहाँ QNX 8.0 की एक free image भी है। इसे सीधे Pi 4 पर flash करके इस्तेमाल किया जा सकता है, और Pi 400 व CM4 के लिए भी adjust किया जा सकता है
मुफ़्त QNX 8.0 इमेज और जानकारी
अगर आप virtual machine में इस्तेमाल करना चाहते हैं, तो archive.org से पुराने versions की images डाउनलोड कर सकते हैं
पुरानी QNX इमेजेज
मैंने QNX पर एक audio server बनाया था और MP3 encoding व playback तक port किया था। जब मैं उनके headquarters गया, तो Dan Dodge ने टीम से कहा कि वे हमारी पूरी मदद करें। उसी वजह से हम अपने startup को स्थिरता से शुरू कर पाए, और 6 साल बाद Linux पर migrate करने तक QNX ने बहुत मदद की
Quantum ने Unix के प्रति सम्मान की बात तो की, लेकिन QNX को 1980s की design से 1990s का OS बनाने के रूप में प्रचारित किया। उस समय GNU, Internet, Microsoft Windows, third-party development, Windows-based apps की entry barriers, web, shareware, BBS, VAR, free software movement जैसी चीज़ों का अनुमान नहीं लगाया गया था। OS market winner-take-all होती है, और कुछ सौ डॉलर की pricing एक रणनीतिक गलती थी। शायद उस दौर में यह टालना मुश्किल था, लेकिन समस्या की समझ मौजूद थी। और GUI के महत्व को भी देर से समझा गया; Photon GUI तो QNX 4.1 (1994) में जाकर आया