Mirror of Harvey OS github repository http://harvey-os.org/

Elbing af9cc18bbc Added cmd/ip programs except snoopy 9 роки тому
386 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
acme 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
adm 91d8c86336 Plan 9 from Bell Labs 2013-01-25 11 роки тому
amd64 d476655ce5 A number of changes to get libthread going 9 роки тому
arm 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
cfg c80a88cd7e Plan 9 from Bell Labs 2013-03-23 11 роки тому
cron 4db2188a5b Plan 9 from Bell Labs 2007-10-06 17 роки тому
dist 83d6593e6c Plan 9 from Bell Labs 2013-05-01 11 роки тому
lib 521dace85c Plan 9 from Bell Labs 2014-02-25 10 роки тому
mail 372adb5430 Plan 9 from Bell Labs 2010-01-17 15 роки тому
mips 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
power 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
power64 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
rc f29c1b5abf Plan 9 from Bell Labs 2014-03-20 10 роки тому
sparc 999e4ebda0 ANOTHER round of type fixes. 9 роки тому
sys af9cc18bbc Added cmd/ip programs except snoopy 9 роки тому
usr 0eec6ff7a1 Plan 9 from Bell Labs 2006-01-29 19 роки тому
util dd349eba2a add jsonpretty util 9 роки тому
.gitignore 3a4305e6e1 Ignore tmp 9 роки тому
BUGLIST e23170fd6a Add a BUGLIST file 9 роки тому
BUILD c0172889a6 Revert "create bin/ subdirectories in BUILD, add BUILD qrun command to boot current kernel with utils/QRUN" 9 роки тому
BUILD.conf 5166f2fb0b build.go: allow definition of an installdir, instead of requiring "mv" commands 9 роки тому
LICENSE 25de748849 GNU General Public License 9 роки тому
LICENSE.afpl 58309a73b6 Plan 9 from Bell Labs 2003-06-29 21 роки тому
LICENSE.gpl 25de748849 GNU General Public License 9 роки тому
NOTICE 25de748849 GNU General Public License 9 роки тому
README 860644a17a add go9p/ufs instructions to readme 9 роки тому
l 4761d30948 Simple script to enable remote console 9 роки тому

README

This is Plan 9 for amd64 built with gcc (and soon, I hope, clang).

This file is a quick list of instructions to get you started quickly.


Prerequisites
=============

To build harvey and play with it, you need to have git, golang, qemu, gcc,
binutils and bison installed. On a Debian, Ubuntu or other .deb system,
you should be able to get going with

sudo aptitude install git golang build-essential bison qemu-system


GERRIT
======

We use gerrithub.io for code-review. If you want to submit changes, go to

https://review.gerrithub.io/#/admin/projects/elbing/harvey

and check out the repository from gerrithub rather than github. The clone
command will probably look something like this:

git clone ssh://USERNAME@review.gerrithub.io:29418/elbing/harvey

you'll need to run a few commands inside the top-level directory to get set
up for code-review:

cd harvey
curl -Lo .git/hooks/commit-msg
http://review.gerrithub.io/tools/hooks/commit-msg
chmod u+x .git/hooks/commit-msg
git config remote.origin.push HEAD:refs/for/master

You're now all set, you can build the whole thing just by running

./BUILD all

which should take maybe a minute.

Once building is complete, you can try booting the kernel with qemu

(cd sys/src/9/k10 && sh ../../../../util/QRUN)

Next you should find a bug somewhere in harvey and fix it. In general, the
util/build tool "just works" in any subdirectory, so you can also build just
the stuff you are looking at, too, eg.

cd sys/src/cmd/aux
build aux.json

Let's say you found a bug and the files you needed to change were
sys/src/9/ip/tcp.c and sys/src/9/ip/ipaux.c. To submit this for review, you do

git add sys/src/9/ip/tcp.c
git add sys/src/9/ip/ipaux.c
git diff --staged # to check that the patch still makes sense
git commit -m 'your description of the patch'
git push

Note the lack of qualifiers in the last push command. It is important,
because it needs to be pushed to "origin HEAD:refs/for/master" for review
(and not to master). This will generate a code-review change request, others
will review it, and if it looks good we will merge it to the mainline repo
using gerrithub.io.

If your patch needs further work (you notice something wrong with it yourself,
or someone suggests changes), you can just edit the affected files and then
amend the change list as follows

git add sys/src/9/ip/tcp.c
git commit --amend
git push

More information on using Gerrit can be found on the gerrithub.io website.


Getting go9p to serve your files
================================

The currently recommended way of doing this is to run go9p/ufs as the file
server for harvey. You can get go9p/ufs in the following way

cd util
mkdir go
cd go
export GOPATH=$(pwd)
go get github.com/rminnich/go9p
go get github.com/rminnich/go9p/ufs
go get github.com/rminnich/go9p
go install github.com/rminnich/go9p/ufs
cp bin/ufs ..

After these, you have util/ufs, and you can use

(export HARVEY=$(pwd) && cd sys/src/9/k10 && sh ../../../../util/GO9PRUN)

to boot with ufs serving the harvey directory for your harvey instance. Once
harvey is up, you can telnet onto it with

util/telnet localhost:5555

Where 5555 is forwarded to the harvey instance. This gives you a prompt
without any security. Once you have the prompt, you can mount the harvey
directory as your root like this (10.0.2.2 is what qemu has as the host)

srv tcp!10.0.2.2!5640 k
mount -a /srv/k /


Coverity Scan Build Status src="https://scan.coverity.com/projects/5328/badge.svg"/>