Files
dao-os-docs/concepts/core_architecture.html
2025-06-09 19:51:15 +00:00

258 lines
16 KiB
HTML

<!DOCTYPE HTML>
<html lang="en" class="light sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Core Architecture - Dao OS Documentation</title>
<!-- Custom HTML head -->
<meta name="description" content="The official documentation for the Dao OS, your Cyber-Life Operating System.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" id="highlight-css" href="../highlight.css">
<link rel="stylesheet" id="tomorrow-night-css" href="../tomorrow-night.css">
<link rel="stylesheet" id="ayu-highlight-css" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<!-- Provide site root and default themes to javascript -->
<script>
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="mdbook-help-container">
<div id="mdbook-help-popup">
<h2 class="mdbook-help-title">Keyboard shortcuts</h2>
<div>
<p>Press <kbd></kbd> or <kbd></kbd> to navigate between chapters</p>
<p>Press <kbd>S</kbd> or <kbd>/</kbd> to search in the book</p>
<p>Press <kbd>?</kbd> to show this help</p>
<p>Press <kbd>Esc</kbd> to hide this help</p>
</div>
</div>
</div>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
let theme = localStorage.getItem('mdbook-theme');
let sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
const default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? default_dark_theme : default_light_theme;
let theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('light')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
let sidebar = null;
const sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="default_theme">Auto</button></li>
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search (`/`)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="/ s" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">Dao OS Documentation</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://nest.doylee.cn/Dao-OS/dao-os-docs" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="core-architecture"><a class="header" href="#core-architecture">Core Architecture</a></h1>
<p>The architecture of Dao OS is designed to function like a living, collaborative digital organism. It is guided by our core principles of sovereignty, experience, and resilience. This document outlines the fundamental components and their interplay.</p>
<h2 id="the-core-duality-avatars--the-meta-unit"><a class="header" href="#the-core-duality-avatars--the-meta-unit">The Core Duality: Avatars &amp; The Meta Unit</a></h2>
<p>At its heart, Dao OS operates on a simple yet powerful duality, analogous to a body and a soul:</p>
<ul>
<li><strong>Avatars (<code>化身</code>)</strong> are the "bodies." They are the tangible presence of your Dao OS on your various devices.</li>
<li><strong>The Meta Unit (<code></code>)</strong> is the "soul." It is the universal, core logic embedded within each Avatar, giving it life and intelligence.</li>
</ul>
<h2 id="the-body-avatar--a-users-presence"><a class="header" href="#the-body-avatar--a-users-presence">The Body: <code>Avatar</code> — A User's Presence</a></h2>
<p>An Avatar is the concrete manifestation of your Dao OS on a specific platform. All of your Avatars collectively form your complete Dao.</p>
<p>There are three primary types of Avatars:</p>
<ol>
<li><strong>Client Avatar</strong>: Possesses a user interface (UI) and serves as the primary point of interaction for the user (e.g., a mobile app, a desktop application, a browser extension).</li>
<li><strong>Agent Avatar</strong>: A headless, non-UI process that runs in the background. It is ideal for deep integration with the host OS, or for running on an always-on device (like a home server or NAS) to act as a powerful computational node or a data archive.</li>
<li><strong>Primary/Archive Node</strong>: This is a <em>role</em>, not a distinct type. A user can designate one of their most powerful and reliable Avatars (typically an Agent Avatar on a home server) to be the primary archive and computational hub for their entire Dao.</li>
</ol>
<h2 id="the-soul-meta-unit--the-universal-kernel"><a class="header" href="#the-soul-meta-unit--the-universal-kernel">The Soul: <code>Meta Unit</code> — The Universal Kernel</a></h2>
<p>The Meta Unit is the core logic of Dao OS, compiled into a portable WebAssembly (<code>.wasm</code>) module. It contains the essential services for identity, data management, AI, and secure communication.</p>
<p>A key characteristic of the Meta Unit is its <strong>evolvability</strong>. To prevent the entire ecosystem from being locked into a single version of the kernel, we employ the <strong>Avatar-Meta Compatibility Layer (AMCL)</strong>. This thin adaptation layer sits between the Avatar and the Meta Unit, translating API calls. It allows the Meta Unit to undergo significant upgrades in the future without requiring every Avatar developer to rewrite their applications.</p>
<h2 id="the-nervous-system-the-cloud-edge-client-collaborative-network"><a class="header" href="#the-nervous-system-the-cloud-edge-client-collaborative-network">The Nervous System: The "Cloud-Edge-Client" Collaborative Network</a></h2>
<p>All of a user's Avatars are interconnected via a private, end-to-end encrypted P2P network, forming a personal, collaborative intelligence system. This system operates on three tiers:</p>
<ol>
<li><strong>Client (端)</strong>: Lightweight Avatars (e.g., browser extensions) act as smart terminals. They handle immediate UI interactions and run the most basic "Reflex Mind" AI.</li>
<li><strong>Edge (边)</strong>: Capable local devices (e.g., modern smartphones, laptops) that can run larger, more powerful "Cognitive Mind" AI models locally, providing advanced personalization and features.</li>
<li><strong>Cloud (云)</strong>: This is the user's <strong>personal, private cloud</strong>, not a public one. It is typically the designated "Primary/Archive Node" (an Agent Avatar). It holds the complete data archive and the most powerful AI models, and can provide remote inference capabilities to weaker Client Avatars on demand.</li>
</ol>
<h2 id="the-metabolism-the-resource-aware--adaptive-system"><a class="header" href="#the-metabolism-the-resource-aware--adaptive-system">The Metabolism: The Resource-Aware &amp; Adaptive System</a></h2>
<p>Dao OS is designed to be a considerate partner, not a resource monster. Its "metabolism" is regulated by a built-in resource management system with three key features:</p>
<ul>
<li><strong>Intelligent Data Tiering</strong>: Distinguishes between "hot" data (needed everywhere) and "cold" data (archived on the Primary Node), saving precious storage on mobile devices.</li>
<li><strong>Adaptive Synchronization Policies</strong>: Adjusts data sync frequency and behavior based on the current network condition (Wi-Fi/cellular) and battery state.</li>
<li><strong>Graceful Degradation</strong>: The user experience scales gracefully with hardware capabilities, ensuring core functionality is smooth even on older devices, while enhanced features are reserved for more powerful ones.</li>
</ul>
<p>Together, these architectural components form a sovereign, resilient, and intelligent system that is truly an extension of the user.</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../philosophy/principles.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../concepts/ai_system.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../philosophy/principles.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../concepts/ai_system.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
</div>
</body>
</html>