Good software stack for testing kernels
Posted: Sat Nov 28, 2020 3:50 am
I've checked if this question has been already asked and it seems to me that it wasn't.
There are strictly related articles like:
https://wiki.osdev.org/How_Do_I_Use_A_D ... With_My_OS
https://wiki.osdev.org/Getting_Started# ... nvironment
but my question has a bit different emphasis (not what's possible to use, but what will generate the least configuration overhead).
Thus:
What software stack would you recommend for testing kernels? I mean, I want to test various ready-made kernels downloaded from e.g. github and be immediately able to compile and run them and also go through them line-by-line without need for playing with configuration or at least minimalizing this need as much as it's possible.
Up to this point I successfully used Windows 10 + VirtualBox with Ubuntu 20 Server + qemu installed on Windows + Cygwin from which I connect to Ubuntu 20 Server running on VirtualBox, but I'm starting feeling that such a configuration has some obstacles hindering a programmer to work smoothly.
To name a few such obstacles: Cygwin is just a simulation of Linux environment and as such it doesn't always work as expected. For example redirections can be handled in a weird way. Running some programs like e.g. telnet just does nothing (or at least it seems like that, from what I read I suppose that it can also be related to the way in which redirections and outputting are handled, but it is not essential here). It's true that I mostly use Cygwin to ssh to Ubuntu OS on virtual machine, but sometimes it's just handy to do something local and I'd like to avoid distractions and surprises as much as possible.
I know that I can install GDB on Windows, but this tool is I think much more in Linux/Unix spirit than in Windows spirit and as such I'm also afraid that it'll show some quirks which in turn can cause that I'll think that there's e.g. a problem with a kernel code when in fact it'll be the problem with GDB - Windows interaction.
I tried to run qemu inside VirtualBox, but it had no effect and from I've read it's a bad idea.
Now I think that the best idea might be to install Ubuntu 20 Desktop on the host machine + VirtualBox with Ubuntu 20 Server for building kernels + Simics for running them and watching how they run line-by-line. I'm familiar with qemu so I consider also installing qemu, but not sure if it's a good idea having already installed VirtualBox and Simics - won't they "fight" with each other?
Any suggestions will be appreciated. Thanks in advance!
There are strictly related articles like:
https://wiki.osdev.org/How_Do_I_Use_A_D ... With_My_OS
https://wiki.osdev.org/Getting_Started# ... nvironment
but my question has a bit different emphasis (not what's possible to use, but what will generate the least configuration overhead).
Thus:
What software stack would you recommend for testing kernels? I mean, I want to test various ready-made kernels downloaded from e.g. github and be immediately able to compile and run them and also go through them line-by-line without need for playing with configuration or at least minimalizing this need as much as it's possible.
Up to this point I successfully used Windows 10 + VirtualBox with Ubuntu 20 Server + qemu installed on Windows + Cygwin from which I connect to Ubuntu 20 Server running on VirtualBox, but I'm starting feeling that such a configuration has some obstacles hindering a programmer to work smoothly.
To name a few such obstacles: Cygwin is just a simulation of Linux environment and as such it doesn't always work as expected. For example redirections can be handled in a weird way. Running some programs like e.g. telnet just does nothing (or at least it seems like that, from what I read I suppose that it can also be related to the way in which redirections and outputting are handled, but it is not essential here). It's true that I mostly use Cygwin to ssh to Ubuntu OS on virtual machine, but sometimes it's just handy to do something local and I'd like to avoid distractions and surprises as much as possible.
I know that I can install GDB on Windows, but this tool is I think much more in Linux/Unix spirit than in Windows spirit and as such I'm also afraid that it'll show some quirks which in turn can cause that I'll think that there's e.g. a problem with a kernel code when in fact it'll be the problem with GDB - Windows interaction.
I tried to run qemu inside VirtualBox, but it had no effect and from I've read it's a bad idea.
Now I think that the best idea might be to install Ubuntu 20 Desktop on the host machine + VirtualBox with Ubuntu 20 Server for building kernels + Simics for running them and watching how they run line-by-line. I'm familiar with qemu so I consider also installing qemu, but not sure if it's a good idea having already installed VirtualBox and Simics - won't they "fight" with each other?
Any suggestions will be appreciated. Thanks in advance!