Cosmopolitan,具有跨平台可执行文件的标准C库

第一个版本刚刚发布 项目的 大都会酒店 在发展中脱颖而出 标准的C库 以及可用于分发不同操作系统的程序的通用可执行文件格式。

容器 用于形成通用可执行文件 基于特定细分和标题的组合 在单个文件中用于不同的操作系统(PE,ELF,MALE,OPENBSD)。

保证发射 Windows和Unix系统上的单个可执行文件, 使用了本质为Windows PE文件编码的技巧 利用Shell脚本的形式,利用了Thompson Shell不使用“#!”脚本标记的事实。

Cosmopolitan使C语言可以一次构建并且可以在任何地方运行,类似于Java,不同之处在于它不需要事先安装解释器或虚拟机。 Cosmo具有与Go和Rust等高级语言相同的可移植性优势,但是它没有发明新的语言,因此您无需配置CI系统即可为每个操作系统创建单独的二进制文件。

Cosmopolitan专注于通过将C与平台解耦来修复C,因此可以很好地用于编写小型Unix程序,这些程序易于分发给更广泛的受众。

结果是, 创建一个可执行文件,其中将几种不同的格式组合在一起 在Unix,Windows和macOS上使用。 以及拟议格式的概述。

该文件以标签“ MZqFpD”开头,该标签被解释为Windows PE格式的标头。

例如,在Unix系统上,外壳代码 通过exec命令运行, 通过未命名管道传递可执行代码。

虽然 提到了所提出方法的局限性 在类Unix操作系统上运行的能力 仅使用支持Thompson Shell兼容模式的Shell, 否则,它将不会直接从系统调用开始。

电话 qemu-x86_64旨在提供附加的可移植性 并允许您在非x86平台上运行已编译的x64_86代码,例如Raspberry Pi板和带有ARM处理器的Apple设备。

萨尔瓦多PROYECTO 也可以用来创建独立的应用程序 无需操作系统(裸机)即可运行。 在此类应用程序中,将加载程序附加到可执行文件,并且该程序充当可引导操作系统。

在该项目开发的C libc标准库中,已经提出了大约1400个函数来创建控制台应用程序。

在性能方面 大都会酒店 的工作速度与glibc一样快,并且明显领先于Musl和Newlib,而Cosmopolitan的代码大小比glibc小一个数量级,并且与Musl和Newlib大致匹配。

为了优化诸如memcpy和strlen之类的经常调用的函数,还使用了使用宏绑定来调用该函数的技术,在该技术中,编译器被告知执行代码所涉及的CPU寄存器,从而节省了资源通过仅存储可变寄存器来保存CPU状态。

创建程序 包括多个文件(将所有资源链接到一个文件中), 支持以ZIP文件形式形成通用可执行文件 特制的(可以使用“ unzip -v”命令查看内容,但是该文件仍然可以直接启动)。

通过与建议的libc和运行时静态链接获得的文件适合在任何Linux发行版,macOS,Windows,FreeBSD和OpenBSD上运行。 项目代码是根据ISC许可(MIT / BSD的简化版本)分发的。

最后 如果您有兴趣了解更多信息 关于此库,您可以检查详细信息以及文档 在下面的链接中。


发表您的评论

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

*

*

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