frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: PanamaKVM – direct-booting Linux from Java 25 via FFM/KVM

https://github.com/rusanoph/panama-kvm
2•rusanoph•49m ago
Hi HN!

PanamaKVM is an experimental miniVM containing the bare minimum components needed to boot an x86 Linux kernel and run an interactive terminal. Its key feature is that it is built on top of Java 25 without using JNI. Instead, it utilizes the Foreign Function & Memory API (FFM).

I generally stick to Java LTS versions - having worked with Java 21 for a long time - so I recently decided to check if any new LTS releases had come out. It turns out I was a year late to the party regarding Java 25. While looking through the changelog, I noticed the new FFM for native code and decided to give it a try.

As it turned out, I was a couple of years late to the FFM feature :D, since it had already been introduced as a full-fledged part of the language in Java 22.

One interesting thing I discovered during implementation was a quirk in the ioctl ABI: there seemed to be a discrepancy between the KVM API documentation and the actual implementation. The very first call I attempted was KVM_GET_API_VERSION, but it unexpectedly returned EINVAL. After tracing the execution with strace, I managed to pinpoint the root cause (which was nearly impossible to debug at the Java level): the call was reaching the kernel without a third argument (whereas the documentation specified two). As it turns out, when the KVM documentation says an ioctl takes no arguments, it actually does require one... Due to KVM's implementation details, it implicitly expects a third parameter - it just has to be zero. This is likely to prevent reading garbage data from memory. Perhaps some readers have insights into the underlying reason for this difference - or maybe it was just human error and "things just turned out that way."

In any case, by following the instructions in the repository's README, you can boot a functional Linux kernel and interact with it via the terminal. I’ve only tested the launch using Alpine 3.24.2 x86-64 on WSL2, so that might be a limitation. However, if you run it on a different setup or on bare-metal Linux, that would be great - please let me know. And if something breaks in the process - even better - let me know about that too.

As for what I haven't finished yet in the current virtual machine implementation: networking and persistent storage are missing, and there is no virtio integration. Multi-vCPU startup mode isn't supported either; essentially, the creation of a single vCPU is currently hardcoded.

I’d also love to hear your thoughts on the project. I would particularly value any feedback regarding the use of FFM and the KVM API itself.

I’ll be happy to answer any questions you have.

Show HN: I made a hockey web game with Opus 5.5, and Gemini Argon optimized it

https://playblueline.pages.dev/
4•astlouis44•35s ago•0 comments

CS 1.6 Inside of Twitter

https://twitter.com/idanbeck/status/2110085435368329667
1•idanb•1m ago•0 comments

The Quiet Math Revolution

https://workflows-of-ai.com/blog/the-quiet-math-revolution
1•marcus_johansso•4m ago•0 comments

Show HN: go-git2 – libgit2 as pure Go, 10-100x faster than go-git for reads

https://github.com/msuozzo/go-git2
1•msuozzo•5m ago•0 comments

The Bawdy Graffiti of Pompeii and Herculaneum (2017)

https://kashgar.com.au/blogs/history/the-bawdy-graffiti-of-pompeii-and-herculaneu
1•fittingopposite•6m ago•0 comments

Rewinding the exponential: How we keep hardware usage down

https://blog.cloudflare.com/rewinding-the-exponential/
1•kagitac•8m ago•0 comments

Show HN: Rhythm – a skimmable TUI for your GitHub repos

https://github.com/problemsdev/rhythm
1•joeyparsons•9m ago•0 comments

Show HN: Tern – Native macOS SSH Client in Rust/GPUI (76 MB vs. Tabby's 580 MB)

https://github.com/your-moon/tern
1•moon11s•9m ago•0 comments

How many shots are in the average movie today?

https://stephenfollows.com/p/how-many-shots-are-in-the-average
1•rdmuser•10m ago•0 comments

What do you actually do after getting RCE in a Kuberenetes pod?

https://github.com/k8scout/k8scout
1•Tomlmmrs•11m ago•0 comments

A Modern Primer on Processing in Memory

https://arxiv.org/abs/2012.03112
1•Anon84•12m ago•0 comments

Show HN: Faster, Cheaper Databricks Spark with Real-Time ML Config Management

https://espresso.ai/post/databricks-spark
1•karamazov•12m ago•1 comments

The UAE embraces AI for kindergartners

https://restofworld.org/2026/uae-mandates-k12-ai-education-schools/
1•herbertl•13m ago•0 comments

Can research gleaned from a hibernating snail save a human heart?

https://www.ualberta.ca/en/folio/2026/08/can-research-gleaned-from-hibernating-snail-save-human-h...
2•gmays•14m ago•0 comments

2026 AMS Committee on Education Workshop Report

https://terrytao.wordpress.com/2026/10/13/2026-ams-committee-on-education-workshop-report/
1•smilelamp•14m ago•0 comments

The Tao of Tao

https://newsroom.ucla.edu/magazine/terence-tao-math-artificial-intelligence-alpha-research
3•saikatsg•15m ago•0 comments

Loneliness can rewire the brain to drive alcohol consumption

https://news.northwestern.edu/stories/2026/08-2/loneliness-rewires-the-brain-to-drive-alcohol-con...
2•gmays•15m ago•1 comments

Chabuduo World

https://www.tracingwoodgrains.com/p/chabuduo-world
3•wbobeirne•16m ago•0 comments

Show HN: BitRun – Run 1-bit LLMs on CPU at 98T/s without compiling

https://github.com/IshekKhal/bitrun
2•ishekofficial•19m ago•0 comments

Show HN: My satellite tracker now predicts ISS–Moon transits and UAP archive

https://skylens.yantraai.app/app.html
3•skylensspace•19m ago•0 comments

Delaware jury awards Qualcomm $2 in damages, finds Arm breached agreement

https://www.reuters.com/legal/litigation/qualcomm-says-jury-found-arm-breached-license-agreement-...
2•saikatsg•20m ago•0 comments

(not) solitaire – Massively Passively Multiplayer Solitaire

https://notsolitaire.com/
3•gmjosack•20m ago•0 comments

One-shotting an Unreal Engine plugin from a 3k-line plan

https://www.sourcebot.dev/blog/one-shotting-an-unreal-engine-plugin
3•bshzzle•21m ago•0 comments

Yet another way to invoke functions without parentheses

https://blog.ikaes.de/yet-another-way-to-invoke-functions-without-parentheses/
2•aragonite•21m ago•0 comments

Show HN: CoreXTrader – A cross-platform Trading DSL and Voice AI terminal

https://corextrader.com
2•ask4abusaidu•21m ago•0 comments

AI Dividend: Economy of the Near Future

https://robotpaidmoose.com/
3•mayosmith•22m ago•1 comments

DOJ targets North Korean remote IT worker schemes affecting 70 US companies

https://www.justice.gov/opa/pr/justice-department-announces-coordinated-actions-combat-north-kore...
2•wmchen•22m ago•0 comments

GLM-5.3-Flash-REAP144-Coder

https://github.com/lapadatbogdan/GLM-5.3-Flash-REAP144-Coder
2•jacquesm•23m ago•0 comments

Contact Recycling

https://box2d.org/posts/2026/10/contact-recycling/
3•ffin•24m ago•0 comments

Grayshift

https://en.wikipedia.org/wiki/Grayshift
2•bariumbitmap•24m ago•0 comments