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