Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Embedded Systems

Is It Real-Time Yet?


Real-Time Backstory

Last month I mentioned how virtualization has simplified data center operations by running multiple OS guests on a single physical CPU. In essence, a small, relatively simple (in OS terms, anyway) chunk of code virtualizes the underlying hardware so that each guest OS thinks it's in control.

This resembles McKenny's nested OS technique, with a real-time OS controlling the hardware normally handled by the nonreal-time OS. While the real-time OS does not completely virtualize the underlying hardware, the general notion dates back to at least the 1970s, so it's fairly well established.

Despite what seems like prior art, Victor Yodaiken was granted patent 5,995,745 in 1997 for "Adding real-time support to general purpose operating systems," which describes how "A general purpose computer operating system is run using a real-time operating system." He used the technique as part of RTLinux and formed FSMLabs to provide a commercial version.

FSMLabs grants a free license to use the patent in GPL projects and for proprietary projects under specific circumstances. Other projects, including those under the LGPL, must negotiate for and pay a licensing fee to use the patented technique or simply buy and use the commercial version of RTLinux from FSMLabs.

One condition for incorporating RTLinux fee-free in commercial projects is that you can't modify it. That means users can't feed changes back to the source, which means updates must come from FSMLabs. Perhaps not unexpectedly, the most recent download file was produced in May 2005.

John Gilmore observed that "The Net interprets censorship as damage and routes around it." It seems Free Software treats patents in a similar manner by programming around them. That's not always possible, but in this case, it seems to be playing out that way.

The RTAI project, which was originally modeled on RTLinux, rewrote much of its code to avoid the '745 patent and released much of that under the GPL, rather than the previous LGPL. The most recent version dates to January 2006, so it's being updated and used by GPL projects, some of which might also meet FSMLab's patent license provisions.

The Adeos project implements an IRQ-passing technique that's supposed to be entirely exempt from the '745 patent's claims, using a "nanokernel" to provide real-time support for OS domains. The acronym stands for "Adaptive Domain Environment for Operating Systems," but given the project's starting date and overall context, it looks like a deliberately misspelled Spanish pun. Its most recent files appeared in May 2006.

The Xenomai project began as a way to ease the transition to Linux from proprietary RTOSes by putting an abstract RTOS-service layer atop the underlying real-time code. It merged with the RTAI project to become RTAI/Fusion, then popped out as Xenomai some years later. The most recent downloads are from May 2006, so it's also progressing nicely.

Because all of those projects rely on a separate lump of code taking charge of the hardware below the Linux kernel, litigation represents the only way to verify that they're not infringing the '745 patent. As nearly as I can tell, FSMLabs has never initiated a suit against anyone, but the mere prospect seems to have encouraged development of kernel patches that cannot possibly be mistaken for separate real-time OS functions.

The Linux kernel's real-time preemption patches appear on a more-or-less weekly basis, closely tracking the current kernel code. While they do not convert the kernel into a hard real-time OS, the result may well be close enough for most projects, with the added advantage of integrating the real-time environment into the mainline code. Basically, if your biz can use Linux, the real-time code tags under the same provisions and without any further legal hocus-pocus.

The usual caveats apply: I'm not a lawyer and I have nothing to do with any of the projects. If you're in the market for a real-time OS, plan on some serious research into the tech, legal, and financial aspects of the deal.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.