First post, by twiz11
- Rank
- Member
Would Java be its own category of emulation since its platform-independent and had at one point have its own OS called JavaOS?
RETIRED
This user is no longer active on VOGONS.
Would Java be its own category of emulation since its platform-independent and had at one point have its own OS called JavaOS?
RETIRED
This user is no longer active on VOGONS.
It's a virtual machine, like DOSbox is, even though DOSbox is an emulator, but you don't emulate DOSbox on another system, you port or implement it. I guess the Java Virtual Machine is kind of an emulator in that it emulates a machine to run Java on. So it exists as self parody, QED Java is Rodney Dangerfield.
Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.
BitWrangler wrote on 2021-09-30, 01:20:It's a virtual machine, like DOSbox is, even though DOSbox is an emulator, but you don't emulate DOSbox on another system, you port or implement it. I guess the Java Virtual Machine is kind of an emulator in that it emulates a machine to run Java on. So it exists as self parody, QED Java is Rodney Dangerfield.
I've never tried emulating dosbox on another system, its not worth it it seems, also emulating java would be cool if we could turn our pcs into hardcore Minecraft mining rigs
RETIRED
This user is no longer active on VOGONS.
twiz11 wrote on 2021-09-30, 01:23:BitWrangler wrote on 2021-09-30, 01:20:It's a virtual machine, like DOSbox is, even though DOSbox is an emulator, but you don't emulate DOSbox on another system, you port or implement it. I guess the Java Virtual Machine is kind of an emulator in that it emulates a machine to run Java on. So it exists as self parody, QED Java is Rodney Dangerfield.
I've never tried emulating dosbox on another system, its not worth it it seems, also emulating java would be cool if we could turn our pcs into hardcore Minecraft mining rigs
Is it possible to run Win32 DOSBox inside DOSBox using HX Extender?
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//
What is it emulating though? It can't emulate itself.
twiz11 wrote on 2021-09-30, 01:12:Would Java be its own category of emulation since its platform-independent and had at one point have its own OS called JavaOS?
You don't emulate the JVM, you implement it for a platform.
Can you emulate .NET ? Python ? Ruby ? Lua ? A web browser ?
twiz11 wrote on 2021-09-30, 01:12:Would Java be its own category of emulation since its platform-independent and had at one point have its own OS called JavaOS?
I didn't know about JavaOS, but I'll do you one better: at a certain point Sun (before they were required by Oracle) actually developed chips that could run Java JVM bytecode natively!
I believe they were intended for IoT applications (before the name "IoT" had even caught on).
Maybe JavaOS was intended for exactly those chips? That would make sense.
digger wrote on 2021-09-30, 11:31:I didn't know about JavaOS, but I'll do you one better: at a certain point Sun (before they were required by Oracle) actually developed chips that could run Java JVM bytecode natively!
ARM chips did the same, for example the J in "ARM926EJ-S" stands for Jazelle which was a special mode the chips featured to natively run Java bytecode.
In reality most of the implementations didn't "run" the bytecode at all but instead had each java opcode trigger a unique exception, where a programmer could place code to perform the java function.
jmarsh wrote on 2021-09-30, 11:50:digger wrote on 2021-09-30, 11:31:I didn't know about JavaOS, but I'll do you one better: at a certain point Sun (before they were required by Oracle) actually developed chips that could run Java JVM bytecode natively!
ARM chips did the same, for example the J in "ARM926EJ-S" stands for Jazelle which was a special mode the chips featured to natively run Java bytecode.
In reality most of the implementations didn't "run" the bytecode at all but instead had each java opcode trigger a unique exception, where a programmer could place code to perform the java function.
That doesn't sound very efficient. 😅
BitWrangler wrote on 2021-09-30, 01:20:It's a virtual machine, like DOSbox is, even though DOSbox is an emulator, but you don't emulate DOSbox on another system, you port or implement it. I guess the Java Virtual Machine is kind of an emulator in that it emulates a machine to run Java on. So it exists as self parody, QED Java is Rodney Dangerfield.
So I've been professionally developing Java software for almost 20 years. I think calling it a Virtual Machine is part of the issue. It's not just Java that used that terminology. You can find it embedded in the definition of the .NET common language runtime (CLR), etc. Even virtual machines were used in years prior in mainframes. Unfortunately that term is now overloaded thanks to...well...virtualization technologies. 😉
While the JVM has some similarities with what we normally call VMs (e.g. abstraction, memory virtualization, etc.), They're not really the same thing. Modern VMs utilize a hypervisor or some equivalent layer that allows for general computer programs to be executed on top (e.g. DOS, Windows, etc.). To me that is the key differentiator. I think it is better to think of the JVM and CLR as evolutions of what C++ first provided.
Compaq Portable ii - Lucky find
Compaq Prolinea 486 - Long term restoration
Frankenstein Socket 7 166Mhz Pentium MMX - In progress
Random Pentium III
Dell Latitude D830
Mac Powerbook G3 Pismo
Mac Powerbook G4 15
nightbanshee wrote on 2021-10-14, 14:12:While the JVM has some similarities with what we normally call VMs (e.g. abstraction, memory virtualization, etc.), They're not really the same thing. Modern VMs utilize a hypervisor or some equivalent layer that allows for general computer programs to be executed on top (e.g. DOS, Windows, etc.). To me that is the key differentiator. I think it is better to think of the JVM and CLR as evolutions of what C++ first provided.
You think? C++ doesn't have an intermediate runtime, or a standard garbage collector for that matter. Isn't something like Smalltalk a more obvious ancestor?
In terms of language on the other hand, I would concur.
When I wrote that I had in mind people implementing garbage collectors for their c++ applications back in the day. But yeah Smalltalk definitely need influenced the JVM.
Here’s an interesting paper on Smalltalk’s influence: https://www.labouseur.com/courses/tpl/ ... savona.pdf.
Compaq Portable ii - Lucky find
Compaq Prolinea 486 - Long term restoration
Frankenstein Socket 7 166Mhz Pentium MMX - In progress
Random Pentium III
Dell Latitude D830
Mac Powerbook G3 Pismo
Mac Powerbook G4 15