FTF videos: QNX and EtherCAT

Okay, here's a test. What, exactly, is an EtherCAT? Is it:

  • A beatnik with his head in the sky?

  • A feline that has inhaled too much anesthetic?

  • An industrial-strength form of Ethernet for real-time and safety-critical systems?

  • While you're pondering the answer, check out these videos recorded at last week's Freescale Technology Forum. Among other things, they show how QNX's adaptive partitioning technology ensures that mission-critical processes always get enough CPU time — even when other parts of the system are doing their best to hog the CPU:


    What do people think of QNX?

    As a PR manager for QNX, I’m naturally interested in what people think of the company and its products. I especially like it when people are honest with me, regardless of whether their feelings are positive or negative. And I like it even better when they offer constructive feedback.

    It reminds of a story I read long ago. I’ve forgotten the details, but an American politician visiting China complimented his hosts on something they had shown him. To which one of the hosts replied, “Don’t tell us how good it is; tell us how we can make it better.” The host didn’t want a pat on the back; he wanted useful input.

    Most days, that’s the kind of feedback I like. But sometimes, it’s just nice to hear someone say how much they appreciate your company’s products and services. Especially on the occasion of your company’s 30th anniversary.

    A few weeks ago, we reached out to customers, partners, and industry colleagues. We asked them to provide their reflections on QNX’s 30 years in business. What we got in return was incredibly supportive and complimentary. Here’s a small sample of what they said:

    “We used QNX technology to build one of the world’s largest financial transaction processing networks in the late 80s and leveraged the QNX Neutrino RTOS to build the world's largest router in the 90s — and worked with QNX again to build the world’s most advanced network security infrastructure product….”
    — Anson Chen, Bada Networks

    “… I would like to thank everyone at QNX for going above and beyond the typical support and your willingness do to whatever it takes to satisfy the customer.”
    — Rajko Bjelica, Chrysler Group LLC

    “Cisco has been working with QNX Software Systems since the late 1990s, and from the beginning we have been impressed by their technical innovation and their dedication to customer service…"
    — Pradeep Kathail, Cisco Systems

    “QNX Software Systems is a transformative technology company… We in the technology industry have been fortunate to be associated with such a combination of technology, skills, people, and leadership…”
    — Skip McGaughey, Open Health Tools.org

    “…While delivering an ongoing stream of technology and services to all major markets, QNX has also provided strategic guidance and thought leadership throughout its history…”
    — Scott J. McCormick, Connected Vehicle Trade Association

    “[QNX’s] early focus on smart, robust, and distributed software has paid off as they’ve become the ‘goto guys’ for embedded systems that can’t fail...”
    — Alec Saunders, Iotum Inc

    For all the responses we received, click here.


    QNX drives home with FTF Best in Show award

    This just in: QNX has won a Freescale Technology Forum (FTF) Best of Show award for the LTE Connected Car, a concept vehicle that showcases how 4G mobile broadband networks will make the automobile a first-class citizen of the cloud.

    The car contains a wealth of QNX technology, including the operating system, touchscreen user interfaces, media players for YouTube and Pandora, navigation system, multimedia playback, handsfree integration, and a virtual mechanic. All components are based on the QNX CAR application platform.

    QNX and Alcatel-Lucent built the car for the ng Connect program.

    UPDATE: Here's a short clip of QNX's Romain Saha riffing on how QNX and its ecosystem partners are helping to make 4G-enabled cars a reality:



    Explaining technical products to non-technical people

    When people ask what your company does, what do you say? If your company makes cars or chairs or smartphones, the answer is relatively easy. But if your company makes realtime operating systems or development tools, the answer is too down in the weeds for most people.

    Explaining a technical product to a non-technical audience is a challenge. To succeed, you have to reach out to people on their level, without being condescending. Most people love a good explanation, but everyone hates being talked down to.

    The secret is to connect your product to the things that people do every day. At QNX, for example, we realized that our technology affects people whether they eat a donut, drive to work, flip a light switch, or upload a video. So that's how we start the conversation.

    Chances are, you used QNX technology today, without knowing it. I find that this is a great opening sentence. I follow it up with some of the examples that QNX recently published in the press release "30 Ways QNX Touches Your Life." For example, QNX touches your life when you:
    • Flip a light switch — QNX technology controls thousands of power-generation systems worldwide, from wind turbines to nuclear stations to hydroelectric plants.

    • Call for help — By leveraging the unmatched reliability of QNX technology, 9-1-1 dispatch systems deliver emergency assistance 24/7, nonstop.

    • Eat a jelly donut — QNX-based food inspection systems detect dangerous contaminants and can even spot items with missing ingredients, such as jelly donuts that have no jelly.

    • Get a caffeine fix — Car navigation systems based on QNX technology not only provide automatic route selection and turn-by-turn directions, but can even track down the nearest coffee shop if you’re thirsting for a latté.

    • Watch an action flick — QNX technology powers motion-control systems that create some of Hollywood’s most spectacular special effects and stunts.
    What about you? Have you had success explaining your technical product to non-technical audiences, be they reporters, analysts, or your great aunt Mildred? If so, what worked? What didn't?


    QNX system runs 15 years nonstop until...

    Let me tell you a story about a QNX-based computer that ran 24 hours a day, 7 days a week, for 15 years. The computer was running just fine until… well, I’ll get to that part in a minute.

    The story begins in the mid 1990s, when a paper manufacturing company installed the computer to monitor pressures, temperatures, and a variety of other parameters at a rate of 5000 times per second. A few years later, the company installed a second QNX computer and configured it as a hot standby for the first. That way, if the first computer ever went down, the second one could immediately take over.

    For more than a decade, this safeguard proved unnecessary. But recently, the second computer reported that it could no longer communicate with its partner. Assuming that a software error had occurred, the company called in an IT consultant to fix the problem.

    Assuming that a software error had occurred,
    the company called in an IT consultant.
    But what they really needed was a detective.

    Just one thing: The consultant couldn’t find the first computer. And that’s because it was no longer there. Evidence suggested that someone had stolen the machine, so the company called in the police to investigate.

    To make a long story short, the police tracked down and returned the stolen computer. Upon booting it, the consultant discovered that thief had tried, unsuccessfully, to install Windows Vista — imagine doing this on a machine that dates back to the early days of the Clinton administration.

    The computer itself still seemed to be in working order. So the consultant cloned the disc from the second (and still-running) QNX computer and re-connected the first computer to the network. The two machines automatically synchronized with each other and have been running ever since.

    Personally, I don’t know what impresses me most: that the OS never crashed in 15 years or that the hardware didn’t wear out. Either way, the story is a testament to embedded design done right.


    On Q gets a face-lift

    The On Q blog has had the same design since 2007, and it's time for a change. The old design was good, but getting long in the tooth. And it was too cramped for the many images and videos I like to include in my posts.

    Recently, Google updated Blogger with fresh templates and a new layout tool. These features were a long time coming, but kudos to Google for doing such a great job. It took me just minutes to choose and customize a clean new design for On Q. Better yet, I can quickly modify the layout to accommodate new types of content.

    Of course, a pretty design doesn't mean a thing without content. To that end, I am continuing to work on new articles, including a story about a QNX-based system that ran 15 years nonstop until... oh hold on, that would give away the ending. Stay tuned: I hope to post the story next week.

    Do you love or hate the new design? Either way, I'd love to hear what you think. And while you're at it, tell me what you think of the articles posted here. Is there anything you would change? Anything you'd like to see more of? I'm interested in all of your comments... especially the constructive ones. :-)


    30 years of QNX: First multicore-ready RTOS

    This story starts in 1997. But to set some context, let's fast-forward to 2010 and look at a snapshot of CPU usage on my quad-core PC:

    When you look at this snapshot, two things stand out. First, it appears that my PC has 8 CPU cores, not 4. That's because each core supports simultaneous multithreading; i.e. it can perform two computing tasks at the same time. As a result, the operating system sees each core as not one, but two, processors.

    Second, each core shows a brief but intense spike in CPU usage. Now, this phenomenon could have two explanations: 1) multiple software applications suddenly required a lot of CPU cycles at almost exactly the same time, or 2) a single application spawned multiple execution threads to split its workload across the various cores.

    In this case, it's door number 2: A multi-threaded image-processing application harnessed the compute power of every core to render an 18-megapixel photo at very high speed — much faster than if the application had used a single core.

    To perform this magic, a computer needs more than a multicore processor. It also needs an OS that supports symmetric multiprocessing, or SMP.

    SMP for embedded systems?
    Rewind to 1997. Back then, SMP was still the domain of operating systems for large servers and other compute-intensive applications. These systems didn't have multicore processors, of course, but did they have multiple discrete processors running on the same board.

    The size, cost, and power consumption of these multi-processor systems put them beyond the reach of most embedded systems, where the prevailing design mantra isn’t “do more with more”, but "do more with less." Thus, the idea of adding SMP to an operating system for embedded systems seemed exotic at best. Yet, that is exactly what QNX did back in 1997.

    It turned out to be a prescient move. First of all, networking equipment companies were starting to realize that SMP could help address several of their computing problems, such as maintaining routing tables that contained hundreds of thousands of entries. As a result, these companies embraced QNX SMP big time in their high-end routers. And, when multicore chips started to become available, these same customers found the migration process very natural — they simply continued to use the same code and the same OS as they had before.

    SMP in a car?
    This early support also allowed QNX SMP to become very mature by the time multicore chips started to move downmarket into cost- and power-sensitive devices. Audi, for example, is using QNX SMP to drive an ARM Cortex-A9 multi-core processor in its next-generation in-car infotainment systems.

    SMP in a car. Who would have thought?

    Blast from the past
    Now here's something that hasn't seen the light of day since the late 1990s: The press release introducing QNX's support for SMP.

    FOR RELEASE JUNE 3, 1997

    QNX Brings Power of SMP to Embedded Telecom Systems

    Telecommunications developers can now combine the raw performance of SMP systems with the hard realtime determinism of the QNX/Neutrino RTOS.

    SUPERCOMM’97 Conference, New Orleans LA, June 3, 1997 - QNX Software Systems (QSSL) demonstrated today that QNX/Neutrino delivers both realtime determinism and a near-linear speedup in processing power with the addition of CPUs on SMP machines. QNX achieves this high performance along with robustness and fine-grained parallelism with their new incredibly small kernel (35K). As a result, QSSL is bringing the power of SMP down to embedded systems.

    “Our SMP version of QNX/Neutrino is ideal for embedded environments where system capacity is stressed,” says Dan Dodge, Vice President of R&D at QNX Software Systems. “Although Neutrino is optimized for deeply embedded systems, it’s also fully scalable. You don’t have to change any application code to transform a single-processor system into a high-end SMP cluster  simply add more processors and restart the system.”

    Scale Beyond a Single SMP Machine, Build Immense Systems
    QNX/Neutrino supports up to 8 CPUs per SMP machine and allows the networking of multiple SMP machines (each with up to 8 CPUs) to create architectures with immense processing power. Using standard, off-the-shelf hardware, designers can link hundreds of machines into a single QNX/Neutrino system!

    QNX/Neutrino’s native message-passing Inter-Process Communication (IPC) seamlessly and transparently turns the network of independent SMP machines into a single, logical kernel.

    Optimized for Very High-End Applications
    Since QNX/Neutrino offers the best possible utilization of available CPU cycles, it’s ideal for very high-end realtime applications such as high-capacity telecom switches, image processing, and aircraft simulators.

    Scale Systems in the Field
    QNX/Neutrino applications can run on uniprocessor systems, multiprocessor systems, and network-connected SMP machines. With this range of flexibility, developers can ship systems with one processor, then expand the system’s processing power as the need arises.

    In both uniprocessor and SMP systems, QNX/Neutrino’s realtime scheduling ensures that the highest priority threads are run on the available CPUs; whenever possible, a thread is dispatched to the CPU it ran on previously to optimize cache performance. Since the SMP version of QNX/Neutrino supports a processor “affinity mask,” designers can further optimize performance by selecting which CPU(s) each thread may run on.

    “We expect to see a variety of applications for our ZT 5520, the market’s first 2-slot CompactPCI SBC with dual Pentium Pro processors,” says Rob Davidson, CompactPCI Product Manager of Ziatech Corporation. “Teamed with the SMP version of QNX/Neutrino, the ZT 5520 provides highly reliable symmetric multiprocessing, yielding the maximum available up-time and the maximum amount of processing for embedded applications.”

    Lean Microkernel Allows Simplified Locks for Faster Performance
    Because traditional monolithic kernels contain the bulk of all operating system services, they require numerous performance-robbing spin-locks in the main code paths to support SMP. In contrast, QNX/Neutrino’s lean microkernel architecture requires few locks, resulting in faster performance.

    Access to data structures shared between threads and processes across CPUs is protected using standard POSIX mutexes, condition variables, and semaphores. Synchronized access to structures shared between threads and interrupt handlers across CPUs is provided through an exclusion lock available to both the thread and the interrupt handler.

    Full Memory Protection
    For very large systems, up to 4G of memory addressing is supported. To match the size and complexity of each target system, QNX/Neutrino offers four levels of memory protection ranging from no protection (for systems without MMU hardware) to full memory protection between programs. With memory protection, embedded PCs can intelligently recover from software failures without a system shutdown and field technicians can perform detailed postmortem diagnostics.



    QNX drives home with Telematics Detroit award(s)

    This just in: The QNX CAR application platform has won a 2010 Telematics Detroit award, in the Telematics Component category.

    In fact, two other QNX-based systems also drove home with top honors. The Audi A8 MMI system with Google Earth won in the Best Embedded Telematics Navigation Product category, and the OnStar system won in the Best use of Telematics Technology in the Public Sector category.

    QNX also clinched a finalist spot in the Industry Newcomer category, for its contributions to the ng Connect LTE Connected Car.

    Winners were announced last night at the Telematics Detroit conference. Finalists and winners were chosen by an independent panel of experts from the automotive, mobile, and web industries.

    For the complete list of finalists, click here; for the complete list of winners, click here.

    Last but not least, here is a video of the QNX CAR platform. For more videos and screen captures, click here.