“But I don’t want to go among mad people," Alice remarked.
"Oh, you can’t help that," said the Cat: "we’re all mad here. I’m mad. You’re mad."
"How do you know I’m mad?" said Alice.
"You must be," said the Cat "or you wouldn't have come here.”
Welcome to the Wonderland in the middle of Inferno!
We are the DHT-based distributed virtual filesystem based on Vita Nuova's Inferno Operating System.
The following steps represent installation process on Linux, if you want to run it on Mac, replace Linux with MacOSX
# Set up environment variables
export INFERNO_ROOT=$(pwd)
export PATH=$INFERNO_ROOT/Linux/386/bin:$PATH
export EMU=-r$INFERNO_ROOT
# Save them for future use
echo "export INFERNO_ROOT=$INFERNO_ROOT" >> ~/.bashrc
echo "export PATH=\$INFERNO_ROOT/Linux/386/bin:\$PATH" >> ~/.bashrc
echo "export EMU=-r\$INFERNO_ROOT" >> ~/.bashrc
# Configure mkconfig
perl -i -pe 's/^ROOT=.*/ROOT=$ENV{INFERNO_ROOT}/m' mkconfig
perl -i -pe 's/^SYSHOST=.*/SYSHOST=Linux/m' mkconfig
perl -i -pe 's/^OBJTYPE=.*/OBJTYPE=386/m' mkconfig
sh makemk.sh
mk nuke
mk install
mk CONF=emu-g install
emu-g
We strongly suggest installing rlwrap
and run it this way:
rlwrap -asalt emu-g
Or, if you want GUI, run:
emu
Here and below, 127.0.0.1 and 1200[?] are the sample address and ports accordingly
The only requirement is that bootstrap nodes should be directly accessible by others
echo > /lib/dht/neis # clear the neighbours list
mount {cheshire udp!127.0.0.1!12001 /lib/dht/neis} /wonderland # mount it on /wonderland
cat /wonderland/cheshire/dht/node # gives you the id of the node - needed later for bootstrap
Start a new terminal / Inferno, then:
# id (AABBCCDD), address and port are the connection credentials of any open node in Wonder
echo AABBCCDD udp!127.0.0.1!12001 >> /lib/dht/neis
mount {cheshire udp!127.0.0.1!12002 /lib/dht/neis} /wonderland
mkdir /tmp/tea
echo export /tmp/tea /devices/teaparty > /wonderland/cheshire/addserver
cd /tmp/tea
echo "Hot tea" > teapot
cd /wonderland/devices/teaparty
cat teapot # Hooray! We're in!
All the code in this repository under initial commit is owned by google code's Inferno mercurial repository.
See file NOTICE for complete license