Does the announcement of WSL2 completely undermine the WSL1? - virtual-machine

As the WSL2 includes its own Linux kernel does this mean the earlier architecture of mapping the Linux system calls to the equivalent Windows NT call has become obsolete?
Reference: https://devblogs.microsoft.com/commandline/announcing-wsl-2/

Related

Bootloader Written for Java

Is there a boot loader written for booting Java virtual machine without an operating system? As far as I know Java virtual machine can run on a machine by itself, without help of an operating system.
Java defines the guest language, not the host / JVM.
You'd need a JVM written to run on bare-metal of whatever machine you want to run it on. (i.e. to be an OS kernel as well as a JVM, handling interrupts and so on). So there isn't something generic called "Java" that a bootloader could load.
The mainstream JVMs like OpenJDK / HotSpot are not written to work as kernels, only to run under some existing mainstream OSes. But as you found, there are some: Can you run JVM on a computer with no operating system?
Even for a specific platform, the things a kernel needs a bootloader to do may depend on the kernel. There are a few standards, like multiboot for x86, that define a kernel file format that bootloaders like GRUB know how to recognize and load, but otherwise you'd probably expect a bare-metal JVM to come with its own custom bootloader, especially if it's for a platform other than an x86 PC. Or perhaps be bootable as an "EFI application".

Can QEMU support VT-x/AMD-v like VirtualBox in Windows

The host is windows(xp and win7). The guest is a Android which build with x86 ABI by myselves.
I know if QEMU work with intel HAXM like google official emulator, it can support VT-x. But the big problem is HAXM NOT support AMD. And KVM support VT-x/AMD-v, but KVM can't use on Windows. So are there any other ways to let windows QEMU support VT-x/AMD-v like VirtualBox and VMware?
ps. In abstractive, for QEMU supporting CPU hardware virtualization, the function role of HAXM is just like KVM, is my understanding right?
On linux, KVM can support VT-x/AMD-v.
But on windows, I don't know.

How can linux be a kernel and an OS at the same time

I got some questions :
- is Linux an OS or kernel (if both how?)
- are the drivers a a part of a kernel or just stands between the kernel and the hardware
- what does a driver do exactly (I already know that it takes system calls and gives them to the cpu)
- what is API and ABI in lay man words (short and simple)
sorry for the long questions but I really need answers thanks in advance
How can linux be a kernel and an OS at the same time?
There is the Linux kernel...
...and there are several Operating Systems that use the Linux kernel and provide additional software libraries, frameworks and tools all packaged together. The complete package is usually referred to as a Linux OS as the major component is the OS is its kernel, which in this case is the Linux kernel.
( eg. Red Hat Linux OS , Ubuntu Linux OS , [insert favorite Linux OS here] )
are the drivers a part of a kernel or just stand between the kernel and the hardware?
a kernel is software that "stands between" other software and the underlying hardware.
Drivers are part of a monolithic kernel. (eg. Linux).
In case of a micro-kernel, only the very basic operations are supported by the micro-kernel.
The drivers utilise these basic operations from the micro-kernels and support hardware/software.
what is API and ABI in layman words
In simple words,
API is compatibility between pieces of software source-code.
ABI is compatibility between compiled software binaries at run-time.
i.e. ABIs : APIs :: binary-components : source-code.

JRE Architecture Dependencies (Running on MIPS)

OpenJDK currently does not have support for a JRE on MIPS processors (there's a port in progress, but who knows how long that will take).
I'm trying to understand how the JRE works, and what is standing in the way of using OpenJDK on our embedded system running Linux on a MIPS processor. If I have a custom JVM that is capable of running on MIPS designed to work with OpenJDK (in this case, I'm referring to JamVM 2.0), is there anything else preventing the JRE from running on the MIPS board? Are any other parts of the JRE platform-dependent?
My understanding is that the JRE is (mostly) composed of two units: the virtual machine, which abstracts the hardware and which is platform-dependent, and the collection of Java libraries which run on the virtual machine and which are not platform-dependent.
To be clear, my questions is: aside from the JVM, is any part of the Java Runtime Environment platform-dependent?
"aside from the JVM, is any part of the Java Runtime Environment platform-dependent?"
That depends on where you place the boundary where the VM ends and the JRE begins. I would consider memory management and code execution as 'the VM', everything more specific part of the JRE.
Thats means every binding to the operating system, be it I/O, Graphics etc. is part of the JRE. Thus the JRE has many platform dependent parts; you usually just don't notice them because your code uses their abstractions (e.g. File, Socket, Window).
So when you say "a port to MIPS" it doesn't mean anything without specifying an OS (ok, your link says Linux); a VM ported to a processor architecture by itself does not make a working java environment. It also requires a port of the native parts of the JRE that allow the java program to actually communicate with things outside the VM; thats where the OS platform comes in.
Since Linux is already supported for x64, the MIPS port should be able to reuse most of the JRE to platform bindings from that.

How can I use Intel HAXM for a Windows VM?

I'm wondering if Intel HAXM can be utilized to start a Windows VM like you can using the Windows Hyper-V virt technology?
No. HAXM was designed to emulate Android only and can not be used to emulate Windows.