UpFront

diff -u: What's New in Kernel Development

Zack Brown

Issue #165, January 2008

Sega's Dreamcast serial bus provides a proprietary interface for mice, keyboards and other peripherals on that architecture. Adrian McMenamin recently posted a patch supporting that interface, and also added support for the Dreamcast keyboard. Users now can interact with Dreamcast after they have booted Linux on it successfully.

One consistent problem with Linux is an ever-burgeoning growth of compile-time warnings. Many of these don't indicate a serious problem, so developers tend to perform only the fixes that will make their code actually work, leaving any remaining warnings still clinging to the compiler output. Every once in a while, some brave soul goes through the great mass of the kernel source tree, scraping off as many warnings as possible. Satyam Sharma did it this time, spending a weekend slogging through the tree. The result is that now the truly significant warnings will be more visible in the compiler output, and developers will have an easier time debugging their code. Inevitably, warning cruft will build up again, until someone takes another weekend to play kernel dentist and scrape them off once more.

Marc Espie recently voiced the longtime concern among BSD folks that Linux people have been taking unfair advantage of the right to relicense BSD code or to choose only the GPL to cover dual-licensed code. He said this meant people were not “giving back” to the BSD community by making sure the code could not be reused in BSD- or ISC-licensed code. Marc's (and others') argument was that people should be “ethical” about how they utilize the terms of the BSD or ISC license. But, BSD people often tout this very difference between the BSD-type licenses and the GPL as showing that the BSD licenses are “freer”. Saying it's unethical for people to make use of that freedom makes it seem as though the BSD people want to have it both ways. They want the “giving back” features of the GPL, and they want to retain the ability to criticize the GPL as being “less free”. The solution is simple—use a license that does what you want, instead of hoping naively that everyone agrees that what you want is what they should do.

Zhang Rui noticed that some drivers were creating identically named files in a single directory of the /proc filesystem. This was clearly not how things should be, so he posted a patch to return an error message if any driver attempted to create a file that already existed in that tree. But, as it turns out, you can't just do that. As Andrew Morton said, Zhang's change would cause a lot of currently working systems to break suddenly, as drivers would find their previously successful actions no longer to be successful. Oliver Neukum also told Zhang that merely preventing the files from being created—as Zhang's patch did—would simply hide the fact that all these file duplication bugs existed in the driver code. At Andrew's suggestion, therefore, Zhang submitted a new patch to detect the duplication and create a warning message in the system logs. This would make it easier for the driver maintainers to fix the broken code themselves over time.

IDE-CD and IDE-SCSI both have been orphaned. Alan Cox had been maintaining IDE-CD, but he gradually lost interest in that architecture and didn't really have the hardware anymore anyway. He posted a call for someone to step up as maintainer, and when no one did after a week and a half, submitted a patch to mark IDE-CD as orphaned. Bartlomiej Zolnierkiewicz made the same patch for IDE-SCSI. It's possible, as Jens Axboe suggested at one point in the discussion, that these drivers might be folded into the main IDE subsystem code for easier maintenance.

It's often the case, especially for relative newcomers to kernel development, that people try to submit a patch to the mailing list, only to discover that their e-mail client has wrapped lines, converted tabs to spaces or vice versa, or that they've submitted the patch as an attachment instead of inline and so on. Some of these problems can be avoided directly, but problems with the e-mail client can be a surprise to users who think they've been careful and done everything right. Randy Dunlap recently wrote up a document describing how to configure the various e-mail clients for as few unpleasant surprises as possible. Jeff Garzik had asked him to do it. Randy's initial draft contained a fair bit of advice and configuration information and was met with a barrage of additional information from users of various e-mail clients—clearly a welcome document whose time has long since arrived.

Bug Labs Debugs the Hardware Business

Doc Searls

Issue #165, January 2008

