Inder Singh | Embed with Linux
Inder Singh, chairman of LynuxWorks
- By Joab Jackson
- Jul 23, 2007
"The boundary between embedded computing and nonembedded computing is getting fuzzier with all this connectivity." Inder Singh
As the Defense Department increasingly relies on networked, embedded devices, it is finding an unlikely ally in the open-source Linux operating system. Inder Singh, chairman of LynuxWorks, has a bird's-eye view of this trend. LynuxWorks is one of the major vendors of embedded real-time operating systems and has seen increasing interest in its Linux version, BlueCat. Singh was a technical pioneer in networking and embedded computing and networking. No stranger to the tight programming restrictions of embedded computing, he got his start in 1971, building CRT terminals with 200-bit shift register memories. He went on to found networking companies that were later sold to Novell and Cisco Systems. GCN spoke with Singh about the evolving nature of embedded computing and the emergence of Linux in that area.GCN: How would you describe the current state of embedded computing?Singh:
Embedded is everywhere now. It is very hard to design anything now without embedded software, which can take the place of dedicated hardware.
Embedded processors are everywhere now because they are so inexpensive.
The other big trend is that everything is networked now. Embedded computing started out as stand-alone black boxes, and now there is a lot more connectivity. You see a lot more distributed applications, where there are services running on back-end computers and the embedded devices are the front end of those. So the boundary between embedded computing and nonembedded computing is getting fuzzier with all this connectivity.
And that is where Linux gets interesting in this space, because Linux runs on a lot of the very large back-end servers for all these services, and it is also popular in the embedded space. So Linux covers both ends of the spectrum.GCN: Your company started out selling a version of Unix for the embedded market. Why switch to Linux?Singh:
One of the reasons we went to Unix was because it was an open standard, a de facto standard, and there were lots of vendors and third-party software. [At the time,] the embedded market was very fragmented. There were lots of little kernels, and they all were incompatible with each other. Everything was done from scratch.
But the trouble with Unix turned out to be that there were so many different flavors of Unix. Posix was created as an official standard for Unix, and all the different OSes tried to be Posix-compatible. But Posix left enough options that people always bent the rules so there wasn't a common version of Posix that everyone used.
Meanwhile, Linux became very popular in the general market and we saw where that would have great applicability in the embedded area. We were in the unique position of having a product that was very much Unix-like ' LynxOS. So we made our product Linux-compatible rather than just Unix-compatible.GCN: Version 2.6 of the Linux kernel had some improvement for embedded systems, correct?Singh:
The main thing is that it had much better support for response of real-time [systems]. There were significant improvements in the scheduler and other areas that made it more responsive. It also had more support for a wider range of devices and subsystems.GCN: How is a real-time operating system different from a regular one? Singh:
In real-time, the correct functionality of the system depends not just on the output from the software but also the timing. Things have to happen at certain times, otherwise it's not the correct functionality, even if the numbers are right.
Most OSes are designed so the whole kernel is not interruptible, and Unix was designed that way. Basically, if your [program is using] the kernel to write something to an internal data structure, then if your work got interrupted by something else, all your data structures would be corrupted. So OSes are designed not to be pre-empted.
With real-time OSes, you just make it pre-emptable in a few places [in order to ensure applications execute within a particular time frame]. So it is the inverse philosophy. The way we designed our OS, and the way any good hard real-time OS system should be designed, is that you basically [allow the application to make] pre-emptive calls and just protect small regions here and there when you absolutely need to.GCN: What are the differences between all the real-time OSes you offer?Singh:
BlueCat is our embedded Linux. LynxOS is the current version of the original Unix OS, which has evolved a lot over the years. The LynxOS-SE and LynxSecure Separation Kernel are both versions that are going through some Common Criteria certification.
LynxOS-178 is a safety-critical version of LynxOS for the aviation area. Software is used on planes for many different functions, and increasingly for many critical functions like flight control and navigation. If you have a software crash, you can bring the whole plane down. So the Federal Aviation Administration requires certification for aviation software to regulation DO-178B. The DO-178B covers your whole development methodology as well as testing and verification. You have to verify every single line of code and test every branch and all the conditions for each of the branches.GCN: What does 'separation kernel' refer to in your LynxSecure Separation Kernel OS?Singh:
A separation kernel is a layer underneath the OS that creates virtual machinelike partitions that are isolated from one another. There is controlled information flowing between them but that part can be certified to higher levels of security.
Multilevel security, which a lot of military units do, is a particular challenge. You need to keep different things on different networks with different computers with different security levels. And that becomes very difficult on network-centric warfare systems, which are integrated. A separation kernel will allow for much higher levels of security by providing for security outside the operating system.GCN: Where do you see real-time Linux being used in government?Singh:
In those cases where Linux meets the agency's requirements, it is a very popular choice. Many of iRobot's robots deployed by the Defense Department [for dangerous missions such as bomb defusing] are using our BlueCat Linux. A lot of the technology development work being done by the government labs starts out on Linux. It used to be Solaris, but now it's all done on Linux. The government agencies like Linux because using Linux won't get them tied into any one proprietary solution. Plus you could acquire a lot of commercial off-the-shelf software for Linux.
Joab Jackson is the senior technology editor for Government Computer News.