8 ms·
A new Intel Itanium (IA-64) emulator that boots Windows
- cbmuser 3mo agoWhat's even crazier is that someone vibe-coded ia64 emulation support for QEMU: https://github.com/syunnPC/qemu-system-ia64 https://github.com/syunnPC/qemu-system-ia64
- userbinator 3mo agoIt's interesting to see how LLMs have definitely become a force-multiplier to motivate people into doing things they wouldn't otherwise have the time and effort to.
- rbanffy 3mo agoI have been pairing with Claude Opus and it’s quite impressive. I have explored a number of possible changes to things like VTE and the Hercules mainframe emulator.
- natas 3mo agoWould be amazing to implement a JIT in hercules (would make it 10x faster potentially as fast as z/PDT which implements a JIT); good timing as IBM is retiring z/PDT!
- anyfoo 3mo agoSweet. What changes to Hercules have you been considering? I have had a long running (and maintained!) MVS instance in Hercules for quite a few years now, just for fun.
- rbanffy 3mo agoI want a telnet port connecting directly to the Hercules console when it runs headless, as that is the way it ends up running in Docker. The Hercules console does a lot of heavy lifting that could be implemented at the terminal (as even Windows now has a proper terminal). It went as far as allowing me to connect and see the console transcript, which is pretty already. Another thing I want that I haven't figured out is to print to my network printers - they all do lpr and ipp, but Hercules direct to socket approach didn't work for me and I need to do more research on that. Ideally, the line in the config could be a pipe command where I could turn the page into PostScript to be netcat it to the printer. or massage it through a converter that took in an IBM line printer EBCDIC stream and spat out ASCII for a "normal" printer.
- qubex 3mo agoOpen Source and LLMs seem to be complementary technologies that have resulted in an absolute surge of productivity multipliers.
- pizza234 3mo agoIt really depends on the end goal. For personal tools that one uses, LLMs are extremely useful. But publicly used software doesn't only need to be written - it also needs to be maintained. And considering that it's extremely easy to implement features that are not used, vibe coded software tends to be, in best case, a mixed bag, and in worst (I believe typical) case, quickly abandoned. Vibe coded software is the modern equivalent of the shovelware of the 90s.
- userbinator 3mo agoVibe coded software is the modern equivalent of the shovelware of the 90s. I don't think so, especially as the latter was attempting to make a profit but this clearly wasn't done with a for-profit motive in mind.
- ColdStream 3mo agoRecently thanks to Modern Vintage Gamer on youtube, there has been a push to see if you could get Doom to run on the NeoGeo. Because of its very unique hardware (no framebuffer) it is a very unqiue and tough task. And yet, some folks have come to the battle and have ended up extensively using LLM's to code it. It is wild to see that these things can target such an obscure platform and get some decent results in a very short amount of time. https://www.youtube.com/watch?v=WPxhuKTltsk https://www.youtube.com/watch?v=WPxhuKTltsk This is something that doesn't have any real economic value but many are more than happy to see happen.
- monster_truck 3mo agoIn this domain and others like it especially! It's bone crushingly dry to try and figure this kind of shit out yourself, can do everything right according to every available reference and code comment only to get compiler and linker errors nobody has ever seen or posted about. Weeks and weeks of smashing your face against a wall until it gives. Now anyone can get twice as far in an evening. And that fuckin rules Hard to not get a little hyperbolic about it... but I can't wait for everyone to exhaust their meme projects/ports and models to get just a bit better. Feels like we're about to have something of a golden age when everyone starts really making the stuff they've always wanted.
- MBCook 3mo agoPlus you can point it at actual software or tests with known results and tell it to keep going until it gets it.
- natas 3mo agoI wish this could make it to qemu's main branch; always fun to preserve new systems. I wonder if it runs openvms/ia64 too!
- rbanffy 3mo agoI think most of the machines that could run Windows could also run OpenVMS. It’s a bit unfortunate the company behind the OS needs to make money off its licenses though.
- natas 3mo agodon't they still give some hobbyist licenses?
- nubinetwork 3mo agoI'm still waiting on mine, I doubt I'll ever see it though...
- rbanffy 3mo agoThey are in a tough spot. They have to pick between milking their legacy clients who have been running VMS workloads and don’t want to port them to anything else, and a much more risky attempt to develop a consulting ecosystem so those clients can remain on VMS indefinitely. This ecosystem would eat into their own support business at the expense of reducing incentives to migrate to different platforms.
- nubinetwork 3mo agoI'll admit that "OS snob who just wants to run VMS because they once ran it on Alpha" is pretty low on the freebie list, but they didn't even say no, they just strung me along until I gave up caring.
- rbanffy 3mo ago
- ChickeNES 3mo agoWell, that's one vibe coded backburner'd project I can mark off my list...though maybe it would still be helpful so I'll link it here: https://github.com/ChickenParts/qemu-ia64 https://github.com/ChickenParts/qemu-ia64 It booted Linux fine, was working on booting IPF EFI firmware when I got distracted by life and other projects.
- qubex 3mo ago“It runs quite slowly, (486-levels of performance on a Ryzen 5000 series according to this discord channel)” I’m sure there’s a joke about that being a huge leap in performance for Windows on IA-64 over the past 23 years waiting to be made from this.
- Joel_Mckay 3mo agoTo be fair, most of ia64 performance issues were in the more complicated compilers. The chip itself had potential, but essentially abandoned the DOS/Windows market inertia. =3
- qubex 3mo agoYeah EPIC pushed too much effort onto compilers and removed the context awareness of out of order reordering etc and the result was just a lame duck.
- Joel_Mckay 3mo ago[flagged]
- kstrauser 3mo agoYou've mentioned Intel's compilers a few times but they're not a magic thing that could make Itanic not-suck. Suppose they make general purpose code that's twice as fast as GCC when the whole computer is dedicated to running one specific process. They don't, but let's pretend. Even in that ideal scenario, it falls apart as soon as you're processing unpredictable input. VLIW sucks hard at chewing through data that's not precisely what it's expecting. You could probably make a video codec that performed really well, but it would be impossible to make a database that performed consistently not-badly. It's not that the existing compilers weren't good enough, not even the magic Intel ones. It's that it's not possible to pre-generate VLIW opcodes that do well when the input value isn't a homogeneous stream. Even if Intel's code was 2x better than GCC's — and again, it wasn't — twice abominable was still abominable. I wasted more time SSHed into an Itanic than most people had to, so I'm speaking from first-hand experience. Some very, very specific Itanium code was a bit faster than the equivalent x86 or similar. That was always some very tightly scoped thing that did the exact same tight loop a gazillion times, like en-/decrypting a data stream. Anything more heterogenous ran poorly, as in multiple times the wall-clock time of the same workload on the x86 server next to it that cost a tenth as much. And that's even when using the magic Intel compilers. Itanium was bad. The compiler tech didn't exist to make it not-bad, and in retrospect I think it become obvious that it couldn't exist. It wasn't a matter of the compiler authors needing to be clever. It was more like making Itanium live up to the hype required making P=NP.
- mixmastamyk 3mo agoNeat I did this on real hardware twenty plus years ago. Also tried Debian, iirc. My memory is that the workstation perf was decent but the thing was loud and used a lot of power. x86 emulation was slow. The nick, Itanic was mostly deserved.
- Joel_Mckay 3mo agoThe ia64 more complex compiler ecosystem made it difficult or impossible to port performant programs to the platform. Amd64 allowed people to keep building and running most programs with little understanding of what was happening in the architectural layers. Even the 800lb guerilla Intel had to acknowledge amd64 was the next step, or it could end up a niche use chip like PowerPC. The moral of the story is usability matters with consumer chip architecture. =3
- lorreyfum 3mo agoThe Itanic was built specifically by HP to sink Fujitsu, hitachi, nec, unisys and sgi. So in that sense it was a success.
- butterisgood 3mo agoTrue. But it’s a technological representation of all that’s wrong with the industry.
- lorreyfum 3mo agoAbsolutely. This monstrosity managed to have all what was wrong with CISC and all of the disadvantages of RISC at a higher price point than anything on the market at the time.
- kstrauser 3mo agoThis was my take on it: https://honeypot.net/2021/07/29/the-itanic-has.html https://honeypot.net/2021/07/29/the-itanic-has.html Key relevant quote: > In 1994, Intel and HP looked around and saw a wide variety of successful server CPU architectures like Alpha, MIPS, SPARC, and POWER. This annoyed them and they decided to make a new CPU that no one would want to use.
- butterisgood 3mo agoWhen it comes to Itanium all I can think of is how I wish I could have an Alpha. And how no one should care about Itanium. It’s the product of companies bent on doing all the wrong things.
- twoodfin 3mo agoIt took longer than necessary, but in what ways do you think an Intel Core-derived chip is different from what an “Intel Alpha” would have been? Taking for granted that hardware backcompat (Itanium had this, too!) was a starting requirement…
- speed_spread 3mo agoAlpha was great but that wasn't enough against the convenience of just running an x86 box. It didn't find a niche quickly enough. ARM survived because they were low power. POWER survived because IBM is one big niche. MIPS died and reincarnated into RISC-V. I have no idea where Alpha would have gone had it not been dropped.
- MarekKnapek 3mo agoWasn't there a problem with Alpha, that it had too weak memory model or something? Think of atomic instructions with multi CPU system. Or do I remember something wrong?
- djhope99 3mo agoI have a funny story about a windows IA-64 box. I was working for a large bank and it was all windows, including production. We used to run WebSphere Application Server on Windows. I was looking for a dev server to run unit tests on, including integration tests which required an actual WebSphere instance. The infrastructure team said they had “a box” going spare and it turned out to be IA64 on Windows. If my memory serves me correctly WebSphere only ran on windows for IA-64 up to 6 and we were running on 7. I had to do a bit of hacking but I did manage to get it working using the dlls from the 6 version. It was fine for running integration tests and a pretty fast box considering.
- shoo 3mo agoAm I right to guess that neither your dev nor prod machines ran IA-64? If so that's not ideal, but beggars can't be choosers & a spare box from the infra team available right now is better than getting a box built to meet your exact specs available after the usual multi-quarter internal lead time. Superficially it sounds a little crazy, but it's probably a lot less crazy than far more mainstream antipatterns (e.g. 'lets have our CI download all the dependencies from npm over the internet each time the build runs')! Did running the unit tests on IA-64 ever flush out genuine issues that were 'working by accident' on x86?
- djhope99 3mo ago> If so that's not ideal Agreed!! I would have loved something better but sometimes you just have to make do. WebSphere was 99% Java (except for a few pesky dlls) and I never saw any oddities, it worked the same as it did on the old x86 VM I had which was woefully under spec. Our entire software platform was on WebSphere. It really was a meaty box, which was a huge help because the tests originally (before IA64 box) used to take all night to run.
- itomato 3mo agoHP-UX support might make a compelling retirement project for someone.
- natas 3mo agoFor sure, I'm glad we have those emulators, real hardware is hard to find or expensive or faulty. Having emulators helps a lot.
- pjmlp 3mo agoC and C++ compilers weren't great, but that HP-UX Vault was a great experience, before anyone knew what the word containers in computing world means.
- shrubble 3mo agoOpenVMS ran on the Itanium also; wonder how far it could get in booting?
- xvilka 3mo agoIt would make sense to implement it in QEMU instead. There was some previous work in the past, don't have a link right now to the original patchseries, but here is the repository[1]. In theory, it could be adapted to the modern QEMU code infrastructure and APIs and be a good starting point. Back in the past I started[2] doing that but quickly dropped because had no time to finish. EDIT: It looks like it might be this one: https://github.com/syunnPC/qemu-system-ia64 https://github.com/syunnPC/qemu-system-ia64 [1] https://github.com/pvaibhav/qemu-ia64 https://github.com/pvaibhav/qemu-ia64 [2] https://github.com/XVilka/qemu-ia64/branches/all https://github.com/XVilka/qemu-ia64/branches/all
- kiaansaraiya 3mo agoThis is much harder problem than most CPU emulators as IA-64 isn't really just another ISA. EPIC most significantly allows the RE which seems like the main implementation challenge. Does the emulator model the RSE or are there shortcuts for Windows compatibility? Also, which Windows model is booting?
- sskras 2mo agoWhat do you mean by RE and RSE, please? Reverse Execution comes to mind, but I hardly believe that to be the case here.