Amiga Java
mikekohn.net
mikekohn.net
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:
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.
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.
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.
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). 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)
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)
Counterexample: the recently posted article series about Another World - a VM-based game released in 1991 that was very interactive and graphics-heavy.
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.
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.
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.
Usually there's SOC that manages IO, and the ROM contains a key/publisher cert. To run code on the main CPU, the SOC has to bless it. No code other than what's on the SOC's EEPROM can run on the EEPROM. And flashing the EEPROM requires the manufacturer's key; you load a potential image into the SOC's RAM, it verifies the image, it flashes the image.
Getting unlicensed code to run on modern consoles is generally more difficult than jailbreaking an iPhone. And even if you get your code to run by tapping the bus or whatever, there's no data in main memory that's worth stealing, nothing that could help you get a persistent break or anything. The valuable data lives in the SOC.
Preventing Spectre/Meltdown is less important than the extra 2-4% performance.
I think they're of similar difficulty.
I do have contact details in my bio.
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. :)
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).
When I retire and I have more time, I'm going to fill my house with Cromemco-era gear and do all the things I always wanted to do back then.
But first, I have to convince my wife that S-100 bus machines are mid-century modern, so she'll allow them in the door.
Stuff is pretty expensive even now, depending on what you want, what you can get, and such. Or, maybe you'll get lucky - several years ago I scored an Altair for $200 from a local electronics junkyard; later I went back and scoured it for a bunch of S-100 cards (as is, it came with a full complement).
Later I got some things off ebay, and even some free items from some other collectors - all I had to pay for was shipping. One strange beast was a 6502 cpu PCB (unpopulated) - I am not sure if it is compatible with the Altair's S-100 bus layout, or if it is meant for some other machine (the bus wasn't as standard as one would like, unfortunately).
Anyhow, good luck with your dream - just collecting the stuff can be fun enough!
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&arc...
> https://buildd.debian.org/status/logs.php?pkg=openjdk-12&arc...
> https://buildd.debian.org/status/logs.php?pkg=openjdk-13&arc...
> https://buildd.debian.org/status/logs.php?pkg=openjdk-14&arc...
Much older and you lose all of this. Much newer, and you just end up replacing a PC with a crap PC.
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.
But of course, my bad. To be honest it never occurred to me that it could be. But the comparison with classic cars makes perfect sense.
But mostly just games. I didn't really play games from roughly 1995-2010 for various reasons, so Amiga (and megadrive) are still where a lot of my old favourites are. Thanks to Catalina, my desktop can't play civ5 anymore. But my Amiga can still play civ1!
There's also a minimalists/efficiency mindset at play. If I confine youtube to the living room, can I satisfy my daily desktop needs with an older system? Is that older system actually faster (because of less software bloat) even though it's running on much more constrained hardware? Do I actually need an operating system that supports multiple logged in users for my desktop use cases? Are modern UIs more distracting and actually an impediment on productivity?
I can't speak for others but these questions are interesting to me.
The big limiting factor with using a vintage computer for a daily driver is that very few of them have a browser that supports modern web standards, have relatively low resolution screens and are painfully slow doing modern crypto (TLS & SSH), so much of the modern internet is inaccessible or unusable.
What makes the Amiga interesting, though, is that it represented a transition from the 8-bit environment to modern machines that is modern enough to resemble modern systems (GUI, multitasking, reasonable graphics, lots of people had harddrives etc.) and that was revolutionary at the time.
At the same time around 5 million Amigas were sold, making it one of the most successful lines of home computers ever; not that many of the alternatives have as large a pool of potential supporters, and many of the rest are "too old" in that their users had one of the earlier ones and moved on to one (or more) of the later ones, and their nostalgia may have another focus.
E.g. we first had a VIC-20 briefly, but I really started with a C64, and while I love the C64 too, you can't imagine the C64 as a replacement for a PC. But my Amiga stood up very favourably to PCs for years, even after Windows gained traction. It was faster for a while. It had better graphics. It had proper pre-emptive multitasking. It had better sound. More of my nostalgia is focused on the Amiga.
Part of it is probably also down to what and how you used them. For the first years we had a C64 I mostly used it for games. I spent more time on my Amiga on creative endeavours, from writing code to drawing in Deluxe Paint, and writing.
And in retrospect there are still aspects of the OS that feels ahead of today. E.g. one of my favourites includes pervasive scripting. OS X comes closest to that with AppleScript, but on the Amiga AREXX become so integral that some applications have their central event bus built around AREXX to they point where every keypress and every menu action gets passed through the same mechanism as the AREXX commands. Another is datatypes: You'll find Amiga applications published in the 90's that happily supports WebP images for example, because someone wrote a datatype library for it, and so every application that supports datatypes can load WebP without modification or recompilation or anything.
But of course there is an element of rose tinted glasses and all that, which I think largely comes down to how big a part of your life it was, and to what extent it was part of your formative years. For me, my computing interest dominated my life (and still does), and so the Amiga dominated my life from I was 13 until I was around 20, and it was practicality more than anything that made me switch (to Linux): I moved to a smaller flat, and I could only fit one machine and needed a Linux machine due to work, and it had to take preference.
The OS is pretty decent considering its age and there are plenty of decent applications to use.
I don't find 8bit computers particularly interesting. I had a BBC Micro and a Tantung Einstein (hand me downs) and they are extremely primitive compared to the Amiga. The Amiga is very much like a modern computer.
I really wish there was Amiga OS for a PC computer (I believe MorphOS is being ported) as even the aging OS 3.1 with some extensions is in some ways better than Desktop Linux. But that is highly subjective.
What do you find better? I'm curious
https://wiki.amigaos.net/wiki/Intuition_Screens
Also it is just a decent desktop OS. One of the problems with Linux (and OpenBSD / FreeBSD etc) is that the OS really isn't a desktop Operating System. It is a Unix operating system with a desktop.
Never used it (neither did I use MorphOS) but doesn't AROS fit the bill?
AROS runs both hosted on top of Linux, and natively, on PCs.
Some people also run UAE and run real AmigaOS...
AROS on top of Linux for me is missing the point as a OS enthusiast. AROS is okay, but MorphOS (which I run on a G4 cube) is much better IMO.
But for someone who wants to just run an AmigaOS-like OS, it's a convenient option as it makes it irrelevant whether AROS supports your underlying hardware as long as Linux does, and so makes it easy to install; it also makes it easy to run it alongside a regular Linux desktop for someone who doesn't want to just run an AmigaOS-like OS, which frankly still has lots of limitations.
MorphOS to me is to divorced from AmigaOS to be particularly interesting, and the fact it isn't open source is another dealbreaker.
Yep. I did have AROS running on a real machine (which has died). I have a real Amiga though so I rather use Amiga OS.
> But for someone who wants to just run an AmigaOS-like OS, it's a convenient option as it makes it irrelevant whether AROS supports your underlying hardware as long as Linux does, and so makes it easy to install;
Yes I am aware. I don't like Linux.
> it also makes it easy to run it alongside a regular Linux desktop for someone who doesn't want to just run an AmigaOS-like OS, which frankly still has lots of limitations.
I just don't see the point of running Linux with a Amiga like DE (which is really what you are doing). I am sure it suits many people's needs. It just not something I am interested in.
> MorphOS to me is to divorced from AmigaOS to be particularly interesting, and the fact it isn't open source is another dealbreaker.
Not everything has to be open source.
As a result Amiga sales in the US were small and driven by things like the Video Toaster on the high end where people for some time bought Amigas for the Video Toaster rather than the other way around, while sales in Europe were far higher volume and more focused on the low end models that there just wasn't a decent dealer network to handle in the US.