on master help sign in
tighten up formatting
commitd7f7e13f5e99de999c4ee4e767a66fda776620ef authorJosh Lehman <josh@starcity.com> dateThu 11 Mar 2021, 11:38 (6 years ago) parent987cb5e
6 files changed+54−84
system-overview/_index.md+11−8 system-overview/arvo.md+10−10 system-overview/azimuth.md+5−8 system-overview/hoon.md+8−16 system-overview/nock.md+8−19 system-overview/vere.md+12−23
system-overview/_index.md+11−8
@@ -10,15 +10,18 @@ network of general-purpose personal servers. Each server on this network is a
1010deterministic computer called an 'urbit' that runs on a Unix-based virtual
1111machine.
1212
13−The current Urbit stack includes (among other things):
13+The Urbit stack is primarily comprised of:
1414
15−- Arvo: the functional operating system of each urbit, written in Hoon.
16−- Azimuth: the Urbit identity layer, built on the Ethereum blockchain.
17−- Hoon: a strictly typed functional programming language whose standard library
18− includes a Hoon-to-Nock compiler.
19−- Nock: a low-level combinator language whose formal specification fits readably on a t-shirt.
20−- Vere: a Nock interpreter and Unix-based virtual machine that mediates between
21− each urbit and the Unix software layer.
15+- [Arvo](@/docs/system-overview/arvo.md): the functional operating system of
16+ each urbit, written in Hoon.
17+- [Hoon](@/docs/system-overview/hoon.md): a strictly typed functional
18+ programming language whose standard library includes a Hoon-to-Nock compiler.
19+- [Nock](@/docs/system-overview/nock.md): a low-level combinator language whose
20+ formal specification fits readably on a t-shirt.
21+- [Vere](@/docs/system-overview/vere.md): a Nock interpreter and Unix-based
22+ virtual machine that mediates between each urbit and the Unix software layer.
23+- [Azimuth](@/docs/system-overview/azimuth.md): the Urbit identity layer, built
24+ on the Ethereum blockchain.
2225
2326## Anatomy of a personal server
2427
system-overview/arvo.md+10−10
@@ -4,17 +4,17 @@ weight = 10
44template = "doc.html"
55+++
66
7−Arvo is a purely functional, [non-preemptive](https://en.wikipedia.org/wiki/Cooperative_multitasking)
8−OS, written in Hoon, that serves as the event manager of your urbit.
9−It can upgrade itself from over the network without downtime. The Arvo kernel
10−proper is quite simple -- it's only about 600 lines of code, excluding its
11−various modules.
7+Arvo is a purely functional,
8+[non-preemptive](https://en.wikipedia.org/wiki/Cooperative_multitasking) OS,
9+written in Hoon, that serves as the event manager of your urbit. It can upgrade
10+itself from over the network without downtime. The Arvo kernel proper is quite
11+simple -- it's only about 600 lines of code, excluding its various modules.
1212
13−The Urbit transition function is implemented in Arvo. Upon being 'poked' by
14−Vere with the pair of `<input event, state>`, Arvo directs the event to the
15−appropriate OS module. The result of each Vere 'poke' is a pair of
16−`<output events, new state>`. Events are typed, and each has an explicit
17−call-stack structure indicating the event's source module in Arvo.
13+The Urbit transition function is implemented in Arvo. Upon being 'poked' by Vere
14+with the pair of `<input event, state>`, Arvo directs the event to the
15+appropriate OS module. The result of each Vere 'poke' is a pair of `<output
16+events, new state>`. Events are typed, and each has an explicit call-stack
17+structure indicating the event's source module in Arvo.
1818
1919For a more in-depth technical introduction, see [Arvo Overview](@/docs/arvo/overview.md).
2020
system-overview/azimuth.md+5−8
@@ -25,13 +25,10 @@ is the neighborhood that you live in.
2525
2626## Further Reading
2727
28−### [Azimuth](@/docs/azimuth/azimuth.md)
29−
30−An overview of the Ethereum-based public key infrastructure utilized by Urbit.
31−
32−### [Advanced Azimuth Tools](@/docs/azimuth/advanced-azimuth-tools.md)
33−
34−Expert-level tooling for generating, signing, and sending Azimuth-related
35−transactions from within Urbit itself.
28+* [Azimuth](@/docs/azimuth/azimuth.md): An overview of the Ethereum-based public
29+ key infrastructure utilized by Urbit.
30+* [Advanced Azimuth Tools](@/docs/azimuth/advanced-azimuth-tools.md):
31+ Expert-level tooling for generating, signing, and sending Azimuth-related
32+ transactions from within Urbit itself.
3633
3734
system-overview/hoon.md+8−16
@@ -17,20 +17,12 @@ about 3000 lines of Hoon.
1717
1818## Further Reading
1919
20−### [Hoon Overview](@/docs/hoon/overview.md)
21−
22−Learn why we created a new language to build Urbit in.
23−
24−### [Hoon School](@/docs/hoon/hoon-school/_index.md)
25−
26−A collection of tutorials designed to teach you the Hoon language.
27−
28−### [Guides](@/docs/hoon/guides/_index.md)
29−
30−Guides to specific Hoon tasks, including testing, command-line interface apps,
31−and parsing.
32−
33−### [Reference](@/docs/hoon/reference/_index.md)
34−
35−Reference material primarily intended for Hoon developers with some experience.
20+* [Hoon Overview](@/docs/hoon/overview.md): Learn why we created a new language
21+ to build Urbit in.
22+* [Hoon School](@/docs/hoon/hoon-school/_index.md): A collection of tutorials
23+ designed to teach you the Hoon language.
24+* [Guides](@/docs/hoon/guides/_index.md): Guides to specific Hoon tasks,
25+including testing, command-line interface apps, and parsing.
26+* [Reference](@/docs/hoon/reference/_index.md): Reference material primarily
27+ intended for Hoon developers with some experience.
3628
system-overview/nock.md+8−19
@@ -22,24 +22,13 @@ pair of nouns. Nouns are acyclic and expose no pointer equality test.
2222
2323## Further Reading
2424
25−### [Nock Definition](@/docs/nock/definition.md)
26−
27−The Nock specification.
28−
29−### [An explanation of Nock](@/docs/nock/explanation.md)
30−
31−A comprehensive walkthrough of the Nock spec.
32−
33−### [Nock by hand](@/docs/nock/example.md)
34−
35−Learn Nock by example.
36−
37−### [Nock Implementations](@/docs/nock/implementations.md)
38−
39−The many ways that Nock has been implemented.
40−
41−### [Nock for Everyday Coders](https://blog.timlucmiptev.space/part1.html)
42−
43−A comprehensive guide to Nock by community member `~timluc-miptev`.
25+* [Nock Definition](@/docs/nock/definition.md): The Nock specification.
26+* [An explanation of Nock](@/docs/nock/explanation.md): A comprehensive
27+ walkthrough of the Nock spec.
28+* [Nock by hand](@/docs/nock/example.md): Learn Nock by example.
29+* [Nock Implementations](@/docs/nock/implementations.md): The many ways that
30+ Nock has been implemented.
31+* [Nock for Everyday Coders](https://blog.timlucmiptev.space/part1.html): A
32+ comprehensive guide to Nock by community member `~timluc-miptev`.
4433
4534
system-overview/vere.md+12−23
@@ -31,26 +31,15 @@ licensed.
3131
3232## Further Reading
3333
34−### [C runtime system](@/docs/vere/runtime.md)
35−
36−The Urbit interpreter is built on a Nock runtime system written
37−in C, `u3`. This section is a relatively complete description.
38−
39−### [c3: C in Urbit](@/docs/vere/c.md)
40−
41−Under `u3` is the simple `c3` layer, which is just how we write C
42−in Urbit.
43−
44−### [u3: Land of nouns](@/docs/vere/nouns.md)
45−
46−The division between `c3` and `u3` is that you could theoretically
47−imagine using `c3` as just a generic C environment. Anything to do
48−with nouns is in `u3`.
49−
50−### [u3: API overview by prefix](@/docs/vere/api.md)
51−
52−A walkthrough of each of the `u3` modules.
53−
54−### [How to write a jet](@/docs/vere/jetting.md)
55−
56−A jetting guide by for new Urbit developers.
34+* [C runtime system](@/docs/vere/runtime.md): The Urbit interpreter is built on
35+a Nock runtime system written in C, `u3`. This section is a relatively complete
36+description.
37+* [c3: C in Urbit](@/docs/vere/c.md): Under `u3` is the simple `c3` layer, which
38+is just how we write C in Urbit.
39+* [u3: Land of nouns](@/docs/vere/nouns.md): The division between `c3` and `u3`
40+is that you could theoretically imagine using `c3` as just a generic C
41+environment. Anything to do with nouns is in `u3`.
42+* [u3: API overview by prefix](@/docs/vere/api.md): A walkthrough of each of the
43+ `u3` modules.
44+* [How to write a jet](@/docs/vere/jetting.md): A jetting guide for new Urbit
45+ developers.