| About Akaros |
| ============ |
| Akaros is an open source, GPL-licensed operating system for manycore |
| architectures. Its goal is to provide better support for parallel and |
| high-performance applications in the datacenter. Unlike traditional OSs, which |
| limit access to certain resources (such as cores), Akaros provides native |
| support for application-directed resource management and 100% isolation from |
| other jobs running on the system. |
| |
| Although not yet integrated as such, it is designed to operate as a low-level |
| node OS with a higher-level Cluster OS, such as |
| [Mesos](http://mesos.apache.org/), governing how resources are shared amongst |
| applications running on each node. Its system call API and "Many Core Process" |
| abstraction better match the requirements of a Cluster OS, eliminating many of |
| the obstacles faced by other systems when trying to isolate simultaneously |
| running processes. Moreover, Akaros’s resource provisioning interfaces allow |
| for node-local decisions to be made that enforce the resource allocations set |
| up by a Cluster OS. This can be used to simplify global allocation decisions, |
| reduce network communication, and ultimately promote more efficient sharing of |
| resources. There is limited support for such functionality on existing |
| operating systems. |
| |
| Akaros is still very young, but preliminary results show that processes running |
| on Akaros have an order of magnitude less noise than on Linux, as well as fewer |
| periodic signals, resulting in better CPU isolation. Additionally, its |
| non-traditional threading model has been shown to outperform the Linux NPTL |
| across a number of representative application workloads. This includes a 3.4x |
| faster thread context switch time, competitive performance for the NAS parallel |
| benchmark suite, and a 6% increase in throughput over nginx for a simple |
| thread-based webserver we wrote. We are actively working on expanding Akaros's |
| capabilities even further. |
| |
| Visit us at [akaros.org](http://www.akaros.org) |
| |
| Installation |
| ============ |
| |
| Instructions on installation and getting started with Akaros can be found in |
| [GETTING_STARTED.md](GETTING_STARTED.md) |
| |
| Documentation |
| ============= |
| |
| Our current documentation is very lacking, but it is slowly getting better over |
| time. Most documentation is typically available in the [Documentation/](Documentation/) |
| directory. However, many of these documents are outdated, and some general |
| cleanup is definitely in order. |
| |
| Mailing Lists |
| ============= |
| |
| #### Want to join the developers mailing list? |
| Send an email to [akaros+subscribe@googlegroups.com](mailto:akaros%2Bsubscribe@googlegroups.com). |
| |
| Or visit our [google group](https://groups.google.com/forum/#!forum/akaros) |
| and click "Join Group" |
| |
| #### Want to report a bug? |
| Create a new issue [here](https://github.com/brho/akaros/issues). |
| |
| #### Want to chat on IRC? |
| `brho` hangs out (usually alone) in #akaros on `irc.freenode.net`. |
| The other devs may pop in every now and then. |
| |
| Contributing |
| ============ |
| |
| Instructions on contributing can be found in |
| [Documentation/Contributing.md](Documentation/Contributing.md). |
| |
| License |
| ============ |
| The Akaros repository contains a mix of code from different projects across a |
| few top-level directories. The kernel is in `kern/`, userspace libraries are |
| in `user/`, and a variety of tools can be found in `tools/`, including the |
| toolchain. |
| |
| The Akaros kernel is licensed under the [GNU General Public License, version |
| 2](http://www.gnu.org/licenses/gpl-2.0.txt). Our kernel is made up of code |
| from a number of other systems. Anything written for the Akaros kernel is |
| licensed "GPLv2 or later". However, other code, such as from Linux and Plan 9, |
| are licensed GPLv2, without the "or later" clause. There is also code from |
| BSD, Xen, JOS, and Plan 9 derivatives. As a whole, the kernel is licensed |
| GPLv2. |
| |
| Note that the Plan 9 code that is a part of Akaros is also licensed under the |
| Lucent Public License. The University of California, Berkeley, has been |
| authorised by Alcatel-Lucent to release all Plan 9 software previously governed |
| by the Lucent Public License, Version 1.02 under the GNU General Public |
| License, Version 2. Akaros derives its Plan 9 code from this UCB release. For |
| more information, see [LICENSE-plan9](LICENSE-plan9) or |
| [here](http://akaros.cs.berkeley.edu/files/Plan9License). |
| |
| Our user code is likewise from a mix of sources. All code written for Akaros, |
| such as `user/parlib/`, is licensed under the [GNU |
| LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt), or later. |
| Plan 9 libraries, including `user/iplib` and `user/ndblib` are licensed under |
| the LGPLv2.1, but without the "or later". See each library for details. |
| |
| Likewise, `tools/` is a collection of various code. All of our contributions |
| to existing code bases, such as GCC, glibc, and busybox, are licensed under |
| their respective projects' licenses. |