Live data from Hacker News

Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

github.com

11–20 of 47 posts

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#12
post #10

Cool (and congrats on the demo)! Sounds like a promising approach. I work on browser use agents and one of the most difficult problems now is bot detection. Curious if you know how this impacts bot detection/fingerprinting?

Thank you! Yeah, the current implementation basically performs the same as a Docker container (i.e. not much). The interface is the same, so you can use BU/Playwright/Puppeteer's header configs to change as needed.

We did notice the unikernel cloud instances don't run into bot detection as often as our hosted docker instances, but I think that's mostly because Cloudflare haven't flagged Unikraft Cloud's IPs yet, hah.

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#13

I'm assuming the low latency cold starts are from a paused state, considering chrome itself takes a few seconds to boot? Or have you found some clever way to snapshot a running chrome and fork that? Either way thanks for sharing.

It snapshots / pauses the entire unikernel instance after launching chromium, and then resumes the instance in <20ms with exactly the same state.

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#15
post #9

This is super cool. We’ve been looking into infra for AI agents. As others have noted, the difference in speed alone between docker and this is a huge win. Having our clients wait around for five seconds really adds up. Awesome tech, excited to dig deeper for healthcare

Thank you!

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#16

This is probably a dumb question from someone who knows almost nothing about system engineering. How hard would it be to boot a computer to this as an OS?

You would have to add support for the peripherals in the kernel, and have some kind of init system. You would also need a filesystem supported to boot the computer.

I was doing something similar for the entire OS a few years ago: cosmopolinux, a distribution of cosmopolitan binaries: https://github.com/csdvrx/cosmopolinux

My idea was to replace the WSL binaries to have a Linux distribution living on C:\, but that could also be booted baremetal if you didn't want to use Windows

I had to put together a multi stage init system for that: if you get the ISO, you can put in on a thumbdrive and boot it: https://gitlab.com/csdvrx/cosmopolinux

The only difference between them is the kernel and the filesystem: the github NTFS has a firecracker linux kernel, the gitlab ISO has a regular kernel with many modules.

I wanted to do a full NTFS solution but I couldn't find a bootloader I liked that would support booting from a NTFS partition.

Booting from an ISO was simpler and faster.

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#17
post #16

This is probably a dumb question from someone who knows almost nothing about system engineering. How hard would it be to boot a computer to this as an OS?

You would have to add support for the peripherals in the kernel, and have some kind of init system. You would also need a filesystem supported to boot the computer. I was doing something similar for the entire OS a few years ago: cosmopolinux, a distribution of cosmopolitan binaries: https://github.com/csdvrx/cosmopolinux My idea was to replace the WSL binaries to have a Linux distribution living on C:\, but that cou…

> I wanted to do a full NTFS solution but I couldn't find a bootloader I liked that would support booting from a NTFS partition.

Could you stick the Linux kernel and initramfs on the EFI boot partition as a UKI, and then just tell it about its rootfs being on the NTFS C drive? You don't really need any bootloader except the firmware's UEFI implementation on most modern PCs, and Linux supports NTFS.

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#18
post #13

I'm assuming the low latency cold starts are from a paused state, considering chrome itself takes a few seconds to boot? Or have you found some clever way to snapshot a running chrome and fork that? Either way thanks for sharing.

It snapshots / pauses the entire unikernel instance after launching chromium, and then resumes the instance in <20ms with exactly the same state.

Is that safe? I was under the impression that snapshot/resume of ex. anything running crypto libraries was a minefield of duplicate keys and reused nonces.

Re: Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)

#20
post #16

Earlier quoted context omitted.

You would have to add support for the peripherals in the kernel, and have some kind of init system. You would also need a filesystem supported to boot the computer. I was doing something similar for the entire OS a few years ago: cosmopolinux, a distribution of cosmopolitan binaries: https://github.com/csdvrx/cosmopolinux My idea was to replace the WSL binaries to have a Linux distribution living on C:\, but that cou…

> I wanted to do a full NTFS solution but I couldn't find a bootloader I liked that would support booting from a NTFS partition. Could you stick the Linux kernel and initramfs on the EFI boot partition as a UKI, and then just tell it about its rootfs being on the NTFS C drive? You don't really need any bootloader except the firmware's UEFI implementation on most modern PCs, and Linux supports NTFS.

> Could you stick the Linux kernel and initramfs on the EFI boot partition as a UKI

I considered that, even if it would go against the idea of having everything inside the Windows partition. I'd rather have had a shim in the EFI, with the UKI in C:\

The difficulty was bitlocker: my approach was a UKI with a small kernel and a few binaries to open the bitlocker volume and kexec the bigger kernel.

I was also exploring how to mark part of the NTFS volume as unusable to stick a different payload there.

The "ISO on a thumbdrive" was done to get baremetal boot working and out of the way, to see if I needed deeper changes to what had started as a 2 stages boot process, or if it was good enough as-as.

> Linux supports NTFS.

The kernel module is great!

I wish there was a linux distribution that could be run from either WSL or baremetal, to get more people familiar with baremetal linux.

Post reply on HN