-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhow-a-computer-should-work.html
More file actions
167 lines (143 loc) · 5.02 KB
/
how-a-computer-should-work.html
File metadata and controls
167 lines (143 loc) · 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>How a Computer Should Work — Joe Maloney</title>
<style>
body {
font-family: -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;
max-width: 680px;
margin: 40px auto;
padding: 0 20px;
color: #222;
line-height: 1.7;
font-size: 1.05em;
}
.backlink {
font-size: 0.9em;
color: #0366d6;
text-decoration: none;
display: inline-block;
margin-bottom: 24px;
}
.backlink:hover { text-decoration: underline; }
header {
border-bottom: 1px solid #ccc;
padding-bottom: 20px;
margin-bottom: 32px;
}
h1 {
font-size: 2em;
line-height: 1.25;
margin: 0 0 8px;
}
header .subtitle {
font-size: 1.1em;
color: #555;
margin: 0 0 12px;
}
header .meta {
font-size: 0.9em;
color: #888;
margin: 0;
}
h2 {
font-size: 1.3em;
margin-top: 2em;
margin-bottom: 0.4em;
}
p { margin: 0 0 1.1em; }
a { color: #0366d6; text-decoration: none; }
a:hover { text-decoration: underline; }
blockquote {
margin: 1.5em 0;
padding: 0.4em 0 0.4em 1.2em;
border-left: 3px solid #ccc;
color: #444;
font-style: italic;
}
blockquote cite {
display: block;
margin-top: 0.6em;
font-style: normal;
font-size: 0.9em;
color: #888;
}
footer {
margin-top: 3em;
padding-top: 16px;
border-top: 1px solid #eee;
color: #888;
font-size: 0.9em;
}
</style>
</head>
<body>
<a class="backlink" href="index.html">← Back to home</a>
<header>
<h1>How a Computer Should Work</h1>
<p class="subtitle">The case for an offline-first appliance, simple enough for a mere mortal.</p>
<p class="meta">Joe Maloney · April 6, 2026</p>
</header>
<blockquote>
And the thing about an operating system is that you're never ever
supposed to see it. Because nobody really uses an operating system;
people use programs on their computer. And the only mission in life of
an operating system is to help those programs run.
<cite>— Linus Torvalds</cite>
</blockquote>
<p>Operating systems today fail to meet this goal. So let's make an
appliance instead.</p>
<h2>Make it an appliance</h2>
<p>The system should consume as little space as possible. It should be
possible to build the system and its applications on any low-resource
machine — so that even the lowest-tier, no-cost CI/CD options in the
cloud can build it. Every machine, new and old, should be able to run it.</p>
<h2>Boot quietly, boot welcoming</h2>
<p>The computer should boot the appliance with not a single line of text,
unless the user invokes a shortcut to show verbose logging or a recovery
command line. It should boot with a light background.</p>
<h2>Login without the internet</h2>
<p>When the computer is booted, if a user must log in, it should never
require an internet connection to do so.</p>
<p>If a user wants to boot straight to a desktop and never enter a password
at all, they should be able to. This could work by letting the user create
an account with no password, or by selecting a disposable guest account
that runs entirely in memory and is never saved.</p>
<h2>Applications you actually own</h2>
<p>A user should be able to download applications from the internet without
signing in to anything. They should be able to copy an application to a
flash drive, plug that drive into a system that has no internet connection,
and use the application there — forever, with no connection ever
required.</p>
<h2>Upgrade without erasing</h2>
<p>If the user decides to upgrade the computer, they should be able to
download an ISO and boot it to upgrade only the system — without
erasing the disk, and while preserving the user's data and applications.</p>
<h2>A server with no setup</h2>
<p>If a user has ten machines and wants to set one up as a server, they
should be able to do exactly that: create user accounts on it, then boot
the other systems on the network, run applications, or log in over the
network. There should be no setup required for a single server.</p>
<h2>Old hardware is good hardware</h2>
<p>With new hardware made expensive by AI demand and other shortages, it
doesn't make sense to support only new devices. A user should be able to
buy nearly any refurbished machine and run both the appliance and the
desktop on it.</p>
<p>If I want to write books, make music, edit photos, or edit videos
— why do I need an always-on, internet-connected machine? The answer
is that I don't.</p>
<h2>Closing Thoughts</h2>
<p>I just want a system that gets out of the way and lets me make things
— quietly, on my own terms, for as long as the hardware lasts. That's
how a computer should work.</p>
<footer>
Joe Maloney ·
<a href="https://github.com/pkgdemon">github.com/pkgdemon</a>
</footer>
</body>
</html>