2015-12-22 11:33:57 +01:00
|
|
|
[![Build Status](https://api.travis-ci.org/JehanneOS/jehanne.svg?branch=master)](https://travis-ci.org/JehanneOS/jehanne)
|
2015-12-22 21:44:07 +01:00
|
|
|
[![Coverity Badge](https://scan.coverity.com/projects/7364/badge.svg)](https://scan.coverity.com/projects/jehanne)
|
2015-12-22 11:33:57 +01:00
|
|
|
|
2015-12-21 22:36:41 +01:00
|
|
|
# Jehanne
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
Jehanne is a [simple][simplicity] operating system.
|
2015-12-21 22:36:41 +01:00
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
Jehanne has noble ancestors:
|
2015-12-21 22:36:41 +01:00
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
- most of userland tools, a lot of wisdom and some kernel modules,
|
|
|
|
come from [9front][9front]
|
|
|
|
- the kernel is a fork of Charles Forsyth's [Plan9-9k][plan9-9k]
|
|
|
|
- most of the build system and some valuable piece of code come from [Harvey OS][harvey]
|
|
|
|
|
|
|
|
Still the project is named after a humble peasant,
|
|
|
|
the famous French heretic [Joan of Arc][arc], because it diverges deeply
|
|
|
|
from the design and conventions of its predecessors.
|
2015-12-21 22:36:41 +01:00
|
|
|
|
2015-12-22 11:33:57 +01:00
|
|
|
## Overview
|
|
|
|
|
|
|
|
This is the main repository, used to build the system as a whole:
|
|
|
|
|
|
|
|
- [arch](./arch/) contains one folder for each
|
2016-11-25 17:18:40 +01:00
|
|
|
supported architecture, with specific C headers, libraries and executables
|
|
|
|
(note that by architecture we intend any kind of physical or virtual
|
|
|
|
machine that is able to run code, thus rc is actually an architecture)
|
2015-12-22 11:33:57 +01:00
|
|
|
- [sys](./sys) is the system folder
|
|
|
|
* [include](./sys/include) contains portable C headers
|
2016-11-25 17:18:40 +01:00
|
|
|
* [lib](./sys/lib) contains data and scripts used by the
|
2015-12-22 11:33:57 +01:00
|
|
|
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
|
2016-11-25 17:18:40 +01:00
|
|
|
* [license](./doc/license/) contains detailed info
|
2015-12-22 11:33:57 +01:00
|
|
|
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`,
|
2016-11-25 17:18:40 +01:00
|
|
|
`/cmd` and `/dev` that are bound during the boot as required.
|
2015-12-22 11:33:57 +01:00
|
|
|
|
|
|
|
## Build
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
To build Jehanne and play with it, you need to have git, golang, qemu,
|
|
|
|
gcc, binutils and bison installed.
|
2015-12-22 11:33:57 +01:00
|
|
|
For example on Debian GNU/Linux you should be able to get going with
|
|
|
|
|
2017-01-14 12:39:05 +01:00
|
|
|
sudo aptitude install git golang build-essential flex bison qemu-system
|
2015-12-22 11:33:57 +01:00
|
|
|
|
|
|
|
After the repository clone, you can give a look with
|
|
|
|
|
2015-12-22 11:52:39 +01:00
|
|
|
git submodule init # we have a lot of submodules
|
|
|
|
git submodule update --init --recursive --remote
|
|
|
|
./hacking/devshell.sh # start a shell with appropriate environment
|
2016-11-25 17:18:40 +01:00
|
|
|
./hacking/continuous-build.sh # to build everything (will take a while)
|
2015-12-22 11:52:39 +01:00
|
|
|
./hacking/runOver9P.sh # to start the system in QEMU
|
|
|
|
./hacking/drawterm.sh # to connect Jehanne with drawterm
|
2015-12-22 11:33:57 +01:00
|
|
|
|
|
|
|
## Hacking
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
Jehanne is a work in progress.
|
2015-12-22 11:33:57 +01:00
|
|
|
Forks and pull requests are welcome.
|
|
|
|
|
2016-11-25 17:18:40 +01:00
|
|
|
In [doc/hacking](./doc/hacking/) you will find all you
|
2015-12-22 11:33:57 +01:00
|
|
|
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.
|
2015-12-21 22:36:41 +01:00
|
|
|
|
|
|
|
[simplicity]: http://plato.stanford.edu/entries/simplicity/ "What is simplicity?"
|
|
|
|
[harvey]: http://harvey-os.org "Harvey OS"
|
2016-11-25 17:18:40 +01:00
|
|
|
[9front]: http://9front.org/ "THE PLAN FELL OFF"
|
|
|
|
[plan9-9k]: https://bitbucket.org/forsyth/plan9-9k "Experimental 64-bit Plan 9 kernel"
|
2015-12-21 22:36:41 +01:00
|
|
|
[nix]: https://github.com/rminnich/nix-os
|
|
|
|
[arc]: https://en.wikipedia.org/wiki/Joan_of_Arc "Jeanne d'Arc"
|
2015-12-22 11:33:57 +01:00
|
|
|
[lic]: ./LICENSE.md "A summary of Jehanne licensing"
|
|
|
|
[mailinglist]: https://groups.google.com/forum/#!forum/jehanneos
|
2016-11-25 17:18:40 +01:00
|
|
|
|