We overhauled our filesystem / namespace code.
The old VFS is gone and replaced with infrastructure for the Plan 9 in-kernel devices.
Devices that contain directories and files have the ability to mmap() files, use a page cache, and use symlinks - basically the operations that you'd expect on Linux.
Mounts can use the new caching layer to mmap(), and thus exec(), binaries across a 9p channel.
In support of this new code, we added RCU and a host of bug fixes.
For more info, check out the post.
Our virtual machines now have networking support, similar to qemu's usermode networking. You can port-forward host ports to the guest, communicate between the host and guest, and even have the guest think it has the host's IP address. Check out kern/kfs/vnet_opts_example for the options.
We added a section with a few of our papers and talks.
Akaros now has limited support for perf_events. We support a basic perf stat, and you can run perf record on Akaros and analyze the perf.data file on Linux with perf report. Check out Documentation/profiling.txt for more info.
We now have SSH! Get it at email@example.com:akaros/dropbear-akaros.git and follow the instructions in README.akaros.
In the last year, we built a prototype virtual machine monitor (virtio-cons with a Linux guest), ported Linux's Mellanox NIC driver, added userspace epoll/select, updated our performance monitoring infrastructure, and fixed a lot of bugs. Things are moving along nicely!
Despite the lack of updates to the website, we've been quite busy. We fixed many bugs and added lots of functionality. We also ported the Broadcom bnx2x NIC driver from Linux to Akaros.
Akaros now passes the Go test suite, as of Go 1.3!
The University of California, Berkeley, has been authorized by Alcatel-Lucent to release Plan 9 under the GNU General Public License, Version 2. The software is available for download here with this license. It is also available at this git repo.
We owe special thanks to Jim McKie and Ron Minnich; this would not be possible without their efforts.
Q: What do you get when you cross a giraffe and a bunny? A: Akaros with Plan9's namespaces and networking stack!
We merged code from Inferno, a Plan9 offshoot, and still maintain our glibc libraries in userspace. While there are still many bugs and an uneasy mix of legacy VFS code alongside the Inferno code, more features work than are broken.
Happy 5th Birthday, Akaros! Our repo started 5 years ago today; we've definitely come a long way! Despite the lack of news, we've been quite busy and hope to announce a couple big projects in the coming month.
The 64 bit port is here! The x86_64 port (a.k.a. amd64) is quite functional at this point, with only a few minor bugs/features remaining. It'll be our default x86 version from here forward, with the 32 bit mode kept around mostly for debugging.
If you haven't pulled in a while, you're missing out on many improvements: better POSIX signal handling, instructions on getting started, better measurement infrastructure, support for C++ streams, and of course a lot of bug fixes.
If you're interested in provisioning cores, check out the helper program "prov". While the kernel interface for provisioning isn't finalized, we'll keep this program in sync with whatever interface we use.
Lastly, we can run some Parsec benchmarks. For instance, fluidanimate runs slightly better on Akaros with 31 cores than on Linux with 32, and we can handle preempting cores from the app at machine speeds!
We've been busy recently. Pull to find lots of bug fixes, early signalling support, and initial OpenMP support.
Most of the developers were interning over the summer. Akaros development was quiet, but now we're back. We have a kernel scheduler that knows how to provision cores and preempt cores from backfilled processes. Now that we can test the preemption handling code at machine-speeds, let the bug hunt(s) commence!
Single-core processes can now receive events and (more importantly) block on syscalls, using similar mechanisms that the MCPs use. While this won't help high-performance applications directly, it makes the system more usable, and it's been on the TODO list for quite a while.
Userspace now has handlers that can deal with the kernel preempting/revoking vcores. The handlers deal with all sorts of deadlocks and race conditions, while making sure you don't miss messages. Second level schedulers won't need to worry about these details, so long as they use the uthread library. It's rather badass.
Userspace now has MCS locks with preemption detection/recovery (called MCS-PDR locks). This will prevent MCS lock grabbers from spinning while the critical thread/vcore is preempted. Check out the details in commit bf1a334bc. It'll be a more complete solution once we have full preemption recovery for arbitrary places in the code.
Multiple processes can now yield/block on outstanding events/syscalls, and the process management code can handle whatever interleavings of processes and kthreads that the scheduler desires. Check out some recent commits or the Documentation for more details!
We have a paper that will appear in SOCC '11. Check out the personal version here.
Akaros now has a facility to safely send an arbitrary number of messages to userspace via shared memory structures, which greatly simplifies building systems on top of event delivery. Check out the recent commit (63853fda6) that added UCQs for more details.
User-level schedulers (2LSs) can now block and restart threads that submitted async syscalls that blocked, and the 2LSs can handle completion-message overflow. This exposed lots of fun bugs!
Updated the description and overview, and added a link to a FAQ. Curious about something? Go ahead and ask!
Added a link explaining the licenses that govern both the Akaros kernel code as
well as any user space libraries written by the Akaros team. See the
License Info link on the left for more information.
Added some info about each of the Akaros developers. Take a look at the
Developers link on the left.
We finished the operating system! Just kidding. Did add a source code
documentation link to the website though. Look for it under the
Resources link or click
Added information about our mailing list, IRC channel, and other useful
information to the Community section of the website.Take a look under the
Community link on the left for more information.
LXR Cross Referencing
links for the main source repository to the website. Take a look under the
Resources link on the left for more information.
Filled in a basic overview and information on how to get started working with
Akaros, including how to download, install, and run it on your system.
Take a look at the Overview and
Getting Started links on the left for more
New Website! You're looking at it!