CLOUDABI(4)

πŸ’– CLOUDABI πŸ’–

okay bestie, buckle up, this one's the CloudABI page from the Kernel Interfaces Manual β€” manual section 4, which is the drivers/kernel-interfaces girlies. the names in the family are cloudabi, cloudabi32 and cloudabi64, and together they're the CloudABI support squad ✨


πŸŽ€ SYNOPSIS πŸŽ€

so you want 32-bit CloudABI executables in your kernel? say less. drop this line into the kernel configuration file:

options COMPAT_CLOUDABI32

and literally the same energy for 64-bit CloudABI executables, just with this line instead:

options COMPAT_CLOUDABI64

orrrrr you can be a little lazier (affectionate) and load CloudABI support at boot time from loader.conf(5):

cloudabi_load="YES"
cloudabi32_load="YES"
cloudabi64_load="YES"

slay. no recompile required πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

CloudABI is a POSIX-like pure capability-based runtime environment, lowkey a cousin to capsicum(4). what's it for? developing applications that are cross-platform, easier to test, and hardened against security exploits. it's giving secure, it's giving portable, it's giving main character 🌸

so on FreeBSD, CloudABI support isn't one thing, it's three separate kernel modules. let's meet them 🫢

  • the cloudabi kernel module implements all of the system calls that do not depend on data structures that differ between hardware architectures. architecture-agnostic queen πŸ‘‘
  • the cloudabi32 and cloudabi64 kernel modules provide implementations of all of the machine-dependent system calls, assuming that pointers stored in data structures are either 32 bits or 64 bits in size. these modules also provide the image activators that load and start ELF executables πŸ”₯

now for the availability tea β˜• the cloudabi module can be loaded on any architecture supported by FreeBSD, no cap. but the cloudabi32 module? only available on amd64, arm64, armv6, armv7 and i386. and the same holds for the cloudabi64 module, which is only available for amd64 and arm64. sorry to the other architectures bestie, it's not you, it's the port list 😭

want the whole toolkit? a full cross compilation toolchain for CloudABI is available in the devel/cloudabi-toolchain port ✨

and the sysutils/cloudabi-utils port provides the cloudabi-run(1) utility. what does it do? cloudabi-run(1) can be used to safely execute CloudABI processes with access to a restricted set of resources. restricted. set. of. resources. we love a boundary-setting icon πŸŽ€


🌈 SEE ALSO 🌈

CloudABI for FreeBSD: https://nuxi.nl/cloudabi/freebsd/

cloudlibc on GitHub: https://github.com/NuxiNL/cloudlibc

The CloudABI Ports Collection on GitHub: https://github.com/NuxiNL/cloudabi-ports


⭐ HISTORY ⭐

CloudABI support first appeared in FreeBSD 11.0. a debut, a moment, a cultural reset πŸ’œ


πŸ‘‘ AUTHORS πŸ‘‘

Nuxi: https://nuxi.nl/ β€” icons only, honestly 🫢


and that's the page bestie!! this version is from the Debian build, dated November 30, 2017, and it lives in section 4 of the manual (the kernel interfaces one, iykyk). go forth and be capability-based πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from