Welcome to chaos. chaos is an operating system developed around the year 2000 for the x86 platform (also referred to as "ia32" in the codebase).
Some of the major features supported by chaos are:
Naturally, given the hobbyist nature of the project, none of the features just mentioned is "complete" in the sense that it supports all features of the PCI bus, or all features of UDP, ICMP etc. Nonetheless, the system was at an earlier point stable to the point where it was possible to e.g. use it for network bridging - you could run e.g. ssh "through" a machine running chaos. It would also reply to ICMP echo (i.e. "ping") packets, as well as support outgoing ping packets to other machines.
Having that said, there are a number of issues with the codebase which made us start the development of the new stormG3 kernel (which would replace the existing storm "G1" kernel.) There was also a stormG2 project being undertaken but it was abandoned before being completed).
The most critical issue with stormG1 is that the kernel leaks memory; the number of free pages decrease gradually over time. Because of this and the general feeling that the system would benefit from a major refactoring (hey, isn't it always fun to rewrite your code, trying to get things better done the second time? ) the storm G3 project was initiated, where we attempted to Do Things Right™ to a greater point than had been earlier done. Like many hobby/spare-time projects, the project was never finished and storm G3 is therefore currently in a very unfinished state. Nonetheless, feel free to check it out if you like.
Note: If you just want to try things out, go straight to the Releases page and download an .iso
file. Then, skip down to "Running chaos" below.
ssh
client. (Install mingw-get and then select at least the msys-openssh
, msys-base
and msys-bash
packages.)cd ~/git/chaos
or similar)vagrant up
vagrant ssh
msys.bat
from the MSYS packages, as Administrator. Note: You must run msys.bat
as Administrator. This is because symbolic links with VirtualBox is only supported when the VM is launched as an Administrator, and the chaos
build process relies on symbolic links. Typical errors you can get if you do not do this right is "Protocol error" and similar. If this happens, do a vagrant halt
and then retry the commands below in an admin msys.bat
instead.)cd /c/git/chaos
, assuming that you have the code in c:\git\chaos
)
and run the following commands:vagrant up
vagrant ssh
After you have done vagrant ssh
, you should now have a Linux session to your chaos development environment. It is a Linux machine, fully separated from your host system (be it Mac OS X, Windows or event Linux itself, but in the latter case you might as well run all of this on the host instead). You should now be in the /vagrant
folder with easy access to the chaos source code residing on your host machine. Type the following commands to perform the compilation.
rake
rake install
(Not all parts of the system has been converted to the rake
-based compilation process yet, but we're working on it. Feel free to send a patch/pull request if you add support for building some of the broken parts of the system.)
This should create a chaos.iso
, if all worked correctly. Congratulations! You're just one step away from having a fully working version of chaos running now. :)
chaos.iso
(or chaos-0.0.x.iso
if you downloaded it from here) file as the CD drive.From there, just follow the instructions on the screen.
Want to help us out? Feel like contributing? Fork the project and start hacking away! The easiest way to get in touch with is this GitHub page, for the moment. We may in the future put back our mailing lists and stuff, for public communication, but for now, make a fork and submit pull requests, create issues if you find issues that you think should be fixed, etc. Don't be afraid, we usually don't bite.
This is an incomplete list of the authors of the chaos operating system, sorted alphabetically on last name. If you feel your name should be on this list but you aren't - please let us know.
(The license we use is commonly known as the BSD license, without advertising clause (also known as "3-clause"). Some subdirectories in this directory may still contain references to the GPL since this is the license we used previously. However, the code can now be used under the BSD license - to the best of our knowledge, all major copyright holders have agreed to this license change. If you hold the copyright to some of the code herein and are in disagreement to this, please notify us immediately and we will work something out.)
The code in the following directories/files are to be treated as licensed under the GNU GPL since they are derivates of code from the Linux kernel:
We encourage code that is written for chaos (servers, programs, libraries) to use the license below. This license allows us, and anyone else for that matter, to use your code freely, incorporate it in future versions of chaos and similar. However, unlike with the GNU GPL, we don't force this choice upon you. The freedom is yours. Use it wisely.
Copyright © 1999 chaos development.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright © 2009-2013 by the contributors listed in CREDITS.TXT
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.