akaros/README.md
<<
>>
Prefs
   1About Akaros
   2============
   3Akaros is an open source, GPL-licensed operating system for manycore
   4architectures.  Its goal is to provide better support for parallel and
   5high-performance applications in the datacenter.  Unlike traditional OSs, which
   6limit access to certain resources (such as cores), Akaros provides native
   7support for application-directed resource management and 100% isolation from
   8other jobs running on the system.
   9
  10Although not yet integrated as such, it is designed to operate as a low-level
  11node OS with a higher-level Cluster OS, such as [Mesos](http://mesos.apache.org/),
  12governing how resources are shared amongst applications running on each node.
  13Its system call API and "Many Core Process" abstraction better match the
  14requirements of a Cluster OS, eliminating many of the obstacles faced by other
  15systems when trying to isolate simultaneously running processes.  Moreover,
  16Akaros\xE2\x80\x99s resource provisioning interfaces allow for node-local decisions to be
  17made that enforce the resource allocations set up by a Cluster OS.  This can be
  18used to simplify global allocation decisions, reduce network communication, and
  19ultimately promote more efficient sharing of resources.  There is limited
  20support for such functionality on existing operating systems.
  21
  22Akaros is still very young, but preliminary results show that processes running
  23on Akaros have an order of magnitude less noise than on Linux, as well as fewer
  24periodic signals, resulting in better CPU isolation.  Additionally, its
  25non-traditional threading model has been shown to outperform the Linux NPTL
  26across a number of representative application workloads.  This includes a 3.4x
  27faster thread context switch time, competitive performance for the NAS parallel
  28benchmark suite, and a 6% increase in throughput over nginx for a simple
  29thread-based webserver we wrote.  We are actively working on expanding Akaros's
  30capabilities even further.
  31
  32Visit us at [akaros.org](http://www.akaros.org)
  33
  34Installation
  35============
  36
  37Instructions on installation and getting started with Akaros can be found in
  38[GETTING_STARTED.md](GETTING_STARTED.md)
  39
  40Documentation
  41=============
  42
  43Our current documentation is very lacking, but it is slowly getting better over
  44time.  Most documentation is typically available in the [Documentation/](Documentation/)
  45directory.  However, many of these documents are outdated, and some general
  46cleanup is definitely in order.
  47
  48Mailing Lists
  49=============
  50
  51#### Want to join the developers mailing list?
  52Send an email to [akaros+subscribe@googlegroups.com](mailto:akaros%2Bsubscribe@googlegroups.com).
  53
  54Or visit our [google group](https://groups.google.com/forum/#!forum/akaros)
  55and click "Join Group"
  56
  57#### Want to report a bug?
  58Create a new issue [here](https://github.com/brho/akaros/issues).
  59
  60#### Want to chat on IRC?
  61`brho` hangs out (usually alone) in #akaros on `irc.freenode.net`.
  62The other devs may pop in every now and then.
  63
  64Contributing
  65============
  66
  67Instructions on contributing can be found in
  68[Documentation/Contributing.md](Documentation/Contributing.md).
  69
  70License
  71============
  72The Akaros repository contains a mix of code from different projects across a
  73few top-level directories.  The kernel is in `kern/`, userspace libraries are
  74in `user/`, and a variety of tools can be found in `tools/`, including the
  75toolchain.
  76
  77The Akaros kernel is licensed under the [GNU General Public License, version
  782](http://www.gnu.org/licenses/gpl-2.0.txt).  Our kernel is made up of code
  79from a number of other systems.  Anything written for the Akaros kernel is
  80licensed "GPLv2 or later".  However, other code, such as from Linux and Plan 9,
  81are licensed GPLv2, without the "or later" clause.  There is also code from
  82BSD, Xen, JOS, and Plan 9 derivatives.  As a whole, the kernel is licensed
  83GPLv2.
  84
  85Note that the Plan 9 code that is a part of Akaros is also licensed under the
  86Lucent Public License.  The University of California, Berkeley, has been
  87authorised by Alcatel-Lucent to release all Plan 9 software previously governed
  88by the Lucent Public License, Version 1.02 under the GNU General Public
  89License, Version 2.  Akaros derives its Plan 9 code from this UCB release.  For
  90more information, see [LICENSE-plan9](LICENSE-plan9) or
  91[here](http://akaros.cs.berkeley.edu/files/Plan9License).
  92
  93Our user code is likewise from a mix of sources.  All code written for Akaros,
  94such as `user/parlib/`, is licensed under the [GNU
  95LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt), or later.
  96Plan 9 libraries, including `user/iplib` and `user/ndblib` are licensed under
  97the LGPLv2.1, but without the "or later".  See each library for details.
  98
  99Likewise, `tools/` is a collection of various code.  All of our contributions
 100to existing code bases, such as GCC, glibc, and busybox, are licensed under
 101their respective projects' licenses.
 102