696ae1ab31a337759b59302cf1fc517702e22eb1
[akaros.git] / README.md
1 About Akaros
2 ============
3 Akaros is an open source, GPL-licensed operating system for manycore
4 architectures.  Its goal is to provide better support for parallel and
5 high-performance applications in the datacenter.  Unlike traditional OSs, which
6 limit access to certain resources (such as cores), Akaros provides native
7 support for application-directed resource management and 100% isolation from
8 other jobs running on the system.
9
10 Although not yet integrated as such, it is designed to operate as a low-level
11 node OS with a higher-level Cluster OS, such as [Mesos](http://mesos.apache.org/),
12 governing how resources are shared amongst applications running on each node.
13 Its system call API and "Many Core Process" abstraction better match the
14 requirements of a Cluster OS, eliminating many of the obstacles faced by other
15 systems when trying to isolate simultaneously running processes.  Moreover,
16 Akaros’s resource provisioning interfaces allow for node-local decisions to be
17 made that enforce the resource allocations set up by a Cluster OS.  This can be
18 used to simplify global allocation decisions, reduce network communication, and
19 ultimately promote more efficient sharing of resources.  There is limited
20 support for such functionality on existing operating systems.
21
22 Akaros is still very young, but preliminary results show that processes running
23 on Akaros have an order of magnitude less noise than on Linux, as well as fewer
24 periodic signals, resulting in better CPU isolation.  Additionally, its
25 non-traditional threading model has been shown to outperform the Linux NPTL
26 across a number of representative application workloads.  This includes a 3.4x
27 faster thread context switch time, competitive performance for the NAS parallel
28 benchmark suite, and a 6% increase in throughput over nginx for a simple
29 thread-based webserver we wrote.  We are actively working on expanding Akaros's
30 capabilities even further.
31
32 Visit us at [akaros.org](http://www.akaros.org)
33
34 Installation
35 ============
36
37 Instructions on installation and getting started with Akaros can be found in
38 [GETTING_STARTED.md](GETTING_STARTED.md)
39
40 Documentation
41 =============
42
43 Our current documentation is very lacking, but it is slowly getting better over
44 time.  Most documentation is typically available in the [Documentation/](Documentation/)
45 directory.  However, many of these documents are outdated, and some general
46 cleanup is definitely in order.
47
48 Mailing Lists
49 =============
50
51 #### Want to join the developers mailing list?
52 Send an email to <akaros-request@lists.eecs.berkeley.edu>.
53
54 #### Want to report a bug?
55 Create a new issue [here](https://github.com/brho/akaros/issues).
56
57 #### Want to chat on IRC?
58 `brho` hangs out (usually alone) in #akaros on `irc.freenode.net`.
59 The other devs may pop in every now and then.
60
61 Contributing
62 ============
63
64 Instructions on contributing can be found in
65 [Documentation/Contributing.md](Documentation/Contributing.md).
66 All contributed code is governed by the licenses detailed below.