on master help sign in
deletes layout.md
commit373a3dc0de3954eb7c2b142c6199d95a7353aba7 authorRobert <robert@tlon.io> dateThu 23 May 2019, 15:31 (7 years ago) parentae57492
1 file changed−172
using/layout.md−172
using/layout.mddeleted−172
@@ -1,172 +0,0 @@
1−+++
2−title = "Source layout"
3−weight = 5
4−template = "doc.html"
5−+++
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.
10−
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:
14−
15−```
16−app/
17−arvo/
18−gen/
19−lib/
20−mar/
21−ren/
22−sec/
23−sur/
24−sys/
25−tests/
26−web/
27−web.md
28−```
29−
30−Running the command `+ls %` from your urbit's Dojo produces something similar:
31−
32−```
33−~your-urbit:dojo> +ls %
34−LICENSE/txt app/ gen/ lib/ mar/ ren/ sec/com/ sur/ sys/ tests/ web/
35−```
36−
37−Let's step through, directory by directory.
38−
39−## sys/
40−
41−This is where the Arvo kernel lives. `sys/` contains:
42−
43−##### `sys/hoon.hoon`
44−
45−[Hoon](/docs/learn/arvo/hoon) is our programming language. Since Hoon
46−compiles itself, the language is actually specified in this source file.
47−
48−##### `sys/zuse.hoon`
49−
50−Zuse is the Arvo standard library.
51−
52−##### `sys/arvo/hoon`
53−
54−This is the source file for the central Arvo event dispatcher.
55−
56−##### `sys/vane`
57−
58−Vanes are sort of like kernel modules. These are worth listing one by one:
59−
60−##### `sys/vane/ames.hoon`
61−
62−Ames is our network protocol.
63−
64−##### `sys/vane/behn.hoon`
65−
66−Behn is a simple timer.
67−
68−##### `sys/vane/clay.hoon`
69−
70−Clay is our filesystem.
71−
72−##### `sys/vane/dill.hoon`
73−
74−Dill is our terminal driver.
75−
76−##### `sys/vane/eyre.hoon`
77−
78−Eyre is our webserver.
79−
80−##### `sys/vane/ford.hoon`
81−
82−Ford is our build system.
83−
84−##### `sys/vane/gall.hoon`
85−
86−Gall is our application model.
87−
88−##### `sys/vane/jael.hoon`
89−
90−Jael is our secret vault.
91−
92−##### `sys/vane/xmas.hoon`
93−
94−Xmas is the new Ames, which will go live in our next big release.
95−
96−That's it. That's the whole system.
97−
98−---
99−
100−## app/
101−
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.
106−
107−---
108−
109−## gen/
110−
111−`gen/` holds generators. Generators are short Dojo scripts.
112−
113−---
114−
115−## lib/
116−
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.
120−
121−---
122−
123−## mar/
124−
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.
127−
128−---
129−
130−## ren/
131−
132−These are web renderers. A renderer handles web requests of a particular
133−type.
134−
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.
138−
139−---
140−
141−## sec/
142−
143−Here are security drivers that Urbit uses to log into the APIs of various
144−non-Urbit services.
145−
146−---
147−
148−## sur/
149−
150−`sur/` contains shared data structures. Files in `sur` are like header
151−files in C.
152−
153−---
154−
155−## tests/
156−
157−`tests/` is the conventional place to put tests that use the +test generator and
158−lib/test/*
159−
160−---
161−
162−## web/
163−
164−Here are files publicly accessible to the web, as made possible by
165−[Eyre](../eyre).
166−
167−---
168−
169−## web.md
170−
171−This is the homepage for your urbit. You'll see it at
172−`http://localhost:8080/` or `https://your-urbit.urbit.org/`.