虚拟文件系统
OPFS 驱动的沙箱文件系统,支持读写、移动、观察与本地目录挂载。文件可通过 URL 直接访问。
/nos/fs/
NoneOS Core 是运行在浏览器里的虚拟操作系统:虚拟文件系统、去中心化身份、点对点消息与微前端容器。静态文件即可启动,应用不再需要自己的后端。
打开一个网页,你就拥有了一台属于自己的虚拟电脑:文件、应用、身份,还有和其他设备的连接,都在这里。每个应用都有独立空间,可以单独安装、单独运行,同时共用同一套文件和连接能力。
你不需要租服务器,也不需要安装后端。只要能把静态网页放到网上,NoneOS 就能运行;应用之间互不打扰,数据默认留在你的设备上。
从界面到应用,再到文件、身份和网络,每一层都运行在浏览器安全模型之内。
运行在 Mazmot / NoneOS 中的应用可以直接使用这些能力,就像使用浏览器的 DOM 一样自然。
OPFS 驱动的沙箱文件系统,支持读写、移动、观察与本地目录挂载。文件可通过 URL 直接访问。
/nos/fs/
ECDSA P-256 密钥身份,挑战应答认证,签名资料与证书系统。没有中心账号,也没有密码数据库。
/nos/user/
通过 WebSocket 发现对端,随后优先切换到 WebRTC 直连;消息默认端到端加密,中继只转发密文。
user.connectUser()
DataPublisher 将文件分块、签名并通过 P2P 分发。应用链接只携带发布者 ID 与内容哈希。
/nos/publish/
通过 Service Worker 拦截请求,将应用映射到虚拟目录。应用独立发布、按需加载,并共享同一运行时。
sw/dist.js
类似 localStorage 的异步 API,基于 IndexedDB,支持结构化数据、跨标签页同步与文件句柄。
/nos/storage/
在任意静态页面中安装 NoneOS Core,即可使用浏览器内用户身份与消息能力。没有后端安装,也没有数据库迁移。
// 静态页面接入 NoneOS Core
import { getUser } from "/nos/user/main.js";
const user = await getUser("my-app");
console.log("My ID:", user.userId);
const remote = await user.connectUser(targetUserId);
const [session] = await remote.getSessionIds();
await remote.send(session, {
text: "Hello from the unhosted web.",
});
remote.bind("message", ({ detail }) => {
console.log("peer says:", detail.data);
});
NoneOS 用浏览器已有能力,走一条更轻的点对点路径:不需要 Gas,不需要节点运维,也不需要把数据交给平台。
| 维度 | 传统云应用 | 区块链 Web3 | NoneOS |
|---|---|---|---|
| 运行方式 | 中心服务器 + 数据库 | 链上合约 + 节点 | 浏览器静态运行时 |
| 身份 | 平台账号 | 链上地址 / 钱包 | 本地 ECDSA 密钥 |
| 数据位置 | 平台服务器 | 公开账本 / 链下存储 | 用户设备 / 直接传输 |
| 部署 | 构建、上传、运维 | 合约部署 + Gas | 静态文件 / 无后端 |
| 网络连接 | 所有请求经过中心 | 节点 / RPC | WebRTC 直连 + 加密中继 |
| 离线能力 | 受限 | 依赖节点 | 本地优先 / 可离线 |
| 成本结构 | 服务器与带宽持续计费 | Gas + 基础设施 | 静态托管 + 可选中继 |