Is it possible to have an operating system with multiple kernels? [closed]

0

I was thinking together with my team to make an operating system that runs the applications and drivers of Windows and Linux, it would be used as a basis for the kernel of Linux and React OS in a hybrid kernel, but I'm curious as to whether it would be possible to have more than one kernel .

    
asked by anonymous 08.07.2017 / 17:17

1 answer

2

If you're asking this you and your team is far from making a simple operating system, more so a complex like that. Keep in mind that no one did this not because they did not have the idea, but because it was not feasible and / or did not bring the advantages that are expected.

In theory it is possible, but it must be extremely difficult and in practice you will probably need a kernel to manage the others. And I do not even know if you have any advantage in that. Adding something to the processor may make it easier to do this. Virtual machines have become "easy" to implement and viable in use after the processor has had its own control.

This goes for anything in the operating system. It was always possible to make virtual memory, but it only became viable when the processor had its own mechanism to control it at no cost to the software.

You would have to ask yourself the advantage of having several kernels . Probably none. Want to do drivers and different applications? Ok, make it work, you do not need to have more than one kernel . The OS API has nothing to do with the kernel . Make different APIs available in the same kernel .

One thing is for you to develop an operating system with several kernels or several APIs, which in practice I do not see direct advantage, it is quite another to develop one or more kernels providing existing APIs with 100% compatibility.

ReactOS has not yet achieved 100% compatibility with Windows XP, close to zero, if it is not outdated, with what was added in Vista, 7, 8, 10. Including the drivers in it> are incompatible with the current drivers of Windows.

If it were easy, or even doable, Linux would have been compatible with the drivers of Windows, this would have taken a leap in its adoption. They did not stop doing it because they did not have the idea or lacked the will to have done.

Compatibility of applications is a bit easier, yet it takes effort and a lot of competence. Microsoft has invested in its best engineers, and many of the best in the world work there, and have managed to do two things: they have managed to make the Linux user API available in Windows, so today "any" Linux application runs on Windows as natively; and made SQL Server that is very integrated with Windows runs on Linux entirely, without modifications (are making modifications for optimizations), and this opens the possibility that almost any Windows application can run on Linux. That is, it is not yet 100% mature, but there is already what you want.

What is being done nowadays is to use virtual machines complete or not to run more than one operating system on the same machine at the same time and communicate in such a way that it is almost transparent when running an application on Windows, Linux or other OS, although only one of them is the host and the others are guests . Windows itself has technology that does this to run old applications that no longer run on newer versions.

The other day I saw a group of people who set out to make a bug-free operating system . It is very naive to think that others err because they are stupid, lazy, uncreative, or something. If they did not do it is because, at the very least, not worth the effort.

I think with the current hardware in practice will end up doing what already exists. The best thing to do is to make a nanokernel that is available for the other kernels to work on.

    
08.07.2017 / 17:41