Bug Labs is a startup with the laudable (and long overdue) ambition of making hardware building “just as easy as writing software or Web applications”. That's from the index page. Dig down and find that “Bug Labs envisions a future where CE stands for Community Electronics, the term 'mashups' applies equally to hardware as it does to Web services, and entrepreneurs can appeal to numerous markets by inventing 'The Long Tail' of devices.” In an early blog entry, Bug Labs CEO Peter Semmelhack added, “It's Legos meets Web services and APIs. Imagine being able to build any gadget you wanted by simply connecting simple, functional components together. Now imagine being able to easily program, share and connect these gadgets in interesting ways...”

At the heart of the system is the BUGbase, described as “a fully programmable and 'hackable' Linux computer, equipped with a fast CPU, 128MB RAM, built-in Wi-Fi, rechargeable battery, USB, Ethernet and small LCD with button controls. It also has a tripod mount because, well, why not?”

What matters most here, second only to Bug Labs' ambitions, is its beliefs and practices around Linux and open source. Adds cofounder Peter Semmelhack, “In essence, we're building an open-source-based platform for programmers to build not only the applications they want but the hardware to run it on.”

I asked Peter to provide some technical background that would interest Linux Journal readers. Here's his response:

Every piece of code on the BUG is GPL or GPL-compatible. The pieces from the OSS world that we've leveraged (or are leveraging) are on our Web site here: www.buglabs.net/oss_list. We are using Linux 2.6.19. In addition, the hardware schematics, BOMs and so forth will be made freely available to encourage users to hack, extend and enhance it.

For our interface between the hardware and software worlds, we chose to use RESTful Web services. This way, it's easy to mash up the data coming from the modules with any other Web service. Think of all the cool things you could do if you could mash up the camera on your cell phone, the lat/lon from your car's GPS and Flickr, and so on. Right now, that's impossible, but with our architecture, it's pretty straightforward. It's like any other software mashup. Our SDK/IDE essentially is an Eclipse plugin and offers an integrated, visual way to configure and program your BUG. It also provides a window into BUGnet—our community site—where you can copy applications to/from, rate existing apps, participate in forums and so on.

There are three pieces to the BUG “experience”: the BUG hardware, the Eclipse SDK/IDE and BUGnet. They all work seamlessly together as a whole product out of the box. Lastly, I want to mention that while we chose Java as the language to launch with, there is nothing stopping engineers from using whatever other language they're comfortable with: C, C++ and so forth. We intend to have explicit support for those in the SDK/IDE shortly.

