Jehanne Operating System http://jehanne.h--k.it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Giacomo Tesio 95946e7974 Merge branch 'master' of https://gitea.it/JehanneOS/jehanne 11 months ago
arch last minutes cleanup 11 months ago
cfg libposix: deep refactor; add sys/posixly command 5 years ago
doc Clean trailing spaces 4 years ago
hacking@cb38e778ee devtools: fix kvm related issues and enable u9fs debugging 11 months ago
lib rc: use some uppercase variables (PATH, USER...) 5 years ago
mnt Added root folders mnt/ pkgs/ and tmp/ 7 years ago
pkgs Added root folders mnt/ pkgs/ and tmp/ 7 years ago
qa new build: get rid of Go with few rc scripts. 11 months ago
sys last minutes cleanup 11 months ago
tmp Added root folders mnt/ pkgs/ and tmp/ 7 years ago
usr/glenda rc: fix variables in /usr/glenda/lib/profile 5 years ago
.gitignore .gitignore 11 months ago
.gitmodules new build: move devtools to gitea.it 11 months ago
.travis.yml travis-ci: try to fix ppa 3 5 years ago
LICENSE.md Clarify Forsyth's and 9front's copyrights 5 years ago
POLITICS.md Update POLITICS.md 3 years ago
README.md README.md: contribute to 9front! 11 months ago
jehanne.rc.build new build: get rid of Go with few rc scripts. 11 months ago

README.md

Jehanne

Jehanne is a simple operating system.

Jehanne has noble ancestors:

  • most of userland tools, a lot of wisdom and some kernel modules, come from 9front
  • the kernel is a fork of Charles Forsyth's Plan9-9k
  • most of the build system and some valuable piece of code come from Harvey OS

Still the project is named after a humble peasant, the famous French heretic Joan of Arc, because it diverges deeply from the design and conventions of its predecessors.

Overview

This is the main repository, used to build the system as a whole:

  • arch contains one folder for each 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)
  • sys is the system folder
    • include contains portable C headers
    • lib contains data and scripts used by the running system
    • man contains manual pages
    • src contains the sources of the system
  • doc contains useful documentation for Jehanne development
    • license contains detailed info about Jehanne licenses
    • hacking contains details about how to build and modify Jehanne
  • hacking contains the utilities used to develop Jehanne
  • qa contains the regression tests
  • mnt contains default mount targets
  • usr contains the users' folders
  • pkgs will contains the installed packages

The running system also includes supplemental folders like /lib, /cmd and /dev that are bound during the boot as required.

Build

To build Jehanne and play with it, you need to have git, qemu, gcc, binutils and bison installed. For example on Debian GNU/Linux 10 you should be able to get going with

sudo apt-get install libxt-dev libtool-bin git build-essential flex bison qemu-system autoconf autoconf-archive curl automake

After the repository clone, you can give a look with

git submodule init                               # we have a lot of submodules
git submodule update --init --recursive --remote --depth 1
./hacking/devshell.sh                            # start a shell with appropriate environment
./hacking/continuous-build.sh                    # to build everything (will take a while)
./hacking/runOver9P.sh                           # to start the system in QEMU
./hacking/drawterm.sh                            # to connect Jehanne with drawterm

Hacking

Jehanne is a work in progress.

The limited amount of time that I can dedicate to its development and the pending licensing issues made me realize that Jehanne is really a personal Research OS, as it was correctly defined, years ago, by Aiju.

So I decided to adopt the contribution strategy of a more mature OS, like TuaruOS is: contributions in the form of code should be discussed in advance. Feel free to reach me on the Fediverse!

However, if you really want to contribute to Jehanne, my suggestion is to contribute to 9front first: 9front is the most mature and stable among Plan 9's evolutions, it's developed by great hackers with a great sense of humor. :-D

Contributing to 9front will be much more fun and formative than contributing to Jehanne, and I will happily port your code when ready.