Repository navigation
Releases: gmmeyer/grix
Release list
grix 0.0.40
grix 0.0.40, built from e4fb026.
Since v0.0.39:
- Global scheduler state kept as it changes (0.0.40)
- A process moves in and out of the table by pointer
- What only held under the kernel lock
- A running-process slot per CPU
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.39
grix 0.0.39, built from be6b520.
Since v0.0.38:
- A guest network interface with net (0.0.39)
- Extended attributes
- More than 1024 descriptors
- openat2 and its RESOLVE_* flags
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.38
grix 0.0.38, built from 40c3f86.
Since v0.0.37:
- Linux AIO (0.0.38)
- arm64: emulate user mode's reads of the ID registers
- seccomp filters a program installs on itself
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.37
grix 0.0.37, built from dc31fd4.
Since v0.0.36:
- Forwarded ports don't reach loopback-only listeners (0.0.37)
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.36
grix 0.0.36, built from 4f47730.
Since v0.0.35:
- A CPU-time timer set to a time already passed fires in timer_settime (0.0.36)
- One CPU keeps the deadlines
- A kernel lock that skips a waiter the host descheduled
- Flush only the pages that changed, on the CPUs that may hold them
- Skip TLB flushes that change nothing
- Counters for more CPUs, and a benchmark
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.35
grix 0.0.35, built from bc46839.
Since v0.0.34:
- Decide the deadlock check's output state from one look at the ring (0.0.35)
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.34
grix 0.0.34, built from fb5f90b.
Since v0.0.33:
- COMPAT.md: popular software in grix (0.0.34)
- fd_link: no host request for a missing name
- Shared memory's page list is charged to the kernel memory budget
- The stack's strings in Linux's order, with a zero word on top
- Build steps get the Grixfile's memory_mb if it's more
- mkdir of a name that exists is EEXIST without fs_write
- System V shared memory: shmget, shmat, shmdt, shmctl
- preadv2 and pwritev2
- sendfile to pipes and sockets
- O_ASYNC: SIGIO to a file's owner (FIOASYNC, F_SETOWN, F_SETSIG)
- The sandbox's name everywhere: /etc/hostname, and images' own files left out
- UDP connect: AF_UNSPEC disconnects, and each connect picks the source
- arm64: a cache maintenance fault is a read
- Test: etcd's connect to 0.0.0.0
- /proc//smaps and smaps_rollup
- IPV6_V6ONLY: a v4 and a v6 listener on one port
- Descriptors reached through symlinks
- fixtures/src/popular.c: what popular software expects
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.33
grix 0.0.33, built from c23d86b.
Since v0.0.32:
- /proc//environ and auxv: the owner's, and those who may inspect it (0.0.33)
- DATADOG.md: the Datadog Agent in grix
- Connect to the unspecified address as to loopback
- /proc/interrupts, entropy_avail and fips_enabled
- Named pipes: mkfifo and mknod
- fchmodat2
- /proc and /sys files monitoring agents read
- Fill in an image's empty /etc/hosts and resolv.conf, and name the sandbox
- /proc//auxv
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.32
grix 0.0.32, built from bb5874f.
Since v0.0.31:
- Keep a rewound syscall restarting until it runs again (0.0.32)
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).
grix 0.0.31
grix 0.0.31, built from e4ca31f.
Since v0.0.30:
- Docs and x86 CI for images per architecture (0.0.31)
- Images for each architecture, run on their own
Each archive has grix, grix-vmm and the grix kernel (grix finds it beside itself),
and the Python package with its native module (PYTHONPATH=python, Python 3.9+).
macOS: arm64, macOS 15+; if it came through a browser, xattr -d com.apple.quarantine grix grix-vmm.
Linux: arm64, static; grix-vmm needs /dev/kvm (otherwise grix uses QEMU).