17 April 2020, 08:58 | #61 | ||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
The crux seems to be how the messages look like. If they can be put in registers, not the same story as if they have to be stored in memory. Quote:
True. 16 general purpose ones, like 68k (and a few control regs as well, obviously). More would kill the encoding. Furthermore, asm experience has shown that when 68k registers aren't enough, only very few are missing. The stack pointer would be separate, exactly like the program counter. I also have a special 'base reg' for pointing into variables (typically a4 or a5 in 68k programs), which isn't among the general purpose ones. That's two extra registers, it seems few but in many cases it solves the register conflicts. However, it doesn't help vm implementation... Apparently having many regs to emulate has to be handled by dynamic register allocation, mapping emulated registers to host registers differently for every block. For me this is only theory, i don't know the algorithms involved. Sure my cpu would emulate 68k easier than the other way around. |
||
17 April 2020, 13:38 | #62 | |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,496
|
Quote:
Strange, that mostly coders share that same vision. It also means that nobody would write software, if you ever get new hardware. Which is exactly what happened to OS4.x and MorphOS - and I predict there won't be much Vampire software either. |
|
17 April 2020, 13:50 | #63 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,410
|
I'd say that this is because I'd guess (some/most?) coders who code for the Amiga now do so because they like working with the old Amiga chipset/OS and like the limitations this poses. This is certainly true for myself at any rate. I like the tinkering within a box with fairly strong limitations on what can and can't be done by simply having the CPU/GPU brute force it.
BTW, I do also see the appeal of a "Spectrum Next" style Amiga. But I'd probably aim such a machine at a lower end than some of today's projects do. Meaning I'd probably stick with a low end CPU (68030 or something on that order) and a fairly modest increase in graphics/sound ability. That said, if I'm 100% honest - I might find such a machine a very cool idea, but I'm not so sure I'd actually end up coding for it... |
17 April 2020, 15:15 | #64 |
Registered User
Join Date: Apr 2015
Location: Beauharnois,Qc,Canada
Posts: 227
|
OK, lets play...
Hardware: No need to reinvent the wheel. I'd go with any x64 based AMD/Intel system. No need to go all exotic on hardware since it doesn't matter much in the end, all compatibility with the classic Amiga will be done via software. A custom case and keyboard option could be available. The Checkmate A500++ could be an option for those with the $$$ to afford it. Software/OS: Custom Arch based Linux distro with seamless integration of FS-UAE, as in you can double click an Amiga 68k program and it'll launch like any other Linux application like Parallel does on the Mac. The GUI would be a customized GTK3 or Qt based one themed to be familiar to AmigaOS/Morphos users, just like people are replicating Mac OS X with Gnome and Kde. Programming: IDE would be VS Code/Atom/Electron based with VBCC integration plugins for classic 68k programming and C/C++, Python, JS/Electron for the Linux side of things. The PRO of this: Everybody who owns a PC with those hardware spec could try it out. If you're reading this on a computer then you can use this! It's also easier to fix bugs and correct mistakes in software than in hardware, so easier to support. The OS being Linux is being maintained by thousands of professionals worldwide instead of a couple of geeks in their bedroom or basement so you'll get update almost daily instead of every 3 years or so. You have instant access to thousands of applications to use and you're free to code your own as the system comes with all the dev tools and libraries needed. You aren't restricted to soon to be obsolete hardware, since this is a software based solution. Your Neo-Amiga can evolve in time and you can do selected hardwares updates. The Cons: You don't get an Amiga Logo on the case unless you put one yourself. You don't have to buy it from Amigakit or A-Eon at ridiculous prices. |
17 April 2020, 15:37 | #65 | |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
@ Nosferax
what is he difference to "Rabbit Hole" in Amikit? Quote:
ok .. having nice full featured IDE would be nice ... but otherwise, we are already there. |
|
17 April 2020, 15:57 | #66 |
Registered User
Join Date: Apr 2015
Location: Beauharnois,Qc,Canada
Posts: 227
|
The difference is that unless you need to run an Amiga program, you aren't running the emulator and are instead using the Linux system directly. The integration of FS-UAE would launch the emulator and the program in either a window or fullscreen. Amigakit makes the emulator the main windows with its limitations.
|
17 April 2020, 15:59 | #67 | |||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
the goal is of course "zero copy" and therefore pointers and/or data in registers. This works fine for immediate calls (synchronous messaging) But sometimes a asynchron approach is more useful or even necessary (eg if a resource is booked or data flow needs to be serialized). In that case message ports and message queues are used. in both cases a message likely contains a pointer to some other data in some mutually accessible memory region. To avoid costly address translation a single address space should be used. Quote:
Quote:
So this would definitively not be a showstopper for implementing a JIT. Quote:
(that's why ARM32 treats only 8 of its 16 registers as GP when in THUMP-mode) Quote:
than we would end up with a 8+8+8 configuration... |
|||||
17 April 2020, 16:08 | #68 | |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
What does a Linux window manager or "desktop environment" really offer besides the above? but sure: you could do it the other way around, like JanusUAE does on AROS. (or some earlier version of AROS did on Linux before that hack was deprecated ...) So you basically want a JanusUAE for Linux and a nice Windowmanager (there about 3 billion out there...) |
|
17 April 2020, 16:28 | #69 | ||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
You mean by software ? And Android's gonna allow you to do that in a per-process basis ? Quote:
Quote:
When i said 16, it's actually 8+8. Nothing i could think is better than the 68k D/A way. Thumb-2 allows using all regs, but accesses to R8-R15 requires bigger instructions. x86-64 has 8 more regs, but there the access needs a prefix - again larger code. The 68k's D/A split may be criticized, but it's just because it has been limited too much - the encoding system allows more than what we currently have. In addition, the address regs can behave differently to data regs - in regard to the ccr and automatic extend. This provides extra features instead of reducing them. Anyway, this is the way i've chosen. Quote:
|
||||
17 April 2020, 17:15 | #70 | |||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Quote:
But why the hell are you thinking of Android anyway?? That would certainly be the worst OS to run your vCPU on.. Linux (or any os with direct hardware access) will allow to switch the endianness of data (ARM instructions look always the same) But you can also simply boot a big-endian linux ... Quote:
Quote:
Quote:
|
|||||
17 April 2020, 17:18 | #71 | |
Registered User
Join Date: Apr 2015
Location: Beauharnois,Qc,Canada
Posts: 227
|
Quote:
Would you prefer an ugly one that nobody will ever use and support? If your end goal is to create a new unsupported hardware platform and OS from scratch just for your lonely self then have at it. There's already plenty of 8 and 16 bit homebrew computer and OSes projects already. If instead is to have something to code and run programs for the classic Amiga and a modern non dead-end platform, then my solution is way quicker, cheaper and efficient, and in the world of computers this is what makes a project viable or not. |
|
17 April 2020, 17:27 | #72 | |||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
Quote:
Quote:
ARM asm ? Troubles doing graphics/sounds/whatever on host OS ? |
|||
17 April 2020, 17:39 | #73 | |||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
I am actually done with linux as a desktop.
I started to play around with linux since its early days - back then on my A3000 ... first some 68k Debian , later PPC Red Hat. And from than on I went through all kinds of distributions on PC hardware ... (also some BSDs) The result: as a desktop Linux is a bloated, complicated, terrible mess. only Windows is worse. I still use Linux as server-OS on a bunch of machines, but switched to macOS as my desktop OS. Since Linux is still only used by <1% of all desktops, we can assume most people don't want it. Quote:
Putting lipstick on a pig... Quote:
But Amiga is and was 32bit. And a new project would be 32/64bit. Quote:
you did not answer what exactly the limitations of "Rabbit Hole" are compared to a native linux DE. Except the Amikit solution is not limited to Linux, but runs on Windows and macOS as well. So it is surely the quickest and cheapest solution, since everyone can keep on using the hardware and OS he/she already has. |
|||
17 April 2020, 17:55 | #74 | ||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
Task A stores a 32bit address in a register and hands over to task B. Task B lives it its own 32bit address space - so it runs the instruction "give-me-real-address" on that 32bit-pointer from task A in the register .... now how would that instruction work? and how would task B now gain access to the data stored outside its own address space? Quote:
Quote:
https://www.patreon.com/posts/are-all-big-21150080 Quote:
so how about AROS as host? Last edited by Gorf; 17 April 2020 at 18:03. |
||||
17 April 2020, 18:41 | #75 | |||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Does it need to come from a particular place ? I'm just guessing.
Quote:
The OS converts it to 64 bit flat (this is single mmu remap), then maps it somewhere in 32 bit space of another task (by normal task switch and some mmu changes). This, only on a pure 64-bit machine (these are monster machines so they can handle it). Quote:
OR we could decide to have a shared area, permanently mapped in the space of everyone. That may be of relevance if you want your vm run on the most common hardware. Quote:
That's ok, as long as no direct hardware access has to be made. But anyway, on second thought, the advantage of a software VM is that it could in theory work everywhere ! Then we needn't choose a specific host. It has to work on as many hosts as possible (mine already does on AOS 3.x, albeit very very slow). |
|||
17 April 2020, 19:11 | #76 | |||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
that's the kind of indirections I try to avoid. sure: let the kernel do it ... in the end we just recreating UNIX.. Quote:
Quote:
this gets ether very complicated for hundreds of tasks, if you want individual rights and fine grained capabilities - or rather restricted ... not happy with that kind of approach ... Quote:
Quote:
and that's why I was mentioning Michal's Emu68 ... that is ARM (if we like it or not) and is low-level an fast and runs on very cheap yet capable hardware and it could probably be adjusted for a different instruction set. it was just an idea after all ;-) that's what this thread is for, isn't it? |
|||||
17 April 2020, 19:30 | #77 | |||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
Quote:
You want your VM to run on many machines or you want it to be only for a few geeks ? Quote:
When i write the vm can work everywhere, of course one version has to be written for every supported platform. Yep. |
|||
17 April 2020, 19:57 | #78 | ||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,294
|
Quote:
watch the video I linked earlier Quote:
That is exactly the point: a micro- or exokernel will always need fast message passing and that does not play well with isolated address spaces. I have a very different approach in mind but it needs some support by the hardware it runs on (memory protection unit) Actually the question only was: targeting 32bit or 64bit? A hybrid approach seems to bring more problems than solutions .... Quote:
I suppose it will only be used by geeks anyways in the beginning. If it creates some attraction people will start to support more platforms ... (and it's YOUR VM ) Quote:
|
||||
17 April 2020, 20:06 | #79 |
Total Chaos forever!
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,186
|
Re:Next Gen VM
If we're going to the trouble of making a VM, why not use WebAssembly as the basis for the CPU target? It's already in existence and compiles ahead-of-time rather than via JIT. As for device drivers, if we're going to reinvent the wheel let's do it right. AmigaDE had a seldom advertised feature that allowed hardware banging to be encapsulated in the drivers but macro substituted when compiling. This will give an advantage over other VMs. |
17 April 2020, 20:41 | #80 | |||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
But even if you have memory protection, you still have a very nice security hole if every task is allowed to access other tasks memory space - even if it's just for reading. Quote:
Quote:
Quote:
Quote:
If you choose full 64 bits you inherit bloat in various ways. What's your choice ? Quote:
Quote:
1. Ease to code. Stack based horrors are out of the league. 2. Code density. Same. |
|||||||
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Another chance to buy the RG Amiga Book | LuMan | News | 10 | 03 March 2016 18:21 |
Chance to pick up a REAL amiga - worth it? | Critic | Amiga scene | 47 | 16 November 2013 14:46 |
Which FPGA Implementation of Amiga do you think has the best chance? | digiflip | Amiga scene | 4 | 29 May 2011 08:31 |
Any chance of an iPhone Amiga emulator? | RabidRabbit | support.OtherUAE | 10 | 03 July 2010 11:15 |
I want to give Amiga Emulation one last chance, please help (WoT) | GurrenLagann | New to Emulation or Amiga scene | 15 | 27 April 2008 12:14 |
|
|