返回首页
24小时热榜
Bhatti 可以在任何支持 KVM 的设备上创建 Linux 虚拟机——如 Pi 5、Hetzner AX、支持嵌套虚拟化的云虚拟机。
- 每个虚拟机都有自己的内核、文件系统和 IP 地址。
- 空闲的虚拟机会暂停其 CPU,并将自身快照保存到磁盘;下一个请求将在 3.7 毫秒(热启动)或 360 毫秒(冷启动)内唤醒它们(以 Hetzner AX102 为例,p50)。
- 发布任何端口 → 生成公共 URL,首次访问时自动唤醒。
- 可以将任何 OCI/Docker 镜像作为根文件系统拉取,或者将正在运行的沙箱保存为镜像。
- 从第一天起支持多租户——每个用户都有独立的桥接、加密的密钥和速率限制。
- 单个 Go 二进制文件,遵循 Apache 2.0 许可协议。
决策页面是网站上最有趣的阅读内容:恢复后的 vsock 状态、为何所有快照都是完整的、systemctl 适配器、ARP 重传技巧。
使用以下命令安装:
```bash
curl -fsSL bhatti.sh/install | sudo bash
```
(使用 sudo 是因为守护进程需要访问 /dev/kvm,并设置 Firecracker 监狱和桥接;仅命令行安装——通过管道传递给普通的 `bash`——不需要 root 权限。)
网站: [https://bhatti.sh](https://bhatti.sh)
代码库: [https://github.com/sahil-shubham/bhatti](https://github.com/sahil-shubham/bhatti)
决策与学习: [https://bhatti.sh/docs/under-the-hood/decisions/](https://bhatti.sh/docs/under-the-hood/decisions/)
Valkyr 是对 LM 推理运行时的新颖尝试。它与 llama.cpp、vLLM 或 ZINC 等项目有很大不同。它是用 Zig 编写的,代码非常简洁,除了 Vulkan Compute 本身外没有其他依赖项。虽然它支持多种模型系列和像 OpenAI 兼容服务器这样的功能,但一个重要的特点是,它可以在现有的 Vulkan 主机中以严格的时间预算运行——想想视频游戏、增强现实/虚拟现实应用、边缘设备或机器人。此外,它还支持丰富的探测接口,以接近实时的方式研究语言模型的内部结构。我并不是想与现有的运行时竞争,因为这些已经存在。我所要做的是帮助推理与时间敏感的应用程序协同工作。如果你能试试看,我会非常高兴。如果你有任何问题或想法,请告诉我。谢谢!
把这个当作一个有趣的小练习来学习。然而,最终结果与商业级深度研究产品不相上下。<p>完整的写作(涵盖当前状态的80%):<p><a href="https://deep-research-agent.pagey.site" rel="nofollow">https://deep-research-agent.pagey.site</a>
嗨,HN,
我构建了一个RISC-V模拟器,支持RV32IM指令集,并实现了一个最小的系统调用接口,以便运行DOOM。几周前,我用一个简单的Hello World汇编程序首次获得了输出。
从那时起,我一直在不懈努力,试图让DOOM运行起来。
我首先需要弄清楚如何运行C程序,发现了newlib,它允许底层环境逐个实现系统调用存根,直到程序可以运行。
我还添加了ELF加载功能,但目前只支持单个`PT_LOAD`段。
为了移植DOOM,我使用了doomgeneric,一旦所需的存根到位,工作起来非常方便。
DOOM渲染到内存中的固定区域(0x705FDD = VRAM_START):
```
0x7FFFFF +-------------------------------------+
| |
| QUEUE_SIZE (32 bytes) |
| |
0x7FFFDF +-------------------------------------+ <--- QUEUE_START
0x7FFFDE | QUEUE_READ_IDX |
0x7FFFDD | QUEUE_WRITE_IDX |
+-------------------------------------+
| |
| |
| VRAM (1,024,000 bytes) |
| |
| |
0x705FDD +-------------------------------------+ <--- STACK_START
| Stack |
| | |
| v |
| |
| ^ |
| | |
| Program data + Heap |
| |
0x000000 +-------------------------------------+
```
我制作了一个小的链接脚本,使得C程序的入口点位于_start,虚拟地址始终为0。这使得ELF加载器的代码保持简单。
输入由rvcore写入队列,然后被运行在其中的DOOM拦截。
演示链接: [https://www.youtube.com/watch?v=f5uygzEmdLw](https://www.youtube.com/watch?v=f5uygzEmdLw)