Hacker News new | ask | show | jobs
by kdrag0n 1072 days ago
Thanks for mentioning OrbStack!

I thought I'd elaborate on a few specific ways OrbStack improves on apps and issues mentioned elsewhere in this thread.

- Network hangs and connection issues: I wrote a new virtual network stack in userspace and made sure to address issues plaguing other virtual networking solutions (VPN compat, DNS failures, etc.).

- Inexplicable errors: Can't say it's perfect, but I do take every issue seriously. For example, sending OOM kill notifications on macOS instead of silently killing processes.

- Running x86 containers: Builtin fixes and workarounds for many Rosetta bugs. Since the bugs are on Apple's side, they affect all other apps (as of writing) and often cause issues when running linux/amd64 containers. If you're used to slow QEMU emulation, then well, it should be a major improvement.

- Multipass: OrbStack can run 15 different distros (https://docs.orbstack.dev/machines/distros#linux-distributio...). It's not limited to Ubuntu, and cloud-init support is also planned for most distros.

- UTM: OrbStack doesn't do graphics yet, so you'll have to stick to UTM for GUI, but the CLI and other integration is designed to be on WSL2 level. It also boots much faster: baseline in ~1 sec, each machine in ~250 ms, total ~1.2 sec.

- Bind mounts and file sharing: It uses VirtioFS which isn't affected by sshfs consistency issues, plus caching and optimizations to give it an edge.

- Colima: https://docs.orbstack.dev/compare/colima

2 comments

Thank you for your work on OrbStack. Just tried it after reading about in this thread and it looks really great so far, both as Docker replacement and absolutely delightful to launch full Linux VMs.

Noticed you are using a very recent kernel, Linux ubuntu 6.3.12-orbstack, which is so great to test latest revisions of Linux system calls (eg. io_uring) locally, compared to Docker old 5.x kernels which I gave up figuring out how to upgrade.

Any way to select a specific kernel version for VM or container? That would be a killer feature for regression testing.

Glad to hear that!

There's currently no support for changing the kernel version. I think it may not be feasible to support many versions because a lot of OrbStack's improvements are very closely tied to the kernel, and maintaining the patches for multiple versions wouldn't be worth the work. Outside of regression testing, it's rare that anything breaks and in the event that such changes occur upstream, I try to hold off on updating until they're fixed.

Are you mainly interested in 5.15/6.1 LTS or other specific versions? Having an alternate LTS kernel (for a total of two options) might be a possibility in the (long term) future.

Having the option of an "older" LTS kernel (say 5.15 or 5.10) would be useful so as to match the kernel used in a lot of commonly used cloud images (including Ubuntu 22.04 LTS and Amazon Linux 2).
i love orbstack, like actually love it to the point where now i have to complain about its issues a lot, because i cant use anything else still has a lot of things to imrpove on in general, which are annoying when you encounter them suddenly. most frustrating for me is the "unlimited permission" setup. Sometimes thats useful as hell. Other times i would indeed like to run a servive using the convinience of orb stack, but you know, a little more sandboxed...I loved /Users/yyy/Documents being tied to my iCloud Drive. Had to disable that once i started using orbstack for personal reasons. orbctl / orb really need much more explanation of a lot of the options. especially whatever the config options do.

or let me bind to other network interfaces not just the one :(

but i love orbstack. hard too go back after finding it. impossible actually. havent been at the computer in like two weeks so mabye its changed by now

Totally fair! There are definitely still limitations.

Support for "isolated" machines that don't have bind mounts is planned (https://github.com/orbstack/orbstack/issues/169). This is actually mostly implemented internally, but I'm not exposing it until a few remaining security gaps are plugged or it would just give a false sense of security.

If you meant binding servers to specific interface IPs, it might be possible one day but it's very challenging to implement as all of the host's IPs need to be assigned to an interface in the guest and managed accordingly. If you meant connecting machines directly to your LAN, it'll be supported eventually but it's low priority due to unavoidable compatibility issues. https://github.com/orbstack/orbstack/issues/342

Also would be great to know which "orb" flags you find confusing. Config options are now documented: https://docs.orbstack.dev/settings