[HN Gopher] Show HN: LoongArch Userspace Emulator
___________________________________________________________________
Show HN: LoongArch Userspace Emulator
https://fwsgonzo.medium.com/notes-on-libloong-loongarch-64-b...
Author : fwsgonzo
Score : 38 points
Date : 2025-12-24 12:40 UTC (7 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| anthk wrote:
| I'd love this for Sparc/Solaris. I know IE5 was propietary, but I
| would test is with educational purposes (and a perfect example on
| how libre code can still run under modern Unixen without too many
| issues unlike IE5)
|
| As libre examples:
|
| - Arena browser
|
| - MosaicCK
|
| - XGopher/Xrn
|
| - VRGopher
|
| - XNedit, even with UTF8 support
|
| - Most window managers
|
| - Most libre Motif applications (and tons of them are really
| nice)
|
| - Libred Xephem. Yep, I know, Celestia, KSTars, planetaries with
| even Vulkan support... but for astronomic data, Xephem has
| zillions of details.
|
| You would say that these tools has no value, until you can
| quickly edit some EPS file from LaTeX under XFig.
| bitwize wrote:
| Qemu can run SPARC binaries and emulate a full SPARC system
| enough to run Solaris 2.6. Qemu can emulate Loongarch as well!
| anthk wrote:
| I know, but I would love to have it transparently, similar to
| some IOCCC guy that wrote a userland emulator to run Unix
| V4-v7 and up to BSD 2.1 binaries seamlessly. Similar to
| FreeBSD and NetBSD's compat(8) approach.
| bitwize wrote:
| So you want CPU emul _and_ a kernel personality. Kind of a
| tall ask, especially since you 'll need much of Solaris
| anyway to run those vintage binaries.
| anthk wrote:
| See this: https://github.com/DoctorWkt/Apout
|
| X11 calls can be just forwarded to the currently running
| server in your machine. The rest, yes, it must be
| implemented.
|
| PD: I'm not saying IE for Unix would run under that;
| Solaris it's pretty much post BSD 2.1 and maybe from
| another Unix branch.
|
| But code from NetBSD could be adapted for such task.
| yjftsjthsd-h wrote:
| We have:
|
| * illumos
|
| * binfmt (Assuming a Linux host)
|
| * qemu
|
| I'm not saying it's zero work, but this looks entirely
| solvable.
| Imustaskforhelp wrote:
| Fwsgonzo, what a legend man!!
|
| I am not kidding but before seeing this post, I had commented
| about my experiences in the libriscv discord server (I am the
| person who had created the AUR arch repository for simplekvm but
| had to pull them down)
|
| For reference:
| https://news.ycombinator.com/item?id=46413053#46415223
|
| Call this luck or whatever, but I really appreciate libriscv and
| I will definitely try to be more active, A ~77% of native and a
| possible ~90% potentially in a fairly permissive license allows
| the doors to be opened up for really fast sandboxes.
|
| I recently built a (although private repo) where you can ssh into
| something and it would directly run wasm and it turns out that
| you can convert golang directly to wasm (by bootstrapping the
| golang from scratch using gotip and the help of one stackoverflow
| post :) )
|
| The reason I didn't try to disclose it was that there was a minor
| issue in simple logic which kept me bugging me off and I had
| decided to use AI to basically glue me ssh
| https://github.com/gliderlabs/ssh with wasm but I wasn't so sure
| about publishing it after the recent rob-pike's incident and I
| found it a bit of bad taste to use AI after that and what should
| be my disclosure policy be but I hope its an acceptable use (of
| prototyping) considered by the general programming community and
| let me know if ssh-wasm or similar interests libriscv as I had
| evaluated libriscv and even installed simplekvm once again after
| an year or so but it had some issues running a rather simple
| main.go file and I think that LoongArch can be another good
| usecase for something like this.
|
| I actually built it and am thinking of creating a simple place
| where people can upload simple applications (in wasm or any other
| format) and then get an ssh link, they can ssh into or even an
| xterm instance or just, quick efficient sandboxing unlocks a lot
| of opportunities not previously thought of and your project is
| another step towards it so kudos for building it!
| fwsgonzo wrote:
| Hey, and thanks! libloong is a little bit restrained in its
| design. It's designed specifically to be the lowest latency
| sandbox. libriscv is more flexible in that it can load dynamic
| ELFs and run programs with LuaJIT embedded. I actually haven't
| been able to run Go programs in libloong yet, but I do want to
| reach that level!
| fooblaster wrote:
| I find this all very cool, but why is this useful for game engine
| scripting. anyone know?
| fwsgonzo wrote:
| It's designed to be low-latency enough that calling into the
| scripting solution is not considered a high cost. With
| something like Lua you're likely to hold back a lot, as it has
| a really high entry/exit cost, and the same is true for calling
| out to the host. libloong has 40x lower latencies.
| otterley wrote:
| Is anyone outside of China using Loongson-based hardware?
| lukaslalinsky wrote:
| Isn't WASM more suitable for game scripting? It's the first time
| I read about using emulation of a real CPU architecture as a
| scripting solution.
___________________________________________________________________
(page generated 2025-12-31 23:01 UTC)