User: Password:
Subscribe / Log in / New account Weekly Edition for July 27, 2006

The 2006 Ottawa Linux Symposium

Your editor has, once again, had the opportunity to add to his collection of Ottawa Linux Symposium T-shirts. OLS2006 was a fun and interesting event, a testament to the increasing professionalism of its organizers, speakers, and attendees. And also, of course, to the energy and vitality which drives the Linux community.

Interesting things can be seen by looking at the the people who attend an event like this one. Not that long ago, the preferred attire was a shirt from a Linux event - the older, the better. While those shirts are still very much in evidence, shirts of the button-down variety are on the rise. Fortunately, there are still very few neckties to be seen (James Bottomley - next year's OLS keynote speaker - being the exception that proves the rule in this regard). There were also quite a few attendees who had clearly made the trip from Asia.

LinuxWorld may be the place to go to see what companies are doing, but OLS has clearly established itself as the event to attend to learn about what the development community - and the kernel development community in particular - is up to.

This year's schedule reveals some things about what the community is interested in. Virtualization remains a hot topic, but the emphasis has changed: Xen, the king of paravirtualization, was well represented, but was far from the whole story. Ian Pratt's Xen talk was held in one of the smaller rooms this year. The hotter topic appeared to be containers - lightweight virtualization which runs under the same kernel as the host. There is a lot of development activity around containers at the moment, and many of the people involved were at OLS to talk about it.

Last year's schedule featured exactly one filesystem talk - an update on ext3. This year, a quick scan shows no less than nine filesystem talks, plus a few on related topics (shared subtrees, for example). Expect to see some interesting development work in the filesystems area in the coming years.

[Greg KH] This year's keynote speaker was Greg Kroah-Hartman. Greg has posted the text of his talk along with the slides; it is such a clear representation of what was said that your editor sees no point in writing up a separate summary. The talk covered topics like hardware support (Linux is now second to none, says Greg), the illegal and unethical nature of closed source kernel modules, various aspects of the kernel development process, and more. The talk is very much worth a read.

For those who have not seen the article by Arjan van de Ven mentioned in Greg's talk: Arjan's doomsday scenario is also worth reading.

For the curious, the slides from LWN editor Jonathan Corbet's talk are available.

OLS has always been a kernel-oriented event, and the 2006 version was perhaps the most kernel-heavy yet. A look at the schedule shows almost no non-kernel talks - and most of the exceptions were concerned with the git and mercurial source control systems. The Desktop Developers' Conference was held immediately before OLS (at the same time as the Kernel Summit), but speakers from that conference did not speak at OLS. Their presence was very much felt, however, and there were some good conversations held between developers responsible for various levels of the full Linux system. Next year, however, it would be nice to hear more from the desktop people at OLS.

The fact that such a small complaint is the first that comes to mind speaks loudly. OLS remains a top-notch technical conference with interesting speakers, good organization (even the traditionally late final keynote almost started on time this year), great conversations, and a murderous closing party. The annual Ottawa pilgrimage remains an important event for many in the development community.

Comments (3 posted)

OLS: On how user space sucks

Dave Jones's OLS talk, titled "Why user space sucks," was certain to be popular at a setting like this. So many of the people in the standing room only crowd might well have wondered why this talk was not scheduled into the larger room. Perhaps the powers that be feared that a non-kernel talk would not have a large audience - even when it is given by a well-known kernel hacker.

Dave set out to reduce the time it took his Fedora system to boot. In an attempt to figure out what was taking so long, he instrumented the kernel to log certain basic file operations. As it turned out, the boot process involved calling stat() 79,000 times, opening 27,000 files, and running 1382 programs. That struck him as being just a little excessive; getting a system running shouldn't require that much work. So he looked further. Here are a few of the things he found:

  • HAL was responsible for opening almost 2000 files. It will read various XML files, then happily reopen and reread them multiple times. The bulk of these files describe hardware which has never been anywhere near the system in question. Clearly, this is an application which could be a little smarter about how it does things.

  • Similar issues were found with cups, which feels the need to open the PPD files for every known printer. The result: 2500 stat() calls and 400 opens. On a system with no attached printer.

  •, says Dave, is "awesome." It attempts to figure out where a graphics adapter might be connected by attempting to open almost any possible PCI device, including many which are clearly not present on the system. X also is guilty of reopening library files many times.

  • Gamin, which was written to get poll() loops out of applications, spends its time sitting in a high-frequency poll() loop. Evidently the real offender is in a lower-level library, but it is the gamin executable which suffers. As Dave points out, it can occasionally be worthwhile to run a utility like strace on a program, even if there are no apparent bugs. One might be surprised by the resulting output.

  • Nautilus polls files related to the desktop menus every few seconds, rather than using the inotify API which was added for just this purpose.

  • Font files are a problem in many applications - several applications open them by the hundred. Some of those applications never present any text on the screen.

  • There were also various issues with excessive timer use. The kernel blinks the virtual console cursor, even if X is running and nobody will ever see it. X is a big offender, apparently because the gettimeofday() call is still too slow and maintaining time stamps with interval timers is faster.

There were more examples, and members of the audience had several more of their own. It was all great fun; Dave says he takes joy in collecting train wrecks.

The point of the session was not (just) to bash on particular applications, however. The real issue is that our systems are slower than they need to be because they are doing vast amounts of pointless work. This situation comes about in a number of ways; as applications become more complex and rely on more levels of libraries, it can be hard for a programmer to know just what is really going on. And, as has been understood for many years, programmers are very bad at guessing where the hot spots will be in their creations. That is why profiling tools so often yield surprising results.

Programs (and kernels) which do stupid things will always be with us. We cannot fix them, however, if we do not go in and actually look for the problems. Too many programmers, it seems, check in their changes once they appear to work and do not take the time to watch how their programs work. A bit more time spent watching our applications in operation might lead to faster, less resource-hungry systems for all of us.

Comments (74 posted)

OLS: GCC: present and future

The GNU Compiler Collection (GCC) is a fundamental part of our free operating system. Licenses may make the software free, but it's GCC which lets us turn that software into something our computers can run. GCC's strengths and weaknesses will, thus, influence the quality of a Linux system in a big way. GCC is, however, an opaque tool for many Linux users - and for many developers as well. It is a black box, full of compiler magic, which, one hopes, just works. For those interested in looking a little more deeply into GCC, however, Diego Novillo's OLS talk was a welcome introduction.

According to Diego, GCC has been at a bit of a turning point over the last couple of years. On one hand, the software is popular and ubiquitous. On the other, it is a pile of 2.2 million lines of code, initially developed by "people who didn't know about compilers" (that comment clearly intended as a joke), and showing all of its 15 years of age. The code is difficult to maintain, and even harder to push forward. Compiler technology has moved forward in many ways, and GCC is sometimes having a hard time keeping up.

The architecture of GCC has often required developers to make changes throughout the pipeline. But the complexity of the code is such that nobody is really able to understand the entire pipeline. There are simply too many different tasks being performed. Recent architectural improvements are changing that situation, however, providing better isolation between the various pipeline stages.

GCC has a steering committee for dealing with "political stuff." There is, at any given time, one release manager whose job is to get the next release together; it is, says Diego, a thankless job. Then, there is a whole set of maintainers who are empowered to make changes all over the tree. The project is trying to get away from having maintainers with global commit privileges, however. Since building a good mental model of the entire compiler is essentially impossible, it is better to keep maintainers within their areas of expertise.

The (idealized) development model works in three stages. The first two months are for major changes and the addition of major new features. Then, over the next two months, things tighten down and focus on stabilization and the occasional addition of small features. Finally, in the last two months, only bug fixes are allowed. This is, Diego says, "where everybody disappears" and the release manager is force to chase down developers and nag them into fixing bugs. Much of the work in this stage is driven by companies with an interest in the release.

In the end, this ideal six-month schedule tends to not work out quite so well in reality. But, says Diego, the project is able to get "one good release" out every year.

GCC development works out of a central subversion repository with many development branches. Anybody wishing to contribute to GCC must assign copyrights to the Free Software Foundation.

The compiler pipeline looks something like this:

  1. Language-specific front ends are charged with parsing the input source and turning it into an internal language called "Generic." The Generic language is able to represent programs written in any language supported by GCC.

  2. A two-stage process turns Generic into another language called Gimple. As part of this process, the program is simplified in a number of ways. All statements are rewritten to get to a point where there are no side effects; each statement performs, at most, one assignment. Quite a few temporary variables are introduced to bring this change about. Eventually, by the time the compiler has transformed the program into "low Gimple," all control structures have been reduced to if tests and gotos.

  3. At this point, the various SSA ("single static assignment") optimizers kick in. There are, according to Diego, about 100 passes made over the program at this point. The flow of data through the program is analyzed and used to perform loop optimizations, some vectorization tasks, constant propagation, etc. Much more information on SSA can be found in this LWN article from 2004.

  4. After all this work is done, the result is a form of the program expressed in "register transfer language" or RTL. RTL was originally the only internal language used by GCC; over time, the code which uses RTL is shrinking, while the work done at the SSA level is growing. The RTL representation is used to do things like instruction pipelining, common subexpression elimination, and no end of machine-specific tasks.

  5. The final output from gcc is an assembly language program, which can then be fed to the assembler.

The effect of recasting GCC into the above form is a compiler which is more modular and easier to work with.

Future plans were touched on briefly. There is currently a great deal of interest in static analysis tools. The GCC folks would like to support that work, but they do not want to weigh down the compiler with a large pile of static analysis tools. So they will likely implement a set of hooks which allow third party tools to get the information they need from the compiler. Inevitably, it was asked what sort of license those tools would need to have to be able to use the GCC hooks; evidently no answer to that question exists yet, however.

Another area of interest is link-time optimization and the ability to deal with multiple program units as a whole. There is also work happening on dynamic compilation - compiling to byte codes which are then interpreted by a just-in-time compiler at run time. Much more information on current GCC development can be found on the GCC wiki.

This session was highly informative. Unfortunately, its positioning on the schedule (in the first Saturday morning slot, when many of those who participated in the previous evening's whiskey tasting event were notably absent) may have reduced attendance somewhat. This was, however, a talk worth getting up for.

Comments (6 posted)

Page editor: Jonathan Corbet


ScatterChat for encrypted instant messaging

July 26, 2006

This article was contributed by Jake Edge.

Usage of instant messaging (IM) is growing rapidly to facilitate real-time communication across the internet. Unfortunately, it provides the illusion of privacy which can fool users into chatting about subjects that they would not normally discuss in public. A new tool, ScatterChat has recently been released that provides a cross-platform solution for encryption over the public IM networks. Using it provides actual privacy for IM conversations without much additional burden for the user.

ScatterChat is a 'friendly fork' of the Gaim IM client that adds encrypted chat, key management, and encrypted file transfer for many of the IM protocols supported by Gaim. In addition, ScatterChat optionally interfaces to Tor to provide traffic analysis resistance for additional privacy. It is available in source form for Linux and MacOS as well as Windows binaries.

In order to use ScatterChat, a user first generates a public/private key pair that gets associated with a particular IM screen name. Once that is complete, the program logs the user into the IM network and provides the same basic interface as Gaim. A user can then choose a buddy to chat with and ScatterChat provides an extra button in the chat window to request encryption. If necessary, a key exchange is done between the user and their buddy, but one can always refuse encryption and the key exchange protocol will be silently ignored. This ability allows users to control who knows that they are using ScatterChat; if they refuse the key exchange, it will look no different than someone who is using a standard IM client.

Once an encrypted session has been established (verified by the now familiar padlock icon), it works just like an unencrypted session. Users can type back and forth to each other but any intermediary will not be able to decrypt the traffic without compromising the keys. Even if the conversation is recorded, it cannot be decrypted without compromising the private keys at both ends of the conversation, providing 'perfect forward security'. Of course, one must be careful that the other end is not logging the conversation as that would store an unencrypted version of the conversation on the hard drive of the logger.

ScatterChat seems to have a well thought out architecture and philosophy. Users are not allowed to choose encryption methods, key lengths or any of the other technical parameters that often accompany encryption tools. The choices made by the ScatterChat developers are very strong (2048-bit El Gamal public/private key with 256-bit AES symmetric encryption) and removing those kinds of choices makes it a much simpler solution to deploy for non-technical users. The developers also have chosen to use existing encryption code (libgcrypt) rather than creating yet another encryption library that needs to be audited.

ScatterChat is targeted for human rights activists and dissidents who may be communicating through internet servers that are or can be subverted by oppressive governments. It may also be useful for those living in supposedly free countries whose governments have recently determined that spying on its citizens leads to better national security. A great deal of communication of a sensitive nature is done via IM these days and companies may wish to use this tool to secure chats between their employees to protect trade secrets and the like. Many IM users will not have any need for the capabilities provided by ScatterChat, as the NSA is probably uninterested in teenage dating gossip and the like, but for those who do, ScatterChat is an essential tool.

Comments (9 posted)

New vulnerabilities

fbi: incorrect filtering

Package(s):fbi CVE #(s):CVE-2006-3119
Created:July 24, 2006 Updated:August 24, 2006
Description: Toth Andras discovered that the fbgs framebuffer postscript/PDF viewer contains a typo, which prevents the intended filter against malicious postscript commands from working correctly. This might lead to the deletion of user data when displaying a postscript file.
Gentoo 200608-22 fbida 2006-08-23
Debian DSA-1124-1 fbi 2006-07-24

Comments (none posted)

hiki: denial of service

Package(s):hiki CVE #(s):CVE-2006-3379
Created:July 24, 2006 Updated:July 26, 2006
Description: Akira Tanaka discovered a vulnerability in Hiki Wiki, a Wiki engine written in Ruby that allows remote attackers to cause a denial of service via high CPU consumption using by performing a diff between large and specially crafted Wiki pages.
Debian DSA-1119-1 hiki 2006-07-22

Comments (none posted)

kdelibs: denial of service

Package(s):kdelibs CVE #(s):CVE-2006-3672
Created:July 21, 2006 Updated:July 26, 2006
Description: KDE Konqueror 3.5.1 and earlier allows remote attackers to cause a denial of service (application crash) by calling the replaceChild method on a DOM object, which triggers a null dereference, as demonstrated by calling document.replaceChild with a 0 (zero) argument.
Ubuntu USN-322-1 kdelibs 2006-07-24
Mandriva MDKSA-2006:130 kdelibs 2006-07-20

Comments (none posted)

libdumb: arbitrary code execution

Package(s):libdumb CVE #(s):CVE-2006-3668
Created:July 24, 2006 Updated:August 9, 2006
Description: Luigi Auriemma discovered that DUMB, a tracker music library, performs insufficient sanitizing of values parsed from IT music files, which might lead to a buffer overflow and execution of arbitrary code if manipulated files are read.
Gentoo 200608-14 dumb 2006-08-08
Fedora FEDORA-EXTRAS-2006-003 dumb 2006-08-02
Debian DSA-1123-1 libdumb 2006-07-24

Comments (none posted)

mysql: format string bug

Package(s):mysql CVE #(s):CVE-2006-3469
Created:July 21, 2006 Updated:July 30, 2008
Description: Jean-David Maillefer discovered a format string bug in the date_format() function's error reporting. By calling the function with invalid arguments, an authenticated user could exploit this to crash the server.
Red Hat RHSA-2008:0768-01 mysql 2008-07-24
Slackware SSA:2006-211-01 mysql 2006-07-31
Ubuntu USN-321-1 mysql-dfsg-4.1 2006-07-21

Comments (none posted)

Net::Server: format string vulnerability

Package(s): libnet-server-perl per-net-server CVE #(s):CVE-2005-1127
Created:July 24, 2006 Updated:August 11, 2006
Description: Peter Bieringer discovered that the Perl Net::Server, is vulnerable to a format string attack which may be exploitable by remote attackers. Among others, the "postgrey" utility is affected by this vulnerability.
Gentoo 200608-18 net-server 2006-08-10
Mandriva MDKSA-2006:131 perl-Net-Server 2006-07-25
Debian DSA-1122-1 libnet-server-perl 2005-07-24
Debian DSA-1121-1 postgrey 2006-07-24

Comments (none posted)

ruby: multiple vulnerabilities

Package(s):ruby CVE #(s):CVE-2006-3694
Created:July 24, 2006 Updated:August 28, 2006
Description: Multiple unspecified vulnerabilities in Ruby before 1.8.5 allow remote attackers to bypass "safe level" checks via unspecified vectors involving the alias function and "directory operations".
Debian DSA-1157-1 ruby1.8 2006-08-27
Debian DSA-1139-1 ruby1.6 2006-08-03
Mandriva MDKSA-2006:134 ruby 2006-07-28
OpenPKG OpenPKG-SA-2006.016 ruby 2006-07-28
Red Hat RHSA-2006:0604-01 ruby 2006-07-27
Ubuntu USN-325-1 ruby1.8 2006-07-27
Fedora FEDORA-2006-849 ruby 2006-07-22
Fedora FEDORA-2006-842 ruby 2006-07-22

Comments (none posted)

shiela:arbitrary code execution

Package(s):shiela CVE #(s):CVE-2006-3633
Created:July 25, 2006 Updated:July 26, 2006
Description: Brian Caswell discovered vulnerabilities in OSSP Shiela, a CVS repository access control and logging extension. The vulnerabilities allow arbitrary code execution during CVS file commits if a filename is specially crafted to contain shell commands.
OpenPKG OpenPKG-SA-2006.014 shiela 2006-07-25

Comments (none posted)

Page editor: Jonathan Corbet

Kernel development

Brief items

Kernel release status

The current stable 2.6 kernel is, released on July 24. This one adds a relatively long list of fixes for problems with networking, sound, and several other areas.

The current 2.6 prepatch remains 2.6.18-rc2. Fixes continue to accumulate in the mainline git repository, and the -rc3 release can be expected sometime soon.

There have been no -mm releases since 2.6.18-rc1-mm2 on July 14.

Comments (none posted)

Kernel development news

Quote of the week

Linux has a problem, which is that with success it is attracting people with more skill than what it started with, and it is not doing a very good job of handling that. In fact, it downright stinks at it, behaving in the worst way it could choose for handling that. We have lost quite a number of FS developers who just don't want to deal with people who know less than they do but are obnoxious and disrespectful to submissions because they enjoy powertripping.

-- Hans Reiser

Comments (25 posted)

Reconsidering network channels

When Van Jacobson presented his network channels idea at last January, he set a bit of a fire in the Linux networking community. By making some significant changes to the processing path for incoming packets, and by pushing most of the work as close as possible to the destination application, Van was able to achieve significant performance improvements - eliminating as much as 80% of the processing overhead on multiprocessor systems. With numbers like that, it seemed like the question of whether Linux would incorporate channels need not even be asked.

Since then, however, reality has begun to make itself felt - something which reality is wont to do, sooner or later. Which is why David Miller's latest pronouncement on network channels reads like this:

Don't get too excited about VJ netchannels, more and more roadblocks to their practicality are being found every day.... All the original costs of route, netfilter, TCP socket lookup all reappear as we make VJ netchannels fit all the rules of real practical systems, eliminating their gains entirely.

The issue at hand had to do with the integration of channels and netfilter. The hope had been that packets could be identified and sorted into their respective channels before the netfilter (firewall) processing was done. Then said processing could be performed close to the application, on the same processor. It turns out, however, that netfilter can change the real destination of the packet. So packets must be filtered before entering a channel, and much of the performance benefit of using a channel is lost.

Alexey Kuznetsov has posted a detailed criticism of channels, asserting that most of the claimed benefits are illusory. Says Alexey:

It is an amazing toy. But I see nothing, which could promote its status to practical. Exokernels used to do this thing for ages, and all the performance gains are compensated by overcomplicated classification engine, which has to remain in kernel and essentially to do the same work which routing/firewalling/socket hash tables do.

Finally, it seems that many of the benefits of channels can be had by carefully taking advantage of the capabilities of modern hardware. In particular, an increasing number of devices can perform simple packet classification and (via targeted interrupts) direct packets to the CPU where the destination application is running. That technique will get rid of the cache misses caused by performing interrupt processing on one processor and protocol processing on another.

In the end, it appears that yet another seemingly bright scheme may not make the transition into real-world deployments. Some of its core concepts, such as using cache-friendly data structures and trying (even harder) to improve cache locality, will likely influence the future direction of the network stack, however. So, while there may not be a revolutionary new mechanism in the network stack's future, some of the promised performance improvements should eventually be realized anyway. And, as David says, "At least, there is less code to write."

Comments (5 posted)

revoke() and frevoke()

A system call found in some Unix variants is revoke():

    int revoke(const char *path);

This call exists to disconnect processes from files; when called with a given path, it will shut down all open file descriptors which refer to the file found at the end of that path. Its initial purpose was to defeat people writing programs that would sit on a serial port and pretend to be login. As soon as revoke() was called with the device file corresponding to the serial port, any login spoofer would find itself disconnected from the port and unable to fool anybody. Other potential uses exist as well; consider, for example, disconnecting a process from a file which is preventing the unmounting of a filesystem.

Linux has never had this system call, but this situation could change before too long; Pekka Enberg has posted an implementation of revoke() for review. Pekka has also added a second version:

    int frevoke(int fd);

This version, of course, takes an open file descriptor as its argument. In either case, the calling process must either own the file, or it must be able to override file permissions. So revoke() gives a process the ability to yank an open file out from underneath processes owned by other users, as long as that process owns the file in question.

Getting this operation right can be a little tricky, with the result that the current implementation makes some compromises which may not sit well with other developers. The process, simplified, is this:

  • The code loops through every process on the system; for each process, it iterates through the open file table looking for file descriptors corresponding to the file being revoked. Every time it finds one, it zeroes out the file descriptor entry (making that descriptor unavailable to its erstwhile owner). The file is not actually closed, however; instead, a list of files to be closed is created for later action.

    All of this will be rather slow, but that should not be a huge problem: revoke() is not a performance-critical operation. The memory allocation (to add an entry to the list of files to close) is a bit more problematic; if it fails, revoke() will abort partway through, having done an unknown amount of damage without having accomplished its goal.

  • Once all open file descriptors have been shut down, the files themselves can be closed. So revoke() steps through the list it created, closing each open file.

  • There is one sticky little problem remaining: some processes may have used mmap() to map the file into their address spaces. The revoke() call clearly has to do something about those memory areas, or it will not have completed the job. So a pass through all of the virtual memory areas associated with the file is required; for each one, the nopage() method is set to a special version which returns an error status.

    That change will keep a process from faulting in new pages from the revoked file, but does nothing about the pages which are already part of the process's address space. To fix those, it is necessary to wander through the page tables of each process having mapped the file, clearing out any page table entries referring to pages from that file.

An alternative approach can be seen in the forced unmount patch by Tigran Aivazian, which has been touched by a number of other developers over its fairly long history (its comments include a credit for the port to the 2.6 kernel). This patch has a different final goal - being able to unmount a filesystem regardless of any current activity - but it must solve the same problem of revoking access to all files on the target filesystem. Rather than clearing out file descriptors, this patch replaces the underlying file structure with a new one from the "badfs" filesystem. After this change, any attempted operations on the file will return EIO. Memory mappings are cleared with a direct call to munmap().

The final form of the patch may well be a combination of the two, providing both forced unmount and revoke() functionality. In the process, some of the remaining issues (such as how to perform safe locking without slowing down the highly-optimized read() and write() paths) will need to be worked out. But there is clearly demand for these features, so this work will probably proceed to eventual inclusion in the mainline.

Comments (4 posted)

OLS: A proposal for a new networking API

Ulrich Drepper has been the maintainer of the core glibc library since 1995; he also represents the community to the POSIX standardization effort. So, when Ulrich proposes a new user-space API, more than the usual number of people are likely to listen. Ulrich has been putting his mind to the problems of high-performance network I/O; the results were presented at his Ottawa Linux Symposium talk.

The current POSIX APIs are, increasingly, not up to the task. The socket abstraction has served us for a long time, but it is a synchronous interface which is not well suited to zero-copy I/O. POSIX does provide an asynchronous I/O interface, but it was never intended for use with networking, and does not provide the requisite functionality. So it has been clear for a while that something better is needed; the developers working on network channels have also been talking about the need for a new networking API.

There are three components to a new networking API, all of which will lead to a more complex - but much more efficient - interface for high-performance situations. The first of those is to address the need for zero-copy I/O. As the data bandwidth through the system increases, the cost of copying data (in CPU utilization and cache pressure) increase. Much of this cost can be avoided by transferring data directly between the network interface and buffers in user space. Direct user-space I/O requires cooperation from both the kernel and the application, however.

Ulrich proposes the creation of an interface for the explicit management of user-space DMA areas. Such an area would be created with a call that looks something like:

    int dma_alloc(dma_mem_t *handle, size_t size, int flags);

If all goes well, the result would be a memory area of the given size, suitable for DMA purposes. Note that user space gets an opaque handle type in return - there is, at this point, no virtual address which is directly accessible to the application.

To use a DMA area for network I/O, the application must associate it with a socket. The call for this operation would look like:

    int dma_assoc(int socket, dma_mem_t handle, size_t size, int flags);

There is still the issue of actually managing memory within this DMA area. An application which is generating data to send over the net would request a buffer from the kernel with a call like:

    int sio_reserve(dma_mem_t handle, void **buffer, size_t size);

If all goes well, the result will be a pointer (stored in *buffer) to an area where the outgoing data can be constructed. For incoming data, the application will receive a pointer to the buffer from the kernel (just how is something we'll get to shortly); the application will own the given buffer until it returns it to the kernel with:

    int sio_release(dma_mem_t handle, size_t size);

Before an application can start to use asynchronous network I/O, however, it must have a way to learn about the results of its operations. To that end, Ulrich proposes the addition of an event reporting API to the kernel. This mechanism, which he calls "event channels," would have an interface like:

    ec_t ec_create(int flags); /* Create a channel */
    ec_next_event();           /* Get the next event */
    ec_to_fd();                /* Send events to a file descriptor */
    ec_delay();                /* Wait for an event directly */

The exact form of this interface (like all of those discussed here) is subject to change. But the core idea is that it is a quick way for the kernel to return notifications of events (such as I/O completions) to user space. Most applications would be likely to use the file descriptor interface, which would allow events to enter an application's main loop via poll() or epoll_wait().

The final step is to make some extensions to the existing POSIX asynchronous I/O interface. The aiocb structure would be extended to include an event channel descriptor; that channel would be used to report the results of asynchronous operations back to user space. Then, an application could initiate data transmission with a call like:

    int aio_send(int socket, void *buffer, size_t size, int flags);

(One presumes there would be an aiocb argument as well, but Ulrich's slides did not show one). This call would start the process of transmitting data from the given buffer, with completion likely happening sometime after the call returns. For data reception, the call would look like:

    int aio_recv(int socket, void **buffer, size_t size, int flags);

The relevant point here being that buffer is a double pointer; the kernel would pick the actual destination for the data and tell the calling application where to look.

The result of all these changes would be a complete programming interface for high-performance, asynchronous network I/O. As an added bonus, the use of an event channel interface would simplify the work of porting applications from other operating systems.

All of these interfaces, says Ulrich, are simply a proposal and subject to massive change. The core purpose is to allow applications to get their work done while giving the kernel the greatest possible latitude to optimize the data transfers. This proposal is not the only one out there; Evgeniy Polyakov's kevent proposal is similar in many ways, though it does not have the explicit management of DMA areas. It may be some time before something is actually adopted - a new API will stay around for many years and should not be added in haste - but the discussion is getting started in earnest.

Comments (28 posted)

Patches and updates

Kernel trees

Core kernel code

Development tools

Device drivers


Filesystems and block I/O





Page editor: Jonathan Corbet


News and Editorials

Linux From Scratch and Beyond

The Linux From Scratch Project has been around for quite a while. So most readers are already aware that this project teaches people about how Linux works and how it can help you build a customized system. But if you haven't looked at it lately, you may not be aware of all that it has to offer these days.

Linux From Scratch (LFS) provides a book of instructions for building a system. The stable version of this book is currently at version 6.1.1 and it covers everything you need to know about building a minimal Linux system, from creating a new partition for your system to making your system bootable. The development version of the book is available through Subversion and the second pre-release has been announced.

Once you have a system, you can use Beyond Linux From Scratch (BLFS) to help you flesh it out. This book covers things like adding software and setting up networking, with a look at servers and several chapters on desktop software.

Suppose that you've built your system before. You know what you want and how to go about it. Then you're ready for Automated Linux From Scratch, (ALFS) a project that creates the generic framework for an extendable system builder and package installer. The current implementation of ALFS is nALFS, a C program that parses an XML profile that contains information concerning the LFS build process into a series of internal commands. It can then execute these at your discretion, automating the compilation of LFS. Recently a new implementation of ALFS called jhalfs has announced its 1.0 release.

Cross Linux From Scratch (CLFS) teaches you how to make a cross-compiler and the necessary tools, to build a basic system on a different architecture. For example you would be able to build a Sparc toolchain on an x86 machine, and utilize that toolchain to build a Linux system from source code. Currently supported architectures include x86, x86_64, sparc, mips, powerpc and alpha.

For the security conscious Hardened Linux From Scratch (HLFS) is a project that provides you with step-by-step instructions for building your own customized and hardened Linux system entirely from source.

Of course there's the Linux From Scratch LiveCD project. The LFS Live CD is geared toward providing a reliable host system for building your LFS system and doubles as a rescue system.

All these projects are represented in the wiki pages as well as from the main LFS site. So if the available Linux distributions aren't providing quite what you want, or you just want to know more about Linux internals, LSF could be just what you are looking for.

Comments (6 posted)

New Releases

Ubuntu "edgy eft" Knot 1 released

During the development cycle of Ubuntu 6.10 (aka Edgy Eft) there will be several milestone CD images released for Ubuntu, Kubuntu, Xubuntu and Edubuntu. The first of these is Knot-1, available now in all flavors.

Full Story (comments: none)

Pie Box Enterprise Linux 3 Update 8 now available

Pie Box Enterprise Linux 3 now has an eighth update available. This update includes new and enhanced kernel features, driver additions, security updates and much more. "Pie Box Enterprise Linux 3 is aimed at people who need a stable OS with a long lifespan but don't want an expensive bundled support contract. It is derived from open source software with only four packages modified in order to replace trademarks and logos with our own. Features of Pie Box Enterprise Linux 3 include the Linux 2.4 kernel, GNOME, Apache 2, Samba 3 and Logical Volume Manager."

Full Story (comments: none)

Musix 0.50 released

The Musix project has released Musix 0.50. "Musix 0.50 can be consider the more stable and functional Musix version until now, also, 0.50 can update old Musix versions, as instance Musix 0.40 could be updated without re-install all the system."

Full Story (comments: none)

Distribution News

Upcoming Release of Debian GNU/Linux 4.0

The Debian project plans to release Debian GNU/Linux 4.0 (alias 'etch') in December of 2006. "This will be the first official release to include the AMD64 architecture. The distribution will be released synchronously for 11 architectures in total."

Full Story (comments: none)

Fedora Legacy end-of-life announcements

The Fedora Legacy project has sent out some end-of-life announcements. For users of Fedora Core 1 and 2, the deadline is close: support will be withdrawn as of July 26. Those using Red Hat Linux 7.3 and 9.0 (and such people do exist) have a little longer: bugs in those distributions will be fixed through the end of this year.

Full Story (comments: 16)

Fedora Project Board Update

The meeting summary for the July 18, 2006 meeting of the Fedora Board is available. Topics discussed include RPM, which needs continued followup and discussion with the community, Fedora Bugs (, Fedora Core, the package set, and the schedule for fc6, File Systems and Fedora, Various legal issues and Logo and Trademark.

Full Story (comments: none)

SUSE Linux 9.1 is done

The last update for SUSE Linux 9.1 was released today (quagga). Click below for a small summary of the YOU patches released for SUSE Linux 9.1.

Full Story (comments: none)

Ubuntu edgy `Breaks' dependency field

Ian Jackson looks at a new kind of dependency relationship called `Breaks'. "This is like `Conflicts' but doesn't cause the deinstallation of the broken packages, merely their deconfiguration (to note that they're broken)."

Full Story (comments: none)

New Distributions

Via-specific Linux distro eyes UMPCs (LinuxDevices)

LinuxDevices introduces EpiOS, a Gentoo-based Linux distribution for Via Epia mini-ITX boards. "EpiOS is a hardware-specific Linux distribution for Via Epia boards. It is based on Gentoo and KDE, and aims to support traditionally problematic Via processor features, such as hardware MPEG and cryptography acceleration, "out-of-the-box." For example, the project relies on software from the OpenChrome project, in order to support Via's advanced graphics features."

Comments (none posted)

Distribution Newsletters

Debian Weekly News

The Debian Weekly News for July 25, 2006 covers the package overview page, the move to Subversion, consolidating SSL certificates, dealing with documentation issues in stable, a constitutional amendment on the handling of assets, etch release status, and much more.

Full Story (comments: none)

Fedora Weekly News Issue 56

This edition of the Fedora Weekly News covers FC6 Test2 Freeze Slip End of Life times for FC1, FC2, RHL7.3 and RHL9, Introducing Fedora Women, Fedora at O'Reilly OSCON 2006, Kernel Privilege Escalation Exploit for CVE-2006-3626, and several other topics.

Comments (none posted)

Gentoo Weekly Newsletter

The Gentoo Weekly Newsletter for July 24, 2006 looks at a donation of hardware from Sun, Ethereal gets a new name, User Representatives election are open, the Deletion of Inactive user accounts, and several other topics.

Comments (1 posted)

DistroWatch Weekly, Issue 161

The DistroWatch Weekly for July 24, 2006 is out. "This week started a bit slow, but fortunately things picked up. Debian announced their updated release goal sheet with version information. The Fedora Core 6 test2 was delayed by a week. Mandriva has also been suffering delays due to extremely warm temperatures. This week we bring you a guest columnist comparing and contrasting the differing apt-get front ends. I took a quick look at some of the new live cds released this week."

Comments (none posted)

Package updates

Fedora updates

Updates for Fedora Core 5: sendmail (bug fixes), tcsh (bug fix).

Updates for Fedora Core 4: sendmail (bug fix).

Comments (none posted)

Mandriva update to imlib2

Mandriva has fixed an x86_64 tiff loader bug in imlib2 for Mandriva Linux 2006.0.

Full Story (comments: none)

rPath update to conary conary-build conary-repository

rPath has updated conary, conary-build and conary-repository to the Conary 1.0.24 maintenance release.

Full Story (comments: none)

Trustix update

Trustix has fixed various bugs in cpio and gawk for TSL 3.0.

Full Story (comments: none)

Newsletters and articles of interest

VPSLink Launches Gentoo Linux (WHIR News)

WHIR News reports that web hosting provider VPSLink has added Gentoo Linux to its virtual private server product line. "VPSLink is a wholly owned subsidiary of Spry Hosting. It is designed specifically for Linux power users and provides budget VPS Web hosting solutions from its data center in Seattle, Washington."

Comments (none posted)

Distribution reviews

Ubuntu Linux 6.06 review (Jem Report)

Here's a review of Ubuntu Dapper on the Jem Report; it shows that we clearly are not all looking for the same thing in a Linux distribution. "I figured I'd do some Java programming exercises while I tested Ubuntu, but I couldn't find a Java Development Kit in either of the package managers. There was a Java 5.0 Runtime Environment, but no JDK -- or at least, searches for 'jdk' and 'java' didn't turn up anything in Synaptic. To top it all off, Ubuntu 6.06 comes with a fake Java installed -- GIJ. I want the real Java, or I want nothing so that I can install the real Java properly; I do not want a half-hearted, half-working Java facsimile that doesn't even have a browser plugin."

Comments (33 posted)

Review: Xandros Server ( reviews Xandros Server. "Long known for its desktop distribution, Xandros is now getting into the server act with the release of Xandros Server 1.0. One might wonder, what's the point of yet another server-oriented distro when the server market is already well-served? Xandros Server offers a GUI-oriented approach to system administration that should do well with admins familiar with Windows server products."

Comments (none posted)

Page editor: Rebecca Sobol


Optimizing Linker Load Times

July 25, 2006

This article was contributed by John Richard Moser

Everyone wants their computer to start faster. Distribution maintainers are thus always looking for things to decrease boot time and program load time, using mechanisms such as readahead, boot reordering, even parallel init to more efficiently distribute CPU and disk I/O and get the user to the login screen faster.

One such tool used to decrease boot time and program load time is prelink [PDF], developed by Jakub Jelínek at Red Hat and discussed in an earlier LWN article. Prelinking is not the only way to improve start-up times, however; there are also a number of existing and developing optimizations the GNU linker can apply to give substantial gains. Besides existing GNU linker hash table optimizations, Michael Meeks has done substantial works on three separate optimizations in the GNU linker in a quest to make load quickly [PDF].

1.0 The -Wl,-O1 Linker Options

In typical operation, symbols are stored in hash tables in ELF binaries; these hash tables are kept small, and symbols that fall into the same bucket—hash to the same value—are compared by a simple string comparison. Unfortunately, symbols in the same bucket with the same prefix will need a long string comparison, which can be slow; if there are lots of symbols in the same bucket, then the dynamic linker has to string compare with each of them until it finds a match (Fig. 1.0-1).

Buckets containing multiple symbols Fig. 1.0-1: A hash table of symbols in a library. The bucket 0x00b1 contains three symbols; the red characters will have to be tested against the symbol name before the symbol 'foodragon' is resolved.

It was recommended in a paper [PDF] by Ulrich Drepper to utilize a GNU linker optimization that focuses more on producing short hash chains than a small hash table size. Although the hash table may grow by a few kilobytes, the shortened length of hash chains means that symbol look-ups do not have to perform as many string comparisons. Further, the chances of symbols sharing long prefixes landing in the same bucket are greatly reduced, making walking the chains faster (Fig. 1.0-2).

Optimized hash table Fig. 1.0-2: A hash table of symbols in a library. This table is optimized, so symbols hash to buckets containing shorter hash chains; this reduces the number of string comparisons done. The table is a bit bigger, though.

This linker optimization can be activated by passing -Wl,-O1 to gcc at link time. This flag can also be passed during any compilation; however, optimizing hash tables can be slow, and there are no benefits to doing this when creating object files that are just going to be linked into a main executable or shared object.

Currently this linker optimization is used by GNOME in its official builds. It has also been discussed on the Gentoo forums; and is used by the Ubuntu distribution, to name a few. An old but good technique.

2.0 -Bdirect Linking

Michael Meeks also proposed an optimization to GNU binutils and glibc which functions similar to direct binding in Solaris. By passing -Bdirect at link time, the build process can cause many symbols to be directly linked, allowing the dynamic linker to severely decrease the search space during lookup.

Libraries have unresolved symbols when they use functions or global variables from other libraries; these symbols are resolved during dynamic linking. The dynamic linker locates every unresolved symbol each library needs by searching the symbol table of each loaded library in order from first loaded to last loaded. This can become quite time consuming, especially in cases such as GNOME or where 50-150 libraries are loaded and up to 200,000 symbols must be resolved.

Normal symbol binding Fig. 2.0-1: Normal binding is done by checking through all libraries until the symbol is found.

Direct binding shortens the path the linker has to take to resolve a symbol by drawing it straight from whatever ELF object needs the symbol to the ELF object containing the symbol. A section is added to the ELF header which associates each symbol with an entry in the DT_NEEDED table—the list of libraries needed by the ELF object. The linker uses this information to go straight to the library containing the symbol and search only there, instead of searching through each library sequentially.

Direct symbol binding Fig. 2.0-2: Direct binding is done by checking the library that the symbol table says the binding is located in. This gives a much shorter path for any symbol lookup; three are shown above.

Meeks' -Bdirect linking method operates slightly differently from Solaris direct binding. With the Solaris linker, direct binding binds all symbols directly to the relevant libraries. With Michael Meeks' implementation of -Bdirect linking, vague symbols are detected and linked as normal. This is particularly important with C++, as vague C++ symbols are fairly common. It is not possible to guarantee that a vague symbol is linked to a specific library, so direct binding of vague symbols is not technically feasible.

-Bdirect binding can, to a degree, work with shared objects that are loaded with dlopen() rather than run-time linking; this is reported to greatly aid with and KDE start-up times. This is interesting because the performance improvements per library are comparable to but not quite as substantial as prelink, which does not affect libraries loaded in this manner.

The current implementation unfortunately has a few rough edges. Some areas could be better optimized; and there is an issue with certain libraries and programs breaking due to direct binding. Sometimes multiple libraries supply the same symbol, and the first loaded is the one used; this is called interposing, and is the reason why Meeks' -Bdirect linking patch does not optimize vague symbols. When direct binding is used, the symbol is chosen by the GNU linker at link time rather than by the dynamic linker at run time. This can be both a good and a bad thing, depending on the situation.

In most cases direct binding is a good thing, as it guarantees that libraries dependent on other libraries will always find the proper symbols, even if multiple libraries are loaded with the same symbols. Unfortunately, sometimes this very functionality also changes the way existing programs link, which just happen to work fine based on using the symbol from the first library supplying it. This is usually disastrous, as the symbol now used is typically a variable or function meant for a different purpose; the program no longer does what the programmer intended, and likely ends up simply crashing.

Not everybody believes that the use of interposing is the right thing to do. Still, getting things like this working would really require finding a work-around that does not break compatibility with existing code. Michael Meeks suggested during e-mail discussion a link-map extension to handle direct binding per symbol:

I would instead say: writing code that explicitely relies on interposing is not sensible. However - to make this work all that is needed is to implement an extension to link-maps (as done in the Solaris linker) to allow certain symbols to be marked as interposers (and hence not direct linked). That's most useful for (eg.) in glibc's use of pthreads - done by interposing.

This would allow direct binding to be used with libraries that currently fail with it, by only doing a long symbol search for vague symbols. Further, Meeks' finterpose tool can be used to find interposers between libraries; this not only shows where -Bdirect binding may fail, but also has exposed a few bugs in software such as GTK+ and gstreamer. The unfortunately large number of interposers presents a slight roadblock, but should not stop Meeks' -Bdirect linking from eventually becoming fully functional.

This optimization has an uncertain future, however. Relevant glibc code has so far been rejected by Ulrich Drepper. Despite this, -Bdirect linking has already found uses in Gentoo (with a portage overlay), Pardus Linux, and Solaris/OpenSolaris. The patch has also been committed to OpenSUSE, although it is uncertain if it will be used to build upcoming OpenSUSE releases.

3.0 dynsort

Another optimization posted by Michael Meeks adds the dynsort keyword to the GNU linker. By passing -zdynsort at link time, the .dynsym and .dynstr sections as well as relocations are all sorted by ELF hash and by the position where they land in the hash bucket.

When symbols are looked up in an ELF object, a hash table has to be searched. Hash collisions are effectively stored as a linked list, which then has to be walked to find the appropriate entry. With dynsort, the symbols that have to be examined while walking a bucket are all adjacent to each other. This reduces the number of L1 and L2 cache misses, allowing the CPU to utilize its facilities much more efficiently during dynamic linking.

The dynsort optimization has gotten a good bit of attention since it was unveiled. Meeks is working on improving it in various ways, such as moving data for undefined symbols away from the rest of the data. It was this patch that got Meeks offered a branch in binutils cvs, although as of this writing one hasn't been set up. It can be used in Gentoo with an overlay, but may soon be available everywhere via the --hash-style option.

4.0 Precomputed Hash Values

A few weeks after the dynsort patch, Meeks posted another optimization the binutils mailing list. This one adds pre-computed ELF hash values to the elf header when the -hashvals switch is given. Normally the dynamic linker has to compute a hash value of a symbol and then use that to find the index in the symbol tables of the other libraries. The -hashvals optimization pre-computes these, removing a series of cache misses and mathematical computations from the process.

The visible effect of the -hashvals switch is a large speedup in symbol look-up; Meeks measured dlopen() on libsvx as requiring 40% less time, and in some places a 51% reduction was realized. This is due not only to avoiding the calculation of symbol hash values; but also to much more efficient L2 cache utilization. Only a single 32-bit value is accessed for each symbol, rather than a long string; and locality is increased, since only the .hashvals section is accessed instead of both .dynsym and .dynstr, which reduces L2 cache misses.

This patch has a very favorable future; it almost immediately gained support for inclusion in upstream binutils. Several months later, a rewrite done by Ulrich Drepper and Jakub Jelínek was posted, implementing sorting and precomputed hashvals via --hash-style. And of course, Gentoo users have had access to it for a while with various portage overlays.


There are a lot of optimizations possible to reduce dynamic linking time, creating substantial gains in application load time. Future versions of the GNU linker and glibc may allow distributions to boot and load programs much faster, getting users to the desktop and on their applications in substantially less time.

Comments (17 posted)

System Applications

Audio Projects

Rivendell v0.9.69 is available

Version 0.9.69 of Rivendell, a radio station automation system, is out. "This release, featuring the debut of full voicetracking and log customization capabilities, marks a significant milestone for the project, with all modules now feature-complete."

Full Story (comments: none)

Database Software

pgAdmin III v1.4.3 released

Version 1.4.3 of pgAdmin III, a GUI PostgreSQL administration tool, has been announced. "v1.4.3 is primarily a bug fix release".

Comments (none posted)

DNS Software

dnspython 1.4.0 announced

Version 1.4.0 of dnspython has been announced. "dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records."

Comments (none posted)

smbind 0.4.4 released (SourceForge)

Version 0.4.4 of smbind, a PHP-based tool for managing DNS zones for BIND via the web, is available. "A number of fixes have been included in this release for both smbind and smbind-slave. A problem with user delegation of zones was fixed (thanks to an anonymous SF user report), along with a minor fix for zone deletion, which wasn't getting committed to the config file as expected. Deleting a user was supposed to transfer ownership from that user over to the admin user, but was broken because of the expected admin user's id in the database. A few documentation updates and grammatical changes have also been made."

Comments (none posted)


Samba 3.0.23a Available for Download

Version 3.0.23a of Samba has been announced. "This is the latest stable release of Samba. This is the version that production Samba servers should be running for all current bug-fixes."

Full Story (comments: none)

LDAP Software

LAT 1.1.5 is available

Version 1.1.5 of LAT, the LDAP Administration Tool, is available. "This release is the 6th of the 1.1.x development cycle which will eventually become v1.2. If you need a stable release stick with the 1.0 branch."

Full Story (comments: none)


Common UNIX Printing System 1.2.2 announced

Version 1.2.2 of CUPS has been announced. "CUPS 1.2.2 fixes several build, platform, notification, and printing bugs."

Comments (none posted)


FTimes 3.7.0 Released (SourceForge)

FTimes version 3.7.0 has been announced. "Version 3.7.0 is a minor release of FTimes, a system baselining and evidence collection tool. The primary purpose of ftimes is to gather and/or develop topographical information and attributes about specified directories and files in a manner conducive to intrusion and forensic analysis."

Comments (none posted)

Sussen 0.26 announced

Version 0.26 of Sussen, a vulnerability and configuration file scanner, is out with new features, code cleanup and bug fixes.

Full Story (comments: none)

Web Site Development

ASF Announces Apache Geronimo Version 1.1

The Apache Software Foundation has announced the release of Apache Geronimo Version 1.1, an open-source J2EE application server. "Along with many new features, Apache Geronimo Version 1.1 introduces several structural changes designed to improve scalability, portability and overall organization. An easy-to-use configuration and management console provides access to the new innovative plug-in architecture, allowing advanced control over the rich modularity of the Apache Geronimo server as well as simplifying day-to-day operational management tasks."

Comments (none posted)

OpenReports 2.0 Milestone 1 released (SourceForge)

Version 2.0 Milestone 1 of OpenReports has been announced. "OpenReports, the leading open source web reporting solution, is pleased to announce the availability of OpenReports 2.0 Milestone 1. OpenReports 2.0 features new export formats, ChartReports, scheduling improvements, support for JasperReports 1.2.5 and Hibernate 3.1.3, and many other bug fixes and enhancements."

Comments (none posted)

Plone Foundation Announces Plone 2.5

Version 2.5 of the Plone Content Management System has been announced. "With the addition of powerful caching technologies, Plone 2.5 enables websites to run 10 to 40 times faster than in previous versions. Plone 2.5 focuses on streamlining code, strengthening stability, and increasing flexibility. The release incorporates the latest generation of the underlying Zope application server, setting the groundwork for Plone Foundation’s anticipated 3.0 release, available early 2007. Plone 3.0 will substantially increase ease-of-use and efficiency through user interface improvements."

Comments (none posted)

Web Services

WSMT v1.3 Released (SourceForge)

Version 1.3 of the Web Service Modeling Toolkit (WSMT), a collection of tools for Semantic Web Services intended for use with the Web Service Modeling Ontology, is available. "The main aim of this release has been to improve the functionality of the WSML Text Editor and Reasoner Views with respect to syntax completion. In the previous release only keywords where recommended and this keyword recommendation was not sensitive to the current location in the document. This release sees the addition of full context sensitive syntax completion."

Comments (none posted)

Desktop Applications

Audio Applications

Announcing Jokosher 0.1 (GnomeDesktop)

The initial version 0.1 release of Jokosher, a multi-track audio studio application for GNOME, has been announced. "The Jokosher team are proud to announce our very first 0.1 release of Jokosher, a simple, usability focused Open Source multi-track studio. Since the original design and conception of the project in February, a team of developers, documentation writers, artists, testers and packagers have worked together to create a compelling first release."

Comments (none posted)

Desktop Environments

GNOME 2.15.90 released

GNOME 2.15.90 (otherwise known as the first GNOME 2.16 beta) is out. Click below for download details and pointers to information on what is changing in 2.16.

Full Story (comments: none)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at

Comments (none posted)

KDE Software Announcements

The following new KDE software has been announced this week: You can find more new KDE software releases at

Comments (none posted)

KDE Commit-Digest (KDE.News)

KDE.News has announced the July 23, 2006 edition of the KDE Commit-Digest. Here is the content summary: "KDevelop gets new configuration framework functionality. The start of a Satellite tracks feature in KStars. Support for PDF data extraction, and speed optimisations in Strigi. New features in KPhotoAlbum (KPhotoAlbum is the new name for KimDaBa). Perspective grid support in Krita, with the implementation of a Bezier tool becoming feature-complete. More work on unit conversions in KRecipes. Porting of KRDC to KDE 4."

Comments (none posted)


Covered 0.4.6 released

Version 0.4.6 of Covered, a Verilog code coverage utility, has been announced. "This release contains several bug fixes".

Comments (none posted)


New male media in Ember

The WorldForge game project has announced the creation of a new human male simulation. "I’m trying to get a new version of Ember out, hopefully this week. In the meantime I want to show some screenshots of the new male mesh that Jayr has been working on. By using the model definition system in Ember, it’s possible to define different “parts” of the model, such as “/torso/cloth/green” or “/torso/cloth/red”. These parts use the same submesh (in the example the torso submesh) but with different materials."

Comments (1 posted)


OpenSceneGraph 1.1 released

Version 1.1 of OpenSceneGraph, an open-source 3D scene graph project based on OpenGL, is available with a long list of new capabilities.

Full Story (comments: none)

Mail Clients

UI Improvements in Evolution 2.8

Srinivasa Ragavan's GNOME blog covers changes to the Evolution mail client. "Four months, in GNOME 2.16 cycle, We have added a lot of UI improvements to Evolution to make it look much better. Not just features and lot of bug fixes too!!! I have blogged them in parts. Im summarising all of them."

Comments (none posted)

Music Applications

New Colombo hydrogen drumkit

Marcos Guglielmetti has announced a new drum kit sample set for the hydrogen drum machine. "Colombo drums are handcraft drums made in La Plata, Argentina by a man called Colombo."

Full Story (comments: none)

Office Suites

OpenOffice and ISO distribution with Metalink and other software is now available via Metalink using aria2. " is using a new Web/P2P hybrid called Metalink to distribute its free office suite. Other open source software and Linux ISOs are available at Metalink Packages Resources."

Full Story (comments: none)

Languages and Tools


Crunchy Frog 0.6 released

Version 0.6 of Crunchy Frog has been announced. "Crunchy Frog is an application that transforms an html-based Python tutorial into an interactive session within a browser window."

Comments (none posted)


Dr. Dobb's Tcl-URL!

The July 25, 2006 edition of Dr. Dobb's Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

Page editor: Forrest Cook

Linux in the news

Recommended Reading

On the horizon: an open graphics card (NewsForge)

Joe 'Zonker' Brockmeier takes a look at the Open Graphics Project (OGP). "The goal for the project is to create a video card at a reasonable price that is unencumbered by patents or other intellectual property, that has a fully documented programming interface, supports a full OpenGL implementation, offers good 2-D graphics performance, and supports video playback."

Comments (16 posted)

What AMD's ATI acquisition means for Linux (and Macs) (Linux-Watch)

Linux-Watch looks at AMD's acquisition of ATI. "With AMD at the helm, I can envision ATI finally open-sourcing the code to its proprietary drivers. That should quickly result in much better performance for Linux users, and better performance for the Windows and Mac platforms as well."

Comments (37 posted)

India rejects One Laptop Per Child (Register)

The Register reports that India has decided not to participate in the One Laptop Per Child project. "The Indian Ministry of Education dismissed the laptop as 'paedagogically suspect'. Education Secretary Sudeep Banerjee said: 'We cannot visualise a situation for decades when we can go beyond the pilot stage. We need classrooms and teachers more urgently than fancy tools.'" The article also notes that Nigeria has ordered one million OLPC systems.

Comments (21 posted)

Trade Shows and Conferences

Day one at OSCON (NewsForge)

NewsForge reports from O'Reilly's Open Source Convention (OSCON). "The eight annual O'Reilly Open Source Convention (OSCON) kicked off Monday at the Oregon Convention Center. The first two days at OSCON are all about tutorials, with half-day presentations by key contributors to open source projects discussing how to make use of their tools. OSCON has several tracks, including tracks for Web applications, databases, Perl, JavaScript and AJAX, Ruby, Linux, programming, and business."

Comments (none posted)

OSCON day 2 (NewsForge)

Joe "Zonker" Brockmeier reports from OSCON on NewsForge. "The highlight of the evening was Larry Wall's annual State of the Onion report. Ostensibly meant to be an update on the state of Perl, Wall's talk was about 90% entertainment and 10% status report on Perl 6. Wall noted that Perl was first released in 1987, and says that as Perl is approaching its 20th birthday, the language is 'growing up.' Though the Perl team has been reluctant to give timelines for Perl 6 to be finished, Wall says that we should have 'most of Perl 6' by Christmas. Though it probably won't be a final release, it looks as if Perl 6 might just be ready by the time the language turns 20."

Comments (2 posted)


IBM extends support to Novell's SUSE Linux (CRN India)

CRN India reports on IBM's plans to support SUSE Linux Enterprise 10. "IBM will support Xen technology as part of the Virtualization Engine portfolio on the company's Intel and Opteron processor based server and blade systems. Additionally, IBM has plans to support SUSE Linux Enterprise 10 from Novell across its entire hardware and software portfolio and provide services support."

Comments (none posted)

Linux Adoption

Govt. is the Best Bet For Linux in India, Too ( reports on the increasing use of Linux in government. "World over, the benefits of the open source system are increasingly being acknowledged by the government sector. In India, Red Hat and Novell, the two major players in open source technology, confirmed the importance of its adoption in the government sector. Sandeep Menon, director-sales, Linux West Asia Business, Novell, said, "Novell benefits whenever an effort is made to promote open source systems because more than half of its large Linux engagements are with the government and public sector.""

Comments (none posted)

Free and Open Source Software at the United Nations (O'ReillyNet)

O'ReillyNet looks at how United Nations agencies use free and open source software. "Advances in technology have revolutionized the way people live, learn and work, but these benefits have not spread around the world evenly. A digital divide exists between communities in their access to computers, the Internet, and other technologies. The United Nations is aware of the importance of including technology development as part of a larger effort to bridge this global digital divide. This article looks at how various United Nations agencies use free and open source software to meet the goal of putting technology at the service of people around the world."

Comments (none posted)

Linux at Work

Linux-powered robots from France? Oui! (LinuxDevices)

LinuxDevices looks at the Aldebaran "Nao" robot. "Aldebaran says its "Nao" household robot will compete with robotic research prototypes in terms of functionality. The walking, talking, WiFi-enabled bot will stand 21.6 inches tall, and will feature 23 "degrees of freedom" of motion -- three more than the 14-inch tall "Choromet" android announced earlier this week by four Japanese companies. Nao's extra degrees of freedom appear to come in the form of gripping hands."

Comments (4 posted)


An Interview with the Creator of FreeSWITCH (O'ReillyNet)

The O'Reilly Network talks with Anthony Minessale, the developer of the FreeSWITCH telephony application. "Despite the fact that I have contributed a sizeable list of features to Asterisk, working around the politics was almost harder than working around some of the shortcomings in the design. I have raised FreeSWITCH up from scratch in only one-third of the time I had previously spent working on just adding things to a fully-functional Asterisk."

Comments (1 posted)

Ubuntu heads for the mainstream (Register)

The Register talks with Mark Shuttleworth. "One of the really interesting questions we got when we made the Sun announcement was, do you think it will hurt your community credentials if you start working with Sun, IBM, HP and so on? So it is very important to our business model that that not be the case. Because much of the value of Ubuntu lies in the fact that it's collaboratively produced with the community."

Comments (none posted)

Jani Monoses (Behind Ubuntu)

Behind Ubuntu interviews Xubuntu hacker Jani Monoses. "Who is the target audience for Xubuntu? Is it mainly for people with older or slower machines also what features do you think might appeal to current Gnome and KDE users? Initially it was meant as a clean and maintainable distro for machines with less memory. However it turned out to be a very good fit for thin client deployments as well. Existing experienced Gnome and KDE users may find its relative speed and simplicity appealing, but this is a matter of taste mostly. The main target are still those machines where KDE and Gnome do not run acceptably well."

Comments (none posted)

Packt Publishing announces Open Source CMS Award (NewsForge)

NewsForge talks with Damian Carvill about Packt Publishing's Open Source CMS Award. "NF: How will the entries be sorted and shortlisted? DC: We want as many open source CMSes to enter as possible through the nomination process. We don't expect the judges to plough through hundreds of nominated entries, which is why only the five with the most nominations will go through to the final. I can see how this can be misconstrued as a popularity contest by default, but we felt that this was the best way to arrange it."

Comments (none posted)


Rumblings From Studio Dave (Linux Journal)

Dave Phillips rambles about audio and 64-bit Linux. "As I mentioned at the end of my last entry I've preparing myself for my first excursion into the world of 64-bit Linux. After trading some lessons for a motherboard I started collecting parts for a new desktop machine for the studio. 64-bit considerations were new to me so I asked for help on the Linux Audio Users mail list. Some LAU members run 64-bit systems, and I did indeed get the information I needed. I won't detail the engaging traffic that resulted from that thread, you can read it yourself in the LAU list archives (it's titled AMD64 question)."

Comments (none posted)

System Administration: Another Step toward the BIND (Linux Journal)

Linux Journal looks at the named.conf file used by BIND. "As we've said previously, Linux distributions come with BIND, an application that runs the vast majority of all DNS servers. BIND runs a service or daemon called named. It's primary configuration file is called named.conf. (We assume that you know that Linux services or daemon's have configuration files associated with them.)"

Comments (2 posted)

System Administration: Another Step toward the BIND (Linux Journal)

Linux Journal presents part 2 and part 3 in a look at BIND. From part 3: "The early information contained in the primary zone file exists to accommodate your secondary or slave server. That's BIND for you. When you look at the SOA entry you will see the information for the secondary server in lines 2 through 6."

Comments (none posted)

Enlightenment 17 QuickStart Guide (HowtoForge)

HowtoForge has published a QuickStart Guide for the Enlightenment 17 window manager. "Enlightenment 17 or E17 as it is generally called, is a cool Window Manager for X. The latest stable version of Enlightenment is E16 ( In this article we will talk about the latest CVS build available (0.16.999.023)."

Comments (none posted)

Five Power Tips for Thunderbird (Summersault Weblog)

Mark Stosberg was a demanding mutt user. Now he has some tips for switching to Thunderbird. "As an internet professional, I use e-mail constantly. Mutt, a popular e-mail client for command line geeks had been wearing on me. I found Thunderbird 1.5 a capable replacement for my needs, and have since cut the average size of my Inbox in half."

Comments (15 posted)

Live migration of Xen domains ( shows how to migrate virtual machines while they are running using VM migration. "Virtualization is all the rage these days. Advances in x86 performance, as well as the increasing energy requirements of servers, make efficiently provisioning machines a necessity. Xen, an open source virtual machine (VM) monitor, works with just about any Linux distribution. One useful feature for shops that care about high availability is Xen's ability to migrate virtual machines while they are running. By using VM migration, you can pool computing resources just as you can pool storage. Here's how."

Comments (1 posted)


What Is Geronimo? (O'ReillyNet)

Kunal Jaggi takes a look at Apache Geronimo, an open-source, Java EE-compatible application server. "Based in an integration of best-of-breed open source technologies, and with a vibrant and thriving community backing a certified open source server, Geronimo is set to take the enterprise market by storm. This article will introduce you to Geronimo and give you the basics you need for developing and deploying a simple Java EE web application on Geronimo."

Comments (none posted)

Taking Microsoft's ODF Plugin for a Spin... Splat (Groklaw)

Groklaw looks at the results of Rob Weir's tests of Microsoft's Open Document Format (ODF) plugin. "To test conversion fidelity, first he created an ODF document in So that's how it's supposed to look. The original as ODF is there on his blog too. Next, he opens this ODF document in Word 2007 using their plugin. Take a look at the results. Look what happened to his poor ODF document in Word 2007. It's an absolute mess. Why? What is Microsoft's excuse for such shoddy output, when they have, right now, all the documentation and even the source code to work with -- their own and everything from the ODF side too?"

Comments (9 posted)

Gimmie a new panel prototype ( covers Gimmie, Alex Graveley's re-imagined desktop panel project. "Core desktop interface elements such as menus and panels are frequently targets for revision and replacement, owing to their importance and the difficulty of developing a best-fit-for-the-most-users design. In a GUADEC 2006 presentation (the notes for which are available in PDF at the Gimmie Web site), Graveley enumerates some problems marked for attention. Among them are the underutilization of "recently used" lists for applications and documents, the inflexibility of system menus, and the ambiguity of icons -- some are launchers, some are representations of running apps, etc."

Comments (6 posted)

WiFi Radar eases connections

Joe Barr reviews WiFi Radar on "WiFi Radar is a handy tool for those who move from one wireless access point (AP) to another. My laptop regularly connects to a wireless AP on my home LAN, to a free wireless service in downtown Austin where we hold our weekly LUG meetings, and to whatever is available at airports and hotels when I'm on the road. WiFi Radar makes it simple to switch connections no matter where I am."

Comments (none posted)

High-speed analog data acquisition module runs Linux (LinuxDevices)

LinuxDevices reviews the Pentland RAD-2 PMC data acquisition board. "Pentland says its RAD-2 PMC features dual-channel, 14-bit resolution, with up to 105MSPS sampling speed and 16 individual down-converter channels. Other features include a 64-bit, 66MHz PCI bus, for high-bandwidth transfers, on-board DMA, and a Xilinx Virtex II FPGA for post-acquisition DSP (digital signal processing)."

Comments (none posted)

Linux on the Nokia 770 Internet Tablet (O'ReillyNet)

O'ReillyNet reviews the Nokia 770 Internet Tablet. "The Nokia 770 is an internet tablet designed to connect to the internet with 802.11b/g WLAN or through a phone with Bluetooth. It has a nice 800 x 480 screen (64k colors) and quite a few apps on board. The underlying OS is the Debian GNU/Linux derivative, BusyBox. As it stands, the device is not a phone."

Comments (9 posted)

R Cubed's thin, fast Linux notebook (NewsForge)

NewsForge reviews a Linux powered laptop. "The LS1250-L is a good example of a Linux notebook that is both lightweight and small in size, while having a reasonable heat signature. Anybody that travels knows that weight kills, when it comes to lugging around your suitcase and mobile computer. The R Cubed notebook has just the right amount of heft to make it feel durable. By itself the 11x9x1.5-inch LS1250-L weighs in at a svelte 3.62lbs. Add 14 ounces for the power brick and cord combination, and you have a slim back-friendly Linux computing package."

Comments (6 posted)


A Galician Government Representative Meets KDE Translators (KDE.News)

KDE.News covers a language translation effort. "Last Saturday, a representative from the Galician Government in Spain met members of the Trasno project. This project includes Free Software volunteer translators for the Galician language, from a wide range of Free software projects including KDE. The government representative was Mr. Antonio Pérez Casas, Adviser for the Information Society of the Industry and Innovation Councillor. Six people came to the meeting from the Trasno team including Xavier García Feal, coordinator of the KDE galician language team, two other KDE translators, a couple of translators from Gnome and the author of the Galician ispell dictionaries."

Comments (none posted)

Page editor: Forrest Cook


Non-Commercial announcements

GnuPG and freenigma

Werner Koch has announced the Freenigma service. "Over last months I worked along with another company to setup a project to make email encryption easier for the non tech savvy users. The whole thing will go online in August but it is already possible to register for an invitation. The Freenigma service creates OpenPGP compliant messages much like hushmail does."

Full Story (comments: none)

EFF: Texas Judge Briefed by EFF Affirms Phone Privacy

The Electronic Frontier Foundation has briefed a Texas judge on the issue of the privacy of data entered on a telephone keypad. "In the first ruling of its kind, a federal magistrate judge has held that the government must obtain a search warrant to collect the content of a telephone call, even when that content is dialed digits like bank account numbers, social security numbers or prescription refills. The decision from Magistrate Judge Smith in Houston closely follows the reasoning outlined in an amicus brief from the Electronic Frontier Foundation (EFF) and the Center for Democracy and Technology (CDT)."

Full Story (comments: none)

EFF's Spying Case Moves Forward - Judge Denies Government's Motion to Dismiss AT&T Case

The Electronic Frontier Foundation has sent out a media release concerning the status of a legal case involving the EFF vs AT&T. "A federal judge today denied the government's motion to dismiss the Electronic Frontier Foundation's (EFF's) case against AT&T for collaborating with the NSA in illegal spying of millions of ordinary Americans. This allows the case to go forward in the courts."

Full Story (comments: 1)

OpenDocument standard completing i-dotting and t-crossing

David A. Wheeler has announced the release of the OpenDocument 1.0 second edition. "This final i-dotting and t-crossing at the standards level is one of the last steps in the formal standardization process. Users can now know that the OpenDocument 1.0 specification is quite stable, and can deploy OpenDocument with even more confidence."

Full Story (comments: none)

Commercial announcements

Digium's rPath-based "software appliance"

rPath has sent out a press release announcing a new partnership with Digium. The end result is that Digium will be shipping a version of Asterisk (the "Asterisk Business Edition") which will have an rPath-supplied Linux distribution built into it, eliminating the need to install (and manage) Linux separately.

Full Story (comments: 2) donates to FSF and OSI

The Developers Portal is celebrating its first anniversary by donating to the FSF and OSI. " Developers Portal first anniversary, Webpath Technologies, today announced it will mark the occasion by donating $1 to both the Free Software Foundation and the Open Source Initiative for every disc ordered on August 1."

Full Story (comments: none)

OSDL Adds New Member as Marketshare for Mobile Linux Continues to Rise

Open Source Development Labs, Inc. has announced the newest member of its Mobile Linux Initiative, a la Mobile. "OSDL membership for a la Mobile comes on the heels of the company's recent launch announcement and introduction of an independent Linux systems platform for mobile phones. Designed to be readily adaptable to wireless handsets, a la Mobile's Convergent Linux Platform enables handset manufacturers to bring Linux-based smartphones and full-feature phones to market rapidly while reducing development, testing and deployment costs."

Comments (none posted)

Panda Software Launches Panda DesktopSecure for Linux

Panda Software has announced the release of Panda DesktopSecure, a security suite for Linux workstations. "The new Panda Software solution includes signature-based detection of malicious code, the Genetic Heuristic Engine -- a new technology capable of detecting more unknown malware than traditional heuristics -- and, unlike similar solutions, it includes a powerful firewall. It also has the advantage that all these features can be controlled simply and intuitively through a single graphic interface."

Comments (none posted)

Socialtext Releases First Commercial Open Source Wiki

Socialtext has announced the release of the Socialtext Open wiki. "Available for immediate download, Socialtext Open is the first open source wiki with a commercial venture as its primary contributor. Over 2,000 businesses run Socialtext Wiki products today as a hosted service or appliance. Based on the same great product, Socialtext Open is released under a standard open source license, and contains all of Socialtext's enterprise grade code aside from enterprise management and enterprise integration tools. Socialtext also announced the availability of its Technical Professional Service, a new SOAP API and the Socialtext Open Roadmap for the next three months."

Comments (2 posted)

New Books

Pragmatic Bookshelf releases "Agile Retrospectives"

Pragmatic Bookshelf has published the book Agile Retrospectives by Esther Derby and Diana Larsen.

Full Story (comments: none)

C++ GUI Programming with Qt 4 Published (KDE.News)

KDE.News has announced the publication of the book C++ GUI Programming with Qt 4 by Jasmin Blanchette and Mark Summerfield.

Comments (none posted)

Pragmatic Bookshelf releases "Interface-Oriented Design"

Pragmatic Bookshelf has published the book Interface-Oriented Design by Ken Pugh.

Full Story (comments: none)

The Internet: The Missing Manual--O'Reilly's latest release

O'Reilly has published the book The Internet: The Missing Manual by J.D. Biersdorfer and David Pogue.

Full Story (comments: none)

Python in a Nutshell, Second Edition - O'Reilly's Latest Release

O'Reilly has published the book Python in a Nutshell, Second Edition by Alex Martelli.

Full Story (comments: 1)

SUSE Linux - O'Reilly's Latest Release

O'Reilly has published the book SUSE Linux by Chris Brown.

Full Story (comments: none)

Calls for Presentations

Eighth Real-Time Linux Workshop, 2nd CFP

The second Call for Papers has gone out for the Eighth Real-Time Linux Workshop. The event will take place on October 12-15, 2006 in Lanzhou, Gansu, China. Abstracts are due by August 28.

Full Story (comments: none)

O'Reilly ETel 2007: Call for Participation Is Open

A Call for Participation has gone out for the O'Reilly ETel 2007 Emerging Telephony Conference. The event will be held in San Francisco, CA on February 27 - March 1, 2007. Proposals are due by September 26.

Full Story (comments: none)

Leipzig Python Workshop - Deadline for Abstracts Extended

The Leipzig Python Workshop deadline for abstracts has been extended until July 31. The workshop takes place in Leipzig, Germany on September 8, 2006.

Comments (none posted)

Upcoming Events

Akademy 2007 Call for Location and Organisation (KDE.News)

A Call for Location and Organisation has gone out for Akademy 2007. "While preparations for Akademy 2006 are in full swing, next year's annual meeting of the KDE community, Akademy 2007, is sending out a Call for Location and Organisation. Akademy is made possible mainly because of financial contributions by corporations. These corporations prepare their buget for 2007 in autumn of 2006, in order to be able to secure funding for Akademy 2007 we need to start organising Akademy 2007 early to be able to apply for sponsorship soon."

Comments (none posted)

OpenDocument Day at Akademy (KDE.News)

KDE.News has announced the OpenDocument Day at the Akademy conference. "This year at Akademy, Tuesday 26th September will be OpenDocument Day. The OpenDocument format (ODF) is a Free document file format for saving and exchanging office documents. KOffice was the first office suite to support OpenDocument and other programs have been following suit. OpenDocument Day at Akademy offers software developers interested in ODF to exchange ideas, build relations and collaborate on all things ODF in an informal setting."

Comments (none posted)

CMP Technology announces Boston Embedded Systems Conference

CMP Technology has announced the next Embedded Systems Conference. The event takes place in Boston, MA at the Hynes Convention Center on September 25-28, 2006.

Comments (none posted)

Represent KDE at Linuxtagen in Essen (KDE.News)

KDE.News has posted a call for volunteers for the Essener Linuxtage. "On September the 9th and 10th (Saturday and Sunday) the Essener Linuxtage will take place in the University of Essen in Germany. KDE will have a stall there, but needs more representatives. If you are interested in helping us man a stall or giving a talk, then please contact us."

Comments (none posted)

Healthcare IT and Open Source to be Spotlighted at LinuxWorld SF

OSDL has announced a Healthcare Day, to be held at the LinuxWorld Conference & Expo in San Francisco, CA on August 15. "The event is in response to an expected increase in healthcare IT spending in the near term and the growing role of open source software in the healthcare industry."

Full Story (comments: none) Annual Conference Program Published

The conference program for the annual Conference has been published. The event takes place in Lyons, France from September 11-13, 2006. "Conference highlights include keynote speakers from Novell and Google, and a panel discussion with representatives from Sun Microsystems, IBM, and Over the three days, the conference streams cover topics of interest to developers and users, newcomers and veterans alike. There will be a particular focus on this year on and Open Document Format (ODF), following ODF's ratification as the international standard for office documents (ISO/IEC 26300)"

Full Story (comments: none)

Ireland PyPy sprint

The Ireland PyPy sprint has been announced. "The next PyPy sprint will happen in the nice city of Limerick in Ireland from 21st till 27th August. The main focus of the sprint will be on JIT compiler works, various optimization works, porting extension modules, infrastructure works like a build tool for PyPy, or extended (distributed) testing."

Comments (none posted)

Events: July 27 - September 21, 2006

Date Event Location
July 27 - 28, 2006O'Reilly Open Source Convention(OSCON 2006)Portland, Oregon
July 29 - August 3, 2006Black Hat USA 2006 Briefings and Training(Caesars Palace)Las Vegas, NV
July 30 - August 3, 2006SigGraph 2006(Boston Convention and Exposition Center)Boston, MA
August 4 - 6, 2006DEF CON 14(Riviera Hotel)Las Vegas, NV
August 4 - 6, 2006Wikimania(Harvard Law School)Cambridge, MA
August 4 - 6, 2006Vancouver Python WorkshopVancouver, BC, Canada
August 8 - 10, 2006Flash Memory Summit(Wyndham Hotel)San Jose, CA
August 14 - 17, 2006LinuxWorld San Francisco 2006(Moscone Center)San Francisco, CA
August 14 - 17, 2006ApacheCon Asia(Trans Asia Hotel)Colombo, Sri Lanka
August 17 - 18, 2006Python for Scientific Computing(SciPy2006)(Caltech)Pasadena, CA
August 18 - 19, 2006The Ubucon Conference(Google headquarters)Mountain View, CA
August 21 - 27, 2006Ireland PyPy sprint(University of Limerick)Limerick, Ireland
August 28 - 31, 2006Bellua Cyber Security Asia 2006(Jakarta Convention Center)Jakarta, Indonesia
September 8, 2006Leipzig Python WorkshopLeipzig, Germany
September 9 - 10, 2006Linuxtage in Essen(University of Essen)Essen, Germany
September 11 - 13, Conference(OOoConf 2006)Lyon, France
September 12 - 15, 2006php|works/db|works 2006Toronto, Canada
September 13 - 15, 20062006 WebGUI Users Conference(The Vegas Club Hotel and Casino)Las Vegas, NV
September 14, 2006NLUUG najaarsconferentie 2006(De Reehorst)Gelderland, The Netherlands
September 14 - 16, 2006Wizards of OS 4 - Information Freedom RulesBerlin, Germany
September 18 - 21, 20062006 European Open Source Convention(EuroOSCON)Brussels, Belgium
September 18 - 21, 2006New Security Paradigms Workshop(NSPW)Schloss Dagstuhl, Germany

Comments (none posted)


Linux Quilt

Alan Robertson has a picture of his Linux quilt. What is a Linux quilt? "A Linux Quilt is a T-shirt quilt made from Linux T-shirts, of course..."

Full Story (comments: none)

Page editor: Forrest Cook

Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds