夏洛特操作系统 – 一个实验性的现代操作系统
CharlotteOS – An Experimental Modern Operating System

原始链接: https://github.com/charlotte-os/Catten

## catten:一个正在开发的内核 catten 是一个全新的单体操作系统内核,专为灵活性和潜在用途而设计,其起源于 CharlotteOS 项目。它借鉴了外核、Plan 9 和 Fuchsia 的灵感,旨在提供低级别的系统调用接口和高度适应性的架构。 其关键特性是基于类型安全和 URI 的系统命名空间,无需传统挂载即可实现安全、网络可访问的文件系统。安全性通过细粒度的能力和持久的强制访问控制策略进一步增强。 目前 catten 处于早期开发阶段,主要使用 Rust 和 x86_64 汇编(Intel 语法)编写。它需要 x86_64 架构、UEFI 固件以及至少 128MB 内存/4GB 存储空间(推荐 1GB+ 内存/64GB+ 存储空间)。 该项目欢迎通过 issue 追踪器贡献,并通过 Discord 和 Matrix 上的沟通渠道进行交流。它采用 GNU GPLv3 许可。

相关文章

原文

catten is an operating system kernel developed as a key component of the CharlotteOS project but it is designed to be flexible enough that we hope it can also find use in many other places. It seeks to be a monolithic kernel with low-level system call interfaces that borrows ideas from exokernels and other novel systems like Plan 9 and Fuchsia. Its design allows for almost any higher level interface to be layered on top and also includes a typesafe system namespace (akin to the namespaces found in Fuschsia and Plan 9 but more flexible and typesafe) with URIs as paths which has the added benefit of allowing access to the namespace of another host over a network without having to mount anything locally all while being secured by granular capabilities and a persistent mandatory access control policy.

catten is still in early development, and core subsystems are actively being built. We welcome contributions—feel free to grab an issue from the tracker, suggest features, or participate in discussions on our repository, Discord server or Matrix instance.

  • catten is written in Rust and ISA specific assembly languages
  • x86_64 assembly should use Intel syntax as implemented by rustc and llvm-mc exclusively
  • C language dependencies are allowed if vetted by maintainers.
  • Any dependencies in languages other than Rust, C, and assembly are strictly forbidden.
  • Always prefer a high-quality Rust equivalent over an external C library unless there is good reason to do otherwise

Target System Requirements

  • Processor:
    • x86_64 (Primary ISA)
      • x2APIC LAPIC operating mode
  • Firmware:
    • Unified Extensible Firmware Interface (UEFI)
    • Advanced Configuration and Power Interface (ACPI)
  • Memory:
    • Recommended: >= 1 GiB
    • Required: 128 MiB
  • Storage:
    • Recommended: >= 64 GiB
    • Required: 4 GiB
    • Device Types:
      • Non-Volatile Memory Express (NVMe)
      • USB Mass Storage Device Class
  • Output:
    • Display Adapter: Any adapter capable of providing framebuffers via the UEFI Graphics Output Protocol
    • Serial:
      • NS16550 compatible UART
      • USB CDC ACM (Virtual UART)
  • Input:
    • Keyboard
    • Serial
      • NS16550 compatible UART
      • USB CDC ACM (Virtual UART)
  • Networking:
    • USB CDC Network Control Model

Please reach out to us on Matrix or Discord if you are interested in contributing.

This kernel is licensed under the GNU General Public License version 3.0 (or at your option, any later version). By contributing to this project you agree to license your contributions under those same terms exclusively.

联系我们 contact @ memedata.com