“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Windows CE Dreamcast Community Edition:在 Sega Dreamcast 上运行真正的窗口化桌面系统
将 Sega Dreamcast 内置的 Windows CE 2.12 重新打包,实现了一个完整的窗口化多任务桌面环境,并附带开发工具链,可直接编译生成可引导光盘镜像。
背景:被隐藏的 Windows CE
Sega Dreamcast 是第一款(也是唯一一款)内置 Windows CE 作为可选操作系统的游戏主机。它搭载了一颗 Hitachi SH-4 CPU(32-bit RISC,主频 200 MHz),并配备 PowerVR2 图形芯片(PVR2)。零售游戏在启动时,会加载一张光盘上刻录的 Windows CE 2.12 运行时环境,但这个系统被高度精简,只暴露了游戏所需的最小 API 接口,用户根本看不到桌面、任务栏或任何传统的 Windows 界面。
Windows CE Dreamcast Community Edition(以下简称 wince-dc)项目的核心目标就是:把这张光盘上的 CE 运行时改造成一个真正可用的桌面系统,让玩家和开发者能像使用一台微型 PC 一样操作 Dreamcast。
项目亮点:从源代码到可引导光盘,一键完成
wince-dc 最令人印象深刻的一点是它完全自包含。仓库里直接打包了:
- SH-4 PE 编译器(cl.exe,针对 SH-4 处理器的 Portable Executable 格式编译器)
- 完整的 CE 镜像工具链(包括 makeimg、romimage 等工具)
- CE 2.12 SDK 的头文件和库文件
这意味着你不需要安装微软的 Platform Builder,不需要购买任何 SDK,甚至不需要输入 CD Key。只要在 Windows 主机上装好 CMake(≥3.20)和 Ninja 构建系统,然后运行:
bash
cmake -G Ninja -S . -B build
cmake --build build --target gdi
就能直接从源代码生成一个标准的、可引导的 .gdi 光盘镜像文件。整个过程一气呵成,没有中间环节。
功能特性:一个真正可用的桌面
DCWin 桌面外壳
项目开发了一个名为 DCWin 的桌面外壳程序。它利用 Dreamcast 的 PVR2 图形芯片和 Direct3D 接口进行图形合成,实现了:
- 窗口化管理:窗口可以移动、调整大小、最小化、最大化
- 任务栏:显示正在运行的程序
- 开始按钮:类似 Windows 95/98 的“开始”菜单
- 鼠标光标:支持通过 Dreamcast 手柄或鼠标设备控制光标
- 多进程架构:每个应用程序运行在自己的 CE 进程中,互不干扰
内置应用程序
DCWin 桌面自带了一套基础应用程序:
- Explorer(资源管理器):可以浏览
\(根目录)、\Windows(系统目录)、\CD-ROM(光盘目录),并直接启动二进制文件 - Task Manager(任务管理器):实时查看进程列表和内存使用情况
- Clock(时钟):显示当前时间
- Calculator(计算器):基础计算功能
- 内存测试器:用于检测内存状态
- Winsock 网络测试器:用于测试网络连接
网络功能:正在推进中的 TCP/IP 栈
这是项目中最复杂、也最令人兴奋的部分。Dreamcast 原本只支持拨号上网(PPP 协议),通过调制解调器连接 ISP。wince-dc 的目标是实现以太网连接,让 Dreamcast 接入现代局域网。
项目采用了一种巧妙的方法:通用链接垫片(universal link shim),即 mppp.dll。这个 DLL 的作用是拦截系统对标准拨号网络协议栈的调用,将其转换为以太网通信。具体来说:
- 原本的
microstk.exe(微软的微型 TCP/IP 栈)和winsock.dll是设计用于 PPP 拨号的 mppp.dll垫片让它们“以为”自己在通过调制解调器拨号,但实际上数据是通过以太网传输的- 垫片内部实现了 DHCP(动态主机配置协议,用于自动获取 IP 地址)、ARP(地址解析协议,用于将 IP 地址转换为 MAC 地址)、DNS(域名解析)等关键网络功能
- DNS 配置来源:DHCP 选项 6(指定 DNS 服务器)→ Dreamcast 自身闪存中的 ISP 配置 → 公共 DNS 解析器(如 8.8.8.8)
目前,项目支持两种物理网络后端:
- Broadband Adapter:Dreamcast 官方宽带适配器(BBA),通过以太网直接连接
- W5500/MACRAW over SPI:使用 W5500 以太网芯片,通过 SPI(串行外设接口)与 Dreamcast 通信
不过,项目在 README 中坦诚说明:两个后端都还在开发中,尚未实现端到端的正常工作。这部分是社区贡献的重点方向。
构建选项详解
项目提供了几个关键的 CMake 构建选项,方便开发者进行定制:
| 选项 | 默认值 | 说明 |
|---|---|---|
-DKERNEL=retail 或 debug |
retail | retail = 静默内核(无调试输出);debug = SCIF 串口控制台内核(输出启动日志) |
-DDLLS=retail 或 debug |
retail | retail = 零售版系统 DLL(与真实游戏一致);debug = 检查版 DLL(包含大量断言,但可能破坏某些游戏,如 DirectDraw/DDHAL) |
-DAUTORUN=<exe> |
dcshell.exe | 系统启动时自动运行的程序(对应注册表 HKLM\init\Autorun),例如 -DAUTORUN=/CD-ROM/DC.EXE 可直接启动光盘上的游戏 |
-DEXTRADATA=<dir> |
无 | 指定一个文件夹,其内容会被放入光盘的 \CD-ROM 目录(例如存放游戏文件);相对路径相对于仓库根目录 |
运行方式
构建生成的 build/disc/disc.gdi 是一个标准的多轨道光盘镜像,可以在真实 Dreamcast 硬件上运行:
- GDEMU / MODE / USB-GD-ROM:将
disc.gdi及其轨道文件复制到 SD 卡或存储设备上,从菜单中选择即可 - 刻录光盘:对于需要精确 GD-R 布局的情况,可以使用
toolchain/make-gdi-real.ps1脚本,基于真实的 CE 游戏 GDI 重新生成(以匹配原版 IP.BIN 和轨道几何)
默认镜像启动后会直接进入 DCWin 桌面。如果需要诊断信息,可以用 -DKERNEL=debug 构建,然后通过 Dreamcast 的 SCIF 串口控制台查看日志。
仓库结构解析
wince-dc/
├── CMakeLists.txt # 顶层构建文件
├── cmake/ # CMake 辅助脚本
├── shell/ # DCWin 桌面外壳(PVR2/D3D 合成器 + 客户端应用)
├── net/netif/ # 通用 mppp.dll 垫片(BBA + W5500 后端,DHCP/ARP/DNS)
├── drivers/dcspi/ # 可复用的 SPI 传输层(SCI 硬件 SPI + SCIF 位碰撞)
├── toolchain/ # 构建辅助脚本(wrap-image.ps1, make-gdi.ps1 等)
├── vendor/sh-toolchain/ # SH-4 PE 编译器 + CE 头文件
├── vendor/wcesdk/ # CE 2.12 SDK(头文件、库、镜像工具、OS 模块、内核)
└── utils/ # 实用工具
法律与伦理说明
项目基于 Sega "Dragon" Windows CE for Dreamcast SDK(已随仓库打包)。需要明确的是:
- DCWin 桌面外壳、网络垫片和 SPI 驱动是项目的原创代码
- CE 内核和系统模块是来自官方 SDK 的二进制文件
- 项目 README 明确要求:不要将打包的 SDK 二进制文件用于研究目的之外的分发
技术意义与社区价值
wince-dc 不仅仅是一个怀旧项目。它在技术层面展示了几个有趣的点:
- 嵌入式系统的逆向与重构:如何将封闭的嵌入式运行时环境解构并重新组合成一个开放的系统
- 驱动垫片技术:通过 DLL 劫持和函数重定向,在不修改内核的情况下改变网络协议栈的行为,这是一种在嵌入式系统中常见的兼容性技术
- 自包含工具链:将整个开发环境打包在 Git 仓库中,使得项目可复现、可审计,这是开源硬件/固件开发的最佳实践
对于 Dreamcast 爱好者来说,这个项目意味着他们可以用这台 1998 年的主机运行一个真正的窗口化操作系统,甚至尝试编写自己的应用程序。对于嵌入式开发者来说,它也是一个学习 SH-4 架构、Windows CE 内部机制和硬件抽象层设计的绝佳案例。
未来展望
截至本文撰写时,项目在 GitHub 上获得了 67 颗星和 2 个 Fork(数据来自原文)。网络功能的端到端实现是当前最大的挑战,也是最需要社区贡献的部分。一旦 TCP/IP 栈稳定工作,Dreamcast 就有可能成为一台真正的网络终端,可以运行 Web 浏览器、FTP 客户端,甚至简单的网络游戏服务器。