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