gokrazy/docs/index.html
2020-06-19 08:58:39 +02:00

137 lines
4.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html> <head>
<meta name="generator" content="Hugo 0.71.0-DEV" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>gokrazy - a pure-Go userland for your Raspberry Pi 3 or 4 appliances</title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link href="/jumbotron-narrow.css" rel="stylesheet">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400">
<style type="text/css">
body {
font-family: "Open Sans";
}
.table-striped>tr:nth-child(odd){
background-color:red;
}
</style>
</head>
<body>
<div class="container"><div class="header"><nav>
<ul class="nav nav-pills pull-right">
<li role="presentation" class="active"><a href="/">Home <span class="sr-only">(current)</span></a></li>
<li role="presentation" class=""><a href="/platforms/">Platforms </a></li>
<li role="presentation" class=""><a href="/quickstart/">Quickstart </a></li>
<li role="presentation" class=""><a href="/showcase/">Showcase </a></li>
<li role="presentation" class=""><a href="/userguide/">Userguide </a></li>
<li role="presentation" class=""><a href="https://github.com/gokrazy/gokrazy">Source </a></li>
</ul>
</nav>
<h3 class="text-muted">gokrazy</h3>
</div>
<div class="jumbotron" style="padding: 1em; padding-right: 0; padding-left: 2em; text-align: left">
<img src="logo.svg" width="200" height="217" align="right" text="gokrazy 'crazy gopher' logo">
<h2>gokrazy is a pure-Go userland for your Raspberry Pi 3/4 appliances</h2>
<p>
For a long time, we were unhappy with having to care about security
issues and Linux distribution maintenance on our various Raspberry Pis.
</p>
<p>
Then, we had a crazy idea: what if we got rid of memory-unsafe
languages and all software we dont strictly need?
</p>
<p>
Turns out this is feasible. gokrazy is the result.
</p>
</div>
<div class="row marketing">
<div class="col-lg-6">
<h4>Your app(s) + only 4 moving parts</h4>
<ol style="margin-bottom: 0">
<li>the <a href="https://github.com/gokrazy/kernel">Linux kernel</a></li>
<li>the <a href="https://github.com/gokrazy/firmware">Raspberry Pi firmware files</a></li>
<li>the <a href="https://golang.org/">Go</a> compiler and standard library</li>
<li>the gokrazy userland</li>
</ol>
<p>
All are updated using the same command.
</p>
<h4>Web status interface</h4>
<p>
On a regular Linux distribution, wed largely use systemctls start,
stop, restart and status verbs to manage our applications. gokrazy
comes with a <a href="overview.png">convenient web interface</a> for
seeing process status and stopping/restarting processes.
</p>
<h4>Debugging</h4>
<p>
Sometimes, an interactive <code>busybox</code> session or a quick
<code>tcpdump</code> run are invaluable. <a
href="https://github.com/gokrazy/breakglass">breakglass</a> allows
you to temporarily enable SSH/SCP-based authenticated remote code
execution: scp your statically compiled binary, then run it
interactively via ssh.
</p>
</div>
<div class="col-lg-6">
<h4>Constraints</h4>
<p>
Due to no C runtime environment being present, your code must compile
with the environment variable <code>CGO_ENABLED=0</code>. To
cross-compile for the Raspberry Pi 3 or 4,
use <code>GOARCH=arm64</code>. If your program still builds, youre
good to go!
</p>
<h4>Network updates</h4>
<p>
After building a new gokrazy image on your computer, you can easily
update an existing gokrazy installation in-place thanks to the A/B
partitioning scheme we use. Just specify the <code>-update</code>
flag when building your new image.
</p>
<h4>Minimal state and configuration</h4>
<p>
A tiny amount of configuration is built into the images (e.g.
hostname, password, serial console behavior). In general, we prefer
auto-configuration (e.g. DHCP) over config files. If you need more
configurability, you may need to replace some of our programs.
</p>
</div>
</div>
<footer class="footer" style="text-align: center">
<p>© 2017 gokrazy authors (Michael Stapelberg and contributors)</p>
</footer>
</div>
</body>
</html>
</div>
</body>
</html>