您现在的位置是:首页 > 文章详情

Kerla —— Rust 编写的操作系统内核

日期:2021-10-28点击:1118

Kerla 是用 Rust 编写的操作系统内核,旨在与 Linux ABI兼容,也就是说,无需任何修改即可运行 Linux 二进制文件。

  • 实现 *NIX 进程概念:上下文切换、信号fork(2)execve(2)wait4(2)、 等。
  • 支持常用的系统调用,如write(2)stat(2)mmap(2)pipe(2)poll(2), ...
  • 目前不支持磁盘:initramfs 作为根文件系统挂载。
  • 伪文件系统:tmpfs 和 devfs。
  • 基于 smoltcp 的 TCP/IP 支持。
  • 实现 tty 和伪终端 (pty)。
  • 支持 QEMU 和 Firecracker(带有 virtio-net 设备驱动程序)。
  • 支持 x86_64。
  • 基于 Docker 的 initramfs 构建系统。

演示:SSH 进入 Kerla

可以通过 ssh 使用 Kerla,每个 TCP 连接在 Firecracker 上自动启动一个专用的 microVM。

$ ssh root@kerla-demo.seiya.me

运行 Docker 镜像(实验性)

您可以将 Docker 映像作为根文件系统(而不是作为容器!)在 Kerla 内核上运行,而不是我们从initramfs目录构建的 initramfs 。

例如,要运行 nuta/helloworld 映像 ( Dockerfile ),请尝试以下命令:

$ make IMAGE=nuta/helloworld run ... [ 0.029] syscall: execve(439398, 4393b8, 4393c8, 8, 2f2f2f2f2f2f2f2f, 8080808080808080) [ 0.030] syscall: arch_prctl(1002, 4055d8, 0, 20000, 0, ff) [ 0.031] syscall: set_tid_address(4057f0, 4055d8, 0, 20000, 0, ff) [ 0.033] syscall: ioctl(1, 5413, 9ffffeed0, 1, 405040, 9ffffeef7) _ _ _ _ _ _ | |__ ___| | | ___ __ _____ _ __| | __| | | | '_ \ / _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | | | | | | __/ | | (_) | \ V V / (_) | | | | (_| |_| |_| |_|\___|_|_|\___/ \_/\_/ \___/|_| |_|\__,_(_)

此功能处于早期阶段。

原文链接:https://www.oschina.net/p/kerla
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章