VOGONS


First post, by twiz11

User metadata
Rank Member
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?

I am I

Reply 1 of 11, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

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.

Reply 2 of 11, by twiz11

User metadata
Rank Member
Rank
Member
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

I am I

Reply 3 of 11, by Jo22

User metadata
Rank l33t++
Rank
l33t++
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//

Reply 5 of 11, by xcomcmdr

User metadata
Rank Oldbie
Rank
Oldbie
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 ?

Reply 6 of 11, by digger

User metadata
Rank Oldbie
Rank
Oldbie
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.

Reply 7 of 11, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
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.

Reply 8 of 11, by digger

User metadata
Rank Oldbie
Rank
Oldbie
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. 😅

Reply 9 of 11, by nightbanshee

User metadata
Rank Newbie
Rank
Newbie
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

Reply 10 of 11, by digger

User metadata
Rank Oldbie
Rank
Oldbie
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.

Reply 11 of 11, by nightbanshee

User metadata
Rank Newbie
Rank
Newbie

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