docs: README, plan, guides and the site describe what is built now
README: rewritten around what runs (Linux software, Xorg, apk, Linux's drivers), the honest gaps, measured numbers. plan/: 1.0.md is the finish line, where each clause of the acceptance test stands, and the register (one failing clause: a root that survives a reboot); built plans (foundations, hybrid, alpine, xorg) and the decided-against one (wayland) are gone, their content lives in architecture/; roadmap.md is only what is still open. guides: building/layout/testing/adding-a-driver (Linux code may be used). history: four entries (ls -lR, TLB shootdowns, MDIO 0x02460246, netlink MSG_TRUNC). Website: cards, stack, download page, docs index. Code comments that pointed at deleted plan docs point at the architecture docs. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EVRhxi9zpdW2uDUN4FVcao
This commit is contained in:
parent
2556a955b3
commit
cb3d28e3d6
57 changed files with 685 additions and 2121 deletions
|
|
@ -30,7 +30,7 @@ is a token. A hex value in that file means the system is missing something, and
|
|||
the answer is to add it to Niveus rather than to work around it here.
|
||||
|
||||
What that replaced was a 21 KB `style.css` that transcribed
|
||||
[`include/gfx/theme.h`](../../include/theme.h) by hand — palette, type scale,
|
||||
[`include/gfx/theme.h`](../../include/gfx/theme.h) by hand — palette, type scale,
|
||||
shadows, the lot. The intent was right and the mechanism was a copy: two files
|
||||
that had to be kept in step by remembering to. Now the whole identity is one
|
||||
declaration, in the `<head>` of each page:
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
["architecture/syscalls.md", "Syscalls"],
|
||||
["architecture/filesystem.md", "The VFS"],
|
||||
["architecture/schfs.md", "SchFS"],
|
||||
["architecture/scff.md", "SCFF"],
|
||||
["architecture/fat.md", "FAT"],
|
||||
["architecture/terminals.md", "Virtual terminals"],
|
||||
["architecture/devices.md", "Device model"],
|
||||
|
|
@ -38,6 +39,8 @@
|
|||
["architecture/audio.md", "Audio"],
|
||||
["architecture/networking.md", "Networking"],
|
||||
["architecture/init.md", "init"],
|
||||
["architecture/packages.md", "Packages (apk)"],
|
||||
["architecture/desktop.md", "The desktop (Xorg)"],
|
||||
["architecture/ldls.md", "Linux drivers (LDLS)"],
|
||||
["architecture/debugging.md", "Debugging"]
|
||||
]},
|
||||
|
|
@ -51,9 +54,8 @@
|
|||
{ group: "Plan", items: [
|
||||
["plan/README.md", "What plan/ is for"],
|
||||
["plan/roadmap.md", "Roadmap"],
|
||||
["plan/foundations.md", "Foundations"],
|
||||
["plan/wayland.md", "Wayland"],
|
||||
["plan/hybrid.md", "Hybrid kernel"],
|
||||
["plan/gpu.md", "The GPU"],
|
||||
["plan/finch.md", "Finch"],
|
||||
["plan/schapi.md", "SchAPI"]
|
||||
]},
|
||||
{ group: "History", items: [
|
||||
|
|
|
|||
|
|
@ -66,33 +66,34 @@
|
|||
<p class="nv-prose">
|
||||
SchOS ships as one bootable ISO. It boots on UEFI, runs entirely from
|
||||
RAM, and touches nothing on the machine unless you tell it to — there is
|
||||
no installer yet, and that is the point of trying it this way.
|
||||
no installer yet, and that is the point of trying it this way. It comes up with
|
||||
Xorg, Window Maker and Alpine's package manager.
|
||||
</p>
|
||||
|
||||
<div class="nv-cluster">
|
||||
<a class="nv-button nv-button--primary nv-button--lg" href="releases/schos.iso" download>Download the ISO</a>
|
||||
<a class="nv-button nv-button--primary nv-button--lg" href="https://pandor.pl/git/nexoniarz/SchOS/releases">Download the ISO</a>
|
||||
<a class="nv-button nv-button--lg" href="#build">Build it yourself</a>
|
||||
</div>
|
||||
|
||||
<p class="nv-caption">
|
||||
<code class="nv-code">schos.iso</code> · about 62 MB · UEFI x86-64 ·
|
||||
nothing is written to your disks
|
||||
<code class="nv-code">schos.iso</code> · a few hundred MB · UEFI x86-64 ·
|
||||
nothing is written to your disks · only the newest release keeps its ISO
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- The support table. Deliberately not a compatibility list: one Chromebox
|
||||
is the entire bare-metal record, and a longer table would be fiction. -->
|
||||
<!-- The support table. Deliberately not a compatibility list: three machines
|
||||
are the entire bare-metal record, and a longer table would be fiction. -->
|
||||
<article class="nv-card nv-card--elevated">
|
||||
<div class="nv-card__header">
|
||||
<div>
|
||||
<p class="nv-overline nv-text-tertiary">Before you do</p>
|
||||
<h2 class="nv-card__title">This has booted on exactly one real machine</h2>
|
||||
<h2 class="nv-card__title">This has booted on three real machines</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nv-card__body nv-text-secondary">
|
||||
Everything below QEMU is honest reporting rather than a compatibility
|
||||
list. SchOS drives real hardware, and it has been run on a very small
|
||||
number of it.
|
||||
number of it — from a USB stick, each time.
|
||||
</div>
|
||||
<div class="nv-card__body">
|
||||
<div class="nv-table-frame">
|
||||
|
|
@ -103,8 +104,16 @@
|
|||
<td class="nv-table__actions"><span class="nv-badge nv-badge--success">boots</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Asus Chromebox <span class="nv-text-tertiary">Guado CN62</span></td>
|
||||
<td class="nv-table__actions"><span class="nv-badge nv-badge--warning">under test</span></td>
|
||||
<td>AMD B550 desktop <span class="nv-text-tertiary">Ryzen 5 4600G</span></td>
|
||||
<td class="nv-table__actions"><span class="nv-badge nv-badge--success">boots</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ASUS TUF A15 laptop <span class="nv-text-tertiary">Ryzen, RTL8168H</span></td>
|
||||
<td class="nv-table__actions"><span class="nv-badge nv-badge--warning">boots, network under test</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HP all-in-one <span class="nv-text-tertiary">Ivy Bridge, 2012</span></td>
|
||||
<td class="nv-table__actions"><span class="nv-badge nv-badge--success">boots</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Anything else</td>
|
||||
|
|
@ -231,11 +240,10 @@
|
|||
<span class="nv-overline nv-text-tertiary">Step three</span>
|
||||
<h3 class="nv-steps__title">A shell</h3>
|
||||
<p class="nv-steps__text">
|
||||
<code class="nv-code">schinit</code> starts one on the console and a
|
||||
second on <code class="nv-code">tty2</code>.
|
||||
<code class="nv-code">mksh</code> is <code class="nv-code">/bin/sh</code>,
|
||||
with <code class="nv-code">zsh</code> beside it and the real toybox
|
||||
userland behind both.
|
||||
<code class="nv-code">schinit</code> starts one on the console and one on
|
||||
each of the next five terminals. <code class="nv-code">zsh</code> is the login shell,
|
||||
<code class="nv-code">/bin/sh</code> is busybox's, and <code class="nv-code">mksh</code> is
|
||||
the static one recovery uses. Type <code class="nv-code">startx</code> for the desktop.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -398,13 +398,13 @@
|
|||
|
||||
<article class="nv-card">
|
||||
<div class="nv-card__header">
|
||||
<h3 class="nv-card__title"><span class="nv-tile nv-tile--sm" style="--nv-tile-tint: var(--nv-color-warning)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="13" height="10" rx="1.5"/><rect x="8" y="10" width="13" height="10" rx="1.5"/></svg></span>Schcom</h3>
|
||||
<span class="nv-badge nv-badge--warning">in progress</span>
|
||||
<h3 class="nv-card__title"><span class="nv-tile nv-tile--sm" ><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="13" height="10" rx="1.5"/><rect x="8" y="10" width="13" height="10" rx="1.5"/></svg></span>The desktop</h3>
|
||||
<span class="nv-badge nv-badge--success">runs</span>
|
||||
</div>
|
||||
<div class="nv-card__body nv-text-secondary">
|
||||
The compositor that will own the display. v0 runs, and descriptor
|
||||
passing — the one thing a Wayland client cannot do without — now
|
||||
exists. What a buffer still needs is a shareable memory object.
|
||||
Xorg on the framebuffer with Window Maker, <code class="nv-code">xterm</code> and a few X clients;
|
||||
NetSurf for the web. No acceleration yet — the GPU is a plan, and the plan is Linux's own
|
||||
<code class="nv-code">amdgpu</code> through LDLS.
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
|
@ -415,7 +415,7 @@
|
|||
</div>
|
||||
<div class="nv-card__body nv-text-secondary">
|
||||
The native programming interface — specified, not built, and deliberately
|
||||
so. It should be designed <i>from</i> the compositor's experience rather
|
||||
so. It should be designed <i>from</i> the desktop's experience rather
|
||||
than before it.
|
||||
</div>
|
||||
</article>
|
||||
|
|
@ -549,19 +549,19 @@
|
|||
<dl class="nv-stat-group">
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">lines of code in <code class="nv-code">kernel/</code> and <code class="nv-code">include/</code></dt>
|
||||
<dd class="nv-stat__value">45,207</dd>
|
||||
<dd class="nv-stat__value">51,893</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">lines of comments alongside them</dt>
|
||||
<dd class="nv-stat__value">16,111</dd>
|
||||
<dd class="nv-stat__value">17,213</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">first-party lines in all</dt>
|
||||
<dd class="nv-stat__value">61,367</dd>
|
||||
<dd class="nv-stat__value">72,766</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">syscalls, Linux numbering</dt>
|
||||
<dd class="nv-stat__value">184</dd>
|
||||
<dd class="nv-stat__value">193</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">drivers in the kernel</dt>
|
||||
|
|
@ -569,15 +569,15 @@
|
|||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">Alpine packages in the live root</dt>
|
||||
<dd class="nv-stat__value">88</dd>
|
||||
<dd class="nv-stat__value">179</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">commits</dt>
|
||||
<dd class="nv-stat__value">253</dd>
|
||||
<dd class="nv-stat__value">289</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">days since the first one</dt>
|
||||
<dd class="nv-stat__value">76</dd>
|
||||
<dd class="nv-stat__value">78</dd>
|
||||
</div>
|
||||
<div class="nv-stat">
|
||||
<dt class="nv-stat__label">patches carried against fastfetch</dt>
|
||||
|
|
|
|||
Loading…
Reference in a new issue