Successfully reported this slideshow.

Review of QNX

1,929 views

Published on

Published in: Engineering, Technology, Business
  • Be the first to comment

Review of QNX

  1. 1. QNX Software Systems Hasnat Ashiq QNX Software Systems
  2. 2. A subsidiary of Research In Motion Limited 2 QNX Confidential. All content copyright QNX Software Systems. What We Do QNX Neutrino the most reliable realtime OS QNX Momentics the most productive IDE Support & Services the most satisfied customers QNX Software Systems Ltd. the company you can count on now and in the future
  3. 3. A subsidiary of Research In Motion Limited 3 QNX Confidential. All content copyright QNX Software Systems. ! QNX has been in business for over 30 years! ! We sell to OEMs with long product life cycles (10+ years) ! We have a solid business model to ensure we will be there when you need us ! Uncompromising Reliability ! Fault-tolerance, intelligent recovery, and high-availability for mission-critical systems ! Predictable Realtime Performance ! Deterministic response times, both at the application level and within all subsystems ! Unmatched Scalability ! Scale down to support memory-constrained devices or scale up to fully distributed SMP-based systems. Include only those modules/services your application needs ! Clean IP - Our Engineers wrote QNX Neutrino! ! We own or have clear license to distribute the runtime products we provide QNX Advantages
  4. 4. A subsidiary of Research In Motion Limited 4 QNX Confidential. All content copyright QNX Software Systems. ! Standards-based RTOS (POSIX) ! Compliance with POSIX1003.1, realtime extensions, threads, etc. ! Access to a large pool of developers and source code ! Portability from and to other OSs ! Choice of Graphics UI ! Qt ! HTML5 (Apps and Media) ! Open GLES ! Crank Storyboard ! Choice of Host and Target Platforms ! Develop from Windows, Linux or self hosted on QNX Neutrino itself ! Target ARM, MIPS, PowerPC, SH4, or x86 boards ! Standards-based Tools (Eclipse IDE Framework) ! Ability to plug in 3rd Party tools ! Participation of hundreds of vendors ! QNX is board member and leads the C/C++ tooling project ! Wide range of services to fit every need ! Scalable support plans make it affordable QNX Advantages
  5. 5. A subsidiary of Research In Motion Limited Standards  /  Cer,fica,ons   ISO  9001:2008  •    IEC  61508  Safety  Integrity  Level  (SIL)  3     Common  Criteria  ISO/IEC  15408  EAL  4+    •    POSIX  PSE52   Real,me  Controller  1003.13-­‐2003,  IEC  62304   Siemens  Healthcare  –  leading  supplier  of  diagnos,c  imaging  systems  +  QNX  customer  since  2002  
  6. 6. A subsidiary of Research In Motion Limited Neutrino Runtime Portfolio 6 QNX Confidential. All content copyright QNX Software Systems. WebSphere Device Developer WCE SMF / OSGIWME Java Critical Process Monitor SSHRadius Diagnostics/Security Target Agent SSL IKE Database Device Update Web Services XML/SOAP High Availability Middleware 802.11x 1394 CAN BluetoothMOST Connectivity UART / I2C SPI / MMC Ethernet NPU USBFrameworks Policies Power Managed Drivers Boot/Recovery Time Power Management/Startup Multimedia Framework Audio Drivers Soft Decoders MPEG1, 2 MP3, WM Audio metadata Multimedia Fault Tolerance Driver FrameworkDebugging Services Core Runtime Transparent Distributed Processing ISO C++ Runtime (Full, Embedded)C Library (ANSI, POSIX, C99, math) Microkernel Mini-Drivers IPv4 Stack Network Drivers IPv6/IPSec Networking Daemons/Utilities Multi-Processing/SMP InstrumentationAdaptive Partitioning Scheduler SNMP Routing 2D Graphics Accelerated Drivers Photon GUI Graphics Adobe Flash Web Browser Fonts FFSv3 NOR Block Drivers EIDE, ATAPI, SCSI ETFS Nand Filesystems Filesystem FAT, LTFS, ext2 Compression CD, ISO9660, UDF
  7. 7. A subsidiary of Research In Motion Limited Core OS Networking FileSystems Neutrino uKernel High Availability Manager Adaptive Partitioning Multicore Connectivity Utilities Database Cortex A15 Freescale QorIQtm Intel Coretm Intel AtomtmCortex A8Cortex A9 3rd Party UIs EB GuideStoryboard QNX 6.6 Software Stack 7 Confidential Information of QNX Software Systems Limited Cortex A15 Hardware support Intel Coretm Intel AtomtmCortex A8Cortex A9 Qt 5.2 QNX Momentics Tool Suite QNX Neutrino RTOS Screen Composition Manager Device Input Font Rendering GPU Acceleration Fonts Display Controller
  8. 8. A subsidiary of Research In Motion Limited 8 QNX Confidential. All content copyright QNX Software Systems. POSIX Profiles – OS Compliance —Configure, GCC, perl, … Configure, GCC, perl, … Best practices (development) PSE 51/PSE 521003.1-1996*1003.1-2001Specification Base ——√ 1003.1j-200x Advanced Realtime (Barriers, spin-locks, …) ——√1003.1d-1999 Additional Realtime (Sporadic server scheduling, execution timers, …) —√√Realtime Threads (.1c) √√√Realtime (.1b) RTOS xLinuxQNX NeutrinoPOSIX Standard * Newer versions of Linux kernel moving toward conformance with 2001 specification.
  9. 9. A subsidiary of Research In Motion Limited 9 QNX Confidential. All content copyright QNX Software Systems. Microkernel Architecture Message Bus Microkernel + Process Manager are the only trusted components Process Manager ARM, MIPS, SH4, PowerPC, Xscale, x86 Applications and Drivers §  Are processes which plug into a message bus • Reside in their own memory-protected address space • Cannot corrupt other software components • Can be started, stopped and upgraded on the fly Microkernel Application io-block io-pkt io-graphics io-audio io-char µK
  10. 10. A subsidiary of Research In Motion Limited 10 QNX Confidential. All content copyright QNX Software Systems. TRUE Microkernel (QNX Neutrino) •  MMU with full protection •  Applications, drivers, and protocols are protected Process Manager µK Filesystem DriverApplication Monolithic Kernel (XP, WinCE, Linux) •  MMU with partial protection •  Applications are protected Application Application Kernel Filesystem Network Driver Application Application Kernel Filesystem Network Driver Real Time Executive (VxWorks) •  No MMU and no protection •  Applications, drivers, and protocols are all in Kernel space Benefits of a Microkernel Architecture System wide corruption Ð ÐContained (restartable) System wide corruption ÐContained (restartable) ÐContained (restartable) Ð Ð
  11. 11. A subsidiary of Research In Motion Limited 11 QNX Confidential. All content copyright QNX Software Systems. Inter-Process Communication io-audioio-block Process Manager io-pkt io-graphics io-char Application Using Messages: • Cleanly decouples processes • POSIX calls built on messages fd = open( “/dev/tcpip”, ,,, ) read, write, stat, devctl, … close Other POSIX calls as well • realtime signals • pipes and POSIX mqueues • mutexs, condvars, semaphores • barriers, sleepon • reader/writer locks Process communicate by sending messages Application Shared memory large data sets and hardware access µK /dev/tcpip /dev/ser1 Message Bus Microkernel
  12. 12. A subsidiary of Research In Motion Limited 12 QNX Confidential. All content copyright QNX Software Systems. Hard Realtime Performance è  Multiple concurrent scheduling algorithms §  FIFO, Round Robin, Sporadic §  Used if multiple threads ready and same priority Thread B Thread C Thread A Priority 50 Priority 18 Priority 12 è  Prioritized pre-emptable threads §  256 priority levels §  Fully pre-emptable and deterministic kernel è  Prioritized and nested interrupts §  Interrupt handlers can schedule a user thread or run custom interrupt code Runnable Running Handler x Handler y IRQ x IRQ y (higher) Thread A Thread B Thread B scheduled by y
  13. 13. A subsidiary of Research In Motion Limited 13 QNX Confidential. All content copyright QNX Software Systems. MaintenanceManagement Defining Partitions Management Interface QNX Neutrino micro-kernel Routing & Forwarding Maintenance Given the processing scenarios, choose a partitioning approach and appropriate partition budgets 5% 75% 20% Routing & Forwarding
  14. 14. A subsidiary of Research In Motion Limited 14 QNX Confidential. All content copyright QNX Software Systems. High availability monitor for 24/7 operation Microkernel HA Manager HA Manager Guardian Application A Driver Application B Driver 1. Driver faults due to illegal access to memory outside protected space 2. Kernel notifies HA Manager of process fault 3. Debug information on faulting process is collected 4. Driver exits and returns all resources to system 5. HA Manager restarts new application 6. Driver IPC channels are reestablished by HA client library 7. Driver can requests information on last state checkpoint from HA Manager Shared Memory State Information
  15. 15. A subsidiary of Research In Motion Limited 15 QNX Confidential. All content copyright QNX Software Systems. Message Bridge QNET - Distributed Processing io-audioio-block Process Manager io-graphics io-char Bridging the kernel allows messages to flow transparently from one message bus to another over a variety of transports (Ethernet, RapidIO, custom switching fabric, internet, …) Applications and Servers become network distributed without any special code. You gain unified access to all remote hardware and software resources Multiple network links will redirect traffic on network failures µK internet io-pkt Application Process Manager io-pkt µK Application Message Bus Microkernel open (“/dev/tcpip”,…)open(“/net/m1/dev/tcpip”, …) m1 m2
  16. 16. A subsidiary of Research In Motion Limited App   Power/Thermal Management Features ! Tickless mode ! Optimize clock ticks when system is in idle state ! Tolerant Timers ! For non-real-time timer requirements (e.g. UI response timers) ! Can be assigned a tolerance value ! Lazy Interrupts ! For non-real-time interrupts (e.g. keyboard interrupt event) ! Can specify an acceptable latency ! Dynamic Voltage and Frequency Scaling (DVFS) for ARM Cortex SoCs
  17. 17. A subsidiary of Research In Motion Limited Security Enhancements ! EAL4+ certified ! OpenSSH, OpenSSL, libcrypto ! Limiting root processes via abilities (QNX unique feature) ! Breaks “root” into 49 separate capabilities that comprise root authority ! Individual capabilities can be assigned to processes that need access ! Compromised processes only have a tiny subset of privileged operations available ! Authorization Manager ! Allows creation of ACLs (Access Control Lists) that cannot be persistently altered ! Heap and stack buffer overflow protection ! Address Space Layout Randomization (ASLR) ! Heap cookies ! Stack guard pages
  18. 18. A subsidiary of Research In Motion Limited 18 QNX Confidential. All content copyright QNX Software Systems. Networking Protocol Support
  19. 19. A subsidiary of Research In Motion Limited 19 QNX Confidential. All content copyright QNX Software Systems. File Systems QNX4 § POSIX QNX6 § PowerFail Safe, encrypted DOS § Fat 12, 16, 32 RCFS Linux § EXT2 CDROM § ISO9660, Rock Ridge, Joliet, DVD-RAM Others § DVD UDF, NT, Apple Disk Network CIFS § Microsoft connectivity NFS § Unix connectivity Special Package § Field updates and rollbacks Compression § Decompression on the fly § 30 to 55% on executables Embedded Image § ROM/RAM/Flash § Execute-in-place RAM § Temporary files NAND § Paged flash ETFS § Transaction NOR § Linear flash è Background erase and reclaim with pre-emption è Fault tolerant è POSIX semantics § hierarchical directory structure, symbolic links, permissions
  20. 20. A subsidiary of Research In Motion Limited QNX Screen Screen composition manager •  Completely integrated and optimized •  Create a single unified interface from multiple UI technologies Support for latest mobile graphic techniques •  Multi touch Input control •  Gestures More efficient and streamlined API •  New driver architecture based on the OpenWF Display (WFD) API
  21. 21. A subsidiary of Research In Motion Limited Multi-touch and Gestures ! Driven by the Smartphone Age, it is our expectation to be able to use multi-touch at almost every graphical display ! Multi-touch and gestures are being supported by an increasing set of (non smartphone) devices ! Oscilloscopes, vending machines, GPS plotters, ATM payment systems, etc. etc. ! Composite and Discrete gestures supported ! Industrial controllers increasingly requiring multi-touch inputs ! Reduced input hardware ! Reduced space Composite   Discrete   Swipe   Tap   Pinch   Double  tap   Rotate   Triple  tap   Two-­‐finger  Pan   Long  press   Press  and  tap   Two-­‐finger  tap  
  22. 22. A subsidiary of Research In Motion Limited Device Connectivity iPod Interface MTP HTML5 Application Development HTML5 SDK Runtime HTML5 App Extensions Authorization Manager LauncherInstaller HTML5 Engine WebKit Web Platform Integration Monotype Font Technology Multimedia Management mm-sync Media Detection Metadata Reader Playlist Management Multimedia Playback mm-renderer mm-play Audio Codecs Video Codec Integration Audio Codecs Video Codecs Legend QSS Licensed / Sublicensed Code 3rd Party Licensed Code QNX SDK for Apps and Media
  23. 23. A subsidiary of Research In Motion Limited Screen example Example with 4 UI technologies ! Background wallpaper: HTML5 ! Video: From iPhone or iPod ! Navigation: OpenGL ES ! Control application: Qt5 ! Transparently combine multiple off- screen buffers onto the display ! Windows can be moved around, zoomed in / out, rotated, or have transparency effects applied without requiring the application to redraw or even be aware ! Hardware and virtual layer support ! Full hardware acceleration ! Multi-modal input device support
  24. 24. A subsidiary of Research In Motion Limited HTML5 engine and browser ! Engine is highly optimized and tuned version of WebKit ! GPU accelerated CSS transitions ! WebGL support (JavaScript access to OpenGL ES 2.0) ! Fully integrated for QNX SDP 6.6 platforms ! Fully featured browser provided ! Browser UI implemented in HTML5 itself ! Full browser source allows complete customization •  “the BlackBerry 10 browser is more than three times faster than its next-closest competitor” http://bgr.com/2014/02/06/blackberry-10-browser-test-iphone-android/
  25. 25. A subsidiary of Research In Motion Limited ! Cross-platform C/C++ development environment ! Supports all desktop and mobile platforms ! Create Powerful widget-based user interfaces ! Qt Creator 3.0 allows rapid application design ! JavaScript allows UI designers to create behavior without using C++ ! New scene graph rendering engine ! GPU accelerated graphics ! Optimized to prevent unnecessary redraws ! Packaged with QNX CAR 2.1 Qt 5.2
  26. 26. A subsidiary of Research In Motion Limited Application management: Security •  App installer ! Un-packages app and verifies content ! Installs app into separate sandbox •  App launcher ! Manages app lifecycle, starting/switching/ending apps ! Define how apps interact with system (event control, background execution, etc.) •  Authorization manager ! Control app’s access of system resources ! Authorization scheme completely customizable by system architect
  27. 27. A subsidiary of Research In Motion Limited Multimedia Framework ! Audio / video playback ! Play, pause, stop, seek, status events, volume, … ! Integrated audio codecs ! MP3, WMA9, AAC, AAC+, PCM/WAV, MPEG2, MPEG2.5 ! Integrated video codecs ! H.264, MPEG4, XVID, VC-1, WMV9, DIVX ! Media detection ! Apple iPhone/iPod (iAP, iPod video out) ! Android/Windows (MTP) ! USB mass media ! Metadata synchronization and management ! Title, genre, artist, album, album art, etc ! Playlist support ! M3U, M3U ext, iTunes, PLS, ASX, RMP, B4S, WPL, XSPF
  28. 28. A subsidiary of Research In Motion Limited Runtime for APK VM Integration Dalvik VM Automotive Platform Services ASR Integration Navigation Integration Software Update Multimedia Integration Audio Managemen t Rearview Camera Startup Control ASR Engines Navigation Engines Red Bend Core Services Acoustics Integration Notification s Radio HTML5 SDK Runtime QNX CAR APIs WebWorks Platform Javascript Application Framework Sencha jQuery Mobile jQuery Mobile Device Gateway Bluetooth Integration DLNA Integration MirrorLink Integration Bluetooth DLNA MirrorLink HTML5 Reference Applications Navigator Media Player Car Control Navigation Calendar Settings App Section Contacts Communi- cation Web Browser Status Keyboard Developer Examples Qt Reference Applications Settings Navigation Car Control Navigator Calendar Status App Section Contacts Communi- cation Web Browser Media Player Developer Examples Keyboard Qt Runtime Qt Integration Layer QT Engine 3rd Party Reference Applications Best Parking Pandora Slacker The Weather Network Parkopedia Hear Planet Soundtrack er 7Digital Eventseekr Legend QSS Licensed / Sublicensed Code 3rd Party Licensed Code QNX CAR Platform
  29. 29. A subsidiary of Research In Motion Limited 29 QNX Confidential. All content copyright QNX Software Systems. Adaptive Scheduling ConnectivityPower Management Embedded File Systems Graphics WEB Services Multi-Media Networking Critical Process Monitor A Rich set of Components Large File Systems
  30. 30. A subsidiary of Research In Motion Limited Tools: QNX Momentics The Most Productive Tools
  31. 31. A subsidiary of Research In Motion Limited 31 QNX Confidential. All content copyright QNX Software Systems. QNX Momentics Gives you Choice Source Debugger C, C++, Java Code Developer Target Information Profiler Memory Analysis System Builder System Analysis Photon App Builder Rational Clear Case IBM WebSphere … … … Board Support Packages (BSPs) Command Line GCC Tools Device Driver Kits Neutrino Runtime ARM, MIPS, PPC, SH4, XScale, x86 IDE Workbench (Eclipse) Development Host OS: Windows or Linux Choose your host Windows or Linux Choose your language C, C++, Java Choose your target ARM, MIPS, PPC, SH4, XScale, x86 Choose your BSPs BSPs for many popular boards and reference platforms Third Party Plugin Tools Momentics Plugin ToolsExternal Tools And Kits Choose command line or IDE IDE and command line tools interoperate Choose 3rd party tools Growing ecosystem of tools vendors supporting Eclipse Code Coverage
  32. 32. A subsidiary of Research In Motion Limited 32 QNX Confidential. All content copyright QNX Software Systems. Momentics Plug-ins ! Memory Analysis ! Detect double free, non- initialized use, overrun/underrun and memory leaks ! Kill/Freeze/Debug/Ignore on error ! System Analysis ! Software logic analyzer ! Analyze events from the instrumented kernel ! System Builder ! Identify dependencies ! Shrink libraries ! Code Coverage ! Identify exercised source code to evaluate test coverage ! Displays annotated source code as well as summary reports è  Code Developer §  C, C++, Java §  Power wizards to guide you §  Syntax high-lighting, code templates è  Source Debugger §  Concurrently debug multiple C, C++, Java apps è  Target System Information §  Detailed information on all processes and threads è  Application Profiler §  Statistical sampling §  Call counting and call pair tracking §  Visual call graph §  Shared-library aware
  33. 33. A subsidiary of Research In Motion Limited 33 QNX Confidential. All content copyright QNX Software Systems. Code Developer Use the outline view to jump to any point in your source file. Simply double- click to build for any target. Hover over any function to view its arguments and required headers. Hover over any variable to view its type. Insert bookmarks and to-do’s. Set breakpoints before you compile. Identify compiler errors and warnings at a glance. Identify keywords, syntax, and matching brackets at a glance. Track all errors and to-do’s from a central task list.
  34. 34. A subsidiary of Research In Motion Limited 34 QNX Confidential. All content copyright QNX Software Systems. Source Debugger Jump directly to any point in your source. Hover over any variable to view its contents. Edit your source directly from the debugger view. Click here to view breakpoints, variables, watch points, memory, registers, etc. Simply double-click to set a breakpoint. Track each thread independently, or trace control from thread to thread. Use the Debug toolbar to start, stop, or restart processes, and to define breakpoints.
  35. 35. A subsidiary of Research In Motion Limited 35 QNX Confidential. All content copyright QNX Software Systems. Target System Information Inspect the environment settings for any process.Inspect each processes for heap and CPU usage. View blocking relationships at a glance. Sort and examine threads by various attributes. Monitor memory usage per process. Display system information and memory usage
  36. 36. A subsidiary of Research In Motion Limited 36 QNX Confidential. All content copyright QNX Software Systems. Application Profiler Sort results by total time, percentage of total time, call count, etc. Pinpoint which source lines consume the most CPU. Use call pairing to identify your programs dynamic execution structure at a glance. Then use the information to make it more efficient. Determine which threads are busiest
  37. 37. A subsidiary of Research In Motion Limited 37 QNX Confidential. All content copyright QNX Software Systems. Memory Analysis View changes in memory usage over time. Track memory allocations as they occur. View the number of bytes free, allocated, and in use, both overall and per byte range. Detect buffer over-runs and jump directly into the debugger.
  38. 38. A subsidiary of Research In Motion Limited 38 QNX Confidential. All content copyright QNX Software Systems. Code Coverage View lines which have been executed Generate coverage reports
  39. 39. A subsidiary of Research In Motion Limited 39 QNX Confidential. All content copyright QNX Software Systems. System Profiler
  40. 40. A subsidiary of Research In Motion Limited 40 QNX Confidential. All content copyright QNX Software Systems. System Profiler – CPU Activity
  41. 41. A subsidiary of Research In Motion Limited 41 QNX Confidential. All content copyright QNX Software Systems. Summary ! We’re there every step of the way! Product Design •  Modular Client/ Server Architecture •  Training •  Design Reviews •  Follow POSIX Standards Product Development •  Choice of Host and Target •  Faster Development with intuitive IDE •  Standard or Priority Support Plan •  Custom Engineering •  Source Code •  Board Support Pkgs •  System Reviews Product Deployment •  Fault Resistant •  Field Upgradeable •  Clean IP •  Long term support for old versions •  Source Code
  42. 42. A subsidiary of Research In Motion Limited 42 QNX Confidential. All content copyright QNX Software Systems. Contact QNX ! Mickey Higginbotham ! M: (408) 592-8456 ! E: mickeyh@qnx.com ! Hasnat Ashiq ! M: (408) 910-4386 ! E: hashiq@qnx.com ! North America ! T : +1-800-676-0566 ! F : +1-613-591-3579 ! International ! T: +1-613-591-0931 ! F: +1-613-591-3579 ! Online ! Info@qnx.com ! www.qnx.com

×