Kernel development using linux containers (LXC ) ?

Manish Katiyar mkatiyar at gmail.com
Wed Jul 29 17:03:54 EDT 2015


On Wed, Jul 29, 2015 at 1:49 PM, Greg Freemyer <greg.freemyer at gmail.com> wrote:
> On Wed, Jul 29, 2015 at 4:23 PM, Manish Katiyar <mkatiyar at gmail.com> wrote:
>> On Wed, Jul 29, 2015 at 1:07 PM, Jeff Haran <Jeff.Haran at citrix.com> wrote:
>>>>-----Original Message-----
>>>>From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-
>>>>bounces at kernelnewbies.org] On Behalf Of Manish Katiyar
>>>>Sent: Wednesday, July 29, 2015 11:51 AM
>>>>To: kernelnewbies
>>>>Subject: Kernel development using linux containers (LXC ) ?
>>>>
>>>>Hi,
>>>>
>>>>I've been playing and reading about control groups and linux containers
>>>>recently and was wondering if there are any existing recipes on how to setup
>>>>a kernel environment in containers. Google hasn't been helpful so far (or
>>>>maybe I'm not searching properly).
>>>>
>>>>I've used VMs for dev in past (Qemu, uml etc.), but looks like it may be
>>>>interesting to have it in containers. Given that they share they same OS image
>>>>as host, I'm not sure if its possible without making the host OS crash.
>>>>
>>>>Any suggestions.
>>>>
>>>>Thanks -
>>>>Manish
>>>
>>> I'm not sure what your goal is here, but it sounds to me like you might want to be googling for "linux namespaces".
>>
>> I'm sorry. I see that my previous mail had a key word "development"
>> missing. What I was trying to find out was that is it possible to
>> setup and use linux containers/cgroups to do kernel development.
>> Things like writing and test kernel modules, debugging kernel,
>> attaching gdb etc. etc. which normally require Qemu, busybox or other
>> VM techniques since containers are much lightweight and if anyone has
>> recipes for that setup to do development without crashing the host OS.
>>
>> Any hints appreciated. I looked for "linux namespaces" but it doesn't
>> give me what I want.
>>
>
> I have no first hand experience, but I don't think containers have the
> flexibility you need.  Docker in particular shares the kernel with the
> host OS as far as I know, so it would not be of any value that I can
> see.
>
> I think a unikernel may be what you are looking for:
>
> http://www.linux.com/news/enterprise/cloud-computing/821243-unikernel-use-cases-containers
>
> My understanding is that with a unikernel you can move targeted
> portions of the Hypervisor kernel up into the unikernel.  Thus if you
> wanted to work on a network driver, you could implement it in a
> unikernel.  Then if it blew up you would fall back to the hypervisor
> level, kill the unikernel and try again.
>
> The Rump kernel (a unikernel) in particular might be a good option:
>
> ==
> Rump Kernels —  provide free, portable, componentized, kernel quality
> drivers such as file systems, POSIX system call handlers, PCI device
> drivers, a SCSI protocol stack, virtio and a TCP/IP stack. These
> drivers may be integrated into existing systems, or run as stand-alone
> unikernels on cloud hypervisors and embedded systems.
> ==
>
> I have no first hand experience with the Rump Kernel, so I don't know
> if it would work as a way to do linux kernel development or not.  It
> certainly seems like a great environment for generic kernel
> development.

Thanks a lot GregF/GregKH,

  That's what I suspected, that it might not be possible because of
both sharing the same OS. I'll have a look at Rump Kernels and see how
far it goes. Thanks for the pointers !



More information about the Kernelnewbies mailing list