Tilck 项目,一个与 Linux 兼容的简化内核

打钩

Tilck 是一个教育性的单片 x86 内核,旨在在二进制级别与 Linux 兼容。

新闻发布了一个 名为 «Project Tilck» 的新开发项目, 一名 VMware 员工正在其中开发 一个与 Linux 根本不同但设计为兼容的单片内核 Linux 二进制文件,能够运行为 Linux 构建的应用程序。

发展历程 旨在实现最低要求的特性, 避免功能过载、简单易懂的体系结构、最大程度地简化代码、二进制文件体积小、可预测(确定性)行为、确保最小延迟、实现高可靠性以及简化开发和测试过程。

Tilck 与 Linux 的根本不同在于它不针对多用户服务器或台式机,根本不是因为那没有意义:Linux 庞大复杂并不是因为实施不佳,而是因为数量惊人它具有的功能。 报价及其所需的内在复杂性。 换句话说,Linux 就其所解决的问题而言是伟大的。 Tilck 将提供更少的功能以换取:

更简单的代码(到目前为止)
最小的二进制大小
极端确定性的行为
超低延迟
更容易的开发和测试
额外的稳健性

萨尔瓦多PROYECTO 不适用于多用户服务器环境 或桌面系统。 在文件系统中,FAT16 和 FAT32 在读取模式下受支持,ramfs、devfs 和 sysfs 也是如此。 块设备尚未实现; 一切都在记忆中。

提供VFS是为了抽象FS的操作。 目前开发阶段的多线程仅在内核级别可用(尚未在用户空间提供)。

内核支持抢占式多任务,实现了约100个基本调用。 Linux系统,如fork()、waitpid()、read()、write()、select()和poll(),足以运行BusyBox、Vim、TinyCC、Micropython和Lua等控制台应用程序,以及基于帧缓冲区的图形应用程序,如游戏 fbDOOM。 为了为 Tilck 创建程序,提供了一组基于 Musl 库的工具。

有人提到 建议的驱动程序集允许在 QEMU 环境中运行 Tilck 与从 USB 驱动器启动的传统系统一样。 除此之外,还注意到支持 SSE、AVX 和 AVX2 扩展指令集。 它提供自己的交互式引导加载程序,支持 BIOS 和 UEFI 系统,但也可以使用第三方引导加载程序,例如 GRUB2。 当加载到 QEMU 中时,内核可以在具有 3 MB RAM 的环境中运行。

目前, 该项目定位为教育项目,但从长远来看,Tilck 有可能发展到适合用作需要可预测行为和低延迟的嵌入式系统的内核的水平。

虽然 Tilck 在内部使用线程的概念,但多线程目前并未暴露给用户空间(当然存在内核线程)。 fork() 和 vfork() 均已正确实现,并且写时复制用于分叉进程。 waitpid() 系统调用已完全实现(这意味着进程组等)。

该领域的一个有趣特性值得特别提及:尽管缺少用户空间多线程,但 Tilck 完全支持 TLS。

预计 打钩 弥合基于 Linux 内核的解决方案与专用实时操作系统之间的差距, 比如 FreeRTOS 和 Zephyr。 计划包括将 Tilck 迁移到 ARM 和非内存管理单元 (MMU) 处理器、添加网络子系统、对块设备的支持以及其他文件系统(如 ext2)。

代码是用 C 语言编写的,并在 BSD 许可证下分发。 目前开发阶段,内核仅支持x86架构,但代码设计时考虑了通用性和实现性,以便将来支持其他架构。

最后,如果你是 有兴趣了解更多,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。