Page 1 of 1
Uload ReactOS kernel module?
Posted: Sat Jun 16, 2007 1:34 pm
by com1
could i possibly have two kernel options in my OS, where one is my kernel and the other one ReactOS? Then the user could run some windows apps on my OS without installing a whole other one. is this possible?
Posted: Sat Jun 16, 2007 1:44 pm
by mathematician
I don't think you can. If you had a very deep pocket, and an army of volunteers, it might in theory be possible to write a kernel, and on top of that have two or more api's to mimic Windows, Linux or whatever. But two different kernels is effectively two different operating systems.
Posted: Sat Jun 16, 2007 2:15 pm
by Alboin
Exokernels anyone?
Posted: Sat Jun 16, 2007 3:15 pm
by Combuster
Exokernels will still require the emulation layer. Actually, you'll need at least one in order to be even able to run ansi C applications...
Of course you could build a virtual machine that runs two OSes at the same time. Once the VM is complete you can theoretically run any program by switching OSes. No guest-specific code would be needed, but you'd have two separate systems which are really difficult to be made to cooperate with each other.
Posted: Sat Jun 16, 2007 5:01 pm
by niteice
In that case you've basically reimplemented Xen...
Re: Uload ReactOS kernel module?
Posted: Sat Jun 16, 2007 5:09 pm
by jnc100
com1 wrote:could i possibly have two kernel options in my OS, where one is my kernel and the other one ReactOS? Then the user could run some windows apps on my OS without installing a whole other one. is this possible?
IMHO operating system = drivers + kernel + API + ABI. The ABI is generally determined by the process loading/creation functions in the kernel. Drivers are abstractified by the kernel to respond to various API calls. Are you therefore asking: can I create an operating system that can run programs with two sets of API/ABI implementations? In theory yes, but ReactOS is probably not the way, as its a complete operating system, expecting to run by itself. I suppose you could implement the ReactOS environment as it is open source, but you would need a very deep understanding of that particular project. You could, I suppose, port an emulator to your OS or even dualboot???
Regards,
John.
Re: Uload ReactOS kernel module?
Posted: Sun Jun 17, 2007 12:14 am
by Brendan
Hi,
com1 wrote:could i possibly have two kernel options in my OS, where one is my kernel and the other one ReactOS? Then the user could run some windows apps on my OS without installing a whole other one. is this possible?
Have you considered porting
Wine to your OS?
Cheers,
Brendan
Posted: Sun Jun 17, 2007 11:06 am
by anon19287473
Combuster wrote:Exokernels will still require the emulation layer. Actually, you'll need at least one in order to be even able to run ansi C applications...
Of course you could build a virtual machine that runs two OSes at the same time. Once the VM is complete you can theoretically run any program by switching OSes. No guest-specific code would be needed, but you'd have two separate systems which are really difficult to be made to cooperate with each other.
WRONG! An exokernel isn't just a emulator OS, it multiplexes raw hardware, so each application uses a large lib instead of an os. i.e. oslib (or something like that) is a unix library, which unix apps can be compiled against, and run in the exokernel. It is a whole OS in a library, not really emulation.
Posted: Sun Jun 17, 2007 11:31 am
by Alboin
anon19287473 wrote:Combuster wrote:Exokernels will still require the emulation layer. Actually, you'll need at least one in order to be even able to run ansi C applications...
Of course you could build a virtual machine that runs two OSes at the same time. Once the VM is complete you can theoretically run any program by switching OSes. No guest-specific code would be needed, but you'd have two separate systems which are really difficult to be made to cooperate with each other.
WRONG! An exokernel isn't just a emulator OS, it multiplexes raw hardware, so each application uses a large lib instead of an os. i.e. oslib (or something like that) is a unix library, which unix apps can be compiled against, and run in the exokernel. It is a whole OS in a library, not really emulation.
Yes, and you can have multiple oslibs! Mwa ha ha! I was correct~!
Posted: Sun Jun 17, 2007 3:15 pm
by Combuster
anon19287473 wrote:Combuster wrote:Exokernels will still require the emulation layer. Actually, you'll need at least one in order to be even able to run ansi C applications...
Of course you could build a virtual machine that runs two OSes at the same time. Once the VM is complete you can theoretically run any program by switching OSes. No guest-specific code would be needed, but you'd have two separate systems which are really difficult to be made to cooperate with each other.
WRONG! An exokernel isn't just a emulator OS, it multiplexes raw hardware, so each application uses a large lib instead of an os. i.e. oslib (or something like that) is a unix library, which unix apps can be compiled against, and run in the exokernel. It is a whole OS in a library, not really emulation.
It all depends on what you call emulation. In essence a libos is a conversion layer between the calls expected by application layer and the interfaces of the exokernel. Call it emulation or not, you still need a separate libos for windows programs, and a separate libos for *nix programs (and one for mac, and....)
Similarly, wine provides a windows interface over your favorite linux in pretty much the same way. Still its called an emulator.
Also, true exokernel applications don't require a libOS. They use the raw interfaces of the kernel for their own gain.
Point remains, you need to provide code for each platform you want to run rather than just one. Something you wouldn't need with some virtual-machine style kernel/program.
Now, would you tell me what's so wrong about my statement?