Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum

Keywords: Match:
Opinion: Kevin Dankwardt on standardization for Embedded Linux
Kevin Dankwardt, President of K Computing (Apr. 17, 2001)

Recently, the Embedded Linux Consortium (ELC) announced their intention to establish a "single unified specification for an embedded Linux platform" to be known as the "ELC Platform Specification".

I was the lone dissenting voice at the ELC meeting at ESC where the board first brought forth the idea of the ELC developing and promoting a standard for embedded Linux. I therefore want to clarify my concerns.

The ELC announcement left many questions. In this document, I attempt to state many of these questions and provide some possible answers. Many of the answers are given as alternatives. I also point out what appear to be inherent contradictions in the announced goals and purposes.

I am submitting these comments in order to help contribute to the successful establishment of a standard, or standards, that will be useful to developers.

I also want to make it clear that I, personally, am in favor of a useful standard.

Here, briefly, is what I understand was announced . . .
  • The specification will "avoid possible fragmentation"
  • The specification "presents the industry with a unifying platform for pervasive computing devices"
  • The "embedded Linux platform would constitute a viable, durable and exceptionally competitive choice for any company considering investment in today's legacy alternatives"
In further statements, Inder Singh stated that the proprietary operating system from his company (LynuxWorks LynxOS) will be compliant.

To ease the reading and writing of these notes I will take the liberty of saying "the standard" instead of "the proposed ideas of a standard."

Here, then, is a quick list of issues . . .

1. What do we mean by "platform?"

From the description one should assume that it means that a vendor can create a source code, and perhaps a binary application, that will run on all conformant systems (hardware permitting).

For this to be possible, it means that all functions and data that are referenced outside of the application must be present, and must be compatible. This also means that references to files and data structures must be available and compatible.

Is this possible by merely defining a kernel API? I think not. We need to ensure that library routines are available as well. Does the directory "/tmp" need to be available? What about the device file "/dev/null"? Can we produce an actually useful standard without including some of these?

2. What do we mean by "Linux?"

Let's keep in mind that the Embedded Linux Consortium is proposing this. The role of the Consortium should be to promote embedded Linux.

To almost everyone, Linux means using the Linux kernel. Perhaps slightly modified. If another OS, such as VxWorks, implements the same API, do we want to certify it as satisfying the "Embedded Linux Standard?"

An embedded Linux standard should require that Linux be used. This may be a little tricky. A thought for discussion is: how about requiring that 95% of the code in the kernel be code from a released version of the Linux kernel?

3. What about other important Linux features?

Should developers be able to depend upon the ability to create kernel loadable modules? What if a developer wants to customize the networking, or provide a new file system type, or a new driver? If the standard says that kernel loadable module support is required, now the kernel internal interface becomes available. What functions and data in the kernel must be available?

Should a developer be able to assume the ext2 filesystem? The ext2 filesystem is not appropriate for some embedded devices.

The Linux kernel software is defined to allow a fair amount of customization. Which features should be required? PCI support? SMP? Low level sound? Which need not be included?

4. What about the other "advantages" of Linux?

Developers choose Linux for a variety of reasons. Included are: source code is available and free; no runtime royalties; it's more robust/reliable; excellent networking support; more drivers and tools available; lots of programmers are familiar with it. (See article on this subject.)

What about this proposed standard ensures that these advantages will survive? Nothing, as far as I can tell. As stated, the ELC proposal will allow closed source alternatives to be certified. An OS with runtime royalties can be certified; an unreliable and unrobust alternative can be certified; an OS with poor networking can be certified; an OS with few drivers and tools can be certified; an OS with a small number of trained programmers can be certified.

5. How does the standard prevent fragmentation?

Fragmentation can occur due to a number of causes, including extra features, fewer features, and changes in semantics of features. The proposed standard will address the issue of leaving out features. It will mandate that a certified OS must include the required set of features.

On the other hand, the proposed idea of a standard does not appear to address the issue of extra features, or changes in the implementation. If a vendor adds a new system call for a new time mechanism, for example, are they thwarting the standardization process? If a vendor changes the implementation of some standard item, is that conformant? Suppose a vendor re-implements scheduling to ensure true priority scheduling, or to provide priority ceilings for mutexes. Does this break the standard? Will the standard define the semantics of all of the functions? Will this definition be rigorous and precise?

Vendors of embedded Linux, as well as developers of embedded Linux devices, frequently make OS changes to better support their hardware or other requirements. This scenario is decidedly different from the environment of closed source, proprietary implementations of Unix that Posix was targeting. Linux is incredibly more amorphous in the embedded space. There are hundreds of versions of Linux for embedded systems. Vendors may have a different version for each major customer. How will the standardization work for these? If vendor X produces ten version of "Purple Cow Linux" for different platforms, and these are all undergoing continual update and development to keep up with the deluge of new software and fixes from the open source community, then how will each be certified as compliant? Do we need some new model of compliance testing?

6. How will this be accomplished in a few months?

It is my understanding that the ELC Board believes this will be relatively easy because we can simply take the Posix API's, add a few Linux deviations, and voilà -- we're done. That approach means ignoring the issues I've raised above.

7. What will be the outcome if we implement this plan?

