Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Is there a guide on how to do this? I haven’t ever used the raw hypervisor.




a quick kagi search revealed this: https://briancallahan.net/blog/20250222.html, perhaps it might work for you too ?

This compares VMWare Fusion to Virtual Buddy

It should just be a matter of producing a kernel and, if necessary, RAM disk that can be booted the same way as Linux.

“just” is doing a lot of work in that sentence.

Yes and no; kernels aren’t magic, and “change how this kernel is loaded to match how Linux does it” is actually a reasonable first assignment for an Operating Systems class at a top-tier school. (You’re basically just creating an alternative `main()` if you don’t need a RAM disk image from which to load drivers.)

It's a first assignment if you are talking about a computer from 1990.

What, pray tell, would you do for a first assignment in an Operating Systems class at a top-tier school that actually involves making changes to on realistic operating system code?

This is the set of assignments they do at the university of Illinois (a top 10 computer engineering school): https://courses.grainger.illinois.edu/ece391/fa2025/assignme...

It looks roughly the same as when I took 15 years ago, except they switched to riscv from x86. Honestly, what you're describing sounds too difficult for a first assignment. Implementing irq handlers or syscalls on an existing codebase is far more realistic, plausible, and useful.


I had to implement system calls in xv6.

You can look up which top tier schools use it for OS classes.


At the risk of getting further off-topic: what sort of system calls did they have you implement? I’ve never done but a tiny bit of kernel hacking and that sounds like a good exercise, but I’m not sure what would be a good first syscall to add.

Try asking your favorite llm. They will even guide you with a small curriculum.

Advice like this, and then people wonder why they’re lonely.

I don't know… people were lonely before LLMs. And, they're right, this is a question one could easily paste into a frontier model and easily get back info that's way more useful than the significant majority of blog posts or replies would give! shrug But also I'd still like to hear what fooker has to say!

Oh, is that what MIT’s using these days?

Then one needs to launch it. Not sure if there are any lancher UIs out there, or if one has to write custom code for that.

Parallels will run a VM that can (manually) boot bsd.rd from the EFI shell if you stick BOOTAA64.EFI and bsd.rd on a FAT32 GUID formatted.dmg, connect it to the VM, then boot EFI shell. Type:

    connect -r
    map -r
    fs0:
    bootaa64.efi
    boot bin.rd
Then you'll be in the OpenBSD installer, having booted an OpenBSD kernel.

You can grab the files from: https://ftp.openbsd.org/pub/OpenBSD/snapshots/arm64/

Actually installing the system is left as an exercise for the reader.


My point is that as long as OpenBSD can boot like Linux, you just have to tell whatever VM front-end you’re using that you’re booting a Linux but give it an OpenBSD kernel and RAM disk.

Traditionally BSD has booted very differently than Linux, because Linus adopted the same boot process as MINIX when he first developed it (since he was actually using the MINIX boot blocks at first).

BSD has historically used a bootstrap that understands V7FS/FFS and can load a kernel from a path on it. MINIX takes the actual kernel and RAM disk images as parameters so it doesn’t need to know about filesystems, and that tradition continued with Linux bootstraps once it was standalone.


Who else was rdev'ing the Linux kernel to tell it where the root ext2(?) partition was long before they were using RAM disks? Like with SLS or MCC?

Originally Linux had Minix FS, followed by ext. Ext2 wouldn't make an appearance until 1993 by Rémy Card, so it depends on when you were using it.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: