7 ms·
Amiga Java
- PaulHoule 7y agoThree Billion and One devices run Java.
- pavlov 7y agoSeeing "Amiga" and "Java" together reminds me of Amiga Anywhere, a brilliant and completely misunderstood gaming/entertainment VM project twenty years ago: https://arstechnica.com/gadgets/2018/03/a-history-of-the-amiga-part-12-red-vs-blue/ https://arstechnica.com/gadgets/2018/03/a-history-of-the-ami... It didn't really have anything to do with the original Amiga. It was a rebranding of a strange high-performance VM designed by some very clever people in UK: "Tao had created a product that was so innovative that few people understood what it actually was. Taos was an operating system that was coded in VP1, an advanced assembly language that used instructions for an imaginary, idealized RISC CPU. When Taos programs were loaded into memory, the system translated the VP1 opcodes into the equivalent ones for whatever CPU it happened to be running on. Taos could run on an x86, a MIPS, a PowerPC, or a transputer, and many more—or even different combinations running at the same time. Because VP1 instructions were more compact than most CPU’s native opcodes, Taos programs would often load and run faster than native ones, even when you included the time it took to do the translation. Taos was a little bit like magic." Of course HN past has the details on this interesting bit of alternative software history: https://news.ycombinator.com/item?id=9808159 https://news.ycombinator.com/item?id=9808159
- jacobush 7y agoLike Android.
- pjc50 7y agoOr Transmeta. Or even WebAssembly. It's an interesting trick but only useful if you demand a very high level of binary portability.
- pjmlp 7y agoOr Burroughs, Xerox PARC mainframes, IBM mainframes language environments, UCSD Pascal, Lilith, Ceres, Inferno, Windows Phone 7, Windows Store, MicroEJ, watchOS bitcode,.... I think that the use of such systems has only increased, thanks to mainstream adoption of IoT devices and cloud environments. OEMs can change their hardware at will while supporting existing applications, and cloud environments can be heterogeneous, without much issues moving applications around.
- zozbot234 7y ago> IBM mainframes language environments Not just mainframes either, AS/400 (for minicomputer-class machines, as opposed to mainframes) is the same way. A binary, hardware-independent VM is the officially-supported programming environment.
- pjmlp 7y agoThanks for the correction. On my mind AS/400 keeps being a mainframe, I keep forgetting it had another hardware class.
- armitron 7y agoYou might be interested in https://github.com/vygr/ChrysaLisp https://github.com/vygr/ChrysaLisp by one of the inventors of Taos. It's brilliant.
- somesortofsystm 7y agoIsn't it the case that the approach of using a VM to do games goes way back .. in the early 80's it was a common mechanism in games dev, and the tradition has endured such that VM's are often pushed hard, technology-horizon wise, by the game devs. One of the reasons Lua is all over the place, is its VM code is very well written and easy to integrate in a code-base. There is still room for VM's to solve a lot of the current platform-war problems.
- EvanAnderson 7y agoZork and the Z-Machine[1] is a great early example of use of a VM in a game. [1] https://en.wikipedia.org/wiki/Z-machine https://en.wikipedia.org/wiki/Z-machine
- Someone 7y ago”the approach of using a VM to do games goes way back .. in the early 80's it was a common mechanism in games dev” One reason that was done is that it made porting games between CPU architectures (OSes weren’t that much of an issue, as games ran on bare metal) easier. Zork had one in 1979 (https://en.wikipedia.org/wiki/Z-machine https://en.wikipedia.org/wiki/Z-machine). I think that ended when games became truly interactive, as opposed to command-based, because, when that happened, performance became a bottleneck. Another reason could have been is that it made programming easier, as 8-bit CPUs are so weak that running a virtual machine for the convenience of having such luxuries as 16-bit arithmetic sometimes made sense even then (e.g. https://en.wikipedia.org/wiki/SWEET16 https://en.wikipedia.org/wiki/SWEET16) And of course, there is Forth, the ultimate “give me a VM that is tailored to this specific program” language (every word you define can be seen as a new instruction for your virtual machine)
- brazzy 7y ago> I think that ended when games became truly interactive, as opposed to command-based, because, when that happened, performance became a bottleneck. Counterexample: the recently posted article series about Another World - a VM-based game released in 1991 that was very interactive and graphics-heavy. https://news.ycombinator.com/item?id=21937607 https://news.ycombinator.com/item?id=21937607
- bitwize 7y agoThis also reminds me of Inferno, which was marketed as an OS for next-gen game consoles and set-top boxes by Lucent back in the 90s. Unfortunately it didn't get very far.
- asveikau 7y agoNever used it, but my recollection was the most radical thing about Inferno was it was based on a high level, JIT, GC'd language runtime. I don't think Inferno people themselves said this, but I remember one of the things that people said in favor of memory safe JIT language operating systems was that the JIT would be able to optimize across multiple programs, or between kernel and user mode, since it didn't need to care about MMU based protections like a language with arbitrary pointers. And indeed you wouldn't need the high cost of the context switch. In light of Spectre and meltdown that now sounds like a bad idea to me.
- zozbot234 7y agoWho cares about Spectre and Meltdown in a game console or set top box? These are information disclosure vulnerabilities. What info are you going to "disclose" about the game I'm playing on a console? Especially if the game console is airgapped because I'm playing a single-player game from a cartridge or optical disk.
- asveikau 7y agoDo you think that they wrote the thing expressly for game console applications or perhaps they had a research idea and later found an application? Are we not talking about the same Inferno from Bell Labs? Anyway I think I was describing a broader topic than Inferno. Eg. There was the singularity project at Microsoft that people spoke similarly about. Maybe Midori too? The latter may have moved away from the jit idea, there is some writing online about it that I have not read.
- jt_snacks 7y ago>Who cares about Spectre and Meltdown in a game console or set top box? The business model of consoles is subsidized hardware, with the bulk of revenue coming from game licensing fees (per copy). These vulnerabilities would reduce the security of the consoles which would directly put that business model at risk (unlicensed games + piracy). >Especially if the game console is airgapped because I'm playing a single-player game from a cartridge or optical disk. Between 10% and 30% (depending on who you ask) exclusively play only online games. The number of mixed is harder to discern but significant. About 50 million people use xbox live, microsoft's paid online gaming service. Last year, over 80% of game sales were digital. The business and consumer landscape simply would not accept airgapping. These consoles are often used for other entertainment and health applications. Many of them have cameras attached to them (I know, I know). They are tied into peoples' cloud accounts. They are used for web browsing. They are used to watch porn. People deserve privacy, I think we can all agree. You, personally, may not be affected, but these are concerns that cannot be ignored, both by users and business.
- jlarcombe 7y agoTaos was a brief source of excitement on the Acorn platform, there was talk of using it for the never-finished Risc PC 2, although whether that was just marketing talk I'm unsure. I think there was a demo on the front of a magazine?
- opless 7y agoThere's an ISO for a Windows (95?) based SDK floating about. It possibly is the very same CD that you mention.
- unwind 7y agoIt is so weird to see the cool computers of my teens put on a blanketed table. Makes them look like amcient artifacts, to be approached by wizards only. Kind of like how I felt seeing rackfuls of mainfrane hardware, back then. :)
- bitwize 7y agoKinda like how I felt when the docent at the Computer History Museum in Mountain View passed around an ancient artifact from a bygone civilization for the guests to marvel at: a 5 1/4" floppy disk. Recently I saw a talk from a twenty-something programmer who as a child didn't believe "real" computers (desktop PCs) could be programmed at all, that was something you could do only with "old" computers like the Apple II. He hacks lisp now for some networking company, so maybe the kids will be all right. :)
- rstupek 7y agoOr the 8" floppy disk which I saw when I was a middle school kid learning my first programming on a paper teletype!
- macjohnmcc 7y agoI still have a few 8" floppy disks and you can more understand why they were called floppy disks when you hold one of those vs the 5 1/4" disks.
- ddgflorida 7y agoI've got one from an old S-100 system.
- cr0sh 7y agoI have an Altair - when I bought it, it came with a controller card for an 8-inch floppy system...with one slight difference: It was for so-called "hard sectored" drives. If you know about floppies, you know they have a timing hole near the hub ring; as this flies past a sensor, the controller can use it to keep the speed of the motor constant, as well as determine what sector on a track is currently under the head of the drive. Depending on timing and other factors, it can allow for varying size sectors - this is known as "soft sectors". Hard sector drives had a similar sensor, but the floppies had - instead of a single hole - multiple holes spaced around the hub - one hole for each sector, hence "hard sectored"... It was mainly a difference with the media and controller, not so much the drive itself, IIRC. The problem is that, if I ever could even find an actual drive for the system, I'd probably never find any media; as it is, it's getting more difficult to find 5.25" media in the old 8-bit era "low-density" format - at least, anything new (similarly, low-density 3.5" floppies are difficult to find - which stinks for Amiga owners). High density floppies in both 5.25" and 3.5" sizes are much easier to find - though the 5.25" drives can be an issue (not that they are hard to find, but sometimes the prices are thru the roof - mainly because of demand from industrial controllers that used PCs for CNC control needing replacements).
- vortico 7y agoIt's funny that someone else on HN just managed to run a C# program on Windows 3.11. https://news.ycombinator.com/item?id=22010159 https://news.ycombinator.com/item?id=22010159
- travbrack 7y agoDug into Java grinder a bit, pretty crazy to see Java code pushing pixels at a decent (20 fps?) framerate on C64 and earlier hardware.
- A_No_Name_Mouse 7y agoWhat is it with Amiga that people keep tinkering with it and HN is full of Amiga articles? I once had an Amiga 1000 but for me that's just a sweet memory. Why is it different for other people, and why Amiga and not Spectrums or the like?
- soneil 7y agoI think Amiga find themselves at the perfect border of extendable and retro. Mine has 1024x768 (over hdmi/dvi), 128MB of ram, a cpu almost 5x faster than it shipped with (66MHz vs 14MHz), and an ethernet (pcmcia) card. I don't have usb yet, but it's possible. I also have unreasonable amounts of storage (compared to the design) via an sdcard. Much older and you lose all of this. Much newer, and you just end up replacing a PC with a crap PC.
- A_No_Name_Mouse 7y agoBut what do you do with it? Is it just nostalgia or the challenge to make it do something it couldn't do 20 years ago?
- dkarras 7y agoRetro computing is a hobby. People generally like their hobbies. Like, why do people like old cars? There are better cars out there but some people are attracted to them. Amiga was a computer that was way ahead of its time with its hardware AND software and provided so much fun until it was deemed obsolete - and it was a long time. Nothing like that existed for a long long time. But all of it doesn't matter - it is like the classic car analogy, it is just a hobby of some people, to reminisce on their childhood etc. >challenge to make it do something it couldn't do This is another hobby altogether. You can do it with retro computers, or with modern computers and artificial limitations (think of the demoscene and their 4k or 64k competitions) and actually this mindset does not even require a computer. Making things do things they are not supposed to do is just a fun time for some people, a creative outlet.
- 7y ago
- cbmuser 7y agoFWIW, you can even run the latest OpenJDK on m68k. In fact, here's is my Amiga 4000 running it on Debian unstable: root@elgar:~> dmesg |head [ 0.000000] Linux version 5.4.0-2-m68k (debian-kernel@lists.debian.org) (gcc version 9.2.1 20191130 (Debian 9.2.1-21)) #1 Debian 5.4.8-1 (2020-01-05) [ 0.000000] Enabling workaround for errata I14 [ 0.000000] Amiga hardware found: [A4000] VIDEO BLITTER AUDIO FLOPPY A4000_IDE KEYBOARD MOUSE SERIAL PARALLEL A3000_CLK CHIP_RAM PAULA LISA ALICE_PAL ZORRO3 [ 0.000000] On node 0 totalpages: 30720 [ 0.000000] DMA zone: 300 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 30720 pages, LIFO batch:7 [ 0.000000] initrd: 06c412a3 - 07800000 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 root@elgar:~> cat /proc/cpuinfo CPU: 68060 MMU: 68060 FPU: 68060 Clocking: 49.1MHz BogoMips: 98.20 Calibration: 491008 loops root@elgar:~> uname -a Linux elgar 5.4.0-2-m68k #1 Debian 5.4.8-1 (2020-01-05) m68k GNU/Linux root@elgar:~> java --version openjdk 11.0.6-ea 2020-01-14 OpenJDK Runtime Environment (build 11.0.6-ea+7-post-Debian-1) OpenJDK Zero VM (build 11.0.6-ea+7-post-Debian-1, interpreted mode) root@elgar:~> OpenJDK is built as part of Debian unstable: > https://buildd.debian.org/status/logs.php?pkg=openjdk-11&arch=m68k https://buildd.debian.org/status/logs.php?pkg=openjdk-11&arc... > https://buildd.debian.org/status/logs.php?pkg=openjdk-12&arch=m68k https://buildd.debian.org/status/logs.php?pkg=openjdk-12&arc... > https://buildd.debian.org/status/logs.php?pkg=openjdk-13&arch=m68k https://buildd.debian.org/status/logs.php?pkg=openjdk-13&arc... > https://buildd.debian.org/status/logs.php?pkg=openjdk-14&arch=m68k https://buildd.debian.org/status/logs.php?pkg=openjdk-14&arc...