@@ -1,172 +0,0 @@
2−title = "Source layout"
6−When you boot an urbit, we transfer the current version of the Arvo
7−operating environment to your urbit over our network. That is, the
8−source for the system lives on your urbit. Here we'll take a brief tour
9−through the structure of a base Arvo desk.
11−Looking at the top level of
12−[the Arvo repo](http://github.com/urbit/arvo), or any urbit desk that
13−has been mounted to unix, we see something like:
30−Running the command `+ls %` from your urbit's Dojo produces something similar:
33−~your-urbit:dojo> +ls %
34−LICENSE/txt app/ gen/ lib/ mar/ ren/ sec/com/ sur/ sys/ tests/ web/
37−Let's step through, directory by directory.
41−This is where the Arvo kernel lives. `sys/` contains:
45−[Hoon](/docs/learn/arvo/hoon) is our programming language. Since Hoon
46−compiles itself, the language is actually specified in this source file.
50−Zuse is the Arvo standard library.
54−This is the source file for the central Arvo event dispatcher.
58−Vanes are sort of like kernel modules. These are worth listing one by one:
60−##### `sys/vane/ames.hoon`
62−Ames is our network protocol.
64−##### `sys/vane/behn.hoon`
66−Behn is a simple timer.
68−##### `sys/vane/clay.hoon`
70−Clay is our filesystem.
72−##### `sys/vane/dill.hoon`
74−Dill is our terminal driver.
76−##### `sys/vane/eyre.hoon`
78−Eyre is our webserver.
80−##### `sys/vane/ford.hoon`
82−Ford is our build system.
84−##### `sys/vane/gall.hoon`
86−Gall is our application model.
88−##### `sys/vane/jael.hoon`
90−Jael is our secret vault.
92−##### `sys/vane/xmas.hoon`
94−Xmas is the new Ames, which will go live in our next big release.
96−That's it. That's the whole system.
102−This is where [Gall](../gall) apps live. Gall apps are stateful
103−servers, sort of like unix daemons. One familiar one is `app/hall.hoon` which is
104−the source code for [Hall](../hall), the Urbit messaging transport
105−layer. And there's also `app/dojo.hoon` — that's your shell.
111−`gen/` holds generators. Generators are short Dojo scripts.
117−`lib/` holds shared libraries for programs. `lib/sole` is a good
118−example — that's the console library that's shared by both Dojo in the
119−command line, and the Dojo web client.
125−This is where marks live. Marks are data type definitions used by Ford.
126−A mark is like a mime-type, but specified in executable code.
132−These are web renderers. A renderer handles web requests of a particular
135−Default web requests in urbit are handled as a `.urb`, which is caught
136−by the `urb.hoon` renderer. This wraps the request in our default `CSS`
137−and `JS` and adds some routing magic for certain paths.
143−Here are security drivers that Urbit uses to log into the APIs of various
150−`sur/` contains shared data structures. Files in `sur` are like header
157−`tests/` is the conventional place to put tests that use the +test generator and
164−Here are files publicly accessible to the web, as made possible by
171−This is the homepage for your urbit. You'll see it at
172−`http://localhost:8080/` or `https://your-urbit.urbit.org/`.