Đang phát triển · đăng ký sớm

ViFastOs — microkernel nhỏ, viết bằng Rust

A small seL4-style, capability-based microkernel written in Rust.

Kiểu seL4, capability-based, kernel no_std — chạy trên QEMU với ba kiến trúc: riscv64, aarch64 và x86_64. Đây là dự án nghiên cứu/demo, chưa dùng cho production.

Ngôn ngữ
Rust · no_std
Mô hình
Capability-based
Kiến trúc
riscv64 · aarch64 · x86_64
Giấy phép
MIT

Nó là gì

Một kernel tối giản: chỉ giữ những cơ chế không thể đặt ở user space, còn lại đẩy ra ngoài thành các task riêng.

Capability-based

Mọi quyền truy cập đều đi qua capability. TCB, endpoint, notification, VSpace, untyped memory và page table đều là object; capability được cài vào CSpace riêng của từng task.

IPC + Notification

Giao tiếp đồng bộ với Send / Call / Recv / Reply / ReplyRecv, kèm notification cho tín hiệu bất đồng bộ. Khoảng 50+ syscall phủ thread, memory, caps, IPC và IRQ.

no_std + forbid(unsafe_code)

Kernel là no_std. Các crate kernel, runtime và fs đều bật #![forbid(unsafe_code)] — không có khối unsafe nào trong các crate đó.

3 kiến trúc, chạy trên QEMU

riscv64 (OpenSBI, Sv39), aarch64 (QEMU virt, GICv2) và x86_64 (UEFI/OVMF, PML4). Cùng một kernel, ba target khác nhau.

Hiện trạng

Trạng thái thật của repo: research / demo — boot và chạy được test binary trên QEMU, chưa sẵn sàng cho production. Những điểm dưới đây là việc đang làm, không phải tính năng đã xong.

  • đang chạy Boot và chạy test binary trên QEMU ở cả ba kiến trúc: riscv64, aarch64, x86_64.
  • đang làm BKL — kernel hiện vẫn dùng một global lock; chưa tách thành fine-grained locking.
  • đang làm Chưa có physical allocator toàn cục.
  • đang làm Driver mới ở mức QEMU, chưa có driver cho phần cứng thật.
  • đang làm Chưa có audio.

Chi tiết và mã nguồn: github.com/vifast-oss/ViFastOs · giấy phép MIT.

Lộ trình

Sáu mốc tiếp theo. Không đặt ngày — thứ tự có thể đổi khi có dữ liệu mới.

  1. Physical memory allocator toàn cục

    Quản lý toàn bộ physical memory, cấp phát untyped memory có kiểm soát.

  2. Fine-grained locking

    Giảm phụ thuộc vào BKL, tiến tới khoá theo từng đối tượng.

  3. Driver thật

    Từ QEMU-only sang driver cho phần cứng thật, bắt đầu từ những thiết bị phổ biến.

  4. SMP mở rộng

    Chạy nhiều core ổn định hơn, kèm kiểm thử tranh chấp.

  5. Kiểm chứng hình thức một phần

    Chứng minh một số tính chất cốt lõi ở mức từng phần, không phải toàn bộ kernel.

  6. Image cài đặt được

    Đóng gói thành image có thể cài và boot trên máy thật.

Bản phát hành

Xem trên GitHub ↗

Đang tải danh sách bản phát hành…

Đăng ký sớm

Nhận thông báo khi có bản phát hành hoặc mốc kỹ thuật mới. Không spam, không bán danh sách.

Chỉ lưu email và thời điểm đăng ký, không lưu IP. Hủy bất cứ lúc nào bằng email tới vifastoss@gmail.com.