html: restore what the rewrite dropped, and bring the builds page current
index.html had lost the Partners and Git header links, the whole Open Graph / Twitter / canonical block, and the "Register for build updates" call to action pointing at /spec.php. Restored from the last good copy (site-mirror, Sep 8) while preserving the newer content the same rewrite added — the CUBE_OP_RANGE section, the 69,638-record figure, the cubelinux0.6+ stats. A surgical merge, not a revert. cubelinux-builds-to-date.html: the build line stopped at CUBE_OP_RANGE (#55). Added format v4's class mask, CUBE_OP_FLAG_SCAN, and the one-frame-for-every-walk change, each named with the gate that checks it. Build numbers for those are left as "—" rather than invented. The test count is corrected 192 -> 204, counted across all 16 workspace members rather than estimated.
This commit is contained in:
@@ -47,7 +47,7 @@
|
||||
<span class="pill">kernel-resident store</span>
|
||||
<span class="pill">a coordinate is an address</span>
|
||||
<span class="pill">a region is a seek</span>
|
||||
<span class="pill">192 tests · 0 failures</span>
|
||||
<span class="pill">204 tests · 0 failures</span>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -59,9 +59,9 @@
|
||||
<h2>1. Where we are now</h2>
|
||||
<ul>
|
||||
<li>The store is <b>kernel-resident</b>, reached through <code>cube(2)</code> (syscall #548): put, get, delete, sync, the cursor walks (enum / spaces), and now the region walk (range).</li>
|
||||
<li>The image is <b>format v3</b> — a space table, a sorted fixed-stride index, and packed values — so a coordinate is an address and a listing streams from its space's first entry.</li>
|
||||
<li>The image is <b>format v3</b> — a space table, a sorted fixed-stride index, and packed values — so a coordinate is an address and a listing streams from its space's first entry. <b>Format v4</b> widens each index entry with a 16-bit class mask, so the next fold writes it; the records already in the store are unchanged by that.</li>
|
||||
<li>The <b>live store on the workhorse is sealed</b> at rest and holds <b>69,638 records</b>; the fold that converted it to v3 preserved every record and every value, byte for byte.</li>
|
||||
<li>The workspace test suite is <b>192 tests, 0 failures</b>, and the kernel's own gate wall is green except the one named in §6.</li>
|
||||
<li>The workspace test suite is <b>204 tests, 0 failures</b>, and the kernel's own gate wall is green except the one named in §6.</li>
|
||||
</ul>
|
||||
|
||||
<h2>2. What CUBE is, in one paragraph</h2>
|
||||
@@ -76,6 +76,9 @@
|
||||
<tr><td>#52</td><td>the kernel records its own boot — the first write of a boot appends one record in a reserved space.</td><td><code>verify-boot-record</code>, the record read back three ways</td></tr>
|
||||
<tr><td>#53</td><td>the addressing primitives move into one shared file, and the driver uses it — no second copy of the key to drift from.</td><td><code>verify-enum</code>, <code>verify-syscall</code></td></tr>
|
||||
<tr><td>#55</td><td><b>CUBE_OP_RANGE</b> — a region is a seek: the box's key span, binary-searched and read forward.</td><td><code>verify-range</code>, against userspace</td></tr>
|
||||
<tr><td>—</td><td><b>format v4</b> — a 16-bit class mask in both the index entry and the log entry, so a record's classification travels with it and survives a fold.</td><td><code>verify-flag-scan</code>, through both layouts, against userspace</td></tr>
|
||||
<tr><td>—</td><td><b>CUBE_OP_FLAG_SCAN</b> — classify at write time, retrieve by class later. The scan names a mask, a mode (<code>any</code>/<code>all</code>) and a scope (one space, or every space); <code>CUBE_OP_PUT</code> takes the mask and <code>CUBE_OP_GET</code> answers with the record's.</td><td><code>verify-flag-scan</code> — 18 matched records diffed line for line against userspace</td></tr>
|
||||
<tr><td>—</td><td><b>one frame for every walk</b> — get, enum, range and flag scan all return the class mask beside the key and value, so nothing has to be re-read to learn what a record is.</td><td><code>verify-enum</code>, <code>verify-syscall</code>, <code>verify-flag-scan</code></td></tr>
|
||||
</table>
|
||||
|
||||
<h2>4. The store and its interface</h2>
|
||||
@@ -120,7 +123,7 @@
|
||||
<tr><td>the kill switch, against a throwaway vault</td><td><code>verify-kill-switch</code></td><td class="ok">pass</td></tr>
|
||||
<tr><td>the boot chain the box uses</td><td><code>verify-efi-boot</code></td><td class="warn">the one red gate</td></tr>
|
||||
</table>
|
||||
<p class="muted">The workspace suite — the crate tests that underpin all of the above — is <b>192 passed, 0 failed</b>. Three defects the gates exist to catch are worth naming, because each was found only by running the real thing: a walk that stopped at its first batch (a short batch is not the end); an index entry written four bytes short (the value length, against the arithmetic); and a store that could be folded exactly once (the second fold read an addressed image with a packed-only reader). Each is now a fixture or a gate.</p>
|
||||
<p class="muted">The workspace suite — the crate tests that underpin all of the above — is <b>204 passed, 0 failed</b>. Three defects the gates exist to catch are worth naming, because each was found only by running the real thing: a walk that stopped at its first batch (a short batch is not the end); an index entry written four bytes short (the value length, against the arithmetic); and a store that could be folded exactly once (the second fold read an addressed image with a packed-only reader). Each is now a fixture or a gate.</p>
|
||||
|
||||
<h2>7. What is still ahead</h2>
|
||||
<p>Said plainly, because a build record that only shows the green is a ledger, not a record:</p>
|
||||
|
||||
+14
-1
@@ -179,6 +179,17 @@
|
||||
.brand img{transition:filter .3s}
|
||||
}
|
||||
</style>
|
||||
<!-- Open Graph / Twitter / canonical (site prep) -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="CUBELinux OS — coordinate-addressed storage">
|
||||
<meta property="og:description" content="CUBELinux OS — a Linux data layer where the database lives in the kernel; data is addressed by coordinate, not by path.">
|
||||
<meta property="og:url" content="https://cubelinux.com/">
|
||||
<meta property="og:image" content="https://cubelinux.com/images/logo-header@2x.png">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="CUBELinux OS — coordinate-addressed storage">
|
||||
<meta name="twitter:description" content="CUBELinux OS — a Linux data layer where the database lives in the kernel; data is addressed by coordinate, not by path.">
|
||||
<meta name="twitter:image" content="https://cubelinux.com/images/logo-header@2x.png">
|
||||
<link rel="canonical" href="https://cubelinux.com/">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -189,6 +200,8 @@
|
||||
</a>
|
||||
<nav>
|
||||
<a href="/cubelinux-whitepapers.html">Whitepapers ↗</a>
|
||||
<a href="/partners.html">Partners ↗</a>
|
||||
<a href="/git">Git ↗</a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
@@ -250,7 +263,7 @@
|
||||
<p class="closing">
|
||||
This is not a proposal. This is a running prototype — and the OS is being built on it.
|
||||
CUBELinux OS is the idea that data shouldn't live <em>in</em> a system.
|
||||
The system should <em>be</em> the data.
|
||||
The system should <em>be</em> the data.<br><a style="display:inline-block;margin-top:16px;padding:.7rem 1.25rem;border:1px solid var(--cyan);border-radius:8px;color:var(--cyan);background:rgba(57,215,255,.08);text-decoration:none" href="/spec.php">Register for build updates →</a>
|
||||
</p>
|
||||
</main>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user