The Bug Labs site and blog are also full of references to free software and open source (they're especially fond of Ubuntu) and invitations to participate in both the FOSS value system and Bug Labs' development community. Check it out at buglabs.net.

Linux Planned for a Majority of New Embedded Projects

Doc Searls

Issue #165, January 2008

“Linux in the Embedded Systems Market” is the latest report from VDC on developments in the embedded systems market, and it shows huge future advances for Linux in a category it already leads. Figures 1 and 2 (from VDC, vdc-corp.com) are two pie charts that tell an interesting story.

Figure 1. Operating System Used on the Previous Project

Figure 2. Operating System Planned for the Next Project

The report lists a number of reasons engineers increasingly favor Linux. These include, “royalty-free run-time costs, advanced networking capabilities and technical features, the large base of engineers familiar with the Linux operating system, as well as many other factors”.

But the reasons hardly matter. These results are not only about share of market, or even share of mind. They're also about minds that are already made up. For embedded development purposes, Linux is the practical choice. End of story. The next question is “How much more great embedded work will get done because the standard is now clear?”

LJ Index, January 2008

1. Novell's Linux revenue in millions of dollars over the last reported nine months: 100

2. Percentage increase of the above over the prior fiscal year: 243

3. Number of square feet in the Microsoft-Novell joint development lab: 2,500

4. Red Hat revenue in millions of dollars over the last reported quarter: 127.3

5. Percentage growth rate represented by the above: 28

6. Percentage of Russian school computers onto which Linux will be installed by 2009: 100

7. Number of Linux computers at the Takoma Park, Maryland, public library: 28

8. Thousands of times the above computers were logged in to over the last year: 40

9. Linux's market percentage share of Internet-connected PCs in January 2006: .29

10. Linux's market percentage share of Internet-connected PCs in December 2006: .37

11. Linux's market percentage share of Internet-connected PCs in September 2007: .81

12. Percentage rate of growth for Linux's share of Internet-connected PCs in 2007, so far: 219

13. Millions of dollars invested in Linux and open-source companies by venture capital firms in Q3 2007: 77.8

14. Millions of dollars invested in Linux and open-source companies by venture capital firms in Q1 through Q3 of 2007: 226.7

15. Millions of dollars paid for XenSource (open-source virtualization) by Citrix in August 2007: 500

16. Millions of dollars paid for Zimbra (open-source e-mail collaboration) by Yahoo in September 2007: 350

17. Position of “Make Ubuntu laptops cheaper than Windows laptops (in all countries)” among the most popular ideas at Dell IdeaStorm: 1

18. Position of “Make Linux and no operating system standard options on all future products” among the most popular ideas at Dell IdeaStorm: 2

19. Position of “Put Ubuntu on the list of operating systems when building a PC!” among the most popular ideas at Dell IdeaStorm: 3

20. Number of results of a search on dell.com for “linux”: 648

1–5: CNET.com

6: CNews Russian IT Review

7, 8: Phil Shapiro in PCWorld.com

9–12: NetApplications.com, via Datamation

13, 14: The 451 Group, via InternetNews.com

15, 16: InternetNews.com

17–19: DellIdeaStorm.com on October 11, 2007

20: Dell.com on October 11, 2007

More from Less

Doc Searls

Issue #165, January 2008

We've come a long way since March 2003. That was when Paul Otellini of Intel (then COO, now CEO) was on stage at PC Forum, promoting the chip giant's new Centrino brand. I was the first questioner, and I pressed him to stop dragging the company's feet on Linux issues, especially device drivers (see www.linuxjournal.com/article/6794). His response was not encouraging.

Now, almost five years later, a Google search for Linux Intel device drivers brings up more than six million results. Today, Intel pushes Linux as much as Linux pushes Intel. A good example of the former is LessWatts.org, a new community launched by Intel to improve power management on Linux.

Says the index page, “LessWatts.org is not about marketing, trying to sell you something or comparing one vendor to another. LessWatts.org is about how you can save real watts, however you use Linux on your computer or computers.”

Among the projects featured are the PowerTOP toolkit, “tickless idle”, Power Policy Manager, Linux BLTK (Battery Life Toolkit), display and graphics power saving, device and bus power management and so on. It's also part of Intel's Climate Savers initiative (at climatesaverscomputing.org).

Involvement is invited. Visit lesswats.org to find out more.

They Said It

What's most fascinating to me is that members of the public have no clue that they're not using Windows. They're able to load up their Microsoft Word files using OpenOffice.org, and save them back to disk automatically in MS Word format. They surf the Web, check e-mail, do instant messaging, view YouTube videos, visit their Facebook pages, learn touch-typing skills and lots more. Our public library has been offering these Linux public stations for the past three years. People come up to me and ask, “What does Linux look like?” and I answer them with a straight face, “The computer you've been using for the past two hours is Linux.”

Google is hot right now. Microsoft circa 1992 hot....So what's the secret? I think it's open-source management.

Google empowers its people to try things out, to put them “in beta”. And it leaves them there even when they're not pulling their financial weight, because someone else may come along with a Clue, and the cost of leaving a server running is a rounding error. By letting people pound on its ideas in public, in other words, Google saved a ton of money...

Regardless of its modest market share in absolute terms, the fact that Linux more than doubled suggests it is growing at a collision course with the other OSes. If it were to maintain its current growth rate, it would be the dominant OS by the year 2014.

...trying Linux—especially if you boot it from a CD—is a great way to find out what a lot of open-source adherents are so excited about.

And with prices starting as low as free, you certainly cannot complain about the price.

—Larry Magid in the New York Times, www.nytimes.com/2007/10/04/technology/circuits/04basics.html