LWN.net Weekly Edition for June 29, 2006
The birth of the open source enterprise stack
For the first ten years of its life, free software was largely a hacker's tool. All the early programs Emacs, GCC, Perl, Linux were written by coders for coders (usually themselves). It was the rapid uptake of the Internet by business in the mid-1990s that led to free software being used by companies, not just their employees.
The unplanned nature of this move online meant that computer departments were often asked to create a Web presence without being allocated extra funds. Free software was the obvious solution. The ready availability of GNU/Linux and Apache, whose first official release had appeared in December 1995, meant both were soon found in many companies, but generally unofficially. Software engineers knew it was easier simply to install the code than to go through formal approval processes that were bound to be skeptical of this new kind of software. The same was true for Samba, which allowed IT departments to add low-cost file and print servers to Windows networks.
At this stage, then, free software was on the periphery of companies, providing non-critical functions, and often invisibly as far as management was concerned. Gradually, though, word got out about the reliability and attractive price-performance characteristics of free software in general, and GNU/Linux in particular.
Similarly, software suppliers were discovering that their engineers were not only using free software but sometimes had even ported major proprietary software packages to GNU/Linux on their own initiative as happened with Software AG's Adabas D database, which shipped in 1996 as part of the Caldera Solutions CD. This fact, together with the growing use of GNU/Linux within companies, prompted the release in 1998 of official ports of the main enterprise-level databases: those from Oracle and Informix in July, and IBM's in December. It was a significant moment in the rise of open source in companies: free software was now countenanced officially, and started to play a mission-critical role.
At the same time, free software began to provide more complex business solutions through the deployment of what came to be termed the LAMP stack: GNU/Linux, Apache, MySQL and Perl/PHP/Python - the term LAMP was coined in 1998 by Michael Kunze in the German c't magazine. The stack represented a more sophisticated version of the approach based around the earlier Common Gateway Interface, which was used to interface Web servers with external applications like databases.
MySQL had first appeared in 1995. As well as representing an important breakthrough for open source application software in the enterprise, it also brought with it a new business model. In the beginning, the copyright for open source code had either been assigned to the Free Software Foundation to allow more effective enforcement of the GNU GPL, or remained with the various individual coders who had contributed. In the case of the MySQL code, though, it is the software house MySQL AB, which was created around the software, that owns all the copyrights.
Because of this, MySQL AB is able to employ a dual-licensing policy, offering its database under the GNU GPL or a commercial license. Some have seen this development as a threat to the core ethos of the open source world, because it raises the specter of a new, more subtle kind of vendor lock-in. Although the most popular, MySQL is by no means the only free database program: others include Firebird, Ingres and PostgreSQL.
The early years of the 21st century were ones of steady gains for free software within the enterprise. In the wake of the dotcom crash, which saw first-generation open source companies like Linuxcare, TurboLinux and VA Linux scaling back their operations dramatically, there were relatively few venture capitalists or IT start-ups that were willing to take a chance on new areas of free software. But corporate use of GNU/Linux in particular flourished, as the free operating system was increasingly used to save money by allowing companies to move from expensive proprietary hardware running Unix to commodity systems based on Intel processors.
One open source company that did appear during this time was Gluecode. It offered a commercial version of Apache Geronimo, the J2EE server project of the Apache Foundation. This was an important development, because it moved open source closer to the heart of the enterprise. Gluecode received a validation of sorts in 2005, when IBM bought the company, and added the open source product to its WebSphere Application Server line as a Community Edition.
IBM presumably preferred to cannibalize its own sales rather than see another increasingly-popular open source middleware company, JBoss, do the same. The JBoss project began in 1999, and, like MySQL, introduced a novel business approach to working with open source. It effectively commissions code for free software projects by hiring their top coders, thereby adding an element of commercial direction to the open source development process that was hitherto lacking. Also like MySQL, JBoss the company generally retains the copyright in the JBoss code. The JBoss way received its own vote of confidence when the company was acquired in April 2006 for $350 million by Red Hat, after being courted by Oracle, which has been on something of an open source spending spree.
The acquisition of Gluecode and JBoss, and Oracle's interest in the latter, firmly establishes middleware as the new hotspot for enterprise open source. Alongside IBM's WebSphere Application Server Community Edition and JBoss, there are several other free programs, including Enhydra, JOnAS and WSO2 Tungsten. Together, they represent a key piece in the creation of an open source enterprise stack, with GNU/Linux as the foundation.
It is here, rather than on the desktop, that free software's next big gains are likely to take place, and a subsequent feature will explore the surprising richness of the upper layers of the emerging open source enterprise stack, in areas such as systems management, customer relationship management, business intelligence, enterprise content management, enterprise resource planning and communications.
Glyn Moody writes about open source at opendotdotdot.
Interview: Jim Gettys (Part I)
Jim Gettys has a long history at the interesting edge of computing development; his past projects include MIT's Project Athena and the X Window System. Currently, Jim is working on the One Laptop Per Child project, which seeks to distribute low-cost, Linux-based systems by the millions to children in the developing world.Jim was kind enough to take what must have been a considerable amount of time to answer our questions on this project. What follows is the first part of the interview.
LWN: Could you briefly describe your role with the OLPC project?
The educational software and content are the province of others: Nicholas Negroponte (the OLPC chairman), Walter Bender, Seymour Papert, Alan Kay, and others, who have decades of experience in education of children with computers, often in the developing world.
I also don't worry about how the bits get from machine to machine: Michail Bletsas is our Chief Connectivity Officer. Mary Lou Jepsen is our CTO, and responsible for our novel display technology, and Mark Foster is V.P. of Engineering and chief hardware architect. Quanta Computers, founded by Barry Lam, who make almost 1/3 of the laptops of the world, are building the OLPC machine.
It appears that few people appreciate the extent to which this project is pushing the leading edge of free software development.
What are the features one would want for school-aged children, grades K-12? A large fraction of such children are in parts of the developing world where electricity is not available at home, or often even at school, so for many children, a computer with low power consumption, potentially human-powered, is a necessity, not a convenience.
Teaching may not even be inside, and certainly when children are at home, they often will not be inside where conventional LCD screens are usable. Children usually walk to and from school every day; weather is unpredictable, rain, dirt and dust are commonplace. And cost is a major consideration, if we are to bring computers and their great power to help children learn, to children everywhere.
Much more about the hardware can be found in our wiki.
Consider the power management issues, application slimming, system (non-)management improvements, mesh networking, application checkpointing, pervasive IPv6, localization problems, etc. Every one of these goals should benefit users who will never see an OLPC system. How many of these goals do you think you will be able to achieve by launch time?
Power management: We are doing at least two, if not three, true innovations in this area:
- The Marvell wireless chip, which has an ARM 9 and 92K of RAM, can
forward packets in the mesh network while the processor is suspended to
RAM. This capability has been demonstrated in the lab, and Michail
Bletsas is confident of the outcome; in fact, it was an actual
demonstration that convinced us to use Marvell. Other wireless vendors
lack this capability. Our current estimate is that in this mode, the
wireless chip can be forwarding packets and the system consuming less
than a half a watt. We want there to be as little incentive to defeat
wireless as possible, so this is a key innovation: if children aren't
confident there will be power when they need it, they might work to
defeat the mesh.
- The display can be on while the processor is suspended, saving
power. In some modes, we expect to be suspending the CPU whenever it is
idle, even for times as low as a second or two. Since our display is
also novel and consumes much less power than conventional LCD's, even
the Geode's low power consumption would have otherwise dominated total
energy use.
- Look around you the next time you sit in a conference room. How many of you are actively using your machine at any given instant? How much of the time are you just reading the screen? In many modes of use, once the screen power consumption has been solved (as it is in our display), the remaining major power consumption is the processor, power supply and motherboard components. By making suspend/resume unnoticeable, we can save most of the remaining power used in the system.
Mark Foster described his novel extremely fast suspend/resume software technique at the Linux Power Management Summit this spring. Whether we will need to implement it on our hardware to reach our goals of < 200ms suspend/resume cycles awaits some laboratory tests (an iPAQ can already suspend and resume in a subsecond period), but I expect we may need to implement this technique. Any performance work *must* be preceded by measurement to be useful: spending time optimizing the wrong code is a waste. Of course, the faster suspend/resume can be made to work, the more aggressive we can about suspending and saving power. This is an example of an area where incremental improvement (once basic capabilities) is possible.
We are also planning to dynamically change the refresh rate of the screen depending on screen activity; as I've seen this capability in graphics chips for cell phones, I won't claim this as full innovative, though it will be new for the X Window System or window systems on laptops.
It is hard to predict how long similar hardware capabilities will take to reach conventional hardware; but by showing it is possible, we know it will happen and the software support required be useful to everyone.
There are also a number of places where changes in Linux and the desktop environment can help. For example, the tickless patches currently being worked on obviate the need for the CPU to wake up 100 times a second; the more of the time a processor is fully idle, the more power saved. Another example are places where the desktop environments are polling periodically to find out changes in the system: notification systems are much more efficient, and allow the system to be idle more of the time.
Out of memory behavior needs serious work: the current OOM killer's policies are by current necessity very poor. Nokia has been experimenting with more useful policies, exploiting information at the user environment level, that can improve this behavior by informing the kernel which processes are the most vital and which can be shot.
Application slimming: There seems to be a common fallacy among programmers that using memory is good: on current hardware it is often much faster to recompute values than to have to reference memory to get a precomputed value. A full cache miss can be hundreds of cycles, and hundreds of times the power consumption of an instruction that hits in the first level cache. Making things smaller almost always makes them faster (and lower power). Similarly, it can be much faster to redraw an area of the screen than to copy a saved image from RAM to a screen buffer. Many programmer's presumptions are now completely incorrect and we need to reeducate ourselves.
Sometimes we may just choose alternative applications. Of course, this may not be what some application writers would like, and the solution they can take is obvious. We have a large set of software to choose from: this is one of open source's great strengths.
Federico Mena-Quintera and others have been doing some very nice work identifying and fixing some of the gratuitous memory usage.
A large part of this task is raising people's consciousness that we've become very sloppy on memory usage, and often there is low hanging fruit making things use less memory (and execute faster and use less power as a result). Sometimes it is poor design of memory usage, and sometimes it is out and out bugs leaking memory. On our class of a system, leaks are of really serious concern: we don't want to be paging to our limited size flash.
In fact, much of the performance unpredictability of today's free desktop can be attributed to the fact that several of our major applications are wasting/leaking memory and driving even systems with half a gigabyte of memory or more to paging quite quickly. Some of these applications we care about, and some we don't: OpenOffice is just not the right tool for someone learning to read and write, and we'll be perfectly happy to use other tools. Some other major offenders need fixing (and work has started): e.g. Firefox (Gecko), which, when using tabs, has been hemorrhaging memory, which can force you to paging quite quickly. Between evolution-data-server and Firefox alone, many people's desktops exhibit unpredictable performance soon after boot due to paging; fixing these problems will benefit all.
Tools: The memory usage display tools we have today are very misleading to naive (and even journeyman) programmers, often leading them to massively wrong conclusions.
My biggest personal frustration (given my history with X) are people saying: "X is bloated". The reality is: a) X maps all the frame buffer and/or register space into its address space, so measurement of virtual address spaced used is completely misleading: X may be actually consuming only a very small amount of your DRAM, despite a virtual size of a hundred megabytes, and b) X does what its told: many applications seem to think that storing pixmaps in the X server (and often forgetting about them entirely) is a good strategy, whereas retransmitting or repainting the pixmap may be both faster and use less memory. Once in a while there is a memory leak in X (generally in the graphics drivers): but almost always the problem are leaks in applications, which often forget the pixmaps they were using.
RAM in the X server is just as much RAM of your program, though it is in a different address space. People forget that the X Window System was developed on systems with 2 meg of RAM, and works today on 16 megabyte iPAQ handhelds.
We need better tools; some are beginning to appear. OLPC is sponsoring a Google Summer of Code student, Eduardo Silva, from Chile, who is working on a new tool called Memphis to help with this problem.
Work done on memory consumption will benefit everyone: not everyone in the world has a 2ghz laptop with a gig or two of RAM...
System (non-)management improvements: I think there are two, mostly separable areas here: 1) the kid's laptop, on which we want to focus primarily on making "easy to fix", rather than "hard to break", so interested children can learn computing. And by working hard to automate backup, we'd like the restore of a laptop to be dead simple if there is some problem. By using LinuxBIOS, we expect to be able to boot and reinstall via the network easily. Requiring cables and/or USB keys for restore are costly and complicate logistics greatly.
2) the school servers need to be "hard to break" as well as "easy to fix", and remotely manageable, as finding expertise a remote school of 10 children and one teacher is very unlikely. This is one of the factors driving us to IPv6 (much more below), since NATed IPv4 islands cannot be easily remotely diagnosed or updated automatically without expertise on the ground, which will often be rare in our deployment areas.
I've recently become impressed by technology developed for and by PlanetLab that Dave Reed brought to my attention. It is worth everyone's careful look. See (www.planet-lab.org).
Mesh networking: Pulling wires and having access points are very expensive and requires expertise, neither of which may be available; and we want kids to be able to work together anytime they meet up, even under a tree 3 kilometers from nowhere.
MIT Roofnet and other projects have shown the feasibility of mesh networking, where one machine forwards packets on behalf of others. Michail Bletsas is OLPC's expert in this area, and has a lot of first hand experience. In radio quiet areas, quite long links become feasible; in urban areas much shorter links are only feasible, but the density of machines is likely much higher.
Our system is interesting in a number of ways beyond mesh software:
- it has antennae that can be rotated up above the top of the machine
and are more efficient than what you find in a conventional laptop; this
should roughly increase the footprint of each machine by a factor of
four (in area).
- the Marvell wireless chip we are using can operate autonomously. So it can forward packets in the mesh even if the processor is suspended to RAM! This should cut power consumption for an unused laptop to well under one watt (current estimate is about .5 watts), while still providing support to other machines in the mesh.
One of the challenges that the community can help later this year is to help learn which techniques work best when the nodes of the mesh are mobile machines. There are a number of routing protocols possible (some of which should become power aware; not all machines may need to bother to forward packets all the time), and which will work best in what circumstances should be fun to learn.
Application checkpointing: 128 megabytes of memory is enough to run (almost) any open source application; there are a few exceptions, but few that are of educational interest for young children. It isn't enough, on a system where paging needs to be avoided, to run arbitrary numbers of the larger applications at the same time.
In addition to the community working on dieting our environment (and making it run faster as a result), application check-pointing could help the user's experience greatly. When memory runs low, idle applications not currently in use could save their state and be restarted later at the same point. We see some of this being done in Maemo on the Nokia 770; the conventions for this need freedesktop codification and implementation in applications.
Pervasive IPv6: In the developed world, we do not have a shortage of IPv4 addresses at this time. We got to the Internet first, and grabbed enough "land" that we don't yet feel the pain felt in other parts of the world.
We see differently from where we sit. IPv6 to us is clearly essential on a number of grounds:
- address space, and not wanting a flag day conversion that would be
very difficult. There are good
arguments that we have effectively exhausted the IPv4 address space, and that even
conservation measures cannot change the situation by more than a year or
two. In the developing world the situation is already dire. In some
places, entire universities are hidden behind a single routable IPv4
address, and in others, NAT's are as much as 5 levels deep.
Vint Cerf told us that part of this problem is artificial: some cultures are so worried about losing face if they were turned down that they have not been asking for addresses, even though they would have been granted. And part of it is very real indeed: Brazil is planning a deployment of 100,000,000 IP TV sets, for example; this cannot be done using IPv4. And we hope to be deploying at such scale within a few years as well. Since the cliff is already visible and we'd just as soon not fall off it; it hurts so bad when you hit the bottom.
- it is impossible to diagnose problems if you can't observe them.
Initially, in many parts of the world, we have to presume limited
expertise is available on the ground, so local diagnosis could easily
become the limiting factor for deployment. If the school networks are
fragmented by NAT's, remote diagnosis becomes much more complicated.
- Building collaborative applications (or almost any new network application) has become extremely difficult due to the extensive deployment of NATs in the Internet: Skype is one of the few applications, that by standing on its head in many ways, has succeeded in (usually) working despite this disaster. Building such applications becomes radically easier if we go back to the end to end principles of the Internet. NAT has made it very difficult to deploy new applications.
Given tunneling technology (and 6to4, when routable addresses are available), in concert with the IPv6 deployment that has begun in many parts of the world, we can again have a clean end-to-end network, in which kids anywhere can share with their peers all over the world.
So our judgment is that he time has really come, and (almost) all applications are finally ready.
Localization problems: According to the Ethnologue web site, there are 347 languages with more than one million speakers in the world, that covers 94% of the world's population. We already see localization in open source systems for languages with fewer speakers - one million speakers. If we continue along the current path of localization, we're going to find ourselves with a real problem within several years.
While I expect the current mechanisms and processes might get us through the first round of deployments, the year after, this problem will become more acute. As a community, we need to recognize this approaching problem and rise to the challenge. I wrote in more detail in my blog.
Are you getting the needed level of assistance from the community in reaching these goals?
We are distributing almost 500 bare mother boards to enable people to help on drivers, power management, code optimization (which not only makes things faster, but reduces power consumption), mesh network experimentation, etc. And there will be further opportunities later in the program during beta test later this year.
What do you most urgently need help with at this time?
The memory consumption problems, and how to manage low memory situations is also key. It would help greatly if applications would bother to be able to checkpoint their state and restart exactly where they left off.
Let's take one of those goals: paring down applications so that they fit into the OLPC's memory. This is clearly an activity which benefits everybody - bloated applications are slow applications. Are you making progress in putting the needed tools on a diet?
We have a simple principle everyone should be aware of: if your application is bloated, it's much less likely people will be able to use it on the machine. There are usually alternatives for any particular piece of software. Given the healthy competition in free software, there is only a much smaller subset of software that we care about to the point of fixing it ourselves. If you want your software to be usable, please make it so: and everyone will benefit with leaner, faster applications, not only OLPC.
How are the upstream communities responding to debloating patches?
Often, rather than patches, it is helping people understand there are problems that need to be fixed. Chris Blizzard, who is on the board of the Mozilla corporation, now works on OLPC (he's in charge of the Red Hat team), and the Firefox team are finally aware they have a serious problem and test cases are being generated. Chris says some progress has already been made. Much more is needed, and there are viable alternatives we could use if Firefox does not come through. But we think they probably will by the time we will ship in volume.
Many thanks to Jim Gettys for taking the time to answer these questions. The second part of the interview will appear next week.
LWN schedule for next week
The LWN staff has decided to take some time off for the U.S. Independence Day holiday on July 4. As a result in the weekly edition will be published late on July 6. We apologize for any inconvenience.
Security
Brief items
A roundup of other email proposals
Over the past two weeks, this page has looked at two of the more widely known proposals for improving the email infrastructure: Sender Policy Framework (SPF) and Domain Keys (DK). This week will conclude the series by looking at a few lesser known proposals and describe the kinds of problems they are meant to solve.Due to joe jobs and other spammer tricks, sites can sometimes be overwhelmed with bounce messages from emails that they did not send. Two proposals provide ways for the receivers of bounce messages (i.e. the domain that purportedly sent the original message) to recognize invalid bounces before accepting the email. Both Signed Envelope Sender (SES) and Bounce Address Tag Validation (BATV) are focused on eliminating invalid bounce messages.
Both techniques rely on using a uniquely generated envelope sender for each outgoing mail, typically with a one-way hash or cryptographic mechanism that can be verified by the sending Mail Transfer Agent (MTA). When a bounce message arrives, it will have a null envelope sender (to prevent loops) and an envelope recipient. If the MTA cannot verify the envelope recipient as one of the uniquely generated addresses, it can reject the email before receiving the DATA portion. This protection against invalid bounce messages is one that can be unilaterally implemented by a sending domain and will benefit that domain without requiring any cooperation from other MTAs.
Both SES and BATV have ways to generate envelope sender addresses that allow intermediary MTAs to verify the sender and determine if the email was truly sent by the domain that purports to have sent it. In addition, any hosts that use SMTP sender address verification will be able to reject forged email envelope sender addresses in domains that use SES/BATV because the verification will fail for addresses that are not correctly generated.
Certified Server Validation (CSV) is a technique that can arguably replace all of the trust evaluation that SPF provides, but can do it in a more straightforward manner. By using the hostname given in the SMTP HELO/EHLO command and a SRV record that has been queried from the DNS, a receiving MTA can determine if the sending host has correctly identified itself. In addition, the DNS record will indicate whether the host is authorized to transfer mail for the domain.
All of the proposals and techniques that have been described in these three articles are incremental changes to thwart one or more deficiencies in the original design of SMTP. Because it was designed at a time when there were few, if any, malicious users of the internet, security and authentication were not major considerations.
More radical, non-incremental, changes to how email is handled, such as Daniel J. Bernstein's Internet Mail 2000 (IM2000) have been proposed, but would require a wholesale shift in MTA and Mail User Agent (MUA) software to implement them. Instead of email receivers storing messages, IM2000 requires senders to store the messages and, at least partially, attempts to burden the sender with the costs of the email, rather than today's system which really only burdens the recipient. A descendant of IM2000 called Differentiated Mail Transfer Protocol (DMTP) is currently being worked on as a potential internet standard.
Even if some SMTP alternative were to become an internet standard, it remains to be seen how many users and mail servers would make the switch. SMTP has a huge amount of inertia behind it and any replacement is likely to be a long time in coming and have an adoption rate reminiscent of IPv6.
New vulnerabilities
EnergyMech: denial of service
Package(s): | emech | CVE #(s): | |||||
Created: | June 27, 2006 | Updated: | June 28, 2006 | ||||
Description: | A bug in EnergyMech fails to handle empty CTCP NOTICEs correctly, and will cause a crash from a segmentation fault. By sending an empty CTCP NOTICE, a remote attacker could exploit this vulnerability to cause a denial of service. | ||||||
Alerts: |
|
Hashcash: possible heap overflow
Package(s): | hashcash | CVE #(s): | CVE-2006-3251 | ||||||||
Created: | June 27, 2006 | Updated: | July 21, 2006 | ||||||||
Description: | Andreas Seltenreich has reported a possible heap overflow in the array_push() function in hashcash.c, as a result of an incorrect amount of allocated memory for the "ARRAY" structure. | ||||||||||
Alerts: |
|
kernel: multiple vulnerabilities
Package(s): | kernel | CVE #(s): | CVE-2006-2445 CVE-2006-2448 CVE-2006-3085 | ||||||||||||||||||||
Created: | June 23, 2006 | Updated: | August 11, 2006 | ||||||||||||||||||||
Description: | There is a race condition error in the "posix-cpu-timers.c" script that
does not prevent another CPU from attaching the timer to an exiting
process. This could be exploited by attackers to cause a denial of
service.
A flaw due to errors in "powerpc/kernel/signal_32.c" and "powerpc/kernel/signal_32.c" could allow userspace to provoke a machine check on 32-bit kernels. An infinite loop in "netfilter/xt_sctp.c" could be exploited by attackers to exhaust all available memory resources, creating a denial of service condition. | ||||||||||||||||||||||
Alerts: |
|
mutt: IMAP namespace buffer overflow
Package(s): | mutt | CVE #(s): | CVE-2006-3242 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Created: | June 28, 2006 | Updated: | October 24, 2006 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | TAKAHASHI Tamotsu discovered that mutt's IMAP backend did not sufficiently check the validity of namespace strings. If an user connects to a malicious IMAP server, that server could exploit this to crash mutt or even execute arbitrary code with the privileges of the mutt user. See this Secunia advisory for more information. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alerts: |
|
mysql: denial of service
Package(s): | mysql | CVE #(s): | CVE-2006-3081 | ||||||||||||
Created: | June 23, 2006 | Updated: | July 18, 2006 | ||||||||||||
Description: | Mysqld in MySQL 4.1.x before 4.1.18, 5.0.x before 5.0.19, and 5.1.x before 5.1.6 allows remote authorized users to cause a denial of service (crash) via a NULL second argument to the str_to_date function. | ||||||||||||||
Alerts: |
|
pinball: privilege escalation
Package(s): | pinball | CVE #(s): | CVE-2006-2196 | ||||
Created: | June 26, 2006 | Updated: | June 28, 2006 | ||||
Description: | Pinball, a pinball game simulator, has a privilege escalation vulnerability in which the application can be tricked into loading level plugins from user-controlled directories without dropping its privileges. | ||||||
Alerts: |
|
png: buffer overflow
Package(s): | png | CVE #(s): | |||||
Created: | June 28, 2006 | Updated: | June 28, 2006 | ||||
Description: | The Portable Network Graphics (PNG) library contains a vulnerability caused by a potential sprintf(3) related buffer overflow. | ||||||
Alerts: |
|
Page editor: Rebecca Sobol
Kernel development
Brief items
Kernel release status
Many more changes have been merged into Linus's kernel tree since last week, about 2800 changes to be exact. There has been merges with ALSA, i2c, hwmon, PCI, USB, XFS, Driver core, Power PC architecture, ARM architecture, SPARC 64 architecture, m68k architecture, x86-64 architecture, network drivers, SATA, ACPI, networking core, V4L core and drivers, NFS, Infiniband, DM, MD, the build system, OCFS2, XFS, CIFS, JFFS2, and just about every other part of the kernel has been updated. In short, a huge merge of bugfixes and updates, showing there is nothing slowing down the pace of kernel development.(Thanks to Greg Kroah-Hartman for this update.)
Kernel development news
Quote of the week
Yes, there's a learning curve. There is always a learning curve. Never expect there not to be a learning curve.
-- Matthew Frost <artusemrys -at- sbcglobal.net>
Trees II: red-black trees
This article is the somewhat delayed followup to Trees I, which looked at the radix tree interface. Along with radix trees, the kernel contains an implementation of a data structure known as a "red-black tree." These trees (known as "rbtrees" within the kernel) are a form of semi-balanced binary tree. Each node in the tree contains a value and up to two children; the node's value will be greater than that of all children in the![[Red-black tree]](https://static.lwn.net/images/ns/kernel/wikipedia-rbtree.png)
Every node in a red-black tree is considered to be colored either red or black, with the root always being black. There is a somewhat complicated set of rules on how nodes should be colored, and, in particular, how the colors of the nodes should be used to make decisions on when and how to rebalance the tree. This article will not go into the details of the red-black tree mechanism, especially since that mechanism is well described by the Wikipedia red-black tree article (which is also the source of the image used here). Instead, we'll focus on how red-black trees are used in the Linux kernel.
The complex rules for red-black trees do bring some advantages. Since it is a binary tree, a red-black tree can perform lookups in logarithmic time. If the tree is properly maintained, the longest path to a leaf node in the tree will never be more than twice as long as the shortest path - in other words, the tree is always in approximate balance. But the property which is arguably most useful in the kernel context is the fact that insertions and deletions are (1) fast, and (2) provably bounded in time. All the work that the kernel developers have put into reducing latencies would be wasted if a data structure were to simply go off for an indeterminate period of time rebalancing itself. Users of red-black trees pay a small lookup cost because the tree is not perfectly balanced, but, in return, they get fast, bounded insertion and deletion operations. A red-black tree can, thus, be indicated in situations where nodes come and go frequently.
There are a number of red-black trees in use in the kernel. The anticipatory, deadline, and CFQ I/O schedulers all employ rbtrees to track requests; the packet CD/DVD driver does the same. The high-resolution timer code uses an rbtree to organize outstanding timer requests. The ext3 filesystem tracks directory entries in a red-black tree. Virtual memory areas (VMAs) are tracked with red-black trees, as are epoll file descriptors, cryptographic keys, and network packets in the "hierarchical token bucket" scheduler.
The process of using a red-black tree starts by including <linux/rbtree.h>. This is one of the trickier kernel data structures to use, however. When designing a general data structure for a language like C, the developer must always decide how to include arbitrary types within the structure, and how to make comparisons between them. The person who implemented Linux rbtrees (the copyright in the code is to Andrea Arcangeli) made these decisions:
- Structures which are to be part of an rbtree must include a struct
rb_node within them; there are no void * pointers
to separate objects. This is a common way of implementing kernel data
structures, and so will not surprise too many people.
- There is no "compare two objects" callback used in the rbtree code. Instead, users of rbtrees must, for all practical purposes, write the top-level search and insertion functions themselves, using lower-level rbtree primitives. As a result, using an rbtree is a bit more work, and the data structure is rather less opaque than our computer science teachers would have liked. What is gained in return, however, is a faster overall implementation without a bunch of indirect function calls in the hottest part of the tree traversal loops.
It should also be remembered that an rbtree, like many other kernel data structures, implements no locking of its own. Any code which uses an rbtree must implement its own mutual exclusion to keep the tree from being corrupted. Usually, that locking will fit well with the scheme already being used by that code anyway, so there is no need for an independent locking mechanism.
The root of a red-black tree has the type struct rb_root; a tree can be initialized to the empty state with a line like:
struct rb_root the_root = RB_ROOT;
Assume, for a moment, that we have a red-black tree which is already full of interesting data. Traversal of that tree (which does not involve searching) is straightforward:
struct rb_node *rb_first(struct rb_root *tree); struct rb_node *rb_last(struct rb_root *tree); struct rb_node *rb_next(struct rb_node *node); struct rb_node *rb_prev(struct rb_node *node);
A call to rb_first() will return a pointer to the first entry in the tree, while rb_last() returns the final entry. Moving forward and backward through the tree is a simple matter of calling rb_next() and rb_prev(). In all of these cases, a return value of NULL indicates that the requested node does not exist.
Since the rb_node structures are embedded within some other structure of interest, finding the rb_node is a simple matter of using the right structure field. A call to one of the above functions will return a pointer to the embedded rb_node structure, however, and not the containing structure which is, normally, what the programmer really wants. This is the situation that the container_of() macro was created for, but, in this case, there is no need to use container_of() directly. Instead, use rb_entry():
rb_entry(pointer, type, member);
Where pointer is a pointer to an rb_node structure, type is the type of the containing structure, and member is the name of the rb_node structure within the container.
Searching an existing tree for a value is simply a matter of starting at the root, then, for each node, comparing the value of that node against the target and following the left or right branch as necessary. So all rbtree search code tends to look like the following:
struct my_stuff *my_rb_search(struct rb_root *root, int value) { struct rb_node *node = root->rb_node; /* top of the tree */ while (node) { struct my_stuff *stuff = rb_entry(node, struct my_stuff, node); if (stuff->coolness > value) node = node->rb_left; else if (stuff->coolness < value) node = node->rb_right; else return stuff; /* Found it */ } return NULL; }
Here, we are searching for a struct my_stuff whose coolness field matches the given value. An integer value is used for simplicity, but not all uses need be so simple. If the coolness of the root node is greater than the target value, then that value must be found in the left branch of the tree (if it is in the tree at all), so the search follows the rb_left branch and starts over. A search value greater than the current node's value indicates that the right branch should be used instead. Eventually this function will either find an exact match, or hit the bottom of the tree.
The insertion case is a little trickier. The code must traverse the tree until it finds the leaf node where the insertion should take place. Once it has found that spot, the new node is inserted as a "red" node, and the tree is rebalanced if need be. Insertion code tends to have this form:
void my_rb_insert(struct rb_root *root, struct my_stuff *new) { struct rb_node **link = &root->rb_node, *parent; int value = new->coolness; /* Go to the bottom of the tree */ while (*link) { parent = *link; struct my_stuff *stuff = rb_entry(parent, struct my_stuff, parent); if (stuff->coolness > value) link = &(*link)->rb_left; else link = &(*link)->rb_right; } /* Put the new node there */ rb_link_node(new, parent, link); rb_insert_color(new, root); }
In this case, the traversal of the tree looks similar to the search case. However, the link pointer is doubly indirected; in the end, it will be used to tell the rbtree code which branch pointer (rb_left or rb_right) should be set to point to the new entry. The code follows the tree all the way to the bottom, at which point the parent pointer identifies the parent of the new node, and link points to the appropriate field within parent. Then, a call is made to:
void rb_link_node(struct rb_node *new_node, struct rb_node *parent, struct rb_node **link);
This call will link the new node into the tree as a red node. After this call, however, the tree may no longer meet all the requirements for a red-black tree, and may thus need to be rebalanced. That work is done by calling:
void rb_insert_color(struct rb_node *new_node, struct rb_root *tree);
Once that step is complete, the tree will be in consistent form.
There is an important assumption built into the above example: the new value being inserted into the tree is not already present there. If that assumption is not warranted, a corrupted tree could result. If the possibility of a duplicated insertion exists, the code must be careful to test for an exact match (as is done in the search case) and stop (without inserting the node) if that match is found.
Removal of a node from a tree is simpler; simply call:
void rb_erase(struct rb_node *victim, struct rb_root *tree);
After the call, victim will no longer be part of tree, which may have been rebalanced as part of the operation. If one tree entry is being replaced by another with the same value, however, there is no need to go through the removal and insertion process. Instead, use:
void rb_replace_node(struct rb_node *old, struct rb_node *new, struct rb_root *tree);
This call will quickly remove old from the tree, substituting new in its place. If new does not have the same value as old, however, the tree will be corrupted.
Major suspend changes
The past two weeks has seen a huge long email thread about the future of suspend in Linux. No, not that other type of suspend, this is all about what users really want, a working suspend to RAM.It all started out with a few simple patches from Linus that implemented a framework for allowing a way to debug problems during suspend, but quickly spiraled out of control into rants about how badly the kernel handles suspend issues today:
> I think you are trying to change a model that is not broken... Bzzt. Thank you for playing. The fact is, this thing has been broken for years. At some point, we have to just accept the fact that it's not just "drivers". There's something else that is broken, and I bet it's the model.
To how wrong everyone has been over the years in how suspend should really work:
See? WE DO NOT DO THIS. I told people we needed to do this _years_ ago. I tried to push through the two-phase suspend. I tried to explain why. I clearly failed, because we do _nothing_of_the_sort_ right now. Instead, the "please suspend" thing to the devices is a single-phase "put yourself into D3", with no support for a separate "please save your state" call. Crap.
After arguing this last point over and over for many emails, Linus did what anyone should do who wants to prove that their point is correct, he wrote up a working patch that implements his proposed changes.
To fully understand the problem, let us look at the interface that the kernel provides drivers today to handle suspend. When the kernel wants to shut devices down (for some kind of suspend action), the whole device tree is walked, and the suspend callback is called.
For PCI devices, this callback looks like:
int (*suspend) (struct pci_dev *dev, pm_message_t state);The pointer to the PCI device that is about to be suspended is passed to the driver, along with the state that the kernel wants to go into. Within this single function, the driver is responsible for doing all suspend tasks needed for the device.
The big problem with this is that if a device can not be suspended at that point in time, it has to go through great lengths to try to let the core know that it should be called back again (it does this by returning -EAGAIN to the core and hoping that it will be called back.) But the big issue is that the driver is responsible for shutting the device down entirely in this function. This prevents the kernel from doing things like system snapshots easily, or what to do if the driver simply does not have enough memory available to it in order to properly save the device state off in order to suspend.
Also the big issue is that the "class" cores should be handling most of the suspend process, instead of the individual drivers. For example, the network core should be shutting down the transmit queues and making stuff go quiet for the drivers, so that they do not need to individually do this in each and every driver. This last point is the biggest change in Linus's model, and (in this author's opinion) the most important issue.
So, Linus changes the suspend process to a series of different steps:
- All devices start out on a list called dpm_active and are, as indicated, "active" and up and running.
- A new callback is called for every device in the global device tree. This callback is called suspend_prepare and has the same arguments that the current suspend callback has for each individual bus type. In this function, the devices are not allowed to disconnect themselves from the kernel (like USB devices disconnecting themselves to shut down), and the drivers for these devices need to do everything necessary to be ready to suspend the device some time in the future. This usually entails allocating any needed memory to save the device state, or other kinds of housekeeping. Anything that might possibly fail should be done here, and if something bad happens, the error should be reported. Drivers can call functions that might sleep here, as interrupts are not disabled.
- The kernel then iterates over all of the dpm_active list and moves it to the dpm_off list and calls the suspend callback for the different subsystems (which is new). Followed by the subsystem suspend, the bus suspend callback is made.
- Interrupts are now disabled in the system.
- Then the kernel iterates over all of the devices on the dpm_off list and moves them to the dpm_off_irq list, while calling a new callback called suspend_late().
- After this is complete, the system can be suspended by shutting down the CPU by putting it into any sleep level that is desired.
To resume the system, the kernel reverses the order of manipulating the device lists and does the following steps:
- The kernel iterates over the dpm_off_irq list and moves the devices to the dpm_off list while calling a new callback called resume_early.
- Interrupts are enabled.
- The kernel iterates over all of the devices on the dpm_off list and moves them to the dpm_active list, while calling the resume callback (first the bus specific resume function, followed by the class specific resume.)
This new scheme allows the kernel to properly handle error conditions if anything bad happens while the suspend process was happening. For example, if an error is caused during the suspend_late process, then only the devices on the dpm_off_irq list will be called with the resume_early callback in order to resume the system in the proper procedure and recover from the error properly.
Linus's patch is a small patch, not over 400 lines, and generated some good feedback with other kernel developers who seem to be coming around to this new scheme. The patch has not shown up in any public kernel trees yet, but hopefully soon Linux will be able to handle suspend issues in a much more robust and correct manner.
KHB: Failure-oblivious computing
[Editors note: this is the second in the Kernel Hacker's Bookshelf series by Valerie Henson; if you missed it, the first article is over here.]Computer programs have bugs. As programmers, we know that this is inevitable, given the trade-off in time and money against creating a perfect system. Systems with nearly-zero bug counts exist (e.g., the Shuttle software, only 17 bugs in 420,000 lines of code over the last 11 releases) but they require vast amounts of work to achieve this level of correctness, work that is completely unjustifiable for most programs (such as desktop operating systems). But we're programmers, it's our job to replace time and money with smart ideas.
What would happen if when a program had a memory error - and it detected that error, ignored it, and drove happily on, oblivious to the failure? You would expect that this would result in horrible errors and obscure crashes. But what if it worked - or even made things better? For example, failing to check the size of a memory copy operation can result in a buffer overflow attack. Could we do something clever that would both paper over the memory error and keep the application running, more or less on track?
A Solution
Martin Rinard and a few of his colleagues got to wondering about this question and decided to test it - and found that the answer was yes, you can automatically handle memory bugs in a better, safer way than either ignoring the bug or terminating the program. I first heard of their technique, Failure-Oblivious Computing, at their talk at OSDI 2004. The talk was quite lively; if there was a "Most Laughs per Minute" award, Martin Rinard would have won it.The explanation of how failure-oblivious computing is implemented might seem utterly crazy, but stick with me. Remember, the amazing thing about failure-oblivious computing is that when you implement it, it works! (At least for quite a few useful applications.) The basic idea is to detect memory errors - out-of-bound reads, out-of-bound writes - and instead of killing the program, handle otherwise fatal errors by turning them into relatively benign bugs. Detecting the memory errors requires a "safe-C compiler" - a C compiler that adds run-time memory access checks.
Safe-C compilers (and languages that always check memory accesses) have been around for a long time. When they detect a memory error, the process gets a segmentation fault, and usually exits shortly thereafter. In failure-oblivious computing, the application never even knows the memory error happened. In the case of an out-of-bounds write, the write is silently thrown away and execution continues. Handling out-of-bounds reads is slightly harder. In this case, a made-up value is manufactured and returned.
How do you pick which value to return? Two observations lie behind the answer. First, 0 and 1 are the most common values in computation. Second, sometimes the program is looking for a particular value before returning, such as searching for a particular ASCII character in a string, or iterating through a loop 100 times. The result is a series of return values that looks something like this:
0, 1, 2, 0, 1, 3, 0, 1, 4,...
So you throw away invalid writes, and make up stuff to return for invalid reads. Crazy, right? But crazy like a fox.
Why does it work?
Failure-oblivious computing is targeted at a particular class of applications, ones with short error-propagation distances - in other words, applications that have relatively short execution paths which return without affecting much global state. This includes a rather useful class of applications, such as web servers, mail servers, and mail readers. It does not include applications like scientific modeling software, in which one wrong value can fatally corrupt the final answer. Software programs which handle incoming requests and return to a waiting state, or have many independent threads of execution are good candidates for failure-oblivious computing.Another reason failure-oblivious computing works is because memory errors are transformed into input errors. Since the programs have to deal with invalid or malicious input already, often the result is an anticipated error, one the program knows how to deal with cleanly. For example, a buffer overflow attack on Sendmail uses a malformed, too-long, illegal email address to overwrite some other part of the program's memory. This technique silently discards the writes that go beyond the buffer, and Sendmail continues on to check the validity of the input - whether or not it's a correctly formed email address. Answer: No, so throw it away and go on to the next request. At this point, Sendmail is back in known territory and the error has stopped propagating.
A limitation of this technique is the cost of memory bounds checking. Applications that need to access memory frequently will probably not be good candidates for this technique. However, applications that are limited by I/O time, or only need to complete before the human user notices a delay, won't be much impacted by the cost. Indeed, humans can't detect delays below about 100 milliseconds - an eternity in computational time.
Failure-oblivious computing in practice
Rinard and his co-authors evaluated failure-oblivious computing with versions of several commonly used open source applications with known buffer overflow attacks: Sendmail, Pine, Apache, and Midnight Commander. They ran three versions of each program: an unaltered version, one using just safe-C compilation, and one transformed into a failure-oblivious program. In each case, the failure-oblivious version performed acceptably (sometimes better), did not create any new bugs, and did not suffer any security breaches.One example was the Pine mail reader. It had a bug in processing the "From" field for display in the message index. It needed to add a '\' character in front of certain characters, but allocated a too-small buffer to copy it into. Some "From" fields could overflow the buffer and cause the program to segfault and die. The safe-C version of the program dies as well, because all it can do is detect the buffer overflow. The failure-oblivious version threw away the writes beyond the end of the buffer, and then went on to behave exactly correctly! The length of the "From" field displayed in the index is shorter than the length of the buffer, so the fact that it was truncated too early is unobservable. When the user reads a particular message, a different code path correctly displays the "From" field. Now an email message that would cause Pine to die every time it was started could be correctly displayed and handled.
The performance of failure-oblivious Pine was 1.3 to 8 times slower times on certain tasks, but the total elapsed time to respond to user input was still in the low milliseconds range. For interactive use, the slowdown is acceptable. In the case of the Apache server bug, the performance of the failure-oblivious server was actually better than either of the other two versions. The higher performance was due to the fact that the bug would kill an Apache thread each time it was encountered, incurring the overhead of creating a replacement thread. The failure-oblivious version did not have the overhead of constantly killing and restarting threads and could server requests much faster.
Especially exciting is the use of failure-oblivious computing for widely used network servers, such as Apache and Sendmail. The paper has in-depth examinations of how buffer overflow bugs are prevented and indeed ignored by the failure-oblivious versions of these and other programs.
What failure-oblivious computing means for Linux
Linux has a huge variety of techniques for improving system security in the face of bugs. SELinux, various stack protection schemes, capabilities - all these techniques help cut down but don't eliminate security problems. Failure-oblivious computing would fill one niche, and in some cases will be the best solution due to the ability to continue running after a normally-fatal memory error. Wouldn't it be nice if, when everyone else is suffering from some brand-new zero-day attack, your system is not only secure but still up and running?More importantly, this paper teaches the value of experimentation with obviously crazy ideas. Even after seeing the talk and reading the paper and talking to the author, I still find it a little mind-boggling that failure-oblivious computing works. Even more fun is understanding why it works - a good reason to read the full paper yourself. I am certain that computers (and computer science) will continue to surprise us for many years to come.
[Do you have a favorite textbook or systems paper? Of course you do. Send your suggestions to:
val dot henson at gmail dot com
Valerie Henson is a Linux kernel developer working for Intel. Her interests include file systems, networking, women in computing, and walking up and down large mountains. She is always looking for good systems programmers, so send her some email and introduce yourself.]
ALSA 1.0.12rc1 released
Version 1.0.12 rc 1 of the ALSA sound driver is out. See the change log for details.
Patches and updates
Kernel trees
Architecture-specific
Core kernel code
Device drivers
Documentation
Filesystems and block I/O
Janitorial
Memory management
Networking
Security-related
Page editor: Forrest Cook
Distributions
News and Editorials
Ubuntu Developer Conference - Paris
Since Sunday, the second greatest GNU/Linux show on Earth (after Linux.conf.au) rolled into Charles de Gaulle airport, just outside Paris. This is the organized human carnival where terms like 'specs', 'BOFs' and 'lightening-presentations' fly about during the day and give way to hushed mentions of Mao! and Talking! during the evening.On the agenda for this week are nailing down all of the features that will make it into the next release of Ubuntu (codenamed the Edgy Eft, as covered by LWN previously), expected to hit your desktop in a mere four months. You can keep an eye on all the specifications on the brand new "Blueprint" component of Launchpad and even take part.
There are over sixty people in attendance, including the majority of the core Ubuntu distro team---congratulations also to those busy expecting babies and not able to make it this time. Everyone is welcome to attend, just grab a peek at the schedule of the day and turn up at the Radisson hotel.
Ubuntu has been gradually perfecting the ultimate open-source development conference, with each edition of the Developer Summit the process gets smoother and more refined. What matters here is high-quality, high-bandwidth person-to-person communication. It's important because the rest of the year everyone is working in separate countries and time-zones, with the only contact being via text-based IRC chat.
If you want, Kubuntu, Edubuntu, Xubuntu, Ubuntu, LTSP, they're all here and Wednesday's morning talk came from Intel aficionados (and Debian veterans) Mike Jennings and Max Alt. This was a sneak preview into the technology that Intel is expecting to release to the market in the next year and how Ubuntu can be ready for increased power-saving, hardware-based Xen and multi-core goodness; all out-of-the box, of course!
Thirty years ago there were futurists with predictions of computers that would talk. During todays bird-of-feather accessibility session, that came just a little closer to reality... Thanks to the wonderful discovery of small and efficient GPL'ed eSpeak speech synthesizer, the next release is likely to feature text-to-speech right from the installer boot menu.
If you want to know the future of computing for everyone, then perhaps this is the place to be. It's round, delicious and slightly caramel in colour---just like the crème flambeau we ate for pudding.
New Releases
GeeXboX 1.0 released
The GeeXboX project has announced the release of version 1.0. "Here we finally are ... after more than 3 years of perpetual development, GeeXboX finally reaches its so long awaited 1.0 release. Many of you were waiting for it and this is probably the best edition of GeeXboX that you've ever had."
First Mandriva Linux 2007 alpha arrives (DesktopLinux)
DesktopLinux takes a quick look at the alpha release of Mandriva 2007. "The first development images of Mandriva Linux 2007 have been released for download and testing, the team revealed June 22. Only Mandriva One live CD images for the i586/x86_64 architectures were currently available, but the team said the usual full 4-CD sets would appear on Mandriva mirrors within several days."
Distribution News
Mandriva Linux 2007: Get Ready For Evolution
Mandriva looks forward to its Mandriva Linux 2007 release, due out this fall. "Mandriva Linux 2007 will be available in three versions: Discovery (for the Linux beginner), PowerPack (for the advanced computer user) and PowerPack+ (for SOHO users)."
OpenPKG project diverges 2-STABLE branch
The OpenPKG project has separated the OpenPKG 2-STABLE branch from the OpenPKG CURRENT branch. This branching allows maintenance of the existing OpenPKG code and RPM specification base and independent development in OpenPKG CURRENT simultaneously.New mailing list: opensuse-translation
The opensuse-translation list has been created for the discussion and coordination of translations of the SUSE Linux distribution.Ubuntu post-summit specification review process
Matt Zimmerman reports that a team was formed to review draft specifications formulated at the summit. "Of course, there wasn't enough time to review and approve all of the specifications written during the summit, so this process will continue over the coming days. The deadline to have specifications approved for Edgy features will be next Thursday, July 6th."
Distribution Newsletters
Debian Weekly News
The Debian Weekly News for June 27, 2006 covers a new version of Parsix, a Debian Query Language, Priorities of Alternatives, Improving Debian's Publicity, Tracking Critical Bugs, Separating shared Libraries and Executables, Debian in Cuba, Automatic Loading of Kernel Modules, and several other topics.Gentoo Weekly Newsletter
The Gentoo Weekly Newsletter for June 26, 2006 looks at a call for release testers, a call for x86 arch testers and developers, ALSA information, Java upgrades and more.Ubuntu Weekly Newsletter - Issue #4
The Ubuntu Weekly Newsletter covers the Paris Developer Summit in review, Matthew East interviewed on "Lug Radio", GNOME 2.15.2 now in Edgy, Feature Of The Week - Pattern Matching in Nautilus, a preview of what is coming next week, and much more.DistroWatch Weekly, Issue 157
The DistroWatch Weekly for June 26, 2006 is out. "This week's issue features a first look review of Xandros Desktop 4, a new version of the commercial desktop distribution released last week. Is it worth the asking price? As always, it depends... In the news section we'll take a brief look at DrakLive, a script responsible for creating all recent builds of Mandriva One, highlight what looks like growing dissatisfaction with the state of affairs among Gentoo developers, and direct your attention to a couple of interesting links - a Creative Commons & Fedora Project competition and a desktop NetBSD guide. Finally, good news for the fans of Ruby on Rails - a new PCLinuxOS-based live CD features a complete and pre-configured Ruby on Rails development environment for the coders of database-backed web applications."
Package updates
Fedora updates
Updates for Fedora Core 5: kexec-tools (add ppc64 patch), scim (update for gtk2 change of path), openmotif (fixed XmList widget size problem), kdeutils (bug fix), kdegraphics (bug fix), xen (rebase to new Xen-unstable), kernel (rebase to upstream 2.6.17.1), cscope (bug fix), shared-mime-info (bug fix), tetex (bug fixes), scim-hangul (rebuilt to fix broken upgrade path), autofs (bug fixes), mkbootdisk (fix tail command usage), ipv6calc (upgrade to 0.60.0), k3b (update to version 0.12.15), NetworkManager (update to 0.6.3), python (remove perl dependencies from python-tools), mesa (bug fixes), scim-qtimm (bug fix), xorg-x11-xtrans-devel (updates various components), libX11 (updates various components), xorg-x11-server (updates various components), xorg-x11-xdm (updates various components), xorg-x11-xfs (updates various components), xorg-x11-xinit (updates various components), xorg-x11-apps (updates various components).Updates for Fedora Core 4: kernel (rebase to upstream 2.6.17.1), python (remove perl dependencies from python-tools), python-docs (built older version for FC4).
rPath updates
Updates for rPath Linux 1: dovecot (add runtime requirement), conary, conary-build, conary-repository (update to Conary 1.0.21), epdb (update to Epdb 0.9.1), anaconda, anaconda-utils (bug fix), anaconda, anaconda-utils (bug fixes), bind, bind-utils (bug fix for x86_64).Slackware updates
Slackware has a Linux 2.6.16.22 generic kernel in testing and lots of other upgraded packages this week, according to the slackware-current changelog.
Newsletters and articles of interest
Planning for Ubuntu Edgy: A mid-week report from the Ubuntu developer's conference (NewsForge)
Benjamin Mako Hill covers the Ubuntu summit for NewsForge. "At the time of writing, there are more than 170 identified goals under discussion at the Paris developer summit. Only a portion of these are marked as high priority, few have moved past the stage of "braindump," and only a handful have been approved. These specifications provide an idea of where Ubuntu might go in the next release. Of course, no promises are being made -- officially or unofficially."
Distribution reviews
DSL-N: Damn Small Linux gets bigger (Linux.com)
Linux.com reviews Damn Small Linux - Not. "DSL-N sports a 2.6 series kernel instead of the 2.4 in DSL for better hardware support. It picked up the ATI card in my test desktop and the inexpensive USB-to-PS/2 converter on my laptop, along with the wireless hardware. It's also got a lot of "mainstream" GTK2 applications. Gaim takes over from naim for instant messaging, AbiWord replaces the Ted editor, Gnumeric spreadsheet preempts Siag, MPlayer replaces XMMS, and the CUPS printer drivers take the place of Apsfilter. The Mozilla suite takes care of your Internet browsing, email, and HTML editing needs."
SuSE Linux Enterprise Desktop 10
TechWorld reviews a SLED 10 beta. "I installed the beta of SLED 10 on a Fujitsu LifeBook P5010 notebook, my stock torture test for new desktop Linux distributions. The P5010's Intel-based hardware is standard enough to warrant support, yet funky enough that it throws Linux a few curves. No Linux install on this machine has ever passed with flying colours -- until now, that is."
Page editor: Rebecca Sobol
Development
Interview with Gerald Combs
Brad Hards interviews Gerald Combs of the Wireshark project.LWN: Gerald, many system administrators and network software developers would be familiar with the Ethereal network sniffer and packet dissector. You were the original author, and release coordinator for Ethereal, but you recently announced that the project's name was changing to Wireshark and was moving to a new website. Can you provide a bit of background on the reason for the name change?
GC: Several years ago, my former employer registered trademarks for Ethereal and the Ethereal logo. Along with hosting the main web site, this provided a valuable service to the community.
Recently I took a job with
CACE Technologies, the people behind
WinPcap
(the Windows Packet Capture Library).
The Ethereal trademarks ended up staying with my former employer, which
meant that someone with no direct involvement with the project had
custody of the name. Also, no one involved with the project had
administrative access to any machines in the ethereal.com domain. This
put the project in a weird position, which forced the name change.
When we were discussing names, my wife came up with the motto "Sniffing
problems a mile away," which I really like.
By the way, the fin pointing left symbolizes the move west that my
family and I are about to make (from Kansas City, MO to Davis, CA).
LWN: Who will own the Wireshark trademark?
GC: I will, at least initially. We're looking at the benefits of this versus setting up an organization around Wireshark. Either way, the trademarks will be owned by an entity with a vested interest in the success of the project.
LWN: What sort of work will you be doing for CACE? How will it relate to Wireshark?
GC: My top assignment is to continue working on Wireshark, and to make sure the project stays strong and healthy.
LWN: CACE Technologies are supporters of WinPcap and Snort, right? Do you see the future of Wireshark being affected by closer association with those products?
GC: CACE is deeply involved with WinPcap. Its two main developers work there, and CACE provides services and hosting for WinPcap. There is no connection with Snort or Sourcefire.
LWN: Ah, OK - my mistake on the Snort connection. Of those developer that had commit rights for Ethereal, how many have moved over to work on Wireshark?
GC: All of them. They've accepted the name change a lot better than I have. The Wireshark community is very fortunate to have a team like this working on the project.
LWN: There appeared to be some concerns from some members of the wider Ethereal development community over the approach you took for the renaming and rehosting. Can you explain why you took the approach that you did?
GC: While we were throwing around ideas for the new name, we were vulnerable to poaching. I would (have) loved to have discussed the name with the user community, but what would have stopped someone from preemptively registering a domain name or trademark? At the same time, my focus was on bringing up the new infrastructure for the project -- the web site, mailing lists, code repository, build servers, etc. We ended up postponing the announcement a couple of weeks while all of that was put into place.
LWN: How do you see the development approach for Wireshark differing from what happened on Ethereal?
GC: In the immediate sense, very little has changed. The same exact developers are working on the same exact code. Our development process has evolved over time in order to keep our developers productive and happy, and to improve the quality of the product. I don't see that changing in the future.
LWN: What do you see as the future for Wireshark?
GC: We're going to continue our role as the world's most popular network protocol analyzer. Hopefully this means releasing version 1.0 at some point. :) The developers are constantly adding great new features to the product, as well as improving protocol support. I don't see that changing. We're also making great strides where we haven't done so well in the past (most notably with security). There will be a huge benefit from working alongside Loris Degioanni and Gianluca Varenni, the developers of WinPcap. The advantage that CACE has to offer greatly outstrips any losses from changing the name.
LWN: When do you expect the first Wireshark release?
GC: We already have a pre-release of version 0.99.1 available for download. If you're adventurous, we also have automated builds of the latest development code. The first "real" release (0.99.1 or 0.99.2) should be out in the next couple of weeks. Several months ago we established roadmap to define the features that will be in version 1.0. We've been making steady progress on the roadmap, and 1.0 will hopefully be released in the next few months.
LWN: Any thoughts on what is likely to happen to Ethereal?
GC: Not a clue. No one on the development team has administrative access on any of the Ethereal servers; their upkeep is now the responsibility of my former employer. As far as I know they haven't indicated what's going to happen.
LWN: So, do you expect to see the mailing list support / discussion move over to the new Wireshark mailing lists in the near future?
GC: That's happening right now. Activity on the Wireshark lists is starting to pick up. I'm not sure if there will ever be an explicit move, e.g. by pointing mail aliases from the old lists to the new ones, but who knows?
System Applications
Database Software
Firebird RDBMS Issue Tracker launched
A new issue tracker web site has been launched for the Firebird RDBMS system. "Anyone is free to find issues. You must register and login if you want to create, comment, vote, or watch issues. Only developers can edit, prioritize, schedule and resolve issues."
Interoperability
Samba 3.0.23rc3 Available for Download
Version 3.0.23rc3 of Samba is available. "This is the third release candidate of the 3.0.23 code base and is provided for community testing purposes. If all goes well, we hope that this will become the production 3.0.23 release."
Security
Sussen 0.24 announced
Release 0.24 of Sussen, a vulnerability and configuration checker, is available. "This release is mostly about improving support for different OVAL features and implementing more tests."
Web Site Development
Midgard 1.8 alpha 3 released
Version 1.8 alpha 3 of the Midgard Open Source Content Management System has been announced. "Midgard's 1.8 branch focus on improved stability for Midgard2 technology preview features introduced in 1.7 branch. This is the first release from 1.8 branch with full support for initial Midgard installations. It's addressed for developers and users familiar with new pear packages of Midgard CMS."
Plone 2.5 Released
Version 2.5 of the Plone web development platform has been announced. "Most of the new stuff in Plone 2.5 is underneath the surface, where the first big chunks of Zope3 plubmbing are now in place -- most notably the PlonePAS user authentication framework, which makes it easy to have Plone authenticate and store member properties in external data sources and the new GenericSetup system for creating and configuring sites. There's also a slew of minor bugfixes and usability enhancements."
Desktop Applications
Audio Applications
jack_capture 0.2.4 is out
Version 0.2.4 of jack_capture is out with bug fixes and a bigger buffer. "jack_capture is a small program to capture whatever sound is going out to your speakers into a file without every having to patch jack connections, fiddle around with fileformats, or set options on the argument line."
kluppe 0.6.5 released
Version 0.6.5 of kluppe, a jack-based loop player designed for live-use, is out with new features and bug fixes.Rotter: Recording of Transmission / Audio Logger
The Rotter project has been announced. "Rotter is a Recording of Transmission / Audio Logger for JACK. It was designed for use by radio stations, who are legally required to keep a recording of all their output. Rotter runs continuously, writing to a new file every hour. It is released under the GPL licence."
Desktop Environments
GNOME Software Announcements
The following new GNOME software has been announced this week:- gnome-blog 0.9.1 (new features, bug fixes and translation work)
- GnuPG 1.4.4 (security bug fix)
- GTK+ 2.9.4 (unstable development release)
- gtkmm 2.9.5 (new features and bug fixes)
- gtkmm 2.9.6 (new features)
- HomeBank 3.2-a1 (preview release)
- XChat-GNOME 0.12 (new features, bug fixes and translation work)
KDE Software Announcements
The following new KDE software has been announced this week:- K3b 0.12.16 (bug fixes)
- kdesvn 0.8.5 (bug fixes and translation work)
- kphotobymail 0.2 (bug fixes)
- Kphotobymail 0.3 (new feature and bug fix)
KDE Commit-Digest (KDE.News)
KDE.News has announced the June 25, 2006 edition of the KDE Commit-Digest. "In this week's KDE Commit-Digest: Support for the Encapsulated PostScript format in KViewShell. Important progress in Strigi desktop search. The beginnings of LastFM support for Amarok, whilst the experimental interface layout is reverted - for the time being, at least. Import into KDE SVN of the "GMail-style conversation view for KMail" project, with breakthrough progress in the "OSCAR (AIM) File Transfer" project, both for the Summer Of Code. Ingredient substitution functionality in KRecipes."
Electronics
Signs 0.6.2 released
Version 0.6.2 of Signs, a development environment for hardware designs in various hardware description languages, is out. "Besides many bugfixes this release features an improved Eclipse plugin which includes a new Signs console, autobuilder improvements and outline view navigation. The VHDL compiler has support for attribute elaboration, VHDL87 style file declarations and reports precise source locations for netlist annotations and error messages. New features in this release include an experimental Berkeley SIS interface, BLIF netlist output, adder and comparator generation and better support for testbenches."
Financial Applications
SQL-Ledger 2.6.13 is out
Version 2.6.13 of SQL-Ledger, a web-based accounting package, is out with bug fixes and more.
Games
Eris 1.3.11 Released
The WorldForge game project has announced The release of Eris 1.3.11. "Eris is the WorldForge client-side session layer, used by many existing clients. This release adds support for Task objects, which can be presented to the user, and display a live progress value (based on client side prediction). The API is straightforward, but may change based on feedback from clients. There is now better support for logging out of accounts, and for de-activating characters. In co-operation with the server, the accounts list of characters is kept up to date in response to character creation. Taken together, these changes mean that it is no longer necesary to restart clients to change server, account or character."
Sear 0.6.2 Released
The WorldForge game project has announced Sear 0.6.2. "This version has task support allowing basic building tasks to be performed. Current tasks include chopping down trees, stripping branches and sharpening into stakes to facilitate stockade construction. This release also contains many improvements to the rendering system and long standing rotation and positioning bugs have been fixed."
GUI Packages
New Poll: FLTK2 and Cairo
The FLTK project is holding a poll on whether to use the Cairo graphics library. "Cairo would replace all system-dependent calls to 2D graphics rendering in FLTK2, making it easier to maintain the code base and generating much nicer graphics, opening up a wealth of new features to all FLTK2 developers. Cairo renders into image buffers, renders text along spline curves, can render backgrounds, highlights, grades, etc. . It is LGPL like FLTK2 and runs on all our supported platforms."
Imaging Applications
Inkscape 0.44 Announced
Version 0.44 of the Inkscape vector graphic drawing tool is available. "Inkscape 0.44 adds many new features, is faster and more usable, better supports SVG, is translated into more languages (17 on last count), and adds a lot of polish and refinement. Major new features include Layers dialog, support for clipping and masking, improved PDF export with transparency, configurable keyboard shortcuts, innovative "node sculpting" capability in Node tool, and the Outline mode. Significant gains are achieved in performance, especially in screen rendering and Node tool."
Interoperability
Wine 0.9.16 released
Version 0.9.16 of Wine has been announced. Changes include: More work on Direct3D shaders, Major DirectDraw rewrite on top of Direct3D, Support for debug information in Dwarf format, Beginnings of an OleView Winelib application and Lots of bug fixes.Wine Weekly Newsletter
The June 19, 2006 edition of the Wine Weekly Newsletter is available. Topics include: News: Linux.com Article, Safedisc Support Revisited, Vertex Buffer Objects, Wine on 64-bit AMD / Ubuntu and DWARF2 Debugging.
Medical Applications
Open Source Medical Manager Alternative (LinuxMedNews)
LinuxMedNews looks at the mm2mm project. "The MirrorMed project and SynSeer is proud to announce the mm2mm project. mm2mm stands for Medical Manager to MirrorMed. mm2mm is a set of scripts and services designed to allow Medical Manager users to switch to MirrorMed."
Music Applications
Gneutronica 0.32 released
Version 0.32 of Gneutronica, a MIDI drum machine for Linux, is available with several new capabilities and bug fixes.
Languages and Tools
Caml
Caml Weekly News
The June 27, 2006 edition of the Caml Weekly News is out with new Caml language articles.
PHP
PHP Yadis 1.0.1 released
Version 1.0.1 of the PHP Yadis library is available. "This release includes bugfixes for the Yadis discovery service interface. Please upgrade immediately."
Python
Python 2.5 beta 1 released
Version 2.5 beta 1 of the Python language has been announced. "Since the alpha releases, a slew of bug fixes and smaller new features have been added. See the release notes (available from the 2.5 webpage) for more. The first beta also includes the results of the Iceland NeedForSpeed sprint, resulting in some significant speedups."
Dr. Dobb's Python-URL!
The June 26, 2006 edition of Dr. Dobb's Python-URL! is online with a new collection of Python article links.(An Unofficial) Python Tutorial Wiki
A new Python Tutorial Wiki has been launched. "This infogami wiki contains an editable copy of the standard Python tutorial. Feel free to log in and improve it, or leave a comment if there's something that you think ought to be fixed or clarified. Please follow the usage guidelines when editing."
Ruby
Ruby Weekly News
The June 25th, 2006 edition of the Ruby Weekly News looks at the latest discussions on the ruby-talk mailing list and comp.lang.ruby newsgroup.
Page editor: Forrest Cook
Linux in the news
Recommended Reading
Taiwan mandates Linux-ready PCs (ZDNet Asia)
ZDNet Asia reports on a directive from the Taiwanese government that requires Linux compatibility for new desktop PC purchases. "The Central Trust of China, Taiwan's government procurement agency, has commissioned the Taipei Computer Association (TCA) to ensure that bids from PC vendors include equipment that are compatible with Linux. So far, about 33 desktop PC models from Acer, Asustek, Lenovo and Hewlett-Packard, have been certified Linux-compatible by the TCA, reported Taiwan's Chinese language newspaper, Economic Times."
Widespread Linux GPL violations alleged (Linux-Watch)
Linux-Watch looks at the issue of GPL violations by small Linux distributions. "Woodford's error was that while he does provide MEPIS's modified Debian/Ubuntu kernel source code in a Debian source-package, he had not provided copies of the source code that was available somewhere, which he had not modified. So, for example, say I released Steven's Special Penguin Sauce Linux. In it, I'd have my own modifications to the kernel source code, and the usual Linux utilities like the vim screen-based text processor. I would have to provide my users with not only my kernel's code, but also with vim's source code as well, even though I hadn't done a thing to its code."
Trade Shows and Conferences
KDE at LinuxWorld Expo Korea 2006 (KDE.News)
KDE.News covers the recent Korean LinuxWorld Conference and Expo. "On June 5-7th the Korean version of the LinuxWorld Conference and Expo series opened its doors for the first time in Seoul. The visitors could learn about various Asian distributions which use KDE including Haansoft. The Korean team of translators with its head Cho Sung-Jae ran a booth showing the current KDE as well as distributing the brand new Kubuntu Dapper CDs to people - which was a great success."
RailsConf 2006 is done, next up is the RailsConf Europe 2006 (Linux Journal)
Pat Eyler points to the best blogs on the RailsConf. "Well, the biggest news in the Ruby world this last week has been RailsConf (and of course, all the news that broke there). I didn't get to go, so I've been trying to follow the various blogs about how it went. You know things were good when you see comment's like this one (by Curt Hibbs), "My notes for this talk are completely blank because it was so engrossing that I forgot to write anything down!"."
Companies
Evolis opens up to Linux (CR80News)
CR80News reports on the release of Linux card printer drivers from Evolis. "Evolis, the French manufacturer of solutions for plastic card customization, has announced the release of a Linux driver for its entire range of printers, thus making them available, affordable and suitable to a larger scope of users." The driver source code does not appear to be available.
Microsoft's Linux-basher leaves (Techworld.com)
Techworld.com reports that Martin Taylor, leader of Microsoft's anti-Linux 'Get the Facts' campaign, is leaving the company. "Taylor's brisk departure comes at the same time as the surprise announcement that Microsoft is working with a major critic from the open source field, Lawrence Lessig, to facilitate Creative Commons licences within Office documents. Stanford law professor Lessig, last year bitterly criticised Microsoft for tactics such as Get the Facts, accusing it of carrying on "all out war" with open source, and Linux in particular."
Motorola joins Eclipse in mobile Linux push (ElectronicsWeekly.com)
ElectronicsWeekly.com reports on Motorola's joining of the Eclipse IDE community. "Motorola has joined the Eclipse open source community which supports the adoption of open-source embedded software and tools including Linux. Motorola is working with the Eclipse Foundation to propose an Eclipse Tools for mobile Linux (TmL) project which will support development of C++ applications targeting mobile devices."
Novell changes leadership, stays Linux course (Linux-Watch)
Linux-Watch looks into Novell's recent board shakeup. "While Novell has embraced Linux and open-source with its acquisition of Ximian and SUSE, it has been unable to profit from these technologies as quickly as many of its investors would like. Messman, and his plans for Novell, had been criticized since last fall by major stock holders Blum Capital Partners LP investment firm and Credit Suisse First Boston on several fronts. Messman, analysts at both firms felt, had not been moving fast enough to cut the fat from Novell."
Business
Linux Terminal Servers for Any Business (Linux Journal)
Linux Journal looks at how businesses can use thin clients with Linux Terminal Server (LTS). "A Linux Terminal Server offers any business an elegant and cost-effective way to integrate the power of open source. In this article, I review some basics of network topology and offer suggestions about how to install a prototype server. I top it off with some tips for business-specific installations and configuration guidance."
Interviews
Oracle: Linuxs biggest fan and vendor (Computerworld)
Computerworld talks to Oracle's director of Linux engineering, Wim Coekaerts. "Oracle is involved with Linux, Coekaerts says, foremost because Oracle uses Linux. A lot of Linux. Right now, almost 10,000 Linux servers are in use internally at Oracle. Essentially, every production server at Oracle is a Linux server. In addition, about 9,000 developers at Oracle are using Linux to develop products. A lot of that can be attributed to one simple factor: cost savings."
Richard Stallman interviewed at GPLv3 Conference (Groklaw)
Groklaw presents an interview with Richard Stallman. "Groklaw's own Sean Daly was in Barcelona at the 3rd International GPLv3 Conference in Barcelona, Spain, this week, and while there, he had the opportunity to interview Richard Stallman [ as Ogg (3.8 MB)]. He asked Mr. Stallman what programmers should focus on next, about DRM, binary drivers, proposed changes to the GPL, and what he feels he has yet to accomplish."
Behind Ubuntu Interview: Jane Weidman
Behind Ubuntu interviews Jane Weidman. "What have you been working on for Dapper? Tracking the targeted Dapper specs through their development life-cycles, getting regular Dapper Development Status Updates published, co-ordinating the Edubuntu team, and attempting to get the Edubuntu Cookbook written, responding to loads of public enquiries and generally keeping busy. Those 4am Status Update meetings ROCK! (not)."
Resources
Making the Most of JDBC with WebRowSet (O'ReillyNet)
Sharad Acharya looks at WebRowSet in an O'Reilly article. "Database to XML and back again. If everyone's doing some or all of this, then shouldn't we write it once, get it right, and standardize? JDBC 3.0's WebRowSet offers a profound increase in power over the old ResultSet."
Indie Podcasting with Open Source (O'ReillyNet)
O'ReillyNet takes a look at podcasting. "There have been quite a few articles and books on podcasting already, and some of them are excellent--particularly the ones that deal with some small part of the process. Quite often, however, they neglect to mention a common goal of podcasting: to be like a radio station, slick and with easily understood formats. That's odd to me. Podcasting is an ideal medium for experimentation because the costs are so low, so you should try out some off-the-wall stuff."
Creating A Safe Directory With PAM And EncFS (Howtoforge)
Howtoforge has published a tutorial on the use of PAM And EncFS. "This HowTo is about creating a user-session-safe directory which offers security on- and offline. This is done with PAM, a module named pam_script and Encfs ("Encrypted Filesystem"). This safe directory is used to store credentials and other sensitive information during a session. When a usersession is ended, in the worst case an encrypted directory remains on the harddrive. In the best case everything is removed. This construction is only meant to store information during a session, not for documents or any other valid information."
Vim tips: The basics of search and replace (Linux.com)
Linux.com has some Vim tips. "Vim beginners may be puzzled when it comes to doing search and replace operations in Vim. The syntax can be a bit arcane, but after you've practiced, it becomes second nature. Let's take a look at how easy it can be. Let's start by looking at searches and doing search and replace operations within Vim. You can do a search in normal mode by using /searchstring . This will search forward through the file for searchstring . Likewise, running ?searchstring will search backwards through the file."
Web 2.0 sows grassroots collaboration (ZDNet)
ZDNet looks at the collaborative aspects of Web 2.0. ""The key part of Web 2.0 is that there is something about these new tools that enable new practices of collaboration," said John Seely Brown, a consultant and former chief scientist of Xerox, who spoke at the Collaborative Technology Conference in Boston last week. "Web 2.0 is a profoundly participatory medium." Though it lacks a precise definition, Web 2.0 generally refers to Web services that let people collaborate and share information online. In contrast to the first generation of Web offerings, Web 2.0 applications are more interactive, giving people an experience more akin to a native desktop application as opposed to a static Web page."
Fast Prototyping of Telephony Applications with YATE (O'ReillyNet)
Maciek Kaminski looks at the YATE project on O'Reilly. "In this article, I will present the YATE project (Yet Another Telephony Engine). YATE's API boundaries separate the parts of a telephony application that have to be "fast" from those that have to be just "fast enough." As a result, YATE allows developers to write scripts in higher-level languages, while leveraging the performance of native libraries without sacrificing too much efficiency."
Reviews
Reading feeds efficiently with Akregator (Linux.com)
Joe 'Zonker' Brockmeier investigates the RSS and Atom feed reader Akregator on Linux.com. "Information overload is a serious problem for most users. We all have so many sources of information to deal with, it's hard to keep them under control. One way to help deal with information glut is to use a good RSS and Atom feed reader, such as Akregator. One of the reasons I decided to start using Akregator is that I noticed the Sage extension for Firefox would throw an "XML Parse Error" on a few feeds that other readers -- like Akregator -- handle just fine. For example, Sage gives me an error on the Kubuntu feed, but Akregator parses it just fine."
Arcom - Development kit allows fast design of embedded Linux devices (electropages)
electropages.com reviews Arcom's SBC-GX533 Embedded Linux development kit. "The kits SBC-GX533 board is well suited to deeply embedded, remote or unattended installations demanding reasonable processing power. It is a low profile, fan-less, RoHS compliant EBX form factor board, based on a 400MHz AMD Geode GX533 1.1W processor. It has 512MB of DDR DRAM and 32MB of Flash installed, of which 13MB are used by the Linux image. This leaves 19MB of physical memory, equivalent to about 38MB of usable space, available for Linux application and data storage. The board also features TFT or CRT support, an analog touchscreen interface, dual 10/100BaseT Ethernet ports, CompactFlash (CF+), 4 serial and 4 USB ports. Industrial expansion is provided through an 8-bit TTL I/O port, a PC/104 and a PC/104+ site. All usual PC interfaces are also included."
Choosing an open source CMS (NewsForge)
NewsForge looks at a few content management systems. "It seems as if everyone is a Web publisher today -- from the habitual bloggers and online diarists to the companies running major news outlets, portals, and magazines -- and they're all using some kind of database-backed content management system (CMS) to do it. There are a lot of CMS choices -- Drupal, Mambo, Bricolage, WordPress, and Plone are some of the most recognizable names. While they all perform the same basic functions, you have to pick only one. How do you do it?"
CLI Magic: EncFS (Linux.com)
Linux.com takes a look at EncFS. "EncFS is an easy-to-use, command-line tool for storing information in encrypted form. It's not really a filesystem, but it pretends to be one at the CLI. If you've been searching for a means of encrypting and decrypting your sensitive data easily, here it is."
Gnash, the free Flash player, makes progress (NewsForge)
NewsForge looks at the Gnash project. "The Gnash project has been developing a free software Flash player since December. Filling one of the last major gaps on the GNU/Linux desktop, it is one of the Free Software Foundation's high-priority projects. We covered the project several months ago, when compiling the code was problematic. Now that Gnash has reached the 0.7.1 version, the player is still rough, but enough has been done to give us an indication of what the final version might be like."
Ion, the efficient window manager (Linux.com)
Linux.com reviews Ion. "The philosophy behind Ion is that window managers aren't meant to be seen, but to manage windows; anything more is dross. A few window managers out there share this aesthetic, such as Ratpoison, but they're rare in today's world of photogenic desktop environments, which seem to always be looking for an opportunity to add more decoration and ornament."
Getting started with Linux-VServer (Linux.com)
Linux.com looks at Linux-VServer. "Linux-VServer allows you to create virtual private servers and security contexts, which operate like normal Linux servers but allow many independent servers to be run simultaneously in one box at full speed. It utilizes operating system-level virtualization to enable the kernel to partition resources. All services, such as SSH, email, Web, and databases, can be started on such a VServer, without modification, just as they can on a real server. This also means you can restart your mail server, for example, without rebooting your Web server, while both co-exist on the same physical machine. Each virtual server has its own IP address, hard drive space, user account database, and root password, and doesn't interfere with other virtual servers."
Opera 9 Is Music to eWEEK Labs' Ears (eWEEK)
eWEEK reviews the Opera 9 browser. "One of the coolest and most valuable new features in Opera 9 is its search customization feature. On any Web site to which we surfed with Opera 9, we could right-click in a search field and then choose to add the site's search engine to our list of integrated engines. We could even make it our default search engine. This is a feature that we have been looking for in browsers for a long time now, and Opera 9 has finally pulled it off."
Miscellaneous
SUSE Linux course on a stick (ComputerWeekly)
ComputerWeekly covers Novell's launch of a training course on a USB drive. "The SUSE Linux Enterprise 10 First Class course comes on a USB device complete with the learning content and an installed version of the beta SUSE Linux Enterprise Server and Desktop 10 on a virtual machine. The USB device will run on both Windows and Linux, giving students complete flexibility in how, and where, to study, said Novell. Putting the complete initial training course on a USB drive is an industry first, said Daniel Veitkus, vice president for training services at Novell."
Page editor: Forrest Cook
Announcements
Non-Commercial announcements
OpenOffice.org challenges Microsoft's Office "Test Drive"
The folks at OpenOffice.org respond to the Microsoft Office 2007 test drive campaign. "Microsoft today announced the opening of a "test drive" so that people can see what Microsoft Office 2007 might look like when it finally goes on sale. The OpenOffice.org Community invites potential upgraders to go one better - download the full OpenOffice.org 2 office suite today for a test drive, and if you like it, use it free for as long as you like. It's the ultimate no-strings-attached test drive - if you enjoy the test drive, keep the car!"
Commercial announcements
2X ApplicationServer publishes Windows apps on Linux
2X Software Ltd has announced the release of the 2X ApplicationServer Linux client, which allows Windows applications to be run under Linux. "Until now, Linux users could only run Windows applications using Windows simulation software (e.g. WINE). This type of software is typically difficult to configure and only works with a limited number of applications. In addition, this generally would only support older versions. With 2X ApplicationServer however, any Windows application can be tunneled via RDP onto a Linux desktop."
ActiveGrid Studio 2.0 is launched
ActiveGrid, Inc. has announced the availability of the ActiveGrid Studio 2.0 development environment. "ActiveGrid Studio 2.0 is now the first enterprise solution on the market that rolls AJAX, mash-ups, and the ability to take advantage of exposed back-ends in SOA architectures into a development tool that's easy to use and optimized for common enterprise configurations."
Bell Microproducts Inks Deal With Red Hat
Bell Microproducts Inc. has announced a partnership with Red Hat, Inc. ""Red Hat Enterprise Linux is the market-leading open source platform in our core markets," said Gary Gammon, senior vice president of marketing for Bell Microproducts' Enterprise Division. "This partnership allows us to provide a one-stop-shopping opportunity for our customers by providing solutions that are built around Red Hat Enterprise Linux."
CodeWeavers announces CrossOver Office 5.0.3
CodeWeavers has announced versions 5.0.3 of their CrossOver Office Server and CrossOver Office Professional products. "This version will bring all of the CrossOver 5.0 features, including support for Office 2003 and the ability to manage virtual Windows environments (aka Bottles), to the Solaris and Linux thin client environments."
CrystalTech Offers Linux Dedicated Plan (WHIR News)
Web hoster CrystalTech is offering a Linux-based dedicated hosting plan that costs $49.95 per month. "The feature-rich Linux Dedicated plan features a 1.8GHz processor, 512MB of RAM and 250GB of bandwidth each month."
Empower Technologies Collaborates With TI University Program
Empower Technologies Corporation has announced a collaboration with Texas Instruments Incorporated. "Technologies Corporation (Empower) is very pleased to announce that it has begun a joint international sales effort with Texas Instruments Incorporated (TI) to promote its LDK591x family of LEOs (LinuxDA Embedded O/S) for TI's OMAP591x dual-core processor embedded software development kits to over 2,000 of the top universities and technical colleges worldwide."
Novell Names Ron Hovsepian as CEO
Novell, Inc. has announced the selection of Ronald Hovsepian as its new CEO, he will replace Jack Messman. "Novell, Inc. today announced that its Board of Directors has elected President Ronald W. Hovsepian, 45, to the additional position of chief executive officer, effective immediately. Hovsepian, who also has been elected to the Board of Directors, has been president and chief operating officer since October 2005. The Company also announced that Thomas G. Plaskett, a director of Novell since November 2002, has been elected non-executive Chairman of the Novell Board."
OpenLogic Launches OpenLogic Enterprise 4.0
OpenLogic, Inc. has announced the release of OpenLogic Enterprise 4.0. "OpenLogic Enterprise 4.0 gives enterprises a central repository of approved, certified open source products within the corporate firewall; enables companies to automatically install, configure and integrate this software on remote servers and desktops (using existing software deployment tools if they choose) and provides an audit trail of open source software deployment. As with past versions, OpenLogic Enterprise 4.0 allows enterprises to control which open source products are included in the approved library, and can limit usage on various criteria including license type."
SGI Launches New Mid-Range Altix 450 Servers
SGI has announced a new blade server product. "The new Linux(R) systems will deliver double the performance of today's award-winning Altix(R) servers, while drawing less power and offering more density and flexibility for demanding, data-intensive applications. The new SGI(R) Altix(R) 450 bolsters SGI's mid-range offerings with up to 2.5 times the system performance of the current Altix(R) 350(R) server at a lower cost. With dual-core Itanium 2 processors, SGI also is dramatically increasing the performance of its existing SGI(R) Altix(R) 4700 servers at no extra system cost to customers."
SecuGen announces new Biometric Software
SecuGen Corporation has announced release 9 of its fingerprint recognition Software Developer Kit. "SecuGen's minutiae-based fingerprint recognition technology allows a person's fingerprints to work like unique digital codes that are more secure and convenient than passwords and that are not easily lost, stolen or forgotten. This newest release of the SecuGen SDK Collection provides software developers with the widest choice of operating system platforms for their biometric applications."
Wing IDE 2.1 released
Version 2.1 of Wing IDE, the Advanced Software Development Environment for Python, is out. "Wing IDE provides powerful debugging, editing, code intelligence, and search capabilities that reduce development and debugging time, cut down on coding errors, and make it easier to understand and navigate Python code."
New Books
Apress publishes The Definitive Guide to SQLite
Apress has published the book The Definitive Guide to SQLite by Mike Owens.Build Your Own AJAX Web Applications--SitePoint's latest release
SitePoint has published the book Build Your Own AJAX Web Applications by Matthew Eernisse.Pragmatic Bookshelf releases "From Java To Ruby"
Pragmatic Bookshelf has published the book From Java To Ruby by Bruce Tate.
Education and Certification
LPI to Offer MySQL 5.0 Certification Exams
The Linux Professional Institute has announced new MySQL exams. "Linux Professional Institute (LPI) the world's premier Linux certification organization, and MySQL AB, developer of the world's most popular Open Source database, today announced a joint initiative to offer MySQL 5.0 certification exams through LPI's global proctor network, beginning with the C3 Expo, June 27th 29th, 2006 at the Javits Center in New York City. Prosoft Learning Corporation, LPI's affiliate in North America will be offering these exams at C3 Expo along with LPI Certification exams."
LPI and Canonical Announce World's First Ubuntu Professionals
The Linux Professional Institute and Canonical Ltd. have "... jointly announced the world's first Ubuntu Certified Professionals: Fred Strauss and Khayeni Ndlovu of Johannesburg, South Africa. Mr. Strauss and Mr. Ndlovu were amongst a group of people who wrote paper versions of the Ubuntu certification exam at LinuxWorld Johannesburg on May 18, 2006. The Ubuntu Certified Professional exam is now available worldwide at over 7,000 Thomson Prometric and Pearson VUE testing centres."
Calls for Presentations
aKademy Deadline Approaching (KDE.News)
KDE.News has sent out a reminder for aKademy 2006 presentations. "The deadline for aKademy 2006 submissions is fast approaching. We are still looking for technical contributions, community success stories, tales of interoperability, industrial innovation and integration and cross-desktop creativity. The Call For Papers says that a 300 word abstract and a short bio is needed to secure your place for consideration by the programme committee." Submissions are due by June 30, 2006.
Upcoming Events
The 2006 Gelato ICE Itanium Conference and Expo
The 2006 Gelato ICE Itanium Conference and Expo has been announced. "Gelato ICE: Itanium Conference & Expo is the world's only event dedicated to Linux on the Intel Itanium architecture. This conference will address current high-performance computing issues and collaborative solutions specific to Linux on the Itanium processor, and will feature technical presentations, formal papers, poster sessions, and the exchange of information in formal and informal settings." The event will take place at the Matrix, Biopolis, Singapore on October 1-4, 2006.
KDE Libs Hackers to Meet for KDE Four Core (KDE.News)
KDE.News mentions the upcoming KDE Four Core meeting. "In another event in the series of meetings leading to the KDE 4.0 release, the developers of the core libraries will meet in the Norwegian woods (this bird has flown) from July 1st to July 7th. This meeting, co-sponsored by Trolltech and SUSE, is labelled KDE Four Core, as it is intended to be the direct successor of the KDE Three Beta and KDE Three meetings, that led to the refining of KDE releases 2.0 and 3.0 respectively. But, unlike those, this meeting is only one in a series of "KDE Four" meetings, that started with KDE Four Multimedia."
Ohio LinuxFest 2006 schedule announced
The Ohio LinuxFest 2006 event will take place in Columbus, Ohio on September 30, 2006. "The LinuxFest will be held at the Greater Columbus Convention Center, and is a single-day event with sessions for experienced and inexperienced Linux users, as well as an expo floor for commercial exhibitors and non-profit Free and Open Source Software (FOSS) projects. More than 700 people attended the LinuxFest last year, and organizers expect an even larger turnout this year."
Plone Conference 2006 announced
The Plone Conference 2006 event has been announced. "Plone Conference 2006 will be held October 25-27, 2006 at the Seattle Center Northwest Rooms in Seattle, Washington USA!"
SciPy 2006 Tutorials
The tutorial sessions for the 2006 SciPy conference have been announced. "As part of this year's SciPy 2006 Conference, we've planned Coding Sprints on Monday and Tuesday (August 14-15) and a Tutorial Day Wednesday (August 16)--the normal conference presentations follow on Thursday and Friday (August 17-18)."
Events: June 29 - August 24, 2006
Date | Event | Location |
---|---|---|
June 29, 2006 | Corporate Channel and Computing Expo(C3) | (Jacob K. Javits Convention Center)New York, NY |
June 29 - 30, 2006 | GCC and GNU Toolchain Developers' Summit | (Ottawa Congress Centre)Ottawa, Canada |
June 29 - 30, 2006 | 2006 GNOME Users and Developers European Conference(GUADEC) | Catalonia, Spain |
June 29 - July 2, 2006 | UKUUG Linux Technical Conference | (University of Sussex)Brighton, UK |
June 30 - July 1, 2006 | WebTech 2006 | (Kempinski Hotel Zografski)Sofia, Bulgaria |
July 3 - 4, 2006 | 3rd European Lisp Workshop | Nantes, France |
July 3 - 5, 2006 | EuroPython 2006 | (CERN)Geneva, Switzerland |
July 4 - 8, 2006 | 7th Libre Software Meeting(LSM) | (Nancy 1 University)Vandoeuvre-les-Nancy, France |
July 5 - 8, 2006 | V Jornades de Programari Lliure | Barcelona, Spain |
July 8 - 9, 2006 | PostgreSQL Anniversary Summit | Toronto, Canada |
July 10 - 11, 2006 | Global db4o User Conference(dUC) | (Imperial College, South Kensington)London, UK |
July 13 - 14, 2006 | Detection of Intrusions and Malware, and Vulnerability Assessment(DIMVA) | Berlin, Germany |
July 15 - 16, 2006 | Crystal Space Conference | (University of Aachen)Aachen, Germany |
July 16 - 19, 2006 | 2nd International Symposium on Free/Open Source Software, Technologies and Content(FOSSTEC 2006) | Orlando, Florida, USA |
July 19 - 22, 2006 | Ottawa Linux Symposium 2006(OLS 2006) | Ottawa, Canada |
July 22 - 23, 2006 | LugRadio Live | (Wolverhampton University)Wolverhampton, UK |
July 24 - 28, 2006 | O'Reilly Open Source Convention(OSCON 2006) | Portland, Oregon |
July 29 - August 3, 2006 | Black Hat USA 2006 Briefings and Training | (Caesars Palace)Las Vegas, NV |
August 4 - 6, 2006 | DEF CON 14 | (Riviera Hotel)Las Vegas, NV |
August 4 - 6, 2006 | Wikimania | (Harvard Law School)Cambridge, MA |
August 4 - 6, 2006 | Vancouver Python Workshop | Vancouver, BC, Canada |
August 8 - 10, 2006 | Flash Memory Summit | (Wyndham Hotel)San Jose, CA |
August 14 - 17, 2006 | LinuxWorld San Francisco 2006 | (Moscone Center)San Francisco, CA |
August 17 - 18, 2006 | Python for Scientific Computing(SciPy2006) | (Caltech)Pasadena, CA |
August 18 - 19, 2006 | The Ubucon Conference | (Google headquarters)Mountain View, CA |
Web sites
Microsoft Launches CodePlex, a New Collaborative Development Portal
Here's a website that free software hackers might want to avoid. Microsoft Corp. has announced CodePlex, an online collaborative software development portal that is also a vehicle for sharing source code.
Audio and Video programs
The Linux Action Show - Episode 2
Episode #2 of the podcast The Linux Action Show is available. "In episode two (The Gaming Edition!) of The Linux Action Show! We cover a new non-profit organization being formed to establish a standard Linux-based mobile platform, and we discuss the interesting reasons the Christian Science Monitor has for switching to Open Source Software. Also, we do a in-depth comparison of a few Open Source First Person Shooters (We get our game on under Linux!), the Ethereal developer changes the project name with out discussing it with contributors, and we bounce around Google Earth for Linux."
UbuntuOS Podcast with KDE Developer (KDE.News)
KDE.News mentions a new podcast with Jonathan Riddell. "UbuntuOS have launched their new extended Podcast with an interview of Kubuntu developer Jonathan Riddell discussing the plans for the next release, Kubuntu Edgy."
Page editor: Forrest Cook
Letters to the editor
Some Suggestions on LWN Letters and Subscribers
From: | Alan Hicks <alan-AT-lizella.net> | |
To: | editor-AT-lwn.net | |
Subject: | Some Suggestions on LWN Letters and Subscribers | |
Date: | Wed, 21 Jun 2006 20:42:59 -0400 |
I wanted to weigh in on the "Letters to the Editor" page and maybe beat a dead horse or two. :^) As some one who has written in and been published on this page before, I would be mildly upset to see it removed. That page need not always be present, but when it is, I find it almost always has incredible content. I think it's unrealistic to assume that comments can take the place of a well formed e-mail created for publication. People tend to put more thought and time into such things. Also, you will find that some people may not be subscribers or regular readers and write in. For example, suppose LWN writes an article about certain actions in the community and ruffles some feathers (whether that ruffling is warranted is immaterial). The letters page gives those people a very prominent way to respond to both yourself, and the readership as a whole. Really, is there a need to remove it if every weekly edition does not contain a Letters page? As for subscribership, I had hoped that the send-a-link thing might help out, and a little feedback on this front would be helpful. I've forwarded a few links to small private mailing lists and my circle of geek friends for particularly interesting articles, but I don't think it's been successful in convincing even one person to subscribe. Something else obviously needs to be done to encourage subscribers. Some time ago when this discussion came up I suggested a general LWN mailing list for project developer subscribers. I still think that's worth looking into as a way to encourage $5 a month subscribers to up the ante to the full $10, and would be relatively easy enough to deploy in a test case. In the interest of full discloser to your readers, I am a $10 a month subscriber and have been for years. I was originally going to post this as a comment, but decided to make it a Letter to the Editor instead. :^) -- It is better to hear the rebuke of the wise, Than for a man to hear the song of fools. Ecclesiastes 7:5
Page editor: Forrest Cook