The ELC Board's idea is that we will have established a standard platform that other developers can develop to. I believe that what is being proposed is not nearly sufficient. In contrast, I believe we will accomplish . . .
  • A useless standard will be produced that does not ensure that developers have a truly useful platform

  • The ELC will have initially appeared to be making a useful effort but will eventually be seen as producing a useless standard, and have undermined embedded Linux

  • Vendors of alternatives will be able to claim "embedded Linux standard" compliance. (For them to provide usefully compliant OS's they will need to provide the things that the standard left off. They will provide these so that they can demonstrate that real applications run on their OS.). These vendors will accomplish a marketing coup in being able to claim that, by using their OS, developers will get all the essential advantages of Linux: "We are a standard compliant OS, we have everything you need". In addition, these vendors will be able to state that their OS provides even more: "Our OS does this and that beyond what Linux can do."
8. Where do we go from here?

First and foremost, I think we must clearly define the objectives. What do we want to accomplish? Do we really want to define a standard "platform"? What does platform mean? What is the definition of "middleware" or "application" that we mean to satisfy?

If we determine that, indeed, the idea of a "platform" is too broad for us to be able to accomplish in the short term due to the perceived requirement to accomplish something quickly, then perhaps we should at least hedge our bets a bit and say that we are defining a "base level platform" or some such thing. Just as Posix has done. By saying that we are now defining a "base level platform" we may be able to serve the two needs of: (1) adhering to the (premature) press release; and (2) actually producing something that, in context, is useful. Continuing to call the standard "a platform" seems to me to be, at the very least, misleading.

Additionally, we need to move quickly on these discussions. We should include people in the process that have done this before. I believe it was Scott McNeil from the Free Standards Group at the ELC meeting that suggested that an important first step would be to make clear the objectives. I think that's a great idea.

We ought to obtain real data, from empirical studies, to determine what parts of the Linux environment are really needed by applications and middleware. Let's do some "straces" and look at source code. How, for example, did LynuxWorks determine what was needed for Quake to run on their proprietary OS?

Perhaps the objectives should include items like . . .
  • The perceived advantages of Linux must be maintained
  • A useful and implementable platform must be defined
  • Middleware and application developers must find the standard to be appropriate and sufficient
  • The standard must be completed by mm-dd-2001
  • The standard must adhere to Posix standards whenever possible
  • The standard must include these (x, y, z, . . .) features of Linux which
    are beyond the Posix standards (these features must then be clearly defined, both syntactically as well as semantically)
You may also be interested in reading this presentation, in which the perceived futility of one of the Posix standards is discussed. It raises many of these same issues.



Author's bio: Kevin Dankwardt is founder and President of K Computing, a Silicon Valley training and consulting firm. He has spent most of the last 9 years designing, developing, and delivering technical training for such subjects as Unix system programming, Linux device drivers, real-time programming, and parallel-programming for various organizations world-wide. He received his Ph.D. in Computer Science, in 1988. He may be contacted at k@kcomputing.com.



Related stories: Talk back! Do you have questions or comments on this article? LinuxDevices.com has created a special ELC Platform Specification discussion forum devoted to this important topic. talkback here


(Click here for further information)


7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.

4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.

Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.

Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.

Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.

Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.

Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.

Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.

Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
GOLD SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)

Check out the latest Linux powered...

mobile phones!

other cool
gadgets



BREAKING NEWS

• Linux-friendly SoCs target low-end multimedia
• CompactFlash as a COTS "standard"
• 65nm ARM9 SoCs target PNDs, smartphones
• Motorola Ming A1600 ships
• N810 gains Android installer
• PC/104-Plus board runs Linux on x86 SoC
• Webinars explore embedded Linux development
• Linux video camera geo-tags, writes to SATA drives
• Garmin Nav devices run Gnome Linux
• Ten LiMo phones this month?
• It's a Yankee Doodle Linux phone
• Wind River to host "Developer Day"
• Dev boards gain Linux support
• 802.11n zooms ahead
• Low-power mini-ITX board runs Linux


Most popular stories -- past 30 days:
• World's cheapest Linux-based laptop?
• Ubuntu ported to a PDA
• 64-way chip gains Linux IDE, dev cards, design wins
• Embedded PowerPC dev kits come with Linux
• Rapid time-to-evaluation -- a key goal for silicon providers
• Embedded Linux is doomed. DOOOMED!
• Rugged PDA available with Linux
• Netflix Player runs Linux
• Miniature Linux PC targets military apps
• $7 SoC runs Linux
• Android Developer Challenge announces first-round winners
• Dual-core ARM SoC clocks to 1.2GHz


Linux-Watch headlines:
• Microsoft tactics push India toward Linux
• Bell, SuperMicro sued over GPL
• "Business intelligence" software goes GPL
• Will Atom bomb?
• LF Summit videos posted
• Linux gains "embedded" maintainers
• Virtualization on tap in SLES and RHEL upgrades
• Linux gets security black eye
• Verizon chooses Linux "platform of choice"
• Hats off to Fedora 9


Also visit our sister site:


Sign up for LinuxDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Linux is a registered trademark of Linus Torvalds. All other marks are the property of their respective owners.