Akaros is an open source, GPL-licensed operating system for manycore architectures. Our goal is to provide support for parallel and high-performance applications and to scale to a large number of cores.

This research is supported in part by the National Science Foundation, under grants #1320005 and #1016714, and by the Department of Energy under grant #7086471.
Getting Started
License Info
Report Bugs

Latest News

March 5th, 2015: 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.

September 28th, 2014: Akaros now passes the Go test suite, as of Go 1.3!

February 8th, 2014: 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.

January 27rd, 2014: 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.

January 23rd, 2014: 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.

July 11th, 2013: 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.

April 26th, 2013: 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!

January 2nd, 2013: We've been busy recently. Pull to find lots of bug fixes, early signalling support, and initial OpenMP support.

September 25th, 2012: 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!

March 21st, 2012: 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.

December 20th, 2011: 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.

October 11th, 2011: 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.

October 4th, 2011: 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!

August 31st, 2011: We have a paper that will appear in SOCC '11. Check out the personal version here.

July 28th, 2011: 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.

June 7th, 2011: 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!

April 5th, 2011: Updated the description and overview, and added a link to a FAQ. Curious about something? Go ahead and ask!

April 1st, 2011: 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.

April 1st, 2011: Added some info about each of the Akaros developers. Take a look at the Developers link on the left.

April 1st, 2011: 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 here.

March 31st, 2011: 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.

March 31st, 2011: Added gitweb, gitstats, and 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.

March 31st, 2011: 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 information.

March 29th, 2011: New Website! You're looking at it!

Problems with this page?
Email Kevin Klues <klueska@cs.berkeley.edu>