Skip to content

SQRELF Formats

NtinosTheGamer2324 edited this page Feb 11, 2026 · 1 revision

SQR / SQRM / SQRL (SQRELF) Formats

ModuOS userland programs and related binaries use the SQRELF naming convention.

Terminology

  • SQR == SQRELF == Squirrel Executable and Linkable Format

    • Typical file extension: .sqr
    • Meaning: a normal executable program (similar role to an ELF executable on Linux).
  • SQRM == SQRELFM == Squirrel Executable and Linkable Format Module

    • Typical file extension: .sqrm
    • Meaning: a loadable module (kernel module / driver module).
  • SQRL == SQRELFL == Squirrel Executable and Linkable Format Library

    • Typical file extension: .sqrl
    • Meaning: a shared/static library style binary meant to be linked against.

Relationship to ELF

At a binary level, ModuOS currently builds userland programs with an ELF64 toolchain (x86_64-elf-gcc + x86_64-elf-ld).

The SQR/SQRM/SQRL names are therefore:

  • A project naming convention for what the binary represents (executable/module/library)
  • A file extension convention used by the ModuOS ecosystem

In other words:

  • .sqr files are effectively ELF64 executables used by ModuOS.

Where these files live

  • ISO image apps: targets/AMD64/iso/Apps/*.sqr
  • Example apps shipped on the ISO: cat.sqr, echo.sqr, memtest.sqr, sh.sqr, neofetch.sqr

Building a .sqr

cd userland
x86_64-elf-gcc -c program.c -o program.o
x86_64-elf-ld -T user.ld program.o -o program.sqr

Clone this wiki locally