diff --git a/README.md b/README.md index 221b337..a868b49 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Build Status](https://api.travis-ci.org/JehanneOS/jehanne.svg?branch=master)](https://travis-ci.org/JehanneOS/jehanne) + # Jehanne Jehanne is a [simple][simplicity] operating system. @@ -7,10 +9,72 @@ It is a fork of [Harvey][harvey] (which in turn is a fork of diverges from the design and conventions of its ancestors whenever they are at odds with its goals. -For this reason project is named after the famous Franch heretic [Joan of Arc][arc]. +For this reason the project is named after the famous Franch heretic [Joan of Arc][arc]. + +## Overview + +This is the main repository, used to build the system as a whole: + +- [arch](./arch/) contains one folder for each + supported architecture, with specific C headers and binaries +- [sys](./sys) is the system folder + * [include](./sys/include) contains portable C headers + * [lib](./sys/lib) contains data and scripts used by the + running system + * [man](./sys/man) contains manual pages + * [src](./sys/src) contains the sources of the system +- [doc](./doc/) contains useful documentation for Jehanne + development + * [license](./doc/license/) contains detailed info + about Jehanne [licenses][lic] + * [hacking](./doc/hacking/) contains details about how + to build and modify Jehanne +- [hacking](./hacking) contains the utilities used to + develop Jehanne +- [qa](./qa) contains the regression tests +- [mnt](./mnt) contains default mount targets +- [usr](./usr) contains the users' folders +- [pkgs](./pkgs) will contains the installed packages + +The running system also includes supplemental folders like `/lib`, +`/bin` and `/dev` that are bound during the boot as required. + +## Build + +To build Jehanne and play with it, you need to have git, golang, qemu, +gcc, binutils and bison installed. +For example on Debian GNU/Linux you should be able to get going with + + sudo aptitude install git golang build-essential bison qemu-system + +After the repository clone, you can give a look with + + git submodule init # we have a lot of submodules + git submodule update --init --recursive + ./hacking/devshell.sh # start a shell with appropriate environment + ./hacking/continuous-build.sh # to build everything + ./hacking/runOver9P.sh # to start the system in QEMU + ./hacking/drawterm.sh # to connect Jehanne with drawterm + +## Hacking + +Jehanne is a work in progress. +Forks and pull requests are welcome. + +In [doc/hacking](./doc/hacking/) you will find all you +need to know about its principles, design and weirdness. + +There's a lot of work to do, in every area of the system. + +To coordinate our efforts, we use the github issues. +To discuss (and even debate) about the design and development of Jehanne +we use the [JehanneOS mailing list][mailinglist]: please join and present +yourself and your attitudes. [simplicity]: http://plato.stanford.edu/entries/simplicity/ "What is simplicity?" [harvey]: http://harvey-os.org "Harvey OS" [plan9]: https://github.com/brho/plan9 "UC Berkeley release of Plan 9 under the GPLv2" [nix]: https://github.com/rminnich/nix-os [arc]: https://en.wikipedia.org/wiki/Joan_of_Arc "Jeanne d'Arc" +[lic]: ./LICENSE.md "A summary of Jehanne licensing" +[mailinglist]: https://groups.google.com/forum/#!forum/jehanneos